viernes, enero 06, 2012

Programando en laptop

Llevo varios días trabajando exclusivamente desde la laptop, sin teclado ni monitor externo. Esto es principalmente porque el monitor externo ha estado fallando últimamente y porque he estado trabajando desde varios lugares de la casa.

Me ha gustado la experiencia de usar solo la laptop, lo limpio que se ve el escritorio sin los cables del monitor. Es fácil cerrar la laptop y moverme al sofá o incluso a la cocina. Además de que me estoy acostumbrando a trabajar con las limitaciones del teclado/mouse pero estoy aprovechando las ventajas de no tener que cargar con más equipo y poder trabajar desde donde sea. Ahora tecleo más lento pero no he visto que afecte el trabajo del día [soy desarrollador, no secretaria ;-)].

Algunos aspectos que he empezado a considerar tratando de decidir si debo comprar otro monitor o seguir trabajando solo con la laptop son:

Movilidad: Trabajando solo usando la laptop me permite trabajar desde cualquier parte (cualquier habitación de la casa, oficina, en una cafetería, etc.). Al trabajar con un monitor, teclado, mouse externo necesito conectar/desconectar cada que quiero moverme de lugar.

Comodidad: Es más cómodo trabajar con 2 monitores (sobre todo porque el monitor externo es grande) , con mouse y teclado externo. Sin embargo también es cómodo poder trabajar desde cualquier parte. Llegué a pensar que solo es cuestión de acostumbrarme; pero cuando trabajo varios días solo con la laptop aparece un dolor detrás del cuello que es muy molesto. Aunque supongo que hay maneras de evitarlo.

Económico: Es más barato no comprar monitor externo y trabajar directamente desde la laptop. También he considerado comprar una computadora de escritorio para trabajar en la oficina/casa y dejar la laptop para cosas personales o cuando requiera moverme, aunque para ese caso me sale más barato solo comprar el monitor externo y no toda la computadora.

Aun no he decidido que haré…

viernes, diciembre 30, 2011

Teclado en español Latinoamérica

Cuando empecé a utilizar computadoras lo hacia únicamente con teclados en ingles (EN-US) ya que al vivir en Tijuana (frontera con San Diego) era más fácil (y barato) conseguir teclados en ese idioma. Ademas todos los programas que utilizaba estaban en ingles. En esa época era común el uso de (alt+164) para las ´ñ’ y otros códigos más.

Como programador seguía con el teclado EN-US cuando trabajaba desde la “oficina” de la empresa. Como parte de un proyecto tuve que estar en sitio por varios meses en una empresa de la cuidad donde las estaciones de trabajo todas tenían teclados en español Latinoamérica. Durante algún tiempo batallé para acostumbrarme, sentía que odiaba los teclados en español. Recuerdo que un amigo en la universidad usaba un teclado en español en su casa y me llamaba la atención por qué alguien haría eso a propósito, pudiendo usar un teclado en ingles. Recuerdo, también, que me comentó lo fácil que era escribir la ‘ñ’, los acentos, signos de puntuación, etc. Ahí fue cuando empecé a ver la ventaja.

Tiempo después fue necesario reemplazar mi viejo equipo personal y al comprar una laptop en Tijuana, sin darme cuenta,  venia con teclado en español. Como ya estaba acostumbrado al teclado, por el trabajo en sitio, fue fácil usarlo. Una vez que deje de trabajar en sitio seguí trabajando fuera de la oficina, ahora desde mi casa, y seguía utilizando teclado en español.

Después de un tiempo cambié de trabajo y en esta empresa nos daban a cada uno una laptop para trabajar en ella. La laptop tenia el teclado en ingles, todo estaba bien hasta que necesitaba escribir acentos o ‘ñ’ es decir texto en español. En esa época fue cuando empecé a utilizar el teclado en EN International Sort. El cual ayuda con el texto en español pero no es tan cómodo como el teclado en español sobre todo al escribir comillas, lo cual puede ser común al momento de programar.

En la actualidad cuando trabajo desde una computadora de escritorio utilizo un teclado en español (México) y cuando trabajo directamente desde la laptop lo utilizo en ingles (international sort) ya que mi laptop personal tiene teclado en ingles. Traté de comprarla en México para tener el teclado en español pero por el costo/beneficio la compré en US con teclado en ingles.

En estos años usando teclado en español no he notado que afecte mi productividad al programar, han habido detalles cuando compañeros de trabajo ingresan a mi maquina de manera local o remota y no pueden teclear; pero fuera de eso no afecta y a la vez siento que me facilita la escritura de texto en español cuando es necesario.

¡Ah olvidaba mencionar! Hace tiempo me toco usar teclado en español internacional y ese teclado definitivamente no me gustó. Será quizás que no estoy acostumbrado; pero lo sentí muy incomodo.

Nota: Esta entrada fue escrita desde un teclado en ingles (International sort).

Post relacionado: Software en español

jueves, diciembre 29, 2011

Software en español

Aunque uso principalmente solo software en inglés, seguido tengo la tentación de usar software en español. Tanto en el sistema operativo como en las herramientas de desarrollo y de base de datos.
Esto me pasa más cuando se trata de software administrativo, de entretenimiento o aplicaciones donde necesito escribir en español. En esos casos creo que sí tiene sentido usar aplicaciones e incluso el sistema operativo en español. Porque lo que realizo es en español y el programa (al estar en el mismo lenguaje) puede ofrecerme ayuda adicional. Por ejemplo prevenir faltas de ortografía, de gramática, etc.
El problema viene al tratar de usar herramientas de desarrollo que no están en ingles, ya que el desarrollo debe ser en inglés y si la herramienta de desarrollo esta en español es una desventaja. Tanto en los mensajes de error como en la terminología utilizada. Puede ser difícil encontrar información sobre términos técnicos en español o por lo menos encontrar información reciente.
Hace tiempo instalé la versión en español de visual web developer y se sentía raro usarlo, algunos mensajes arrojados por las excepciones no me eran familiares por estar en español. Pero fue algo divertido y quizás lo vuelva a intentar pero siento que podría haber problemas de compatibilidad con el resto del equipo.
¿Es común usar software completamente en español? Por lo menos en frontera no lo he visto así; pero me gustaría saber como sería la experiencia. Quizás el próximo año me anime a hacer el experimento e instale todo en español para saber que se siente. Aunque presiento que no será posible tener las versiones más recientes.
Post relacionado: Teclado en Español Latinoamérica

viernes, diciembre 23, 2011

Usando varios atributos en C#

Al trabajar en proyectos sobre ASP.NET MVC, al crear los modelos he estado usando Data Annotations las cuales consisten en agregar atributos a las propiedades de tu modelo para indicar algo de meta datos que pueden ser usados por la vista. Además de que al usar entity framework code first he necesitado en alguna ocasión usar atributos, aunque últimamente he optado por configurar eso en el mapping del DbContext. También en lo controladores hay necesidad de escribir algunos atributos para los Action Filters.

He visto que la forma más común para agregar más de un atributo a una clase, propiedad o método es escribiendo uno abajo del otro. Con lo que al declarar una propiedad que tiene varios meta-datos se termine con varias líneas de código. O al definir una acción en un controlador donde necesitas que se ejecuten varios action filters termines con varias líneas en la declaración del método, lo cual (en mi opinión) se ve igual que si se ejecutan las llamadas de los filtros dentro de los métodos.
[Required]
[DataType(DataType.Password)]
[Display(Name = "Current password")]
public string OldPassword { get; set; }

En mi caso me ha gustado más el escribir los atributos uno a un lado del otro separados por coma dentro del mismo par de corchetes. Esto hace que sean menos líneas la declaración de un método, propiedad, etc. Y lo principal es que (para mi) se ve más claro. Es decir no es por ahorrarme líneas, las líneas son gratis, sino para quitar ruido en el código.
[Required, DataType(DataType.Password), Display(Name = "Current password")]
public string OldPassword { get; set; }

Como todo es cuestión de gustos y si todo el equipo decide usar uno abajo del otro me tendré que alinear; pero por lo pronto prefiero escribir uno después del otro.

jueves, diciembre 15, 2011

CoffeeCamp: El año en revisión

La comunidad .Net de Tijuana organiza un CoffeeCamp el próximo Sábado 17 de diciembre de 2011 en el café Starbucks que esta frente a las torres. El tema es "El Año En Revisión". La idea es reunirnos y platicar de software mientras nos tomamos café (u otra cosa). En la página del evento pueden encontrar más información.




Si eres desarrollador y estas en Tijuana el Sábado 17/12/11, esperamos verte por ahí.

jueves, noviembre 24, 2011

Dev3Cast (Podcast) sobre FubuMVC

El pasado 12 de Noviembre participé en el podcast Dev3Cast. Donde junto con Gabriel Flores (@gabo)  platicamos con Francisco Ruiz (@squidge) sobre FubuMVC. El cual es un proyecto de código abierto para el desarrollo de aplicaciones web que corre sobre .Net (es una alternativa a ASP.NET MVC).

Escucha el episodio y deja tus comentarios.


viernes, noviembre 18, 2011

Mantenerse al día

Cuando empece a programar, la forma en que aprendía era principalmente a través de libros; pero sobre todo con la ayuda que me proporcionaba el entorno de desarrollo. Buscaba ejemplos que mostraran como utilizar cierta función o ejemplos de como lograr lo que quería hacer.

Desde hace ya buen tiempo que no instalo la ayuda que viene con los entornos de desarrollo. Esto se debe, principalmente, a que es más rápido hacer una búsqueda en Internet sobre como funciona algo a buscar en la documentación que viene con los programas.

Esto también ha ido pasando con la forma en que aprendo a usar o hacer cosas nuevas. Aun sigue siendo un buen recurso el tener un libro sobre tecnología. sobre todo los que son sobre principios básicos; pero también es cierto que los libros que tratan sobre tecnologías especificas rápidamente quedan obsoletos.

Ahora para aprender sobre alguna tecnología (framework, lenguaje, librería, etc.) me ayuda el buscar información en Internet, generalmente es fácil encontrar la teoría sobre la cual esta fundada esa tecnología que quiero aprender. De ahí trato de buscar screencasts. En lo personal me ayuda mucho ver un screencast donde se vea la aplicación de esa tecnología. Para ver lo especifico y así tratar de aplicarlo en una practica.

Algo que me ayuda, también, a estar enterado de que es lo que se usa fuera de mi trabajo. Es el escuchar podcasts con regularidad. Aunque no todo lo que escucho lo trato de poner en practica, aun así me sirve para estar enterado de las opciones que hay disponibles. Y así cuando se presente una oportunidad, por lo menos sabré que preguntas hacer ya que conoceré un poco del tema. El leer blogs también ayuda -es muy incomodo tener discusiones con algún desarrollador por temas que hace años la comunidad ya resolvió-. Ademas de asistir a las reuniones de los grupos de usuarios locales y a eventos donde se pueda hablar en persona con quienes usan esa tecnología que quiero conocer.

Otra cosa que me ayuda es tratar de mantener este blog con contenido actual, eso me motiva a presentar buen contenido y por lo tanto a buscar aprender ese contenido que trataré de explicar.

sábado, octubre 29, 2011

Dev3Cast sobre Build

El pasado 5 de octubre participé en un episodio de dev3cast (podcast) donde hablamos sobre lo que se presento en el evento build de Microsoft, en el cual se mostró lo que viene en la siguiente versión de windows y Visual Studio. Tuvimos como invitado especial a Seth Juarez, quien asistió al evento como parte de devexpress y pudo hacer varias entrevistas estando allá. También participamos en la conversación Gabriel Flores, Samuel Arellano y yo.

jueves, octubre 27, 2011

Dev3Cast sobre ASP.NET vNext

El día de ayer participe en la grabación de un episodio del podcast de la comunidad de usuarios .net en Tijuana, dev3cast. Donde hablé, junto con Gabriel Flores y Samuel Arellano, sobre algunas de la características que vienen en la próxima versión de ASP.NET.

lunes, octubre 03, 2011

Rumbo a MagmaRails (parte 4)

En la parte anterior de la serie, generé el modelo y controlador para los invitados, además de que modifiqué el archivo routes.rb para colocar a los invitados como recursos dentro de otros recursos:

resources :weddings do      
resources :guests
end

Esto hace que pueda tener una ruta como /weddings/{wedding_id}/guests/ para mostrar la lista de invitados según la boda que se pase a través del URL.


Para leer el valor de la boda dentro del controlador utilizamos la variable params la cual es como un diccionario. Así dentro de nuestro controlador de invitados podemos obtener el valor del ID de la boda de la siguiente forma:


def index    
wedding_id = params[:wedding_id]
@wedding = Wedding.find wedding_id
@guests = @wedding.guests.all
end

La función del controlador es la de asignar valores a las variables que necesita la vista para mostrarse al usuario. En este caso estoy obteniendo el valor de wedding_id que viene dentro de los parámetros y lo estoy guardando en la variable wedding_id.  después uso ese valor para obtener el objeto completo de la boda (usando el método de la clase Wedding). También obtengo la lista de invitados a través del objeto boda.


Una vez que asignamos los valores a variables, estos pueden ser usados por la vista para mostrarse al usuario.


ya he grabado antes screencasts donde se muestra algo de esto. En aquella ocasión usaba netbeans y una versión anterior de rails, pero los mismos conceptos aplican. Pueden verse aquí

lunes, septiembre 12, 2011

jueves, septiembre 01, 2011

martes, agosto 30, 2011

Rumbo a MagmaRails

El próximo 12 de octubre se realizará en Manzanillo la conferencia MagmaRails a la cual pretendo (junto con mi esposa) asistir. Nosotros trabajamos principalmente con tecnología .Net así que para practicar un poco de rails inicié un proyecto y estoy grabando algunas partes en screencasts de 5 minutos.  Aquí el primero:

Entradas relacionadas:
- Rumbo a MagmaRails (Parte 2)
- Rumbo a MagmaRails (Parte 3)