Follow By Email

jueves, 29 de noviembre de 2012

Cylon Linux un sistema operativo para todos !

   Hace muy poco se está distribuyendo una distribución de pre-configuarada GNU/Linux Ubuntu  que me ha dejado muy conforme ya que se adapta a todas mis necesidades, por ser intuitivo y traer una gamma de programas bastante útiles.

   Si bien es una distro basada en Ubuntu 12.04 esta trae integrado gnome 3 y además Unity. Su interfaz gráfica es muy atrayente y es tan fácil que hasta mi madre lo ha comenzado a usar en reemplazo de windows 7. Sus integrantes son jovenes y novedosos por lo que me quedo con este gran sistema operativo para todos  !.



Descarga y Fuente: http://cylonlinux.weebly.com

miércoles, 28 de noviembre de 2012

Insertar indices económicos con PHP y Ajax (tipo webservice)

   Estoy desarrollando un sistema de gestión empresarial, el cuál necesitaba integrar índices económicos dentro de la aplicación en PHP. Busqué distintos webservices que entregarán dicha información pero en Chile escasean. Entonces encontre un tutorial de como tomar las tag de una página web que contiene los índices y poder tomarlos y trabajarlos en mi web.
   El link es este:

http://www.maskin.cl/programacion/insertar-indices-economicos-en-tu-sitio


<?php //Dolar Observado!
$url = "http://www.terra.cl/valores/";
$palabra = "DOLAR OBSERVADO";
$x = 1; //evita tags <! (invisibles)

$fd = @fopen($url, "r"); //abre la url y comienza desde el principio para solo lectura. Apertura para solo lectura; ubica el apuntador de archivo al comienzo del mismo.
while ($line=@fgets($fd,1000)){
$pos = strpos ($line, $palabra);
if ($pos){
$glosa = " ";
$line2=fgets($fd,1000);
echo strip_tags($glosa.trim($line2));
}
}
@fclose ($fd);
?>


<?php //UF
$url = "http://www.terra.cl/valores/";
$palabra = "UF :";
$x = 1; //evita tags <! (invisibles)

$fd = @fopen($url, "r"); //abre la url y comienza desde el principio para solo lectura. Apertura para s�lo lectura; ubica el apuntador de archivo al comienzo del mismo.
while ($line=@fgets($fd,1000)){
$pos = strpos ($line, $palabra);
if ($pos){
$glosa = " ";
$line2=fgets($fd,1000);
echo strip_tags($glosa.trim($line2));
}
}
@fclose ($fd);
?>


<?php //UTM
$url = "http://www.terra.cl/valores/";
$palabra = "UTM :";
$x = 1; //evita tags <! (invisibles)

$fd = @fopen($url, "r"); //abre la url y comienza desde el principio para solo lectura. Apertura para s�lo lectura; ubica el apuntador de archivo al comienzo del mismo.
while ($line=@fgets($fd,1000)){
$pos = strpos ($line, $palabra);
if ($pos){
$glosa = " ";
$line2=fgets($fd,1000);
echo strip_tags($glosa.trim($line2));
}
}
@fclose ($fd);
?>

lunes, 19 de noviembre de 2012

Ser freelancer, la opción más económica

   Llevo ya tiempo en el tema de desarrollo y análisis de aplicaciones como persona independiente, partí desarrollando pequeñas webs que a lo largo me hizo obtener contacto necesario para poder dedicarme a ello. Sin embargo el ser independiente no quiere decir que sea más cómodo y relajante el trabajo. De hecho muchas veces es estresante la cantidad de código que hay que escribir en una semana. 

   Pues llego un momento del cuál ser el ser freenlace me transformó en la opción más barata de los clientes. Claro en vez de gastar la inversión en una consulta, realizan postulaciones de proyectos y ven cuál pide menos y en menor tiempo posible. Pues esa situación me ha cansado, ademas desgasta tiempo desarrollar un proyecto "solo"   y me doy cuenta que mucho futuro no podré obtener si sigo con ese ritmo y con aquellos negocios. 



 

  Decidí emprender y formar un empresa consultora la cuál me haga sacar el estigma de freelance y ser la opción que ofrezca calidad. Aunque no ha sido fácil, los gastos en oficina aún me revienta el estomago. Pues ya estoy en pensamientos de crear un software estándar para empresas con flexibilidad y adaptabilidad de el negocio, pues esto conlleva menos horas de desarrollo y más flujo de dinero.     

martes, 30 de octubre de 2012

"Nuevos" conceptos de la web que yo no sabía ...

     El desarrollo, la web y la ciencia de la informática avanza de manera extraordinaria. Como el título de este artículo lo dice "Nuevos" está en comillas ya que ni siquiera es tan nuevo, solo que recién he comenzado a asimilar , todos estos conceptos novedosos. Soy desarrollador y cada día encuentro con nuevas ideas que han facilitado gran parte de mi tiempo de producción. Primero CSS bootstrap, luego Jquery, depues Jquery con ajax y un sin fin de nuevas tecnologías aportadas por comunidades queriendo compartir cada conocimiento, concepto e idea.
  Os publicaré una lista de estas grandes ideas !

1.- Concepto responsive : Los móviles se han tomado gran parte de la web. Android, IOS etc... celulares tan avanzados que ya tienen navegadores incorporados totalmente compatible con la web. Pero el tamaño ha sido lo complicado... es realmente incómodo tener que estar moviendo la pantalla para leer un artículo en un celular. Es por eso el concepto de responsive una web que se adapta al tamaño de cualquier dispositivo posicionando las estructuras con novedosas librerías CSS !!. Pero cuidado hay que saber bien como diseñar usando grids (bloques(matriz de la pantalla)) ya que muchas veces puede ser un dolor de cabeza.

2.- Librerías o Frameworks CSS : esto si que me ha quitado un gran paso de encima. Como desarrollador de aplicaciones, el diseño nunca ha sido lo mío y bueno siempre estan las interfaces de escritorio que suplían el software. Pero cuando la web 2.0 pasó a ser fundamental en este ámbito, había que hacer un doble trabajo para mostrar un diseño presentable. Ahora con estas librerías CSS se suple este conflicto ya que nos permite ahorrar ese diseño que tan importante es para el cliente. El ejemplo más claro y el más usado es Bootstrap la gran libreía que liberó twitter. los botones, las tablas, la responsividad, las interfaces todo el diseño con solo una palabra mágica <link href='bootstrap.css'>



jueves, 25 de octubre de 2012

Futuro humano automatizado = ?

  Leyendo un libro muy interesante de robótica (Caliban -  Roger MacBride Allen - Asimov)  me hecho reflexionar un poco del que será de nosotros en unos años más.

  Este libro habla sobre dos comunidades rivales las cuales, una produce robots y han llegado a tal nivel de comodidad que ya ni siquiera los humanos saben manejar ya que es tarea de robot. Han sido tan dependientes de estos, que se volvieron dependientes totalmente de un sistema robótico de cuál aun no tiene la capacidad de pensar. La otra civilización trata de evitar estas máquinas, ya que ven el potencial peligro de automatizar todo... un futuro de humanos ineptos.

  Quizás es un poco drástico el pensamiento de que las máquinas harán todo, pero vamos por ese camino. Desde que la ciencia de la informática fue creada su fundamental objetivo ha sido  tratar de automatizar y producir de forma expedita ciertos cálculos que el humano podría demorar miles de horas.
 Y bueno mi propia experiencia ha sido un poco ver este proceso. Por ejemplo los IDE de programación. Cada vez se programa menos líneas de código dejando al IDE hacer su trabajo. Visual estudio ya no requiere de profesionales. Mi propia madre podría realizar una base de datos y luego hacer una aplicación en visual basic para listar sus recetas de cocina.  Todo ha sido tan automatizado que ya los programadores dejarán de existir.

  Creo que podríamos ir a un buen camino pero nunca debemos olvidar que nosotros como humanos debemos encontrar un sentido a la vida. Ser eficiente y no depender de nadie ni de nada es fundamental para el desarrollo humano propio y evolución en masas.




jueves, 23 de agosto de 2012

Un Informático en tercer año de Carrera

   Ser informático ha sido mi sueño de pequeño, tuve mi primer computador a los 7 años, un windows 92. Desde ese momento no pude estar sin uno en mi hogar. Ya teniendo claro lo que quería ser, no sabía que iba a realizar... ¿Qué hace un informático?. Pues existen variadas especialidades para ello, sin embargo siempre esta el estigma de "Es el que arregla computadores" algo totalmente erróneo.
  Yo aun no defino que especialidad seguir, me llama mucho la atención el análisis y desarrollo de aplicaciones  pero también la seguridad Informática me atrae. El hecho de combatir con Hackers malos me da cierto placer. 

  Como Informático de tercer año de la carrera aun no se define realmente a lo que uno se dedicará. Aun quedan ramos de programación, desarrollo web con Java o .Net cosa que llega a aburrir un poco por el motivo de que ya uno sabe programar a ese tiempo. Los ramos de análisis UML, creación de algoritmos e ingeniería de Software son muy llamativos ya que te llevan a pensar a lo grande. Sin embargo un ramo que adoro es el de S.O GNU/Linux, algo tan desconocido para la gente normal y algo tan grande a nivel de comunidades informáticas. Para que hablar de los demás ramos, estadística, cálculo , etc.. complementos importantes para ser un buen profesional.




   ¿Que puedes hacer ya teniendo 3 años de experiencia?

  - Muchos se dedican a estudiar y estudiar, sin embargo cuando llega el momento de la titulación se tienen que enfrentar a un mundo laboral totalmente desconocido para ellos.

  - Freelancear, realizar pequeñas aplicaciones web, realizar clases de programación y publicar avisos todos los días de lo que uno hace. En este campo me encuentro yo y bueno he podido sobrevivir y aprender bastante.

  - Trabaja como desarrollador Part-Time en una consultora. Muy buena opción, solo que debes considerar tener trabajo para la casa. Ademas de considerar tener que votar algunos ramos.

  - Por último trabajar en un Call Center como personal de soporte computacional. 




miércoles, 22 de agosto de 2012

La lógica de la programación de video-juegos

   Como programador siempre me ha gustando el tema de desarrollo de vídeo juegos, es claro que se tiene que tener un conocimiento de ciertos años, pero claramente depende del entusiasmo y la dedicación que se requiere. Muchas veces la lógica de programación para el desarrollo de vídeo juegos es lo más complicado, pero una vez entendiéndola, te das cuenta que puedes realizar lo que quieras. Lo principal es entender lo que es un loop. Muchas veces se habla de ello, pues es el motor de nuestro juego.

   Un loop es una función repetitiva que contiene la lógica del juego y que se debe estar llamando cada cierto tiempo indefinidamente, hasta que exista un botón o una acción que la detenga. Antiguamente los loops eran programados para que cumpliera un ciclo con la velocidad del procesador. Esto provocaba que en algunos computadores el juego funcionaba más rápido o en otros más lentos. Actualmente los loops cumplen un tiempo determinado con una función de timer.




var personaje;
var vida = 5;
 do{
 personaje.x = personaje.x + 1;
 vida = vida-1;
 }while(vida = 0)


    Este es un pequeño algoritmo de loop la cual hace que el personaje se mueva en forma horizontal y cuando la vida sea igual a cero este loop termina, La lógica del loop puede ser aplicado para cualquier lenguaje de programación solo se debe investigar ciertas funciones básicas como: timer(loop(),1000) = función que permita manejar un tiempo para un determinado ciclo. colision(), hittest() = función que permita colisionar(tocar) un objeto con otro. funciones de posicionamiento x,y = muchos lenguajes manejan la posición de objetos con coordenadas x,y o z(en 3d). boton event() = función que permita detectar un botón presionado. Pues una vez entendiendo esos conceptos, la programación de videojuegos es más fácil. En distintos tutoriales el Loop se le llama actualizar(), es lo mismo , una función que pueda actualizarse en un determinado tiempo.

martes, 26 de junio de 2012

PHP o JSP ?

 Siempre existe la preguntar de cual es la real diferencia de estos dos lenguajes. Al momento de crear un proyecto existe la pregunta ¿Qué lenguaje ocuparé? ... ¿El que más hemos usado? ... ¿O el que realmente da confianza?....    
  PHP ! Un lenguaje fácil, intuitivo y donde puedes lograr lo que quieras con el servidor... pero que hay en la seguridad? pues al ser interprete, los códigos quedan a la vista de cualquiera, quién pueda acceder de forma mal intencionada. Pues al ser interprete no existe un método de encriptación de claves para las conexiones de bases de datos u o conexiones remotas. Además al ser el más usado para la aplicaciones web, es también el mayor blanco de posibles invulnerabilidades.

  JSP ! Excesivo en códigos, haz de tener un servidor bastante bueno para soportar la cantidad de recursos que utiliza. Sin embargo es JAVA y este lenguaje es el "Futuro" según dicen. JSP es un lenguaje compilado, y si tratas de acceder al servidor, solo podrás ver .class y si estos están encriptados, pues olvida que puedas ver algún tipo de código... ya es un ejecutable para el servidor y para ti códigos compilados y encriptados.
   Pues está claro que para realizar páginas webs rápidas, la mejor opción es PHP. Pero si quieres realizar un web-service del Banco BBVA debes realizarlo en un lenguaje de la cual se requieran otros estandares de seguridad. Y JSP claramente ofrece esa posibilidad. 


           






domingo, 24 de junio de 2012

La mala costumbre al comenzar con PHP y no usar estándares.

   Muchas veces  el comienzo como programador sin antes haber estado en un tipo de enseñanza previa trae ciertas malas prácticas. Mi ejemplo claro fue cuando realicé mi primer proyecto web-service . Pues la verdad no tenia grandes conocimientos de los "estándares de programación", yo solo sabía programar a mi manera... El lenguaje que utilizé fue PHP, pues es muy bien documentado en la web y además es bastante intuitivo, pues quería evitar los otros lenguajes tales como Java (servlets y JSP) o ASP.

 

   Todo iba muy bien, la web funcionaba en perfectas condiciones, cosa que solicitaban se podía lograr. era impresionante la velocidad de programación. Sin embargo, el proyecto fue creciendo y cada vez se pedían más y más módulos, como también modificar otros ya existentes.  Esto ya empezaba a complicarse, pues ya no recordaba como funcionaban los primeros módulos y como no tenía como organizar la cantidad de código que se había realizado. Llegaron nuevos programadores y estos no podían lograr el funcionamiento, ni tampoco les motivaba a hacerlo. Entendí que el no tener un estándar de programación (ejemplo: MVC) y el usar un lenguaje aprendido por tutoriales iba a traer grandes complicaciones a futuro.

  Es por eso que debemos siempre regirnos a los estándares enseñados en las Universidades y siempre ver que lenguajes pueden ser los más adecuados a la hora de diseñar proyectos de gran envergadura. Pues PHP puede ser muy intuitivo y ha de tener mucha documentación, pero muchas veces se cae en la seguridad que tiene implementada.  


domingo, 13 de mayo de 2012

Isaac Asimov de la ciencia ficción a la realidad ... Los Robots

   Hace unas semanas abrió una librería cerca de mi casa, pase a ver que cosas y curiosidades podían ofrecer. Husmeando encontré un libro que me llamó mucho la atención, pues en la caratula aparecía una ciudad de esas tipo star wars. El libro se llamaba Fundación de Isaac Asimov. Un gran libro con una saga que te llena de ideas y conclusiones y bueno autor es un pionero (parecido a Julio Verne pero del siglo XX) habla de los robots y de su inteligencia artificial como algo venidero. De hecho el es también el escritor de Yo, robot.

   Investigando sobre mi nuevo admirador encontré una entrevista donde habla del aprendizaje del futuro, explicando que en cada hogar habrán bibliotecas cibernéticas para cada persona y es lo que hoy conocemos como el Internet. La saga fundación me ha ayudado en mis ramos de Sistemas de información donde explica  que todos los sistemas tienen un punto de destrucción (nada es perfecto) pero gracias a estadísticas y probabilidades se pueden prevenir desastres.

   Recomiendo 100% a este autor a quienes estudian informática o algún ramo referente a la tecnología y que además buscan ficción en los libros. Es motivador y entretenido saber que existieron personas que a partir de ideas, crearon los comienzos de nuevas ciencias como lo es la Robótica.







domingo, 22 de abril de 2012

Microsoft la macabra compañia de Sotfware

   En mis años como estudiante de Informática y como desarrollador de aplicaciones, me había puesto a pensar sobre la gran conocida Microsoft. He participado en muchas comunidades de softwares libre, llendo a charlas y reuniones. Pero nunca encontré una razón clara de para que mostrar el código y hacer un mundo mejor. Siempre es bueno guardar la receta y así prevalecer al creador, como coca cola company y su receta secreta de la bebida mágica color café. Tampoco entendía el por que el odio   a la compañia del sistema operativo Windows y criticarlo hasta un punto de decir que es la aplicación que ha hecho a la humanidad una desvolución.

  ¿Microsoft es malvado? ¿Por que? ¿Por no mostrar su código de un gran sistema? ... Siempre pensé que esa era la razón de que microsoft era odiado por estas comunidades. Y por lo tanto nunca le tomé importancia a este tema.  

   Pero hoy cambió ese pensamiento en mí y pude comprender el daño que ha hecho esta empresa a la humanidad. Puede sonar una muy fuerte oración, pero es así. Las razones son claras y existen pruebas y hecho de ello. Windows de hiso de el sistema operativo más usado en el planeta (de ello no hay nada malo), sus acciones crecieron y la empresa pasó a ser la mayor compañía con mayores ingresos del mundo ( en ello tampoco hay nada malo). Todo esto tiene una relación a los sistemas políticos y económicos. Comunistas , Capitalistas, sistemas de libre mercado. Un sistema de libre mercado de un comienzo fue maravilloso, el humano era libre, podía vender, comprar, consumir como quisiese. Pero muchas empresas crecieron y tomaron el control hasta tal punto de destruir su competencia y hacer lo que quisisen con productos esenciales para subsistir. Microsoft hizo algo parecido con su competencia. Tenían tanto dinero, que quisieron tomar el control de la ciencia de la Informática. ¿ Es tanto así ? pues sí, microsoft tenía ya un gran control de la computación con su sistema operativo, pero quería englobar aun más. Aplicación que aparecía esta la copiaba y destruía a su creador. Claros ejemplos son como lo que le pasó a Borland (la aplicación de desarrollo de aplicaciones), WordStar ( la aplicación de oficina para escribir cartas) o NetScape Navigator (la gran aplicación que hiso cambiar el mundo y el internet con su exploraror web). Aplicaciones que fueron creadas por grandes pensadores y que fueron copiadas por este mounstro y gracias a su gran capital, invirtir la forma de obtener la aplicación y distribuirla, amenzando a todas las démas compañias en que si distribuyen algo que no sea de microsoft se le cancelan las licencias para el sistema operativo (otro monopolio).




   Y es así como Microsoft Office, Internet Explorer, ASP, Age of Empires, Han sido grandes copias y softwares destructivos del pensamiento de algún inventor.
  
    NetScape fue el comienzo de una lucha antimonopólica ante Microsoft, El navegador fue copiado y fue amenzado, tal punto que I Explorer un horror de aplicación fue integrada libremente al sistema operativo windows dejando sin competidor alguno durante una decada. Pero todo sistema tiene un fin. La humanidad se ha dado cuenta de poder que tuvo microsoft y ha intervenido para que no siga ocurriendo. Nosotros como desarrolladores no debemos que siga pasando eso. No dejarnos pasar a llevar contra las grandes empresas que harán lo posible por tomar nuestra idea y dejarlas crecer aun más. No todo es microsoft y cada vez se irá notando.





martes, 17 de abril de 2012

Un ERP : Software de planificación de recursos


   Muchas veces no le damos mucho énfasis como estudiante a esta palabra ERP. Sin embargo, su significado tiene gran relevancia para nuestro futuro como programadores o ingenieros en informática. Un ERP es un software para empresas, donde globaliza gran parte de los procesos que está conlleva.  Ejemplo, un ERP para empresa de distribución de productos, donde tiene módulos de clientes, venta, despacho, facturación, inventario, contabilidad, estadística, etc…  Este software tiene que adaptarse a los cambios de la empresa. Muchas veces estas aplicaciones son desarrolladas por grandes consultoras, con un sistema generalizado. Pero también muchas veces las empresas necesitan necesidades específicas para sus diferentes áreas. El desarrollo de estas aplicaciones a la medida son muy costosas y requieren de mucho tiempo para lograr el objetivo.

  Un ERP hecho a la medida tiene una gran cantidad de fallas y estas son solucionadas a medida que la aplicación es usada.
  Esta aplicación generalmente es multiusuario ya que requiere de muchas personas de diferentes áreas el uso de datos, tiene una base de datos  centralizada y generalmente es instalada en un servidor local para una conexión local en la empresa. 






viernes, 13 de abril de 2012

Protocolos de aplicación y su ejecución en los servidores

   En mis tiempos de juventud estudiantil, era un simple usuario de internet. Navegaba como todas las personas lo hacen. Y como usuario final, nunca me importó como se producía cada proceso para visualizar un documento HTML.  Y es que somos muy cómodos para entender dicha complejidad.  Si a veces nos preguntamos cómo se hizo la coca-cola o como se realiza un determinado producto o como se realiza un servicio. Como Ingeniero ya no podemos darnos el lujo de usar algo y no saber cuáles fueron sus procesos para su creación, sobre todo cuando es algo relacionado con la computación, redes o informática.

     La internet es maravillosa y siempre es bueno darse un tiempo para entender sus complejidades.  Hoy hablaré un poco sobre la capa de aplicación del modelo OSI. La capa de aplicación tiene una gran cantidad de protocolos que se deben utilizar de forma estricta para desarrollar algún software o documento y poder transmitirlo a las redes y que sea recibido de forma correcta por el receptor. Para poder visualizar una página web, estas por lo general están alojadas en algún servidor, debes direccionarte mediante su dirección IP, pero para evitar escribir el numero IP , estas direcciones están alojadas en un servidor DNS que tiene por función guardar la direcciones y asignarle un nombre de dominio. Para acceder a una página web, solo tienes que escribir un nombre (ejemplo www.arraysblog.blogspot.com) y te conectarás al servidor DNS y este direccionará su ip correspondiente y podrás conectarte a servidor que está alojado dicha página. Pero para que el servidor pueda mostrar su web, este debe tener instalado el servicio de protocolo HTTP.

    HTTP es  otro protocolo de la capa de aplicación de la cual permite el intercambio de información de un cliente /servidor.  Pues es muy fácil poder aplicar todos estos protocolos y poder hacer una web y poder alojarla en un computador personal (como servidor). Solo que también hay que tener en cuenta la seguridad que se requiere para evitar ataques externos.



sábado, 7 de abril de 2012

Nuestro nuevo juego realizado en ActionScript 3 : 2012 The Game

   Pues como programador apasionado, nunca está demás dedicarse a algún hobbie y nunca es malo dedicarle a uno en el cual puedes aprender aun más sobre programación. Siempre he querido programar video-juegos, es como un sueño que ahora puedo hacer realidad gracias a los conocimientos adquiridos.De hecho el desarrollar videojuegos aumenta la capacidad de analizar problemas y codificarlos en sus respectivas funciones, me ha servido mucho en la Universidad al momento realizar una prueba de Java o . net.  Es por eso que ya hemos lanzado otro juego llamado 2012 : The end of the world. un juego en el cual debes destruir a los invasores antes de que lleguen a nuestro planeta. Está creado en un ambiente de 8 bits un ambiente histórico donde traen muchos recuerdos de niñez. CrogoGames es la organización que he creado con mi hermano (también informático) y aun estamos con la idea de seguir desarrollando juegos, solo que ahora tenemos la agenda un poco apretada, pero ya vendrán tiempo libres donde programaremos y haremos grandes juegos.



   Aquí esta el juego, que lo difrutes !:


Informático = solucionador de problemas

   Desde pequeño me gustaron las matemáticas, nunca fui fanático pero si me llamaban la atención el tener que resolver, a través de los pasos enseñados por el profesor, un problema "x". Siempre era uno de los más rápidos para entender el problema y solucionarlo de la forma más práctica posible.
   Cuando entre a la Universidad y tuve mi primera clase de programación, se produjo un brillo en mis ojos pues no vimos códigos, ni computadores ... nos enseñaron quien fue Polya y sus metodologías para la solución de problemáticas en cualquier  ámbito de la vida.

1.- Entender el problema
2.- Configurar un plan
3.- Ejecutar el plan
4.- Mirar hacia atras

   Pueden verse muy fáciles y comunes, pero muchas personas no tienen ese pensamiento adquirido. Como informático me di cuenta que solo ciertas personas adquieren está habilidad. Ya que es una carrera que requiere analizar problemas de la forma más práctica para que pueda entender el computador y la más simple para que no ocupe grandes recursos.

   En mis primeros años de trabajo como "informático" y lo coloco en comillas porque fue un trabajo en donde no programaba, ni creaba sistemas. Era un trabajo donde estaba en una oficina cuidando del servidor de la empresa y estaba atento a los problemas que suscitaban en los usuarios. problemas bastante simples como por ejemplo quedase pegado el PC por abrir Outlook. De primera yo no conocía dicha aplicación, pero de alguna forma mi pensamiento informático me ayudo a resolver esos problemas sin ni siquiera conocerlos(siendo tan facil como compactar el pst y crear uno nuevo).



   Es por eso que si quieres ser un informático, no pienses que es estar en un computador. Ser informático requiere ser una persona muy analítica. Pues la Informática aun es una ciencia en pañales donde existen miles y miles de errores por ser resolvidos, el crear sistemas, el imaginar lo lógico para ser reemplazado por algo físico, el automatizar algún proceso no tiene nombre y es maravilloso poder ser parte de esta gran ciencia.

sábado, 24 de marzo de 2012

Hackers en contra del ciberterrorismo

   Hacker da a entender muchos significados que mayoritariamente han de tener cabida a algo malo. Y pues puede ser, ya que muchos tratan defender (sobre todo el mismo hacker) algo indefendible. Entrar a tu sistema y obtener información. es como si un ladrón tratara de entrar a tu casa y evade todos los sistemas de seguridad (cadenas, candados, puertas, etc) y abriera tu caja fuerte y se lleva el motin.

   Sin embargo son un mal necesario. Muchas empresas trabajan con tus datos (dinero, cuentas bancarias, información personal) y no tienen la seguridad necesaria para resguardar algo tan valioso. y es hay donde los ciberterroristas juegan un papel de maldad. Un hacker o un informático dedicado a la seguridad debe estar al tanto de todas las herramientas posibles para vulnerar algún sistema para así evitar ataques.

  Les dejo un vídeo que muestra una de las reuniones mas famosas de hackers "DEFCOM" , donde participan los hackers más grandes del mundo, donde crean concursos de resguardo de dispositivos, donde el FBI se infiltra y recluta personal.




El futuro del Software ... ! Cloud Computing

  Ya no es una novedad saber que muchas aplicaciones que alguna vez fueron de escritorio ahora son aplicaciones web. Un ejemplo claro es la Suit de Office, que ahora la tenemos en la web. Pues esto ha sido un gran avance y un camino a seguir. pues claramente tiene grandes beneficios como lo es la portabilidad y la usabilidad de las aplicaciones.

   Pues también esto ha tenido grandes repercusiones a nivel de las empresas y muchas han tomando la decisión de trasladar sus softwares de escritorio a la nube. ¿Razones? Pues una mayor respuesta a los fallos, menos caídas de sistemas, más usuario utilizando un recurso compartido. En mi empresa ya se esta viendo esto y me alegra mucho, pues trasladaremos todo un programa de administración a códigos html, php, js, css etc. Creo que ya no tendré que hacer actualizaciones de software cada vez que no imprime alguna factura defectuosa... pues el futuro esta todo en la nube, los discos duros en el escritorio ya no existirán por la razón de que son demasiados inseguros al momento de mantener los datos. en cambio tener los documentos en la nube (con todas sus seguridades) estas se respaldan automáticamente se host en host, teniendo la certeza de que si se quema algún servidor el archivo estará en otro servidor resguardado.




viernes, 23 de marzo de 2012

Un poco de Redes y comunicación de datos

   Hace una semana que soy empleado de una empresa, de la cual mi labor como informático es algo completamente nueva para mi... Administrar redes dentro de una oficina y empresa en general. Pues no ha sido fácil tener que enfrentar problemas que nunca habían suscitado en mi diario vivir. Y pues por ese motivo comencé a estudiar redes y a entender el mundo de Internet.

   Pues todo comienza con un estándar de conexión, pues si no existiera dicho estándar una máquina no podría entender el lenguaje de comunicación de la otra. y como hablamos de miles de emisores hacia miles de receptores entonces tenemos que hablar dentro de un mismo idioma (protocolo). Pues el modelo OSI es el que nos permite estandarizar las redes y hacer un "fácil" intercambio de datos,(he colocado fácil en comillas solo porque es fácil para un usuario final )..
  Este modelo de divide en 7 partes y cada una de ellas explica el proceso en que un dato es enviado y es recibido por algún dispositivo.

1.- Física : En ella se encuentran los cables(ethernet, fibra óptica) , los conectores, los voltajes, velocidades de transmisión, señales, etc..

2.- Enlace de Datos : Esta capa es la que provee dar una transferencia confiable. En ella es configurada la ip a la cual será dirigido el documento (direccionamiento lógico).

3.- Red : La red puede tomar una decisión precisa de la mejor ruta a tomar para transferir archivos, selección de rutas.

4.- Transporte : conexiones de extremo a extremo, detección de fallas y establecer circuitos virtuales.

5.- Sesión : comunicación entre host (dispositivos finales).

6.- Presentación : garantizar que los datos recibidos sean legibles y reestructurados.

7.- Aplicación: representa el dato recibido como también el dato enviado.

  Básicamente el dato pasa por todas estas capas, sin embargo el dato debe ser dividido en sub-partes para ser enviado, ya que un archivo puede ser demasiado grande para caber en el ancho de banda o puede acarrear problemas de envío. Al ser dividido se enumeran y se les agrega un encabezado y el conjunto de este se le llama paquete. Pues el encabezado trae una serie de información de como debe ser enviado dicho dato, y como estarán divididos. Todo esto está regido bajo el protocolo TCP/IP.




miércoles, 29 de febrero de 2012

Configurar servidores y administrar sitios

  Hace mucho que no escribo y es por la razón de las vacaciones de verano, pues ya empezó marzo, un mes de alta empleabilidad y de competencias, y es por eso que uno tiene que ponerse en forma con los conocimientos informáticos que se requieren para este mundo.

  Pues han surgido proyectos de los cuales para mi han sido de gran ayuda y he tenido el agrado de estudiar ciertas áreas de la informática que desconocía, aclarando cosas que para mí eran imposibles de entender. Se me propuso configurar un servidor que alojará un sitio y ademas cierta información privilegiada de la empresa de la cual presto servicios. Primero que todo no sabia como empezar, pues me pasaron un servidor físico con Ubuntu server ... alojar la web? donde alojo las bases de datos ? que seguridad les implanto? que pasa si el servidor falla? contrato un vps (servidor virtual en caso de emergencia) ?.

  Instalé Cpanel ( un panel de control para administrar servidores) pues es un programa bastante intuitivo y capaz de hacer todo lo que se necesite para administrar un servidor. pero luego supe que es de pago y que para ubuntu no hay soporte, así que indague más por comandos linux y logre entender la lógica de la terminal. Primero que todo crear los host como usuarios linux y luego alojar su web, luego instalar la base de datos y hacer un repaldo diario automatizado con el código Cron pero antes debe estar  comprimida en un archivo tar. pues ovbiamente velar la seguridad del servidor he instalar ciertos firewalls para linux y control de tráfico. entonces ese pensamiento de algo imposible de hacer se vuelve en un pensamiento "Hooo ahora todo calza como un rompecabezas en la informática".  Ubuntu server ? porque no windows servers? Pues claramente las mayores brechas de seguridad informática son en los sistemas windows, ademas de cobrar por soporte altamente excesivos. Red Hat enterprise o CentOS son los mejores sistemas operativos para servidores, con altos softwares de administración y el soporte que ofrecen es mas accesible. Configurar Cron ! y hacer scripts para automatizar backups de servidor a otro servidor VPN. Pero luego surgen otros problemas como Hackers y es hay donde uno tiene que enfatizar con gran cuidado los permisos de administración en Linux. Mantención ! me gusta esa palabra ya que es la que te aferra al cliente y mantienes ingresos por largo tiempo.  




martes, 14 de febrero de 2012

PirataSlice Nuestro primer videojuego !



  Un pequeño grupo de desarrolladores que dedica su tiempo a la creación de video juegos, cuyo propósito es crear juegos adictivos en formato Flash. Recién estamos comenzando y queremos crecer en este ámbito ya que nos apasiona enormemente. Tenemos un proyecto terminado "PirataSlice" y para nosotros seria un placer que ustedes puedan jugar !. Cualquier comentario, opinión y/o critica es bien recibida por nosotros. Aun estamos en formato beta y necesitamos saber cual es el camino a tomar.

PirataSlice

  El juego consiste en que el jugador debe tocar con el mouse las bolas de cañon para que el pirata(Personaje Principal) pueda destrozarlos sin que caigan, ya que si caen el nivel del mar aumenta hasta llegar a un tope
donde el jugador pierde. También tiene comodines como el reloj cuya función es provocar lentitud en los disparos de los cañones. Consta de 4 niveles de dificultad donde el puntaje es el principal objetivo.

http://games.mochiads.com/c/g/pirataslice_v675424/PirataSlice.swf





miércoles, 25 de enero de 2012

Seguridad para la web - Tips de ayuda !


   Hoy ocurrió una pequeña brecha de seguridad en al empresa a la cual le estoy prestando servicios de consultoría, y después de verificar y reforzar algunas cosas decidí compartir y debatir algunas buenas practicas de seguridad al momento de realizar desarrollos Web.

- Si vas a entregar permisos de escritura o ejecución procura habilitar solo una carpeta de tu servidor para tener mayor control sobre estos archivos. Además limita y valida los tipos y tamaños de archivos con funciones como getimagesize o fileinfo.

- Para los datos delicados siempre fabrica un archivo properties que contenga encriptación de datos

- Entrega los permisos básicos (mínimos) para el usuario de la BD

- Si usas algún CMS cambia los prefijos de las tablas. Los sistemas de gestión de contenido instalan tablas por defecto y al conocer los nombres de estas soy muy vulnerables a ataques de inyección SQL.

- Siempre valida los datos importantes en el servidor. Aun que también realicemos validaciones en el cliente.

- Protege las carpetas que contengan archivos delicados con la combinación htaccess y htpasswd (eso si, asegurare de dejar el archivo htpasswd fuera de la raíz del sitio). A proposito un muy buen tuto de cristalab que muestra la utilización de esta tecnica de encabezados: http://www.cristalab.com/tutoriales/proteger-carpetas-con-.htaccess-y-.htpasswd-c213l/ .

- Si usas plugins, librerías, frameworks, estándares, aplicaciones, etc. procura no manipular los archivos base para extender la funcionalidad de tu aplicación. Recuerda que siempre es necesario actualizar y muchas de las actualizaciones se deben a motivos de seguridad.

- No confíes en los datos que los usuarios envían. Trata siempre cualquier información que provenga desde fuera como un posible dato malicioso.

- Utiliza los nuevos estándares Web. Hay muchos tags y practicas Web que no son las correctas, es por eso que muchos navegadores están lentamente quitando soporte a algunas practicas e incorporando otras.

- Si el sitio contiene mucha información delicada utiliza el protocolo https y permite el acceso a este solo con ssh keys. Si quieres ingresar al sitio o a sus archivos utiliza algún cliente SSH y SFTP.

- Cuando desarrolles intranets intenta que estas en realidad funcionen a nivel interno de la corporación. Si existe alguna excepción utiliza VPN, o aún mejor utiliza Open VPN

- Y aun que suene obvio utiliza sistemas de captcha, quita los meta y utiliza contraseñas con seguridad fuerte.

Se que hay muchas mas buenas practicas de seguridad, pero me aburrí de redactar XD, así que si tienen algún dato rosa no duden en compartirlo.

PDTA: Algunos de los tips que entrego funcionan solo sobre PHP, pero cualquier lenguaje servidor tiene sus propias implementaciones.


Fuente: Felipe Campos Clarke - Ingeniero en Informática y Analista en Sistemas

miércoles, 18 de enero de 2012

Programación ágil - Metodos TDD, El libro - Prologo


   Erase una vez que se era, un lejano país donde vivían dos cerditos, Pablo y Adrián que, además, eran hermanos. Ambos eran los cerditos más listos de la granja y, por eso, el gallo Iván (el gerente de la misma) organizó una reunión en el establo, donde les encargó desarrollar un programa de ordenador para controlar el almacén de piensos. Les explicó qué quería saber en todo momento: cuántos sacos de grano había y quién metía y sacaba sacos de grano del almacén. Para ello sólo tenían un mes pero les advirtió que, en una semana, quería ya ver algo funcionando. Al final de esa primera semana, eliminaría a uno de los dos.

   Adrián, que era el más joven e impulsivo, inmediatamente se puso manos a la obra. "¡No hay tiempo que perder!", decía. Y empezó rápidamente a escribir líneas y líneas de código. Algunas eran de un reciente programa que había ayudado a escribir para la guardería de la vaca Paca. Adrián pensó que no eran muy diferentes un almacén de grano y una guardería. En el primero se guardan sacos y en el segundo, pequeños animalitos. De acuerdo, tenía que retocar algunas cosillas para que aquello le sirviera pero bueno, esto del software va de reutilizar lo que ya funciona, ¿no?.

   Pablo, sin embargo, antes de escribir una sola línea de código comenzó acordando con Iván dos cosas: qué era exactamente lo que podría ver dentro de una semana y cómo sabría que, efectivamente, estaba terminada cada cosa. Iván quería conocer, tan rápido como fuera posible, cuántos sacos de grano había en cada parte del almacén porque sospechaba que, en algunas partes del mismo, se estaban acumulando sacos sin control y se estaban estropeando. Como los sacos entraban y salían constantemente, no podía saber cuántos había y dónde estaban en cada instante, así que acordaron ir contabilizándolos por zonas y apuntando a qué parte iba o de qué parte venía, cada vez que entrara o saliera un saco. Así, en poco tiempo podrían tener una idea clara del uso que se estaba dando a las distintas zonas del almacén.

   Mientras Adrián adelantaba a Pablo escribiendo muchas líneas de código, Pablo escribía primero las pruebas automatizadas. A Adrián eso le parecía una pérdida de tiempo. ¡Sólo tenían una semana para convencer a Iván!
Al final de la primera semana, la demo de Adrián fue espectacular, tenía un control de usuarios muy completo, hizo la demostración desde un móvil y enseñó, además, las posibilidades de un generador de informes muy potente que había desarrollado para otra granja anteriormente. Durante la demostración hubo dos o tres problemillas y tuvo que arrancar de nuevo el programa pero, salvo eso, todo fue genial. La demostración de Pablo fue mucho más modesta, pero cumplió con las expectativas de Iván y el programa no falló en ningún momento. Claro,todo lo que enseñó lo había probado muchísimas veces antes gracias a que había automatizado las pruebas. Pablo hacía TDD, es decir, nunca escribía una línea de código sin antes tener una prueba que le indicara un error. Adrián no podía creer que Pablo hubiera gastado más de la mitad de su tiempo en aquellas pruebas que no hacían más que retrasarle a la hora de escribir las funcionalidades que había pedido Iván. El programa de Adrián tenía muchos botones y muchísimas opciones, probablemente muchas más de las que jamás serían necesarias para lo que había pedido Iván, pero tenía un aspecto "muy profesional".


martes, 17 de enero de 2012

¿Qué es un Cache y cómo funciona? - Eliax.com

   ¿Cuántas veces no han leído especificaciones en un CPU, una memoria, disco duro, o incluso en terminología en navegadores y aplicaciones web, en donde se refieren a un "Cache"?

   Cache es uno de esos términos que para el usuario técnico es una simpleza, pero para la persona común no familiarizada con el término es lo mismo que decir palabras mágicas en una película de Harry Potter. Cosas como que un disco duro tiene 16MB de cache, o que un CPU tiene 2MB de cache es algo que la mayoría de los consumidores no entiende, y por lo general simplemente siguen la regla que mientras mas grande es el cache mejor debe ser lo que uno está comprando (y esa regla en este caso es por lo general una buena regla a seguir, aunque no siempre como veremos).
   Así que veamos qué es este concepto en términos sencillos y fáciles de entender...

   Imagínate que trabajas en una central telefónica de un pequeño pueblo, en donde muchas personas llaman para preguntarte el número telefónico de algunos negocios (restaurantes, cines, tiendas de ropa, bancos, etc), y que lo único que tienes disponible para contestar es una de esas tradicionales guías telefónicas (un libro bastante pesado y de gran espesor).
   Una cosa que notarás en tu empleo, al cabo de poco tiempo, es que las personas tienden a preguntar con bastante frecuencia sobre un grupo en particular de negocios populares, por lo que para hacer tu trabajo mas eficiente, lo que empiezas a hacer es a copiar el número telefónico de esos negocios populares en un cuaderno aparte, organizados alfabéticamente.
   Ese cuaderno tiene quizás solo 4 o 5 páginas (versus las cientos de página de la guía original), pero sientes confianza en que en alrededor del 50% de los casos cada vez que te llaman esos números los puedes encontrar en esta pequeña guía, en donde puedes encontrar los números mas rápidamente.
Pues felicidades porque acabas de crear un cache.

martes, 3 de enero de 2012

Desarrollo Web y su gran gamma de opciones ...

   Desde hace muy un tiempo me he estado integrando en el ámbito de desarrollo web, un área fundamental para cualquier desarrollador. Pues me dí cuenta de la gran cantidad de posibilidades que existen a la hora de programar o diseñar un sitio web. Pues Internet y su estructura cambia de una manera exponencial y estar al tanto de las nuevas tecnologías es crucial, pues si te quedas atrás verás como los demás te quitan el espacio que sembraste.

  Comencé por saber HTML, un lenguaje estándar de la cual es la base para cualquier sitio web visualizado por algún navegador. Sin embargo HTML por si solo es demasiado básico para las demandas que tiene un usuario común, y de hay comienza la gamma de lenguajes que ofrecen ser parte de una "extensión de HTML", que actúan en servidores como también otros que actúan en navegadores...  pues existen muchas opciones ( gratuitas, gpl, para algunos servidores, para algunos navegadores, para sistemas operativos específicos, etc...). Me llamo mucho la atención PHP, un lenguaje que nos ofrece crear dinamismo en las páginas como también ASP.net que nos ofrece un servicio muy parecido pero solo pueden ser ejecutados en servidores con sistemas operativos microsoft y estos son un poco mas costosos que otros que funcionan con Linux.




  Luego de emprender un largo camino de las nuevas tecnologías, emprendí un viaje por la red y comencé a visualizar los distintos códigos de las páginas y sus tecnologías implementadas, descubriendo que los sitios más famosos usan siempre lo último. Google usa mucho jQuery (una librería de javaScript), Facebook está creada con php y tiene tecnologías bastante novedosas de las cuales una de ellas es la de interactuar a través de cliente - servidor ofreciéndonos notificaciones en tiempo real sin refrescar la página, el correo hotmail esta creada en asp. etc... 

  Luego de muchos tutoriales y explicaciones de cosas que muchas veces no nos damos cuenta pero que si nos proporcionan comodidad, indagué sobre los softwares que permiten desarrollar un sitio y pues existen una gran lista... Pues comenzaré por dreamweaver un programa de adobe que nos ofrece una amplio IDE de programación y de actualizaciones de desarrollo... el único problema es que es de pago (pero a eso quien le importa, si tenemos un buen keyGen). otro programas más simples y que gastan menos recursos de procesamiento y otros que nos ofrecen diseñar páginas en vez de programar como Artister. pero uno me llamo mucho la atención y en este me centraré porque lo encontré bastante completo y es WebMatrix, un software gratuito creado por microsoft, este nos proporciona administrarción del sitio( http , ftp, bd, etc..) y programación, pero una programación altamente amplia de la cual incluyen un sin número de lenguajes(propios de microsoft como también otros ampliamente usados (ajax, php, js, css...). además de ofrecer diseños en cms (Worpress, Joomla, Drupal, etc...) y también generar un servidor local para testiar el sitio.