1. Estudia, estudia y estudia
El estudiar nos permite perfeccionarnos, cuanto mas estudiemos mas oportunidades de programar mejor tendremos, no solamente estoy hablando de universidades, ni tampoco de cursos, hoy por hoy gracias a internet existen
Tips para ser un mejor programador
Más allá de las bases de datos relacionales
Las bases de datos relacionales, como MySQL, PostgreSQL y varios productos comerciales, nos han servido bien durante muchos años. Últimamente, sin embargo, ha habido mucha discusión sobre si el modelo relacional está llegando al final
Google: mod_pagespeed, tus sitios optimizados
El modulo, llamado mod_pagespeed, puede ser instalado y configurado en los servidores web Apache, el software más utilizado para el funcionamiento de sitios web. Una vez instalado, mod_pagespeed determina sobre la marcha la manera de optimizar el rendimiento de una web. Por ejemplo, comprime imágenes de manera más eficiente y cambia la configuración para que un mayor número de páginas se almacenen en el caché del navegador del usuario, de modo que los mismos datos no tengan que cargarse en varias ocasiones. El software se actualiza automáticamente, señala Richard Rabbat, gerente de producto para el nuevo proyecto. Afirma que esto significa que a medida que Google y otras terceras partes realicen mejoras, las personas que lo instalen se beneficiarán de dichas mejoras sin tener que realizar ningún cambio. "Creemos que hacer que toda la red sea más rápida es algo crítico para el éxito de Google", señala Rabbat. Hacer que la red sea más rápida debería animar a la gente a usarla más y aumentar la probabilidad de que usen los servicios y el software de Google. Rabbat señala la frustración que sienten los usuarios cuando hacen clic en un enlace o escriben una dirección URL y observan una página en blanco durante varios segundos. "En muchos casos," afirma, "personalmente abandono esa página cuando algo como eso ocurre". Google ya ofrece una herramienta llamada Page Speed, encargada de medir la velocidad a la que se carga una página web y sugerir formas de mejorarla. "Nos hicimos la siguiente pregunta: en lugar de simplemente decirle a la gente cuáles son los problemas, ¿podemos arreglarlos de forma
DocTranslator: Traduce documentos de Office conservando su presentación
DocTranslator es un servicio online gratuito que te permite traducir los textos de Office, conservando su formato y presentación intacta.
Las traducciones son realizadas a través de Google Translate en sus 50 idiomas, no hay límite en el tamaño del documento a traducir y no se necesita estar registrado para utilizar el servicio.
Documentos de Word y Excel son totalmente compatibles y también lo son archivos .txt. En caso de que use un sistema operativo diferente a Windows, deberás consultar la tabla de compatibilidad.
¡Saludos!
Escuchando Ahora: Actualiza tu estado de facebook con lo que escuchas en winamp
Hace una semana estaba langareando muy feliz, en mi casa y se me ocurrió una brillante idea… Vaya sé que no es original pero se me ocurrió.
Pensé:
¿Existirá una aplicación que sea capaz de poner lo que estoy escuchando en winamp en mi muro de publicaciones de Facebook?
Google Over SSL
Hace unos pocos días, fue de conocimiento público el hecho de que Google había estadorecolectando datos de redes Wi-Fi abiertas a través de sus vehículos asociados con el servicio Google Street View. Una oleada de protestas y dos demandas después, el asunto parece haber sido corregido en Mountain View, aunque la ignorancia por parte de miles de usuarios al dejar sus redes Wi-Fi completamente abiertas y sin una protección eficientesigue tan vigente como antes del incidente (N. del. R.: Cierren sus redes. No es broma.). Mientras tanto, Google se encuentra trabajando sobre una capa extra de protección para los resultados de las búsquedas hechas en su motor. En otras palabras, ha aparecido unaversión beta del clásico portal de Google, con una conexión segura utilizando el protocolo criptográfico SSL.
- Google SSL
es Facebook. La gente acostumbra a ingresar a la red social con la clásica dirección WWW, pero si agregan una "s" al http, verán que Facebook tiene certificado de seguridad, y es compatible con esta clase de conexión. Google ha incluido conexiones seguras en varios de sus servicios, como es el caso de Gmail, pero ahora es el turno del portal de búsquedas. Actualmente el servicio se encuentra en fase beta, y es posible que los usuarios obtengan un rendimiento inferior al acostumbrado, pero lo hemos estado probando desde hace un buen rato, y no hemos tenido inconveniente alguno.
Tal vez pase algún tiempo hasta que la conexión segura en el portal de búsquedas de Google se convierta en la opción por defecto. Google ha explicado que la conexión segura sólo encripta las palabras claves y los resultados enviados. En caso de que el ordenador se encuentre infectado por alguna clase de malware o keylogger que pueda registrar la actividad del usuario, dicha conexión segura sería irrelevante, pero nunca está de más contar con una capa extra de seguridad. Desde todo punto de vista esto se ve como una especie de compensación ante el "error" cometido con los coches de Google Street View. No es necesario decir que Mountain View deberá tener más cuidado para la próxima, pero esto ha servido para que los usuarios obtengamos algo mejor. Después de todo, las búsquedas encriptadas no suenan nada mal.
¿Que diablos es foobar?
Hola que tal SQLeros, me da mucho gusto que me estén leyendo en este post. Ahora hablaremos un poco de los terminos foobar, foo, bar, and baz, esta palabra, ¿cosa?, ¿termino?, o lo que sea que se usa en la jerga informatica desde ya hace tiempo.
Pero apoco nunca se han preguntado (que chingaos) ¿cual es su significado?
Buscando un poco por la Internet, me he encontrado muchas cosas muy interesantes (y que realmente me han sorprendido) como:
la definición de la Wikipedia nos dice:
Foo es un término genérico ampliamente usado para aludir a cualquier entidad informática cuyo nombre se ignora o no se quiere expresar. Por sí misma la palabra foo no tiene un significado preciso, solamente es una representación lógica en el sentido en que las letras x e y se usan en álgebra para representar un número desconocido.
La palabra foo aparece en el idioma inglés como un neologismo dada su popularidad en describir conceptos en las ciencias informáticas y muchas personas la consideran un ejemplo canónico de una variable metasintáctica. Se usa de forma amplia en la literatura informática anglosajona, generalmente en los ejemplos de programación y pseudocódigo. La Real Academia Española no reconoce esta palabra como parte del idioma español.
El origen de tal palabra no está muy claro porque tiene antecedentes muy complicados, incluyendo una larga historia en los guiones decómics y caricaturas. Sintácticamente podría ser una abreviación de File Or Object.
Tal como se pueden nombrar a personas desconocidas como fulano, mengano, perengano, citrano o zutano, en la informática también existe una familia de palabras como foo, bar, foobar o baz.
¡Un RFC sobre la etimología del Foo!
Tambien como lo explica la wikipedia y demas definiciones es usada para describir, objetos, elementos o alguna cosa que es muy trivial o no tiene ninguna relevancia en el contexto.
Para dar ejemplos de código, configuraciones y demás aplicaciones en las que se muestra el comportamiento mas no el valor del elemento, objeto, cosa.
[sourcecode lang="php"]
< ?php
if($foo>$bar):
echo $foo;
endif;
?>
[/sourcecode]
Un Saludo!
Los diez errores más comunes en el diseño de una base de datos
Hola SQLeros,Louis Davidson es un experto en el diseño de Base de Datosy es autor del libro SQL Server 2005 Database Design and Optimization en el artículo aquí enlazado presenta los diez errores más comunes en el diseño de una BD que el ha detectado a lo largo de su experiencia:
- Mala planeación del diseño
- Ignorar la normalización
- Estándares de nomenclatura deficientes
- Falta de documentación
- Una sola tabla para guardar todos los valores del dominio
- Usar columnas GUID como la única llave de una tabla
- No usar las funcionalidades SQL para preservar la integridad de los datos
- No usar Stored Procedures para acceder a los datos
- Intentar construir objetos genéricos en los stored procedures
- Falta de pruebas
En mi experiencia la mayoría de los desarrollos donde he trabajado presentan algunas de estas deficiencias en su base de datos. Creo yo que en muchos de los casos es porque se deja a un programador diseñar la base cuando debe ser haber un DBA involucrado en el proceso. Se que muchos proyectos no pueden pagar el sueldo de un DBA en exclusivo pero creo que al menos debe haber un DBA por organización que supervise el diseño elaborado por los programadores, lo mejore y le de su visto bueno.
Con las bases de datos pasa como con el diseño web, cuando se deja en manos de un programador elresultado puede ser un desastre e imagino que la mayoría de ustedes ha tenido que lidiar con chapuzas como una tabla totalmente desnormalizada (digo a veces está bien desnormarlizar para ganar en desempeño pero hay límites) y que necesita de 5 o más campos para tener una llave compuesta (y dile adios a tu idea de usar un ORM para la capa de datos), o una tabla con 20 campos que se llaman campo1, campo2, .. campoN y que nadie en la organización sabe que diablos es el campo7 o quién era el encargado de actualizarlo pero sin él tu aplicación no funciona, en fin no seguiré descargando mi frustración aquí . En mi opinión una forma de evitarle frustraciones a los otros programadores es que, dado que las empresas no van a querer pagar un DBA para auxiliarte en el 70% de los casos,nosotros nos documentemos con artículos como el de Louis para realizar un mejor trabajo que programar no es solo usar Spring o el último patrón de diseño.
Crear Servicio Web En PHP Con NüSoap
2.- Después descomprimes ese archivo y lo copias a tu sitio web (para este ejemplo el sitio se llama miwebservice y los archivos de NuSOAP los puse en un directorio llamado lib-nusoap.
3.- Luego ejecutas en tu Servidor MySQL el script de la Base de Datos db_productos.sql que lo puedes descargar desde esta pagina.
4.- Luego crea una pagina PHP (en este ejemplo la pagina se llama servicioweb.php) y codificas lo siguiente:
[sourcecode language="php"]
< ?php
require_once('lib-nusoap/nusoap.php');
$server = new soap_server;
$ns="http://localhost/aplicativo"; // espacio de nombres; Sitio donde estará alojado el web service
$server->configurewsdl('MiWebService'); //nombre del web service
$server->wsdl->schematargetnamespace=$ns;
/************ REGISTRANDO EL ARRAY A DEVOLVER(array de productos) **************/
$server->wsdl->addComplexType(
'ArregloProductos', // Nombre
'complexType', // Tipo de Clase
'array', // Tipo de PHP
'', // definición del tipo secuencia(all|sequence|choice)
'SOAP-ENC:Array', // Restricted Base
array(),
array(
array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:Productos[]') // Atributos
),
'tns:Productos'
);
/************ REGISTRANDO LA ESTRUCTURA DE DATOS PRODUCTOS **************/
$server->wsdl->addComplexType('Productos', 'complexType', 'struct', 'all', '',
array(
'ProductoID'=> array('name' => 'ProductoID','type' => 'xsd:int'),
'Nombre' => array('name' => 'Nombre', 'type' => 'xsd:string'),
'Precio' => array('name' => 'Precio', 'type' => 'xsd:string')
)
);
/*METODO DEL WEB SERVICE*/
function ListarProductos($estado){
if($estado!=''){
$db = new mysqli(); //mysqli exclusivo para usar procedimientos almacenados
$db_result = $db->connect ("localhost", "root", "","db_productos");
$sql=sprintf("call usp_ListarProductos('%s');",$estado); //intentando filtrar el SQL Injection
$result = $db->query($sql);
if (mysqli_errno($db)) printf("mySQL error %s\n", $db->error); //si es que hubo error se muestra
$db->close();
$i=0;
if($result->num_rows>0){
while($row = mysqli_fetch_assoc($result)){
$toc[$i]['ProductoID'] = $row["producto_id"];
$toc[$i]['Nombre'] = $row["nombre"];
$toc[$i]['Precio'] = $row["precio"];
$i++;
}
$result->free; //liberando memoria
return $toc;
}
}
return '';
}
/************ REGISTRANDO EL METODO **************/
$server->register(
'ListarProductos', // Nombre del Método
array('estado' => 'xsd:string' ), // Parámetros de Entrada
array('return' => 'tns:ArregloProductos') //Datos de Salida
);
/******PROCESA LA SOLICITUD Y DEVUELVE LA RESPUESTA*******/
$input = (isset($HTTP_RAW_POST_DATA)) ? $HTTP_RAW_POST_DATA : implode("\r\n", file('php://input'));
$server->service($input);
exit;
?>
[/sourcecode]
Si deseas puedes descargar el ejemplo completo desde aquí. Varios usuarios me han hecho la observación en la cual no funciona el código, esto es por el nombre de la carpeta comprimida que llame SQLeros-NüSoapEjemplo.zip, para que funcione bien solo cambienle el nombre por: SQLeros-NuSoapEjemplo.zip
También veremos como consumir el servicio desde C#,VB.Net y Java. Saludos
Ctrl Alt Supr
Enero de 2004. La prensa especializada deja caer entre sus artículos uno dedicado a un ingeniero de IBM que despues de muchos años abandona la empresa. ¿Qué puede tener de especial una persona para merecer ese titular? El protagonista de esta historia se llama David J. Bradley. Tiene 55 años. Formó parte del equipo que creó el primer ordenador personal. Debe sus quince minutos de fama a haber sido quien ideó la combinación de teclas "Control+Alt+Supr" para reiniciar un ordenador.
Por esta razón Bradley entra en el Club de los Históricos de ARRAI.
¿Cuantas veces hemos usado esta combinación de teclas para reiniciar nuestros equipos? El "Control+Alt+Supr" (en inglés "Control+Alt+Delete") es uno de los pequeños iconos culturales del mundillo de la informática.
Corría el año 1981. 12 ingenieros, "los 12 del patíbulo", creaban en los laboratorios de IBM situados en Boca Ratón, Florida, el primer ordenador personal, el IBM-PC. Entre ellos estaba David J. Bradley. Fue el encargado de diseñar la BIOS de aquel primer equipo de uso doméstico. El resto de su trabajo para el "gigante azul" queda empañado por la anécdota: la creación del código de reinicio del PC.
El ingeniero David Bradley
Entró en IBM en 1975, y formó parte a partir de 1980 del equipo que desarrolló el primer ordenador personal. Entre otras cosas, es responsable del código de la ROM BIOS que llevaban los primeros PCs. Despues de 28 años y medio en IBM, Bradley la abandonó en enero de 2004. En la actualidad continúa impartiendo clase en la Universidad Estatal de Carolina del Norte. Para este ingeniero en electricidad e informática, cuantos más estudiantes vayan a carreras de ciencia y tecnología, mayor será la fuerza económica del país (en su caso, de los Estados Unidos).
Control Alt Delete
¿Por qué se desarrolló esta función? Bradley explica que a principios de los 80 en IBM se estaban haciendo pruebas de forma intensa con nuevo hardware y nuevo software. Esto provocaba que los ordenadores se quedasen colgados con facilidad. Para volver a arrancar un equipo era necesario apagarlo, esperar unos segundos a que reposara para no provocar daños al hardware, volver a arrancarlo y esperar por las rutinas de autocomprobación que ejecutaba el PC. Se tardaba más de un minuto en volver a tener el equipo operativo.
La idea de Bradley era crear un mecanismo que permitiese el reinicio "en caliente", sin tener que seguir todo ese proceso. El ahorro de tiempo era considerable, y por eso esta funcionalidad, que en un principio estaba destinada únicamente a ser conocida por los desarrolladores de IBM, se difundió paulatinamente entre el público.
¿Porqué esas tres teclas?
¿Por qué estas tres teclas? Se trataba de encontrar una combinación que no se pudiese teclear por accidente. Se eligieron dos teclas de uso poco común (Control y Alt) y la tercera se buscó justo al otro lado del teclado. Al principio Bradley pensó en la tecla "+", pero creyó que DELETE tendría más sentido. Una vez definida la solución, Bradley afirma que programarla no le llevó más de cinco minutos.
La actualidad de "Control Alt Delete"
Ya no es lo que era, ahora es más. Las versiones de Windows 2000 y XP capturan esta combinación y ofrecen un panel de opciones: el administrador de tareas, cerrar sesión o apagar de forma civilizada. En los casos extremos en que esto ya no funciona, no hay más remedio que volver al fatídico botón de reset.
Tambien se incorpora en Windows 2000 para arranque de sesión, con lo que "Control+Alt+Supr", tambien conocido como "La llave de Vulcano", o "El saludo de los tres dedos", ha dejado definitivamente de ser un truco no escrito a ser una combinación de teclas de obligado conocimiento, mucho más usada si cabe.
Hacerlo famoso
Cuando se celebraba el vigésimo aniversario de la creación del Pc, compartían escenario en una mesa redonda Bill Gates y David Bradley, entre otros. Durante una parte del evento, el tema de conversación era el mecanismo de reinicio. En el vídeo cuyo enlace ofrecemos se puede oir a Bradley bromeando con Gates, aunque este último no pone cara de estar divirtiéndose. Bradley dice: "Hacerlo llevó cinco minutos, no sabía que iba a crear un icono cultural. Pero tengo que compartir el mérito, puede que yo lo haya inventado, pero ha sido Bill el que lo ha hecho famoso."
Seguramente, Bradley fue el primer sorprendido por la fama alcanzada por su código. Algo que en principio era simple, que no llevó más de cinco minutos, se acaba convirtiendo en un icono cultural. Quizá esto nos puede enseñar a apreciar los detalles y los trabajos pequeños. Si están bien hechos y son útiles, pueden convertirse en algo con un gran significado.
La idea de Bill Gates es distinta. Adoptó el código de Bradley, le era útil y lo utilizó como un complemento para construir algo mayor. Es tambien una forma de ver como lo que hacemos, si lo compartimos, puede servirle a otra gente. Aunque podemos adivinar que Gates hubiese preferido que el "Ctrl+Alt+Supr" no fuese tan conocido por sus usuarios.
Ahora una rola del reno renardo al respecto.
Sistema de Boletaje para Terminales de Autobuses
Dia del codigo de barras
Si hicieron una búsqueda en Google hoy, quizás habrán notado que algo extraño le pasó al logo. El nuevo “doodle” que aparece hoy, y que debiera ser fácilmente reconocido por todos, celebra los 57 años del código de barras.
El invento, que ha facilitado las compras en el supermercado en el mundo (entre otras cosas), fue patentado el 7 de Octubre de 1952 por los ciudadanos del país del consumismo estadounidenses Norman Joseph Woodland y Bernard Silver.
Silver, quien administraba una cadena de locales de comida, buscó crear un sistema que facilitara la lectura de los datos de los productos de forma automática. Para ello se asoció con el profesor del Instituto Tecnológico Drexel, de donde se había graduado, y crearon el hoy universal código de barras.
La primera versión consistía en una serie de círculos concéntricos, que luego fue reemplazada por las líneas rectas que se utilizan hasta hoy.
Link: Bar code: invention history behind new Google doodle (Telegraph)
Google festeja hoy sus 11 años Online (¿de vida?)
El 27 de septiembre parece haber sido la fecha elegida por la empresa que hoy mismo cambia su logopara celebrarlo, aunque muchas personas discrepan y consideran que el nacimiento de Google tuvo lugar el día 15 del mismo mes
[caption id="" align="alignnone" width="600" caption="11 años de google"]
Hoy Google celebra su cumpleaños número 11 y para celebrarlo agregó una letra L extra: Googlle (Goog11e).
El aniversario de Google se celebra durante el mes de septiembre, no tiene una fecha exacta, aunque en2002 y 2005 (y ahora 2009) se escogió el día 27 de septiembre para celebrarlo desde el logo del buscador.
Con once primaveras a sus espaldas y convertidos en la mayor empresa de internet, Google nos regala, semana a semana, todas las novedades para hacer más sencilla nuestra navegación por la red.
Según figura en los archivos, fue fundada el 7 de septiembre de 1998 por Larry Page y Sergey Brin(dos estudiantes de doctorado en Ciencias de la Computación de la Universidad de Stanford).
Aunque su principal producto es el buscador, la empresa ofrece también entre otros servicios: un comparador de precios llamado Google Product Search (antes conocido como "Froogle"), un motor de búsqueda para material almacenado en discos locales (Google Desktop Search), y el servicio de correo electrónico llamado Gmail, el cual pone a disposición para sus usuarios más de 7 GB[2] de espacio.
También es famoso su programa Google Earth, un mapamundi en 3D con imágenes de alta resolución. Recientemente lanzó su versión beta de un servicio de mensajería instantánea basado en Jabber/XMPP llamado Google Talk.