viernes, 28 de marzo de 2014

Consejos para programadores y diseñadores jóvenes

Hace unos días encontré unas palabras muy interesantes de Richard Askewdedicada a los programadores y diseñadores que están iniciando sus carreras. Son palabras muy interesantes y queremos compartirlas con ustedes.
Cuando comencé a ejercer mi carrera me sentí perdido y frustrado, haciendo cosas que no sentía que debían ser el siguiente paso en mi carrera. Mirando hacia atrás veo que mi frustración fue causada por falta de experiencia. Ahora me doy cuenta que muchos de estos rasgos se ven reflejados en diseñadores y programadores jóvenes que han trabajado conmigo y son mis amigos.
Por eso pensé en escribir algunos consejos que ayuden a tener un inicio de carrera más gratificante y feliz.

No mires hacia abajo por la falta de conocimiento

“Usted no usa [inserte aquí el lenguaje o herramienta que no conoce]” la verdad es que somos una industria muy joven y es imposible conocer todas las herramientas que son enviadas por correo, compartidos en Twitter o en alguna otra comunidad en la red. No asumas que alguien sabe menos que tu porque decidió leer algo diferente. Tómese su tiempo, forme su propia opinión y si lo considera realmente útil, tómese su tiempo en explicarla. Escriba un blog y participe en algún proyecto en la comunidad eso le ayudara a cambiar su percepción.

Tenga cuidado con la jerga

Porque usar 15 palabras para explicar algo cuando puede usar 10. Escoja con cuidado su lenguaje, si va a hablar con personas que tienen ideas afines a las suyas entonces use la jerga, pero si va a hablar con alguien que no conoce los términos técnicos no los use, no trate de sentirse superior, utilizando un lenguaje que la otra parte no va a entender.

Entender su código

Si usted mismo no esta del todo conforme con el código que esta escribiendo entonces arréglelo, trate de comprender todo el código que escribe. Si usted no puede entender su propio código, entonces sus compañeros (o usted mismo en unos meses) no lo entenderán tampoco.

Valorar otras disciplinas

Si usted es diseñador probablemente sienta que usted es el creativo y usted es el que hace feliz al usuario con sus interfaces y los programadores solo deben encargarse de los datos o por el contrario si eres programador piensas que tu haces todo el trabajo importante, mientras que los diseñadores solo se encargan de decorarlo. Debes cambiar de forma de pensar, todos son parte del mismo equipo y deben hacer todo lo posible para que el usuario sea feliz.

Ayude a los clientes

Los clientes no tienen que entender las complejidades del desarrollo web, por eso están pagando. Es verdad que algunos clientes son un dolor de cabeza, pero si tienen un problema con la solución propuesta trata de explicarlo con un lenguaje sencillo. Puede que no pueda explicar el problema de fondo pero siempre hay indicadores de los problemas. Trate de escuchar a los clientes y no rechazar sus comentarios.

El valor de los reclutadores

Algunas veces suelen colocar a diseñadores a seguir trabajos de programadores o viceversa. O pueden estar buscando programadores .NET cuando usted desarrolla en PHP. Pero nunca olvidemos que en esta industria podemos encontrar muchas oportunidades para trabajar. Mucho más que en cualquier otra.

Mirar hacia arriba a los grandes de la web

Siempre puedes ver personas escribiendo artículos en internet o asistiendo a conferencias nacionales y siendo alabados por otros desarrolladores. La realidad es que ellos se lo han ganado y usted también puede lógralo. Pero nadie va a venir y solo pedirnos hablar en una conferencia usted debe trabajar para eso, hacer algo para mostrar lo que hace. Si desea escribir algún artículo para una publicación conocida solo pregunte.

Asumir la responsabilidad

Usted es el único responsable de su mejoramiento profesional, si usted no se preocupa por mejorar sus habilidades nadie más lo hará. No utilice el dinero como excusa para mantenerse en un trabajo en el que no se encuentra a gusto.
Tener un trabajo en el que de verdad seas feliz mejorara todos los aspectos de la vida y te permitirá ser apasionado en lo que haces.
Finalmente no hablar mal de otros compañeros programadores y diseñadores sin antes tener una buena perspectiva sobre ti mismo.

jueves, 27 de marzo de 2014

4 cosas importantes de los programadores


Actualmente los programadores son una de las profesiones más solicitadas hoy en día, debido a la gran demanda del mercado para realizar proyectos de tecnología, un 98% de los profesionales de TI son ubicados en el mercado laboral con exito en el primer año.
Acá te damos cuatro formas en que puedes entrar a pensar como uno y de paso ayudar a tu negocio a crecer:

1. Experimentar 

Los desarrolladores siempre buscan agregar valor a los productos que crean. Esto se llama un spike, un equivalente técnico a un pequeño proyecto de investigación. Los spikes son experimentos permitidos, donde se incentiva al desarrollador a probar con algo nuevo y diferente.
Los desarrolladores necesitan tener la libertad de experimentar y probar cosas nuevas para potenciales beneficios a largo plazo. Al tener esta flexibilidad, los programadores son capaces de explorar las mejores soluciones, en lugar de ser presionados a entregar un producto que quizás no esté a la altura.
Como propietario de un negocio o empresa, date permiso para explorar esas locas ideas que quizás no contribuyan de inmediato. La recompensa futura podría valer la pena.

2. Buscar gratificación instantánea

Muchos desarrolladores dirán que eligieron escribir códigos ya que pueden ver el impacto de su trabajo casi de inmediato. Como programador, si te mueves muy rápidamente sin poner las medidas correctas en el lugar correcto, se vuelve cada vez más difícil aislar el problema.
La academia Launch Academy le enseña a sus alumnos a acortar el ciclo de retroalimentación
para que se ajuste lo más rápido posible. El ganar perspectiva antes les permite cambiar su enfoque cuando sea necesario.
Como empresario, es necesario identificar los indicadores principales que pueden medir más rápidamente si los esfuerzos del equipo son correctos. Los cambios implementados pueden ser distribuidos a los clientes en cualquier momento, y con la instrumentación adecuada, podrás ver el impacto de ese esfuerzo en poco tiempo.

3. Descompone el problema 

A primera vista, algunos de los problemas técnicos que deben enfrentar los desarrolladores pueden ser abrumadores. Y ocurre lo mismo con la gestión de una empresa.
Cuando eso sucede es buena idea tratar de identificar las piezas más pequeñas que te darán la solución completa. Al romper el problema utilizando un estrategia de pasos más pequeños, los programadores (y empresarios) pueden ver dónde están los problemas, lo que cada hito implica y adecuar las acciones para completar la tarea, a la vez que no se sienten tan abrumados.

4. Siempre pregunta 

¿Esta idea puede escalar? Puede ser fácil servir a 200 ó  300 usuarios con una determinada pieza de software, pero ¿cómo podría ese mismo software funcionar cuando existen dos o tres millones de usuarios? Puede ser complicado ya que cada usuario tendrá una perspectiva distinta acerca de qué debe hacer el producto y cómo debe funcionar.
Mientras que lograr crear un buen software es tan importante para un desarrollador como lo es lograr los objetivos de ingresos para un ejecutivo, se debe pensar cómo ese software se adaptará a una base de clientes diversa y creciente. Los empresarios deben pensar de la misma forma. Las startups deben considerar cómo escalará su idea o producto. Anticipar que las cosas se vuelven más complejas y las personas más exigentes a medida que se involucra más gente.
Usa el ejemplo de algunas de las grandes mentes de la tecnología. Pensar como un desarrollador puede llevar a servicios y productos mejores y ser sinónimo de crecimiento para tu startup.

sábado, 22 de marzo de 2014

Carta tomada para los visitantes, invitarlos a reflexionar.

Ya que estamos empezando quiero aclararles algunos puntos.
Primero que nada, la información que les comparto y tengo conocimiento, no es ni total ni la única que existe. Sólo, que al ser principiante es mejor que entiendan de cierta manera algunas cosas y luego cuando maduren intelectualmente, se llevarán sorpresas que contradicen algunas cosas que dije.
Pasa que no estaría bien decirle a un niño como nacen los bebes, sin que haya madurado. Y por lo mismo no les regalo cuchillos de cumpleaños porque sé muy bien que se pueden cortar a ustedes mismos.
Otra cosa que me gustaría aclarar es que el hacking es un arma de doble filo. Uno puede usarla para sus propios beneficios, sin tener que hacer cosas ilegales o -mejor aún- sin tener que molestar a otro. También puede ser usada como una espada lastimosa. De cualquier manera, yo pienso darles información, conocimientos, tips, reglas, pensamientos; en fin, herramientas que les van a servir en la vida cotidiana, en su trabajo, y en cualquier ámbito dentro o fuera de la informática, y jamás leerán de mi un discurso sobre ética. Eso lo verán ustedes, porque yo no soy quien para decirles que es lo que tienen o no tienen que hacer. Más que nada porque todo conocimiento es subjetivo y limitado mientras sea personal.
Así que sí. Existe lo que se conoce como Hacking Ético, el cual corresponde a los white hat. Pero también existe un hacking que no es ni ético ni nada, es SUBJETIVOY quiero remarcarlo porque nadie puede decir si esta verdaderamente mal o bien. Y nadie, es nadie. Lo que si se puede hacer es hacerlo ilegal, pero eso es otro tema. Voy a meter en esta bolsa a aquellos que hacen hacking casi ético, con fines políticos.
A ellos se le llaman hacktivistas.
Seguramente escucharon hablar del grupo Anonymous. Pues bien, ellos son un grupo autodenominado como hacktivista -más allá de los grupos hackers que salieron de allí y los lammers que frecuentan usar su nombre para realizar cosas-. Es decir que hacen ciertas cosas, básicas en el mundo del hacking (como deface de webs, o ataques DDOS) sin intentar de romper nada, para hacer protestas virtuales o llamados de atención on line.
A los que lean esto, sean hackers. No sean lammers, ni mucho menos script-kiddies. Sean hackers. Darle un golpe al televisor y que ande, es darle un “hack” (sonido de golpe), es hackearlo, es aprovechar la vulnerabilidad de los circuitos eléctronicos. Pero no hackéen sólo un televisor o una red de computadoras. Hackéen el mundo, hackéense a ustedes mismos, hackéen todo. El mundo necesita ajustes, la vida necesita ajustes. Nada es perfecto. Bueno, hagan de cualquier momento perfecto. Aprovechen todo. Sobre todo las oportunidades. Piensen que cambios harían. Quieren bajar de peso, o ser más rápidos que bolt? Muy bien, entrenen. Quieren ser más rápidos que el ser humano? Bueno, hackéense. Encuentren ese gen maldito que nos limita y borrenlo.
No crean en lo imposible. Lo imposible no existe. Existen limites, y nosotros podemos borrarlos.
Sean lo que deban ser o no sean nada. Comiencen a pensar en cómo quieren ser ustedes. Ahora piensen como deben ser. Sean únicos, sean ustedes. Que nadie los presione, aunque sea un gran grupo. Sean lo que deban ser, por más que el universo los presione.
Peléen, no se queden de brazos cruzados. Empiecen a ver al mundo como un reto. Cambien todo, y arrasen con el mundo. Sacrifiquen y apuesten, las ganancias son mucho mejor. Pero sobre todo, sean inteligentes y sabrán cuando y donde exactamente deben hacer las cosas. No sean agresivos ni pasivos, no sean peleadores cuando los otros quieran, no sean nada de lo que los otros quieran. Hackéen la psicología, y muéstrenle al más psicópata que ustedes pueden ser lo que deban ser cuando deben ser y no más.
La inteligencia gana a la fuerza. Sepan todo, lean todo. Sobre todo de ciencias, tecnología, psicología, hacking. Cómanse las noticias del mundo. Sepan de política, sepan de economía, sepan de rebeldía. Sean piratas de ustedes mismos. No dejen de explorar. No estudien geografía y piedras de un libro, vayan hasta donde este la piedra y sosténganla con sus propias manos. Busquen, encuentren, pierdan, aprendan. Aprendan.
Sepan leer todo. Libros, personas, música, cuadros. Sepan amar, observar. No sean posesivos, ni traicioneros. No sean vengativos, ni impulsivos. El hacker se pinto de amarillo por una razón. Porque los medios no pueden soportar que queramos ser felices. Séanlo. Sepan que ser feliz no es un fin, una meta. Ser feliz es un camino que debemos tomar por siempre. Es el camino mas largo de todos, porque debería durar hasta el final.
Dejen de mirar la televisión. Dejen los diarios. ¿Se quieren informar? Vayan ustedes, hagan sus entrevistas, conozcan gente, lean foros. Duden de todo, incluso de lo que yo digo. Incluso de ustedes mismos.
Las propagandas son mierda -y no voy a pedir disculpas-. Son lo peor de lo peor. Porque nos dicen QUE pensar, COMO pensar, CUANDO pensar. Déjenlas de lado. Les prometo que empezarán a ver el mundo de la manera que ustedes lo ven y no como les dicen que lo vean. Dejen el materialismo. Dejen de pensar en dinero. Dejen de pensar en lo que no importa. No pierdan tiempo en tomar trabajos que no les gustan, para obtener dinero que no necesitan y comprar cosas que no les sirven para nada. Hagan lo que amen y amen lo que hagan. Busquen el amor, y apasiónense. Lloren. Rían. No escapen de ningún lado. Sepan perder.
No se arrepientan de nada. Sean seguros, pero no se arrepientan de nada. Así que sean el doble de inteligentes, para no hacer cosas de las que en cualquier momento se pueden arrepentir.
Sean piratas, sean malos y buenos porque el mundo es subjetivo y cada uno lo mira con los ojos que tiene; sean ateos, duden siempre, no se identifiquen con un partido político, no coman en lugares que les asquean e ingieran sólo comida y no químicos. No sean conformistas.
Sean libres.

viernes, 21 de marzo de 2014

ENCRIPTACIÓN Y SEGURIDAD DE LA INFORMACIÓN

Desde que los black hat acechan al mundo del hacking, se generaron distintas maneras de protección de los datos. Y hoy en día, la información es lo más rentable que existe en cualquier tipo de mercado, y se paga realmente bien.
Entonces, suponiendo que ellos ya robaron nuestros datos. ¿Cómo hacemos para que no puedan ser leídos?
La respuesta, hoy en día aparece fácil en la mente de la nueva generación. Pero pensemos en épocas en las que los romanos debían cruzar un mensaje por un largo trecho, sabiendo que los mensajeros eran carne de cañón, y al mismo tiempo estar seguros de que el mensaje no podría ayudar de ninguna manera al enemigo.
“Bueno, lo mandar cifrado al mensaje. Con todos simbolitos raros que sólo ellos sepan leer.”
Jajajajaj. Bueno Manolito, no estás más cerca de la realidad porque te chocarías contra ella.
Sí, hacían eso.
Cifrado.
El cifrado de la información, es la clara herramienta que buscamos. Pero, hay un inconveniente. Nosotros no deberíamos usar siempre la misma manera de cifrado porque sería inseguro. Imaginemos que el enemigo de roma interceptaba 4 mensajes y lograba descifrar uno. Si siempre usaran la misma manera de cifrado, el emperador no habría durado demasiado en decirle cuáles eran sus planes de ataque. Así que ideemos una manera de cifrado que varíe según la clave que le pongas. Y allí nació...
¡El Cifrado César! (también llamado cifrado por desplazamiento) Éste método es rudimentario fácil de entender. Vamos a explicarlo y luego realizar algunos ejercicios.
El cifrado se compone de 2 elementos: el mensaje, y la clave. El mensaje estaba encriptado, sustituido por un abecedario que nadie puede leer a simple vista, aunque siempre conformado por letras. Y la clave era un número entero que variaba entre el 1 y el 25.
La clave, era la que decía cuantas letras se desplazaba el abecedario, de tal manera que si n=2 (ésta es la clave), A=C, B=D, y etcétera. Para descifrar el mensaje, sólo hay que aplicar la manera inversa.
Vamos con los ejemplos que van a entenderlo mejor.
</colgroup>
Desplazamiento
0
A
B
C
D
E
[..]
X
Y
Z
1
B
C
D
E
F
[..]+1
Y
Z
A
8
I
J
K
L
M
[..]+8
F
G
H
Mensaje cifrado Mensaje descifrado
“ipmb” n=1 -------------------------------> “hola”
“Kqnzilw” n=8 --------------------------->”Cifrado”
Ejercicios (les dejo adjunto, además, un excel con todas los desplazamientos posibles:
Cifrar:
“Hola mundo” ------------------------>n=3
Descifrar:
“Anaf Wtfii” n=5 ---------------------->
“Jvirj cf hlv uvsrj jvi, f ef jvirj erur.” n=17 ----------------------->
------------------------------------------------------------------------
Obviamente, que este cifrado es simple incluso para un estudiante de primaria. Luego veremos cifrados que no vamos a poder calcular.
Este tipo de cifrado se le denomina, encriptación simétrica, porque usa la misma clave para cifrar y descifrar.
“Todo re lindo, che. Pero supongo que los romanos debían pasar el número para descifrar el mensaje. Eso era todo un tema de discusión ¿No?”
Claro Manolo, la clave es indispensable para pasar y al mismo tiempo un problema. Es un peligro que alguien que conozca tu forma de cifrado, robe ambas cosas. En ese caso estarías perdido. Incluso con robar 2 mensajes o más con sus respectivas claves, hay probabilidades de que empieze a entender tu técnica.
Ésto ya fue pensado, y crearon lo que se denomina encriptación asimétrica. Este tipo de cifrado esta compuesta por 2 claves: la clave privada y la clave pública.
La clave privada es, como dice su nombre, privada. Secreta, incompartible. Únicamente debe saberla una persona.
La clave pública la pueden saber todos.
“Pero esto haría re fácil a cualquiera leer tus archivos.”
Manolo, aquí hay una trampa. La clave pública, sirve únicamente para cifrar un mensaje y no para descifrarlo. Así que laclave privada sirve únicamente para descifrar el mensaje.
Es decir que cualquiera puede mandarte un mensaje cifrado pero nadie mas que vos puede descifrarlo.
------------------------------------------------------------------------
Vamos a dejar acá, y a seguir en la próxima ocasión. Así no se machacan el cerebro.
Espero cualquier sugerencia que quieran hacer:D
Roadd
Este tutorial puede ser copiado y/o compartido en cualquier lado siempre poniendo que es de mi autoría y de mis propios conocimientos.