Páginas

miércoles, 10 de octubre de 2012

Consejos de programación [Pato de goma]

Cuando programamos siempre nos encontramos con algún problema que nos tiene desesperados por cierto tiempo, aunque existen varias formas para solucionarlo hoy vengo a contarles una muy espacial y útil vía http://mundogeek.net.

Se llama "Depuración de patito de goma" y consisten en tener algún muñeco a quien contarle el problema en cuestión, su efectividad radica en que al contar un problema a alguien muchas veces la solución aparece ante nuestros ojos.


Mediante esta técnica evitamos molestar a nuestros compañeros de trabajo y si trabajamos solo es ideal cuando definitivamente estamos bloqueados.

Una variante de esta técnica es contar el problema en cuestión a alguien con pocos conocimientos en el tema o mejor aun a un niño, ellos siempre lo abordaran de otra manera y nos ayudaran en nuestro proceso creativo.

miércoles, 19 de septiembre de 2012

Pagina recomendada[4]

Cuando queremos hacer prototipos de la interfaz gráfica de nuestra aplicación, muchas veces utilizamos herramientas que no son las adecuadas, por eso hoy les vengo a hacer unas recomendaciones para este tema.

Para eso primero les recomiendo leer el articulo: 10 Completely Free Wireframe and Mockup Applications.

Ahora mi recomendación: Balsamiq Mockups

Aunque esta pagina es un demo de la aplicación, es muy completa, tiene tomo lo necesario para hacer un buen prototipo de la interfaz gráfica, además es muy fácil de usar y los prototipos resultantes son muy agradables a la vista.


Esta aplicación permite exportar nuestros diseño a imágenes o a archivos XML, tiene muchas opciones lo único malo es un aviso que sale cada cierto tiempo que nos recuerda que es un demo.

Dejo que uds revisen la pagina y me comente como les fue o si tienen una mejor alternativa.

Buenas practicas de programación [4]

La entrada del día de hoy es corta pero importante, se trata de la declaración un tema muy importante.

Este tema comprende:

+El numero de declaraciones por linea, es recomendado hacer solo una declaración por linea, ejemplo:

int edad; // Edad del estudiante
int nombre; // Nombre del estudiante

Es preferible sobre

int edad, nombre;

Lo que si se debe evitar a toda costa es declarar diferentes tipos de atributos:

int edad, calificaciones [];

+Inicialización: todas las variables deben ser inicializadas a no ser que dependan de un calculo que ya ha ocurrido.

+Se deben colocar las variables locales después de la inicialización del bloque de código(un bloque de código inicia con un "{"), ejemplo:

public void calcularEdad(){
      int edad = 0;
   
     if(condición){
     int aux = 0;
     }
}

Una cosa para evitar es declarar variables locales con nombres iguales a variables de alto nivel, ejemplo:

int contador = 0;

public void calcularCalificacion(){
     if(condicion){
     int contador = 0;
     }
}

+ Cuando se declaran los métodos hay que evitar espacios entre el nombre del método y el paréntesis "(" .
+ Es recomendable separar los métodos por una linea en blanco.
+ Los corchetes se ubican: El primero "{" en la misma linea de la declaración y el de cerrar "}" en una linea aparte.

lunes, 10 de septiembre de 2012

Pagina recomendada [3]

Un objetivo común debería ser que nuestras aplicaciones luzcan bien, para ello el manejo de los colores es muy importante, por ello hoy les recomiendo HTML Color Code.



HTML Color Code es una excelente pagina para usar los colores HTML de una forma muy gráfica, la pagina permite un uso muy intuitivo.

Esta dividida en dos categorías:

"Tabla de colores", para seleccionar los colores de un cuadro.



"Selector de colores" que permite crear nuestro color o buscar un color ya sea por código HTML o por codigo RGB.


Muy útil, recordemos algo de uso de color en java.

Queremos usar el color #013ADF

new Color(0x013ADF);

El RGB es 1, 58, 223.

new color (int r, int g, int b);
new color (1, 58, 223);

No olviden visitar HTML Color Code, a mi me sirvió mucho espero que a uds también.

Buenas practicas de programación [3]

Lineas y espacios en blancos, aunque para algunos este tema no tiene importancia, hace parte de la estética y el orden en el código, saber usar estos elementos permite tener un código más legible y ordenado.

Lineas en blanco:

Una linea:

* Entre métodos
* Entre variables locales en un método y su primera declaración
* Después de un comentario
* Entre secciones lógicas de un método, para que sea más fácil leerlo y entenderlo(si tienes muchos puede indicar que deberias dividir el método).

Dos lineas:

* Entre secciones de un archivo fuente
* Entre definiciones de clases e interfaces

Espacios en blanco:

- Después de una de las palabras reservadas (de las que ya hablamos) que este seguida por un paréntesis.

   if () {
   }

- Cuando se tiene una lista de elementos separados por comas después de cada coma debe haber un espacio.

   String [] lista = new String [] {"Hola", "Mundo", "?"};

- Todos los operadores binarios excepto el (.) deben ser separados de sus operandos con espacios. Los únicos que no se separan son los operadores de incremento y decremento (++ y --).

a += c - b;

a = (c + b) * (x - y);

if (a++ == b--) {
}

- En los for entre sus condiciones e incremento, recuerden:

for (int i = 0; i < lista.length; i++) { }

- En las conversiones ("cast").

metodo((int) (salario + 5));

Yo también ignoraba estas buenas practicas, pero ahora no soporto ver un código sin ellas, un consejo es irlas implementado de a poco en su código, así no se complican.


lunes, 3 de septiembre de 2012

Buenas practicas de programación [2]

Hoy vamos a hablar de documentación, tema demasiado importante y que siempre se deja de lado.


Siempre sucede lo mismo, como generalmente desarrollamos solos, no nos interesa que otros lean nuestro código, pero en el sector productivo es muy importante el trabajo en equipo y por lo tanto la documentación,  tenemos que pensar que nuestro código sera una parte del producto final y que no va a ser una pieza asilada.

Para documentar un método se pueden tener en cuenta 6 partes.

  1. Nombre completo del método. 
  2. Propósito del método. 
  3. Descripción del método. 
  4. Autor original. 
  5. Modificaciones que se le han hecho. 
  6. Autores que realizan las modificaciones.
Además es necesario mencionar si existe algún problema con el método, explicar brevemente las entras y salidas.

Otra recomendación es usar un lenguaje sencillo pero utilizando términos técnicos. También evitar comentarios obvios, comentar los sets y gets. Por ultimo es recomendable agrupar las notas, a no ser que sea una anotación muy importante para una linea.

Ah se me olvidaba un buen ejercicio es documentar en ingles por obvias razones.

Pagina recomendada [2]

Nombre: TechOnTheNet.

Descripción: Una nueva semana una nueva pagina recomendada, esta vez hablo de TechOnTheNet.com una excelente pagina llena de interesantes recursos.


En esta pagina no solo encontraremos tutoriales de diferentes lenguajes de programación, lo más importante es su sección de "chuletas", que vienen a ser la explicación de funciones (para la suite MS Oficce, Oracle SQL/Pl, SQL Linux, entre otros) con ejemplos muy sencillos de comprender.

Muy recomendad cuando se inicia a trabajar con bases de datos.

No se olviden de visitar http://www.techonthenet.com/index.php y de recomendarnos otras paginas en sus comentarios.

miércoles, 29 de agosto de 2012

Buenas practicas de programación [1]

Para programar correctamente hay que seguir algunos consejos, que no solo hace que los programas sean más eficientes sino que tambien permiten mejorar la presentación del código y hacerlo más fácil de entender.

Estos consejos son denominados oficialmente "buenas practicas en programación", la idea es ir recopilando estos consejos, así que vamos con el primero.



Algo muy importante son los nombres, llamados identificadores, a la hora de nombrar un elemento (ya sea clase, atributo o método), es necesario ser muy claros.

Hay que evitar nombrar un elemento como "a" o "variable", estos nombres son ambiguos y no dan una idea de lo que son, nombres más claros serian "Carro" o "numeroEstudiantes", estos nombre si dan una idea clara   de la naturaleza del elemento.

Hay que evitar usar símbolos y palabras reservadas, estas palabras son propias del lenguaje de programación (en este caso Java) y no se deben usar.


abstractbooleanbreakbytecasecatch
charclassconstcontinuedefaultdo
doubleelseextendsfinalfinallyfloat
forgotoifimplementsimportinstanceof
intinterfacelongnativenewpackage
privateprotectedpublicreturnshortstatic
strictfpsuperswitchsynchronizedthisthrow
throwstransienttryvoidvolatilewhile
assertenum



Por otra parte para nombrar elementos de programación en Java hay que tener en cuenta los siguientes consejos.

- Para clase: la primera letra en mayúscula y luego usar notación camelCase (primera letra de cada palabra en mayúscula), los nombres deben ser sustantivos y estar en singular.

-Para interfaces: aplica lo mismo que clases excepto que los nombres deben ser adjetivos.

-Para métodos:  la primera letra en minúscula y luego usar notación camelCase, los nombres deben ser o un verbo o una mezcla de verbo y sustantivo.

-Para variables: la primera letra en minúscula y luego usar notación camelCase, deberían ser nombres con significados claros y en lo posible corto.

- Las constantes: en este caso todas las letras deben estar en mayúscula y se debe separar cada palabra con un "_".

Con este consejo ya sera más fácil entender su código, no es lo mismo ver la variable "x" que la variable "nombreUsuario".

lunes, 27 de agosto de 2012

Pagina recomendada [1]

Nombre: java2s

Descripción: Esta pagina contiene información de muchas cosas relacionadas con la programación, pero lo mas importante es que contiene la explicación de como usar diferentes clases, métodos y librerías, lo mejor es que se explica usando ejemplos del funcionamiento de cada método, el código es muy claro y generalmente esta documentado.


Aunque su interfaz no es la mejor, cumple su cometido, para entender mejor como funciona, veamos un ejemplo, queremos buscar como colocar un icono a un botón en Java:

1. Se selecciona el lenguaje de programación.



2. Se selecciona la clase de la que se quiere más información.



3. Se selecciona el método.



4. Se obtiene el código que necesitamos.


No se olviden de visitar http://www.java2s.com/ y de recomendarnos otras paginas en sus comentarios.

Tutorial Hola Mundo en C++

Luego de la exitosa instalación realizada en el tutorial anterior, lo siguiente es verificar que todo esté listo para programar en C++ usando Eclipse.

1. Se crea un nuevo proyecto, la opción C++ Project.


ejeC_01.jpg


2. Se le asigna un nombre al proyecto y en “Project Type” se elige la carpeta “Executable” y opción “Hello World C++ Project”.


ejeC_02.jpg


3. Se presiona el botón “Finish” y se espera un momento.


ejeC_03.jpg


4. Se genera el siguiente código, observen la estructura de las carpetas e investigue, ahora un paso muy importante es compilar el programa, para ello pulsamos el icono del martillo.


ejeC_04.jpg


El proyecto va a compilar lo que tardara un momento.


ejeC_05.jpg


5. Ahora como en un programa normal, se ejecuta usando el icono Run.


ejeC_06.jpg


6. Por ultimo en consola se muestra el Hello World.


ejeC_07.jpg

Tutorial Instalacion C/C++ en Eclipse


Recursos






Instalación

Primer es necesario descargar eclipse y descomprimirlo.
Luego se descarga el instalador de MinGW y se ejecuta.

instC_01.jpg

El instalador requiere permisos de administrador y crea accesos directos a la aplicación.

instC_02.jpg

Se elije la segunda opción en esta ventana, para descargar los últimos paquetes.

instC_03.jpg

Leemos cuidadosamente los términos y condiciones y para continuar la instalcion los aceptamos.

instC_04.jpg

En este punto se elije la carpeta de instalación, se requieren al menos 1,7 MB libres.

instC_05.jpg

El instalador crea una carpeta con accesos directos en el menú de inicio.

instC_06.jpg

Ahora viene lo importante, se elije “C++ Compiler” en este caso y se continua con la instalación.

instC_07.jpg

Ahora el programa esta listo para descargar los archivos, muestra un resumen de nuestras preferencias y solicita permiso para instalar.

instC_08.jpg

Instala los archivos iniciales.

instC_09.jpg

Y comienza a descargar el resto de los archivos, esto puede tomar un tiempo, no hay que cerrar la ventana hasta que termine.

instC_10.jpg

Acá se muestra el progreso de la instalación hay que tener paciencia.

instC_11.jpg

Cuento el programa termina muestra este mensaje y nos permite ver un archivo de texto con los resultados de la instalación.

instC_12.jpg

Lo siguiente es instalar el complemento para poder programar con C++ en Eclipse, para eso en la barra de menú se selecciona el ítem “Help” y la opción “Install New Software”.

instC_13.jpg

Lo que mostrara la siguiente pantalla, en el campo “Work with” se introduce la dirección http://www.eclipse.org/cdt/downloads.php y se pulsa “Next”.
instC_14.jpg

El resultado será el siguiente.


instC_15.jpg


El la siguiente ventana se muestra lo siguiente, se elije la primera opción, como se ve en la imagen y se pulsa “Next”.


instC_16.jpg


El asistente de instalación tomara un momento para calcular las dependencias y los requisitos, el progreso se mostrara en la una barra en la parte inferior de la ventana.


instC_17.jpg


Luego se muestra la siguiente ventana de confirmación, se pulsa “Next” para continuar.


instC_18.jpg


Para continuar se leen los términos y condiciones y se aceptan y con eso concluye la etapa de configuración.


instC_19.jpg


A continuación se inicia la instalación.


instC_20.jpg


Es necesario esperar un tiempo, pero el progreso se ve claramente.


instC_21.jpg


Aunque para que se agregue correctamente el complemento será necesario reiniciar eclipse.


instC_22.jpg


Se hace necesario cambiar las variables de entorno, es algo sencillo, click derecho en “Mi Pc”, se elije la opción propiedades.


instC_23.jpg


En la pestaña “Opciones avanzadas” se pulsa el botón “Variables de entorno”


instC_24.jpg


En la tabla de “Variables del sistema” se selecciona la fila “Path” y se pulsa “Modificar”.


instC_25.jpg


En la ventana que aparece, se agrega la ruta donde se instalado en compilador y donde esta la carpeta bin, pero antes se pone un “;” sin comillas, que separa las diferentes rutas, se oprime aceptar y eso es todo.


instC_26.jpg


Con eso ya se puede programar en C++ usando eclipse.

Ciclos While y Do While

While

Es un ciclo con una estructura simple pero muy poderosa, la idea que se maneja es repetir una instrucción mientras una condición de control se mantenga verdadera, hay que destacar que primero se evalúa la condición y luego se ejecuta las instrucciones.

File:While-loop-diagram.svg
File:While-loop-diagram.svg
While-loop-diagram.svg by P. Kemp
Seudocodigo
Mientras (condicion) {
Instrucciones;
}
Codigo Java
while (condition) {
Instrucciones;
}

condition Es una condicion, que va devolver un valor boleano, ya sea true si la condición se cumple o false si no lo hace, por lo general se tienen en cuenta 3 opciones:

1. Que se haga una operacion que directamente devuelva un boleano, como operandos igual, diferente, menor o igual, mayor o igual, menor y mayor (==, !=, <=, >=, <, >,).
while (numero>10) {Instrucciones;}
2. Que se evalué una variable boleana.
while (encendido) {Instrucciones;}
3.Que se llame un método cuyo retorno sea un boleano.

while (esEditable) {Instrucciones;}
Instrucciones; Es lo que quiere que se ejecute varias veces.
Do While
Una estructura similar al While, pero con una gran diferencia primero se realizan las instrucciones y luego se evalúa la condición para decidir si se vuelve a realizar el proceso. Lo que significa que las instrucciones se ejecutaran por lo menos una vez.

File:Do-while-loop-diagram.svg
File:Do-while-loop-diagram.svg

Do-while-loop-diagram.svg by P. Kemp
Seudocodigo
Haga{Instrucciones;}Mientras (condición);
Código Java

do {
Instrucciones;} while (condition);
condition Es una condición, que va devolver un valor boleano, revizar condición while.
Instrucciones; Es lo que quiere que se ejecute varias veces.

Ciclos For y For each

Un ciclo se utiliza cuando se quiere repetir una acción un numero determinado de veces, para explicarlos se usara sintaxis de JAVA.

FOR

El ciclo for se usa cuando se quiere hacer una acción determinado numero de veces y es muy útil para el manejo de lista o estructuras numeradas, ya que maneja un indice el cual sera útil no solo para repetir la acción sino para el manejo de estas estructuras.

De este indice se debe conocer el valor inicial y el valor final.

Seudocodigo:

Para (variable = "acá valor inicial"; hasta <= "valor final"; "incremento"){

instrucción a repetirse;
}

Código java

for (int i = 0i < 11i++) {

System.out.println(i);

}

int i Es la variable con la que se va a trabajar, al ser una variable no necesariamente tiene que llamarse i.

i = 0 Es la condición inicial, quiere decir que se va a empezar con la variable i con el valor cero (0).

i < 11 Es la condición de control, lo que garantiza que el ciclo llegue a su fin, en este casi cuando i valga 10 el ciclo terminara, lo que indica que el ciclo se repite 10 veces.


i++ En este caso se presenta un incremento(variable++), lo que indica que cada vez entre a uno, lo que indica que la primera vez que entra al ciclo la variable i vale 0 la segunda 1 y así hasta que se cumpla la condición de control. También se puede hacer un decremento(variable--).


System.out.println(i); Es la instrucción que se repite, es lo que el ciclo realizara 10 veces, en este caso mostrar por consola en valor de la variable i.

La ventaja es que ademas de realizar las instrucciones las veces que queramos dentro de for podemos usar la variable i para lo que necesitemos, por ejemplo cuando se quiere recorrer un vector en orden.

FOR EACH

Aunque el for es muy útil existe otra estructura similar llamada FOR EACH, se puede decir que es una evolución del for clásico diseñado para el manejo de elementos de un vector su función es la de aplicar un procedimiento a todos los elementos de dicho vector y por ello solo se debe usar en esta situación ya que no es tan flexible.

Seudocodigo

Para (elemento x de tipo y: de esta estructura){

instrucción a repetirse;
}

Código Java

ArrayList<String> nombres = new ArrayList<>();


nombres.add("Andres");

nombres.add("Jose");

nombres.add("Sebatian");


for (String nombre : nombres) {

System.out.println(nombre);

}

String nombre Es una variable auxilia que va a tomar en cada ciclo el valor de un elemento del vector.

nombres Hace referencia al vector con el que se va a trabajar.

System.out.println(nombre); Es la instrucción que se repite sobre el elemento.

Búsqueda Secuencial



Teoría


La búsqueda secuencial es un algoritmo de búsqueda donde se evalúan los elementos uno por uno hasta llegar con el que se está buscando o en su defecto hasta llegar al final.
Se usa en conjuntos que no están ordenados, algo que hay que destacar es que como se compara con todos los elementos, no se puede saber si un elemento está en el conjunto hasta evaluar todos.

Caso de estudio


Ud. está en una fiesta y alguien le pide el favor de llevar una bebida a un invitado que Ud. no conoce, los invitados están recostados contra la pared en forma de fila y el único dato que le dan es el nombre: “Alejandra”.
secu_01.png
La idea es preguntarles a todos hasta llegar con la persona que se está buscando.

-¿Sujeto 1 Ud. se llama “Alejandra”?
-No, pero la vi por ahí.
secu_02.png

-¿Sujeto 2 Ud. se llama “Alejandra”?
-No, ¡yo soy hombre que le pasa!
secu_03.png

-¿Sujeto 3 Ud. se llama “Alejandra”?
-Sí, esa bebida es para mí gracias.
secu_04.png

En este caso solo le preguntamos a 3 personas, pero se puede dar el caso que la primera persona a la que le preguntemos sea la que estamos buscando, así como que sea la última o simplemente que no esté pero para eso hay que verificar todos los elementos.

Algoritmo


Se identificó el siguiente algoritmo teniendo en cuenta el caso de estudio:

1. Verificar el primer elemento de la lista
a. El elemento coincide con el que estamos buscado (fin).
b. El elemento NO coincide con el que estamos buscado, se continúa con el paso 2.
2. Se continúa con el siguiente elemento, vuelve al paso 1 pero teniendo como primer elemento de la lista este elemento (este paso se repite hasta que no existan elementos en la lista en este caso el elemento no está en la lista).