Vendedores de crecepelo
Enero 31st, 2006 - [Enlace local]
Alfredo de Hoces García-Galán ha escrito en el post de apoyo a Trabajo Basura:
En España, y presumiblemente en otros muchos países, el sector tecnológico es una estafa a gran escala donde se cobra por un conocimiento, una experiencia y una profesionalidad que no se tienen, un negocio bastante lucrativo en el que los miles de horas que se le roban al empleado y se le facturan al cliente se emplean en solucionar problemas que nunca debieron haberse producido y que son consecuencia directa de la
absoluta incompetencia y falta de preparación y de ética de los
directivos, casi todos pertenecientes a la simpática generación de los
autodenominados “nuevos emprendedores”, que en su mayoría no son más
que los pícaros y charlatanes de toda la vida que ahora se lanzan al
ruedo de las tecnologías disfrazados de JASP (Jóvenes Aunque
Sobradamente Prepotentes). Hace años vendían crecepelo y elixir de la
juventud, ahora crecebeneficios y elixir del valor añadido. En ambos
casos se aprovechan de lo mismo: la ignorancia y/o ingenuidad de
cliente, que para cuando se da cuenta de que no sólo sigue siendo calvo
si no que además tiene cáncer de piel, ya no encuentra al estafador por
ninguna parte porque se ha dejado barba, le ha cambiado el logotipo al
carro y ahora opera en el pueblo de al lado.
Se puede decir más alto, pero no más claro.
Tags:
Trabajo basura,
Ética profesional.
.
» Leer más, comentarios, etc...
La comunidad: NonSleep.com
Enero 31st, 2006 - [Enlace local]
Se presenta Emiliano, de NonSleep.com:
Hola, mi nombre es Emiliano Velasco, tengo 21 años, vivo en Barcelona, España.
Estoy muy contento de poder formar parte de ésta iniciativa llamada PlanetaCódigo. Realmente espero que los post, comentarios y artículos, puedan ser de utilidad para todos los usuarios de ésta comunidad y a la vez, para todo aquél que quiera encontrar información específica.
Actualmente me encuentro terminando un libro que trata de las Rich Desktop Applications (RDA).
Tengo más de 6 años de experiencia en el rubro, y mis habilidades se centran en el desarrollo de Rich Internet Applications (RIA), con
preferencia en tegnologías como Flash y Php / ColdFusion.
Por lo general, mis posts suelen tocar temas relacionados con Flash, ActionScript, Flex, Patrones de Diseño, ColdFusion, FlashComm, y en general, con los productos de Macromedia (Adobe).
» Leer más, comentarios, etc...
DB2 Express-C
Enero 31st, 2006 - [Enlace local]
Difícil se lo ha puesto IBM a MySQL y PostgreSQL al dejar gratuita una versión de su gestor de bases de datos: DB2 Express-C. Aunque es un producto "Lite", está disponible para Linux y para Windows, y las limitaciones que le ha impuesto IBM se refieren al hardware: no puede correr en máquinas con más de 2 procesadores o con más de 4 Gb de memoria; pero no hay limitación en cuanto al número de usuarios.
Vamos, que no es tan "lite".
Tags: database, db2.
.
» Leer más, comentarios, etc...
Otra de Aguayoki
Enero 31st, 2006 - [Enlace local]

Fuente:
http://www.facets.org/Images/computer%20boy.jpg
La siguiente “pregunta de ingenio” de Aguayoki es muy simpática. Casi la incluyo….
“Juan Pérez en un adicto usuario de Linux. Sin embargo, la mayor parte del tiempo se lo pasa sentado frente al televisor, o leyendo libros; su computador funciona lento por la gran cantidad de proceso que se le exige… Pero al momento de hablar Juan acerca de su equipo, da las más grandes alabanzas a su sistema, diciendo que es el más rápido conocido. Con estos datos, responda: ¿Qué distribución utiliza Juan Pérez?”
» Leer más, comentarios, etc...
Pequeños detalles
Enero 30th, 2006 - [Enlace local]
Y cuando creas software, ¿cuales son los detalles que a veces no rematamos? Por que hay que veces que las prisas, o las ganas de terminar ese proyecto tan pesado, te hacen olvidarte de los pequeños detalles.
- Generas código en el que te olvidas de algún posible error, aún sabiendo que esa excepción “es posible” que se levante.
- Realizas un diseño rápido, pensando que si hay algún problema ya lo solucionarás con más código.
- En Java, usas “+” para concatenar esos dos Strings que tenías perdidos por ahí.
- Al crear el HTML te olvidas de reducirlo a su mínima expresión para quitarle peso.
- Sabes cómo acortar ese bucle pesado, pero lo dejas para después.
» Leer más, comentarios, etc...
Thefull
Ayudando a Zonalibre
Enero 30th, 2006 - [Enlace local]
Bueno, desde aqui hemos puesto publicidad del Google, eso si, para Zonalibre....
» Leer más, comentarios, etc...
Blog sobre campings
Enero 30th, 2006 - [Enlace local]
A mi personalmente, y a mi familia, nos gusta ir de camping en lugar de ir hoteles, ese aire de libertad, de compartir…
Pero muchas veces hay dificultad para acertar el camping, aunque busques por Internet y leas en foros.
Estaría bien un blog profesional donde un par de viajeros se dedicaran a escribir sobre campings, fueran recorriéndolos, alojándose en ellos, viviendo unos días allí. Uno de ellos debería ir en plan tienda y el otro con una caravana o autocaravana, porque son cosas diferentes.
Claro que eso tiene un coste que no se si se cubriría sólo con publicidad, igual sería necesario un patrocinio de una empresa de autocaravanas o un fabricante de tiendas, o de Decathlon, o algo así.
» Leer más, comentarios, etc...
Alojamiento de curriculums
Enero 30th, 2006 - [Enlace local]
Últimamente estamos recibiendo curriculums porque queremos seleccionar a una persona para temas comerciales y a raíz de eso se me ha ocurrido una idea para un servicio web.
Se trataría de un alojamiento de curriculums. Se que las webs de búsqueda de trabajos ofrecen la posibilidad de escribir el currículo allí, pero lo que yo he pensado es un poco diferente. He buscado por Google y Yahoo! y no he podido encontrar nada diferente, no digo que no exista, si no que no lo he visto.
Se trataría de una página donde uno se registra gratuitamente, y puede rellenar una serie de datos para generar el currículo en formato PDF, con una serie de diseños para que cada uno escoja el que quiera, además de poder enseñarlo on-line
Lo que no tengo tan claro es si sería rentable como tal, el servicio se podría financiar de dos formas, una mediante publicidad contextual y otra ofreciendo un servicio de plantillas más avanzadas. Inicialmente ofrecer un par o tres de plantillas sencillas y otras más elaboradas y mediante el pago de una cantidad pequeña (unos 2 EUR) pudieras elegir otra plantilla, incluso generar varios PDFs. Pero no se yo si tendría suficiente demanda. Igual integrando el servicio dentro de sites de búsqueda de empleos.
Como yo no tengo capacidad para realizar las ideas que se me ocurren, creo, que como hacen otros, voy a ponerlas aquí y quien pueda que lo ponga en marcha.
» Leer más, comentarios, etc...
Waterfall 2006: el desarrollo ágil ha quedado desfasado
Enero 30th, 2006 - [Enlace local]
El desarrollo ágil está desfasado y se ha quedado viejo. Vuelve y resurge la metodología de desarrollo en cascada.- Las personas y su interacción son el problema, no la solución.
- El feedback es también el problema y no la solución.
- Es preferible el temor al coraje.
En la página del evento se dan más detalles; y sobre todo no olvidéis pasaros por la página de registro, antes de que se llene.
Vía From 9 till 2.
Tags: humor, software development.
.
» Leer más, comentarios, etc...
Extensiones para Rails: plugins, componentes y engines
Enero 29th, 2006 - [Enlace local]
Normalmente cuando leemos a alguien evangelizando sobre RoR se tratan los aspectos más espectaculares a primera vista del framework, a saber: generación automática de código a partir del esquema de la base de datos (scaffolding o andamiaje), separación conceptual imbricada en la misma esencia de la aplicación que nos lleva naturalmente a un código más organizado, soporte de AJAX usando Script.acoul.us, integración de pruebas automáticas del código…
Sin embargo normalmente no se le suele dar la suficiente importancia a una característica que, a mi juicio, tiene la misma relevancia que las anteriormente mencionadas. Ruby on Rails es extensible, y mucho. Y además lo es de una manera sencilla e intuitiva que sólo un lenguaje como Ruby puede permitir. Me remito a un ejemplo:
#!/usr/bin/env ruby
require 'Time'
r=Time.now
puts r.rfc822
Time::RFC2822_DAY_NAME=['Dom','Lun','Mar','Mie','Jue','Vie','Sab']
s=Time.now
puts r.rfc822
puts s.rfc822
Al ejecutar este script obtendremos lo siguiente:
Sun, 29 Jan 2006 19:04:10 +0100
./fechas.rb: 11: warning: already initialized constant RFC2822_DAY_NAME
Dom, 29 Jan 2006 19:04:10 +0100
Dom, 29 Jan 2006 19:04:10 +0100
Nótese que al redefinir una contante de la clase Time de Ruby estamos afectando no sólo a las instancias que se han definido a partir del cambio, sino también a las que ya estaban definidas. O lo que es lo mismo, podemos cambiar las mismas tripas del lenguaje dinámicamente (en este caso, de la librería estándar). Como es obvio, esto no es precisamente algo con lo que querramos complicarnos la vida por lo general, de forma que el intérprete de Ruby emite un aviso por la salida de error. Podemos redefinir cualquier cosa de una clase, no sólo una constante como en este caso sino métodos o incluso cambiar el carácter de lectura o escritura de un atributo
Por supuesto, Rails saca partido a esta camaleónica propiedad de Ruby y lo hace con lo que el mecanismo de plugins.
¿Qué son los plugins?
Son extensiones de Ruby on Rails que amplían el framework añadiendo o modificando cierta funcionalidad usando técnicas parecidas a las que hemos visto más arriba. Los plugins fueron introducidos oficialmente en Rails en la versión 1.0RC1, así que si tienes una versión anterior a esta más vale ir actualizándose
Un plugin es un ciudadano de primera clase: una vez que ha sido instalado (e inicializado en tiempo de ejecución) para el código de nuestra aplicación no hay forma de distinguir si cierta funcionalidad usada por nuestro proyecto está incluida en Rails, está proporcionada por algún plugin instalado, o está incluida en el core de Rails pero un plugin la ha interceptado y nos suministra una versión adicional.
El concepto es tan poderoso que puede usarse no sólo para extender el framework, sino también, como nos cuenta Chad Fowler, para ¡parchear código defectuoso!
Gestión de nuestros plugins
Otra característica interesante de estas extensiones es que se instalan a nivel de aplicación al contrario que, por ejemplo, otros mecanismos de extensión como las gems que afectan a todas las aplicaciones que tengamos en nuestra instalación de Ruby. Esto nos permite gran flexibilidad a la hora de probar y desplegar las extensiones que usamos. Sobre todo para esto último porque los plugins siempre se encuentran instalados en el directorio vendor/plugin de nuestra aplicación así que (salvo que no dependan de algún Gem específico) siempre los podemos subir y bajar a nuestro servidor sin preocuparnos de mucho más que satisfacer las posibles dependencias entre extensiones (lo cual se satisface si subimos el directorio en su totalidad)
Añado aquí que, aunque en teoría no es imprescidible, sí que es algo más que recomendable disponer de Subversion en nuestra máquina de desarrollo pues la mayoría de los plugins disponibles sólo pueden ser instalados usando un cliente de Subversion. Importante: no es necesario que pongamos nuestra aplicación bajo control de Subversion, sólo se usa este sistema de control de versiones para descargar el código de la extensión deseada.
Teniendo en cuenta lo anterior, sólo necesitamos saber que al igual que hay un repositorio más o menos oficial de extensiones a Ruby (las Gems) hay otro repositorio de plugins de Ruby on Rails, que viene dado por el conjunto de repositorios que están descritos en la esta página del wiki de Rails Con la herramienta adecuada podemos descargar e instalar en nuestra aplicación la extensión que deseemos, actualizarla, borrarla, etcétera. Y la herramienta adecuada no es otra que nuestro nuevo amigo, ruby script/plugin. Recordad que si no tenéis este fichero en vuestra aplicación, tenéis que migrar a una versión más actual de Rails.
script/plugin nos proporciona la panoplia habitual de comandos de gestión de paquetes, como install, list, delete, etc. No hace falta recordarlos todo, lo único que hay que recordar es que tenemos a nuestra disposición ruby script/plugin --help para cuando nos encontremos perdidos.
¿Qué plugins hay disponibles?
Al visiar la página anteriormente mencionada vereis que, como en botica, hay de todo. Desde extensiones para hacer más fácil definir restricciones o relaciones entre entidades de nuestro modelo (act_as_taggable, por ejemplo, promete ayudarnos a implementar folksonomías), hasta amplicaciones del sistema de vistas de RoR que integran Google Maps o generan PDFs”. Cada uno de ellos trata de ser una solución autocontenida a una necesidad específica. Una advertencia: instalar y usar un plugin en cierto modo es casarse con él. Deberíamos escoger usar extensiones que estén siendo usadas por un número de usuarios, lo que nos debería garantizar un mínimo de madurez y estabilidad en el código que estamos metiendo en nuestra aplicación. En caso contrario, deberíamos estar dispuestos a resolver cualquier incidencia, en caso de que la extensión quede sin soporte.
¿Y qué pasa con los componentes de Rails?
En la página 364 del libro Agile Web Development With Ruby on Rails nos dicen que la idea de los componentes es que uno pueda encontrar componentes que pueda enchufar en la aplicación y simplemente añadirlos al directorio components. ¿No es esta la misma idea muy parecida a la de los plugins (que viven en vendor/plugins)?
Y mi opinión es que los componentes son un esbozo o rudimento de plugins, que han sido totalmente remozados para la versión 1.0 de Rails. Entre las limitaciones de los componentes tenemos:
- Se limitan a ser extensiones que consisten en controladores y vistas, nunca tratan con los modelos.
- No se integran de manera transparente en nuestra aplicación, sino que tenemos que invocarlos con una sintaxis específica (
render_component) - No hay un sistema de instalación y gestión de los componentes que tengamos instalados más allá de
cpymv
A consecuencia de esto, no ha florecido un ecosistema de componentes que podamos buscar o descargar para nuestras aplicaciones, lo que sí que ha ocurrido con los plugins. Sin embargo, los componentes tienen sus ventajas: son más sencillos de usar y de comprender (normalmente consisten en unos cuantos controladores y algunas vistas específicas) y son más adecuados para empotrarlos en nuestros layouts. En definitiva, fomentan la reusabilidad del código dentro de nuestra aplicación, no fuera de ella. Es complicado usar un componente de un proyecto en otro.
En definitiva, a la hora de componentizar nuestra aplicación, yo trataría de aislarla en componentes y, sólo en contadas ocasiones debería necesitar escribir un plugin. Por el contrario, si lo que quiero es ir de compras y descargar una extensión ya escrita por alguien, los plugins_ son el camino a seguir.
Engines
Los engines son una nueva vuelta de tuerca: se trata de extensiones de la extensión, por así decirlos. Un engine es un plugin que para hacer su labor se apoya sobre las extensiones instaladas por otro plugin (el plugin engine). Los engines son auténtica miniaplicaciones de arriba a abajo, e implementan subsistemas completos (por ejemplo, un sistema de autenticación de usuarios), incluyendo modelos, controladores y vistas para empotrar en el layout del proyecto que utiliza el engine en cuestión.
Pero esto no acaba aquí. Si los plugins se limitaban a extender el framework añadiendo cierta funcionalidad por ejemplo a nuestros modelos, los engines van más allá. Un engine puede incluir prácticamente cualquier cosa que queramos incluir en la aplicación anfitriona: tanto contenido dinámico como estático. Esto se ve claramente en las trazas de WEBRick, cuando hacemos una petición a un recurso proporcionado por un engine, porque nos muestran como Rails va buscando este recurso no sólo en app/ sino en los directorios de engines que cuelgan de /vendor/plugins
Advertencias
¿Es realmente conveniente que exista esta librería de componentes de alto nivel (plugins, engines, etc.) que podamos instalar y desinstalar a nuestro gusto? A priori la respuesta es sí, pero David Heinemeier tiene sus objeciones
Según su argumento en la vida real los componentes de alto nivel (sean componentes, plugins o engines) son peligrosos porque son difíciles de reusar y de parametrizar (o sea, de configurar para cada proyecto). En definitiva (siempre según David) este tipo de intentos termina siendo más complicado y costoso de mantener que escribir el código por nuestra cuenta. ¿Sistemas de login y autenticación? ¿Calendarios? ¿Foros? David cree que es mejor dar una infraestructura que haga muy sencillo implementar estos componentes de alto nivel que suministrar versiones precongeladas. Los generadores y scaffolds consisten precisamente en eso, generar automáticamente un esqueleto que sea sencillo de refinar y rematar.
Este último enfoque no está exento de problemas: si actualizamos nuestro generador de código con nuevas funcionalidades o errores corregidos, ¿cómo hacer que el generador vuelva a generar el código y respete los cambios que hayamos hechos sobre éste? Esta era la motivación principal del proyecto de engines que hemos presentado arriba.
A qué viene todo esto
Pues viene a que en la próxima revisión de nuestro Sudokuonrails instalaremos un sistema de autenticación de usuarios usando el LoginEngine, lo que nos llevará a actualizar la aplicación a Rails 1.0, configurar una base de datos, instalar los plugin engine y LoginEngine… permanezcan atentos a sus agregadores.
» Leer más, comentarios, etc...
Las ventajas de contratar mujeres
Enero 29th, 2006 - [Enlace local]
Paquita Estartus Castañer, en el libro "Profesiones Femeninas" que publicó la Editorial Bruguera dentro de la Colección Práctica en 1958, recordaba a los empresarios de la época las principales ventajas de contratar mujeres:
- A igualdad de trabajo se les paga menos.
- El contrato de una mujer es "per se" un contrato temporal, porque cuando se case se irá.
- Son ideales para los trabajos sencillos, los mecánicos, los que "no requieren pensar para ejecutarlos"…
"Así, pues, es muy justo y útil considerar las ventajas y los inconvenientes que para una empresa se pueden derivar de la presencia de mujeres en su plantilla de personal. Veamos, en primer lugar, las ventajas, si es que puede llamarse así el provecho que puede originar la colaboración de la mujer:
.
» Leer más, comentarios, etc...
Desarrollo Flash Libre Centralizado
Enero 28th, 2006 - [Enlace local]
El desarrollo en flash, a niveles open source, ha crecido muchísimo en los últimos tiempos.
Han mejorado los artículos, las herramientas y ya hace un tiempo que se puede desarrollar libremente contenidos flash.
Una de las causas del lento avance, (no sólo para el desarrollo open source flash, si no para otras áreas, como las comunidades), se […]
» Leer más, comentarios, etc...
PHP Senior
“Por qué nunca seremos Rails (Parte 1)”
Enero 28th, 2006 - [Enlace local]
"Y después del explosivo éxito que el año pasado tuvo Rails como framework para el desarrollo web, todo el mundo PHP quiere llevar esa misma magia al lenguaje más popular en los servidores de Internet. Desde la mismísima Zend para abajo, todos quieren ser el próximo Rails. Pero ¿es ésta una tarea en la que PHP puede triunfar?"
Artículo completo en: VivaPHP
» Leer más, comentarios, etc...
Debconf-es II Guadalajara
Enero 28th, 2006 - [Enlace local]
Del 16 al 18 de diciembre se celebró en Guadalajara la segunda Debconf-es a la que tuve el placer de asistir. Hubo un montón de charlas muy interesantes sobre aspectos específicos de Debian y también sobre otros aspectos más específicos como seguridad, programación, ética, etc.
Yo me llevé la cámara pero al final no hice ninguna foto porque no me gusta cargar con ella, menos mal que hay gente que siempre la lleva encima y tenemos magníficas fotos (todas menos en las que yo salgo
).
Las conferencias sirvieron para dar un poco de impulso al proyecto, sobre todo al de localización/traducción al Español que es el que más nos interesa para tener todo en Castellano en la próxima versión de gnuLinEx.
Os animo a que veáis los vídeos de las charlas porque son muy interesantes para todos los niveles. A los que estéis interesados en traducir Debian al Castellano os recomiendo la lectura de la Charla de i18n y traducción que se dió ayer a través del IRC
» Leer más, comentarios, etc...
Flash Libre y Fácil
Enero 27th, 2006 - [Enlace local]
Zárate ha publicado un interesante y muy sencillo artículo sobre el desarrollo OpenSource de Flash.
Realmente creo que esta muy claro, y ésto nos da libertad para poder ir introduciéndonos cada día más en el desarrollo OpenSource.
Que como dice Zárate:
No solamente es gratis, sino que es de calidad
Enlace:
Flash Libre y Fácil
» Leer más, comentarios, etc...
¿Cómo nos formamos?
Enero 27th, 2006 - [Enlace local]
Continua leyendo “¿Cómo nos formamos?”
» Leer más, comentarios, etc...
Catálogo de personalidades de programadores
Enero 27th, 2006 - [Enlace local]
Personalidades de los programadores: de la A a la Z. Ése es, más o menos, el título de un artículo publicado en Hacknot, en el que el autor repasa, con bastante humor, las distintas personalidades en las que se nos puede clasificar a los programadores.
¿Tú con quién te identificas?
» Leer más, comentarios, etc...
Técnicas y herramientas de desarrollo ágil para MS .NET
Enero 27th, 2006 - [Enlace local]
Teniendo en cuenta que no es fácil encontrar textos "con sustancia" que hablen de desarrollo ágil, que entre estos suelen ser menos los que lo hacen con un enfoque más práctico que teórico, y que los pocos que se encuentran tratan con mayor frecuencia de la gestión que de las implicaciones técnicas en la programación; teniendo esto en cuenta, el trabajo que ha desarrollado Marcos Andrés Meli es una rara avis.
Herramientas de desarrollo ágil para Microsoft .net framework es un texto con sustancia, rigor y calidad. Una referencia práctica para programadores de VS.NET.
.
» Leer más, comentarios, etc...
El arte de programar
PC a móvil a PC
Enero 26th, 2006 - [Enlace local]
Hace un tiempo desarrollé un gateway sms/mail/sms donde además del software, la pieza clave era esta:
El gateway esta dado de baja (tuvo demasiado éxito), sin embargo el móvil que aparece en la imágen lo sigo usando en algunos de mis proyectos (pronto sabreis por qué estoy escribiendo artículos sobre aparatos). Se trata de un siemens m35i que en su día me cargué la pantalla y lo destiné como modem gsm para poder enviar y recibir sms. Este se comunica con un cable de datos por el puerto serie con el ordenador. Como el cable tiene que usar el mismo compartimento que la fuente de alimentación del móvil y necesitaba tener los dos al mismo tiempo, conecté los pines donde se conecta la batería del móvil a un pequeño circuito con un L7805C y dos condensadores, funcionando todo ello con una fuente de alimentación de 12 voltios.
En este caso el móvil al ser un modem gsm (como la inmensa mayoría) se puede manejar con comandos AT, aunque algunos son característicos de los móviles (como el de mandar sms).
Para trabajar con el, en mi caso, tengo que abrir el puerto serie a 19200 baudios, 8 bits, ninguna paridad y un bit de stop.
En mi caso, siempre me interesa usarlo como transmisor/receptor de sms, por lo que leyendo un poco la documentación del móvil veo que para enviar sms se usa el comando AT+CMGS. Sin embargo mi móvil no permite mensajes de texto de forma directa, sino que necesita enviarlos en formato estandar PDU (también cuando muestra los recibidos). Buscando por ahí no he encontrado mucho código fuente (en java smstools) por lo que me hice una rutina en C para pasar de texto a PDU y viceversa:
/* Transforma un texto normal (pchOriginal) en PDU (pchTransformado) devolviendo pchTransformado*/
char *formatoMensaje(char *pchOriginal, char *pchTransformado)
{
char pchTablaHex[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
unsigned char chrCaracter;
int intContador;
int intIndice;
int intTamano;
int intMascara;
int intDesplaza;
intTamano = strlen(pchOriginal);
intMascara = 1;
intContador = 0;
intIndice = 2;
strcpy(pchTransformado,"00");
intDesplaza = 7;
while(intContador < intTamano)
{
chrCaracter = ((*(pchOriginal + intContador + 1) & intMascara) << intDesplaza) + (*(pchOriginal + intContador) >> (7 - intDesplaza));
pchTransformado[intIndice] = pchTablaHex[(chrCaracter & 0xF0) >> 4];
intIndice++;
pchTransformado[intIndice] = pchTablaHex[chrCaracter & 0x0F];
intIndice++;
intContador++;
intMascara <<= 1;
intMascara++ ;
intDesplaza--;
if(intDesplaza == -1)
{
intMascara = 1;
intDesplaza = 7;
intIndice -= 2;
}
}
pchTransformado[intIndice] = '\0';
chrCaracter=(char)intTamano;
pchTransformado[0] = pchTablaHex[(chrCaracter & 0xF0) >> 4];
pchTransformado[1] = pchTablaHex[chrCaracter & 0x0F];
return pchTransformado;
}
/* Transforma un texto PDU (pchOriginal) en texto normal (pchTransformado) devolviendo pchTransformado*/
char *decodificaMensaje(char *pchOriginal, char *pchTransformado)
{
char pchLetras[5];
unsigned char chrCaracter;
int intTamano;
int intContador;
int intArrastre;
int intDesplaza;
int intIndice;
int intMascara;
intMascara = 128;
intIndice = intContador = intArrastre = intDesplaza = 0;
strcpy(pchLetras, "0x");
strncat(pchLetras, pchOriginal + intIndice, 2);
sscanf(pchLetras, "%x", &intTamano);
intIndice += 2;
while(intContador < intTamano)
{
strcpy(pchLetras, "0x");
strncat(pchLetras, pchOriginal + intIndice, 2);
sscanf(pchLetras, "%x", &chrCaracter);
pchTransformado[intContador] = ((chrCaracter & ~intMascara) << intDesplaza) + intArrastre;
intArrastre=(chrCaracter & intMascara) >> (7 - intDesplaza);
intIndice += 2;
intMascara >>= 1;
intMascara += 128;
intDesplaza++;
if(intMascara == 255)
{
intContador++;
pchTransformado[intContador] = chrCaracter >> 1;
intMascara = 128;
intDesplaza = intArrastre = 0;
}
++intContador;
}
pchTransformado[intContador] = '\0';
return pchTransformado;
}
» Leer más, comentarios, etc...
el Puchero en Personal Computer & Internet
Enero 26th, 2006 - [Enlace local]
En el número 37 de la revista Personal Computer & Internet aparece un especial sobre software gratuito en el que han incluido el Puchero. La reseña del programa es la que aparece a continuación: Realmente es un honor compartir páginas…
» Leer más, comentarios, etc...
Thefull
Completando TextView 2 parte
Enero 26th, 2006 - [Enlace local]
El widget TextView alcance su segunda revision en T-Gtk...
» Leer más, comentarios, etc...
Uso de AJAX para minimizar el tráfico
Enero 26th, 2006 - [Enlace local]
Igual se lo deberían plantear en alguna gran ciudad, a ver si reducen los atascos… perdón, ya me callo, es un chiste malo.
Se ha publicado en TheServerSide una referencia a un artículo titulado: Using AJAX to Improve the Bandwidth Performance of Web Applications. En dicho artículo se comenta un ejemplo de una aplicación web en la que reducen alredor de un 60% del ancho de banda necesario para su funcionamiento.
La remodelación de una aplicación existente, para evitar recargar páginas completas, y obteniendo la información necesaria únicamente para redibujar una parte de la página puede significar un importante ahorro en ancho de banda y mejorar la eficiencia general. Pero se debe tener en cuenta el tipo de comunicación a establecer, enviando HTML, o XML, o Javascript… para no crear un pequeño monstruo que cargue en exceso la máquina cliente.
Al crear nuevas funcionalidades con AJAX, el objetivo suele ser dotar de mayor interactividad a las páginas, lo que conlleva el crecimiento del número de peticiones HTTP a los servidores. el típico ejemplo de validación de formularios cada vez que el usuario pulsa una tecla en una caja de texto, multiplica las peticiones y por tanto la carga en el servidor.
La aplicación utilizada en el artículo entra en el primer caso, pero es un ejemplo tan básico que realmente no explica demasiadas cuestiones sobre la complejidad de los factores a tener en cuenta para la eficiencia de una aplicación real.
» Leer más, comentarios, etc...
SEI publica informes y cifras de mejora con CMMI
Enero 26th, 2006 - [Enlace local]
De los informes realizados por 25 empresas tras implantar un modelo CMMI, SEI ha extraido las cifras de mejora que en ellos han reflejado y las ha sintetizado en la siguiente tabla.

.
» Leer más, comentarios, etc...
Seminario MySQL en español
Enero 26th, 2006 - [Enlace local]
Por fín en MySQL son conscientes de que en el mundo hay gente que habla español (o castellano) y se deciden a dar un seminario en nuestra lengua a través de internet. Más información e inscripciones en: MySQL les invita…
» Leer más, comentarios, etc...
knocte :: MonoTema
Regreso al pasado: TurboC
Enero 26th, 2006 - [Enlace local]
Resulta que un amigo mío me ha pedido que le echara un pequeño cable a su novia con una práctica de Bioinformática. Lo que hacen en esta asignatura básicamente es impartir una introducción a la programación, y en concreto usan el lenguaje C. No me parece mal que usen este lenguaje pero sí me parece mal que lo usen para lo que lo usan. De hecho, esta chica me ha enseñado prácticas de otros grupos