martes, 13 de abril de 2010

Improve your code with Haml/Mejora tu código con Haml






In English

Hamles un lenguaje de marcado que me gusto mucho por dos o tres motivos principales.

1 - Escribis menos: cada tag que generes, ya sea un form, div, span, etc no necesita
ser cerrado como cuando utilizas html.

2 - Correcta identacion: te obliga a tener el código ordenado por lo que podría ser
bueno si trabajas con un diseñador gráfico que tenga el coraje/ganas de aprender
este markup. No debería llevar tanto tiempo de aprendizaje y los beneficios tanto
para diseñador como desarrollador van a ser grandes a la hora de leer y entender el
código en vistas, partials, layouts, etc.

3 - Consecuencia de los dos puntos anteriores: Tu código sera menos extenso, tendras
una lectura mas rápida y clara, llegaras al punto que quieras en menos tiempo y con
menos esfuerzo de escritura/corrección de código, menos posibles bugs por mal cierre
de tags, codigo más limpio. En una palabra, te ayuda a ser un mejor programador,
aunque tu puedes hacer y deshacer algo que quizás otro programador lo haría de forma
mas simple, pero eso ya es otro problema.

Yo estoy utilizando este lenguaje en aplicaciónes Rails desde hace un corto tiempo,
pero pienzo seguir implementandolo para futuros desarrollos mientras no haya un
diseñador/jefe que se oponga o resista al cambio. Sino, sera cuestión de demostrar
cuales son las razones por las que sería bueno utilizarlo.

Por lo que vi existen para otros lenguajes algunas herramientas inspiradas en Haml
como Ghrml para Python, Fammel para Php, Scalate para Scala o NHaml
para .Net






En español

Haml is a markup language that likes me for two or three mainly reasons.

1 - Write less: each tag that you make, whatever be, a form, div, span, etc doesn't
need be closed like when you use html.

2 - Correct indentation: you must have ordered code,thing that could be good if you
work with a graphic designer that has the courage/intentions of learn this markup
language. It should not take too much time of learning and the benefits for the
designer as the programmer too could be a big thing at the hour of read and understand
the code in views, partials, layouts, etc.

3 - As consequence of the first two points: Your code will be less extensive, a major
speed to read, reach the point that you want in less time and with less efforts of
write code, less possible bugs for bad close of tags, clean code. In one word, it
helps you to be a better programmer, although you could do and undo something that
maybe another programmer would be doing in a easier way, but this is another problem
for resolve, not a Haml problem.

I am using this language in Rails applications since a couple of weeks ago, but I
think I'll continue using this for future applications while there aren't
designers/bosses that reject to the change. But, i think that it will be only a
question of show the reasons 'why?' this is a good choice.

I saw that exist for another languages some tools inspired in Haml like Ghrml for
Python, Fammel for Php, Scalate for Scala or NHaml for .Net





First Pict: A form with .haml/Un formulario con Haml:





Second Pict: And with html.erb it should be write like this/ Y con html.erb debería
ser escrito así:


































Como puedes ver, en la segunda imagen tiene 10 lineas mas de codigo que en la primer
imagen y el código en la primer imagen solo funciona si esta identado, una buena
razon para ser ordenado no?!

As you can see, the second picture has ten lines more of code than first picture and
the code in first picture is indented or it won't work, a good reason to be ordered
to write code, no?!


miércoles, 15 de abril de 2009

Linux save your money!! - Linux ahorra su dinero!!

Read This In English







He estado usando Gnu/Linux(principalmente la
distribución Debian) por mas de cuatro años y
siempre me ve sorprendido por las herramientas que Linux me
brinda para trabajar en el lado servidor como en aplicaciones
de escritorio también. Actualmente quizas nosotros estamos
en la mas dura recesión de la que nosotros podemos recordar
o que hayamos conocido jamas, quizas la peor en los últimos
cien años según especialistas. Aunque yo se que sistemas como
Linux son suficientemente buenos para usar en el lado de
servidores como para usar en aplicaciones de escritorio, yo se
también que la gente se resiste a usar este software en sus
estaciones de trabajo. Yo no se que cual es la razon para odiar
(rechazar enérgicamente) algo que realmente ellos no conocen
suficientemente o ellos nunca han visto antes y puedo hablar
acerca de esto porque he estado trabajando en un departamento I.T.
en oficinas publicas aqui en Argentina por al menos siete años y
he visto estas reacciones muchas veces de parte de los usuarios.

Comúnmente, la clase política en edificios estatales, la gente que
tiene que tomar decisiones no tiene idea acerca de los beneficios
usando software libre y los empleados hablan sin fundamentos en contra
de procesos de migración ayudando a la clase politica a rechazar
las ideas acerca de migración desde Windows a Linux.

De cualquier modo, yo piense que esta es una buena oportunidad para
tratar la migración a Linux en empresas como también en
oficinas publicas por varias razones. Voy a escribir algunas de estas:




- usando Linux tu no tienes que pagar por cada licencia como
en Windows. Si tu compras una licencia Windows esta solo puede
ser usada en 'una y solo una' maquina(hardware) porque el equipo
'Big Brother'
esta observandote desde la red para atraparte si instalas ese software
en mas de un lugar....
entonces, + con Gnu/Linux(al menos con Debian linux)
tu puedes descargar y instalar todas las estaciones de trabajo y servers
con un solo cd si tu quieres y nadie puede decirte nada acerca de esto.

+ tu puedes instalar una maquina virtual(con Xen)
en Gnu/Linux y no gastar una enorme cantidad de dinero para instalar
múltiples servers. Tu no tienes que gastar tu dinero en mas y mas hardware
para instalar múltiples servidores.

+ tu puedes reemplazar todas las aplicaciones ofimáticas con
Open Office suite

+ y quizas lo mas importante desde mi punto de vista.. tu puedes
adecuar cada instalación para aprovechar todo el hardware y entonces
no estas 'obligado' a cambiar tu viejo hardware porque el software
esta comiendo/matando tu hardware





Bueno, por razones como las que estube escribiendo aqui pienso que el software libre
y sistemas como Gnu/Linux tienen una gran oportunidad para crecer en el mercado
y podria ser una buena solucion para reducir costos en empresas donde en estos
tiempos los recursos son limitados.



Read This In Spanish




I have been using Gnu/Linux(mostly Debian distribution) for more
than four years and always I have been surprised for the tools
that Linux give me to work in server side how in desktop applications
too. Nowadays maybe we are in the most hard recession that we can
remember or we can know reading news, maybe the worst in the last
one hundred years. Although I know that systems how linux are good
enough to use in servers side how to use with desktop applications,
I know too that the people resist to use this software in their
workstations. I do not know which is the reason to hate something
that really they do not know enough or they have never seen before
and I can speak about this because I have been working in a I.T.
department for public offices here in Argentina for at least seven years.

Commonly, the political class in state buildings, the people that have
to take decisions does not have idea about the benefits using this free
software and the employees talking without foundation against migration
proccess help them to reject the ideas about migration from Windows to
Linux

Anyway, I think that this is a good oportunity to try migration to Linux
in companies how in state buildings for many reasons. I will write
some of this:




- using Linux you do not have to pay for each license how in Windows. If
you buy a Windows license it only can be used in one and only
one machine(hardware) because the 'Big Brother'
team is watching you over the net to catch you if you install
this software in more than one place.
so, + with Gnu/Linux(at least with Debian linux)
you can download, and install all the workstations and servers
with one cd if you want and nobody can tell you nothing to
you about that.

+ you can install virtual machines(with Xen)
in Gnu/Linux and not waste a huge amount of money and then.
You do not have to waste your money in more and more hardware
to install multiple servers

+ you can replace all the office automation application desktop
with Open Office suite

+ and maybe the most important from my point of view.. you can
customize each installation to take advantage of your hardware
and then you are not obliged to change your old hardware because
the software is eating/killing your hardware




Well, for reasons how I have been writing here I think that the free
software and systems how Gnu/Linux have a big oportunity to grow in
the market and it could be a good solution to reduce costs in companies
where at this times the resources are limited.

lunes, 6 de abril de 2009

Attending 'LocosxRails' in Buenos Aires




I went to Buenos Aires for two days(three and four of April) to
take part
in
an misterious first event
about Rails called LocosXRails("cracy for Rails in english") and
it was a great event,
I think that it was the first event related and dedicated to Ruby On Rails in
Argentina with international speakers( if I do not stay in a mistake!! ).
I found some others Rails developer. Some people that does not develop applications on
Rails actually, but their bosses send there to see what happen with
this 'misterious new' framework
or their personal interest in Rails is rounding in their heads.

The presentations were interesting,
I liked the presentation of Fabio Akita
(about internationalization),Obie Fernandez(experiences
in his company),Luis Lavena(talking
about the proyect 'One-Click Ruby Installer'),
Evan Henshaw-Plath (talking about OAuth)
Evan Phoenix(talking about good manners to coding in ruby),
Emilio Tagua(talking about'testing'
rails applications) and other presentation about Rails + Sequel by Adrian
Mugnolo, all the presentations had something interesting(without offence).
Here is the list of speakers for this event

The organizers said that they are thinking just now in working to organize
a similar event in 2010 and those are a good news

PS: They excuse my errors for English or also they can correct to me if
you want

jueves, 26 de marzo de 2009

Graficos estadisticos con flash en Rails


Bueno, estuve buscando diferentes alternativas para agregar graficos chart a una aplicacion que estoy desarrollando con el framework Ruby on Rails y en primera instancia utilize la api de google chart para agregar algunos graficos, pero me parecieron bastante estaticos a la vista por lo que queria buscar otras bibliotecas o plugins. Entonces, luego decidi buscar algo un poco mas llamativo o lindo a la vista y encontre el plugin open flash chart que lo instale desde github.com.

Bueno, los pasos que di en la instalacion fueron los siguientes.

Desde el directorio raiz se instala el plugin



script/plugin install git://github.com/pullmonkey/open_flash_chart.git
y copio dos archivos desde la instalacion del plugin al directorio public de la aplicacion

cp vendor/plugins/open_flash_chart/assets/open-flash-chart.swf   public/open-flash-chart.swf

cp vendor/plugins/open_flash_chart/assets/javascripts/swfobject.js public/javascripts/swfobject.js

Luego en el controlador del modulo donde quiero mostrar el grafico cree los siguientes metodos



def stats
@graph = open_flash_chart_object(600,300,"/my_controller/graph_statistics/")
end

def graph_statistics
pie_values
title = Title.new('Title of the graph')

pie = Pie.new
pie.start_angle = 35
pie.animate = true
pie.tooltip = '#val# de #total# #percent# del 100%'
pie.colours = ["#5858FA", "#FF0080"]
pie.values = @pie_values

chart = OpenFlashChart.new
chart.title = title
chart.add_element(pie)

chart.x_axis = nil

render :text => chart.to_s
end

private

def pie_values
@pie_values = []
if not Controller.some_values.empty?
Controller.some_values unless @pie_values << Controller.some_values
end

if not Controller.other_values.empty?
Controller.other_values unless @pie_values << Controller.other_values
end
end


y en la vista stats.html.erb agregue lo siguiente


<%= javascript_include_tag('swfobject') %>
<%= @graph %>


lo que al arrancar la aplicacion y llamar en mi vista de estadísticas para el modulo que implemente el chart me muestra un interesante gráfico un poco mas lindo que lo que se obtiene con los graficos chart de la api de google


Esta bueno el plugin este, si no los utilizaron recomiendo que lo prueben, queda bastante bien y tiene graficos para todos los gustos. Ademas por lo que vi en la pagina oficial de esta libreria teethgrinder.co.uk esta misma se puede utilizar en varios lenguajes de programacion como Java, Perl, Python, Php o .NET ademas del framework Ruby on Rails

sábado, 12 de enero de 2008

OLPC ¿¿seguira siendo una computadora portátil de 100 dólares??






OLPC(One Laptop Per Child) parece que esta cambiando de
rumbo en cuanto al sistema operativo que utilizara en sus computadora portátiles... ahora resulta que esta pc económica no solamente iniciara un linux, también se metió entre los sistemas preinstalados alguna versión adaptada de $windows$. La fuente de información la obtuve desde un articulo en barrapunto



Inicialmente el impulsor del proyecto OLPC Nicholas Negroponte e Intel trabajaron juntos en este proyecto pero a partir de que la empresa Intel inicio su propio proyecto de pc económica Classmate PC hubo pedidos de Nicholas Negroponte hacia su socio Intel para que abandonara el proyecto cosa que no ocurrió. Classmate utiliza por ahora software libre en su pc económica según lo que dice wikipedia aquí hablando de varias distribuciones, pero en la Classmate Pc Portal curiosamente dan solo tres opciones de sistemas operativos entre los que esta presente $windows$ y adivinen quien requiere mas recursos de hardware.... :-D sí!! adivinan... windows lleva la delantera en recursos de hardware requeridos. También dicen que una de las causas por las que Intel abandono el proyecto es por el uso de procesadores AMD en maquinas OLPC cosa que Intel no acepta como causa de su deserción.

Bueno, al parecer ya nada escapa al negocio de los poderosos, aunque no nos guste demasiado la idea sabemos que el dinero es poder y aquí vemos como es capaz de torcer voluntades, creo haber escuchado siempre desde que me entere del proyecto OLPC que estas "pequeñas notebooks" traerían algún linux como sistema operativo y no creo haber escuchado que traerían software privativo instalado.

Espero que el próximo paso no sea incluir este software privativo como sistema preinstalado único e ineludible a la hora de adquirir estas computadoras, lindo negocio no!?!? :-D

Fuente de informacion:
Barrapunto.com
Infoworld

martes, 25 de diciembre de 2007

Entornos grafico linux cada vez mas potentes!




Mucha gente, principalmente usuarios que nunca
vieron o ni quisieron ver un linux
en funcionamiento siempre pusieron como escusa
para no utilizarlo pretextos similares a los siguientes




"linux es solo para gente que sabe de
informática".

"que a linux le faltaba mucho de entorno
visual para utilizarlo como una
herramienta de trabajo amigable al usuario".

"que las herramientas de ofimática en
linux eran precarias" .

"que no se pueden ver las paginas web
que antes desde $$internet explorar$$
se veían tan lindas!!".

"¿estas seguro que el puedo seguir trabajando como siempre
con los documentos $$word$$ que me envían de otra
oficina donde SI tienen el sistema que usan los demas,
estee... como se llama... $$guindows$$, si ese mismo, el
que me llego de regalo con la pc que compre?" :-D



Y bueno, como estas, otras cientos de escusas/preguntas
capciosas de las que te puedas imaginar. Por suerte todo
esto es solo un montón de ideas raras que lo usuarios
utilizan para no desprenderse de su sistema privativo
conseguido 'sin licencia'me animaría a decir en el 90%
de los casos, por lo que la pirateria
de software

es "algo corriente" que la gente no considera como tal
y por supuesto que están equivocados.





Para observar que por lo menos en chiches de
escritorio creo que ya esta a la par, o quizás
por encima de el innombrable veamos este video,
después si les gusta muestrenlo a alguna gente
que se queja de lo poco flexible que es un
escritorio linux.Esta es una comparación de Ubuntu Beryl
contra un $$Windows Vista Aero$$





Por cierto, yo utilizo Fluxbox porque
no me gusta mucho desperdiciar lo que no sobra en mi pc
, con 256 Mb de ram, y porque además me gusta utilizar
herramientas livianas. Para usuarios de escritorio en
oficinas de empresas privadas tanto como del estado
reconozco que el entorno gráfico mas aceptado es KDE que
tiene una buena variedad temas y aplicaciones gráficas que
ayudan a hacer un entorno visual mas rico y personalizado
que cualquier otro entorno gráfico y es soportado por una
amplia gama de distribuciones linux que lo incluyen
por omisión.

lunes, 17 de diciembre de 2007

NETDEV WATCHDOG: eth0: transmit timed out

Ya se que puede ser un problema que muchos ya han solucionado alguna vez... pero hace que uno se rompa la cabeza pensando que el maldito hardware esta fallando...

pero bueno.. esto me paso justo hoy como siempre a ultima hora cuando uno quiere despegarse ya de la pc para vivir un poco... :-)

Sincroniza tus archivos y directorios con unison!!

Bueno.. una herramienta que les puede servir para hacer sus sincronizaciones de archivos es Unison .

Potencia bash!!



Tenemos en el trabajo un servidor instalado con un Debian (Linux version 2.6.8-3-386) donde hace de server samba y además tiene instalado un sistema Trac que nos sirbe particularmente para organizar nuestro trabajo diario. Este sistema web trabaja almacenando toda la información que maneja en una base de datosPostgresql . Bueno, solo quería tener una copia de la base de datos con estructura y datos en caso de problemas de hardware. Ahí fue que decidí buscar una solución simple y rápida (en mi trabajo no hay suficiente dinero para comprar equipos que nos ayuden con estas tareas, por lo menos eso dicen hasta que el dinero aparece mágicamente !!) . En fin, cree un script que hace una copia de la base, arma un archivito comprimido y me lo envia por mail (ya que gmail es muy generoso en la capacidad de almacenamiento que me brinda y el adjunto que obtengo no es de mas de 80 Kbytes ). Todo eso lo hace automáticamente todos los días ya que lo configure mediante cron como una tarea programada

Aquí esta el script:


#!/bin/bash

export DB_BACKUP="/opt/trac"
export DB_USER="trac_db_admin"
# title and version
echo ""
echo "PostGres_backup"
echo "----------------------"
echo "* Rotating backups..."
rm -rf $DB_BACKUP/04
mv $DB_BACKUP/03 $DB_BACKUP/04
mv $DB_BACKUP/02 $DB_BACKUP/03
mv $DB_BACKUP/01 $DB_BACKUP/02
mkdir $DB_BACKUP/01

echo "* Creating new backup..."
pg_dump -U $DB_USER -d trac_db -h localhost | bzip2 > $DB_BACKUP/01/pgsql-\
`date +%d-%m-%Y`.bz
echo "----------------------"
echo "Done"
#####################################################################################
mpack -a -s "Log Backup Trac" $DB_BACKUP/01/pgsql-`date +%d-%m-%Y`.bz\
mycount@gmail.com | exit 0

rescue Exceptions en Rails


Encuentra las diferencias en archivos!!

Bueno, algunos lo odian, otros lo aman, a mi particularmente me agrada!! :-)

Se trata del todopoderoso editor Vi, si, además de editar scripts de bash(muchos pensaran que solo sirve para eso, para los admin de unix/linux) es un hermoso editor para editar el lenguaje que más te plazca(sí!!! también soporta resaltado de sintaxis!!), al fin de cuentas si sabes programar, no necesitar arrastrar botoncitos y dejar todo librado a que tu IDE piense todo por vos("de hecho creo que nunca lo hace, solo arma esqueletos/basura en algunos casos... pero VOS necesitas ESCRIBIR CÓDIGO")

Bueno, no es el caso por el que estoy escribiendo esto, sino solo porque le encontré otra cosita mas al Vi que me da mas argumentos para decir que es 'multipropositos' :-) . Cuando vos te preguntas donde esta la diferencia entre dos archivos "iguales", y no te podes dar cuenta visualmente, ahí esta Vi para encontrar la "aguja en el pajar"

sábado, 15 de diciembre de 2007

Selenium on Rails!

Selenium es una buena herramienta para realizar testing de paginas web.

Bueno, se puede usar agregando como plugin de rails .. los pasos que dí para instalarlo fueron estos:

Remote desktop from linux to linux

No hace mucho encontré un programa(paquete Debian) que permite traer el escritorio remoto entre máquinas que utilizan sistemas operativos Gnu/Linux.

Gráficos estadisticos con bibliotecas php Libchart!!

libchart

Libchart se trata de una librería con licencia GPL escrita en php para usar con php4/php5.

viernes, 14 de diciembre de 2007

Ejemplo de migración al software libre para imitar

Software libre en Extremadura

linex logoLinEx es la distribución de software libre de la junta de
Extremadura,la quinta región mas pobre de la Unión Europea.

About me


Me llamo César Díaz, soy de la ciudad de La Paz (Entre Rios - Argentina) pero por razones de estudio y posteriormente trabajo estoy viviendo en la ciudad de Santa Fe desde el año 1994.


Me encanta programar software con herramientas que provengan del software libre y utilizar sistemas operativos libres, personalmente uso solo Debian y espero seguir usándolo por muchos años más!!! ;-)

Estoy inaugurando mi blog, es la primera experiencia en utilización de un blog. Mi intención con respecto a este blog es contar experiencias y satisfacciones que me da el software libre día a día a nivel profesional como humano, ya que no solo obtengo excelentes herramientas para mi trabajo sino que me enseña a aprender de una forma que no hubiera pensado, el software libre me permite aprender de una manera ágil y a la vez me enseña compartir mi aprendizaje.