sábado, 30 de marzo de 2013

Tip para solucionar problema con acentos al utilizar AJAX


Si utilizas AJAX en tu sitio y el charset que utilizas es ISO-8859-1 habrás notado que cuando recibes un responseText con acentos o ñ te muestra símbolos raros, esto es debido a que los request de AJAX utilizan la codificación UTF-8Para solucionar esto debemos indicarle a la respuesta en AJAX que utilice el charset es ISO-8859-1 para esto en PHP utilizamos la función header();
Ejemplos:
Para devolver HTML
  1. header("Content-Type: text/html; charset=iso-8859-1");
Para devolver Javascript
  1. header("Content-type: text/javascript; charset=iso-8859-1");
Para devolver XML
  1. header(‘Content-type: text/xml;  charset=iso-8859-1′);
  2. echo "xml version="1.0" encoding="ISO-8859-1"?>\n";
Con eso solucionamos el problema de los acentos en la respuesta de AJAX. Ahora también existe el problema al momento de enviar los datos de un formulario mediante AJAX ya que también se envían codificados en UTF-8 por lo que al guardarlo en la base de datos observaremos que se guardan símbolos raros. Para solucionar esto utilizamos la función utf8_decode de php.
Por ejemplo:
  1. $variable = utf8_decode($_POST[‘variable’]); //Y asi para todas las variables que podrían contener acentos o ñ
Para ahorrarnos el trabajo de hacerlo variable por variable pueden implementar la siguiente función:
  1. function decodeUTF8($array) {
  2.  
  3.         foreach ($array as $k => $postTmp) {
  4.                 if (is_array($postTmp)) {
  5.                         $array[$k]= decodeUTF8($postTmp);
  6.                 }else{
  7.                         $array[$k] = utf8_decode($postTmp);
  8.                 }
  9.         }
  10.  
  11.         return $array;
  12. }
  13. //Su uso:
  14.  
  15. $_POST = decodeUTF8($_POST);
Los ejemplos son en PHP pero deben tener sus similares en otros lenguajes de servidor como ASP, JSP, etc…

domingo, 24 de febrero de 2013

Como reparar cualquier Sistema Operativo...







Curso de JAVA gratuito y en español (Videotutoriales)


Uno de los lenguajes que sin duda siguen dominando en el mundo de la programación es Java, su gran popularidad y la ventaja de funcionar bajo cualquier maquina sin importar su arquitectura o plataforma lo hacen uno de los lenguajes de programación mejores pagados de la industria.
La masificación de su uso y su versatilidad lo hacen un lenguaje bastante importante de aprender para cualquier programador que quiera dedicarse al desarrollo de aplicaciones tanto de escritorio como en entorno web, por eso el día de hoy he querido compartirles un completo, sencillo y muy interesante curso de Java en español compuesto de de 40 videotutoriales para aprender este lenguaje desde cero.
Los vídeos han sido elaborados por Jesus Conde para su sitio web www.illasaron.com desde donde podremos descargar los vídeos si así deseamos. Para este curso se utilizara el IDE Netbeans que es bastante amigable para utilizar y el cual aprenderemos a manejar en el primer videotutorial.

Curso de JAVA

1. Introducción: Uso de NetBeans

2. Anatomía de un Programa Java

3. Tipos de programas Java y uso de argument

4. Variables: Almacenar información

5. Trabajar con Operadores

6. Trabajar con Objetos String.

7. Tomar decisiones con condicionales

8. Planificar repeticiones con el uso de Loops

9. Almacenar información con el uso de Arrays

10. Fundamentos de la Programación Orientada a Objetos

Vídeos del 11 al 40

Estos son apenas los primeros 10 vídeos de un total de 40. Los videoturiales restantes los podemos ver en la lista de reproducción en Youtube www.youtube.com/playlist?list=PL4D956E5314B9C253que contiene el curso de JAVA completo. Esperamos que sepan aprovechar este material de calidad y no dejen de compartirlo.

Solveet, una web para plantear y resolver ejercicios de programación


La vida de un estudiante de sistemas se centra prácticamente en “la programación”, y digo se centra no porque todos deban enfocarse, porque como sabemos un ingeniero de sistemas puede tener varios campos de profundización, pero si por el hecho de que en este punto encuentra el principal filtro académico que muchas veces termina con las ganas de seguir estudiando para muchas personas.
Los que estudiamos alguna carrera en la que la programación sea factor clave sabemos que a muchas personas se les dificulta lograr entender la lógica del asunto y llegan a sentirse tan impotentes que terminan cambiándose de carrera (he visto casos). Muchos ejercicios de programación son sencillos y no requieren mas que una simple operación aritmética, alguna condicional o un simple ciclo, pero cuando vamos avanzando llegamos a problemas mucho mas complejos que ya requieren de un análisis mas profundo.
Como estudiantes siempre estamos buscando la mayor cantidad de ayudas posibles para entender algún tema y aquí es donde llega el objetivo de este articulo. Para quienes desean enfocarse en el mundo de la programación o sencillamente buscan ayuda para un ejercicio que dejaron en clase, Solveet.com puede ser nuestro gran aliado.

La finalidad de Solveet es bastante sencilla y practica, básicamente es un sitio web dedicado a los ejercicios de programación, donde los usuarios pueden plantear problemas, debatir soluciones y elegir finalmente la mejor solución de entre todas las enviadas, y un punto a favor es que todo esta en español.
El sitio maneja el sistema de reputación entre los usuario, lo que determina un ranking de usuarios top y mejor valorados dependiendo de sus aportes a la comunidad. Actualmente entrega puntos a los usuarios que publican un desafió, comentan o envían una solución. De esta manera para poder participar activamente y enviar nuestras consultas, debemos registrarnos en el sitio.
Lo interesante del asunto es que en la comunidad se encuentran programadores diferentes lenguajes y muchas de los problemas planteados obtienen diversas soluciones para cada uno de los lenguajes mas populares de la red, ademas podemos practicar nuestros conocimientos aportando soluciones a los desafíos ya planteados y aprender con las respuestas de los otros usuarios, sin duda un gran nicho de conocimiento para cualquier estudiante en desarrollo.


viernes, 1 de febrero de 2013

Qué es el Web Hosting y qué opciones hay para elegir


Vamos a hablar un poco sobre uno de los temas mas importantes para quienes trabajamos en Internet, especialmente para quienes debemos encargarnos de desarrollar y poner a andar un sitio web en la red, ya sea personal como un blog, o una web profesional para algún cliente que la solicite.
Vamos a partir del hecho de que debemos desarrollar algún proyecto en Internet, sea un blog, una aplicación, una tienda en linea o una sencilla pagina en Html. Una de las primeras cosas que debemos tener en cuenta es el objetivo con el que deseamos poner nuestro proyecto en la red, también el alcance que esperamos tener con él y tener claro que tanto deseamos invertir en su crecimiento y mantenimiento, para de esta manera saber que es lo que mas nos conviene al elegir un web hosting.
Con este articulo vamos a dejar claro algunos conceptos que debemos conocer para elegir la mejor opción de hosting para nuestros proyectos, ademas de las diferentes opciones que podemos encontrar actualmente en el mercado, así que empecemos.

Qué es el Web Hosting

El hosting o alojamiento web, en términos sencillos es una computadora conectada las 24 horas a Internet, la cual contiene los archivos de nuestra pagina o proyecto, y a la cual se puede acceder desde cualquier lugar utilizando una navegador web. Los servidores utilizados para hosting están debidamente configurados y optimizados, y dependiendo de las capacidades que estos dispongan así mismo varían sus precios.

Diferentes opciones de Web Hosting

En la actualidad podemos encontrar una gran variedad de opciones de alojamiento web, cada una varia de la otra de acuerdo a las capacidades que ofrece y obviamente a la empresa con la que la adquiramos. Entre los diferentes planes de hosting que podemos encontrar tenemos:

Hosting Compartido

El hosting compartido es el plan mas común y popular para empezar en Internet. Debido a sus precios bajos y sencillez resulta la mejor opción para quienes desean empezar proyectos pequeños a los cuales no desean invertirles demasiado dinero.
La característica esencial de este tipo de planes es que toman un servidor y lo organizan de tal forma que puedan albergar miles de sitios en él, de esta manera nosotros nos quedamos con solo un pequeño pedazo del servidor y sus recursos serán compartidos con las otras paginas que se encuentren alojadas dentro de él. Sus costos promedio van desde los 5USD mensuales hasta los 20USD aproximadamente.

Servidores VPS

Los servidores vps son la mejor opción para proyectos que tienen un buen margen de crecimiento y a los cuales deseamos dedicarle un poco mas de dinero. Las siglas VPS hacen referencia a Virtual Private Server o Servidor Privado Virtual y se caracterizan por sera maquina virtuales montadas dentro de un servidor real, es decir que tomando un equipo de computo físico y utilizando un software especializado, podremos crear varios servidores virtuales con diferentes configuraciones y características.
Los VPS tiene la ventaja de que podamos armarlos a nuestro gusto, podremos elegir la cantidad de Memoria RAM, CPU’s, Disco duro, y de acuerdo a nuestra configuración pagaremos valores que van desde los 25USD hasta los 120USD aproximadamente.

Servidores Dedicados

Los servidores dedicados son utilizados principalmente para grandes proyectos, aquellos que requieren de exclusividad y potencia en su máximo nivel. Como su nombre lo dice consisten en que tendremos derecho a un servidor completo solo para nosotros, obviamente esto hace que sus precios puedan ser muy elevados y que varían de acuerdo a las especificaciones técnicas de que dispongan. Un servidor dedicado puede costar entre 150USD y 2000USD mensuales.

Cloud Hosting

El cloud hosting es un nuevo concepto de almacenamiento que esta ganando bastante popularidad en los últimos años. Su característica principal es la escalabilidad que ofrece a los usuarios, es decir que permite que empieces con unas configuraciones básicas, y a medida que tu proyecto lo necesite los recursos adquiridos irán creciendo igualmente, de esta manera se evita estar limitados a las configuraciones de hardware tradicionales y eliminando así las posibilidades de estar expuestos a caídas imprevistas de nuestros sitios. Los costos del cloud hosting suelen ser por demanda, es decir que no se maneja una mensualidad fija sino que varia de acuerdo a los recursos necesitados por nuestros proyectos durante el periodo de tiempo.

Qué debe saber un Ingeniero de Sistemas


En la entrada anterior te mostramos aquellos conocimientos y habilidades que debe dominar un “Técnico en Sistemas”, ahora le ha llegado el turno al Ingeniero de Sistemas, una formación que requiere de un mayor dominio y aprendizaje de todas las funciones y procesos que engloban al ordenador y el resto de dispositivos electrónicos.
Debemos tener en cuenta que el campo de la informática es uno de los que más funciones y especialidades posee, pudiendo hacer que dos individuos con formación similar, estén llevando a cabo funciones que nada tienen que ver salvo la rama a la que pertenecen, todo depende de su especialidad y del enfoque que quieran darle a su carrera.
El ingeniero de sistemas trabaja con los datos e información puros, es decir, mientras que en otros puestos operan con los componentes físicos del ordenador, reparándolos, instalándolos y optimizándolos, éste además de conocer estas funciones, debe saber cómo se construyen y cómo están programados, su trabajo requiere de una buena capacidad mental para resolver problemas, analizarlos, sintetizar y dominar la lógica.
Las funciones de un ingeniero de Sistemas son muy amplias, ya que mientras éstos cursan su carrera universitaria, se les ofrece la posibilidad de orientar su formación hacia algunas de las siguientes ramas especializadas: Cálculo matemático, Teoría de la computación, Programación, Bases de datos, Sistemas operativos o la ya conocida y actualmente muy demandada, Inteligencia Artificial.
Como puedes ver, las opciones son muy variadas y cada uno de estos campos implica un sinfín de tareas y habilidades que deberá controlar. Este trabajo que llevan a cabo con los datos para convertirlos en resultados, es un proceso que se realiza apoyándose en equipos y software de carácter profesional, especialmente diseñados para permitir que los trabajos que aquí proyecte el ingeniero puedan desarrollarse correctamente. Esto hace que las primeras responsabilidades y tareas de estos ingenieros sean las de administrar, traducir, mejorar y mantener en buen estado el gran número de maquinaria especializada que tiene a su servicio.

Pero si hay una forma de averiguar cuáles son todas las habilidades que posee, es mostrándote una recopilación de aquellas funciones principales que se espera que sepan llevar a cabo, obviamente no son todas, ya que al igual que en el Técnico en Sistemas, las tareas variarán en función de su puesto de trabajo y especialización.

Qué debe saber un Ingeniero de Sistemas

  • Administración de las bases de datos. Cada día son más las empresas que adoptan a la tecnología informática como base para organizar y gestionar toda su estructura, y precisan de las habilidades de estos especialistas, puesto que su crecimiento les obliga a contar con personal cualificado que pueda crear, ampliar, modificar, asegurar y garantizar las bases de datos.
  • Desarrollador y analista. Si bien puede ejercer la tarea de programador, también es el perfil ideal para poder llevar y controlar algunas facetas más como la de analista, es decir, al igual que participa programando código, es capaz de gestionar el equipo de programadores y también ejercer un control para evaluar la calidad de los programas que se realizan para garantizar su total eficiencia.
  • Analista de Redes. Su papel es fundamental, ya que son capaces de diseñar cualquier red de trabajo para la empresa o de uso personal, garantizando su seguridad y buen funcionamiento. Pero eso no es todo, también son los encargados de realizar las mediciones oportunas para determinar si este tipo de redes se están utilizado de la forma más eficiente. Esto obliga a tener conocimientos sobre comunicaciones, protocolos y arquitecturas, además de sistemas operativos para poder detectar cualquier posible elemento que diera fallos.
  • Diseño de chips y derivados. Sus conocimientos en física, matemáticas y programación han de permitirle trabajar en cualquier puesto del organigrama de las empresas tecnológicas más punteras del mercado. Podrá desarrollar nuevos circuitos y microchips, o bien, coordinar equipos enteros de empleados que lleven a cabo estas funciones.
Estos son solo 4 perfiles destacados de los muchos otros que existen, nombrarlos todos resultaría imposible. Recuerda que el perfil de un ingeniero de Sistemas es uno de los más demandados hoy en día por las empresas que generan y desarrollan tecnología, sus habilidades y conocimientos son los que permiten llevar a cabo nuevos productos y mejorar los existentes.
Y llegados a este punto, seguro que te estarás preguntando. “¿Y qué conocimientos posee un ingeniero de sistemas para que pueda hacer todas esas responsabilidades y estar tan bien considerado?”. Pues sin más dilación, aquí te mostramos algunas de las que hemos recopilado de las diferentes ofertas de estudios de las Universidades que posibilitan esta formación:
  • Algoritmos y estructuras de datos.
  • Lenguajes de programación.
  • Diseño y gestión de Bases de Datos.
  • Conocimientos de Física.
  • Álgebra y cálculo infinitesimal.
  • Arquitectura, conceptos y mantenimiento de Redes.
  • Inglés, como mínimo a nivel técnico.
  • Sistemas Operativos.
  • Ingeniería de los Computadores.
  • Fundamentos de Sistemas Digitales.
  • Gestión de empresas, probabilidad y estadística.
  • Conocimientos en Inteligencia Artificial y robótica.
  • Diseño de Software.
  • Arquitecturas y protocolos TCP/IP.

Qué debe saber un Técnico en Sistemas


Desde hace unos años, la aplicación y uso de los sistemas informáticos como elemento preferente en casi todos los modelos de negocio ha sido un factor que a día de hoy es ya una realidad, es decir, no hay ninguna empresa de reciente creación que no cuente como mínimo con un ordenador que gestione su contabilidad.
Otros, además de gestionar su economía, también instalan un complejo sistema informático para permitir agilizar todos los procesos y servicios que su empresa ofrece, veamos el caso de las administraciones públicas, donde todos los trámites ya se gestionan expresamente a través de un computador o bien son gestionados y procesados por los diferentes programas creados específicamente para tal función.
Esto, sumado al ya habitual uso doméstico que le damos a la informática, hace que se requiera de la presencia y habilidades de los expertos en el mantenimiento de estos equipos y todas sus funciones, donde en este caso nos centraremos especialmente en los Técnicos en Sistemas, una profesión muy demandada y con un gran futuro por delante.
A pesar de que resultan ser uno de los títulos con los que más puertas se abren al mercado tecnológico, las funciones que lleva a cabo el Técnico en Sistemas también son generalmente requeridas por aquellas empresas que desean implantar o gestionar un nuevo sistema informático, independientemente del sector al que pertenezcan.

Para comprender un poco más cuáles son todas sus responsabilidades, realicemos un breve repaso por algunas de las funciones más genéricas que se espera que un Técnico con esta cualificación debería dominar.
  • Mantenimiento y supervisión de equipos informáticos. Independientemente de su tamaño, el Técnico en Sistemas deberá saber cómo mantener los ordenadores en un estado óptimo, garantizando su buen funcionamiento. Por lo que resulta imprescindible conocer detalladamente el hardware y software que habitualmente dan forma al ordenador.
  • Reparación de equipos. Al igual que se encarga de mantener los sistemas en buen funcionamiento, también debe saber reaccionar ante posibles amenazas y problemas para encontrar una solución lo antes posible y no comprometer la información que en los equipos se almacena.
  • Instalación de Software y aplicaciones. Será el encargado de asegurar que todos los equipos disponen de las aplicaciones y programas necesarios para garantizar su buen funcionamiento. Esta tarea es más bien empleada en el ámbito laboral, ya que los ordenadores personales generalmente son gestionados por sus dueños, salvo que la tarea revista una gran dificultad y se deba llevar a un experto para proceder con su instalación.
  • Seguridad en la red, ordenadores y servidores. También debe conocer la estructura de todos ellos para aplicar las medidas de seguridad que crea convenientes para asegurar una buena protección contra ataques y posibles fallos de los equipos.
  • Sistemas Operativos. Su formación debe garantizar un dominio absoluto sobre todas las funciones de los sistemas operativos que se ofrecen actualmente en el mercado, sabiendo gestionarlos, mantenerlos, instalarlos y/o desinstalarlos.
  • Crear redes de trabajo compartidas. Para las empresas esta es una necesidad elemental, ya que generalmente se precisa conectar todos los equipos con el fin de poder compartir todos los recursos e información que se procesa. Aquí, además de las redes cableadas, también cumple un papel importante la conexión inalámbrica.
  • Gestión de contenidos web. A pesar de que se trata de una función que bien podría ser llevada a cabo por cualquier otro experto con conocimientos informáticos, el Técnico en Sistemas también debe saber cómo instalar, administrar y actualizar los diferentes gestores de contenidos web que existen actualmente.
Debes saber que la formación que se ha recibido para esta titulación y el dominio de todas estas secciones no implican que las deba de llevar a cabo en su totalidad en la empresa contratante, puesto que gracias a lo extenso que es el campo de la informática y las diferentes ramas de especialización que existen, las empresas siempre tienden a diversificar algunas de las funciones más complejas entre determinados profesionales informáticos.