Netbeans + PHP + Smarty

En mi trabajo me asignaron a un proyecto nuevo para mi, donde tendré que realizar mejoras y correcciones a un sistema de e-learning el cual está programado en PHP orientado a objetos y utiliza {es:Smarty} como motor de templates.

El tema fue que al revisar mi IDE preferida {es:Netbeans} me dí cuenta que no tenía soporte para Smarty, osea, que no entendía las etiquetas ni resaltaba la sintaxis de los archivos propios del motor.

Busqué alguna otra IDE que soportara Smarty, supuestamente Aptana lo hacía pero no logré hacer funcionar ese plugin.

EDIT 22/11/2009 : APTANA deja de soportar Smarty si instalas los plugins de PHP. Si dejas la ide tal cual la instalas, soporta Smarty. Y además podés trabajar en un servidor remoto a través de SFTP. Actualmente estoy usando APTANA.

Otra IDE que cumplia con todo lo que necesitaba es Komodo, pero no es libre y la licencia sale u$s295.  así que decidí ver que podía hacer para «acomodarme», bien a la argentina, con Netbeans.  Les cuento como me fué:

En el menú superior encontramos «Tools» -> «options» . Dentro del cuadro de diálogo, abajo a la izquierda encontramos un botón «Advanced options«.

Dentro de opciones avanzadas vamos a «Ide configuration» ->  «System» -> «File tipes«.

Buscamos «PHP.xml » y hacemos botón derecho -> abrir.  Vamos a ver que en el editor se abre este archivo, en donde se indican que extensiones deben ser tratadas como archivos PHP.

Lo que vamos a hacer es agregar las extensiones que usamos con Smarty para que al menos nos resalte la sintaxis básica, aunque no reconozca las etiquetas propias del motor.

Agregamos al archivo estas dos líneas (las del recuadro rojo):
smarty

Grabamos el archivo, cerramos Netbeans y al volver a abrirlo ya nos reconoce los archivos de Smarty como si fueran PHP.

Luego,  todas las etiquetas de Smarty son entre llaves, por ejemplo:

{#pagename#}
{$smarty.now}

Entonces se me ocurrió agregar un atajo para facilitar la escritura de las etiquetas. Hice así:

Desde el menú principal vamos nuevamente a «Tools» -> «Options«.  Vamos al segundo ícono -> «Editor» y luego a la solapa «Code templates«.  Luego «new» para agregar un nuevo atajo. Hay que definirle un nombre, yo le puse «sm» por Smarty, aparte es muy cómodo.
Luego en «Expanded text» agregamos lo siguiente:

{{$cursor} }

y damos «ok«. Ahora cada vez que escribamos «sm» y presionemos la tecla «tab» apareceran las dos llaves { } con el cursor titilando dentro, listo para escribir la etiqueta de Smarty.

Si bien no es la solución definitiva,  digamos que con estas ayudas se puede trabajar con Smarty sin sangrado de retinas xD.

Nuevo libro de la fundación VíaLibre

«Libres de monopolios sobre el conocimiento y la vida: hacia una
convergencia de movimientos.»

vialibre

[ Bajar libro completo en PDF ]

La Fundación Vía Libre, gracias al apoyo de la Fundación Heinrich Böll,
invita a la presentación de su nuevo libro «Libres de Monopolios sobre
el Conocimiento y la Vida: hacia una convergencia de movimientos» que se
realizará el domingo 22 de noviembre, desde las 14hs. en el marco de la
Fábrica de Fallas, 2do. Festival de Cultura Libre y Copyleft, en la sede
de FM La Tribu, Lambaré 873, Ciudad de Buenos Aires.

«Actualmente existe un poderoso control centralizado, monopólico,
ejercido por un puñado de empresas, que afecta prácticamente todos los
espacios de la vida para crear, innovar, cooperar, aprender y compartir»
dice Silvia Rodriguez Cervantes, Profesora Emérita de la Universidad de
Costa Rica y una de las autoras del libro, y agrega: «el control se ha
ejercido por medio de distintos instrumentos, algunos de tipo
tecnológico y otros de tipo contractual y legal. Dentro de este último
se encuentra el sistema de ‘propiedad intelectual’ cuyas obligaciones se
han ido imponiendo mediante diversos tratados comerciales o de inversión
a todos los países signatarios».

La realidad tangible es que cada día más conductas socialmente útiles y
arraigadas en las prácticas comunitarias como el intercambio de plantas
y semillas, la distribución de cultura y la innovación colectiva se ven
vedadas y criminalizadas por sistemas cada vez más represivos de
apropiación monopólica como las patentes, los derechos de autor, los
derechos sobre fonogramas y las regulaciones cada vez más restrictivas y
extendidas sobre la música, el software, las semillas, y tantas
expresiones culturales y científicas, incluso las producidas en el
ámbito de las Universidades Públicas.

De todo menos cerveza

Este sábado estuve en Conurbania, el evento sobre software libre del conurbano bonaerense, en la Universidad Nacional de Quilmes.

Junto a Javi ‘Rocket’ Lujan que vino desde Bahía Blanca llegamos temprano para participar de un evento que estuvo muy bueno y tuvo de todo, nos reencontramos con mucha mucha gente amiga de capital y otros variados lugares, participamos de charlas interesantes que comentaré a continuación y pudimos aportar con la presentación de las propias.

01

DSCF1805

Acá estoy junto a la bandera del QuilmesLUG y el banner de CaFeLUG.

DSCF1752

DSCF1755

Diego Cañizares de PyAR y Javier ‘Rocket’ Lujan de BBlug.

DSCF1759

Pasé por una charla muy interesante de José Masson sobre SugarCRM: implementaciones y casos de éxito.

DSCF1748

Luego tuve mi primera aproximación a un servidor de VoIP : ASTERISK: el futuro de la telefonía hoy. por Alejandro del Brocco y Marcelo García. Mostraron como la UNQ implementó un sistema de telefonía basado en software libre con capacidad para 500 internos.

DSCF1750

Ya se acercaba la hora de nuestras charlas, pero antes pudimos participar de la charla «Filosofía hacker y el mundo actual» por Jorge ‘Vampii’ Franco, un gurú de la seguridad informática. Fué muy entretenida, tuvo cuestiones filosóficas, éticas, anécdotas y frases memorables.

DSCF1761

y llegó el momento, una vez más: Diseño web con herramientas libres, por un humilde servidor. xD

DSCF1782
DSCF1784

DSCF1790

Javier dando su charla «Joomla: Tu web de la noche a la mañana».

DSCF1798

La reflexión final, al aire libre, estuvo a cargo de Enrique Chaparro, matemático y especialista en criptografía y seguridad, con títulos de la Universidad de Buenos Aires (Argentina), la Universidad de Waterloo (Canadá) y la Universidad de Londres (UK). Es miembro de la Asociación Internacional de Criptografía, del Comité Técnico del IEEE sobre Seguridad y Privacidad, y de la Fundación Vía Libre.

DSCF1804

DSCF1807

Luego se sortearon varias remeras, muchos libros, y para terminar una buena cena. xD

604

usando Tablas

Las tablas son una herramienta muy eficaz para presentar datos tabulados ( NO para maquetar, para eso existen las etiquetas DIV y SPAN). Una tabla consta de una o varias filas, cada una de las cuales consta, a su vez, de una o más celdas de datos.
Al definir una tabla, se debe pensar en primer lugar en las filas que la forman y a continuación en las columnas.
Creando una tabla

La etiqueta <table> encierra todas las filas y columnas de la tabla. Las etiquetas <tr> (del inglés «table row») definen cada fila de la tabla y encierran todas las columnas. Por último, la etiqueta <td> (del inglés «table data cell») define cada una de las columnas de las filas.Normalmente, algunas de las celdas de la tabla se utilizan como
cabecera de las demás celdas de la fila o de la columna.
En este caso, HTML define la etiqueta <th> (en inglés «table header cell») para indicar que una celda es cabecera de otras celdas.

El atributo SUMMARY nos sirve para definir una descripción del contenido de la tabla.

<table summary = 'Esta es una tabla de ejemplo.'>
<th colspan='2'> Cabecera de la tabla </th>
<tr>
<td>Producto 1</td>
<td>Descripción 1</td>
<td>Precio 1</td>
</tr>
<tr>
<td>Producto 2</td>
<td>Descripción 2</td>
<td>Precio 2</td>
</tr>
</table>

Unión de Celdas

Con el atributo COLSPAN definimos el número de columnas que ocupa una celda.
Por ejemplo:
tablaA

<table>
<tr>
<td colspan="2">A</td>
</tr>
<tr>
<td>B</td>
<td>C</td>
</tr>
</table>

Con el atributo ROWSPAN definimos el número de filas que ocupa una celda.
Por ejemplo:
tablaB

<table>
<tr>
<td>A</td>
<td rowspan="2">B</td>
</tr>
<tr>
<td>C</td>
</tr>
</table>

Una vez creada la estructura semántica de la tabla, podemos darle el estilo que queramos mediante CSS.
Nos alcanzará con definir tres estilos, todos para selectores etiqueta, más o menos así:

table {
font:normal 76%/150% "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
border-collapse:separate;
border-spacing:0;
border-width:1px 0;
margin:0 0 1em;
color:#000;
}
td {
padding:0.25em 0.5em;
text-align:left;
vertical-align:top;
padding:10px;
}
th {
font-weight:bold;
line-height:normal;
adding:0.25em 0.5em;
text-align:center;
background-color:#bbb;
border-width:0px;
padding:8px;
}

Luego, un último detalle, si queremos que al pasar el mouse sobre una celda esta cambie su color de fondo, podemos agregar este estilo:

td:HOVER { background-color:#f00; }
Si querés probar si entendiste qué es una tabla y como hacerla, intentá crear el HTML para la siguiente tabla:

ejercicio_tabla

Queda pendiente la parte de DISEÑO CSS para las tablas. Completo el post hoy a la noche o mañana :D

Catamarca días 1 y 2

Les dejo fotos varias de la muy buena jornada que tuvimos en Catamarca. Hubo buen nivel de charlas, pasé bastante calor  y conocí mucha gente grosa en este viaje.

Bueno, esto fué el primer día que llegamos,  en la calle más de 50 grados, fulminantes para un recién llegado de la húmeda y maldita Ciudad de Buenos Aires. Si me ven pálido, es porque me pegó re mal el calor y casi me voy a dar una charla al más allá.  Guillermo Puentes, de Catamarca, nos había recomendado ir a «Balcarce» y la verdad nos salvó porque entramos y tenían aire acondicionado, WiFi y unos licuados enormes y congelados de ananá.   Gané un UP xD

2910200931329102009312

Comenzaba la jornada y luego de la inauguración se corta la energía eléctrica :S    por suerte suspendimos para la tarde y pudimos arrancar con las charlas tal cual estaban planeadas.

dscf1664

dscf1678

dscf1698

dscf1700

dscf1717

Este es el depto donde estabamos parando, que la gente de GULCA (Grupo de Usuarios de Linux Catamarca ) nos facilitó.  Pintó el hippismo ya que no teníamos más muebles que una mesa xD pero la pasamos bien igual, luchando contra el calor, nos tomábamos una botella de agua saborizada cada dos horas. Estabamos con Javier y Jota y un hydroventilador al que apodamos Arturito.

dscf1722

Por último el grupete que se armó con gente de lugares variados (Catamarca, Santa Fé, La Rioja, Bahía Blanca y Capital Federal)  Mucha buena onda, gente muy grosa con los cuales sigo en contacto y espero volver a compartir experiencias tan buenas y productivas como la de Catamarca 2009.

dscf1737

Catamarca día cero

Estoy en el micro viajando hacia San Fernando del Valle de Catamarca, faltarán unas 4 horas para llegar a destino. Pasamos por las sierras cordobesas, Jesús María y dejamos atrás Dean Funes.

DSCF1593DSCF1595

El viaje se hizo bastante corto, a pesar de no haber podido dormir mucho, ya que tuvimos cena y desayuno a bordo.

Llegué!! En la terminal me estaban esperando Guillermo del LUG de Catamarca y Javier, un amigo de Bahía Blanca que vino a dar su charla sobre el gestor de contenidos dinámicos Joomla. Esta es la vista desde el balcón de donde estamos parando.

DSCF1599DSCF1603DSCF1604DSCF1605

Me voy para Catamarca

En el marco de las 4tas jornadas de sofware libre de la provincia de Catamarca, estoy viajando a esa misma provincia para dar mi charla sobre diseño web con herramientas libres. El evento se llevará a cabo  en el aula magna de la Universidad Nacional de Catamarca. En los próximos días estaré posteando algún material al respecto.

mapa catamarca 2UNCA

Las charlas serán:

– Software Libre: Primeros Pasos
– Ventajas de Tecnologías Libres en Seguridad Informática
– El Software Libre: Modelos de Negocios
– Diseño Web con Herramientas Libre
– Joomla tu Web de la Noche a la Mañana
– Gestores de Contenido Drupal
– IDE para Microcontroladores
– Catamarca Libre
– Mi Servidor Casero
– Sistemas Operativos: que son y que hacen
– Aprendiendo a Usar la Línea de Comandos de GNU/Linux
– Atacando el Corazón de Linux- Bluethoot en Linux

El perro, el mono y la pantera

Cierto día un señor va de cacería al África y se lleva su perrito..
Un día en la expedición, el perrito, correteando mariposas se
aleja del grupo, se extravía y comienza a vagar solo por la selva.

En eso ve a lo lejos que viene una pantera enorme a toda carrera.
Al ver que la pantera sin duda se lo va a comer, piensa rápido qué
hacer.
Ve un montón de huesos de un animal muerto y empieza a
mordisquearlos.
Entonces, cuando la pantera está a punto de atacarlo, el perrito
dice en voz alta:

-¡¡¡Ah!!!. ¡¡¡Qué rica pantera me acabo de comer !!!

La pantera lo alcanza a escuchar y frenando en seco, gira y sale
despavorida pensando:

-¡Quien sabe que animal será ese, no me vaya a comer a mí también!

Un mono que estaba trepado en un árbol cercano, que había visto y
oído la escena, sale corriendo tras la pantera para contarle como
la engañó el perrito.
-Cómo serás de estúpida, esos huesos ya estaban ahí, además es un
simple perro.

El perrito alcanza a darse cuenta de la mala onda del mono.
Después que el mono le cuenta la historia de lo que vió, la
pantera, muy molesta, le dice al mono:
-¡Súbete a mi espalda, vamos donde ese perro a ver quién se come a
quién!
Y salen corriendo a buscar al perrito.

El perrito ve a lo lejos que viene nuevamente la pantera y esta
vez con el mono alcahuete.

-¿¿Y ahora que hago ??, piensa asustado el perrito.

Entonces, en vez de salir corriendo, se queda sentado dándoles la
espalda como si no los hubiera visto, y cuando la pantera está a
punto de atacarlo de nuevo, el perrito dice:

-¡Mono hijo de puta!, hace como media hora que lo mandé a traerme
otra pantera, y todavía no aparece…!

MORALEJA:
EN MOMENTOS DE CRISIS, SÓLO LA IMAGINACIÓN ES MÁS IMPORTANTE QUE
EL CONOCIMIENTO.

Procura ser tan imaginativo como el perro.
Evita ser tan estúpido como la pantera.
Pero nunca tan hijo de puta y alcahuete como el mono.

Trackmania y Urban Terror :Dos juegos buenísimos

Bueno, la idea de este post es compartir dos juegos que seguramente les van a gustar mucho, si bien no son libres, ambos son completos y gratuitos, y se pueden jugar tanto en windows como en sistemas operativos libres. Vamos al primero:

Trackmania Nations Forever

1) Bajar el instalador del juego. Si usas windows lo ejecutás, se instala normalmente y ya podés jugar.

Si usas gnu/linux haces así:
2 ) ejecutar en una terminal $ wine tmnationsforever_setup.exe
2 ) Copiar estos dos archivos dentro del directorio:  /home/[tu-usuario]/.wine/drive_c/Archivos de programa/TmNationsForever/

Listo! ya podemos disfrutar de esto:

trackmania-nations-screenshot1

immersionhdvm1co5

Urban Terror

Lo podés bajar en su versión completa, no hace falta instalarlo, corre en win, en gnu/linux y en mac.

shot0007

shot0003

Aquellos tiempos felices – Commodore

Para quienes tuvimos la suerte de tener algunas de las home computer de los años 80, sabemos que jamás las olvidaremos, y la Commodore 64 sin dudas fue el puntal que abrió el camino para la explosión de los videojuegos en el hogar.

Por las dudas que no lo veas más abajo!  759 manuales de juegos de Commodore.
C64

¿Cómo olvidar esto?

archon_01bruce_lee_01
defender_of_the_crown_01

defender_of_the_crown_09

great_giana_sisters_04

ik_plus_02

impossible_mission_02

maniac_mansion_01

montezumas_revenge_02

pirates_01

world_games_08

zak_mckracken_03

Yo particularmente tenía (y tengo) una Commodore 128 D con monitor color y disquetera integrada, casi idéntica a esta:
c128d

Un equipo que proporcionó miles y miles de horas de diversión a sus usuarios, además de haber sido la introducción a la programación ( o al menos el primer contacto con código) para muchas personas, incluyéndome. Recordemos que si bien la mayoría de las aplicaciones y juegos fueron cerrados y privativos, el propio manual del equipo traía una detallada guía para aprender a programar en BASIC.

Algunos de sus juegos más memorables:

La frutilla del postre en este post nostálgico es este compilado realizado por mí : Manuales juegos Commodore64 , realmente una reliquia que encontré hace poco y me hubiera encantado poseer cuando tenía 11 años.

759 Manuales que explican qué es lo que tenés que hacer en cada juego, teclas, secretos, historia, etc.

La Commodore no murió, sigue viviendo en el corazón de sus fanáticos.

Commodore-Datassette