Diseño Web: Sitios de Hoteles para inspirarse

Posted on November 8, 2011 by sirviejo

En estos momentos me encuentro incursionando en el photoshop con la idea de hacer un theme de Drupal para hoteles, y empece a buscar sitios de hoteles que se adapten al esquema de colores que estoy haciendo.

Los dejo para inspirar a otros tambien!
spacer
spacer
spacer
spacer
spacer
spacer
spacer
spacer
spacer
spacer

Categories: Inspiracion | Tags: diseño, hoteles, photoshop | Leave a comment

Cerveza + Mujeres + Autos = NadaDeMariconadas

Posted on October 17, 2011 by sirviejo

Un blog para hombres como pocos hay en la red! Recuperando esa escencia de The Mans show, los invito a visitar NADADEMARICONADAS.COM

Categories: Noticias | Leave a comment

Patrones, patrones, patrones…

Posted on September 23, 2011 by sirviejo

Dejo los links que voy encontrando y que son de mucha utilidad al menos para mí.

Javascript:

 

Essential JavaScript Design Patterns For Beginners, Volume 1

addyosmani.com/resources/essentialjsdesignpatterns/book/

 

 

Patterns For Large-Scale JavaScript Application Architecture
addyosmani.com/largescalejavascript/

Categories: Programación | Leave a comment

Notepad++ y FTP

Posted on September 8, 2011 by sirviejo

Que el notepad++ es el mejor editor de texto no hay dudas, ya sea por la cantidad de lenguajes que interpreta, como por lo sencillo que es agregar nuevos lenguajes, y por la posibilidad de agregar plugins para extender su funcionalidad.

Ayer encontre un plugin que permite trabajar con FTP y syncronizar los archivos que estamos editando, y la verdad es que anda de 10!

Asi que para todos los interesados, les dejo las instrucciones para descargarlo.

  1. Descargar del siguiente enlace el plugin
  2. Descomprimirlo en \Notepad++\plugins\
  3. Al iniciar es probable que les pida de actualizar el plugin, lo hacen y luego al reiniciar ya estara disponible
Categories: PHP | Leave a comment

MonsterDivX es un Virus

Posted on August 4, 2011 by sirviejo

spacer

A todos los lectores de mi blog, sean muchos o pocos, quiero comentarles la maniobra de monsterdivx que afecta a miles de webmaster de todo el mundo.

Quiza el titulo sea un poco fuerte, pero lo importante es que se lea y ahora voy a explicar que es lo que estan haciendo y por que estoy tan enojado con ellos.

Para quienes no lo conocen MonsterDivX es un sitio copia de cuevana.tv que para poder ver peliculas te pide que instales un plugin que supuestamente lo que hace es usar tu navegador para descargar de megaupload, y otros servers.

Cual es el problema entonces? Resulta que se les ocurrio que en vez de poner publicidad en su sitio era mejor que incluir en su extension un javascript que modifique todos los otros sitios que el usuario visite, cambiando los ads por ads de ellos y asi ellos se quedan con las ganancias de los webmasters.

Desde este humilde espacio queremos iniciar una campaña en contra de este sitio para concientizar a los usuarios el peligro que supone el instalar ese completemento, ya que esta gente al no tener respeto por el trabajo de otros es evidente que tampoco lo tendran por la informacion de los usuarios, y quien puede asegurar que ellos ahora no van a tomar datos de los usuarios y venderlos para asi obtener mas ganancias?

Otra cosa que quiero decir es que estamos haciendo un pequeño javascript para alertar a los usuarios, que si entras con el plugin activado te avisara de esta maniobra siniestra.

Asi que Decile NO al Spyware de MonsterDivX.

Para aquellos que esten buscando una alternativa de cuevana les recomendamos pelispedia.com que son gente seria y no hacen este tipo de actividades que perjudican a todos los webmasters.

Para quienes quieran leer el detalle tecnico para detectar y deshabilitar esta extension, les recomendamos este post
Categories: Noticias | Tags: estafa, malware, monsterdivx, monsterdix.com, scam, spyware, virus, webmasters | 41 Comments

HTML 5 , CSS 3 – un nuevo comienzo

Posted on July 1, 2011 by sirviejo

spacer Durante el ultimo año estuve llevando adelante proyectos con drupal con mucho exito por cierto, me diverti mucho y conoci una comunidad increible.

Hoy con un nuevo proyecto adelante me veo en la necesidad de conocer a fondo HTML 5 y CSS 3. Voy a ir poniendo todo lo que vaya aprendiendo en este blog como ayuda memoria y también para otros que les pueda ser útil.

De más esta decir que no dejo a drupal tampoco ya que estoy haciendo un modulo para contribuir con la comunidad, y además llevo un proyecto personal adelante basado en Drupal 6.

Categories: CSS 3, HTML 5 | Leave a comment

Como instalar, configurar y usar Xhprof

Posted on April 19, 2011 by sirviejo

En estos dias tuve que hacer profiling sobre una aplicación y encontre muy útil la herramienta de facebook llamada xhprof, que permite ver el rendimiento de nuestras aplicaciones en php.

Dejo aqui para todos los que les sea util los pasos para instalar y configurar xhprof, para ver el rendimiento de nuestras aplicaciones, los mismos son para ubuntu.

Primero nos bajamos de aqui el paquete de xhprof , luego vamos a la consola y ejecutamos uno a uno los siguientes comandos.

tar -xvf xhprof-0.9.2.tgz
cd xhprof-0.9.2/extension/
phpize
./configure --with-php-config=/usr/bin/php-config5
make
make test
sudo make install

Una aclaracion: Cuando lleguen a la parte de “phpize” si les dice que no tienen el comando señal que no tienen instalado php5-dev. Se instala de la siguiente manera:

sudo apt-get install php5-dev

Una vez instado xhprof tenemos que agregar las configuraciones en el php.ini. Al final del archivo copiamos las siguientes lineas:

[xhprof]
extension=xhprof.so
;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
xhprof.output_dir=/tmp/xhprof

Cómo usar xhprof

Particularmente yo tuve que hacer profiling de una aplicacion en drupal 6, con lo cual unicamente basto con instalar este modulo, activarlo y configurar los paths que queria que se haga profiling.
El mismo ya nos da una UI para poder ver cada uno de los requests y ver los datos bien detallados. Cabe destacar tambien, que en la version 7 de Drupal, este modulo es ahora parte del modulo Devel

Si quieren usar xhprof para sus propias aplicaciones deberan agregar esta linea al comienzo del script

xhprof_enable();

Y Luego al final del mismo

$data = xhprof_disable();

$XHPROF_ROOT = '/home/testing/Downloads/xhprof-0.9.2';
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();

// Save the run under a namespace "xhprof".
$run_id = $xhprof_runs->save_run($data, "xhprof");

Existe tambien una herramienta llamada XHGUI que nos permite guardar cada ejecución del xhprof en la base de datos, para luego verla en una GUI muy bonita, dejo el link para quienes quieran utilizarla.

Categories: Drupal, PHP, Programación | Leave a comment

Drupal y el patrón Front Controller

Posted on April 17, 2011 by sirviejo

Para entender más el funcionamiento de Drupal, una vez que uno domina completamente la api, y comprende cada uno de los hooks que hacen posible que drupal sea una aplicación modular, es indispensable mirar el codigo del core. Y que mejor manera de empezar que desde el principio.

Este es el index de drupal

// $Id: index.php,v 1.94 2007/12/26 08:46:48 dries Exp $

/**
* @file
* The PHP page that serves all page requests on a Drupal installation.
*
* The routines here dispatch control to the appropriate handler, which then
* prints the appropriate page.
*
* All Drupal code is released under the GNU General Public License.
* See COPYRIGHT.txt and LICENSE.txt.
*/

require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

$return = menu_execute_active_handler();

// Menu status constants are integers; page content is a string.
if (is_int($return)) {
switch ($return) {
case MENU_NOT_FOUND:
drupal_not_found();
break;
case MENU_ACCESS_DENIED:
drupal_access_denied();
break;
case MENU_SITE_OFFLINE:
drupal_site_offline();
break;
}
}
elseif (isset($return)) {
// Print any value (including an empty string) except NULL or undefined:
print theme('page', $return);
}

drupal_page_footer();

Son solo 38 lineas de las cuales las primeras 12 son comentarios que nos ilustran la importancia que tiene el archivo index.php en Drupal.

Resulta que es este archivo quien recibe todas las peticiones que se hacen para servir urls dentro de la aplicacion (menos los cron jobs). Actua como un punto centralizado, que en primer lugar es el responsable de inicializar el ambiente (en palabras drupaleras “levantar el bootstrap”), para luego llamar al apropiado manejador y por ultimo renderizar el contenido en page.tlp. Esto no es otra cosa más que el Front Controller Patter.
Este patron tiene como objetivo evitar la duplicacion de codigo necesario para sanitizar las peticiones, internacionalizarlas y el renderizado final de las mismas. Esta misma técnica puede verse en frameworks php como zend framework o codeigniter.

Particularmente Drupal mediante estas lineas en el htaccess logra que todas las peticiones que no sean archivos fisicos existentes caigan directamente en el index.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Recursos relacionados
Wikipedia
Front controller – Martin Fowler
PHP Web Application ToolKit
Discusion sobre anti patrones en Drupal

Categories: Drupal, Programación | Leave a comment

PHP paamayim nekudotayim

Posted on March 19, 2011 by sirviejo

En el año 2011 me propuse ir un paso mas allá en mis conocimientos en php, es decir aprender sobre los inicios, fundadores y mas importante ver como esta implementado.
En esta tarea me encontre con una palabra rara que desconocia y que si bien habia visto como programador php, no le habia dado importancia: “paamayim nekudotayim”.

Unas cuantas veces recibi el error:


Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM in foo.php line 30

Y leyendo un libro sobre Objetos en PHP descubri de donde viene. Resulta que paamayim nekudotayim es el nombre en hebreo que recibe el operador de resolucion “::” y que es justamente “doble dos puntos”.

Mas Info

Categories: Programación | Leave a comment

Tarjetas CRC

Posted on November 26, 2010 by sirviejo

En la etapa inicial de un proyecto, el diseño de sus clases es clave para evitar problemas futuros. A veces sucede que al haber mucha gente involucrada en un proyecto se pierde esa visión global que permite ver de antemano los casos de uso.

En 1989 Kent Black (creador del Extreme Programming) y Ward Cunningham (creador de la primera wiki) presentaron un paper llamado “A Laboratory for teaching Object Oriented Thinking” en donde mencionan las tarjetas CRC de las cuales quiero hablarles.

La idea principal de las tarjetas CRC como cualquier modelado que se centra en la responsabilidad, es determinar que objetos entran en funcionamiento en diferentes casos de uso.

¿Qué permite esto?
La idea de poner sobre la mesa nuestro diseño, nos permite forzar y probar su respuesta, y en caso necesario alterar el diseño para que se adapte a todas las situaciones. Esto ademas permite que todos los participantes del proyecto (Analistas, TLs, Gurus, etc) puedan conectar su trabajo con el de los otros participantes, dar sus opiniones/criticas sobre el diseño y trabajar juntos para mejorarlo. Quizá el punto mas flojo es que las primeras veces que utilizamos esta metodología puede desorganizar un poco el ambiente y crear un mini caos.

¿Como se lleva a cabo?
1. Se escriben tarjetas con cada clase en donde se describe su responsabilidad y la relacion con otras clases.
2. Luego se van probando uno a uno los casos de uso y se sigue su comportamiento levantando las tarjetas de las clases que participan.
3. En caso de enonctrar situaciones no cubiertas se deben editar las tarjetas ya sea su responsabilidad como su comportamiento, esto permite que el diseño evolucione.
4. A modo de conclusion se puede armar un diagrama de relaciones en base a algunos casos de uso representativos.

Ejemplo de Tarjeta:
spacer

Fuentes:
A Laboratory for teaching Object Oriented Thinking
Using CRC cards
CRC Model

Categories: Programación | Leave a comment