Comparando reales sin terminos naturales
Publicado por blaxter - 17 Abr 2008 a las 20:52Lo sé, el título no tiene mucho sentido, pero quería hacer una rima. Veamos una pequeña sesión en la consola de ruby
=> 69.99
>> value * 100
=> 6999.0
>> value * 100 == 6999.0
=> false
>> a = value * 100
=> 6999.0
>> b = 6999.0
=> 6999.0
>> a.class == b.class && a.is_a?(Float)
=> true
>> print "#{a} es distinto a #{b} obviamente" unless a == b
6999.0 es distinto a 6999.0 obviamente
>> a.floor
=> 6998
Nada fuera de lo normal, ¿no?. ¿O si?.
Erlang: software para un mundo concurrente
Publicado por blaxter - 10 Abr 2008 a las 22:50Desde hace muchos meses quería meterle mano a Erlang. Lenguaje de programación funcional, concurrente y dinámico. Cada vez es más latente la importancia de la concurrencia, en unos años lo raro será ver procesadores de un solo core, o sistemas de un único nodo.
Acabo de empezar (con calma, que solo suelo leer en el bus) el libro de Programming Erlang de Joe Armstrong, que dado que es de la editorial de Dave Thomas, The Pragmatic Bookshelf me da muy buenas vibraciones.
Traduciré uno de los párrafos inicial del libro que crea unas expectativas realmente interesantes sobre este lenguaje creado por Ericson hace 21 años:
Erlang es un lenguaje donde la concurrencia pertenece al lenguaje de programación y no al sistema operativo. Erlang hace fácil la programación paralela modelando el mundo como un conjunto de procesos paralelos que únicamente pueden interactuar entre si mediante intercambio de mensajes. En el mundo de Erlang, hay procesos paralelos, pero no bloqueos ni métodos de sincronización y tampoco posibilidad de corrupción de memoria compartida, ya que no hay memoria compartida.
Los programas en Erlang pueden estar formados desde miles a millones de procesos extremadamente ligeros que pueden ejecutarse en un solo procesador, en uno de varios núcleos o en una red de procesadores.
Ahí queda eso. No sé si luego podré usarlo en entornos del MundoReal™ tan fácilmente como otros lenguajes más conocidos, pero solo por ver su enfoque al tratar los problemas creo que valdrá la pena. Por ahora ya tengo el interprete instalado y su equivalente a CPAN, llamado cean. Instrucciones para dummies, como un servidor (o eso me dice Amazon), en Ubuntu 7.10:
$ wget http://cean.process-one.net/download/cean.tar.gz
$ tar xfz cean.tar.gz
$ sudo mv cean-1.3/ /usr/lib/erlang/lib/
$ erl
Erlang (BEAM) emulator version 5.5.5 [source] [async-threads:0] [kernel-poll:false]
Eshell V5.5.5 (abort with ^G)
1> cean:version().
"CEAN Erlang/OTP"
Lenguajes, estadísticas y tonterías
Publicado por blaxter - 30 Ene 2008 a las 07:00Hay muchas maneras de conocer la popularidad de un lenguaje de programación, o una tecnología en particular. Me encantan este tipo de historias a pesar de su dudosa fiabilidad, al menos cuando se toman sus valores absolutos, sin una interpretación detrás. Me entretengo más que un tonto con un lápiz con servicios de este tipo. Hay unos cuantos, comentaré los que conozco y más útiles pueden resultar:
- El abusurdo índice Tiobe (que cada vez me lo creo menos).
- Google Trends, el cual puede ser usado para cualquier cosa en general, aunque es difícil de usar pues muchas veces términos de lenguajes o tecnologías significan algo más en el mundo real (Java es una isla y un tipo de café, ruby es una piedra preciosa, python es una serpiente o una referencia a los Monty Python, etc...).
- Indeed.com sitio web estadounidense de búsqueda de empleo que ofrece un servicio de tendencias en los trabajos, tanto por valores absolutos como relativos. El más simple y potente de usar.
Jugando un poco, me he encontrado con gráficos bastante curiosos. Nadie duda que en estos momentos Java es lo más usado, pero creo que tampoco nadie dudará en que estamos ante un auge de los lenguajes dinámicos. Veamos datos absolutos:

La primera posición de Java no sorprende, la segunda de perl, a mi al menos, tampoco; luego tenemos php por encima de python y ruby. Los datos son bastante usuales. Recordemos que estamos antes tendencias de ofertas de trabajo, es decir el uso de lenguajes en el mundo empresarial. Pero ahora veamos sus valores relativos (es decir, su crecimiento y tendencia).
Por la gráfica anterior, podemos deducir que los valores de Java y Perl son prácticamente iguales en el tiempo, sinónimo de su madurez, pero ¿qué pasa con php, python y ruby?:

¿De quién es esa línea que va por el 550%? Ruby. Curiosa situación, quizá el apoyo de Sun tenga algo que ver en todo esto. Quizá...
Visitas en el 2007: para el pozo
Publicado por blaxter - 03 Ene 2008 a las 16:50A pesar de ser un maniático compulsivo de las estadísticas, las que menos me importan son las de mi blog personal (esto que estás leyendo), quizá porque no ansío ganar nada de dinero, y no me importa que me visiten cuatro gatos (los mejores sin duda), escribo bicosyes.
Aunque después de ver el post de DraXus e ir a google analytics me ha mosqueado bastante que no esté disponible (o soy muy tonto para encontrarlo) una opción para agrupar los datos de las estadísticas (por mes, por ejemplo...). Como tiene una opción para exportar los datos (a csv por ejemplo), y como me aburro mucho, me he hecho un script tonto para sacarme un cool gráfico por meses. Ves que bien.
Como podemos ver en él, se puede deducir que aquí no entra ni san Pedro. Don't worry, be happy.
Ya que me pongo con estadísticas y a pesar de que a nadie le importe estos datos salvo a enfermos compulsivos estadísticos, voy a mencionar los datos más interesantes a mi parecer:
- Post más visitados:
- Origen del tráfico:
- Directo: 16%
- Otros sitios: 37%
- Buscadores: 47%
- Navegadores:
- Firefox: 54,4%
- IE: 39%
- Opera: 2,7%
- Safari: 1,6%
- SO:
- Bindous: 85%
- Linux: 11,2%
- MacOSX: 3,4%
Como conclusión, par de tetas atraen más que cualquier otra cosa y si quieres visitas más te vale sacar algo conocido o buscado, una lastima porque no creo que en un futuro próximo saque algo sobre una rubia espía programando en Java un fork de frets on fire.
Me sorprende el tráfico de gente con el puto bindous de las narices, y aún más el porcentaje de IE. Querido visitante, si usas IE vete de aquí, cuando seas mayor, vuelve. También bastante sorprendente que Opera esté por encima de Safari (¿quien narices usa Opera? Un navegador no soportado por Google yo lo considero muerto, r.i.p.)
Posiblemente todas estas sorpresas que veo sean debidas al tráfico proveniente de los buscadores (tráfico ocasional que solo busca una respuesta rápida de cómo poner una imagen en java, o que busca canciones de frets on fire, o similares), quizá este año ponga un filtro para eliminar todo ese tráfico "basura".
Si alguien le interesa el script tonto, está en ruby. Simplemente hay que descargar el fichero CSV de las visitas una vez aplicado correctamente el rango (desde el 1 enero hasta 31 diciembre) e indicarle al script el nombre de dicho fichero y, opcionalmente, el título del gráfico. Las librerías requeridas están comentadas en la cabecera del fichero. El gráfico de arriba lo he generado tal que así:
$ ./GoogleAnalyticsCsvParser.rb data.csv "Visitas bicosyes.com 2007"
Cómo no arreglar un build warning
Publicado por blaxter - 23 Dic 2007 a las 17:15En el mundo de la programación te encuentras a veces con cosas bastante entretenidas y curiosas. Como en este ejemplo donde se puede ver el código que ha cambiado alguien en un commit para tratar de impedir un warning del compilador. A nadie le gustan esos warnings feos y malvados, qué astuto el mozo.
NSDictionary* aDict = nil;
//Changed to Remove the Build Warnings
//while(aDict = [fileEnum nextObject])
while(aDict == [fileEnum nextObject])
El código es Objective c, pero cualquiera con conocimientos de programación estructurada puede ver lo que pasa...
Tarea para Rake: Ruby on Rails en Aptana
Publicado por blaxter - 06 Dic 2007 a las 19:25Aptana es un IDE basado en Eclipse, el proyecto RadRails que pretende facilitar el desarrollo de aplicaciones con Ruby on Rails desde Eclipse se encuentra ahora dentro Aptana. Un problema típico puede ser que ya tenías tu proyecto empezado e intentas usarlo desde Aptana. Según cómo hayas creado tu aplicación puede llegar a traducirse a un cuelgue de Aptana debido a que no detecta bien el bucle infinito de enlaces simbólicos que se crea dentro del subdirectorio vendor cuando se crea la aplicación con un típico rails [nombre de la aplicación] (al menos si has usado los paquetes de ubuntu, incorrecta forma de instalar rails, por cierto).
Historias y rayadas aparte, si quieres importar tu proyecto de ruby on rails a Aptana/Eclipse, algo así como el típico mvn eclipse:eclipse de maven en el mundo Java, he hecho una tarea para rake, para realizar este proceso. Creará los ficheros necesarios para poder importar luego el proyecto desde Aptana, y eliminará los enlaces simbólicos malignos que he comentado en el anterior parrafo en caso de que existiesen.
Simplemente descargamos el fichero y lo colocamos en lib/tasks, y ejecutamos rake aptana:aptana. Esto nos creará en el raíz de nuestro proyecto dos ficheros, .loadpath y .project, que harán que nuestro proyecto pueda ser importado en Aptana (File, import, Existing projects..., y tal).
Esta obra está bajo una
licencia de Creative Commons.
Este blog funciona gracias a WordPress
con el theme GimpStyle
diseñado por Horacio Bella y adaptado por un servidor.
Feed entradas
