martes, 22 de octubre de 2013

Creación de Contraseñas Seguras

Me he dado cuenta que como usuarios de servicios de internet la protección de la información personal es los mas importante y lo que más nos preocupa cuando se trata asegurar la fidelidad de acceso a los servicios web.

La mayoría de los usuarios cuando nos familiarizamos con el uso de los servicios web (correo electrónico, compras en línea, transacciones bancarias, almacenamiento de información, etc.) nos olvidamos por completo de las reglas básicas de seguridad sin imaginar que nuestra información podría estar al acecho de algún delincuente informático.

Es recomendable tener siempre presente que para proteger cualquier información en la web, es importante contar con una buena contraseña y para ayudarte con esa tarea que para algunos de nosotros podrá resultar abrumador y aburrido, aquí les dejo los links que en lo personal son de los mejores generadores de contraseñas online que he encontrado.



http://password.es/ (Español)
Disponible en español permite configurar unos sencillos parámetros para generar contraseñas con diferentes nivel de seguridad. Lo más interesante de esta web es su comprobador de contraseñas.
Comprobador de Contraseñas



http://www.clavesegura.org/ (Español)
Este sitio web simplemente es una manera fácil de generar contraseñas seguras para usar en diversas webs, tiendas online, o cualquier otro lugar en el que puedas necesitar una clave. El sistema permite escoger el tipo y la longitud. Es especialmente recomendable la posibilidad de crear una clave sencilla de recordar, mediante un algoritmo que escoge de Internet fragmentos de palabras al azar, generando una contraseña única y fácilmente recordable.


Este es un generador de contraseñas Fuertes muy simple de usar: básicamente no tenemos que seleccionar nada y el generador se encargará de hacer todo el trabajo. Podemos elegir dos cosas: el tipo –letras y números, sólo números, caracteres especiales- y la longitud –de 4 a 20 caracteres.

https://www.passwordlive.com/ (Inglés)

Este servicio es relativamente novedoso, nos permite usar una palabra clave secreta y una palabra para que servicio sera utilizada la contraseña, las cuales se utilizaran como base para generar una contraseña entre 8 y 64 caracteres.

Nosotros podemos personalizar la cantidad de caracteres, y si tendrá o no números, mayúsculas, y caracteres especiales, entre otros.

http://passwordbird.com/  (
Inglés)
Es una aplicación que genera contraseñas al azar según la información que le proporciones. Muy similar a la anterior tu introduces un nombre personal significativo para ti,  así mismo una palabra y una fecha de nacimiento, muy útil,  y luego se crea la contraseña, difícil de adivinar y a la vez te será familiar y fácil de recordar. Los datos que introduces son: un nombre, una palabra y una fecha que sean especial para ti, estos tres datos conforman un código particular. a partir de estas palabras genera una clave realizando una combinacion aleatoria.


viernes, 18 de octubre de 2013

Programadores y horarios. El karma del programador.

Dicen las leyendas urbanas que los programadores somos aves nocturnas y que nos gusta más trabajar por la noche. No voy a desmentir esta leyenda ya que es cierto, lo que voy a hacer desde estas lineas es intentar explicar, y hacer comprender a los escépticos, las causas que llevan a que ocurra eso.

Posiblemente, otras personas, como diseñadores, escritores, creativos, publicistas, arquitectos, ingenieros, etc. se vean reflejados en estas lineas y me deje, desde su punto de vista, cosas en el tintero. Yo conozco mi profesión, me conozco un poquito a mi mismo y conozco a algunos colegas, y desde ese conocimiento es por el que escribo esto. Mil perdones si algo me olvido: ponlo en los comentarios y compártelo con todos nosotros. Gracias.

Si, es cierto, los programadores trabajamos mejor y somos más productivos por la noche, una vez se han ido todos a dormir, el ruido de la calle cesa y no hay posibilidad de interrupciones constantes de la concentración.

Hay estudios que demuestran que un programador tarda entre 15 y 30 minutos en encontrar su “punto de comodidad” en el que consigue su nivel personal de concentración, abstracción y total despreocupación por el mundo exterior. Una vez conseguido este “punto de comodidad”, el programador puede permanecer así por mucho tiempo, hay algunos colegas que se han olvidado de comer, ir al baño e incluso de dormir. El “punto de comodidad” no se refiere a que el programador se encuentre cómodamente sentado, el “punto de comodidad” es cuando se juntan todos los factores de silencio, armonía, orden y relajación. Es como el “karma del programador”: el mundo se reduce a lo que está haciendo y sus pensamientos (incluso su persona queda fuera de este mundo).

Pero ¿por qué por la noche? 
Durante el día todas las personas tenemos compromisos que cumplir: llevar niños al colegio, hacer de comer, ir al mercado, atender a otras personas, ordenar y recoger la casa y/o la oficina, el condenado teléfono que siempre suena en el momento más inoportuno, la visita inesperada, hacer recados que parecen no acabar nunca, reuniones imprevistas …

Como se puede ver, es imposible que un programador que tenga esos compromisos pueda conseguir su karma nirvana personal para poder rendir al máximo. Puede, desde luego, aparcar todas esas tareas y ponerse a trabajar, lo que le suele acarrear un montón de problemas con las personas de su entorno (familia, amigos, compañeros de trabajo, jefes, autoridades …) y todos esos problemas conllevan su propia carga emocional que también influye en el estado de ánimo del programador para realizar su trabajo.

Así que, como durante el día hay que hacer innumerables tareas totalmente inconexas, el programador opta por no meterse en su karma nirvana y esperar al momento propicio para hacerlo, ya que si lo hace (y esto lo sabemos los programadores con mucha experiencia) puede ocurrir que, o bien se olvide de hacer las tareas (con sus problemas añadidos), o bien tenga que detener el transcurso de su pensamiento para hacerlas, lo que suele ser tremendamente doloroso ya que, para recuperar de nuevo su karma nirvana, la concentración y el hilo de lo que estaba haciendo, precisará de entre 35 y 90 minutos.

Este motivo lleva a que el programador espere a la noche, cuando nada le puede molestar, para realizar su trabajo con comodidad. Aunque hay noches que el cansancio del día no le permite conseguir su karma nirvana y debe sucumbir a la necesidad de descanso.

¿Son vagos los programadores?
Otra de las leyendas urbanas que corren por ahí sobre los programadores es que son unos vagos, que trabajan poco, que no cumplen con los compromisos y que no se puede confiar en su palabra.

Nada más falso. Si leemos con detenimiento el párrafo anterior nos daremos cuenta que los programadores se pasan la vida buscando el momento de su karma nirvana para poder realizar su trabajo y cuando no lo consiguen se pasan los días y el proyecto no se acaba nunca (a veces ni se empieza). Entonces el programador es vago, ¿no?.

Pues no, si al programador se le deja trabajar y se le descarga de las tareas que le restan tiempo para desarrollar su trabajo, se demuestra fácilmente que el programador es todo lo contrario: es una máquina de producir. Muchas veces podemos ver al programador sentado en el sofá, paseando o acostado (echado), y si nos acercamos descubriremos que no está durmiendo ni descansando, está concentrado en su tarea de encontrar la solución óptima para resolver algo; el programador no está todo su tiempo sentado ante el ordenador machacando las teclas. Otras veces lo podemos ver navegando por Internet, mirando páginas de redes sociales, o chateando con gente (generalmente, otros programadores), lo que no significa que haya perdido su karma nirvana, simplemente está relajando la mente para poder pasar de un problema a otro.

¿Los programadores son ariscos, respondones y malhumorados?
Jajaja. Sí. Si interrumpimos a un programador cuando está en su
karma nirvana, ya sea sentado ante el ordenador, o pensando, nos podemos llevar la impresión de que es un sieso, una persona arisca, respondona y malhumorada. ¿Has intentado molestar a un perro cuando duerme? Pues lo mismo con los programadores que están en su karma nirvana: no son ellos, como he comentado antes, el programador abandona su cuerpo para ser sólo mente, problemas, soluciones y líneas de código. Así que cuando veas a un programador trabajando, déjalo terminar si no quieres llevarte una mala impresión.

¿Horario de trabajo? ¿De verdad? Mire, Vd. no quiere un programador, quiere un “picacódigo”.
Es cierto que por las necesidades de la organización empresarial de nuestra sociedad, es necesario que los negocios se rijan por determinado horario de trabajo, y que todo el personal, incluidos los programadores, se ajusten a él. Pero nada más lejos de la realidad, cuando se impone un horario a un programador es lo mismo que ponerle grilletes en las manos e impedirle que trabaje. Las empresas que contratan programadores para programar y conocen su forma de funcionar, saben que no deben imponerles horarios ni tareas que les agobien, aunque sí deben especificar un plan de entrega de tareas lo sufucientemente flexible para que el programador haga su trabajo.

Las empresas que contratan a programadores y desde el primer día lo ponen a dar soporte técnico a los clientes, para aprovechar de esta forma que el programador asuma las dos tareas, no saben que lo que están haciendo es matar el espíritu del programador. Una de dos, o le dejan programar u organizan un horario de atención telefónica durante el cual no se programa, y el horario de programación hay que respetarlo. Incluso en el caso de reuniones urgentes, hay que respetar que el programador está en su karma si se desea obtener de él todo su potencial.

Como en todas las profesiones, en el mundo de la programación hay de todo. Hay programadores que no lo son realmente, aunque escriban código y hagan programas. Son los “picacódigo”, gente que va a trabajar por un sueldo, que solo se limitan a hacer lo que les piden de la forma más sencilla que saben y que para nada se pueden comparar con el programador comprometido con su trabajo, el programador que pare y da forma a la ideas de los demás y las suyas propias. Esos “picacódigo” son contratados por empresas y sirven para todo, como no llegan al karma nirvana, pueden atender el teléfono, ir a por café, asistir a reuniones, reparar enchufes y hasta la tostadora de pan de casa del jefe…. En fin, los empleados multiusos que buscan muchas empresas.

Problemas emocionales. El fin del karma nirvana del programador.
Aunque no lo parezca, los programadores somos personas y tenemos sentimientos. Anteriormente he comentado que un programador necesita una serie de cosas para poder encontrar su karma nirvana y rendir al máximo, una de las cosas más importante es que el programador se encuentre emocionalmente estable. Un programador lleno de problemas emocionales no consigue su karma nirvana, puede entrar en él de forma puntual, pero tardará poco en abandonarlo: en cuanto los pensamientos negativos relacionados con sus problemas emocionales aparezcan en su mente (y, en serio, cuesta mucho concentrarse con ese tipo de problemas).

Generalmente, los problemas emocionales se producen en el ámbito familiar (por aquello de las tareas domésticas que pueden olvidarse o abandonarse por estar profundamente concentrados) o bien en el laboral (cuando al programador le imponen tareas que no debe hacer y le piden que programe al mismo tiempo apretándole con las fechas).

Consejos si convives con un programador.
Los programadores no somos personas fáciles en lo que a las relaciones se refiere. Principalmente por que muchas veces podemos estar horas y horas metidos en nuestro karma nirvana a distintos niveles de profundidad. Por ejemplo, un programador puede estar con su pareja asistiendo a la boda de unos amigos y a la vez tener parte de su mente en su karma nirvana: así puede parecer distraído, distante e incluso estúpido. Hay que comprenderlo, los programadores no nos sentamos delante del ordenador aporreamos unas cuantas teclas y hemos terminado, ¡no!. Los programadores estamos constantemente, incluso dormidos, pensando en el trabajo que tenemos entre manos.

Como consejo general, a las personas que conviven con programadores, les diré que si lo quieren y lo conocen, respeten su karma nirvana. Un comentario inocente sobre lo tonto que podemos parecer puede dar con todo el karma nirvana en el suelo y destrozar el trabajo mental de semanas (incluso acabar una relación sentimental).
Como consejos concretos:
  • Si está concentrado en su trabajo no lo interrumpas. Anota lo que deseas decirle y pónsela a su lado en la mesa. Ya te dará respuesta. Si es urgente lo que necesitas, ponlo en la nota. El programador sabrá que hacer. Confía en él. Es importante.
  • Si ha estado toda, o gran parte, de la noche trabajando y no puede despertar por la mañana, déjalo descansar. El esfuerzo mental que hace cansa más que andar 20 kilómetros a marcha militar.
  • Si está trabajando en un proyecto, no le impongas tareas inconexas, te va a ayudar, pero déjale su espacio y no se lo invadas continuamente.
  • Si no te habla no está enfadado contigo. Está pensando en sus cosas. No le ataque con “¿qué te pasa?”, “¿te he hecho algo?”, “¿estas enfadado?” y cosas así. Lo que haces es atacar su estabilidad emocional y puedes hacer caer su karma nirvana.
  • No le cuentes cosas poco interesantes solo por hablar, puede que te lleves una mala contestación. Si el programador no habla véase el punto anterior.
  • Respeta su tiempo de trabajo. Sea cual sea la hora a la que trabaje. El programador no puede controlar el momento creativo y sabe que si lo pierde no hay posibilidad de recuperarlo.
  • No te enfades con un programador que no acude a una cita sin avisar, seguramente está tan inmerso en el karma nirvana que ni se ha dado cuenta del paso del tiempo.
  • Si eres pareja de un programador, se cariñoso con él o ella. Entiéndelo y ayúdale a superar los malos momentos. La programación da grandes satisfacciones personales, pero cuando algo no sale puede hundir el karma nirvana del más fuerte.

domingo, 13 de octubre de 2013

Triangulos en CPP

Que tal amig@s nuevamente les traigo un código CPP para recordar viejos tiempos, se trata de un proyecto escolar el cual consistia en crear una imagen en el centro de la pantalla y que dicha imagen pudiera crecer y decrecer al pulsar determinadas teclas sin que la imagen se distorcione, asi como tambien poder moverse el las direcciones izquierda, derecha, arriba y abajo utilizando las teclas de direccionamiento.

Un proyecto donde aprendi que cuando se realiza un buen analisis para solucionar un problema, la programacion resulta más facil.


Resultado de ejecutar el codigo CPP.


Aqui les dejo un segmento del archivo de codigo fuente, el archovo fuente completo lo podran descargar aqui triangulos.cpp.

#include "conio.h"
#include "stdio.h"
#include "graphics.h"
#include "math.h"
#include "dos.h"
#include "stdlib.h"

 void graficos(void);
 void menu(void);
 void rombos(int x,int y,int inc);
 void ayuda(void);

 void tecla(char *asci,char *exa);
 
void main(void){
  char asci,exa,hay;
  int x,y,inc;

 graficos();
 menu();

  x=getmaxx()/2-50;
  y=getmaxy()/2+50;
  inc=0;
  rombos(x,y,0);

  tecla(&asci,&exa);

 while(exa!=68){

     switch (exa){

       //escalaminento decreciente F3
       case 61:if(inc>-14){
        setfillstyle(1,3);
        bar(getmaxx()-96,310,getmaxx()-6,350);//F3
        outtextxy(getmaxx()-94,320," F3 ESCALA");
        outtextxy(getmaxx()-94,330,"DECRECIENTE");
        delay(250);
        cleardevice();
        menu();
        inc=inc-14;
        rombos(x,y,inc);
        }
        break;//F3

       //escalamiento creciente F2
       case 60:setfillstyle(1,3);
        bar(getmaxx()-96,265,getmaxx()-6,305);//F2
        outtextxy(getmaxx()-93,275," F2 ESCALA");
        outtextxy(getmaxx()-93,285," CRECIENTE");
        delay(250);
        cleardevice();
        menu();
        inc=inc+14;
        rombos(x,y,inc);
        break;//F2

       //mover a la izquierda <- data-blogger-escaped--="" data-blogger-escaped-75:setfillstyle="" data-blogger-escaped-a="" data-blogger-escaped-bar="" data-blogger-escaped-break="" data-blogger-escaped-case="" data-blogger-escaped-cleardevice="" data-blogger-escaped-delay="" data-blogger-escaped-derecha="" data-blogger-escaped-getmaxx="" data-blogger-escaped-inc="" data-blogger-escaped-la="" data-blogger-escaped-menu="" data-blogger-escaped-mover="" data-blogger-escaped-outtextxy="" data-blogger-escaped-rombos="" data-blogger-escaped-x="" data-blogger-escaped-y="">
       case 77:setfillstyle(1,3);
        bar(getmaxx()-96,40,getmaxx()-6,80);//->
        outtextxy(getmaxx()-90,50,"MOVER A LA");
        outtextxy(getmaxx()-90,60," DERECHA");
        delay(250);
        cleardevice();
        menu();
        x=x+14;
        rombos(x,y,inc);
        break;

       //mover hacia arriba ^
       case 72:setfillstyle(1,3);
        bar(getmaxx()-96,130,getmaxx()-6,170);//up
        outtextxy(getmaxx()-94,140,"MOVER HACIA");
        outtextxy(getmaxx()-94,150,"  ARRIBA");
        delay(250);
        cleardevice();
        menu();
        y=y-14;
        rombos(x,y,inc);
        break;

       //mover hacia abajo v
       case 80:setfillstyle(1,3);
        bar(getmaxx()-96,175,getmaxx()-6,215);//down
        outtextxy(getmaxx()-94,185,"MOVER HACIA");
        outtextxy(getmaxx()-94,195,"   ABAJO");
        delay(250);
        cleardevice();
        menu();
        y=y+14;
        rombos(x,y,inc);
        break;

       case 59:setfillstyle(1,3);
        bar(getmaxx()-96,220,getmaxx()-6,260);//F1
        outtextxy(getmaxx()-90,240," AYUDA F1");
        delay(350);
        cleardevice();
        ayuda();
        break;//F1
     }/

   tecla(&asci,&exa);
  }

}

void rombos(int x, int y,int inc){
 setcolor(4);
  line(x,y,x-10-inc/2,y-20-inc);
  line(x-10-inc/2,y-20-inc,x,y-40-inc*2);
  line(x,y-40-inc*2,x+10+inc/2,y-20-inc);
  line(x+10+inc/2,y-20-inc,x,y);

  line(x,y,x-20-inc,y);
  line(x-20-inc,y,x-30-inc-inc/2,y+20+inc);
  line(x-30-inc-inc/2,y+20+inc,x-10-inc+inc/2,y+20+inc);
  line(x-10-inc+inc/2,y+20+inc,x,y);

  line(x,y,x+20+inc,y);
  line(x+20+inc,y,x+30+inc+inc/2,y+20+inc);
  line(x+30+inc+inc/2,y+20+inc,x+10+inc-inc/2,y+20+inc);
  line(x+10+inc-inc/2,y+20+inc,x,y);

  setfillstyle(1,4);
  floodfill(x,y-4,4);//arriba
  floodfill(x-4,y+4,4);//izq
  floodfill(x+4,y+4,4);//der
  setfillstyle(1,15);
  setcolor(15);
}

...
Segmento del archivo de codigo fuente .CPP

jueves, 10 de octubre de 2013

Contraseñas y el mundo virtual

Desde hace unos meses me surgió la inquietud de escribir este artículo, lo comencé hace tiempo y hoy me propuse a terminarlo y compartirlo con ustedes.

Pues bien, se que la mayoría de ustedes ya conoce lo que es una contraseña ya que como usuario de los servicios de internet es muy común manejar este término tan cotidiano mundialmente, así que daré una breve descripción desde mi punto de vista:


Una Contraseña o Password (en Ingles) es una clave, palabra secreta o conjunto de caracteres que se utilizan para poder acceder a servicios web (correo electronico, almacenamiento de archivos, cuentas de redes sociales, entre muchs otros) algunos de pago o gratuitos.

Las contraseñas ofrecen la primera línea de defensa contra el acceso no autorizado, por lo tanto entre más segura sea una contraseña, más protegido estaramos de los ataques de los delincuentes informáticos y software malintencionado, por ello siempre se deben configurar contraseñas seguras para todas las cuentas de usuario de los servicios web que tengamos.
 
Las diez contraseñas más comunes utilizadas por los usuarios de internet desprecian las mínimas recomendaciones de todos los especialistas de seguridad informática, que aconsejan no utilizar datos personales como nombres, fechas de nacimiento, ni palabras que aparezcan en el diccionario. Las diez claves que componen esta relación son: "password", "123456", "qwerty", "abc123", "letmein", "monkey", "myspace1", "password1" "blink182" y el nombre del usuario.

La falta de originalidad en la elección de contraseñas se debe a que los usuarios hacen caso omiso a las recomendaciones de seguridad que dan los expertos, los cuales recomiendan usar contraseñas compuestas de por lo menos ocho caracteres


Características de una contraseña segura

Para un atacante una contraseña segura debe parecerse a una cadena aleatoria de caracteres que no tenga mucho sentido. Puede conseguir una contraseña segura si aplica los siguientes criterios:

  • Que no sea corta, cada carácter que agrega a su contraseña aumenta exponencialmente el grado de protección que ésta ofrece. Las contraseñas deben contener un mínimo de 8 caracteres, pero lo ideal es que tenga 14 caracteres o más.
  • Utilizar espacios para las contraseñas, de modo que pueden crearse frases compuestas de varias palabras. Por lo general, una frase codificada resulta más fácil de recordar que una contraseña simple, además de ser más larga y más difícil de adivinar.
  •  Combinar letras, números y símbolos, cuanto más diversos sean los tipos de caracteres de la contraseña, más difícil será adivinarla. No limitarse solo a los caracteres más comunes. Los símbolos (! @ # $ % ^ & ()  + = /) que necesitan que se presione la tecla "Shift" junto con un número son muy habituales en las contraseñas, por lo que su contraseña será mucho más segura si se elige entre todos los símbolos del teclado, incluidos los signos de puntuación, así como los símbolos exclusivos del idioma.

  • Cuanto menos tipo de caracteres haya en la contraseña, más larga deberá ser ésta, una contraseña de 15 caracteres formada únicamente por letras y números aleatorios es 33.000 veces más segura que una contraseña de 8 caracteres compuesta de caracteres de todo tipo. Si la contraseña no puede contener símbolos, deberá ser considerablemente más larga para conseguir mayor grado de protección. Una contraseña ideal combinaría una mayor longitud y distintos tipos de caracteres.
  • Usar palabras y frases fáciles de recordar, pero difíciles de adivinar, la manera más sencilla de recordar contraseñas y frases codificadas consiste en anotarlas. Al contrario de lo que se cree habitualmente, no hay nada malo en anotar las contraseñas, si bien estas anotaciones deben estar debidamente protegidas para que resulten seguras y eficaces.

Por lo general, las contraseñas escritas en un trozo de papel suponen un riesgo menor en Internet que un administrador de contraseñas en Web u otra herramienta de almacenamiento basada en software.  

martes, 8 de octubre de 2013

Google Web Designer

Hace unos dias (el pasado 30 de Septiembre para ser exacto) Google anuncio el lanzamiento oficial de Web Designer, una nueva herramienta para crear contenido interactivo en formato HTML5. La herramienta que fue anunciada el pasado mes de Junio pero no tenían una fecha fija de lanzamiento y finalmente decidieron que seria liberada para los usuarios el 30 de Septiembre.

Google Web Designer es una aplicación que le permite diseñar y compilar anuncios HTML5 y otros tipos de contenido web mediante una interfaz visual y de código integrada. Con la vista de diseño de Google Web Designer puede crear contenido con herramientas de dibujo, texto y objetos en 3D, y puede además, animar objetos en una cronología. Una vez que haya terminado de crear su contenido, Google Web Designer genera archivos HTML5, CSS3 y JavaScript limpios y legibles.
Su descarga es completamente gratuita y está ya disponible en versión beta, tanto para Windows como para Mac. Esta herramienta ha sido desarrollada para permitir a los que se dedican a la publicidad, crear anuncios fácilmente en HTML5, tanto para plataforma de escritorio, como para móvil.

Overview de la interfaz de Google Web Designer.
Al crear creatividades publicitarias con Google Web Designer, puede usar una biblioteca de componentes que le permiten añadir galerías de imágenes, vídeos, herramientas de redes de anuncios y más.

La vista de código de Google Web Designer le permite crear archivos CSS, JavaScript y XML, con resaltado de sintaxis y autocompletado de código para que su código sea más fácil de escribir, con menos errores.

 
Quizas no sea el mejor ejemplo, pero esto lo realice con Google Web Designer; llegar a este resultado podria resultar un poco complicado se se realizara a patin utilizando CSS.


Google Web Designer para ser Beta es muy buen inicio, hay algunos detalles que pueden mejorar porque para que un usuario que utilice la herramienta es necesario hecharle una leida al manual previemente para saber como funciona cada componente (este es mi punto de vista) y saber que resultado vamos a obtener.


Parte del codigo generado por Google Web Designer.