sábado, 30 de agosto de 2008

Salio el GWT 1.5

El 28 de agosto el lanzamiento del nuevo GWT, para los que no les guste estar trabajando CSS, XHMTL + JavaScript este potente framework permite una programacion basada en Java con todas las caracteristicas de esta tecno.

Entre las mas notorias mejoras estan:

  • Soporte para Java 5 (Genericos, Vargars, AutoBoxing, static import, etc).
  • Mejor rendimento y optimizacion para iteroperabilidad con JavaScript
  • Mejores Widget y faicilidad de uso de DOM.
Info oficial....

viernes, 29 de agosto de 2008

Ya viene, its coming, ... SFD


Este post, casi lo tome prestado del blog de |\|0rman. Promete ser un evento excelente y con mucha actividades interesantes; empezando con que hicieron una pagina multi-language y a pesar que no se ni sueco ni esperanto manejo algo de Aleman y la traduccion es bastante buena, veamos como se hace tiempo para ir a este evento.



Mas info? visita el sitio oficial

Plexinium concurso rapid$hare-plex

La iniciativa no es mala, de hecho me parece interesante y es que se quiera o no se quiera... Plexinium ha logrado obtener popularidad en varios circulos de jovenes no solo informaticos, tambien gente que es fantaica de SMS por la web; si bien es cierto es cuestionable, no creo que sean una influencia negativa en la informatica nicaraguense, mas bien una fuerza opuesta a muchas convenciones, antes de salirme mas aqui esta como te ganas una cuenta rapidshare:

Plexinium te regala una cuenta de un mes de Rapidshare

Las reglas son las siguientes:

  • Solo participan usuarios registrados del foro.
  • Tienen que tener mas de 50 post.
  • Al menos 10 temas comenzados por el usuario
  • 5 de esos temas tiene que ser aportes.
  • No participan ni moderadores ni administradores.
  • Cada usuario tiene oportunidad de 3 acciones


La dinámica es la siguiente:
Si un usuario desea participar tendrá que escribir un post, si es el primero, escribirá, "accion numero 1", si es el segundo, "accion numero 2" y asi sucesivamente, en la cual tienen oportunidad de participar tres veces como máximo.


Aclaratoria: el autor de este blog no toma ningun partido con las actuales discusiones(pleitos) entre grupos informatico

jueves, 21 de agosto de 2008

CSV a BD en .NET

Ojala el siguiente Script les sea de utilidad. Es un pequeno algoritmo que permite leer un archivo CSV y con un Dictionary vincular los nombres de las columnas del CSV a las columnas de una Base de datos (yo use postgres) pero es util para casi cualquiera (con algunos cambios en la conexion y comandos). Ese es el codigo:


Creamos la clase y algunas propiedade:
fileName--> el archivo CSV
datas-> colleccion de daos que tendra arreglos de tuplas.
columndatas--> los nombres de las columnas que son los datos de la primera fila
delimiter--> el delimitador generalmente ; o ,

Luego un constructor sencillo.

Public Class CSVExporter

Private fileName As String
Private datas As New Collection()
Private columnDatas As String()
Private delimiter As String = ";"
'filename: define el nombre del archivo CSV a exportar
Public Sub New(ByVal fileName As String, Optional ByVal delimiter As String = ",")

Me.fileName = fileName
Me.delimiter = delimiter
End Sub

Ahora hacemos un metodo que pueda leer el CSV:

Private Sub leerCSV()

Try
'Revisa si el archivo existe
If File.Exists(fileName) Then

'Abre un flujo de lectura
Dim streamReader As New StreamReader(fileName)
'Se crea un arreglo de almacenamiento
Dim datos() As String

'un Contador me permite saber si estoy en titulos
Dim count As Integer = 1
Do While (streamReader.Peek() >= 0)

If count = 1 Then
'La columna de datos para identificarla
columnDatas = streamReader.ReadLine().Split(delimiter)

Else
'se leen los datos y se asignan al arreglo
datos = streamReader.ReadLine().Split(delimiter)
'AHORA se asignan a una coleccion de datos

datas.Add(datos)
End If
count += count
Loop
End If
Catch ex As Exception

End Try

End Sub

El cual recorre el fichero inicializa el arreglo titulos y tambien la coleccion de datos.

Para ingresar valores a la Base de datos se utiliza el siguiente metodo

'Pra efectos de ejecutarse en otro gestor cambiar la conexion
'En mi caso use postgres pero sigue casi los mismos pasos
Public Function escribirBD(ByVal diccionario As Dictionary(Of String, String), ByVal conn As NpgsqlConnection, Optional ByVal tabla As String = "personas") As Boolean
leerCSV()

Dim command As New NpgsqlCommand()
command.Connection = conn
conn.Open()


Dim columnas As String = "("
For Each columna As String In columnDatas
columnas &= diccionario.Item(columna) & ","
Next
columnas = columnas.Substring(0, columnas.Length - 1) & ")"


Dim sqlString As String = ""
For Each valores As String() In datas
Try
sqlString = "insert into " & tabla & columnas & " values ("
Dim dataSQL As String = "'"
For Each valor As String In valores
dataSQL &= valor & "','"
Next
dataSQL = dataSQL.Substring(0, dataSQL.Length - 2) & ")"

sqlString &= dataSQL
command.CommandText = sqlString
Dim postgresReader As NpgsqlDataReader = command.ExecuteReader
Console.WriteLine(sqlString)

Catch ex As SqlException
Return False
End Try
Next

' Console.ReadLine()
Return True
End Function

Para usarlo entonces utilizamos podemos proceder al siguiente Module que tiene Main.

Imports System.Collections
Imports Npgsql

Module MainModule
Sub Main()
Dim excel As New CSVExporter("C:\\archivo.txt")
Dim csv_tabla As New Dictionary(Of String, String)
csv_tabla.Add("Nombre", "name")
csv_tabla.Add("Apellido", "last_name")
csv_tabla.Add("Edad", "age")

Dim conn As New NpgsqlConnection("Server=127.0.0.1;Port=5432;Userid=postgres;password=postgres;Protocol=3;SSL=false;Pooling=true;MinPoolSize=1;" & _
"MaxPoolSize=20;Encoding=UNICODE;Timeout=15;SslMode=Disable;DataBase=basedato")

excel.escribirBD(csv_tabla, conn, "persona")

End Sub
End Module

Aqui puedes descargar ambos archivos.

lunes, 18 de agosto de 2008

DebianDay, una critica a la comunidad

Pensando bien el titulo de este post me parecio lo mas directo, por que de eso trata, pense en "observacion", " mis anotaciones del debian day", pero este me parecio mas apropiado para llamar la atencion, a pesar que muchos en la comunidad desestimaran este post, espero que tambien que al leerlo se olviden de falacias cognitivas.

Ok, habiendo dicho el preambulo, prosigo a dar mi humilde opinion a lo que fue el "Debian Day". Mi destino era la Universidad Nacional de Ingenieria, en el Auditorio Salomón de la Selva- IES, el objetivo era dar un vistazo al que me parecia un interesante evento, que prometia, "concursos, conferencias, discos e instalaciones y demas", y he ahi yo a las 3:00 pm a 2 hrs de finalizar el evento me encuentro con un escenario diferente al que me esperaba, aqui estan el resumen de puntos que no me parecieron apropiados en el debian day:

  • Tan solo pude ver una maquina que tenia Debian, en comparacion con la constelacion de distribuciones destacaban Suse (3), Ubuntu(1), kubuntu(1).









  • Observe solo dos participantes portando orgullosos su camiseta de Debian, prosiguiendo con el arsenal de distribuciones ubuntu(2), suse(3).









  • No estoy seguro si era participante o miembro, pero maquinas con Windows..... no es por ser elitista pero era Debian Day no?
  • El evento termino pronto 3:30-4:00... osea cuando llegue estaban empacando.
  • Quizas por que llegue tarde pero me fije mas explicaciones acerca de Suse que de debian.....

Estoy seguro que tras esta lectura muchos miembros de la comunidad GUL diran, "pues lo hubieras hecho vos", o "eso es mentira", "ta loco ese mae", entre otras cosas. Como recomendacion de mi parte evaluar un poco mas a su audiencia para evitar que la comunidad de Usuarios Linux pase a ser una comunidad de Instalacion de Linux, en otras palabras ser mas activos como creo se discutio en el TPA II.

Una tecnica recomendada para evaluar el nivel de satisfaccion o encontrar puntos debiles es realizar feedbacks en cada evento, como hojas de evaluaciones a una poblacion aleatoria y luego sacar las cuentas estadisticas.


PD: Esperando con ansias y seguramente un SFD.

miércoles, 6 de agosto de 2008

UOC libera material

La UOC Universidad Oberta de Catalanya publica en la red su material de maestria internacional en software Libre, en formato PDF imprimible con un enlace al codigo fuente otra prueba mas del avance de libertad puede tambien ser de contenido didactico, los 14 cursos son los siguientes:

  1. Introducción al software libre.
  2. Sistema operativo GNU/Linux básico.
  3. Administración avanzada del sistema operativo GNU/Linux.
  4. Implantación de software de sistemas libre.
  5. Redes de computadores.
  6. Ampliación de redes de computadores.
  7. Aspectos avanzados de seguridad en redes.
  8. Desarrollo de aplicaciones web.
  9. Bases de datos.
  10. Introducción al desarrollo de software.
  11. Conceptos avanzados en desarrollo de software libre.
  12. Ingeniería del software en entornos de software libre.
  13. Utilidades y herramientas de software libre.
  14. Aspectos legales y de explotación del software libre

Para descargarlos aqui.

domingo, 3 de agosto de 2008

Hasta luego a Tuxes y Pepinos

Este post lo dedico al cierre indefinidos de uno de mis favoritos blog, el cual tengo el agrado de ser lector desde abril de este año, sin embargo por cuestiones ajenas al escritor del blog ha decidido cerrarlo indefinidamente, lo cual es una lastima desde Aqui en Blognecronet le deseo suerte y le agradezco sus Post que han sido motivo de risa, ayuda y cuestion.

Hasta Luego a Tuxes y Pepinos