Aplicaciones indispensables para Macosx en tu barra de menu

 

Esta vez vamos hablar de Aplicaciones que para mi se están haciendo indispensables, y curiosamente se sitúan en mi barra de menu.

Hocus focus

El concepto de esta aplicaciones es sencillo, Enfocarte, si tienes varias ventanas abiertas, las que no estés usando por un periodo de tiempo, que puedes configurar por aplicación, desaparecen. Quedan abierta la que estás usando, también puede tener aplicaciones en mi caso el navegador, que no desaparecen.

hocusfocus

HiddenMe

Otra Sencilla herramienta, con un solo click oculta los iconos de tu escritorio.

HiddenMe.mov

Dr. Cleaner

Limpia Memoria y Disco de una manera sencilla, seguramente hay otras aplicaciones, pero esta funciona perfecta, y su versión gratuita es más de lo que necesito.

drCleaner

Pomodoro Time

Su versión Gratuita, es más que suficiente, es una buena aplicación Pomodoro con una mejora respecto a otras, puedes aplicar tus tiempos Pomodoros en proyectos o tareas.

pomodoro

RescueTime

¿Quieres saber como pasas tu tiempo en tu Mac? ¿Como estás eres de productivo? puedes configurar los horarios de trabajo, las aplicaciones que son productivas ( aunque hay están ya predefinidas), y saber realmente en que inviertes tu tiempo.

rescuetime

“deldan” Recomienda (12-02-15)

 

Recomienda

Pequeño podcast Número 5 – Ecommerce

 

Magento, Podcast, Prestashop

Este podcast está realizado para Gente que esté pensando en lanzarse en montar su propio proyecto de Ecommerce – comercio electrónico.

Podcast realizado escuchando Feeling Good interpretado por mi amigo Ryan Jacobs

 


 

“deldan” Recomienda (27-12-13)

 

Recomienda

- http://hightrack.me/ – Aplicación de productividad

- https://chains.cc/ – Conseguir tus metas con hábitos

- http://browserdiet.com/es/ – Perder peso en el navegador

- https://www.iconfinder.com/ – Buscador de iconos libres

Bake en cakePhp por consola

 

cakePhp, Código, Productividad

Bake nos facilita una vez teniendo la base de datos, poder crear modelos controladores y vistas, de una forma sencilla.
Algo importante antes de nada, es crear la base de datos correctamente y con los estándares de cakePhp.

  • Tablas en plural ( users )
  • Campos en singular ( name, email )
  • Campo id auto incremento y único
  • Relaciones simples nombreDeLaTabla + _ + id ( category_id, si queremos relacionar users a la tabla de categories)
  • Relaciones hasAndBelongsToMany, una tabla aparte ( users_categories ), y los campos ids de las tablas a relacionar (user_id y cateogry_id)
  • Como aporte siempre es bueno tener los campos created y modified tipo datetime, los interpreta cakephp y los rellena automáticamente

Sabiendo esto como base, ya nos podemos meter en la terminal y buscar nuestro proyecto e ir a la carpeta app y añadir lo siguiente en nuestra terminal : Console/cake bake

bake

A partir de aquí es seguir las instrucciones, primero empezar por configurar la base de datos, luego modelos, controladores y por último las vistas.

Eso sí antes de hacer esto tiene que estar montado vuestro cake en un servidor local tipo Mamp, y la base de datos creada.

Crear un Observer en Magento

 

Magento

En Magento tenemos lo que se llaman eventos, se ejecuta antes o después de una acción determinada en la tienda Magento, por ejemplo después de terminar nuestra compra.

Estas llamadas se realizan con un método que se llama en las funciones que despachan tal evento:

Mage::dispatchEvent($evento, array $data);

No haría falta llamar este método, ya que Magento posee un listado predefinido.

Lo más fácil para entender esto y ver su utilidad, es con un ejemplo:

EJEMPLO

La idea, es que cuando se ejecute el observer “sales_order_payment_place_end”, después de hacer un pago correcto, se ejecute nuestro código, que en este caso tan solo guardara en el Log de Magento, la id de la orden, y el total. Tendremos que que añadir nuestro pequeño módulo en app/code/ “comumunity” o “local”, community si tu interés es compartirlo con otros usuario, si es algo particular, en “local”.

Es muy importante como crear tu directorio de carpetas para magento, al final del este post adjunto el ejemplo completo, para tener más claro el árbol de directorios.

Otro de los aspectos importantes a tener en cuenta, es el archivo config.xml, donde definiremos el nombre del observer de Magento, también definiremos, la clase y el método que ejecutaremos, cuando se lance el observer.


    
        
            1.0
        
    
    
        
            
                
                    
                        singleton
                        Pay_Order_Model_Observer
                        orderView
                    
                
            
        
    

 

Ya solo nos queda crear nuestro observer, con nuestro método, de una forma muy sencilla.

getEvent();
    $order = $event->getOrder();
    
    Mage::log('orden id: ' . $order->getRealOrderId() . ' total:' . $order->getGrandTotal(););
    return $this;


  }

}

?>

 
Nos faltaría solo un pequeño paso para Magento reconozca el módulo, y es añadir un archivo en el directorio ect/modules de magento, en este caso el archivo será llamado “Invoice_Order.xml” ( tiene que ver con el nombre que hemos dado al directorio donde guardamos el módulo.



    
        
            true
            community
        
    

Ver el código en Github

Como instalar nodejs en Mac OS X + “hola mundo”.

 

Código

Antes de nada nodejs sería algo así como un interprete de javascript del lado del servidor, no sería del todo un framework ni tampoco un servidor tipo apache. y sí en mi opinión una mezcla de ambos. ¿Que es lo que predica nodejs? “proporcionar una manera fácil para construir programas de red escalables”, en lenguajes como JAVA y/o PHP, cada conexión genera un nuevo hilo con su consumo de memoria correspondiente,  cuanto más usuarios más consumo, escalabilidad y concurrencia son un problema, nodejs resuelve este problema, en lugar de generar un nuevo hilo de OS para cada conexión, cada conexión dispara una ejecución de evento dentro del proceso del motor de nodejs.

En Mac OS X, es bastante sencillo, pero primero tenemos que tener instalado lo siguiente

Una vez tengamos instalado Xcode como git. abrimos nuestra terminal y copiamos los siguientes comandos:
git clone git://github.com/ry/node.git
cd node
./configure
make
sudo make install
Para probar que nodejs ha sido instalado correctamente que mejor que hacer nuestro Hola Mundo en nodejs:
Habrá que crear un archivo javascript con el siguiente código:
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hola Mundo\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');
Guardamos este archivo como hola.js, desde nuestra terminar accedemos a nuestro archivo y lo hacemos funcionar con el comando node delante
node hola.js
Lo único que nos queda es comprobar si nuestro Hola Mundo lo podemos ver en el navegador accediendo através de la url local http://127.0.0.1:8124/

Claves para mejorar nuestro código.

 

Código

Me gustaría compartir algunas de las cosas que tengo en mente cuando desarollo y hacerlo a mi máximo nivel.

  • MVC : modelo vista controlador.
  • DRY : No te repitas.
  • KISS : mantenelo breve y simple.
  • TDD : Programación orientada a tests.

MVC

El patrón y/o arquitecutra MVC (Model, Vista, Controlador), Nos ayuda a separa la parte de datos de una aplicación, de la parte lógica y de la interfaz de usuario. Hoy en día lo adopta cualquier framework de desarrollo, ahora bien aún teniendo un framework con esta arquitectura si nosotros mismos no adoptamos este patrón, podemos terminar haciendo lo que llamamos coloquialmente, una chapuza.

DRY

Dry (Don’t Repeat Yourself), podríamos traducirlo como no te repitas. Es un filosofía de procesos que promueve la no duplicidad del código, creo que cualquier desarrollador lucha con esto, hay otra cosa que se enseña por ahí, dicen que incluso su promotor podría ser la universidad en España, que es que si algo funciona no lo toques, Dry ya no es el hecho de que un código funcione, sino que al no repetirse, sea más fácil de modificar y detectar algún error, en definitiva ahorrar tiempo para poder relacionarnos con otros seres humanos.

KISS

KISS (Keep It Short and Simple) Mantenlo breve y simple o de una manera más dura que personalmente no me desagrada (Keep It Simple, Stupid). Mantenlo simple, estúpido!. En mi opinion esencial en nuestro día a día, personalmente para llevar a cabo esta “sugerencia”, pienso que mi código sin comentarios se tiene que entender perfectamente, y si me da pereza leerlo es que no cumplo con KISS.

TDD

TDD ( Test-driven development) traducido, desarrollo guiado por pruebas. es la práctica de escribir primero los tests, pensar en los casos que deberías probar, incluso antes de empezar a programar nada, crear el test, y después ya si, programar para que el test pase. Tengo que ser sincero esta última clave, es la que más me cuesta, en mi mente está el que estoy perdiendo el tiempo, me auto engaño, puede que sea cierto que “resultados” no sean visibles al principio con tanta velocidad, pero se que los resultados que obtengo son fiables, y esto al final es tiempo que ganas. Así que no se pierde tiempo ( me lo repito a mi mismo).

 

“deldan” Recomienda (28-06-12)

 

Recomienda