martes, 13 de noviembre de 2007

20 Tips para ser un mejor programador

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 infinidad de tutoriales y manuales, sin ir mas lejos el sitio oficial de PHP es realmente muy bueno.

2. Busca antes de preguntar
Esto es un mal común del que quiere aprender a programar, es mas fácil preguntarle a alguien que sepa, pero realmente no tiene que ser así por varias razones, primero por que es algo de muy de vago, luego que cuando alguien nos da la respuesta fácil no aprendemos nada, lo interesante cuando se nos presenta un problema es buscar la solución nosotros mismos, sino damos con la respuesta recién ahí preguntar, este ejercicio realmente es muy beneficio, nos permite preparar nuestra cabeza para solucionar futuros problemas.

3. Busca scripts ya desarrollados
Por lo general podemos encontrar muchas funciones, scripts listos para utilizar, pero lo interesante es estudiarlos, ver como funcionan, de ahí aprendemos si copiamos y pegamos vamos mal.

4. Lee el código fuente libre
Yo muchas veces descargo algunas aplicaciones para ver como están programadas, de verdad que se aprende mucho, a medida que realicemos esta practica cada vez iremos aprendiendo mas, en especial si estas aplicaciones son de uso popular en donde miles de programadores del mundo “meten” mano para mejorarla. Un buen ejemplo de esto es Wordpress.

5. No copies y pegues
Es fácil, entramos a google buscamos una función que sirva para lo estamos necesitando y listo. Pero la realidad es que no siempre lo que descargamos es correcto, y si luego tenemos que solucionar un problema lo mas probable es que no tengamos ni idea por donde empezar. Ni hablar del factor aprendizaje cero que esta practica implica.

6. Buscar el momento para programar
Estas sentado delante de tu ordenador, llaman por teléfono, tu compañero de trabajo o familiar te pregunta algo, realmente es lo mas molesto e incomodo que hay, es difícil concentrarse, es preferible hacer algo mas “Light” antes de programar algo mal y después tener que arreglarlo.

7. Ten tu propia Wiki
Esto lo recomiendo muchísimo, es muy sencillo instalar una Wiki en nuestra pc, simplemente podemos descargar el Easyphp y tener en nuestro ordenar un servidor funcional, y mejor aun si quieres hacer la instalación “a mano”. La wiki es interesante para poder almacenar rutinas que usamos frecuentemente, en mi caso suelo guardar validaciones, etc. Una vez que aprendimos a hacer algo y lo tenemos lo mejor posible es interesante tenerlo a mano para no perder tiempo escribiendo lo mismo una y otra vez.

8. Comenta todo lo que sea necesario
Escribir comentarios en el código suele ser bastante molesto y parecer innecesario, pero comentar las cosas importantes nos puede ahorrar mucho tiempo cuando tengamos que retocar el código meses después.

9. Participa en foros/comunidades
Es interesante para interactuar con otras personas que estén en nuestra misma sintonía, muchas veces ayudaremos nosotros y otra vez nos podrán ayudar. En línea general estas comunidades tienen muy buena onda, y la ayuda mutua es lo que abunda, unas líneas de código pueden ser útiles para muchas personas, de ahí que entre todos se puede perfeccionar. Recuerden respetar el punto 2.

10. Habla con otros programadores
Mensajería instantánea, en un café, por teléfono, etc. Es interesante tener amigos que están en lo mismo, no solamente por el tema de la ayuda mutua, estos grupos suelen ser también de ayuda “emocional” del programador, unos chistes, algún comentario puede ser una inyección de energía para continuar con un problema que no podemos resolver.

11. Tiempo libre para otras cosas
Me encanta programar, pero entendi que no es lo unico en la vida, a veces es bueno una salida, una película, realmente es necesario desenchufarnos.

12. Arma tu bunker
Tener un espacio de trabajo acorde con tus gustos es indispensable para programar, un buen sillón que no dañe nuestra columna, un lindo escritorio que nos permita desparramar CDS, libros, etc. También hay que ser organizado, pero siempre a nuestro gusto, es bueno que sea TU espacio y que nadie meta mano, uno a la larga lo termina sintiendo como un refugio.

13. Tu equipo en condiciones
Otro punto importante, una buena computadora, que no tenga problemas, si es necesario un poco mas de RAM, no hace falta tener una supermáquina para programar con PHP pero si algo que no se este colgando cada 2 seg.

14. Usa herramientas gratuitas
Si no podes pagar ciertas herramientas realmente ni te gastes en bajar las versiones piratas, en PHP no se necesita mucho y realmente no vale la pena estar trucando programas.

15. Organiza tu propia biblioteca de scripts
Relacionado con el punto 7. La wiki es muy buena, pero hay que tenerla organizada, sino encontrar algo puede llevarnos mas tiempo que volverlo a escribir. Yo soy bastante desorganizado, pero con los años aprendí a manejar mi problemita :D

16. Se agradecido con los que te ayudan
Si alguien te ayuda, por favor al menos di gracias. Recuerda que las personas que te rodean no son tu soporte técnico (Al menos que les pagues). Si alguien se molesta en responder a tus consultas agradécele, para la próxima esa persona seguirá teniendo buena predisposición.

17. Se humilde
Esencial. Siempre hay alguien que sabe más que uno y mas en este “rubro” en donde hay verdaderos cráneos, Yo hace varios años que programo en PHP y sin embargo siempre aprendo algo nuevo, y en parte eso es lo que me gusta de programar, siempre se puede mejorar.

18. Siempre busca perfeccionarte
Relacionado con el punto anterior. Las tecnologías evolucionan y nosotros debemos hacer lo mismo. Una linda practica cuando tenemos un poco de tiempo libre es tratar de optimizar un código nuestro de unos meses anteriores, si aprendimos cosas nuevas de seguro que podemos hacerlo mejor que antes.

19. Intenta ser eficiente y luego inténtalo de nuevo
Que funcione no quiere decir que este bien. También una de las cosas más lindas de programar: Siempre se puede hacer una función mas eficiente, que consuma menos recursos, no hay que conformarse que arroje los resultados que queremos, probablemente lo podemos hacer mejor.

20. Programa primero lo que menos te gusta
Esto es bastante personal, pero por lo general me da buenos resultados. Cuando me siento a programar algo los primeros minutos son de “ambientación” luego tengo un periodo de concentracion digamos maxima, en ese momento las cosas que parecen o son mas complicadas son cuando mas rápido y mejor salen, luego cuando uno esta mas cansado puede dedicarse a las cosas mas sencillas y rutinarias.

via: kabytes.com

jueves, 8 de noviembre de 2007

¿Qué es JavaScript?

Segun geneura.ugr.es JavaScript es un lenguaje interpretado, al igual que VisualBasic, Perl, TCL... sin embargo, posee una característica que lo hace especialmente idóneo para trabajar en Web, ya que son los navegadores que utilizamos para viajar por ella los que interpretan (y por tanto ejecutan) los programas escritos en JavaScript. De esta forma, podemos enviar documentos a través de la Web que incorporan el código fuente de un programa, convirtiéndose de esta forma en documentos dinámicos, y dejando de ser simples fuentes de información estáticas.

Los programas en JavaScript no son la primera forma que conoce la Web para transformar información, dado que el uso de CGIs está ampliamente difundido. La diferencia básica que existe entre un programa CGI y uno escrito en JavaScript es que el CGI se ejecuta en el servidor de páginas Web mientras que el programa en Javascript se ejecuta en el cliente (es decir, en el navegador). Por regla general, el CGI necesita unos datos de entrada (que normalmente se proporcionan mediante un formulario), los procesa y emite un resultado en forma de documento HTML. Esto implica tres transacciones en la red. La primera carga la página del formulario, la segunda envía los datos al servidor, y la tercera recibe la nueva página que ha generado el CGI. Por el contrario, los programas escritos en JavaScript se ejecutan en el navegador del cliente, sin necesidad de que intervenga el servidor. De esta forma, una sola transacción basta para cargar la página en la que se encuentra tanto el formulario, para los datos de entrada, como el programa en JavaScript que proporciona los resultados. Sin embargo, esto no significa (como veremos después) que los CGI vayan a ser substituidos por JavaScript.

Las dos principales características de JavaScript son, por un lado que es un lenguaje basado en objetos (es decir, el paradigma de programación es básicamente el de la programación dirigida a objetos, pero con menos restricciones), y por otro JavaScript es además un lenguaje orientado a eventos, debido por supuesto al tipo de entornos en los que se utiliza (Windows y sistemas X-Windows). Esto implica que gran parte de la programación en JavaScript se centra en describir objetos (con sus variables de instancia y métodos de "clase") y escribir funciones que respondan a movimientos del ratón, pulsación de teclas, apertura y cerrado de ventanas o carga de una página, entre otros eventos.

Por último, es necesario resaltar que hay dos tipos de JavaScript. Por un lado está el que se ejecuta en el cliente. Este es el JavaScript propiamente dicho, aunque técnicamente se denomina Navigator JavaScript. Pero también existe un JavaScript que se ejecuta en el servidor. Este, más reciente, se denomina LiveWire JavaScript. Nos centraremos solo en el primero, el Navigator JavaScript.

Este tutorial es muy básico, ideal por tanto para aquellas personas que no hayan tenido ningún contacto con JavaScript. Pretende ser un primer punto de referencia para aplicaciones más avanzadas, de modo que se explican en él los conceptos más básicos. Los ejemplos son extremadamente sencillos e intentan clarificar el uso de un determinado objeto o función, aunque la aplicación que se les dé no sea muy vistosa o útil.

En el apéndice se pueden encontrar otros sitios Web en los que podrá encontrar más documentación sobre Javascript.


2. ¿Qué NO es JavaScript?

Ante todo no es un lenguaje de propósito general. No permite un control absoluto sobre los recursos del ordenador, tal y como estamos acostumbrados al crear un programa (aunque las últimas innovaciones de los navegadores en cuestiones de seguridad le están dando un mayor operatibilidad) . Cada programa en JavaScript solo tiene acceso al documento HTML en el que va inmerso y, si acaso, a las ventanas en las que se ejecuta el navegador dentro del cual se está ejecutando el programa en JavaScript.

Como ya se ha dicho, tampoco es un sustituto de los CGIs. Ciertas cosas no se pueden hacer en JavaScript, especialmente las relacionadas con acceso a ficheros en todos sus sentidos. Sin embargo es muy útil para depurar errores en los datos antes de pasárselos al CGI que los trata, por lo que el uso combinado de JavaScript y CGIs redunda en un mejor tratamiento de datos y un menor número de transacciones en la Web cuando se usan los CGIs.

Por último, no es un lenguaje orientado a objetos, ya que, por ejemplo, no existe el concepto de clase. Es basado en objetos, de modo que se trabaja directamente con instancias de objetos.

3. Conceptos fundamentales de programación

Antes de empezar con Javascript como tal, daremos algunsa nociones fundamentales de programación sin las cuales poco podremos hacer con Javascript. Estas nociones son comunes al 99% de los lenguajes actualmente existentes, aunque daremos algunas características especiales de este lenguaje.

3.1. Datos e instrucciones

Lo primero que hay que tener en cuenta es que programar es básicamente tomar datos, realizar operaciones con ellos y mostrar resultados. Claro que dicho así parece que hubiéramos convertido en una simpleme calculadora nuestro ordenador. Sin embargo, hay que tener en cuenta que al programar podemos manipular datos de tipo numérico (enteros y reales), pero también podemos manejar cadenas (string), caracteres (character), y valores lógicos (los valores true y false, que no tienen nada que ver con las cadenas), entre otros. Más aún, no solo podemos trabajar con cada uno de estos datos por separado, sino que podemos unirlos formando registros (como fichas de biblioteca, etc), o matrices en las que caben muchos de estos datos más simples.

Normalmente estos datos no pululan a lo largo del programa a su libre albedrío, sino que se almacenan en variables. Cada variables tiene un nombre que es una palabra, y contiene un valor (este valor puede ser un número, una cadena, o cualquier otro tipo de dato). Cuando operamos con el nombre de una variable, en realidad lo que se hace es operar con el valor que contiene. Ya veremos en los ejemplos su utilidad.

Una vez que sabemos con qué datos podemos trabajar, es conveniente saber qué instrucciones (o sentencias) se les pueden aplicar, las cuales podemos resumir en las siguientes:

Sentencias secuenciales

Sentencias condicionales
Este tipo de sentencias se caracteriza por que en ellas se evalua una condicion; si dicha condicion es cierta se ejecutaran un grupo de sentencias, y si es falsa se ejecutaran otras. De esta forma, los programas pueden variar su comportamiento en funcion de los datos que manejen.

La sentencia m'as usada es la denominada IF condicion THEN sentencias_verdad ELSE sentencias_falso. Es decir, eval'ua la condici'on y, si es cierta ejecuta el grupo de sentencias sentencia_verdad, y si no era cierta ejecuta el grupo de sentencias sentencias_falso

Sentencias iterativas
Tambi'en llamadas sentencias repetitivas< o bucles. Estas sentencias se usan cuando queremos que un grupo de instrucciones se repita varias veces. El n'umero de repeticiones puede ser fijo, depender de alguna variable (o alg'una operaci'on aritm'etica) o depender de una determinada condici'on.

Sentencias de este tipo son:

Fuente: geneura.ugr.es/~victor/cursillos/curso_javascript_basico/jsb_intro.html

Que son las cookies?

Cuando alguien entra a un sitio web para ver los contenidos, el servidor web interactúa con las cookies.

Cookies (galletas en español), son pequeños conjuntos de datos en donde se encuentran algunos datos del navegante para que, cuando ingresemos nuevamente a la página, ésta se "adapte", ya sea a nuestro país o idioma o simplemente para que recuerda nuestras password automáticamente, etc. Vistas desde esta perspectiva, no parece que las cookies atenten contra la privacidad de las personas, pero han ocurrido hechos que demuestran lo contrario (más adelante).

Podemos encontrar las cookies, tratándose de Internet Explorer, en la carpeta /windows/cookies para Windows 95, 98 y ME, y en una carpeta especial dentro de "Documents and Settings" para Windows XP y Vista, en cambio Netscape las almacena todas juntas en el archivo cookies.txt. Si leemos la información de estos archivos, no comprenderemos nada, ya que son una fila de números y letras sin sentido.

El inicio de la duda

Hace ya un tiempo, DoubleClick (empresa que inserta publicidad en las sitios web), que fue comprada por Abacus Direct (empresa de marketing), cambió su forma de trabajo, haciendo que el usuario pierda su privacidad usando cookies. Ésta empresa usaba las cookies para saber qué sitios normalmente visitaba el usuario y así presentarle el banner más adecuado a sus gustos.

Jennifer Blum, vocera de DoubleClick dijo que cuando un internauta de sus datos en páginas formadas por DoubleClick, ya tendrá conocimientos de que su información será compartida; pero Jason Catlett, presidente de Junkbusters se expresó de otra forma diciendo que cuando un usuario de sus datos en las páginas en donde se encuentra DoubleClick correrá peligro de que sea siempre identificado en internet. Ésto último atentaría a la privacidad del usuario, al enterarse Harriett Judnick, usuaria estadounidense, presentó una demanda contra la empresa alegando que no fue devidamente informada, pero no fue la única empresa demandada, la mismísima Yahoo! fue acusada, en este caso por la empresa Universal Image s, de obtener información sobre las personas que la visitaban.

Finalmente DoubleClick implementó formas para que la información que tienen de un usuario pueda ser borrada.

Medidas de seguridad

Si realmente no deseas que algún dato tuyo pueda estar disponible a otros, tienes dos formas de hacerlo:
* Nunca dar la información correcta del nombre, apellido, domicilio...
* Desactivar el empleo de cookies o por lo menos, que muestre cuándo se usará cookies. Aclaremos que la navegación por internet puede hacerse más lenta a falta de éstas.

Fuente: alegsa.com.ar

Que es php, el codigo de programacion web

Esto es muy parecido a cualquier otro Script escrito en Perl o C. El código de PHP está incluido en tags especiales "".

Lo que hace diferente a PHP es que el código que se deba ejecutar se ejecuta siempre en el servidor.

Así, al ejecutar el script anterior, el cliente recibirá sólo los resultados de la ejecución por lo que es imposible para el cliente acceder al código que generó la página.

¿Qué se puede hacer con PHP?

En el nivel más básico PHP es equiparable a un CGI cualquiera. La mayor fuerza de PHP es que está preparado para soportar accesos a muchos tipos de bases de datos como:

  1. Adabas D
  2. dBase
  3. Empress
  4. FiclePro
  5. informix
  6. InterBase
  7. Solid
  8. Sybase
  9. Velocis
  10. Unix dbm
  11. mSQL
  12. MySQL
  13. Oracle
  14. PosgreSQL

Además de esto, PHP soporta la utilización de otros protocolos como IMAP, SNMP, NNTP, POP3 o HTTP a nivel de socket.

PHP es un interprete que puede ser incluido en un servidor Web como un módulo o como un CGI binario.
Con él se pueden realizar accesos a ficheros, conexiones de red, etc. PHP está diseñado para ser más seguro que cualquier otro lenguaje de programación de CGIs, como Perl o C.

Lenguaje PHP

Bases de la Sintaxis

Inserción de PHP en HTML

  • Sólo si se activa la función short_tags() o la bandera de configuración short_open_tag.
  • <% .... %> Sólo si se activan los tags para ficheros 'asp' con la bandera de configuración asp_tags.

Separación de instrucciones

Las instrucciones se separan con ';', en el caso de ser la última instrucción no es necesario el punto y coma.

Comentarios

Los comentarios en PHP pueden ser:

  • Como en C o C++, /*...*/ ó //
  • Otro tipo de comentario de una línea es #, que comentará la línea en la que aparezca pero sólo hasta el tag ?> que cierra el código php.
Fuente: geneura.ugr.es/~maribel/php/index.html

sábado, 3 de noviembre de 2007

Blogs de famosos

Por Javier Granados de http://blog.javiergranados.com/

Ya conocemos la intención de muchos bloggers de hacerse famosos, pero ¿hay famosos que se dedican también a bloggear? Pues al parecer sí: entre fiesta y fiesta deben encontrar hueco para conectarse a internet y postear. Ahora bien, esto no significa que sean blogs de calidad, pero al menos, sí que son curiosos.

Si tuviéramos que hacer una corta lista de ellos, yo destacaría:

Andreu Buenafuente - http://www.andreubuenafuente.com
Moby - http://www.moby.com/journal
Pamela Anderson - http://pamelaanderson.blogs.friendster.com/
Anna Kournikova - http://www.kournikova.com/journal/
Kanye West - http://www.kanyeuniversecity.com/blog/

De todos ellos, quizás los únicos que conseguirían engancharme sería el de Andreu Buenafuente y el de Moby. Del resto… la calidad deja mucho que desear. Quizás el de Kanye West sería el que visitaría de tanto en tanto, pero creo que los famosos aún tienen que aprender bastante sobre el mundo de los blogs.

Si conocéis algún otro blog de algún famoso que valga la pena, no dudéis en aconsajarlo a través de los comentarios.

Actualización: navegando por internet he encontrado el siguiente esquema en www.cartoonchurch.com que explica claramente como llegar a ser un “blogger famoso”. Parece obvio como conseguirlo, ¿no?

ACTUALIZACIÓN: Andrea de Marketing Descodificado me ha comentado la existencia de otrod blog de un famoso (aunque me dice que no lo lee… no sé si creérmelo… :-) )

- Blog de Victoria Beckham