7 Extensiones de Firefox para ser mas productivo

October 18th, 2009 § 0

Ubiquity
Este es un plugin con el cual pueden hacer busquedas a cualquier sitio web usando prefijos. Yo lo uso mas que todo para consultar la documentacion de los frameworks en los que estoy programando, por ejemplo, para buscar una funcion en la documentacion en linea de php solamente escribo en ubiquity “php is_function” donde is_function es el nombre de lo que quiero buscar. » Read the rest of this entry «

Como crear un web service en Visual Studio y C#

October 15th, 2009 § 0

Que es un web service?

Antes de empezar, asegurense de entender que es precisamente un web service. Un web service es una funcion que se puede llamar a traves de internet. Por ejemplo, yo en mi codigo puedo tener una funcion para sumar dos numeros, por medio de un web service yo puedo publicar esta funcion para que pueda ser llamada a traves de internet, y los parametros de la funcion son enviados a traves de internet tambien. Mi funcion puede ser la siguiente digamos:
public int Sumar(int a, int b)
{
return a+b;
}
Esta funcion puede ser publicada en internet, los parametros pueden ser enviados a traves de POST, XML, o GET(entre otros), y el resultado generalmente puede ser XML,JSON,o SOAP.

Ventajas de un Web Service

La ventaja principal de un web service es que no importa es que haya sido hecho el web service (C#, java, PHP, etc.) puede ser llamado desde cualquier otro lenguaje de programacion, ya que el resultado siempre se regresa en un mismo formato. Y asi es como nace la arquiectura orientada a servicios (SOA), la cual es, en forma resumida, la creacion de todas nuestras aplicaciones basadas en webservice, esto logra que todas nuestras aplicaciones se puedan comunicar entre si facilmente.

Manos a la obra

Bueno vamos a crear el web service en visual studio 2008, si no lo tienen pueden descargar la version express, la cual es gratis.

Paso 1

Creamos un nuevo proyecto de tipo “ASP.NET Web Service Application” en visual studio 2008.

De nombre yo le puse “MiWebService” pero pueden ponerle como ustedes quieran.

image

Paso 2: Creando la funcion

Una ves creado el proyecto deberian de tener algo parecido a esto:

image

Ahorita como podran ver tenes una funcion que se llama HelloWorld, con un atributo que se llama WebMethod (El atributo es lo que esta dentro de [ ] encima de la declaracion del metodo), este atributo lo que indica es que le metodo podra ser accesado a traves del web service.

Paso 3: Creando nuestra funcion

Vamos agregar una nueva funcion:

[WebMethod]
public int Sumar(int a, int b)
{
return a + b;
}

Lo unico que hacer es sumar dos numeros.

Paso 4: Probando el web service desde Visual Studio

Ahora vamos a probar nuestro web service en el navegador de la siguiente manera:

image

Les va aparecer una pagina con los nombres de las funciones del webservice, hagan clic sobre “Sumar”.

Ahora les va pedir el valor de los parametros “a” y “b”, digiten dos numeros y luego hagan clic en “Invoke”. En la nueva pagina les tiene que aparecer el resultado de la suma.

Esto es todo, el web service lo pueden llamar desde cualquier otra aplicacion, voy a crear un post dentro de poco de como utilizarlo en otras aplicaciones .net de escritorio o web.

Como subir y descromprimir un archivo en PHP

October 15th, 2009 § 0

Hace unos dias estaba programando un plugin de wordpress en el que necesitaba subir una gran cantidad de archivos al mismo tiempo, la solucion que pense fue subirlos dentro de un zip y luego descomprimirlos en el servidor. Luego de una hora de investigacion esta es la solucion a la que llegue:

Paso 1. Creando el Formulario

Creemos un nuevo archivo php llamado subir_zip.php o como ustedes deseen y luego creamos nuestro formulario html para subir los archivos.

<html>
<head><title>Subir archivos zip</title></head>
<body>
<form enctype=”multipart/form-data” action=”" method=”post”>
<input type=”file” name=”archivo” /><br />
<input type=”submit” value=”Subir” />
</form>
</body>
</html>

Explicacion:

Lo unico complicado de este codigo es el atributo enctype que lleva nuestro tag form, esto anda mas quiere decir que vamos a enviar datos binarios a traves del formulario, todo formulario en el que suban archivos debe llevar este tipo de enctype. El action del formulario lo dejamos vacio para que postee a si mismo.

Paso 2. Creando el codigo

Este es el codigo que vamos a utilizar para procesar el archivo y descromprimirlo, agreguenlo antes del codigo HTML.

  <?php 
  //Revisamossi el archivo fue subido
  if ( isset ($_FILES["archivo"]))
            { 
            //Si el archvio fue subido entonces lo guardamos en una variable
        $uploaded_file = $_FILES["archivo"];
        //Creamos una nueva insancia del la clase ZipArchive() para el manejo de zips
                $zip=new ZipArchive();
                //Guardamos el archivo subido, ya que al subirse solo se guarda en el directorio temporal del apache
                if(move_uploaded_file($uploaded_file['tmp_name'], $uploaded_file['name'])){
                    //Abrimos el archivo subido
                    $res=$zip->open( $uploaded_file['name']);
                    if($res===true)
                    {
                    //Lo extraemos y lo cerramos pero solamente si se pudo abrir, para eso es el if
                        $zip->extractTo(’.');
                        $zip->close();

                    }
                }
    }   
                ?>

Explicación

El código esta comentado, si no son suficiente los comentarios por favor pueden poner preguntas en los comentarios del post.

Resultado Final

Y este es todo el código:

  <?php 
  //Revisamossi el archivo fue subido
  if ( isset ($_FILES["archivo"]))
            { 
            //Si el archvio fue subido entonces lo guardamos en una variable
        $uploaded_file = $_FILES["archivo"];
        //Creamos una nueva insancia del la clase ZipArchive() para el manejo de zips
                $zip=new ZipArchive();
                //Guardamos el archivo subido, ya que al subirse solo se guarda en el directorio temporal del apache
                if(move_uploaded_file($uploaded_file['tmp_name'], $uploaded_file['name'])){
                    //Abrimos el archivo subido
                    $res=$zip->open( $uploaded_file['name']);
                    if($res===true)
                    {
                    //Lo extraemos y lo cerramos pero solamente si se pudo abrir, para eso es el if
                        $zip->extractTo(’.');
                        $zip->close();

                    }
                }
    }   
                ?>
<html>
<head><title>Subir archivos zip</title></head>
<body>
<form enctype=”multipart/form-data” action=”" method=”post”>
<input type=”file” name=”archivo” /><br />
<input type=”submit” value=”Subir” />
</form>
</body>
</html>

En una situacion del mundo real, desearan validar si el archivo que se esta subiendo en realidad es un zip.

Mi opinion sobre el programa Desarrollador 5 Estrellas

October 10th, 2009 § 0

Por si nunca habian oido de este programa, lo creo Microsoft y es un tipo de certificacion en linea, el metodo es que creas una cuenta y luego tienes que ir avanzando por una serie de examenes que t van acreditando con estrellas, hasta llegar 5. Los primeros examenes son sobre conceptos basicos de programacion orientada a objetos mientras que el resto son sobre tecnologias creadas por microsoft basadas en el .NET framework. Los examenes son de opcion multiplica y cada examen contiene 20 preguntas de las cuales necesitas sacar al menos 14 buenas para aprobar. En la misma pagina puedes encontrar el material de estudio para cada examen el cual es en su mayoria solamente teoria y nada de practica.

Ahora que ya saben que es, si no sabian lo mas probable es que esten pensando en empezar a hacer los examenes, consideren lo que estoy a punto de escribir antes de empezar a tomarlos. Los examenes son completamente teoricos, la pagina ni siquera funciona en firefox y aparte de eso a veces estan en medio de un examen y de repente el boton para pasar a la siguiente pregunta desaparece. Pero lo peor de todo es que las preguntas de los exámenes son tontas, fácilmente se puede descifrar el patrón de respuesta, y para colmo, algunas están malas.

Un día revisando los trabajas del diario vi que una empresa pedía como requisito tener por lo menos 3 estrellas, lo primero que pensé es que era una empresa nueva fundada por administradores de empresas que no saben nada de desarrollo de software.

Lo único que demuestra tener las 5 estrellas es que necesitas buscar algo en que ocuparte, o necesitas aprender a usar mejor tu tiempo.

Como reconocer un buen programador

October 10th, 2009 § 0

Es dificil identificar a un buen programador nada mas viendo su curriculum. Hay una diferencia entre saber programar y saber programar bien. La experience que alguien tenga en su curriculum solo nos dice que sabe programar, no que tan bien lo hace o si sabe hacerlo bien, y alguien que no tenga experiencia laboral en su curriculum, nada mas sus estudios, lo mas probable es que no sepa hacer ninguna de las dos (hay excepciones).

El 80% de los sitios de comercio electronico del boom del .com fracasaron por culpa de malos programadores, aunque la culpa la tienen tambien quienes contrataron a los programadores. Normalmente las personas que los contratan no saben mucho de comput » Read the rest of this entry «

Organiza tu escritorio utilizando Fences

October 10th, 2009 § 0

Fences es una herramienta para organizar los iconos de tu escritorio por medio de grupos, la idea no se oye muy atractiva pero creanme que a pesar de ser una idea muy sencilla es una herramienta muy util. En mi caso yo tengo agrupados los programas por tipo, por ejemplo, en disenio tengo photoshop, illustrator y after effects, en desarrollo tengo visual studio 2008 y 2005, Aptana, RubyMine y Notepad++, tambien tengo un grupo que se llama pendientes donde pongo cualquier cosa que no haya hecho. Se los recomiendo, les dejo un video y el programa lo pueden descargar aqui. Por cierto, les dije que es GRATIS?

Reemplazo para el administrador de tareas de windows

October 10th, 2009 § 0

Process explorer es una aplicación gratuita que reemplaza el administrador de tareas de windows por una versión mucho mejor. Entre sus ventajas sobre el anteriormente mencionado se encuentran la muestra de la jerarquía de procesos, es decir, nos dice que aplicación abrió cual, también podemos ver exactamente cuanta memoria nos consume cada proceso corriendo y lo bueno es que muestra todos los procesos ya que el administrador de tareas de windows vista esconde algunos procesos del sistema. También trae una opcion para reemplazar automáticamente el administrador de tareas de windows.

image

Google publica libro sobre como mejorar tu sitio web

October 8th, 2009 § 0

Google ha publicado un libro sobre practicas comunes de como mejorar la usabilidad y el diseño de su sitio web. Tomando en cuanto la guía de SEO que ya ha publicado google, si el contenido es de la misma calidad creo que vale la pena leerla. Aquí les dejo el link:

http://www.google.co.uk/intl/en/landing/conversion/ebook.html

4 TIPS DE ORACLE

October 8th, 2009 § 0

Particionado de tablas

El particionada de tablas me permite a mi crear diferente particiones dentro de una tabla basadas, por ejemplo, en rangos, digamos que yo quiero que una tabla se particione por rangos de fechas, cada día  de datos dentro de mi tabla será una partición. Que ventaja nos trae? Mejora el rendimiento ya que si por ejemplo yo solo quiero accesar un día de información, solo se va leer ese día y no habrá que tener que recorrer el resto de la información. Esta técnica utilizada con otras practicas de buen diseño de base de datos como por ejemplo separar los data files de cada tablespace y luego separar cada data files en disco diferentes, puede mejorar el tiempo de consulta de cualquier tabla.

Índices de Bitmap

Los índices de bitmap están diseñados para emplearse en columnas con poca cardinalidad, si se emplean en columnas de alta cardinalidad puede » Read the rest of this entry «

Introduccion al desarrollo de software iterativo

October 4th, 2009 § 0

La mayoria de proyectos de software fracasan no porque los programadores sean malos si no por el desperdicio de recursos debido a una metodologia de desarrollo mal implementada, o en muchos casos, la falta de una implementacion de metodologia. Una de las mejores formas de desarrollo es la iterativa, existen diferentes metodologias que se basan en este modelo como lo son la metodologia agil, RUP, y cascada.

El metodo iterativo, como su nombre lo dice, se basa es en la repeticion de un mismo proceso, genralmente este proceso consta de 4 fases las cuales son:
1. Requerimientos
2. Disenio
3. Codigo
4. Pruebas

Es decir, estas 4 fases se continuan repitiendo durante todo el proceso de desarrollo en intervalos generalemnt de 2 semanas. Como podran ver, los requerimientos se recogen varias veces durante el desarrollo, esto ayuda a que el cliente reciba exactamente lo que quiere y de esta forma siempre se esta a tiempo para realizar los cambios necesarios.