Introducción a #TypeScript y #tutorial con #NodeJs

Pequeña introducción

El día 1, Microsoft anunció TypeScript, un nuevo lenguaje de programación similar a Dart o a CoffeScript o a HaXe. Me enteré de casualidad (últimamente no sigo mucho Twitter) y en un principio no me llamó la atención. Pensé: otro Dart. Y lo cierto que Dart tenía buena pinta, pero no he acabado usándolo por ciertos motivos que ya comentaré en otro post. Pero luego me informé un poco más y me dejó completamente encandilado. Así que llevo 2-3 días trasteando a ratos con TypeScript para poder escribir una entrada introductoria que sea útil a la gente que quiera saber qué es y cómo usarlo.

¿Qué es TypeScript?

TypeScript es un lenguaje de programación tipado que está pensado para transformar su código a JavaScript. Es un superset de JavaScript (lo que quiere decir que cualquier JavaScript es también TypeScript) y tiene como objetivo ser una transición hacia las nuevas especificaciones de Ecmascript. Soporta tipado estático, clases, interfaces, múltiples definiciones de funciones y métodos, delegados “reales” (manteniendo el this sin tener que guardarlo y usar otro). Pero lo mejor de todo: hay creada una serie de herramientas de desarrollo de una calidad asombrosa (que es lo que Dart estaba empezando a  conseguir).

Leer más...

Montar #servidor web #ARM barato para #intranet

Recientemente he tenido que montar un pequeño servidor para una aplicación web que tenía que estar en una intranet. He aprovechado que tenía un TonidoPlug para montarlo ahí, aunque hoy por hoy hay multitud  de mini ordenadores ARM en los que puedes instalar linux.

Mini-Ordenadores ARM:

Desde Raspberry Pi (25$+), pasando por el famoso MK802 (54$), FXI Cotton Candy (TBA), Panda Board (161$), Hackberry (60$), BeagleBoard (150$), CuBox (140$), Gumstick Overo (150$), TonidoPlug2 (120$), OpenRD (150$), Pogoplug Pro (?), BeagleBone (89$), IGEPv2 (188€), Mele A100 (95$), Nitrogen6X (300$), ODROID-X (129$), TrimSlice (213$+)… Los rangos de precios van de 50€ a 300€ y la media está en 100€.

Leer más...

Instalar PEAR y PHPUNIT en PHP 5.4 sobre Windows

En versiones anteriores de PHP, en las distribuciones binarias para windows, venía un archivo .bat “go-pear.bat” que permitía instalar pear. Ahora (en PHP 5.4) ese comando ya no está disponible y he perdido un buen rato configurándolo todo.

1- Bajar e instalar PEAR
Nos descargamos el archivo http://pear.php.net/go-pear.phar y lo guardamos en la carpeta de PHP. Y luego desde la consola como administrador ejecutamos el comando php go-pear.phar. Si no lo ejecutamos como administrador no podrá escribir el archivo \WINDOWS\pear.ini y fallará la instalación.

2- Instalar PHPUnit
He intentado seguir las indicaciones oficinales de PHPUnit y no he logrado instalarlo por falta de la extensión “pcntl” que además no está disponible en Windows. Pero ejecutando estos comandos deberíamos poder instalar la versión 3.6 sin problemas:

pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear update-channels
pear install phpunit/PHPUnit

Espero que las indicaciones sirvan a alguien o a mí en un futuro cuando ya no las recuerde :)

Leer más...

Patrón de máquina de estados reutilizable en .NET #dotnet

Es bastante común en programación, querer cambiar el valor de una variable temporalmente. Algo tipo:

int variable;

int oldValue = variable;
variable = newValue;
{
   ...
}
variable = oldValue;

Y aún así, este código no es del todo correcto. La forma correcta sería:

int variable;

int oldValue = variable;
variable = newValue;
try
{
    ...
}
finally
{
    variable = oldValue;
}

Tras enfrentarme a este problema muchas veces, acabé montando una forma sencilla mediante callbacks muy cómodo con funciones anónimas.

El código anterior lo puedo convertir en (que es mucho mejor porque variable y newVariable aparecen una única vez y no hay que crear variables temporales manualmente y el código es más limpio):

Scopable.RefScope(ref variable, newValue, () =>
{
    ...
});

He aquí la implementación genérica de RefScope para que cualquiera pueda utilizarlo en su código:

static public void RefScope<TType>(ref TType Variable, TType VariableNewValue, Action Action)
{
 var VariableOldValue = Variable;
 Variable = VariableNewValue;
 try
 {
  Action();
 }
 finally
 {
  Variable = VariableOldValue;
 }
}

Leer más...

VirtuaWin : Cómo mantener muchas ventanas abiertas y no morir en el intento #productividad

VirtuaWin es una herramienta gratuita que te permite tener escritorios virtuales en Windows.

¿Para qué escritorios virtuales?

Cuando tienes muchas ventanas abiertas o cuando estás desarrollando con un único monitor, sueles tener que cambiar rápidamente entre ventanas o dividir la pantalla en dos. Cuando estás desarrollando páginas web y usando un IDE, el IDE suele tener paneles y la página web bastante contenido, con lo que dividir la pantalla en dos y colocar una ventana a cada lado (cosa que permite hacer muy rápidamente Windows 7) se suele quedar corto.

VirtuaWin nos permite cambiar de escritorio pulsando unos hotkeys de manera muy rápida y así poder trabajar a pantalla completa sin morir en el intento y con la limpieza de tener pocas cosas abiertas (cosa importante para estar centrado en tu trabajo).

Leer más...

Suscribirse via RSS