
14 de abril del 2008

Escrito por Alex Barros
Una vez más se demuestra mi teoría de que TODO puede hacerse via web, sólo se necesitan programadores dispuestos a crear el servicio.
Esta vez es el caso de un compilador/intérprete de lenguajes via web. Se llama CodePad, y admite lenguajes tan conocidos como C, C++, D, Perl, Python, Ruby y algunos más.
He hecho unas cuantas pruebas con código C rebuscado y efectivamente compila y ejecuta de forma correcta, incluso te explica los errores de código si los hay.
Una idea similar tube hace algún tiempo, pero no fructificó el proyecto, ahora me quito el sombrero ante lo que ha hecho Steven Hazel (el desarrollador). Parece ser que ha sido desarrollado en Python, y que ha puesto énfasis en la seguridad. Aún así insta a hackers que comuniquen sus éxitos.
A partir del buen servicio que ha conseguido CodePad, se podría explotar ahí una comunidad de desarrolladores muy guapa, o crear toda una plataforma web para programadores, para que cuelguen sus proyectos de Software Libre, los promocionen, interactúen, y tengan a mano herramientas tan interesantes como el compilador, o un editor de código que esté bien. Sería una idea nada despreciable.
via wwWhat’s New
Categorias: Aplicaciones, C, Código |
3 comentarios »

11 de abril del 2008

Escrito por Alex Barros
A raíz del post anterior haciendo mimetismos entre lenguajes de programación y embarcaciones, nos encontramos con que al lenguaje de programación PHP se le asignaba una triste balsa de bambú.
PHP is a bamboo raft. A series of hacks held together by string. Still keeps afloat though.
PHP es una balsa de bambú. Unos cuantos apaños unidos con una cuerda. Aún así consigue ir a flote
Me parece un juicio muy injusto, y a los comentaristas de Boozox también!
- Memiux: [...] un poco exagerado lo de PHP xD
- daniel: El que diga eso de php, es que no tiene ni idea [...]
- Jose D: [...] yo también defiendo a php que está que se sale por todos lados [...]
Coincido con todos ellos, PHP no es una triste balsa da bambú! PHP es un lenguaje muy potente sobretodo para lo que está enfocado (desarrollo de webs dinámicas). Cuenta con infinidad de funciones y bibliotecas útiles para cualquier cosa que se te pase por la mente, y de hecho un porcentaje muy elevado (la mayor parte) de las webs en internet están respaldadas por este lenguaje.
No en vano, webs como Youtube, yahoo, wikipedia, facebook, digg, flickr…. han elejido como lenguaje idóneo el PHP.
Se le acusa de provocar desorden en el código y en la estructura de los programas, pero esto es un hecho que se desprende de la habilidad y la experiencia de quien programa.
Es posible que el hecho de que la versatilidad y facilidad de PHP permita su uso a personas inexpertas, de como resultado la proliferación de código de mala calidad, pero no se puede generalizar, y declarar que en PHP se programan apaños y chapuzas.
He programado toda mi vida en PHP y jamás me ha presentado una frontera, el límite ha sido siempre mi imaginación.
Por ello quiero defender el papel de PHP, y promover su uso para cualquier tipo de tarea en internet.
Larga vida a PHP !!!!
Categorias: Aplicaciones, Código, Opinión, PHP |
10 comentarios »

29 de marzo del 2008

Escrito por Alex Barros
De acuerdo, voy a comentaros qué me ha tenido todo este tiempo tan ausente.
He dedicado la mayor parte de mi tiempo a desarrollar la primera versión de la aplicación Geo. Geo es una aplicación web para compartir rutas captadas con GPS.
Detrás de Geo hay toda una infraestructura de objetos y algoritmos que me ha costado mucho de elaborar (los últimos tres meses), pero puedo decir que estoy muy orgulloso del resultado, y es una base genial para continuar haciendo de Geo una herramiente potente de aquí en adelante.
Como es lógico he liberado Geo (en realidad se llama GeoGPS) con la licencia GNU/GPL, pero esta vez he querido llegar más lejos, y lo he enviado como proyecto a Sourceforge, donde tendrá todas las atenciones que un buen proyecto libre merece.
Por ahora podéis leer (y agregaros al RSS) el blog que he creado y actualizo para este proyecto, y navegar entre las casi 100 rutas con las que ya cuenta la web de Geo.
Me disculpo por la escasa actualización de este blog. Entre la universidad y proyectos como Geo, no me queda apenas tiempo…
Un saludo a todos!
Categorias: Aplicaciones, Código, Novedades, Software libre |
4 comentarios »

29 de febrero del 2008

Escrito por José Cabo
Explicados los lenguajes esotéricos, quizás en clave de humor o quizás algo serio. Quisiera aportar algo sobre lenguajes algo más útiles. En este caso del lenguaje C aunque posiblemente aplicable a muchos otros.
No voy a expandirme pues no pienso profundizar demasiado, pero espero que la mayoría lo conozcáis o al menos sepáis en que consiste. Tenéis más información al respecto en la Wikipedia sobre la historia de este lenguaje.

Recientemente en clase de Programación de mi Universidad nos han enseñado un método de programación que hace uso de la recurrencia y de las funciones. Es decir, nos han enseñado las llamadas funciones recurrentes. Estas funciones son aquellas que se llaman a sí mismas hasta llegar a resolver la forma más simple de un problema. Un ejemplo de código sería:
-
-
/*Factorial de un número*/
-
int func (int var) {
-
if (var==1) return 1;
-
else return func(var-1)*var;
-
}
-
Este método es fácil de entender, es más, no tiene mayor complicación que el hecho de entender la propia recurrencia. Pero me gustaría compartir con vosotros que fue gracias a este método que estoy desarrollando un programa capaz de calcular las tablas de verdad de un circuito lógico. Hablo de Bloodtraining Lógico (nombre todavía pendiente…). ¿Tablas de verdad?, ¿circuito lógico? Bueno… es la unión de varias cosas de estas.
Ahora, llegando al punto de hacer publicidad de mi programa relativamente útil y, después de que comprendáis el porqué de su comienzo…

El programa más que por su utilidad me sirvió para entender las funciones recurrentes y, además, para echar una mano a mis compañeros de clase que usan un sistema diferente a Windows (Bloodtraining también es compatible con Windows). Podéis acceder a Bloodtraining Lógico desde Codis, descargarlo y comprobar todas sus últimas features (Y decirme como solucionar los errores que encontréis que los hay):
- Actualmente soporta cualquier entrada de datos de tipo: (variable1,&,variable2) en donde variable1 es a y variable2 es b.
- Soporte de puertas: AND &; OR |; NAND /&; NOR /|
- Además, pueden negarse las salidas tanto de las variables (variables negadas) como de las salidas (puertas NAND y NOR) escribiendo el carácter / delante de la correspondiente variable o puerta. Ejemplo: (a,/&,/b) –> Es una puerta NAND de dos entradas con la variable b negada.
- Se permite la composición de circuitos. Ejemplo: ((a,&,b),/|,((/a,&,b),|,b)).
Actualmente es una rc1 pero en breve sacaré la 1.0 cuando corrija los bugs que han quedado por ahí sueltos.
Categorias: Aplicaciones, C, GNU/Linux, Multiplataforma, Software libre, Windows |
1 comentario »

20 de diciembre del 2007

Escrito por Alex Barros
Acaba de lanzarse una herramienta del todo curiosa y particular.
Se trata de un generador de un código especial, para que en tu web el texto se acople a determinada forma o figura.
Símplemente tienes que dar la forma que quieres con dos líneas (el márgen izquierdo y el derecho) y dejar que genere el código necesario.
Aúnque no muy ortodoxa, la técnica es perfectamente accesible en términos web. Ahora, que esto desemboque en una buena idea, o en la horterada 2.0 premio a la usabilidad nula del 2007, ya no depende del sistema.
Categorias: Aplicaciones, Código, Curioso, Diseño |
No hay comentarios »

8 de diciembre del 2007

Escrito por Alex Barros
Hace ya más de cuatro meses que lancé uno de mis últimos proyectos: recolectar la información de los internautas, para mostrarla públicamente.
He de reconocer que no me esperaba la acogida tan grande que tuvo. Ahora mantiene una recogida de datos constante, desde unas 50 webs muy distintas en temáticas, más de 3.000 registros diarios.
GStat fue una de tantas ideas que se me habian ocurrido, y me llevó cerca de una semana su desarrollo. Por supuesto tengo que revisarlo diariamente para corregir cosas, y comprobar que todo marcha bien.
Sin embargo, creo que tiene mucho más potencial, y he reunido fuerzas de nuevo para avanzar significativamente en el desarrollo de GStat. Tanto es así, que este proyecto va a pasar a llamarse genStats.
Este nuevo proyecto contará con muchas gráficas nuevas, interactivas y personalizables. Además, la interfaz va a ser mucho más cómoda, atractiva y manejable.
Surgen problemas cuando la base de datos roza el millón de datos, y quiero trabajar en complicadas estadísticas. Por eso, la optimización es uno de los puntos fuertes en los que estoy trabajando. He pedido consejo a algunos expertos, y estoy empollando enormes manuales de SQL. Ya he conseguido que gráficas que tardaban más de 10 segundos en ser representadas, tarden 0.2 segundos.
A medida que vaya haciendo importantes avances en la materia, iré comentándolos en este blog. Por ahora podéis apreciar el aspecto que van tomando las gráficas:
Registros totales diarios
Las 4 webs que más han aportado (excluyendo microsiervos.com, porque tiene unos números excesivamente grandes…)
[Añadido] Porcentaje de participación sobre el total de las 4 webs con más aporte (incluyendo microsiervos.com)
Puede observarse que originalmente se recolectaron TODOS los usuarios, y posteriormente se limitó la aportación de cada web.
Categorias: Aplicaciones, Boozox, genStats, Internet, Novedades, Web |
No hay comentarios »

7 de diciembre del 2007

Escrito por Alex Barros
Tienes problemas para que funcione Imaset?
Hasta ahora algunas personas tenían problemas para que el plugin Imaset en la versión 2.1 les reconociera las imágenes.
Ya he conseguido dar con el problema, y he cambiado el archivo de descarga para que sustituyáis los archivos en el plugin.
El problema que ocasionaba esto es bastante complejo de explicar, pero está relacionado con la yuxtaposición de arrays. En el código de Imaset yo había optado por usar la función array_merge(), la cual une los arrays que le pases como parámetro, pero esta función no mantiene los índices numéricos, y para la aplicación era importante que los mantuviera.
La solución es usar el concatenador básico de arrays, es decir, el operador suma.
-
$a1 =
array(5=>
"ABC",
12=>
"DEF");
-
$a2 =
array(30=>
"PPP",
50=>
"UIO");
-
-
$a3 = $a1 + $a2;
-
-
/* Ahora $a3 es:
-
a3[5] = "ABC"
-
a3[12] = "DEF"
-
a3[30] = "PPP"
-
a3[50] = "UIO" */
Categorias: Aplicaciones, Boozox, Código, PHP, Plugins |
11 comentarios »

28 de noviembre del 2007

Escrito por Alex Barros
nueva version 2.2 Al fin me decido a liberar la versión 2.1 de Imaset.
El plugin lleva unas semanas finalizado, pero he estado probándolo en diferentes servidores y distintos navegadores y, dada la gran cantidad de modificaciones internas que trae este nuevo plugin, han surgido una serie de incompatibilidades.
Sin embargo he decidido lanzar esta versión, ya que la considero estable (a falta de solucionar algunos bugs) para que quien no se vea afectado por estas incompatibilidades pueda ir disfrutando.
Problemas conocidos
Fundamentalmente dos:
- Dada la nueva implementación de filtros almacenados en archivos externos, hay dos filtros que en algunos servers no dan buenos resultados. Estoy trabajando en solucionarlo para posteriores versiones
- No funciona en Internet Explorer 6. Esto no me sorprende… es cosa del JavaScript, y también trabajo en hacerlo compatible.
Y ahora, lo más importante:
Novedades de Imaset 2.1
Sigue leyendo esta entrada »
Categorias: Aplicaciones, Imagen Digital, Novedades, Plugins, Software libre, Wordpress |
35 comentarios »

16 de noviembre del 2007

Escrito por Alex Barros
Imaset 2.1 está muy cerca. La primera beta ya está siendo distribuida entre algunos beta-testers, y la versión definitiva no tardará mucho en llegar.
Dado el éxito que tuvo la versión 2.0 del plugin, para esta siguiente versión (2.1) he decidido reestructurar todo el código, de arriba a abajo, para hacerlo mucho más modulable.
En esta nueva versión, se incluye un archivo settings.php, en el cual pueden configurarse algunas características, como el color de fondo de tu web, el idioma que quieres para la interfaz, y algunas características más.
El peso de la navegación se ha llevado al JavaScript, con lo que el plugin resulta notablemente más fluido, rápido y cómodo.
Una de las novedades más importantes, es que los filtros se almacenan en forma de archivo XML (excepto los considerados del “núcleo” de Imaset). Esto tiene tres ventajas:
- La administración de filtros es sencilla, basta con borrar el filtro que no quieres, o subir por FTP uno nuevo
- Si quieres disfrutar de un nuevo filtro, basta con subir un pequeño archivo.
- Los programadores no tienen que entender cómo funciona interiormente imaset. Los filtros están muy estandarizados, y resulta muy fácil crear nuevos, siguiendo la API que próximamente será publicada.
Por último, recordar que el plugin estará disponible en algunos idiomas. En principio en Español, Inglés, Chino, Italiano y Rumano. Por defecto el plugin se muestra en inglés, pero puede modificarse muy fácilmente en settings.php
Este fin de semana se realizarán los beta-testeos y las traducciones oportunas, y muy pronto será el estreno mundial.
P.D.: También guardo otra pequeña sorpresa sobre Imaset, pero tendréis que esperar un poco más para conocerlo.
Categorias: Aplicaciones, Boozox, Imagen Digital, Novedades, Plugins |
4 comentarios »

2 de noviembre del 2007

Escrito por Alex Barros
Lo que hoy quiero mostraros es una genial librería, que facilita increíblemente el manejo de archivos zip con PHP; únicamente habrá que incluir un archivo a nuestro código, para gozar de toda su funcionalidad para abrir, explorar y crear archivos de tipo Zip.
Instanciación
El primer paso para usar esta librería es siempre el mismo, independientemente de lo que queramos hacer:
-
require_once("pclzip.lib.php");
-
$archivo = new PclZip("archivo.zip");
Como se observa, hemos incluido el fichero de la librería, y hemos instanciado la clase PclZip, con un nombre de archivo.
Este nombre de archivo puede ser uno existente, que queremos manipular, o uno inexistente, que queremos crear a continuación. Será más adelante cuando le indicamos lo que queremos hacer con archivo.zip (leer o escribir), hasta aquí únicamente lo hemos referenciado.
Sigue leyendo esta entrada »
Categorias: Aplicaciones, Código, HOWTO/CóMO, PHP |
19 comentarios »