¿Quieres aprender a programar? Empieza aquí

minesweeper

Con cierta frecuencia amigos, familiares y personas en Twitter o Facebook me preguntan sobre cómo aprender a programar. Algunos me dicen “quiero aprender hacer apps” refiriéndose a las aplicaciones en teléfonos móviles y otros me dicen que quieren hacer un website para su negocio.

Mi respuesta casi automática es la que creo que muchos otros programadores tienen, enviar unos cuantos enlaces a uno de los muchos sites de cursos online o algún libro. Lo que nunca he hecho es sentarme y pensar cuidadosamente como fue que yo aprendí y tratar de extraer lecciones de mi experiencia.

Want to Learn Ember.js? Start Here

learnember

Ember is awesome but it requires some effort to get started with. This is my attempt to make thing easier for everyone trying to learn. Here’s my collection of getting started resources for Ember.js.

 

Intro
Building Web Applications with Ember.js –  Yehuda Katz shows us how Ember can be used to build fast and responsive apps, and shares some nifty aspects of Ember you might not know about.

 

Basics
Ember Guides – Read this! This is the official documentation. If you tried reading it before you should really give it another chance. It’s a lot better than before, that’s why I recommend it as my #1 resource.

Building an Ember.js Application – This screencast will walk you through the process of building a blog reader application using Ember.js 1.0.

An Ember.js beginners tutorial –  Pretty long tutorial covering all the basics of building an Ember app.

 

And then…
Ember without Ember Data – As the title suggests, this is great post on how to use Ember without the Ember Data persistence layer.

Ember 101 – Learn Ember One Video At a Time.

Embercasts – Ember focused screencasts.

 

Getting Help
StackOverflow [ember.js] – Start by searching StackOverflow for questions tagged with ember.js

#emberjs on Freenode – My experience here has been amazing. Just make sure you are polite and if you need to share some code use something like jsbin.

 

Source code to learn from
Discourse
TravisCI
Todo MVC

 

Staying up to date
Ember Hot Seat Podcast – The Ember Hot Seat is be a web series dedicated in bringing you the latest and greatest news from the Ember.js community.

EmberWatch – A great aggregator of Ember-related content.

EmberWeekly – The latest Ember.js news, tips & code delivered directly to your inbox.

 

Meetups

emberjspr
Finally if you want to super charge your learning process you should really go to a local Ember meetup or start your own like I did with Ember.js Puerto Rico.

 

Did I miss something? Share your resources on the comments below.

33 projects that make developing django apps awesome

There are many reasons why I like developing web applications with Python and Django but the main one is the awesome community and projects around the language and framework. Every time I search for something there’s always a Django or Python project available to make my life easier.

Here’s an incomplete list of Python and django related projects that I have used or I’m planning to test. This might help someone starting out to get an idea of how awesome is to work with this technologies.

Todos somos diseñadores pero debemos ser artistas

Vivimos en un mundo lleno de complicaciones. En otras palabras un mundo lleno de la posibilidad de mejorar. Aunque mucho de mi tiempo está dedicado a escribir código me considero principalmente un diseñador. Diseño objetos digitales que hacen fácil lo difícil, que hacen que las personas se sientan inteligentes porque no tienen que aprender nada para recibir los beneficios de mi creación. Hago productos que se pueden empezar a explorar y descubrir sin tener que pensar.

Muchos desarrolladores que conozco repiten todo el tiempo que no son buenos diseñadores, hasta que llega el momento que se lo creen. Es cierto que no todos tienen un sentido estético desarrollado, pero estoy convencido que todos tenemos la capacidad de crear buenas experiencias para nuestros usuarios. Lo primero que hay que hacer es dejar de decir que no puedo o que no se diseñar. Si no sabes diseñar no eres un buen developer. Si no sabes diseñar no quiero usar tus productos. El diseño no es una cara bonita solamente. El diseño es como funciona, porque funciona así, porque escogimos una tecnología versus otra. Si dices que no sabes diseñar no sirves, no eres bueno y nunca lo serás hasta que pares de repetir eso.

Ahora, lo primero que debes hacer es entender que como diseñador todo tu trabajo es en favor del usuario, no de la tecnología. Si algo es lento porque la base de datos no reacciona suficientemente rápido, pues tienes un problema de diseño, lo hiciste mal. Si tu usuario necesita escoger entre varias opciones para poder empezar a usar tu producto tambien lo hiciste mal.

Tour de GIT

He visto muchos tutoriales sobre git pero este creo que es el mejor. Te llevan paso a paso por todo el proceso de setup, hasta crear tu primer repositorio y finalmente compartirlo con el web. El titulo de este tutorial puede hacer pensar a algunos que no es algo completo, pero no es así. Tiene mucha profundidad y en realidad creo que toca casi todo lo que se sobre esta herramienta.

Como usar screen en *nix

Screen es una herramienta del command line en sistemas *nix lo que incluye a Mac OS X. Esta herramienta permite crear pantallas virtuales de las que podemos conectarnos y desconectarnos sin interrumpir los procesos que estas realizan.

Referencia Rápida

Comando Descripción
> screen -S nombredesesion Crea una nueva sesión de screen
> screen -r nombredesesion Abre una session anterior
> screen -ls Muestra una lista de todas las sesiones abiertas
control + a d Cierra (detach) screen guardando la sesión activa
control + a c Crea una nueva ventana dentro de la sesión
control + a “ Muestra una lista de las ventanas de un screen
control + a A Permite cambiar los títulos de las ventanas
control + a ? Muestra todos los comandos disponibles
control + a | Divide la pantalla verticalmente
control + a S Divida la pantalla horizontalmente
control + a tab Cambia entre las divisiones
> exit Cierra la ventana activa dentro de screen

Cuantas veces has estado conectado vía SSH haciendo una operación complicada en un servidor y pierdes la conexión, “Connection Closed”. Si estuvieras usando screen en ese servidor podrías restablecer la conexión SSH y conectarte nuevamente a la pantalla que estabas usando con screen y seguir donde mismo te quedaste.

Para ser mas claro screen permite hacer una especie de tab el cual puedes cerrar y abrir cuantas veces quieras.
Aquí los pasos necesarios para manejar este caso simple. Abre tu terminal y corre screen.

> screen -S nombresesion

Screen te recibe con un mensaje de bienvenida. Esto se puede remover alterando las preferencias de screen, pero esto está fuera de lo que pretendo cubrir en este tutorial.

Ya tienes un screen creado. Aquí puede hacer cualquier operación que comunmente corres en tu terminal. Cuando quieres desconectarte sin cerrar la sesión debes presionar

control + a y luego la letra d

Esto te devolverá a la sesión principal de tu terminal y te dirá que el screen ha sido desconectado (detached).

Para ver que screens tienes corriendo entra

> screen -ls

Esto debe producir una lista de los screens que estan abiertos. Para reconectarte a un screen solo copia el nombre de la sesión.

> screen -r nombresesion

Listo ya estas de vuelta al screen que dejaste abierto. Para crear una nueva ventana dentro de la sesión:

control + a y luego c

Para ver una lista de las ventanas que tienes disponibles haces:

control + a y luego

Para cambiar rápidamente entre ventanas haces control + a y los números del 0 – 9.

Finalmente para control + a y luego ? para ver todos los comandos diponibles.

Para cerrar finalmente ese screen y terminar la sesión usa el acostumbrado

> exit

La aplicación screen puede hacer muchas cosas mas, esto es solo la superficie. Espero mas adelante poder tocar un poco mas en profundidad sobre este tema, pero en realidad esto es lo que uso con mas frecuencia.

Como siempre si ves algún error o sabes alguna forma de mejorar este tutorial no dudes en dejar tu comentario.