byters

un rejunte de código aplicado

11 abril, 2012
by Juan Garberi
0 comments

Embrace your QAs

Sí, un Q. A. , o un tester a secas puede parecer, para cualquier desarrollador, la persona que bloquea que tu código pase a producción.

Sí, son gente con un TOC galopante; Sí, pueden parecer jodidos; Sí, tienen problemas; Pero te guste o no, son los encargados de analizar todas las posibles fallas, tienen mayor noción del documento funcional de lo que vos vayas a poder ver en tu vida, y son la última garantía de que tu código sea funcional, performante, y por sobre todo, útil.

Porque un QA que se precie, se capacitó para hacer pruebas;
Porque no es un chofer de mouse/gamepad;
Porque hay que respetar a un tipo qué, a pedido tuyo, simula 10 partidos de liga metiendo 4 goles por tiempo, o se pasea por todo el proceso de compra de tu aplicación web 8 veces, contemplando todas las galerías de pago;
Y porque pasar un code review con tu líder de equipo, no hace de tu código, lo que se necesitaba, solo lo hace, un buen bloque de código, un lindo fix.

Así que, antes de put*arlos, recordá “Embrace your QAs”

Dedicado a Tomas y a Eze, con quienes ví/veo cada día cuantas cosas se nos pueden pasar por alto, a mí, al analista, y al cliente mismo.

Nota, lo iba a clasificar en NEWBIES, pero lo dejo en GENERAL, porque, aún hoy, veo programadores de 20 años de experiencia, puteando a los QAs…

4 abril, 2012
by Juan Garberi
0 comments

Variables

As3, es un lenguaje estricto, con lo cual, debemos siempre declararlas, especificando el tipo de dato, de la siguiente manera

var nombreVariable:int;

Opcionalmente, podemos hacer la declaración, y asignar el valor en 1 solo paso, por ejemplo:

var edad:int = 10;

As3 nos permite declarar los siguientes tipos de variables:

  • int, integers, para numeros naturales, en el caso de fracciones, expresados como decimales, ej: {2, 1, 0, 1.2} (luego veremos como podemos usar operadores)
    var edad:int = 29; 
  • uint, similar a int, pero un poco mas versátil, ya que nos permite almacenar naturales positivos, y valores de color 0xFFRRGGBB (0xALFA-RED-GREEN-BLUE)
    var distancia:uint = 50;
    var bgcolor:uint = 0xaf3322fc;
  • number, almacena cualquier tipo de número, incluyendo punto flotante, (double, float, single)
    var  miExponencial:Number = 7.8e+8;
    var miPuntoFlotante:Number = 12.5;
  • boolean, para datos booleanos, valga la redundancia, representables por true, false, y 1, 0, respectivamente
    var caso1:boolean = true;   //resuelve verdadero
    var caso2:boolean = 0;       //resuelve falso
  • String, para cadenas de texto
    var nombre:String = “Juan” ;

 

 

 

Tambien, podemos usar var, para representar elmentos mas complejos, como un objeto, o un Array, o matriz.

var miArray:Array = new Array();
var miObjeto:Object = new Object();

Estos dos últimos, vamos a analizarlos mas adelante.
Obviamente, el análisis, y manejo de objetos numéricos, strings, y booleans, es mas complejo, vamos a abordarlos pronto.

4 abril, 2012
by Juan Garberi
0 comments

Actionscript 3 para el que no sabe

Estos contenidos surgen de la necesidad de generar una mínima guía de estudio para nivelar conocimientos en un grupo de desarrollo de aplicaciones con el hardware de Arduino.
Los contenidos iran, en forma breve, y exponencial, cubriendo las necesidades básicas para componer un programa en Actionscript, integrando clases externas.
Como todo, se empieza desde lo básico.

3 abril, 2012
by Juan Garberi
0 comments

Validación de errores en cakePHP

Si queremos tener un detalle de nuestra validación, independiente de la UI, siempre podemos usar:

$this->Model->validationErrors;  (donde Model, es el $name de tu modelo, obviamente  )

Este método, nos devuelve un array con toda la validación de los datos enviados.  Si esta en cero, y los datos están fallando, a revisar el flow dentro del controller, que seguro estamos analizando algo mal.

+ info:
http://cake-php.blogspot.com.ar/2006/09/21-things-you-must-know-about-cakephp.html
http://bakery.cakephp.org/articles/mariano/2007/05/16/multiple-rules-of-validation-per-field-in-cakephp-1-2

15 marzo, 2012
by Juan Garberi
0 comments

jQuery is not defined

Lo malo de apurarse, es que uno pone la carreta adelante de los caballos. Si tenes este error,

Es que simplemente declaraste la llamada a Jquery después del plugin, (colorbox en este caso) y bueno, si tenes una clase con la cual querés instanciar objetos, y no la tenes declarada, bueno, es que como yo, pusiste la carreta delante de los caballos.
Invertí el orden, y seguí codeando feliz de la vida.

24 enero, 2012
by Juan Garberi
0 comments

Configurando subdominios en un entorno local

La mejor manera que encuentro para desarrollar rápido, es tener un ambiente local, (obviamente esto no reemplaza el test final,  en un ambiente remoto, con las condiciones de configuración exactamente iguales a las del sitio definitvo)

Pero mas allá de eso, una vez que nos instalamos un Apache local, con su correspondiente MySQL, (recomiendo XAMPP para una solución “todo en uno”), con el tiempo vamos a terminar teniendo múltiples aplciaciones corriendo en nuestro servidor local.
Como detesto terminar con urls de test tales como http://localhost/miproyecto1, http://localhost/miproyecto2, http://localhost/miproyectoN, prefiero tener configurados subdominios.

Entonces, para correr múltiples aplicaciones, sin problemas, podemos hacer lo siguiente:  (ajusten acorde a su conf. local)

en C:\xampp\apache\conf\extra\httpd-vhosts.conf agregamos:

<VirtualHost *:80>
     ServerName nombre_de_mi_proyecto
     DocumentRoot “c:/xampp/htdocs/directorio_de_mi_proyecto”
     <Directory “c:/xampp/htdocs/directorio_de_mi_proyecto”>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all
     </Directory>
     # Possible values include: debug, info, notice, warn, error, crit,
     # alert, emerg.
     LogLevel warn
</VirtualHost>

Luego en: C:\WINDOWS\system32\drivers\etc\hosts agregamos:

127.0.0.1 nombre_de_mi_proyecto

Guardamos, reiniciamos Apache, y vamos a poder acceder al proyecto desde http://nombre_de_mi_proyecto.localhost

Rápido y fácil

 

13 enero, 2012
by Juan Garberi
0 comments

Listar archivos de un directorio

El core CakePHP tiene una funcionalidad muy buena a la hora de listar archivos, listClasses($path), que nos devuelve un arreglo con los nombres de archivo en un directorio.

Lo encontrás  cerca de la linea #667 de basics.php.  (Las cosas que uno descubre cuando leet el bendito manual, recuerden… RTFM!!!! )

+info : http://www.tig12.net/pages/if/cake/apidocs/cake_apidocs/functions.html#det_method_listClasses

 

 

9 enero, 2012
by Juan Garberi
2 Comments

Svn, y esas pequeñas fallas que uno hace

Este es el primer post de una nueva categoría, donde voy a ir publicando como solucionar esos errores tontos que uno comete, por ignorancia o por prisa, y que hacen que uno pierda tiempo valioso con algo totalmente irrelevante, en fin, errores de principiantes o newbies (si le quieren poner onda)

Un SVN es LA herramienta a la hora de trabajar, junto con un tracker de issues, (problemas/tareas) pero si somos poco ordenados y rompemos el flow de trabajo, podemos mandarnos macanas grandes y bastantes obvias.

Hoy trabajando, me tocó una tarea muy simple, crear dentro del proyecto una página estática, casi idéntica a otra que ya estaba armada. Para no perder tiempo, fui al directorio físico, hice una copia a mano de la carpeta original, y la renombre adecuadamente.
Luego de hacer los ajustes, probé todo en mi servidor local, y no tuve problemas. Comiteo con el SVN, y oh sorpresa, en el servidor de test no se ve nada.

Frente a estos problemas, uno siempre corre unas pruebas básicas

1-Ver que físicamente estén los archivos,
2-Ver de no tener errores de ejecución (si es un php, por ejemplo, no tener un error en el código, que nos tire un FATAL ERROR),
3-Ver que los permisos de lectura de los archivos estén bien,
4-Analizar dependencias.

Como localmente todo andaba bien, hice una revisión en ese orden, y oh sorpresa, faltaban archivos en el servidor de test, ¿Qué había pasado?
Obviamente, el problema no era  nada raro, físicamente los archivos no estaban porque nunca se comitearon.

Al copiar una carpeta local, que esta dentro de un proyecto de SVN, uno siempre borra las carpetas .svn, que guardan la información de versionado, cosa que hice, pero en el apuro uno puede olvidarse de borrar las correspondientes a las de los subdirectorios. Un error tonto, muy propio del que esta apurado, (y del que no revisa lo que comitea). Hice lo propio, volví a tirar un update, y los archivos faltantes (varios htmls, imágenes, javascripts), fueron publicados.

Conclusión, siempre, pero siempre, revisar lo que se comitea.

Backend themes para Joomla

8 junio, 2011 by Juan Garberi | 0 comments

Desde que tengo mi cuenta developer en Rockettheme.com pude tener al alcance de mi mano muchas opciones a la hora de personalizar mis proyectos. Tienen muy buenos templates, excelentes componentes (de los que destaco RokNavMenu, RokAjaxSearch y RokDownload, todos gratuitos) pero el que se lleva las palmas hoy es el nuevo theme para el backend missioncontrol.

Continue Reading →