Follow By Email

lunes, 28 de noviembre de 2011

Python - Hello World!


   Nunca está de más aprender idiomas nuevos, aunque sean de programación. Así que he decidido aprender a programar en Python. Y algunos os preguntaréis ¿Que es Python? Pues bien, Python es un lenguaje de programación de alto nivel creado por Guido van Rossum. Es un lenguaje limpio y que favorece a la interpretación rápida del código. También hay que decir que es multiplataforma y que se necesita un intérprete para poder ejecutarlo (lenguaje interpreado).

Y que es lo que debe hacer cualquier programador cuando empieza a adentrarse en un lenguaje de programación... Un Hello World!, aunque he de decir que Python tiene una estructura similar a Java y C.


1 //Programa: HelloWorld.py
2
3
4
5  print "Hello, Python!"




Es muy sencillo, para los que acabáis de entrar en el mundo de la programación, la función print se encarga de mostrar por pantalla aquello que quieras mostrar.

Fuente : http://blog.fangosto.com/

viernes, 25 de noviembre de 2011

¿Qué aprendi hoy? Nº5 - Seguridad informática

  Hace mucho que no escribía mis pensamientos diarios de aprendizaje... pues con esa intención fue creado este blog y creo que lo anduve desvirtuando un poco (solo un poco, aunque twitter me tenia loco con el tema de los seguidores). Pues hoy aprendí muchas cosas como por ejemplo amasar masas de telepizza pero creo que no va al caso especificar con tanto detalle mi aprendizaje si no que explayaré algo más informático.

  Pues hace un tiempo empecé  con la idea de ser un webmaster y crear páginas web con sus respectivos códigos html, php, javascript, etc... y pues lo encontré muy fácil el hecho de realizarlas. pues bendito Dreanweaber, pero me surgió la duda de... y ¿Porque entonces tanto énfasis a la seguridad informática? y es que en esta ciencia todo se puede hacer y si todo se puede todo se puede ver, robar, filtrar, vender, etc.. Escuchando unas charlas del famoso  Chema Alonso, me di cuenta de la realidad de este asunto. Lo que mas me llamo la atención y es que resolvió mis dudas ... ¿Porque tantas actualizaciones en los softwares? y es que cada software tiene vulnabirilidades y es que si no actualizas el Adobe Reader puedes ser hackiado por cualquier personaje Chino que quiera revisar y revender contraseñas. ¿Como consiguen vulnerar un sistema? pues la máquina no sabe que será victima de algo (son máquinas no piensan) y ellas mismas dan las respuestas a quienes insisten en preguntar(bendito True y False y las probabilidades) y es que los programas de desencriptación son diseñados con algoritmos en las cuales mandan consultas generales de las cuales obtienen un 1 o un 0 y luego esa consulta pasa a ser un poco más específica, devolviéndose un 1 o un 0 y luego se transforma en lago más detallado hasta que obtienen la contraseña de una cuenta de algún banco. Todo es posible y es por eso tanta inseguridad en la red. Cosas inimaginables pueden ocurrir en nuestro ordenador sin darnos cuenta. y quizás para alguien normal ni siquiera le afecte, pero en realidad si le afecta indirectamente con correos ofreciéndonos un crédito en la entrada de nuestra casa.


miércoles, 23 de noviembre de 2011

Startup ! : Twisterdev Gamers Developers


 ¿ Qué es Twisterdev?

 Es una es empresa  moderna, innovadora y creativa  especializados en el diseño de soluciones web, programación,  publicidad en Internet y últimamente han dedicado gran parte de sus proyectos a la creación de videojuegos orientados a plataformas vía web y/o móviles.
 ¿Por qué hago referencia a esta empresa? pues bueno esta comenzó gracias a tres pioneros en la área de la informática: Cindy Catalán, Felipe Campos y Frank Kismann; 3 estudiantes de la carrera de Informática con un sueño en común ... escribir líneas de códigos para luego ejecutar un Software entretenido y al alcance de todos. Además nos da el ejemplo de que no porque estamos en latino-américa no podamos realizar este tipo de trabajos. Twister Dev nació en Chile con un presupuesto que alcanzaba solo para un pc y un par de taza de café y sin embargo han logrado salir adelante y emprender en un área desconocida.
  http://www.twisterdev.cl/



domingo, 20 de noviembre de 2011

¿ Microsoft o Licencias Libres ?

  Es claro la división de pensamientos entre programadores o desarrolladores de las distintas plataformas sobre todo cuando son licencias libres (GPL) o licencias copyright. El ambiente hippie brilla en charlas de software libre y los hombres de terno en conferencias techs de microsoft... y la pregunta que siempre aparece : ¿Cuál camino seguir? ¿y es que no hay más opciones? porque esa división? como si habláramos de política de elegir el bando comunista o capitalista. Aveces no tiene sentido esta división en el ámbito de la tecnología ya que lo único que hace es disminuir la velocidad de crecimiento y evolución como seres humanos, pues la tecnología ya es fundamental en todos nosotros. Es un tema extenso, pero siempre está el equilibrio en las cosas y por algo existen las cosas... los softwares open source han tenido una gran  cabida en el mundo pero nunca será el reemplazo de códigos cerrados, muchas veces es necesario esconder ciertos secretos para una mejor competencia.

  Como experiencia creo que lo mejor es ver de los dos mundo lo mejor de ello y no abanderarse en una de ellas. siempre es conocer y desarrollar en distintos ámbitos. Muchas veces se ven hombres linuxieros que critican windows, sin embargo, en algún lado remoto de sus hogares tienen escondido este último sistema operativo para jugar Battlefield  3.

  Entonces siempre vean lo bueno de las cosas y no lo malo, sobretodo en ámbitos de desarrollo. Muchas veces visual estudio te permite desarrollar aplicaciones más rápidas pero no tan a la medida como si fuese netbeans. Muchas veces es mejor navegar en Linux que en Windows ya que la seguridad microsofera le falta bastante aún. mucha veces es mejor montar un servidor con Sistema operativo GPL que un Win server. En ámbitos laborales muchas veces te piden .net que java...



¿Qué es Silverlight?

  Me ha llamado mucho la atención este sistema de programación. Encontre una información bastante interesante y quiero compartirla con ustedes. La fuente proviene de http://rdiazconcha.com/ un blog bastante instructivo en tecnologías de Microsoft.

   Silverlight es una tecnología que nos permite crear Aplicaciones Enriquecidas para Internet o RIA por sus siglas en inglés (Rich Internet Applications). Con Silverlight podemos construir aplicaciones que van desde pequeños componentes dentro de una página Web hasta sofisticadas Aplicaciones de Negocio que estén consumiendo y presentando datos de alguna base de datos, pasando por juegos casuales, reproductores de multimedios, Gadgets para Windows Vista o 7, y un largo etcétera.

   Incluso después de más de 3 años de haber sido liberada al público en general su primera versión, aún existen muchas confusiones y malinterpretaciones acerca de esta tecnología. Primeramente, tenemos que decir que Silverlight es una tecnología multi-navegador, esto es, es capaz de ejecutar adentro de los navegadores más comunes disponibles hoy en día: Internet Explorer, FireFox, Chrome y Safari.

   Por otro lado, Silverlight es una tecnología Multi-Plataforma, esto es, es capaz de ejecutar en los principales Sistemas Operativos disponibles hoy en día: Windows, Mac OSX y Linux (a través de Moonlight, proyecto que es llevado a cabo por la empresa Novell y que es la implementación de Silverlight para ese Sistema Operativo).

   Silverlight, a diferencia de otras tecnologías Web del lado del Servidor (por ejemplo: ASP.NET, PHP, etc.), es una tecnología del lado del Cliente, es decir, todo el cómputo y ejecución de las aplicaciones sucede en el equipo del usuario, tal y como si se tratase de cualquier tipo de aplicación instalada. Esto es una gran ventaja ya que Silverlight puede sacar provecho de las características de procesamiento del hardware en donde está instalado.


jueves, 17 de noviembre de 2011

Funciones, Librerias, Apis, SDKs, motores gráficos ...

Para realizar un video-juego es importante saber el uso de librerias y funciones. partir siempre desde una base como dice el dicho para que inventar denuevo la rueda si ya lo está y nos sirve para soportar algo nuevo. Existen variadas formas de programar un videojuego, existen librerias dedicadas a ello. un ejemplo de esta es la librería Allegro para C++, esta es un poco compleja pero bastante interesante al momento de programar desde lo mas básico.otras libreria bastante interesante es 2dBox , esta simula la naturaleza y la fisica de los cuerpos. pues las librerías son un conjunto de c´digos bastante amigables aunque si quieres algo mas en concreto pues estan las SDK estas son un kit de desarrollo de una cierta aplicación, es generalmente un conjunto de herramientas de desarrollo que le permite a un programador crear aplicaciones para un sistema concreto, por ejemplo ciertos paquetes de software, frameworks, plataformas de hardware, computadoras, videojuegos, sistemas operativos, etc.



Es algo tan sencillo como una interfaz de programación de aplicaciones o API (del inglés application programing interface) creada para permitir el uso de cierto lenguaje de programación, o puede, también, incluir hardware sofisticado para comunicarse con un determinado sistema embebido. Las herramientas más comunes incluyen soporte para la detección de errores de programación como un entorno de desarrollo integrado o IDE (del inglés Integrated Development Environment) y otras utilidades. Los SDK frecuentemente incluyen, también, códigos de ejemplo y notas técnicas de soporte u otra documentación de soporte para ayudar a clarificar ciertos puntos del material de referencia primario.
Otra herramienta aun mas prediseñada es el motor gráfico estan nos provee de una inmensidad de opciones al momento de querer "diseñar" un juego . La funcionalidad básica de un motor es proveer al videojuego de un motor de renderizado para los gráficos 2D y 3D, motor físico o detector de colisiones, sonidos, scripting, animación, inteligencia artificial, redes, streaming, administración de memoria y un escenario gráfico. El proceso de desarrollo de un videojuego puede variar notablemente por reusar o adaptar un mismo motor de videojuego para crear diferentes juego. Unity es un motor gráfico gratuito y bastante amigable para crear un juego 3d .

martes, 15 de noviembre de 2011

Un Ejemplo a seguir ! Angry birds

¿Como un juego tan básico ha llegado a ser el juego mas jugado de los últimos tiempos? 
Será que la simplicidad es lo que esta de moda, pues claramente Angry Birds es un modelo a seguir. La empresa desarolladora Rovio nunca pensó en el éxito que esta traería . Gerentes, Ejecutivos, Estudiantes, niños, Padres, etc. Un juego dedicado para todas las personas (importante hoy en día)









Su jugabilidad se basa en la gravedad y la física, de hecho ni tan novedoso puede ser, Worms tiene una plataforma bastante parecida. Al momento de idear un juego no pienses en crear algo novedoso o nuevo, es bueno basarse en otro ejemplo para tener una idea mas clara. Piensa bien que gráficos usar, que tipo de juego será y su simplicidad ante todo. si piensas en crear un juego tipo Battefield 3 terminarás frustrandote, ya que para la creación de estas se necesita un equipo de trabajo gigantesco, con miles de programadores agregando miles de If y condiciones .




lunes, 14 de noviembre de 2011

No aburrirse al programar !

   Variadas veces pasa que al momento de querer crear una aplicación para que resuelva un determinado problema, resulte tedioso hasta el punto de seleccionar todo el código y suprimirlo. Pues este artículo hablará de 8 tips o concejos que te ayudarán a conseguir tus objetivos como programador y no morir en el intento.

1.- Piensa tu problema : es importante tener ya la solución del problema antes de empezar a codificar. Muchas veces esas soluciones queda guardadas en la mente pero ojo ... la mente del programador es volátil. Así que siempre ten en cuenta tener un cuaderno con los garabatos de tu solución, aunque sean garabatos feos e inentendibles pues lo importante es que tu te entiendas.

2.- Realizar un diagrama de UML o un diagrama de clases: muchas veces resulta un trabajo bastante extra el realizar estos diagramas, pero sirven bastante aunque en las asignaturas se vea lo contrario... un buen gráfico con todas tus clases a usar sirve bastante, para que al momento de programar tus códigos fluyan de una forma inimaginable  .

3.- Proponerse otros lenguajes: pues esto quizás suene un poco extraño, pues el artículo consta de no aburrirse al programar y bueno buscar otros lenguajes es bastante aconsejable. Es como cuando iba al colegio y cambiaba la ruta del camino para evitar monotonía. Con los lenguajes suele pasar eso y pues también te ayuda muchísimo para conocer otras alternativas. Pero obviamente debes interiorizarte un poco con el lenguaje ya que también es bastante frustrante que las sentencias no te funcionen.

4.- Compartir el código con tu mejor amigo: es bueno que alguien te escuche lo que quieras expresar en una linea de código exceptuando la máquina claro... 

5.- Tener un café bien cargado y un asiento acogedor : es bastante obvio pero muchas veces no somos capaces de tener comodidad al momento de trabajar, siempre es culpa del asiento y pues un programador lleva 12 horas sentado en el día y claramente el trasero queda agotado.


Páginas dinámicas y PHP !


  Una página dinámica implica la interacción entre el usuario y un script desarrollado en un lenguaje que permita el dinamismo, es decir, que permita la interacción entre el usuario y un Servidor Web y un Servidor de Base de Datos (en caso de existir uno). Es decir, que el usuario haga una petición al servidor Web, éste se comunica con el servidor de base de datos, extrae la información de la base de datos y presenta la información en la pantalla del usuario.

  Un ejemplo bastante claro, es la forma en la que nos inscribimos en algún servicio de correo electrónico, en el que proporcionamos nuestro nombre, apellido, un nombre para el correo de la forma minombre@miproveedor.com y una palabra clave. Cuando, por ejemplo, al día siguiente, vamos a ver nuestros correos electrónicos, basta con escribir nuestro nombre de usuario y palabra de acceso para que accesemos a nuestra cuenta. Todo lo anterior, es gracias a una página dinámica, que solicita los datos al servidor Web que a su vez, extra los datos de nuestra cuenta del Servidor de Base de Datos.




                                                  LO QUE PODEMOS HACER CON PHP

  Lo que se puede hacer con PHP es básicamente cualquier cosa que se pueda hacer con un script CGI, es decir, trabajo con formularios, como su procesamiento y manejo dinámico; generar páginas con contenido dinámico (de nuevo, el contenido dinámico es el que le permite a la página la interacción con el usuario); mandar o recibir cookies, etc.

  Una característica de PHP, es la capacidad de trabajar con una gran cantidad de bases de datos, lo cual lo hace un programa verdaderamente potente, siendo que, por ejemplo, si lo "juntamos" con MySQL (un Gestor de Bases de Datos con licencia GNU), nuestros recursos salen literalmente "GRATIS"

Fuente www.aulafacil.com/php

jueves, 10 de noviembre de 2011

Diferentes opciones a la hora de programar juegos

Cuando se inicia en este rubro de la programación de juegos, es complicado saber cuál es el camino correcto para desarrollar, que lenguaje usar, que framework que Api manejar ... etc. Sin duda existen muchas opciones pero cada una tiene un fin específico.
   Primero que todo debes ya tener definido tu juego y luego pensar cuantos recursos va a usar y ha que plataformas irá dirigido. Este artículo dará a conocer ciertas pistas para ver cuál es la mejor opción al momento de crear un Game.



   -Iniciadores del mundo de los videojuegos

Existe un programa llamado Game-Marker que permite crear juegos de manera bastante entretenida y didáctica, comienzas a entender ciertos conceptos básicos que tienes que tener en cuenta al momento de crear un juego. Sin embargo este programa esta ya muy estructurado y te delimita a hacer ciertas cosas. Si no tienes conocimientos en programación recomiendo inicializarte en GM pero no que te dediques a él .

   - Juegos 3d o 2d con recursos elevados.

Claramente hacer juegos 3d es el sueño para muchos, sin embargo el esfuerzo que este conyeva nos termina frustrando. Pero hoy en día existen herramientas bastante interactivas para un desarrollador. Unity un motor gráfico que te permite hacer lo que se te antoje sin tener que profuncizar mucho en la programación u Ogre otro motor freeware. Sin embargo si quiere empesar más de 0 recomiendo XNA game developer, es un framework basado en la Api Directx . el unico problema de este metodo de desarrollo es que es poco portable ,ya que solamente puede ser ejecutado en plataformas Windows.

Engines, Librerías para crear Juegos en Android

Android claramente es un medio para poder desarrollar juegos y poder distribuirlos fácilmente a tráves de Web Stores de Google. Ademas existe gran material para fácilitar la programación como tambien información y tutoriales de esta. Este artículo dará a conocer ciertas herramientas para poder comenzar un proyecto para Android. Si yá haz hecho aplicaciones en este Sistema operativo no te costará entender el proceso de creación . pero si no sabes nada pues lo primero que tienes que hacer es bajar el SDK de Android (el Kit de desarollo), luego configurar tu IDE  (entorno de programación) para crear tu aplicaciones. Es recomendable usar como IDE "Eclipse" ya que muchos tutoriales de basan en él pero también tienes otras alternativas como NetBeans.

Como dije anteriormente existe demasiadas herramientas para el desarrollo de juegos en Android. A continuación mostraré algunos links de Engines. Todos estos tienen un enfoque 2D la mayoria trabaja con Java nativamente, pero otros tienen soporte hasta para Phyton.

miércoles, 9 de noviembre de 2011

El Bendito y bien ponderado FOR !

  Pues nunca he leído algo referido con los bucles o sentencias de los lenguajes, solo son explicados como si fueran tan simples. Y es por eso que quiero darle un homenaje al granb bucle FOR, pero que sentencia más utilizada, más salvadora !!. pues si ella no podriamos verificar datos, recorrer arreglos, organizar una estructura, etc. ¿Y es que nunca investigamos quién lo creó? lamentablemente no hay un registro de ello, siendo un blucle creado por algún laboratios de desarrollo de los años 60.
  Es tanto el provecho que se le hace a este bucle de control, que hoy en día se ha logrado animar en Jquery, Administrar una página en PHP, o simplemente consultar condicionalmente un registro de una base de datos. 
  Bendito seas FOR y espero que tu vida sea larga y productiva ! y es que no te comparas ni con while, ni do ... podría ser con If pero ese es otro tema ! .

int main()
{
  int vector[10], i;
  for(i = 0; i < 10; i++)
  {
   vector[i] = i;
  }
}

martes, 8 de noviembre de 2011

Game: No volver a inventar la rueda sino que seguir innovando

  
Cuando se inicia el sueño de crear un juego, surge siempre las ganas de crear uno desde 0. Por lo menos ese fue mi caso... claramente no fue un error tener ese ideal desde un principio ya que me sirvió bastante para enteder la complejidad de tiene el desarrollo de este. Partí con Allegro una librería de c++ pero los dolores de cabeza que me dió lo tuve que dejar. De hecho nunca pude entender la filosofía de Allegro, luego me cambie a SDL esta ya es un poco más interactiva con el programador, se pueden cargar imagenes externas, reacciones por teclado, Sprites etc... Sin embargo requiere un gran esfuerzo realizar un juego en dicha librería como por ejemplo mover un personaje. Desde entonces empezó mi frustación al no poder realizar un juego y ver la complejidad que tiene poder realizar uno desde 0.


1011010101010101
0101010101010101           = 
1010101010101010





 Entonces mi pensamiento empezó a tener un vuelco en mi vida de programador y entender que existen muchas herramientas que te permiten ahorrar tiempo en el desarrollo de videojuegos. Como dice el título de este artículo "No volver a inventar la rueda sino seguir innovando", existen muchos métodos para crear juegos y muchos recursos que te permiten facilitar la vida al momento de programar pero si bien es cierto es importante saber la filosofia del desarrollo de un video-juego.

 Si queremos estar a la par del mercado debemos saber utilizar las herramientas que fueron hechas con la intención de ayudar este arte. Desde ese entonces conocí JAVA y su plataforma J2ME y me interesó bastante el desarrollo de juegos en este lenguaje. ya que me permitía portabilidad y el uso de pocos recursos me obligaba a realizar algo simple pero entretenido. este lenguaje ha crecido bastante y muchos sistemas operativos móviles requieren ese tipo de portabilidad que nos ofrece JAVA, ademas hay un sin fin de material y herramientas para el desarrollo de juegos en esta plataforma como también Engines que te facilitan la vida en gráficos, físicas, etc.. (AndEngine, Corona, Coco2d)

ArraysBlog presente en las redes sociales !

    Pues siempre me ha gustado escribir mis pensamientos y poder ver si alguien se interesa con mis escritos, pero no es cosa de escribir en un papel para depues colgarlo en un mural de la universidad. Hoy en día la tecnología, internet nos brinda una gran oportunidad para quienes quieran exponer sus pensamientos y ser visto se forma rápida y masiva. Por los blogs han sido de gran ayuda, pero tampoco para la competencia de escritos es bueno conformarse con eso, también están las redes sociales que nos permiten difundir este material ! y es por eso que el grupo ArrasysBlog está presente en las redes sociales más usadas por los usuarios latinos. Gracias a esto la cantidad de visitas ha aumentado significativamente siendo de gran satifacción para el que escribir saber que alguien está leyendo sus ideas y poder compartir experiencias. 


  Un cordiar saludo a todos los receptores de este Blog, que promete ser una ayuda para los futuros Geekers!.


jueves, 3 de noviembre de 2011

MySql - Introduccion a las Bases de Datos

  
Sean bienvenidos y bienvenidas al mundo de los motores de las bases de datos, uno de los pilares de las ciencias informáticas, ¿por qué?, pues porque en la gran mayoría de las ocasiones, los datos que utilizamos o insertamos o modificamos o borramos, necesitan estar "guardados" en algún lugar. ¿Un ejemplo?, claro, los juegos de vídeo,... ¿no lo creen?, cómo creen entonces que guardan las puntuaciones más altas, los nombres de los jugadores, etc., etc.
Las bases de datos están por todos lados a nivel informático, están cuando pasan un código de barra por la lectora de códigos en el supermercado; están en nuestros carnés de empleado que retienen nuestra información gracias a un número de empleado o un código de barra; están en internet cuando entramos a comprar algo en línea; están en el departamento de tránsito cuando debemos pagar una multa (dolor, dolor, muchísimo dolor).
 Uno de los motores de bases de datos más famosos, MySQL. Una de las razones de dicha fama, es el hecho de que es de código abierto bajo licencia GNU. Dicho en palabras mortales: es GRATIS (de fondo deben escucharse aplausos y gritos de aleluya, por favor)
MySQL es un software creado por MySQL AB y es un software multiusuario, multihilos y un servidor SQL (Structured Query Language). SQL es el lenguaje estándar utilizado para manejar las bases de datos.
  
En un principio no existían las bases de datos relacionales existín dos modelos arcaicos de bases de datos: el jerárquico y el de redes, de los cuales el de redes era el que más se adaptaba a las necesidades reales de almacenamiento y clasificación.




Base de Datos - Modelo entidad-relación y sus conceptos básicos

   Existen 3 nociones básicas para modelar una BD
- Conjunto de entidades
- Conjunto de relaciones
- Atributos

   Una entidad puede ser un objeto concreto como abstracto. Un objeto en programación hace referencia a alguna cosa distinguible a los demás. Por ejemplo una persona se distingue de otra por su rut o id. También pueden ser objetos abstractos como cuentas de algún banco.
   Un conjunto de entidades es un conjunto de entidades del mismo tipo, comparten las mismas propiedades o atributos. Un ejemplo puede ser un BD de un banco con una entidad persona y esta deriva otras entidades que se relacionan entre sí como un cliente y empleado.
   Los atributos de una entidad son las características de esta. Un ejemplo en cliente puede ser nombre, apellido, calle, rut, etc... Generalmente las entidades deben tener un atributo único para que esta sea identificada rápidamente como un Id, rut, codigo de barra...
   Un dominio es la información que contiene un atributo y puede tener ciertas restricciones como por ejemplo: debe ser un valor entero, debe ser un texto con una cierta cantidad de caracteres. Existen atributos simples y compuestos, de los ejemplos dados solo fueron simples, los cuales no están divididos en sub-partes. En cambio los compuestos pueden contener 2 o mas partes, ejemplo, nombre-cliente puede estar dividido en primer-nombre, segundo-nombre, apellido-paterno. apellido-materno. Además existen atributos mono-valorados y multi-valorados, los multi-valorados puede ser un numero-teléfono, la cual la entidad cliente puede tener muchos números de teléfono. Un atributo por defecto toma un valor nulo, osea un valor desconocido, eso significa que no es obligación llenar ese atributo, aunque existen formas de que ciertos atributos sean no nulos como pueden ser las llaves primarias.