Monday, September 10, 2007

NoScript: Firewall para Scripts en el WWW

JavaScript, Java y Flash tienen una cosa en común: ejecutan código que proviene de un sitio remoto en nuestra computadora. Supuestamente estas tecnologías no deberían leer y escribir código en nuestro disco duro, tampoco interactuar con el Sistema Operativo u otras aplicativos. En teoría con estas tecnologías se puede ejecutar un ataque que aprovecho vulnerabilidades de l sistema, escalar privilegios, buscar puntos de entrada en el sistema (holes).

Se navega por cientos de páginas de Internet y la mayoría utiliza una de estas tecnologías y no nos damos cuenta de lo que se ejecuta. El addon NoScript permite a los usuarios de Firefox navegar por Internet de forma seguro ya que solo se permite la ejecución del código de JavaScript, Java y Flash, en las páginas que le permitimos.

NoScript maneja la misma filosofía del firewall (o la que se debería manejar) la cual es de bloquear todo y permitir solo lo que deseamos permitir. Esta filosofía es evidente gracias a la opción de NoScript Deny Scripts Globally, que bloquea todos los scripts. Después cuando se visita una pagina y confiamos en esa página, entonces hacemos clic en la opción allow pagina.com y todo los scripts que el dominio pagina.com ejecuta. Así mismo la pagina también será adicionada a la lista de trusted sites (sitios confiables). Si no estamos seguro entonces podemos probar utilizar la opción temporally allow pagina.com, lo que permite la ejecución de scripts por mientras que Firefox este abierto, pero no estará ingresado en la lista de trusted sites. Así que al cerrar todas las instancias de Firefox se deja de permitir los scripts en esa pagina.

Los creadores de NoScript continuamente pasan creando actualizaciones y cada vez que hay una nueva Firefox nos avisa. Me ha ocurrido que el mismo día he tenido dos actualizaciones.

NoScript tambien viene con varias opciones divididas en cinco tabs: General, Whitelist, Appearance, Notifications, Advanced. En General encontramos opciones generales sobre el programa como ser permitir todos los scripts, como tomar las paginas si por dominio, con www o http.


En Whitelist, escribimos todas las paginas y/o dominios que estan permitiremos ejecutar código. Podemos escribirlos uno por uno e ingresarlos o crear un archivo de texto con todos los dominios e importarlo. Además con el export podemos hacer un respaldo de nuestra lista, por si deseamos importarlo en otra computadora o si formateamos nuestro sistema podemos cargarlo otra vez.

En Appearance controlamos la apariencia del programa en la barra de firefox así como el menú.



En Notifications configuramos como deseamos recibir los mensajes de que un dominio fue bloqueado, si deseamos un sonido. También podemos seleccionamos si deseamos bloquear XSS. Cross site scripting (or XSS) en resume esta vulnerabilidad permite al un atacante inyectar código malicioso de un sitio en otro sitio diferente. Si desean leer sobre ejemplos y más información puede ver el link anterior de XSS y conocer más. También pueden visitar el FAQ de noscript y conocer más del tema.


En Adavance están las opciones avanzadas, donde se sigue con el tema de XSS. Aquí podemos habilitar toda la proteccion de XSS. Tambien configurar que sera permitido de los sitios que están en la whitelist o trusted y que deseamos bloquear o permitir de los sitios Untrusted. Esto ultimo permite al usuario decidir que define a un usuario Trusted y a un usuario Untrusted.


De regreso al Blogging

Después de pasar “turistiando” por dos semanas en Utila, occidente, norte de Honduras y cinco dias después mudarme de continente, puedo regresar al blogging. Espero que crear interes en mi blog con los posts que vienen. El primero es de un programita que es parte de mi arsenal para navegar en Internet. Se suma a SiteAdvisor (ver uno de mis primero posts para mas sobre el tema), el segundo NoScript y todos se integran con Firefox. Mi siguiente post es ne NoScript, un programa que e utilizado ya por mucho tiempo y me siento muy satisfecho. Creo que sin el no podría navegar por Internet, es como mi firewall para scripts.

Saturday, July 21, 2007

Sin exito con Lifted de Pixar, pero siempre interesante el Tema

Parece que no tuve éxito para compartir el video en ninguna página. Probé con YOUTUBE no duro ni 24 horas, BLIP.TV y METACAFE también lo removieron, pero allí duraron dos días.

Creo que después de la compra de GOOGLE de YOUTUBE, creció el interés en estas páginas y así también de las empresas que su contenido se mostraba en YOUTUBE. Al darse cuenta el mundo del dinero que iba a pagar GOOGLE por YOUTUBE, todos quisieron un pedazo de ese pastel. Por lo tanto empezaron los procesos legales, acuerdos y la atención de todas las empresas de proveen contenido audiovisual, en las paginas de compartir videos. Así todas las demás paginas que comparten video en Internet, ahora tiene que revisar continuamente sus librerías de videos y remover aquellos que violan derechos de autor.

Creo que mi fracaso de subir Lifted a uno de estos sitios se debe a que es de PIXAR, debido a que pertenece a un gigante del entretenimiento (DISNEY), por lo tanto se tiene que mantener a ese gigante feliz o el te “come”. Lo curioso que en el correo que me envió YOUTUBE para informarme que el video que subí viola la ley de derechos de autor, dice que una tercera parte (PIXAR) les informo a ellos que viola derechos del autor. Aquí pueden ver todo el correo:

Dear Member:

This is to notify you that we have removed or disabled access to the following material as a result of a third-party notification by PIXAR claiming that this material is infringing:

Lifted: http://www.youtube.com/watch?v=rA2vdqv_blg

Please Note: Repeat incidents of copyright infringement will result in the deletion of your account and all videos uploaded to that account. In order to avoid future strikes against your account, please delete any videos to which you do not own the rights, and refrain from uploading additional videos that infringe on the copyrights of others. For more information about YouTube's copyright policy, please read the Copyright Tips guide.

If you elect to send us a counter notice, please go to our Help Center to access the instructions.

Be aware that there may be adverse legal consequences in your country if you make a false or bad faith allegation of copyright infringement by using this process.

Sincerely,
YouTube, Inc.

A simple vista, con esto puedo interpretar que si yo subo el video sin que los derechos de la tercera persona hayan sido transmitidos a mi y esa tercera parte no se da cuenta que el video esta allí, por lo tanto YOUTUBE no lo remueve del su librería de videos. Sera que PIXAR en acuerdo con YOUTUBE, tienen un ente revisando todos los videos nuevos que se suben. ¿Me pregunto que hubiera pasado si hubiera removido, la famosa entrada de PIXAR de la lámpara y todos los créditos? llama “fair use”, lo que se define en los Copyrights Tips de Youtube de la siguiente manera:

Using Some Copyrighted Content in Your Videos

While videos that are direct copies of someone else's content are clear copyright violations, there are certain very limited circumstances in which the use of very short clips of a copyrighted video or song may be legal even without permission. This is known as the "fair use" principle of copyright law.

To determine whether a particular use of a short clip of a copyrighted video or song qualifies as a "fair use," you need to analyze and weigh four factors that are outlined in the U.S. copyright statute. Unfortunately, the weighing of these four factors is often quite subjective and complex, and for this reason, it's often difficult to determine whether a particular use is a "fair use." If the copyright owner disagrees with your interpretation of fair use, the copyright owner may chose to resolve the dispute in court. If it turns out that your use is not a fair use, then you are infringing the copyrights of the owner and you may be liable for monetary damages.

Después se hace referencia a unos links si se desea conocer más del tema. Como existe rotundo interés por “fair use”, entonces les muestro lo que encontré en esta pagina

When a copyright holder sues a user of the work for infringment, the user may argue in defense that the use was not infringement but "fair use." Under the fair use doctrine, it is not an infringement to use the copyrighted works of another in some circumstances, such as for commentary, criticism, news reporting, or educational use. The defense generally depends on a case-by-case judgment of the facts.

Fair use is codified at Section 107 of the Copyright Act, which gives a non-exclusive set of four factors courts will consider in deciding whether a use is fair or not. These factors are

  1. the purpose and character of the use,
  2. the nature of the copyrighted work,
  3. the amount and substantiality of the portion used, and
  4. the effect of the use on the potential market for or value of the copyrighted work.

Of course, even with these factors, it is problematic and often unyielding to try to predict what uses a court will deem fair.

Entonces para determinar si la utilización del material es ilegal o “fair use” todo depende del propósito, si es para generar algún ingreso monetario eso es ilegal de primera plana, o si la forma como se utiliza puede alterar el valor de mercado. Cuanto del material se utiliza, bueno si se utiliza todo es considerado piratería y solo puede ser utilizado una parte, tipo como los sneek peeks de encontrados en esta pagina. En síntesis si se utiliza todo el contenido, si se utiliza de tal forma que se genera una ganancia y/o afecta el valor del material, bueno no se puede alegar fair use y si aun así se cree que se puede utilizar bajo fair use, una corte puede determinar la disputa. Claro que si se pierde, entonces se tiene el peligro de ser procesado y demandado.

Aunque talvez corrí algún peligro de ser demandado, estas empresas no les interesa procesar cualquier gato, sino a entes que pueden pagar su millonada. Pero la experiencia es buena así conocí mas de estas paginas de compartir videos y de todo este rollo de derechos de autor, que al final todo esta sujeto a interpretación y por ello puede haber casos donde se pueden “doblar las reglas”

Saturday, July 14, 2007

La Pequeña odisea de postear el video “Lifted” en Internet

En mi post anterior trate de compartir con todos el corto animado Lifted de Pixar que se mostró antes de la película Ratatouille. Esto se debe a que no lo mostrado cuando fui a ver la película, que es muy bueno y creo que era la mejor forma de compartir un video que conseguí por “allí”.

Ahora intente subirlo a Youtube pero en menos de 24 horas lo sacaron. Intente con Metacafe pero parece que ellos son bien estrictos y todavía estoy a la espera de un email que confirma que el video fue aceptado. Así que navegando por Internet encontré una lista de (según el autor de la pagina) de los “Top 10 Video Sharing Sites” . Así que probé con el primero y parece que tuve excito. El proceso no fue tan engorroso de estar confirmando cosas por correo como Youtube (y eso que youtube es fácil) creo que Blip.tv es mucho mas fácil. Además que blip.tv permite ver los shows en flash video o en su formato original.

Esto ya no se trata de solo postear el video y compartirlo, sino de experimentar y de vivir la experiencia de tratar de compartir video y lidiar con políticas, procedimientos, derechos de autor, etc. Gracias a esto ya conozco algo más, no del tema, sino la cultura y vida de compartir videos en Internet, una comunidad que va mas allá de youtube, el cual aparentemente es rey a destronar. El investigar, probar y seguir probando, nos ayuda conocer más opciones de las que tenemos conocimiento. Además no siempre la más popular es la mejor y una marca no es lo que define un producto, no importa el tipo.

El video lo pueden ver en la página de blip.tv haciendo clic aquí, en la misma página de bliptv pueden escoger el formato y verlo en mejor calidad en formato original haciendo clic aquí, o de pérdidas allí esta abajo. Disfruten…



Friday, July 13, 2007

En busca del corto “Lifted” (y un par de cosas mas)

Lifted es un cortometraje animado de Pixar que es mostrado al inicio de la película animada de Pixar Ratatouille. Ratatouille actualmente esta en las salas de cine de Honduras, pero cuando la fui a ver no mostraron a Lifted. No se si en otros cines lo muestran, pero yo no la vi y me causo bastante tristeza, porque los cortos de Pixar son muy buenos y aparentemente este es de los mejores (fue nominado al oscar en la última entrega). Así que en vez de irme por todos los cines y ver silo mostraban al inicio de Ratatouille o reclamarle al cine de que porque no pasaron el corto, así perder mi tiempo, hice lo que generalmente hago y muchas personas debieran hacer: buscar en Internet.

Llegue a la siguiente encrucijada: comprarlo en iTunes o buscarlo por “alli”. No tengo ningún problema en pagar dos dólares por la película esta, lo que tengo problema es instalar iTunes en mi computadora, puede sonar tonto, pero iTunes me parece un mal producto. Simplemente porque lo siento lento, acopla demasiadas cosas y creo que Winamp es un mejor producto para escuchar música. Y no instalare un programa que solo utilizare una vez. En fin para gustos hay colores. El caso es que termine buscándolo por “allí” y estaba en una excelente calidad. Así que lo subí a youtube. Este fue el primer video que he subido a youtube (y espero que no sea el ultimo.)

El procedimiento de youtube es seguro, rápido y bien informativo en cada paso. Primero me pide que confirme mi correo. Me envía un correo, hago clic en un link y listo me muestra el primer paso para subir el video. Escribo la información del video y después sigo al siguiente paso de capturar el video o de subirlo. Yo lo subí, eran 44 MB, fue un proceso que tomo alrededor de 5 minutos. Después mostró un mensaje donde se me indicaba que el video podrá se visto después de ser procesado, ósea convertido a un formato que pueda ser mostrado en el sitio de youtube. Después de 10 a 15 minutos, Presto!! Tenemos el video en muy buena calidad. Lo pueden ver en youtube haciendo clic en aquí o verlo abajo en embebed en el post.



Finalmente, en una nota aparte, por si les da curiosidad, youtube utilizar formato FLV o flash video. Youtube sube el video y después lo convierte flv. Para mas información técnica los videos de youtube ver aquí. Creo youtube utiliza progressive download via http para mostrar sus videos, pero me hace falta una referencia de confianza. Asi que les debo esa.


Actualización 7/13/2007 3:25 PM

Parece que el video no duro ni 24 horas sin que lo sacaran por Rejected (copyright infringement). Por lo menos tuvo 201 views y6 comentarios. Lo que no entiendo es como hay otros videos de Pixar y este lo quitan. No se como trabaja la revision de copyright infringement, pero me imagino que lo hace una persona.

Tuesday, July 03, 2007

Mi primicia con el iPhone

Por todos lados se siente la expectativa del iPhone, el cual salio el 29 de Junio a la venta. Estando en Estados Unidos en esa fecha aproveche ara visitar la mi Apple Store mas cercana. Cuando llegue estaban en una mesa alrededor de 8 iPhones de muestra. Como pueden imaginárselo ninguna estaba libre así que estuve a la espera, como otros de que alguien dejara de “probarlo”. Por diez minutos estuvo observando a las personas utilizando el iPhone, tuve mi oportunidad.

Primera cosa que note desde antes de tomarlo es que la pantalla se ensucia mucho. Olvídense de mantenerla limpia, este teléfono es un magneto de huellas digitales y es obvio ya que es la interfase principal.

Al inicio note que el teléfono ofrecía todo lo que se vio en la presentación de Jobs en Enero y en los anuncios. La interfase es intuitiva en su mayoría, se hace el zoom in separando los dedos y zoom out uniendo los dedos. Así como mover los objetos y moverse a través de listas. Si se desea volver al estado normal de la foto, toca la pantalla dos veces.

Solo existe un botón físico en el frente que nos lleva al menú principal cada vez que lo presionamos. Si se desea teclear algo, el teclado qwerty virtual aparece. Siento que las teclas eran demasiadas pequeñas, pero talvez era falta de costumbre con un teclado así. Cuando presionaba una tecla esta se hacia mas grande. Al levantar el dedo de la pantalla entonces se escriba la letra, sino se levantaba el dedo de la pantalla no pasa nada. Podíamos deslizarnos por todo el qwerty tocando todas las teclas, y la última que habíamos presionado justo antes de levantar el dedo de la pantalla es la que se escribe. Su pongo que esto tiene su curva de aprendizaje y a de ser útil para escribir de forma mas rápida. Al que me pareció interesante fue que trate de teclear con mi uña, como e hecho con otras touch screens y no funciono. Supongo que la pantalla es sensitiva al calor y por lo tanto un stylus no funcionaria, pero tendría que confirmar esto con mas info de técnica de la pantalla y mas pruebas.

Estoy en una lista de música, contactos, etc. si estoy en la A e ir directamente a Z no puedo “bajar” debo pasar por todas las letras. Eso no me pareció algo impractico. Había letras al lado para pasar directamente a una letra en vez de pasar por toda la lista pero igual de grandes a Font Times New Roman de tamaño 8.

El sonido era muy bueno incluso con los audífonos tradicionales, los videos se miraban muy bien, lo único oque los e you tube siempre se verán mal donde sea. Los videos pueden verse en vertical o horizontal. Como aparto multimedia de sonido y videos me pareció muy bueno, lo malo es que no se pueden ver otros formatos como divx, mpg4, etc.

La interfase de Mapas (google maps) es excelente, muy útil igual que una PC. Es muy util tener esa info en nuestros teléfonos cuando estamos perdidos de turistas, siempre y cuando tengamos acceso google tenga mapas de las ciudades donde estamos y que tengamos WiFi. Lo malo es que la conexión de EDGE es demasiada lenta para que los mapas carguen rápidamente.

Hablado de rapidez de EDGE, el browser lo sentí algo lento también a la hora de navegar por Internet, me imagino que con WiFi seria más rápido. Se puede ver la pagina por completo como lo vemos en nuestras computadoras, claro que hacemos zoom en las partes que deseamos leer.

No encontré por donde abrir el iPhone, incluso me pareció muy solidó ya que muchas un par de personas lo dejaron caer en la mesa por los cables de seguridad muy ajustados. Se imaginan dejar caer un pedazo de tecnología de estos que cuesta 600 dólares, duele.

Esto fue lo que pude probar del teléfono en el poco tiempo que estuve con el, no lo comprare así que no podré elaborar mas en la parte de llamadas y correo electrónico utilizando POP o IMAP. Pero are lo posible en mi próxima visita de descubrir más cosas y así poder detallar mas en el iPhone.

Lo probare en la siguiente ciudad de USA que visite y veremos incluso se esta vez llevo mi cámara para tomarle fotos y un video.

Thursday, June 14, 2007

Pagina de Concacaf en Youtube

Pueden encontrar videos de la copa de oro 2007 en la página beta de concacaf en youtube. Los videos están en ingles pero pueden poner mute si no les gusta. Los partidos son un resumen pero son de 55 minutos aproximadamente. También están los programas de análisis que es interesante oír que piensan los gringos, esto para comprar con la prensa mexicana y hondureña.


Y como dice el comentarista despues del primer gol de Honduras:


"viva jondurras"

Cuatro Tecnologias "Calientes", Parte 2: Open Source

La segunda parte de la serie de 4 del tema “Cuatro Tecnologías Calientes” hablaremos de cómo Open Source (o codigo abierto) igual que WEB 2.0 (en la parte 1) serán (o estan siendo) muy importantes para los usuarios comunes.

Open source ah estado en la boca y mente de los “informáticos” por un tiempo. Pero los usuarios comunes o no “informáticos” que utilizan el procesador de palabras, browser de Internet, algún juego ocasional, correo, agenda, etc. lo están describiendo. Verán antes los usuarios conocidos podían visitar una pagina en LAMP (Linux, Apache, Mysql y PHP) o en IIS MSSQL y ASP, pero no les interesaba. Todo eso esta cambiando, sino miremos lo que pasa con las diferente distribuciones de Linux, porque cada vez se acercan al nivel de competir con Windows y OS X en facilidad de uso. Sino vean mi post anterior de otras sobre los nuevos conceptos de Desktops.

HP inicio ofreciendo Notebooks empresariales con Linux Suse, como se puede ver aquí. Claro que están orientadas a individuos que las utilizaran en su trabajo, viajes de la empresa y profesionales de IT. Pero llego Ubuntu 7.04, con una interfase que compite con Vista y OS X y lo mejor de todo: es gratis. DELL decido incluir Ubuntu en algunas PC y Notebooks. Los clientes de DELL vieron las bondades del nuevo Ubuntu así que dieron la sugerencia en la página de “tormeta de ideas” y DELL escucho. Cualquier persona que compre una DELL, tiene la opción de pedirla con Ubuntu 7.04 preinstalado. De esta forma cualquier persona que quiera aventurarse a utilizar otro sistema operativo que no sea Windows, tiene dos opciones, comprar una MAC o bajar Ubuntu y instalarlo. Si Bajar Ubuntu e instalarlo es demasiado complicado para el usuario y desea un computadora nueva, puede comprar una PC o Notebook de DELL.

Si un usuario desea comprar una Mac nueva, puede buscar su Apple Store más cercana e ir a probarla. Pero si un usuario desea probar una Ubuntu, debe bajarlo e instalarlo (el cual es gratis), lo cual es más complicado que ir a una Aplle Store. Otra opción es utilizar una maquina virtual, pero hablaremos mas de ello en la parte tres de la serie de cuatro.

Open source le dio a los usuarios otra opción de sistema operativo de forma gratis, claro que hay su curva de aprendizaje, pero tiene sus beneficios. Otro aplicativo que los usuarios comunes utilizan es el browser. Firefox es el ejemplo mas claro de un browser open source. Y lo más ventajoso de utilizar un browser open source es que existe una infinidad de add-ons desarrolladas por terceras personas (third-party), debido a que es código fuente es abierto y cualquier puede “jugar” con el. Lo que le dan un valor agregado al browser comparado a otros, como ser corrección de ortografía, blóquelo de javascript en paginas que yo no lo permito, auto completado, antivirus, etc.

Otro producto open source que puede ayudar ah ahorrar (además de Ubuntu) es Open Office Suite. Es suite de aplicativos para oficina (procesador de palabras, presentaciones, hoja de cálculos) multilengua, multiplataforma así que no ocupamos tener Linux, sino que podemos utilizarlo en nuestra PC con Windows o en nuestra Mac, a la ves es compatible con archivos de otros Office Suites. Lo brinda un buen reemplazo de Microsoft Office, lo que permite ahorrarnos algunos dólares.

La importancia de Open Source no esta en ahorrarnos unos cuantos dólares, sino de tener opciones y a veces mejores (como puede ser Firefox). Se trata un esfuerzo comunitario donde el usuario final puede dar su gratino de arena, donde la comunidad que aporta es parte del software. Se a creído con anterioridad que el software de código abierto o libre (open source) no puede llegar a ser funcional para cualquier usuario, pero eso esta cambiando y lo estamos viendo con Ubuntu, Open Office y otros. Al final del día cuando el usuario tiene que ver en algo en el software que se produce, esto permite la creación de software mas productivo (para el usuario) que el software cerrado y comercial. El consumidor es el que gana, similar a las enconomias de libre competencia donde el consumidor es el que gana. Puede sonar utópico, pero eso es open source, una utopía pero que es una realidad, sino me creen miren el éxito de Snort.

Tuesday, June 05, 2007

¿Conectarme a una Red Inalambrica abierta en publica es un delito o no?

Un hombre fue multado $400 y sentenciado a 40 horas se servicio comunitario al ser encontrado “aprovechándose” o piggybacking de conexión de Internet inalámbrica de un café en Sparta, Michigan, USA. El café Re-Union Street Café ofrece acceso WiFi o de Internet Inalámbrica a sus clientes. Se puede estar tomando un café o cualquier producto y al mismo tiempo navegar en Internet. Aparentemente este Sr. se estacionaba enfrente del café con su carro y se conectaba a Internet a través de la red inalámbrica del café. Pueden conocer más de la noticia aquí. Lo que pasa que solo porque una red inalámbrica este abierta y sin seguridad WEP, WPA o cualquier otra, no se puede asumir que es publica, solo si lo indica un rotulo o aviso, sino es privada y es un delito utilizarla sin permiso del dueño

Lo interesante de este caso es yo ignoraba que es una falta algo grave. Aparentemente esta dentro de la legislación contra actos de hackers. Y recordé que una vez utilice la señal de un Apple Store en un Mall de Estados Unidos para revisar mi correo y chatear un rato, ya que no habían ido a instalar el Internet en mi apartamento, de la que me salve si alguien que había tenido un mal día me cacha. Pero parece que ignorar una ley como esta no es suficiente, porque como existe se debe conocer por las buenas o por las malas.

Honduras carece una legislación que regula este tipo de actividades y las de hackers, así que al principio creía que se puede hacer todo esto aquí, pero después de consultar con un Lic. en Derecho, me di cuenta que debido a que es tan ambigua, siempre se me puede acusar de algo. En este caso de “tomar prestada” el Internet, se me acusa de robo. Lo mismo si se hackea la pagina de “Mel Zelaya” y ponemos “Melaburre”, eso es vandalismo. Y esto complica la existencia de las personas que tiene dispositivos WiFi, porque simplemente los utilizan, para ello los compraron para tener comodidad de poderse conectar en cualquier lado, pero aparentemente, no es así de simple y nadie nos dice que es ilegal conectarnos en cualquier red Inalámbrica, bueno por lo menos en USA, ya que aquí creo que nos podemos escapar de la acusación por su lo ambiguo que es.

Independiente mente de que sea ilegal o no tomar prestada conexión inalámbrica a Internet, es responsabilidad de los dueños de los router proteger la señal. Por eso todos los dispositivos traen instructivos donde nos muestran la mejor forma de utilizar el aparato. Los manuales e instructivos, no son pisa papeles, porta vasos, etc. Pero gracias a todos esos que botan los manuales de sus routeres, e tenido de ir a mi dentista y esperar sin aburrirme al poder navegar en Internet gracias a que otros locales son oficinas, o ir al comer sushi y ver el resultado partido de baseball por mientras que espero mi orden. Pregunto: ¿debería avisarle a estas personas que sus redes están abiertas? Bueno creo que la respuesta es la misma a ¿si les gustaría que le avisaran que el portón de su casa esta abierto y su casa esta sola? Pero estamos hablando de una sociedad que independiente mente de que todos sabes que es ilegal bajar música, películas, programas protegidos por copyrights de forma gratis de redes P2P siempre lo seguimos haciendo.

Friday, June 01, 2007

Multitouch: Mas que Surface y iPhone

Hace unos meses hice un pequeño post sobre el multi touch screen del iPhone. En el post que menciono, hago referencia a un video del 2006 de Jeff Han uno de los principales desarrolladores de esta tecnología hoy en día. Pero todo esto inicio en los1980’s. Pueden visitar esta página, donde podrán tener una perspectiva de lo que es esta tecnología.

Es increíble la cantidad de información relacionada a esta tecnología encontrada en internet, y como su popularidad ha escalado debido al anuncio de iPhone y ahora con el Surface de Microsoft. Pero existenen otros productos ademas de los mencionados anteriormente, como se los de Perceptive Píxel de Jeff Han, o de la Holandesa LUST con GENERATION RANDOM.

Cuando empecé a escribir este post, creía que solo me iba a limitar a hablar de Surface, pero entre mas investigaba mas me daba cuenta que Surface solo es la punta del iceberg, esto debido a la forma de mercadear de Microsoft, donde hace un gran “escándalo” por todo lo “novedoso” que presentan. Hoy en día todo es un gran evento para Microsoft, como lo fue para Vista, XBOX 360, Surface y lo será para Halo 3. De Surface pueden conocer mas en su página, hasta podrán ver la cronología de su desarrollo, así como 3 promos.

Existiendo el hardware, es lógico que Microsoft lo tome y le de giro que pretende: el cual es cambiar el paradigma de cómo hoy en día interactuamos con los sistemas de información y nuestros otros dispositivos de mano i.e. agendas electrónicas, teléfonos celulares, reproductor de MP3, etc. ¿Porque es lógico? Bueno porque Microsoft es especialista en hacer sistemas operativos (aunque su calidad esta en cuestionamiento diariamente) el sistema operativo mas utilizado en el mundo es Windows y nadie se lo quita. Además cada sistema operativo que lanzan lo llaman una revolución, un cambio solo antes visto con Windows 95. Parece que con Surface podrán tener su revolución tan anunciada anteriormente. Ya tiene varios clientes previstos como T-Mobile, Casinos en Las Vegas, restaurantes. El precio: bueno alrededor de $10,000 para tener nuestro pedacito de “Surface Computing”. La fecha: tentativamente final del 2007, aunque nunca se sabe con Microsoft.

Popular Mechanics desarrollo un articulo donde habla de surface, pero también menciona a Jeff Han. Donde se habla de surface y se hace mención de Jeff Han. También se pude ver un video que resume bastante bien la tecnología Multitouch en general, aun cuando pareciera que esta es gran innovación de Microsoft en realidad LUST tiene un producto muy similar, por no decir igual.

Video de Popular Mechanics

El video de Generation Random LUST lo pueden ver aqui.

Como podrán ser testigos Generation Random y Surface son muy parecidos. Los dos son como una mesa de café, no se si la pantalla de LUST es contra agua, pero la de Microsoft si lo es. Las dos se comunican con otros dispositivos ya sea por medio de WiFi, RFID tags o por medio de cámaras infrarrojas debajo de la pantalla. Esto último es aparentemente solo en Surface. En el video de LUST se puede observar como traen cajas con RFID que al colocarlas cerca de la pantalla, aparece contenido en la pantalla referente a cada caja. Esto para simular la comunicación entre dispositivos como cámaras, celulares, agendas electrónicas, etc.

El límite de este hardware es el software, debido a la flexibilidad de interactuar con el usuario final. Incluso esa propiedad de simplemente colocar un cámara, celular, agenda, etc. sobre la pantalla y que se muestren que fotos hay en la cámara, poder así pasar informaron de mapas a la agenda, contactos, correos, eso damas y caballeros “es la mama”.

El promo de “the possibilities” de Surface, muestra esto y algo que me parece muy práctico es tener un menú interactivo en surface, pedir las cosas por miedo de allí y a la hora de repartir la cuenta solo poner nuestras tarjetas de crédito en surface y pasar los respectivos ítems consumidos a cada tarjeta. Es un “dolor” sacara la cuenta, repartirse la propina y el impuest, que unos pagan tarjeta de crédito y otros con efectivo, anoche me paso y perdí 20 minutos de mi vida en eso que nunca podré recuperar.

Imagínense tener una pantalla de estas en nuestro cuarto, puede servir de tv, reloj, computadora, video teléfono, controlador de temperatura del aire, incluso poder ordenar de un solo nuestra comida, revisar cámaras de seguridad, etc. Y cuando no esta haciendo nada puede estar mostrando nuestras fotos, o cuadros favoritos (claro para decorar.)La palabra clave aquí es: imaginación, e allí es el límite.

Lo que me parece interesante es que cuando se programan aplicaciones para dispositivos como Surface, Random Generation, iPhone, etc, creo que el cambio no es muy grande. Creo que ha de ser similar al de WEB 2.0 y en realidad la pantalla, se vuelve una interfase al programa. Es posible que un API se encargara de conectar nuestro software tradicional con la interfase de usuario de API. Aquí estoy “suponiendo” sin ninguna base, siguiendo con el mismo tema de dejar la imaginar correr un poco. Al final este hardware tiene un sistema operativo, con su kernel y sus llamadas al sistema, como es el caso de Surface que utiliza Vista y tiene de soporte de hardware como 4 procesadores y 2 gigas de RAM y quien sabe que mas.

La “maquina” de Jeff Han es distinta a estas porque es mas un interfase que se conecta a una computadora. Pueden conocer más de Surface en esta pagina (que no es de Microsoft). Alli comparadas con las otros links podrán tener una mejor de percepción de este asunto y poder diferenciar entre los diferentes productos.

Esto solo es un inicio y la tecnología de multitouch tiene mucho que madurar, pero el futuro se muy prometedor. Será interesante ver como esta pasa de ser una novedad a algo que es parte de nuestra vida cotidiana y allí se podrá definir si existo la revolución de multitouch o no. Pero existen otros aspectos que considerar, como ser los bugs que puede tener estos productos (especialmente Surface ya que utiliza Vista), seguridad debido a que manejan información sensible de los usuarios e incluso son capaces de efectuar transacciones de tarjeta de crédito, durabilidad de las pantallas, calibración y sensibilidad. Finalmente se debe definir el alcance del mercado que cubrirán estos productos, porque no creo que pueda remplazar la PC o laptop incluso en los hogares. Creo que es mas un asistente para tiendas, restaurantes que le permiten al usuario interactuar y servirse de mejor forma en los negocios y no como reemplazo de una PC. Pero en unos 5 años podremos ver que será de Surface y Genration Random, si iPhone en realidad revoluciono los teléfonos y si Jeff Han crea productos más comerciales.

Thursday, May 17, 2007

Cuatro Tecnologias "Calientes", Parte 1

Según la Revista NETWORKWORLD las 7 tecnologías más “calientes” para el 2007 para redes corporativas, son las siguientes:

  1. WEB 2.0
  2. Network Access Control
  3. WAN optimización
  4. Open Source
  5. Virtualizacion
  6. Network Behavior Analysis
  7. Software As A Service

De las siete, cuatro no solo están “calientes” pero también son importantes para cualquier usuario que tiene una PC con conexión a Internet, las cuales son:

  1. WEB 2.0
  2. Open Source
  3. Software As A Service
  4. Virtualizacion

Puede ser atrevido la aseveración que hago, porque a simple vista solo WEB2.0 es evidente y asi como talvez con Open Source, pero las ultimas dos, rara vez un usuario común utilizara una maquina virtual o comprar una suscripción para utilizar un software de recursos humanos a través de Internet. Pero denme una oportunidad de explicar mi razonamiento. Lo cual se explicara en cuatro posts, este siendo el primero y se iniciara con WEB 2.0.

De las primeras paginas Web en WEB 2.0 fue es google maps. Cuando he querido explicarle a alguien que es WEB 2.0 por medio de un ejemplo, hago referencia a Google Maps. Lo novedoso de WEB 2.0 es que se rompe con e concepto tradicional de por cada clic en una pagina Web que se hace, se tiene que esperar a que aparezca otra pagina reflejando los cambios. Entonces por cada acción que se haga en la página Web, solo cambiara una parte, sin cargarse toda la página otra vez, similar a lo que pasa en nuestros Desktops con ventanas. Si queremos hacer un zoom en el mapa o agrandar un panel de vista de correos en Yahoo Mail o Gmail, el cambio es transparente para el usuario. Si la acción tomara mucho tiempo entonces aparece un indicativo de “loading“ muy parecido al ambiente de ventanas en un Desktop, ya sea Gnomo KDE o Windows.

La palabra clave aquí es transparente, el usuario no debe notar la transición entre contenidos de fomra brusca, sino que debe ser más sutil. Además esto ahora mucho tiempo y trafico porque no se debe cargar toda la pagina otra vez.

Con WEB 2.0 se busca eliminar la necesidad de estar instalando aplicaciones en nuestra computadora, y no preocuparnos por la compatibilidad de sistema operativo. También nos permite acceder ciertos servicios y recursos que antes solo podíamos tener en nuestras computadoras, de cualquier computadora en el mundo con acceso a Internet. Es por ello que se están desarrollando aplicaciones de oficina como hojas de cálculo, procesador de palabras, pero en WEB 2.0. Tipo lo que esta haciendo Google con Google Documents donde podemos escribir documentos y guardarlos en diferentes formatos todo desde Internet. Claro que Microsoft no se queda atrás y ya desarrollo su Office Web 2.0.

Pero la empresa WebShaka fue un paso mas allá que Google y Microsoft y desarrollo un Web OS (Sistema Operativo Web) llamado YouOS. El concepto detrás de YouOS es igual al de las demás aplicaciones, poder trabajar de cualquier parte del mundo, pero a un nivel más alto. YouOS brinda un Desktop donde tenemos más de 600 aplicaciones disponibles y cuando nos salimos, todo queda igual.

Al final con WEB 2.0 tenemos un “thin client” donde el servidor hace la mayoría del trabajo, lo que nos permite tener dispositivos más pequeños sin extraordinarias especificaciones, pero nos permiten hacer la mayoría de nuestras tareas diarias, tipo Pocket PC, IPhone, o las Tablet PC. Si tenemos dispositivos más pequeños esto se vuelve más movible. Al final estos pueden remplazar las PC y laptops, permitiendo del desarrollo de nuevos dispositivos que, no calientan, soportan estar bastante tiempo sin recargarse y llevar más fácilmente con nosotros, sin sacrificar rendimiento y funcionalidad.

Saturday, April 28, 2007

Mas que un nombre: Ethereal cambia de nombre a Wireshark

El nombre de Ethereal, la utilidad de análisis de protocolos de red más famosa del mundo cambio su nombre: a Wireshark. ¿Por qué? Según este articulo Gerald Combs, fundador de proyecto Ethereal cambio de trabajo. Acepto un trabajo con CACE Technologies en Davis, CA, así mismo lleva con el proyecto y los desarrolladores principales. Pero esto no responde el porque.

Cuando me di cuenta de esto me pregunte que esta pasando aquí, solo porque se cambia de lugar, pierde el nombre (mas adelante aclarare porque es una perdida). Así que investigando llegue con la noticia antes mencionada. Allí se detalla que el empleador anterior (NIS) de Combs registro el nombre de Ethereal y el logo. Al partir de la empresa no se llego a un entendimiento para transferir los derechos a su fundador (Combs).

Esto es una gran perdida porque los nombres son lo que venden, lo que identifican a un producto, todo se tarta de la marca. Imagínense a NIKE, COCA COLA, JORDAN cambiaran de nombres.

Cuando un producto, persona etc. crece y es representado por un nombre, ese nombre se vuelve parte esencial de lo que representa. Entonces si lo cambiamos perdemos parte integral del producto o persona. Miren a (Muhammad) Ali, ese nombre es una institución y cuando se hace referencia a ese legendario boxeador solo necesitamos tres letras “Ali”. Y boom… tenemos un nombre que puede vender ropa, tennis, etc. Pero si mencionamos su verdadero nombre Cassius Clay, pierde el efecto que Ali genera.

Ethereal es utilidad de análisis de protocolos de red más famosa del mundo Ethereal, no como Wireshark y las eso le puede costar mucho. Porque el dueño de la marca, puede utilizar el nombre para comercializar otro producto bajo el nombre de Ethereal.

Toda esta en la marca y la identidad detrás de ella. He allí la importancia de siempre registrar los nombres de lo que creamos igual que las patentes. No importa si en ese momento parecen productos o inventos ridículos, es importante patentizar y registras nombres lo mas rápido posible, porque hay otros que están listos para aprovecharse de cualquier oportunidad.

Incluso si trabajamos para alguien y creamos un programa que brinda una gran solución, debemos patentizar y registrar el nombre. Además se debe tener cuidado con el contrato que se firma con el empleador y que no especifique que todo lo que inventamos pertenece la patente a la empresa, porque el salario es insignificante comparado a una marca y producto comercializado con éxito.

Tuesday, April 17, 2007

Nuevos Paradigmas del Desktop

El Desktop de nuestros sistema operativo es plano y muy sencillo de organizar, con toolbars y menus. Pero este video muestra a Beryl en Ubuntu, lo que rompe con el paradigma del desktop segun Microsoft. Incluso Beryl es mas atractivo que Vista o OS X.


Video: BumpTop 3D Desktop

Este otro video simula lo que seria nuestro desktop en la vida real: un relajo de uno cosa sobre las otras regadas por todos lados. Se puede mover, empujar, agrupar, enpilar, etc. los iconos como que fueran documentos de nuestro escritorio. Lo pueden ver en este video.. sinceramente me parece muy atractivo y comodo, debido que necesitamos un multitouch screen y eliminamos el uso del mouse :D.

Estos videos muestran una tendencia de las interfaces de usuario para las computadoras que rompen con el espacio 2D tradicional. Similar papermario de Wii, donde se pasa de 2D a 3D al cruzar una puerta.

Thursday, March 22, 2007

DELL SERVER a la LINUX con un twist de RAID







Tengo un SERVER DELL SC1430 con dos disco duros SATA SEAGATE de 10,000 rpm y con un controlador de disco SAS 5IR con un chip LSILogic SAS1068-IR (el procesador es XEON pero eso no importa para fines de este post).

Necesitaba instalar Linux en este servidor, y no quería gastar REDHAT Enterprise, porque no se puede instalar un sistema básico o base, sino que siempre tienen que incluir muchas cosas por default y desactivar todo lo extra que no se desea, además me parece que es demasiado caro para lo que ofrecen.

Me estaba enamorando de Debian como sistema operativo, por su estabilidad, seguridad y flexibilidad a la hora de instalar. Así que empecé con la instalación de Debian (sarge) y de primaras no me detecto los SATA, así que tenia que buscar una distribución de Linux donde el instalador detectara los disco SATA, pero con las mismas características de Debian. Esto claro si me quería ahorrar el trabajo de crear mi propio disco instalador. De la nada recordé Ubuntu que es una distribución basada en Debian que posiblemente esta más actualizada que Dedian. Además tienen dos versiones la Ubuntu Desktop Edition y Ubuntu Server Edition, lo que me permite de primeras instalar lo que yo deseo: un servidor con sistema base.

Una vez seleccionado el sistema se prosiguió a la instalación. Primero se probo con la 6.06 LTS (Long Term Support) el cual brinda soporte de actualizaciones hasta el 2011. Se llego al punto de la partición, se detectan los dos discos SATA SCSI pero al momento de crear el raid, Ubuntu no lo reconoce. Después de investigar y tratar de crear el RAID con un Live CD de Ubuntu Desktop basado en este tutorial y este y este otro, mas o menos tienen la idea. El asunto esta en que trate y trate de varias formas, incluso considere compilar otra vez el kernel con los drivers de la tarjeta de RAID. Después probé con la Alternate Edition de Ubuntu que permite hacer unas cositas extras y finalmente probé con la versión 6.10, mismo resultado, peor a aun no mostraba la opción de crear el RAID, como en la versión 6.06.

Por unos momentos tire la tolla con Ubuntu y yo solo quería que el RAID funcionara, incluso trate de utilizar el CD que viene con el servidor: Dell OpenManage Server Assistant, el cual crea el RAID(por medio de software), pero solo permite continuar con la instalación si se tiene sistema operativo de tipo Enterprise de RedHat, SUSE o Microsoft. También trate de reiniciar cuando me pedía el CD del sistema operativo y continuar con Ubuntu pero se “congelaba” de mostrar la pantalla de partición. También probe con Fedora Core 6, ese era peor no permitía crear los RAIDS desde la instalación.


Después de dos días de estar batallando con esta instalación, revise todos los links por lo que había pasado y encontré un email de una Mailling List donde una habían podido instalar Ubuntu en el mismo modelo de servidor que el que yo tenia. Así que le escribí a ella porque a mi no me funcionaba con el 6.10 y a ella si le funciono así que quería saber como hizo.

Antes de que ella me respondiera me di cuenta de algo, que cuando se listaban los dos discos duros presentes en el servidor, se podía presionar ctrl+c y entra a la utilidad de la tarjeta de RAID (o SAS Configuration Utility). Así que entre navegue pro las opciones hasta encontrar una parte donde se podia crear el RAID!!!!!! Allí me di cuenta de mi grave error, asumir que el RAID ya estaba creado, o que se creaba a la hora de instalar el sistema operativo. Eso puede ser verdadero para RAIDs baratos pero este era una tarjeta PCI de RAID “Profesional”. Aquí es donde se puede ver la diferencia entre una caja comprada como servidor en contraste con una PC con características de servidor, como podrán ver en este articulo que hace esa comparación entre hardware de PC y Server.

Entonces proseguí a crear el RAID utilizando el SAS Configuration Utility. Al crearlo y reiniciar el servidor se puede observar que en vez de listarse dos discos duros SATA SEAGATE, se lista un solo disco duro: DELL Virtual Disk. Aquí la tarjeta PCI se encarga de todo y no el sistema operativo, si falla un disco duro tenemos el otro. Lo que segué es instalar Ubuntu, donde como lo especifica la persona de este email, no funcionara con la versión 6.06 LTS. En efecto no funciono se queda congelado en la parte de partición de discos, se puede presionar ctrl+c pero reinicia el wizard de partición de discos. En cambio con el la versión 6.10, el instalador detecta el disco SCSI DELL VIRTUAL DISK y podemos continuar con la instalación (y mas importante finalizarla).

Después de cómo 7 discos quemados y dos días lidiando con el mismo problema, que se puede concluir? Pues además de aprender a leer manuales (RTFM), documentación, etc. sigan las siguientes recomendaciones cuando se trata de Linux y servidores DELL:

• Nunca utilizar el cd de DELL para instalación de servidores(Dell OpenManage Server Assistant)
• El momento del bootear el servidor, crear los arreglos con la utilidad de RAID y no utilizar nada de dmraid o mdadm para crear fakeraids.
• Una vez creado, se puede iniciar con la instalación de Linux.

Monday, March 19, 2007

Pirates of the Caribbean: At World's End

Hoy se podra ver el trailer del fin de la trilogia de Piratas del caribe. Me parece que esta trilogia puede llegar a ser de las mejores, espero que no defrauden con la ultima instancia. Quise experimetar poner un video en mi blog asi que aqui les va:


Tuesday, March 13, 2007

Bitácoras (o Logging)

Actualmente es raro encontrar una aplicación o sistema que una vez terminado no deba ser corregido. La razón de esto es por la forma como analizamos, diseñamos, desarrollamos y probamos nuestras aplicaciones. Se debe ser realista sobre algo: en la actualidad se desarrolla mal software y así se siguiera mientras sigamos programando antes de elaborar un profundo análisis y diseño.. Mientras tanto, podemos seguir parchando y desarrollando nuevas versiones con lo único novedoso son correcciones de un error.

Instalamos nuestra aplicación en producción y al mes nuestro usuario nos comenta de un error raro y que no podemos replicar. De vez en cuando aparece este error y puede ser tan crítico al grado que se procesan las transacciones de forma incorrecta. Pero no podes replicarlo y no tenemos tiempo para estar pendientes de ese usuario. En este caso y en los otros casos donde deseamos un registro de todo lo que pasa con nuestra aplicación, es donde el logging en la capa de aplicación es muy útil.

Tener la capacidad de generar una bitácora de todas las excepciones ocurridas, mensajes de error, eventos, etc. generados en nuestras aplicaciones nos hace la vida más fácil. Además, tenemos la habilidad de registrar eventos relaciones con seguridad y así poder determinar si nuestra ampliación esta siendo atacada. Recordemos que esto aplica a aplicaciones Web o Windows.

Para java y C# existe unas herramientas que le permite al programador almacenar los registros de bitácora que deseamos almacenar sin mucho esfuerzo. Estas herramientas son Log4j (para java) y Log4net (para C# .NET). Además de brindar las clases que facilitan el registro de los eventos, también os permite cambar la configuración a partir de un archivo sin necesidad de recompilar el programa. Pueden encontrar un artículo de Security Focus interesante sobre como utilizarlo como bitácora de seguridad. También pueden ver ejemplos en las páginas respectivas de cada proyecto (los cuales pertenecen a Apache). Existe este otro artículo donde pueden hacer su primer “Hola, mundo con log4net”. Pero al final pueden encontrar los que necesitan en las páginas de cada herramienta y también buscan en su buscador favorito.

Si están metidos muy de lleno con la plataforma .NET y desean utilizar otro framework puede utilizar el Logging Aplication Block de las Patterns and Practices de Microsoft. Estas páginas le brindan las mejores prácticas para el desarrollo de software de alta calidad. Además brindan algunos bloques que adicionan funcionalidad al framework .NET.

Independientemente de que framework o metodología de registro de bitácoras utilicemos, es importante que lo hagamos no solo en nuestras aplicaciones, sino en todos nuestros servidores, puntos de autenticación, base de datos, etc. Y porque molestarse tanto? Bueno la información es poder y entre mas información tenemos mejores decisiones podemos tener. Además, creo que es un poco penoso que nosotros no sepamos que esta pasando, cuando somos los creadores o implementadotes de los sistemas.

Tuesday, March 06, 2007

Experimentando con Debian

Febrero fue un mes demasiado corto y ocupado asi que este era el post de Febrero :P

Después de un par de años trabajando con RedHat y Fedora decide aventurarme a trabajar seriamente con otra distribución: Debian. Debían no es una distribución que se debe dar a los que inician con Linux, a diferencia de Mandriva y Fedora, este no trae todos esos bonitos wizards gráficos para instalar el sistema operativo.

La versión Actual de Debían cuando se escribió este post es la 3.1 (o Sarge). Que se dice que es más fácil de instalar que las anteriores. Una ventaja evidente de Debian sobre las otras distribuciones es la cantidad de paquetes de software que puede ser instaladas con apt-get (su rival en otras distros es yum). Existen mucho más paquetes para Debian que para las otras distros. Se recomienda utilizar estos instaladores porque asi se puede desinstalar e instalar programas con mas facilidad y mas limpio que hacerlo manual. Aunque a mi parecer, compilar los sources a veces es la mejor opción, cuando se quiere full control sobre la instalación y se desea saber que esta pasando de verdad.

Otra ventajas de Debian es su estabilidad, seguridad, y en si la filosofía detrás, porque todo es basado en políticas muy bien pensadas y detallistas. A tal grado que un paquete no tiene un manual es considerado un bug.

Yo no soy un experto en pero basado en experiencia e investigación encontré estas ventajas. Si necesitan ser convencidos de porque Linux y mas un porque utilizar Debian, vean este articulo, esta interesante los puntos de vistas y argumentos.

Lo que me encanta de debian es que nos permite instalar un sistema operativo base, inecesarios para que el Debian ejecute correctamente. Las dos veces que lo instalado este viene con el kernel 2.4, por lo tanto seria bueno utilizar apt-get para instalar el nuevo kernel. Con el siguente comando:

$ apt-get install kernel-image | grep 2.6 podrán ver todas las versiones disponibles del kernel (tomando en consideración también le procesador de nuestra computadora).

Si deseamos trabajar con nuestro sistema, podra ser que necesitemos instalar aplicativos que necesitamos compilar por ciertas configuraciones que deseamos. Por lo tanto se debe instalar el make, gcc y otras librerías.

Si recibimos los siguientes errores entonces se deben instalar con nuestro manejador de paquetes favorito (en este caso core que es apt-get :D). Esta es una muestra de los erroes que se puede recibir;

Make not found, do
apt-get install make

If you get the error: gcc not found, do
apt-get install gcc

If you get the error "C compiler cannot create executables."
apt-get install libc-dev

Por cierto, ni el traceroute esta instalado (para instalarlo utilizar: $apt-get install traceroute ).

Para empezar con Debian, creo solo se debe bajar la imagen básica llamada netinst, donde pueden ver de que se trata haciendo clic aquí. De allí todos los paquetes los pueden bajar de Internet utilizando el apt-get. El uso del apt-get es básico, pero si tiene problemas pueden acudir a este HOW-TO. El apt-get depende muchas veces de los repositorios que se indiquen. Pueden estar localizados en Internet o en un CD o DVD. Para mas detalle puede avocarse a este link y creo que es suficiente para experimentar…

Sunday, January 21, 2007

Quickstart Threads in C#

C# soporta la ejecución paralela de código por medio de multithreading. Un thread o (hilo) es otro camino de ejecución independiente al del proceso principal (o “main” thread) que lo manda a llamar, de esta forma permite la ejecución simultanea con otro hilos.

Un programa de C# empieza con un solo hilo creado automáticamente por el CLR y el sistema operativo. Este hilo se llama “main” thread (o hilo principal) y los otros hilos que son los “worker” threads. El programa se vuelve multhi-threaded (o multi-hilos) al crease threads adicionales.

El CLR asigna a cada thread su propio stack de memoria para mantener las variables locales separadas. Por lo tanto si se hace un método que se ejecuta dos veces en dos threads distintos, entonces existirán dos instancias de las variables en dos stacks. Pero si se desea compartir data entre hilos, se puede hacer si se tiene una referencia a la misma instancia de un objeto. También se puede compartir data entre hilos utilizando campos o variables estáticas (en C# se utiliza la palabra static para definir tales variables).

El problema de compartir data entre hilos es la seguridad entre threads. Sucede los siguiente: puede ser que el thread A empiece a trabajar en las variables o recursos compartidos, cuando thread B todavía esta trabajando en ellos, lo cual afecta el resultado de thread B de una forma no deseada. Similar a lo que pasa cuando dos o mas aplicaciones clientes accesan un registro en una base de datos, definido como concurrencia, solucionado con métodos de control de concurrencia. Para solucionar este problema con los threads se necesita obtener un exclusive lock, de tal forma que el recurso compartido solo puede ser utilizado por un thread a la vez.

Después de esta breve introducción, pueden conocer mas de los threads con ejemplos y todo en esta pagina que considero (ya que me ayudo) muy practica y suficiente para trabajar con threads en C#.

Pero si no desean leer todo el contenido de la página, y desean empezar a trabajar con los threads entonces sigan leyendo. Utilizo los threads en C# para dar una interfase grafica para el usuario que responda durante procesos largos. De esta forma el thread principal Main, podrá estar respondiendo a cualquier requisición del usuario, mientras los hilos trabajan en otras tareas y ventanas.

Para empezar se debe incluir

using System.Threading;

Después de esto creamos el método estático que tendrá todo lo que deseamos correr en el hilo.

private static void metodo()

{

...

}

Si se desea utilizar argumentos, solo se podrá incluir uno. Por lo tanto si se tienen varios argumentos, se pude pasar como argumento un objeto con varias propiedades o un arreglo si todos los argumentos son de un tipo.

private static void metodo(object arg)

{

...

}

Tenemos nuestro metodo ahora a crear el thread. Para crear un thread y ejecutarlo se hace de la siguiente forma:

Thread hilo = new Thread(new ThreadStart(metodo));

Si el metodo tiene un parametro entonces lo declaramos de la siguient eforma

Thread hilo = new Thread(new ParameterizedThreadStart(metodo));

Se declara el hilo con el método que se ejecutara por en el hilo. Para iniciar el thread solo llamamos a:

hilo.Start();

Si deseamos abortar el thread entonces utilizamos Abort(). Para poner a dormir al hilo utilizamos Sleep(n) donde n es el número de segundos que deseamos que el thread duerma.

Dot Net también nos brinda una clase ayudante, BackgroundWorker en el namespace System.ComponentModel para manejar un worker thread. Esta clase nos provee las siguientes bondades:

  • Una bandera “cancel” para mandar una señal al thread de que debe terminar sin utilizar el a veces problemático Abort.
  • Un protocolo estándar para reportar progreso, completación y cancelación. Muy útil para mostrarle a un usuario como va el trabajo.
  • Manejo de excepciones
  • La habilidad de actualizar los controles en las Windows Forms del progreso o finalización del thread. También útil para mejorar la interacción con el usuario.

Algo interesante es que el hecho que BackgroundWorker maneja un pool de threads, donde los recicla en vez de estar creando nuevos threads. Entonces si se desea utilizar esta clase hacemos lo siguiente:

Declaramos el objeto

static BackgroundWorker worker = new BackgroundWorker();

Despues le agregamos los eventos a utilzar. Me parece que los eventos mas utiliados son:

DoWork: donde se programa el trabajo qe efectuara el thread

ProgressChange: donde reportamos el progreso de trabajo a un control como ser una progressbar (barra de progreso).

RunWorkerCompleted: que se encarga de ejecutar lo que queramos cuando termina el thread de ejecutarse.

Estos dos últimos eventos son muy importantes para mejorar la interactividad con el usuario y para comunicarse con el main thread, debido que no es permitido que los hilos se comuniquen entre si, ósea “cross thread comunication” no es permitido.

Así adicionamos los métodos que se ejecutaran en los eventos:

bw.DoWork += new DoWorkEventHandler(bw_DoWork);

bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);

bgWorkerPrintBLs.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);

donde los metodos en los parentesis se definen de la siguiente forma:

private void bw_DoWork(object sender, DoWorkEventArgs e)

{

//trabajo del thread

}

void bw_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)

{

//intereaccion con el progress bar control

progressBar.Value = e.ProgressPercentage;

}

void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)

{

//cuando el thread termina puede ser un messagebox o mensaje

MessageBox.Show(“fin”);

}

Finalmente para inicar el este worker thread haemos los siguiente:

bw.RunWorkerAsync();

Conclusion:

Este es un quickstar para threads en C# lo cual es muy probable que se tenga que utilizar en aplicaciones para Windows que no dejen de responder visualmente cuando les toca ejectuar un proceso de varios segundos. Pero esta es solo la punta de iceberg y el ebook (y fuente teorica para este post) que lei para iniciar con los threads en C# es una buen inicio. Alli tambien encontraran sobre sincronizaciones de threds, seguridad, comunicación entre threads y otra informacion teorica y practica muy util.

Wednesday, January 10, 2007

iPhone de Apple Inc comparte touch screen y nombre

Bueno, no duro mucho sin crear controversia el nuevo producto de Apple Inc. (ya no es Apple Computer Inc). iPhone no es un nombre registrado por Apple, sino por Cisco y es parte de una linea de productos de su división Linksys. Por lo tanto Jobs anuncia el nuevo producto bajo nombre iPhone, entonces Cisco lanza su ataque legal contra Apple Inc.

Bueno ese es un pequeño problemita que no dejara de vender los iPhones, aunque lo que si me parece interesante es que su tecnología del touch screen dice que esta patentizado. Bueno un amigo Orlando Flores me paso un video muy interesante donde se muestra que un touch screen similar al de iPhone, incluso va mas allá, pareciéndose a lo que vimos en una película hace unos años.

Las aplicaciones que se muestran son aun más interesantes y creo que van en pro de un futuro sin límites para el UI para todos y no en pro del “Inc.”

iPhone: el tres en uno

Ayer 9 de enero del 2007 en la expo y conferencia anual de Apple llamada MacWorld, Steve Jobs en su keynote de entrada introdujo al mundo un nuevo ipod con touch screen y Wide screen, un teléfono revolucionario y un comunicador de Internet que quiebra la brecha de los demás. Estos tres dispositivos, son uno solo llamado el iPhone. Lo llama una reinvención del teléfono, por el hecho que sus funciones y sus maravillas y además de la facilidad de utilizar y porque es mucho mas “inteligente” que los smartphones.

Puedo describir y resumir lo que Jobs dijo en el keynote pero creo que es mejor que cada quien lo vea. El video del keynote lo pueden encontrar en este link. Ustedes ven esto y es increíble lo que se podrá hacer con este dispositivo. Osea la User Interfase es increíble lo innovador y fácil que es de utilizar. A mi no me gustan mucho los productos de Apple pero, yo quiero un iPhone, es así de bueno….

Algo interesante de este keynote es la fanaticada de Apple, el público esta metido de lleno a la charla. Se comen cualquier cosa que Steve Jobs dice, lo aplauden, gritan se rien. No solo es el hecho de estar allí, todo ellos comparten la emoción de Steve Jobs, todos ellos están emocionados, en realidad vale la pena ver el keynote, vale la pena vivirlo (si se puede) es una comunión. Véalo como lo que pasa en partido de su deporte favorito en ese momento se olvidan de la guerra de Irak, de la pobreza, del hambre de sus problemas y cuentas por cobrar. Así de hipnotizante es el keynote y el iPhone.

Pero volviendo a la realidad hay ciertas cosas que me pregunto. ¿Por qué no tiene expantion slot para memoria? ¿Qué tan durable será la pantalla? ¿Si los parches para mac OS X para MACS también se tiene que aplicar a iPhone? ¿Cuánto cuesta? ¿Cunado puedo tener uno?

Pues se algunas respuestas gracias a un poquito de investigación. El iPhone sale hasta junio y costara $499 el de 4 gigas y $599 el de 8 gigas. No tiene expantion slot y no se porque, talvez no es tan necesario y también para obligar a las personas a solo utilizar iTunes para pasar data. Pueden ver un resumen del iPhone en este video de cnet.

Es un dispositivo muy interesante y vale la pena considerar si se tiene el dinero, lo cual me trae al dilema si es un lujo o en realidad es una necesidad ya que nos facilita la existencia.