Follow By Email

viernes, 28 de octubre de 2011

Unix, GNU/Linux sistemas operativos !

 Claramente Unix es el cominezo de todo lo que es GNU/Linux...Ken Thompson y Dennis Ritchie los creadores de dicho sistema fueron reales pioneros en la computación e informática. Este proyecto se encontraba estancado y desactualizado. Unix tenía muchas ventajas que no podian quedarse en el olvido, como su portabilidad, su algoritomo de procesamiento, el hecho de que sea multiusuario, multiprocesamiento y multitarea. esas virtudes tenía que dar flote de hecho muchos programadores sabían de su potencial. El unico problema era su licencia de software propietario. Es hay cuando Richard Stallman decide reacer Unix y crear un sistema basado en él pero de código totalmente abierto. Gracias a eso támbien se produce la portabilidad de GNU y la facíl mezcla con Linux, ya que este núcleo también era basado en Unix. 
  Hoy en día la gran mayoria de los sistemas operativos se basan en Unix, la complejidad de crear un S.O desde 0 es casi imposible, es impresionante saber que un proyecto creado en 1969 es aun un pilar fundamental para los nuevos sistemas informáticos.  GNU/Linux fue el éxito de este proyecto y el porque ?







Es sistema operativo a la medida. Claramente GNU/Linux en el mundo empresarial es su fuerte, sobre todo en servidores. ¿Por qué ocurre? pues básicamente es por la capacidad de modificar y arreglar el S.O para una determinada acción y generalmente es por la seguridad que nos brinda el poder crear uno mismo un sistema seguro. Muchos piensan que es usado mucho en servidores porque es gratis y claramente no es así. Existe una gran gamma de versiones GNU/Linux y cada una tiene algo que lo específica. Por ejemplo Fedora es un S.O más enfocado al usuario de nivel básico de un computador personal, teniendo una interfaz gráfica basada en Gnome 3, ademas brindan bastante ayuda por una gran comunidad. , otro bastante interesante es IP-cop que es una distribución que se basa en ser un Firewalls (corta-fuegos) con una interfaz gráfica bastante simple. Otra es Ubuntu Servers una distribución con propósitos dedicados a servidores, también otras distribuciones que se han ido por el lado de dispositivos móviles como Android . Exite una variedad de distribuciones que ademas nos brindan de su código como también de Soporte para el uso adecuado. Esta más que claro que si quieres montar una empresa técnologica debes ahorrar, asegurar la estabilidad de tus archivos y tener el soporte de las aplicaciones que usarás.

miércoles, 26 de octubre de 2011

Programación orientada a objeto

   Existen muchos artículos que hablan de este tema, un tema no menor para cualquier programador. Sin embargo siempre estos artículos hablan de lo mismo. Como estudiante veo mi alrededor y visualizo como muchos de mis pares no logran entender este concepto. Pues muchas veces es culpa de la poca práctica de programar y de no saber ciertas reglas básicas, como el uso de una función o el simple uso del for!.

   La programación orientada a objetos dio un gran salto a la creación de softwares más complejos. Este consta de 3 conceptos básicos. Herencia, polimorfismo, encapsulamiento. Pero para entender de que estamos hablando es necesario saber que son las clases. Una clase es algo que define un objeto, en ellas están las características (atributos) y las acciones(métodos) de estos. generalmente una clase debe tener un construtor la cual es una función que inicializa un objeto con determinados datos. Herencia quiere decir que una clase puede heredar todos los atributos a otras clases llamadas subclases, un ejemplo, pues la clase mamífero hereda todo hacia la clase león. Polimorfismo es muy parecido a la sobrecarga, una sobrecarga es un conjunto de funciones del mismo nombre pero tienen un proceso distinto y según los parámetros que se envíen actuará la función correspondiente. Polimorfismo es básicamente lo mismo pero a nivel de clases y métodos. Encapsulamiento quiere decir que todo lo que definimos en una clase solo podrá modificarse llamando a esa clase, brindando seguridad a la hora de modificar ciertos códigos. Pues la POO nos permite hacer muchas cosas y es entretenido cuando ya entiendes las capacidades de esta. Para comenzar con este tipo de programación es recomendable el lenguaje Java ya que existe mucho material sobre este. Pues esta es una definición demasiada generalizada sobre POO y hay que entender que POO no es un lenguaje o una estructura de lenguaje, si no mas bien una filosofía de pensamiento de programación.



Edad de la escritura a la era digital...

   De esas lluvias de ideas que me vienen a la cabeza, hoy leyendo un libro de historia y mezclando mis ideas informáticas me decidí por crear este artículo basado un poco en el documental de "La era oscura de la humanidad". Bueno si bien es cierto nuestras historia comienza cuando se empezaron a crear los primeros registros de "hechos", como dibujos en las rocas. Luego se crearon símbolos que eran figuras con un determinado significado... y luego las letras, una de las invenciones mas importantes del ser humano, viéndose simples pero claramente son nuestra columna vertebral de nuestros conocimientos. Hoy en día esta ocurriendo algo que nunca pasó antes y es guardar toda nuestra información en máquinas. pues las máquinas nos permiten guardar demasiada información de tal manera que ahorramos una gran cantidad de espacio. un ejemplo claro es la biblioteca nacional de Chile, un espacio de 60x60 metros de superficie, toda la información contenida necesita de una gran cantidad de espacio. Pero hoy en día toda esa información puede ser guardada en un disco duro de 6x6 centímetros. Pues es claro la ventaja de esta, y claramente nos permite ahorrar material, espacio y muchas otras cosas. Pero ¿ es realmente seguro este método? hubo un caso de cierto país que decidió guardar todos los datos de las personas en sistemas digitales y luego de 10 años se quiso buscar los registros de una entidad determinada pero ocurrió que los sistemas que se estaban utilizando actualmente no eran compatibles con los de hace 10 años, quedando como basura lo que un día fueron los registros de las personas.
 A lo que voy es que nuestra tecnología avanza de manera ex potencial obsolentando sistemas que un día fueron importantes. ¿Un disket puede provarlo en un notebook? claramente no y es que los disket quedaron obsoletos y ¿que pasó con la información que contenían dichos disketes? ... pues se dice que esta era será una era oscura para el futuro ya que nosotros registramos todo en sistemas digitales que cambian día tras día. Por algo se ha visto este tema y se han tomado ciertas medidas. Unas de las opciones más interesantes fue registrar todo en una piedra, escribiendo todo microscópicamente y lo único que se necesita para leer lo que contiene la piedra es un microscopio. Otros métodos mas digitalizados son el de crear discos duros eternos y eso es algo que ya se está logrando hacer.



sábado, 22 de octubre de 2011

Algoritmos de procesamiento

   Existen variados tipos de algoritmos de procesamiento que han sido optados por diferentes sistemas operativos y quizás eso es lo que marca la diferencia entre una de otras...

 - Panificación de servicio por orden de llegada (FCFS) : 
   Es el algoritmo más sencillo. Consiste en que el primer proceso que llega a la CPU será el primero en recibirla y ejecutarse completamente, procesando los procesos por orden de llegada . Es básicamente lo mismo que un sistema FIFO, el problema de este algoritmo es que el tiempo de espera promedio es muy largo.
- SJF no expulsivo
   Este algoritmo consiste en procesar el proceso más pequeño y considerando el orden de llagada. pero el proceso no puede ser expulsado de la CPU hasta que este terminado.
Pues estos dos algoritmos de procesamiento han quedado obsoletos ya que el tiempo de espera que tenían era bastante largo en comparación a los otros algoritmos.
- SJF expulsivo(SRTF)
   El proceso que necesite menos cantidad de procesamiento es el que se ejecuta. Pero si mientras está en ejecución llega un proceso que necesite menos ráfagas de CPU es expulsado y queda en espera y el roceso que necesite menos cantidad de proceso de ejecuta.
Este algoritmo es usado en los sistemas operativo Windows de Microsoft.





viernes, 21 de octubre de 2011

Ideas que cambiaron el mundo ...

Encontré unos links bastante interesantes de como explican ciertoss aparatos en tan poco tiempo en tan poco tiempo quedando grabado en mi mente todo lo que vi.


Memorias Portátiles.



¿Qué aprendí hoy? Nº 4


 Hackers, personajes informáticos con grandes capacidades de vulnerar algún sistema computacional... siempre me he preguntado como uno puede ser un hacker y pues aun no tengo esa respuesta... digamos que estudiar ing. en informática solo te dicen como combatirlos. ¿Porque existen estos personajes? pues por la intención de vulnerar todo lo que nos propone algún sistema. Una historia bastante interesante que la oí en una charla de seguridad Linux decía que una empresa norteamericana habia gastando millones y millones para crear un sistema totalmente seguro y contrató a un hacker bastante conocido y le propuso vulnerar este sistema "seguro" y el les dijo que se esperaran una semana y ese sistema iva a tener borrado su base de datos de toda la empresa. pues la empresa estaba segura que eso no podría pasar ya que contrato a los mejores informáticos para dicha seguridad, y bueno pasaron los días y el hacker entro una de las oficinas de la empresa y dejo caer un CD con un nombre en la caratula que decía" contabilidades de producción" y luego se fue... luego un trabajador recogió ese CD y lo colocó en uno de los computadores de la empresa y vio que había un archivo excel y lo ejecuto, bueno ese archivo no era un excel sino que un ejecutable que permitió abrir una ventana en la red de seguridad, luego este hacker pudo entrar y pudo extraer toda la información de la empresa. Pues a lo que voy es que hay muchos aspectos en la seguridad informática que se deben considerar. No solo hay un hacker sino que hay miles atacando un sistema. Muchas veces son niños y a ellos hay que tenerles el mayor de los cuidados.



miércoles, 19 de octubre de 2011

Base de datos ... !

   Pues hoy le tomé el peso a las bases de datos, un tema que no me llamaba la atención hasta que me pregunte que pasaría si de un día para otro dejaran de existir las bases de datos... pues es como si se apagase la luz y dejara una estancada una nación entera. Nosotros vivimos con las bases de datos sin darnos cuentas, en una cuenta de banco, en una ficha médica, en el saldo de un celular, en la compra de una caja de leche, etc. En el mundo de la informática es esencial saber como funciona una base de datos y el tipo de relaciones que tendrán.  Es maravilloso saber las tecnologías que nos permiten crear, administrar una base de datos, los distintos motores que se utilizan y los lenguajes que se aplican. Yo aun no he tenido contacto con bases de datos y espero tenerlas pronto, solo creé una para una página Joomla  pero este cms crea automáticamente la base de datos con sus respectiva estructura. Otro tema no menor es donde usar una base de datos, mejor dicho donde almacenar la información de la BD, pues puede guardarse en cualquier computador, pero claramente una BD necesita guardar una cantidad estratoférica de información y para eso se usan mucho los servidores, que son mega-computadoras con capacidades enormes de proceso y memoria. Pues para hacer un sistema seguro es necesario tener que respaldar la información en caso de fallos y por eso se toma la analogía de usar 3 servidores que cumplan la misma función y que guarden la misma información y que funcionen un 33% para que las tres complementen el 100% y en el caso que una falle el S.O proporcione a las restantes un 50% de funcionalidad, pues a eso se le llama Backup (copia de seguridad)en las empresas grandes se usan las granjas de servidores para guardar información, muchas empresas informáticas ofrecen servicios de almacenaje de información en servidores pero hay que saber que  obviamente el hosting que ofrecen no se debe guardar una base de datos de una empresa en particular por temas de seguridad.




¿Qué aprendí hoy? Nº 3

   Pues hoy fue otro día de presentaciones y charlas por parte de mi curso. La primera fue sobre particiones de discos, pues una partición es básicamente una división del disco duro en varias partes cosa que no se mezclen los archivos, existen las físicas y lógicas. en las una partición física solo de puede dividir en 4 partes y en ellas pueden estar un sistema operativo y todo tipo de archivos. las lógicas pueden ser muchas y en ellas solo pueden estar ciertos archivos ya que no se puede colocar un S.O. La otra charla que fue la más interesante y fue la de los tipos de procesadores y su arquitectura de procesos. Existen 2 grandes arquitecturas RISC y CISC. la CISC es la más usada en el presente y en ella contiene una serie de instrucciones complejas para que pueda procesar de forma fácil. la RISC contiene un pequeño grupo de instrucciones y la memoria Caché se encarga de proporcionarle más instrucciones. Se piensa de RISC es la mejor. pero aun no ha sido utilizada masiva mente. El procesador creado por Intel "i7" contiene ambas arquitecturas denominándolo Híbrido.  Pues hubieron más presentaciones pero fueron bastante aburridas porque se notó que no hubo dedicación. Otra cosa que aprendí en otra clase, en java, fue porque no usar constructores al momento de cambiar valores al objeto y porque usar los get y los set. Ademas estoy aprendiendo a programar con ventanas, ya que programar a través de una consola es un poco desmotivante.



Profesionales a medias ... ¿Un problema nacional?

   Me ha tocado estar en la situación  de ser estudiante para luego ser un profesional. Siempre pensé que un profesional es un experto en un área determinada, alguien que utilice su intelecto para resolver problemas. Me explico, no quiere decir que un profesional sea más inteligente que alguien común, el profesional solo tuvo la oportunidad de estudiar y sacarle provecho a lo que estudió. Sin embargo ya nisiquiera sé que pensar con los "profesionales" de hoy en día... muchos estudian para sustentarse sin un arduo trabajo y eso conlleva a que no exista una dedicación. Veo a mis compañeros de Universidad (claramente no es una universidad muy bien catalogada) y cada día me decepciono más de ellos (pues a la mayoría no a todos). Un día fui a un evento de Informática para estudiantes y nadie de toda la universidad fue... y llegando allá solo habían 30 personas a nivel nacional que participaron de un evento tan importante en el área de la informática. Da mucho que pensar de la calidad de Profesionales que se forma en Chile, sin dedicación a lo que hacen, sin preparación a una visión hacia el futuro... Pues muchas veces pienso que el desarrollo de la nación ha sido estancada por la educación que existe y por el sistema que se ha implantado. Por lo mismo difícil ver un Steve Jobs en Chile o latinoamérica. Los profesionales ya ni siquiera son expertos en lo que saben y eso es lamentable. Pues esto es un problema de cada individuo pero que repercute a nivel nacional. Pero esto es solo en el área de carreras tipo científicas porque la verdad he visto la comparación con carreras humanistas y es totalmente diferente ya que estos últimos son dedicados a lo que hacen y claramente es por la filosofía que tienen. De hecho siempre he pensado que un humanista es mucho mas amplio he incluso mas capaz en muchos ámbitos.
 ¿Qué solución?
Pues siempre he pensado que los padres son los principales exponentes a la hora de motivar a sus hijos a elegir una carrera. Deben tomarle atención a sus capacidades y a sus talentos y de pequeño inculcarle lo que les gusta. También las Universidades deben dedicarle mas a sus estudiantes, no solamente brindando enseñanza a los ramos especificados si no que crear una comunidad a nivel universitario donde cada uno pueda complementar algo para ser mejores.


jueves, 13 de octubre de 2011

¿Qué aprendí hoy? Nº 2

   Bueno hoy me levante estudiando la presentación de GNU/Linux, pues suena bastante estudioso decir que me levante para eso, pues la verdad si fue así pero me levante tipo 2 pm y tenía la obligación de hacerlo... Llegando a la Universidad me dedique a escuchar las demás presentaciones. La primera trataba sobre tarjetas de vídeos, la verdad un tema un poco tedioso a mi parecer ya que el soporte no es lo mio. Sin embargo aprendí de cosas bastante interesantes sobre esta. como por ejemplo para medir las capacidades de una tarjeta gráfica es necesario saber la cantidad de procesos que puede realizar mas que su ram. a que voy con esto, pues el mercado muchas veces miente diciendo que una tarjeta de video de 2 gb es mejor que una de 512 mb siendo que puede ser al revés ya que lo que importa es la frecuencia que utiliza para realizar los procesos gráficos. La otra presentación me gusto mucho porque va muy de la mano con mi presentación. Esta constaba de la filosofía de software libre, dieron ejemplos bastante interesantes como el cultivo de frutillas. pues un cultivo puede ser comprado por un hombre con capital y le paga a los obreros para trabajar la tierra, y la mayos parte de las ganancias se las lleva el hombre, pero que pasaría si hombre compra solo un pedazo y luego otro hombre compra otro pedazo y cultivan los dos y luego se unen mas personas y crean un cultivo con la ayuda de todos, pues todo aportarían con algo y todos se llevaría un porcentaje de las ganancias más equitativa. las filosofías open source u también software libre han dado gran cabida al mundo actual, superando muchas veces a softwares de código cerrado con licencias pagadas. bueno luego tuve presentar mi exposición y me fue bastante bien. Fue un día bastante provechoso pero aun no terminaba.




Exposición de GNU/Linux - Tema a hablar...


   Me centraré en hablar en los aspectos más generales de este proyecto, hablando de su historia, los creadores y de la repercución que provocado en el mundo actual esta "base de sistema operativo".  ¿Qué es GNU? su etimología quiere decir GNU No es Unix, sin embargo, esta basado completamente en él, ya que es una copia pero trastalada a código abierto. Este proyecto de sistema operativo fue creado en 1983 por Richard Stallman (programador estadounidense, fundador y líder precursor del software libre). en 1990 el proyecto ya tenía un editor de texto llamado Emacs, un compilador de C llamado GCC y un estandar enorme de librerías basadas en Unix, el único problema era su núcleo o Kernel. Se llamaba Hurd el cual era demasiado complejo para ser soportados en hardwares de ese tiempo. El proyecto quedó estancado pero una parte del equipo decide utilizar otro núcleo también basado en software libre llamado Linux.

  Distribuciones GNU/Linux

   Es una recopilación de ficheros y softwares con el fin de hacer un sistema operativo totalmente funcional y hecho con la intención de cumplir ciertas tareas específicas, claramente basadas en GNU/Linux y con licencias Open Source.   Existen muchas y variadas distribuciones creadas por diferentes empresas y comunidades con precios bastante accesibles y hasta gratuitos. Cada una está dedicada con un fin específico como pueden ser enfocadas a empresas, usuarios normales o servidores. De hecho el 80% de los servidores del mundo funcionan con un sistema GNU/Linux eso quiere decir que nosotros día a día interactuamos con GNU/Linux. Google, Facebook están en estos servidores... Hoy en dia también este sistema se ha enfocado en el usuario común y corriente y el ejemplo mas claro es Ubuntu.



miércoles, 12 de octubre de 2011

Que aprendí hoy ? Nº 1

Solo haré un artículo del cual me recordará todas las cosas que aprendi hoy. Pues me levante a las 7 y trate de estudiar el sistema Joomla y su instalación, aunque fue todo un fracaso :/ , pues mi laptop tiene sistema operativo Ubuntu y me trajo bastantes problemas para crear un servidor local con soporte a php , Mysql y apache con Xampp... asique termine bastante resignado el no poder utilizar el gestor de administración Joomla, luego me dieron esos dotes de Programador y quise hacer un programa que me resolviera ecuaciones compuestas o EQN, pero me senti frustrado el nisiquiera resolver una ecuación simple en una aplicación... Pues básicamente este dia fue bastante frustrante como estudiante, ademas el profesor de Base de Datos pidió que lleváramos la laptop con 80 gb de espacio libre para intalar SQLserver ¬¬ ! una verguenza ! pues una tengo Ubuntu y otra pss ese afan de querer enseñar a utilizar productor Microsoft ¬¬ !!! . pero en fin Instale Win 7 y me acorde de Xampp y lo instale y pude crear un servidor local para ser visualizado en Joomla y eso me trajo bastante alegria ya que pude crear la base de datos , agregar una plantilla gratuita y administrar mi página web fácilmente . Pues si pude sacar un conclusión hoy día y es que aun falta para reemplazar a Microsoft y su sistema operativo , aun se dependen muchas cosas de él y es lamentable porque eso produce una devolucion a la informática.

Una gran gamma de especialidad ... ¿Cuál elegir?

   En el momento que decidí estudiar Ing. en informática tenía claro que iba a tener que estar con un computador encima toda mi vida ... ¿pero que realmente es lo que iba hacer en él? creo que un problema que todos tienen el primer año, ya que nadie te guía a decidir lo que realmente harás , es una gamma muy grande es como un doctor con todas sus distintas especialidades. De hecho muchos ingresan a estudiar con las ganas de desarmar un computador, ver circuitos, o arreglarlo en caso de algún problema. Pero ese es el peor error de todos... ya que la informática es una ciencia que estudia la automatización de las cosas y tiene bastante poca relación con el área de soporte de computadores. ya teniendo eso claro surge la pregunta ¿a qué te dedicarás? pues existen programadores , analistas, administradores de base de datos, webmaster, etc... existen muchas especialidades en las que "tienes" que ser un maestro para alguna de ellas.
Pero ¿Cuales son las mejores opciones?...
pues siempre hay que estar viendo cuales tienen mas empleabilidad y ademas cual es la que mas te guste.

  Hoy en día la programación web es la que tiene mayor importancia, ya que está de sierta forma reemplazando lo que algún día fueron los softwares o aplicaciones de escritorio. Ya no solo basta con dominar HTML , pues PHP es un área fundamental para hacer páginas dinámicas...
pero si lo vez más por el lado del dinero, Base de datos  es una buena opción sin embargo tiene muchas responsabilidades y ademas es bastante tedioso.
  Seguridad informática también es un área importante y sustentable, para eso tienes que tener un buen manejo de servidores , sistemas operativos , la escencia Hacker !.

                       

martes, 11 de octubre de 2011

20 tips para ser un mejor programador


1. Estudia, estudia y estudia
El estudiar nos permite perfeccionarnos, cuanto mas estudiemos mas oportunidades de programar mejor tendremos, no solamente estoy hablando de universidades, ni tampoco de cursos, hoy por hoy gracias a internet existen infinidad de tutoriales y manuales, sin ir mas lejos el sitio oficial de PHP es realmente muy bueno.

2. Busca antes de preguntar
Esto es un mal común del que quiere aprender a programar, es mas fácil preguntarle a alguien que sepa, pero realmente no tiene que ser así por varias razones, primero por que es algo de muy de vago, luego que cuando alguien nos da la respuesta fácil no aprendemos nada, lo interesante cuando se nos presenta un problema es buscar la solución nosotros mismos, sino damos con la respuesta recién ahí preguntar, este ejercicio realmente es muy beneficio, nos permite preparar nuestra cabeza para solucionar futuros problemas.

3. Busca scripts ya desarrollados
Por lo general podemos encontrar muchas funciones, scripts listos para utilizar, pero lo interesante es estudiarlos, ver como funcionan, de ahí aprendemos si copiamos y pegamos vamos mal.