viernes 19 de febrero de 2010

Made in Perú

He pasado las últimas 3 horas leyendo diversos webs, blogs, etc. sobre desarrollo de software en Perú. Con tanto trabajo algunas veces olvidamos darnos un baño de información nueva. ¿Mi conclusión? Mucho floro, palabreo y sigla bonita, pero muy poco desarrollo realmente peruano.

Drupal, Joomla, etc. ganan terreno. Veo con pánico cómo la historia de los ochentas a noventas parece repetirse: luego de un inicio humilde pero auspicioso, caemos en el facilismo de simplemente usar lo que otros producen en el extranjero.

Sólo basta navegar por los sitios web de los principales medios, tal parece que crear aplicaciones web se está convirtiendo en cuestión de crear skins, adecuar estilos y algunos plugins?

En los ochentas, cuando reinaban las computadoras de 8 bits, hubo algunos pocos que le encontraron el gusto a la programación. De esos pocos, un número aún menor se organizó en pequeños grupos que intentaban crear pequeñas producciones netamente peruanas. Era usual comprar revistas españolas de muy buena calidad sobre computación, donde además de aprender, se podía mirar de lejos la gran actividad del joven mundo informático en Europa.

Yo tenía 14 años cuando quedé sorprendido al encontrar en El Comercio un aviso buscando programadores que manejaran assembler, con el cuál yo había estado jugando/descubriendo desde hacía pocos meses. Por supuesto que fui y en verdad estos tipos sabían del asunto, se hacían llamar "Software Home" y antes que nada me pidieron que mostrara lo que había hecho (un muy simplón juego de serpientes come-números, pero escrito en assembler, que me había costado sangre!). Espero haberles causado una buena impresión, el hecho es que luego me mostraron lo que estaban creando y fue impresionante! Un video juego a la altura de los que llegaban del extranjero. Por diversas razones luego de un tiempo no supe más de ellos. Otros como TEG (hoy Tegmo.com) continuaron la pelea.

Todo ese mundo murió con la masificación de las PCs y terminamos simplemente consumiendo software pirata.

Lo que no he perdido es la convicción de que más que simplemente usar, se debe crear. Por eso VIS emplea su propio framework, para poder controlar cada aspecto a nuestro antojo. Desde hace casi 10 años lo hemos usado para incontables proyectos en diferentes encarnaciones y nos ha permitido diferenciarnos y poder transferir a cada cliente, la experiencia del proyecto anterior, siempre mejorando nuestro arsenal de herramientas.

Esperemos que el tema comercial no termine -otra vez- convirtiéndonos en simples consumidores. En nuestro medio es muy común "seguir a la manada", usando siglas, abreviaturas, etc. casi como alarde de que supuestamente conocemos un tema. Aquí los "monstruos en computación" usan Firefox, instalan Linux, recompilan Kernels y hasta "hackean" messengers :) pero son contados los que realmente entienden por qué lo hacen, menos aún los que modifican código o crean patchs. Ni qué decir de creaciones propias.

jueves 11 de febrero de 2010

Mi pesadilla con phpMyAdmin sobre IIS 7

El título puede resultar decepcionante no? Instalar phpMyAdmin es un juego de niños! o al menos siempre ha sido así para mi hasta HOY, pero finalmente luego de más de 5 horas encontré la solución. Y no me tomó mas que apenas 5 segundos.

La receta fatal es esta:
Windows 2008
IIS 7
MySQL 5.0.5
PHP 5.3.1 (FastCGI)
phpMyAdmin 3.2.5

Configuras phpMyAdmin, todo OK. Luego entras al login, luce perfecto, escribes tu login/pass y.... esperas, esperas, esperas una ETERNIDAD hasta que te aparece HTTP Error 500 con el MUY UTIL mensaje "ha ocurrido un error interno" :) Haces de todo, pruebas permisos, versiones, hasta le activas el Trace al IIS, nada de nada.

...pero al final del día, la culpa de todo la tiene el chin... digo... Windows 2008 :)

LA SOLUCIÓN? Probablemente tu config.inc.php incluye "localhost" como nombre de servidor MySQL, pero resulta que en Windows 2008 ese nombre no existe (está comentado en el archivo hosts). No me he tomado la molestia de averiguar por qué aún. Así que con tan sólo cambiarlo por "127.0.0.1", EUREKA! todo funciona de maravillas!

Ojalá esto sirva para salvar a alguien del martirio que tuve hoy.

miércoles 20 de enero de 2010

FTP Pasivo con Windows 2008

Clásico problema: quiero conectar el Filezilla a uno de nuestros nuevos servidores con Windows 2008 y no funciona como Pasivo, sólo como Activo. Reviso el firewall y tiene una regla para el FTP que obviamente funciona con el modo Activo únicamente.

Luego de buscar un poco por internet encontré estas casi mágicas líneas:

netsh advfirewall firewall add rule name="FTP (no SSL)" action=allow protocol=TCP dir=in localport=21

netsh advfirewall set global StatefulFtp enable


La primera se ocupa del puerto 21 y la segunda del StatefulFtp que aperturará dinámicamente los puertos necesarios para el FTP Pasivo.

viernes 24 de julio de 2009

IIS SMTP Service en localhost:25

Ok, quizá sea uno de pocos con tal necesidad porque busqué un buen rato en Google sobre el asunto sin tener éxito.

La cuestión es simple: cómo configurar el SMTP Service del IIS para que sólo responda por el IP 127.0.0.1 (localhost) puerto 25 de modo que podamos tener otro programa en la interface pública, en el mismo puerto, recibiendo los correos que llegan de afuera?

La idea es que el IIS SMTP atienda a las aplicaciones en ASP o PHP que suelen apuntar directamente al localhost:25, dejando libre las interfaces públicas para darles otro uso.

En principio usando el MMC no se puede, porque la dirección 127.0.0.1 no aparece en la lista.

La solución es muy simple: sólo se debe editar la Metabase (generalmente c:\windows\system32\inetsrv\metabase.xml) con notepad o algún otro editor de textos y reiniciar el IIS. Incluso no es necesario reiniciarlo si se tiene activa la opción de poder editar la metabase directamente, ya que en ese caso el IIS detecta que ha sido alterada y la recarga automáticamente sin reiniciar.

Primero, ubicar la línea:
<IIsSmtpServer Location ="xxxxxxxxxxx"

Y desde ese punto buscar:
ServerBindings=":25:"

Lo más probable es que tenga ese valor (":25:") y todo lo que hay que hacer es dejarla así:
ServerBindings="127.0.0.1:25:"

Luego cerramos el editor, cerramos el MMC (si lo teníamos abierto) y si lo reabrimos veremos que la dirección 127.0.0.1 ya aparece como una interface más y por supuesto, ya seleccionada.

Me ha funcionado muy bien. Ahora tengo el IIS SMTP respondiendo sólo por localhost mientras otra aplicación de filtrado de spam recepciona correos entrantes.

UPDATE 12/Feb/2010:

No funciona más. Con Windows 2008 no resulta, parece que internamente la validación es más estricta y por más que pongo el IP del localhost, en el IIS Manager aparece asignado a todas las interfaces. Al final tuve que asignarlo a otro puerto, elegí el 587. En el IP original está el otro servicio SMTP que acepta relaying del localhost, así que funciona bien. Despues de todo el 587 sólo queda para CDONTS o CDO.

jueves 9 de julio de 2009

4 días bajo ataque

Desde que empezó esta semana nuestros servidores han estado recibiendo MILES de conexiones SMTP. Al principio fue un gran problema ya que saturaba las conexiones (denegación de servicio) causando que nuestros clientes no pudiesen enviar correos.

Tratamos de analizar la fuente, buscar un patrón, NADA. Totalmente aleatorio. Los IPs cambian todo el tiempo y siempre intentan lo mismo, autenticarse mediante fuerza bruta, probando miles de combinaciones de login/pass. No sabemos si es un virus, spam o algo parecido, al fin y al cabo da lo mismo.

En medio de todas las cosas que tenemos que hacer, tuvimos que hacer espacio para resolver este problema y hemos tenido éxito!

Por suerte el software de correo que empleamos es extremadamente flexible: qmail, vmailmgr, courier-imap, mailfront, mrtg, daemon-tools. Combinados nos han permitido contener el problema en niveles que permiten que nuestros servicios se mantengan operativos.

Empezamos con algunos scripts para ayudarnos a rastrear las fuentes y bloquearlas. Su efecto no duraba mas que unos minutos y de nuevo volvíamos al DoS (Denial of Service). Poco a poco lo fuimos mejorando, hasta que ahora corre cada 5 minutos, analiza los logs, extrae los IPs que dan error de autenticación y los coloca en una lista gris, los compara contra los IPs que sí se han autenticado y los coloca en una lista blanca. Luego procede a bloquear todos los IPs de la lista gris que no estén en la lista blanca. Mantiene un registro de las últimas 24 horas de actividad de modo que los IPs no vuelvan a ser reutilizados en poco tiempo.

A esta hora tenemos bloqueados más de 2000 servidores, de diferentes partes del mundo, principalmente Brasil (famosos por siempre aparecer primeros en las listas de países con servidores zombies).

Hemos investigado en internet si hay "algo" al respecto pero no hemos encontrado nada, no creo que seamos los únicos con este problema!!!

Por ahora, vamos pasando bien la tormenta, van 4 días!!!

miércoles 6 de mayo de 2009

Spam!

Impresionante: de cada 100 mensajes de correo electrónico en todo el mundo, sólo 2 o 3 son realmente útiles, todo lo demás es SPAM.

Supuestamente deberíamos estar felices porque ha habido una disminución :). Hemos "bajado" de 98.4 en el primer semestre 2008, a "sólo" 97.3. Ya ven? De qué se quejan... el spam va de bajada... :P

Lo cierto es que existe una doble moral en este tema: los usuarios se quejan de que reciben mucho spam pero tambien se quejan cuando sus propios envíos masivos no llegan a destino. En qué quedamos entonces?

"Recibo mucho spam, hagan algo", claro pero envían su lista de precios con la cuenta info@sudominio.com a cientos de personas no interesadas. Obviamente ese mail y ese dominio terminan en las listas de los spammers, que a su vez las venden a otros spammers y... ya se imaginan el final del cuento.

"No llegan mis correos", claro! si la semana pasada enviaron cientos de mails de publicidad (camuflados de boletines) por lo que el dominio e incluso el servidor terminaron en varias listas negras, no pretendan ahora que los demás sigan aceptando sus mails importantísimos de ventas.

El tema del spam es complicado y no me refiero a la parte técnica (que ya de por sí es muy compleja). Existen organizaciones criminales a nivel mundial que están detrás de todo. Son auténticas mafias donde la extorsión e incluso el asesinato son válidos (y no estoy exagerando).

En diversas partes del mundo se hacen intentos por combatir el spam mediante leyes, pero por el carácter global de la internet, es difícil poner controles que realmente funcionen. En Estados Unidos tienen una ley anti-spam muy bonita como adorno, porque para otra cosa no sirve. En el Perú tenemos una ley, que es letra muerta en la práctica. La ley peruana por ejemplo dice que se debe incluir la palabra "Publicidad", pero -hecha la ley, hecha la trampa- los spammers peruanos escriben "Pub1icidad", "Pvblicidad", "Publicida", "P u b l i c i d a d", etc.

Es lógico! no sé quién escribió la ley, pero es evidente que todos trataremos de bloquear todo aquello que diga Publicidad, y los spammers tambien lo saben. Para qué enviar un mail con la bendita palabra que todos bloquearán?

En posteriores posts, pretendo explicar con más detalle la parte técnica del spam.

martes 5 de mayo de 2009

Mi nuevo "tricorder" LG Incite CT810

Ya me tienen enfermo con el iPhone! la verdad no sé qué le ven, o será que -para variar- soy un "contreras" que no quiere usar lo que está de moda? Es bonito, rapido, con una ingenieria brillante, casi una obra de arte tecnológica. Si... todos dicen lo mismo y... si pues, es cierto!

...pero, a mí me sirve un iPhone?

Aún recuerdo cuando tenía mi Motorola Startac y gritaba a los cielos porque algún ingeniero tuviera la "genial" idea de ponerle calculadora :) ("si ya tiene todos los botones y de hecho ya calcula!! qué les cuesta!" decía yo). Parece que Nokia me escuchó y finalmente venían con calculadora, juegos, agenda, hasta linterna!

Muchos años (y celulares) despues di el gran paso comprandome una Pocket PC. Una Audiovox Thera con celular CDMA integrado, lo que algunos llamarían un "Nice Try" (buen intento). Al final tuve que mantener en uso mi celular de entonces (un Motorola L6), cargando dos aparatos, algo que detesto. Y la verdad le perdí interés al asunto por varios años ya que la Pocket PC -ya viejita- era más que suficiente para mi. No se Uds. pero yo sin PDA soy hombre muerto y así me he sentido desde que perdí mi veterana Thera hace unos meses.

Creo que nunca investigué tanto (ni cuando compré mi auto), como cuando hace poco me tocó elegir mi nuevo celular / Pocket PC. Finalmente tenía 3 finalistas (ver análisis de Kike): Sony Xperia, Samsung Omnia y LG Incite (alguien dijo iPhone?).

El XPeria es a mi criterio "el mejor" de los tres, porque es rápido, tiene teclado real y una pantalla enorme.

El Samsung Omnia tiene pantalla grande y es rápido.



El LG Incite tiene... buen precio :) nada que un poco de paciencia no pueda compensar, pero lo importante es que tiene Windows, así que existen toneladas de programas que ponerle para todo tipo de aplicaciones!

El Incite tiene cámara de fotos/vídeo, Bluetooth, Wi-Fi, GPS y hasta Radio FM :). La verdad que hasta ahora sigo explorando posibilidades:
  • Por alguna extraña razón lo que más me gustó fue lo que menos buscaba: el GPS. Google Maps es excelente.
  • Probé WiFiLocations, que permite ejecutar acciones según la ubicación. Es interesante porque no depende del GPS (que consume mucha energía!), sino que toma nota del Cell-ID, el código único que identifica a las torres celulares. El programa no funciona del todo bien (al menos con mi Incite) pero las posibilidades a futuro son interesantes: se puede activar o desactivar el wifi / bluetooth según la ubicación. Se puede ejecutar comandos que -por ejemplo- cambien el sonido del celular por vibración cuando estemos en la Universidad. Llegas a tu oficina y el WiFi se enciende automáticamente. Cuando "sales" de tu casa el bluetooth se activa (para tu hands free) hasta que llegas a la oficina y se apaga otra vez (estas funciones son las que gastan mucha batería).
  • Probé tambien con Remote Tracker, una herramienta "anti-robo". Si pierdes o "te pierden" el equipo, cuando coloquen otro chip, el programa te enviará un SMS (a un número que previamente indicaste) con el nuevo número instalado. Es importante que sepas el nuevo número no tanto para llamar al "nuevo dueño", sino porque el programa acepta ordenes por SMS (que nunca llegan al nuevo propietario). Puedes pedirle que te envíe las coordenadas GPS o el Cell-ID, la lista de contactos o incluso hacer que el teléfono "te llame" para que escuches lo que sucede al otro lado. Un Hard-Reset sería la solución pero hay formas de evitar (o al menos complicar) esta posibilidad.
  • Bajé TrackMyRun para entrenar ya sea corriendo o en bicicleta. Puedes ver distancia, velocidad, altitud, etc. Puedes bajar la ruta que hiciste y verla en Google Earth, archivarlas y compararlas. Por supuesto, puedes poner tu pocket como un CycleComputer (un super-velocímetro?) si logras fijarla a la bicicleta claro.
  • Opciones similares existen para el auto: me encanta el tablero de los nuevos Civic con el velocímetro digital con números enormes, así que por algunos minutos mi auto tuvo uno :) (distrae mucho, sorry).

...en fin, he probado muchísimo software, para no hacerla tan larga, aquí una lista resumida:

  • Pocket PuTTY, para administrar mis servidores Linux remotamente por SSH. Este programa es excelente! idéntico a la versión "grande" para PC.
  • VNC Viewer for Pocket PC, bueno es ya un clásico no? Junto con el cliente Remote Desktop hacen que uno pueda salir de situaciones críticas estando en cualquier parte!
  • YouTubePlay: con buscador incluido, los videos se ven muy bien.
  • Palringo: cliente Google Talk, ICQ, MSN Messenger, Yahoo Messenger, AOL IM, todo en uno. En verdad es practiquísimo de usar. Además tambien usa Cell-ID (otro más) para mostrarle a tus amigos en dónde estás (aunque su BD de lugares parece de los 60!!)

Debe ser por el tipo de uso que le doy pero -aunque me encanta la interface y velocidad del iPhone- lo cierto es que no me serviría de mucho.

En cambio mi Incite cuesta mucho menos, es algo más lento pero lo puedo usar para demasiadas cosas distintas... ...y si existe algo que no haga, por último lo puedo programar yo mismo :). Además aquí en Lima no venden Incites, así que es muy difícil ver otro. Aquí lo pueden ver en acción:





Finalmente conseguí mi Tricorder de Star Trek!


UPDATE 18/Feb/2010: No lo tengo más desde hace algunos meses en que pasó a manos de la "propiedad pública", es decir, me lo robaron. No hay muchos en Lima así que si te ofrecen uno tan bien cuidado que parece nuevo sin ningún rasguño, probablemente sea el mio (9.95 de 10).


EN FIN, cosas que pasan. No compren lo robado por favor, esa gente es capaz de matar (literalmente) por un celular.


En breve tendré un nuevo equipo (no será un Incite, porque "ya la"), me está tomando algunos meses pero será NUEVO, sin una mala historia detrás. ¿Y si me lo roban de nuevo? Ni modo, juntaré otra vez y así sucesivamente, ¡pero comprar robado, jamás!


Siento mucho no haber podido contestar a quiénes me pidieron ayuda sobre sus Incites.