Tag Archives: programacion

Temas Calientes Trending Topics

Yaaa se que esto de Twitter a todo el mundo lo tiene aburrido, todos los videocasts y blogs hablan 90% de Twitter, 5% de Apple y 5% de cualquier otra cosa, pero para estar ocupado un rato se me ha ocurrido algo. Cómo puedo hacer para saber de que esta hablando la gente que esta en Twitter y es de Nicaragua? Siiii así como los Trending Topics de Twitter pero regionalizados.

Hasta ahora he encontrado mucha gente con la misma curiosidad, ¿Cómo hace Twitter para calcular sus Trending Topics? sin embargo nada en concreto como respuesta.

Mi solución temporal a la pregunta es:

  1. Obtener el friendstimeline del usuario @twittnic, cada 5 o 10 minutos, que es el que sigue a todos los nacionales y quizá unos cuantos extranjeros.
  2. Dividir todos los mensajes en palabras y contar la cantidad de apariciones de las palabras.
  3. Tomar las 10 palabras con puntaje más alto y mostrar una bonita lista, como la de Twitter ;-).

No pidan mucho de una idea que nace mientras se ve el piso sentado en el …

Si alguien le gusta la idea y quiere decirme como hacerlo mejor, ¡ya tenemos un proyecto!

Tagged , , ,

@losesclavos how-to

Para muchos de ustedes quizás les sea conocido el sitio web http://www.esclavosdelsistema.net/ desde donde se pueden enviar mensajes de twitter anónimos. Recientemente sus creadores han amenazado con censurarlo y hasta cerrar el servicio. Para esto, les comparto un rápido ejemplo de como crear su propio sitio tipo @losesclavos 😉

El procedimiento es muy sencillo una vez que nos apoyamos de una librería PHP Twitter que se encarga de dialogar con Twitter el resto es carpintería.

Tagged ,

DrupalCamp Centroamerica

Sin planes previos para asistir, pasé esta mañana disfrutando y compartiendo con viejos amigos y amigos nuevos en el Drupal Camp Centroamericano, que reunió a muchas personas de “toda centroamérica”.

Me pareció una muy buena experiencia, una de las pocas a regionales a las que he asistido. Es muy bueno sobre todo cuando se interactúa con otros usuarios/desarrolladores de diferentes países que enriquece y fortalece los lazos tanto de amistad como de desarrollo/contribuciones inter-regionales. Aprovechamos para hacernos los periodistas modernos informando desde twitter 😉

El Encuentro Centroamericano de Software Libre esperamos que sea el evento regional más grande organizado/realizado en Nicaragua, con personalidades de todo centroamérica, Venezuela, Ecuador y más.

Tagged , , ,

RoR: Agregar FK a una tabla

En RoR resulta muy cómodo utilizar la herramienta rake para manejar la estructura de una BD así como el cambio de versiones. Recientemente me topé con el caso de necesitar agregar una llave externa FK a una tabla existente, en intente hacer la referencia normalmente según rake

ruby script/generate migration add_comment_to_post post:reference

Pero esto no resultó, luego de horas de búsqueda y lectura me doy cuenta que no es posible agregar una FK a una tabla existente utilizando el generador migrate pero que si se puede hacer manualmente y reutilizarse par futuro.

Creemos la migración,

ruby script/generate migration add_post_to_commet

luego vamos a editar db/migrate/XXXX_add_post_to_comment.rb como nos sugiere el nombre, vamos a pasar el id de la tabla post a la tabla comment.

#add_user_to_post.rb
require "migration_helpers"

class AddUserToPost < ActiveRecord::Migration
extend MigrationHelpers

def self.up
#add_foreign_key (:mainentity, :mainentity_id, secundaryentity)
add_foreign_key(:users, :id, :posts)
end

def self.down
#add_foreign_key (:mainentity, :mainentity_id, secundaryentity)
remove_foreign_key(:users, :id, :posts)
end

end

Para comprender lo que acabamos de hacer hay que crear el siguiente helper helpers/migration_helpers.rb

#migration_helpers.rb
module MigrationHelpers

def add_foreign_key(from_table, from_column, to_table, options = {})
constraint_name = foreignkey_name(from_table, to_table)
column_name = foreignkey_column_name(from_table, from_column)

execute %{alter table #{to_table} add #{column_name} INT not null} if options[:add_column]
execute %{alter table #{to_table}
add constraint #{constraint_name} foreign key
#{index_name(column_name)} (#{column_name}) references #{from_table}(#{from_column})
#{ options[:cascade].map{ |cas| " ON #{cas} CASCADE" }.join if options[:cascade] }
}
end

def remove_foreign_key(from_table, from_column, to_table, options = {})
constraint_name = foreignkey_name(from_table, to_table)
column_name = foreignkey_column_name(from_table, from_column)

execute %{alter table #{to_table} drop foreign key #{constraint_name}}
execute %{alter table #{to_table} drop #{column_name}} if options[:remove_column]
end

def create_index(table, *columns)
execute %{create index #{index_name(columns)} on #{table} (#{columns.join(',')}) }
end

def remove_index(table, *columns)
execute %{drop index #{index_name(columns)}on #{table}}
end

private
def foreignkey_column_name(from_table, from_column)
"#{from_table.to_s.singularize}_#{from_column}"
end

def foreignkey_name(from_table, to_table)
"fk_#{from_table}_to_#{to_table}"
end

def index_name(*columns)
"idx_#{columns.join('_')}"
end
end

Con esto estamos listos para hacer

rake db:migrate

y se crea una nueva columna llamada post_id en la tabla comments utilizando rake migrations al igual que se destruye cuando se cambia de version.

La historia completa: http://railsforum.com/viewtopic.php?pid=85698

Tagged ,

PHP Love

“Si me quieres, te querré más y más a cada instante mientras viva, porque si no me quieres no soy nada”

Original de Lautreamont. Por supuesto que ya di a hacer mi camiseta 😉

Update: PHP haters strike back 😀

Tagged , ,

FJ Ceballos @ UNI

Para la formación lo más importante es leer y para aprender a programar tuve que leer, leer libros de Francisco Javier Ceballos, que se estará presentando el Lunes 14 de Julio de 2008 a las 9 am en el auditorio Salomón de la Selva de la Universidad Nacional de Ingeniería.

El tema de su charla es .NET + Mono, que es el tema de su más reciente libro que supongo anda promocionando.

Supongo que habrá que llegar temprano pues en dicho auditorio no caben más de 200 personas.

PD: Ya veremos si ahí se puede hacer el SFD 2008.

Tagged , , , ,

Mesa de Investigación y Desarollo.

Durante el TPE de ayer participe en la mesa de investigación y desarrollo donde teniamos previsto abordar sobre al menos 6 proyectos, sin orden de importancia: Servidor de notificaciones SMS, Distro Nica, SL en Miskito, Propuesta de Kiosco tecnológico con SL, Flisys y Almidon.

Entre los participantes de dicha mesa estaban: Adolfo Fitoria, Luis Landero, Angel Bonilla, Jorge Solorzano, mi persona, además de Leandro Gómez y Gerald Lanzas que aportaban un poco a cada mesa.

Como se pude ver son muchos los proyectos en esta mesa por lo que lógicamente no terminamos de analizar todos los proyectos así que elegimos a que proyectos dar prioridad:

  1. Software Libre en Miskito: La meta de este proyecto es; Proveer a la comunidad miskita un un conjunto de herramientas informáticas en su idioma que permitan su integración con la sociedad de la información. Este proyecto es el más grande de todos, tanto así se dividió en etapas basándose esta mesa de trabajo en la definición de la primera etapa “Planeación y Divulgación” que se compone algunas actividades como: buscar contactos con Instituciones/personas naturales que nos ayuden a contactar a su vez con traductores que es lo que menos tenemos en este momento y a su vez elaborar un directorio o BD de contactos afines/interesados al proyecto. Elaborar un documento que describa todo el proyecto y nos sirva para presentarlo a instituciones interesadas en patrocinar participar con el proyecto.
  2. Propuesta de creación de Kiosco Tecnológico usando Software Libre: La meta de este proyecto es elaborar una propuesta de creación de un kiosco tecnológico de acceso público a la sociedad en general, que luego podría ser tomada como referencia por el gobierno de la república para (re)implementar el proyecto de KT en los barrios y demostrar la factibilidad de hacerlo utilizando tecnologías de Software Libre. Entre las actividades para este proyecto tenemos la elaboración de Factibilidades Técnica, Económica y Operativa/Funcional, cotizaciones de hardware y software privativo, análisis comparativos de dichas cotizaciones, análisis de ventajas y desventajas, listado y análisis de alternativas de aplicaciones.
  3. Servidor de Alertas SMS: la meta de este proyecto es construir/implementar un servicio de alertas SMS para la comunidad, previa suscripción al servicio. Nos planteamos ciertas tareas como descubrir algún proyecto existente que sirva para alcanzar nuestra meta; en caso que no encontremos, definir lenguaje de desarrollo y almancen de datos, investigar como funciona el servicio de mensajería vía web con los proveedores locales de mensajería celular, etc. Para este proyecto existe una ONG interesada en su desarrollo o investigación, lógicamente de ser construida se liberará usando licencia GPL. Si se están preguntando para que tener un servicio de alertas pues las respuestas son muchas, ser usará mucho en recordatorio de actividades, noticias, invitaciones a eventos, etc.

Espero que este pequeño resumen les haya servido para darse una idea de lo que hicimos ayer los Grupos de Usuarios de las 9am a las 5pm. Si alguien está interesado en participar con cualquiera de los proyectos, pueden ponerse en contacto con nosotros a través la lista de correos de los grupos de usuarios, gul-ni arroba linux punto org punto ni ó escribirme directamente al correo marconipoveda arroba ubuntu punto org punto ni.

Tagged , , , ,

RoR: Strike One

Es muy posible que sigan apareciendo artículos como este:

http://www.zedshaw.com/rants/rails_is_a_ghetto.html

Aún no termino de leerlo (son 24 páginas versión impresa) pero han salido a la luz un par de cosas (no puedo decir que si verdaderas) que suceden “hasta en las mejores familias”.

Tagged , ,

Mala Eleccion

Hace unos meses, cuando mi cell estaba por dar la queda (ahora ya la dio) me buscaba desesperadamente una aplicación del tipo phonebook o agenda telefónica pero no directamente relacionada con el cliente de correo por que no estoy muy acostumbrado a usarlo, entonces necesitaba algo mas ligero y sobre todo portable.

Mientras use KDE (hace bastante tiempo) use Kontact unos días y me gustó pero luego lo deje por usar Gnome, ahora que me veía en la necesidad busque y busque hasta que me encontré entre las aplicaciones de Ubuntu a Contacts y me gusto la sencillez y facilidades, pero tenia una historia oculta que la convertiría en una mala elección. Con mas o menos 300 números telefónicos y nombres pase 4 horas transcribiendo del ex-cell a la nueva aplicación que parecía perfecta hasta que quice pasar todos mis contactos a la misma aplicacion en otra máquina desde entonces la magia terminó y vaya manera de terminar.

Por el momento estoy empecinado en no invertir otras 4 horas pasando los numero a otra aplicación, por el contrario pienso hacer algo mas difícil todavía, involucrarme con el desarrollo del proyecto y realizar las mejoras que necesito.

Tagged , , ,

Una comunidad que vuelve

Gracias a Guegue una de las comunidades de informática mas fructíferas de Nicaragua vuelve a las redes…

Las mamacitas de la informática están de vuelta con nueva nuevo hosting, nuevo dominio, nueva plataforma y más preparados que nunca. Todo listo para la apertura oficial el 1ero de Octubre.

http://informaticanicaragua.net

Tagged , , , , , , , ,