Apps Moviles






La tecnología Móvil  nos ha acompañado desde los 70's y  como tal ha  tenido una 
evolución rápida acompañada de hitos  muy relevantes para la comunicación a distancia

LA EVOLUCIÓN DE LA TECNOLOGÍA MÓVIL:


TECNOLOGÍA 0G:  trata de tecnología que nace a finales del siglo XIX basada en radio y orientada a fines específicos como la navegación marítima.

TECNOLOGÍA 1G: Se trata de tecnología  que aparece a finales de los 80's, esta tecnología está basada en señal analógica, orientada específicamente al sector empresarial, en este año aparecen los grandes servidores como: Moto-rola y Bell labs. También se implementa por primera vez el (ROAMING).

TECNOLOGÍA 2G: Se trata de tecnología que aparece en los 90's, esta es la primera vez que se habla de tecnología digital, basada en conmutación de circuitos, en palabras más básicas se puede establecer comunicación de extremo a extremo. Incorporando así el estándar GSM, Roamig, SMS de 160 caracteres, mensajes multimedia MMS y el protocolo WPS para conexiones de acceso a Internet. Durante  la evolución de esta tenemos  la TECNOLOGÍA 2.5G que implementa  la GPRS que potencia la realización de mensajes MMS y el protocolo WAP.

TECNOLOGÍA 3G: Se trata de tecnología  que se caracteriza por la adopción de la comunicación basada en paquetes para los servicios de datos, aparece el estándar UMTS que proporciona mayor ancho de banda, y surge así el Straming para vídeo y radio.

TECNOLOGÍA 4G: Se trata de tecnología  adopción de  la comunicación basada en paquetes. Mayor ancho de banda.

Sistemas Operativos Móviles


iOS: La versión 8 del sistema operativo del iPhone verá la luz en breve. Los nuevos terminales de la compañía de Cupertino, el iPhone 6 y 6 Plus, están diseñados para sacarle todo el partido, aunque desde el iPhone 5S en adelante podrán disfrutarla. Las principales características que trae son: una mayor integración con OSX y la extensión de su ecosistema hacía los wearables y el Internet of Thinks con el healthkit y homekit respectivamente.

Android: El sistema operativo número uno en cuanto a popularidad. Con una cuota de mercado cercana al 85% el sistema operativo de Google se caracteriza por ser abierto y disponible para cualquier fabricante interesando en utilizarlo para sus dispositivos móviles.

Windows Phone: Microsoft que está realizando un gran esfuerzo financiero para posicionar Windows Phone como una tercera opción interesante para los consumidores después de que llegara tarde a la fiesta de los smartphones. Su alianza con Nokia y su posterior compra le ha ayudado a darse a conocer mejor e ir arañando cuota de mercado a los dos líderes. Los últimos datos hablan de un 2,5% a nivel mundial.

Windows Phone: Microsoft que está realizando un gran esfuerzo financiero para posicionar Windows Phone como una tercera opción interesante para los consumidores después de que llegara tarde a la fiesta de los smartphones. Su alianza con Nokia y su posterior compra le ha ayudado a darse a conocer mejor e ir arañando cuota de mercado a los dos líderes. Los últimos datos hablan de un 2,5% a nivel mundial.

Firefox OS: Un sistema operativo basado en HTML5 con núcleo Linux, de código abierto. Desarrollado por Mozilla Corporatión con apoyo de empresas como Telefónica. El sistema operativo está basado en Linux y usa la tecnología de Mozilla, Gecko. Se basa en estándares abiertos como por ejemplo HML5, CSS3 y JavaScript.

Blackberry: Blackberry anteriormente conocida como RIM no está pasando por sus mejores momentos. Al igual que le pasó a Nokia, el cambio de paradigma en los smartphones le pillo con el pie cambiado. Acostumbrado a ofrecer terminales con teclado físico, el paso a las pantallas táctiles se le atragantó. Sin embargo, los esfuerzos realizados por la compañía canadiense para recuperar el terreno perdido han sido grandes y en el año 2012 lanzaron su órdago con un renovado sistema operativo el Blackberry 10. Aun así, los últimos estudios sobre cuota de mercardo lo dejan en tan solo un 0,5% mundial.

Ubuntu Touch: Otro sistema operativo basado en Linux pero en esta ocasión bajo la famosa firma Ubuntu. Presentado en el 2013, se trata de un proyecto de Canonical. En la actualidad varias empresas están desarrollando terminales para este sistema operativo, entre ellas la española Bq.

¿Qué es una aplicación móvil?

Una aplicación móvil es un programa que usted puede descargar y al que puede acceder directamente desde su teléfono o desde algún otro aparato móvil – como por ejemplo una tablet o un reproductor MP3.

¿Qué necesito para descargar y usar una aplicación?

Usted necesita un smartphone o algún otro aparato móvil con acceso a internet. No todas las aplicaciones funcionan en todos los aparatos móviles. Cuando usted compra uno de estos aparatos debe usar el sistema operativo y el tipo de aplicaciones que corresponde a ese aparato. Los sistemas operativos móviles Android, Apple, Microsoft y BlackBerry tienen tiendas de aplicaciones que operan en línea en las cuales usted puede buscar, descargar e instalar las aplicaciones. 

Algunos comerciantes minoristas también operan tiendas de aplicaciones en internet. Usted tendrá que usar una tienda que le ofrezca las aplicaciones que funcionen con el sistema operativo de su aparato. Para establecer una cuenta, es posible que tenga que suministrar el número de una tarjeta de crédito, especialmente si va a descargar una aplicación que no es gratis.

Una aplicación nativa es la que se desarrolla de forma específica para un determinado  sistema operativo, llamado Software Development Kit o SDK. Cada una de las plataformas, Adroid, iOS o Windows Phone, tienen un sistema diferente, por lo que si quieres que tu app esté disponible en todas las plataformas se deberán de crear varias apps con el lenguaje del sistema operativo seleccionado.
Por ejemplo:

Las apps para iOS se desarrollan con lenguaje Objective-C
Las apps para Android se desarrollan con lenguaje Java
Las apps en Windows Phone se desarrollan en .Net

Una aplicación web o webapp: es la desarrollada con lenguajes muy conocidos por los programadores, como es el HTML, Javascript y CSS. La principal ventaja con respecto a la nativa es la posibilidad de programar independiente del sistema operativo en el que se usará la aplicación.

De esta forma se pueden ejecutar en diferentes dispositivos sin tener que crear varias aplicaciones.
Las aplicaciones web se ejecutan dentro del propio navegador web del dispositivo a través de una URL. Por ejemplo en Safari, si se trata de la plataforma iOS. El contenido se adapta a la pantalla adquiriendo un aspecto de navegación APP.

Una aplicación híbrida: es una combinación de las dos anteriores, se podría decir que recoge lo mejor de cada una de ellas. Las apps híbridas se desarrollan con lenguajes propios de las webabpp, es decir, HTML, Javascript y CSS por lo que permite su uso en diferentes plataformas, pero también dan la posibilidad de acceder a gran parte de las características del hardware del dispositivo. La principal ventaja es que a pesar de estar desarrollada con HTML, Java o CSS, es posible agrupar los códigos y distribuirla en app store.

PhoneGap es es uno de los frameworks más utilizados por los programadores para el desarrollo multiplataforma de applicaciones híbridas. Otro ejemplo de herramienta para desarrollar apps híbridas es Cordova.
Read more

Bases de Datos ( Data Base)






Se le llama base de datos al conjunto de daros almacenado en un banco de información estos que a su vez  contienen datos relativos a diversas temáticas y categorizados de distinta manera, pero que comparten entre sí algún tipo de vínculo o relación que busca ordenarlos y clasificarlos en conjunto.

Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido; una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta.

Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.

Tipos de bases de datos

Bases de datos estáticas


Son bases de datos únicamente de lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones, tomar decisiones y realizar análisis de datos para inteligencia empresarial.


Bases de datos dinámicas


Son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y edición de datos, además de las operaciones fundamentales de consulta. Un ejemplo, puede ser la base de datos utilizada en un sistema de información de un supermercado.

Modelos de Bases de Datos


Bases de datos jerárquicas


En este modelo los datos se organizan en forma de árbol invertido (algunos dicen raíz), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.

Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento.

Base de datos de red


Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico). Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aún así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.

Bases de datos transaccionales


Son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, es importante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacionales.

Bases de datos relacionales


Éste es el modelo utilizado en la actualidad para representar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM enSan José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).

Bases de datos multidimensionales


Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean aprender.

Bases de datos orientadas a objetos


Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento).
Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos:
Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos.
Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases.
Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.


Sistemas Gestores de Bases de Datos

Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien mediante aplicaciones al efecto.



1.- Oracle: Cuando se fundó Oracle en 1977 como Software Development Laboratories por Larry Ellison, Bob Miner y Ed Oates no había productos de bases de datos relacionales comerciales. La compañía, cuyo nombre cambió posteriormente a Oracle, se estableció para construir un sistema de gestión de bases de datos como producto comercial y fue la primera en lanzarlo al mercado.

2.-D2 DE IBM: La familia de productos DB2 Universal Database de IBM consiste en servidores de bases de datos y un conjunto de productos relacionados. DB2 Universal Database Server está disponible en muchas plataformas hardware y sistemas operativos, abarcando desde mainframes (grandes ordenadores centrales) y grandes servidores a estaciones de trabajo e incluso a pequeños dispositivos de bolsillo.

3.-SQL: Server:desarrollado originalmente en los años 80 en SyBase para sistemas UNIX y posteriormente pasado a sistemas Windows NT para Microsoft. Desde 1994 Microsoft ha lanzado versiones de SQL Server desarrolladas independientemente de Sybase, que dejó de utilizar el nombre SQL Server a finales de los años 90.

4.-MySQL: Es un sistema gestor de bases de datos muy conocido y ampliamente usado por su simplicidad y notable rendimiento. Aunque carece de algunas características avanzadas disponibles en otros SGBD del mercado, es una opción atractiva tanto para aplicaciones comerciales, como de entretenimiento.


5.-PostgreSQL: Es un gestor de bases de datos orientadas a objetos muy conocido y usado en entornos de software libre porque cumple los estándares SQL92 y SQL99, y también por el conjunto de funcionalidades avanzadas que soporta, lo que lo sitúa al mismo o a un mejor nivel que muchos SGBD comerciales

Read more

Conceptos básicos


Que es la programación

Al hablar de programación no solo entramos a un mundo extenso, si no  también a  un mundo nuevo para  nosotros, la programación va  mas allá de un concepto, de una regla o de un enfoque sistemático, la programación es una forma de vida, cotidiana si se quiere ver así, los conceptos fundamentales que quizá  te ayuden a la mejor comprensión de este mundo  te los muestro a continuación.

Un sistema informático esta  constituido, básicamente  su estructura se basa en un gran numero de  circuitos, conmutadores  de un tamaño muy pequeño  que pueden estar activos o apagados. cuando se establecen cierto numero de combinaciones, se puede lograr que el sistema realice acciones de desición, modificación, borrado etc..

Que es un lenguaje de programación

La comunicación es la base de todo gran sistema es por eso que  cuando necesitamos  comunicarnos con un  computador  hacemos uso de un lenguaje al que llamamos comúnmente como  lenguaje de programación,  este lenguaje aunque parezca difícil de creer  tiene una estructura muy simple ya que solo emplea (0 y 1) la complejidad viene un poco mas adelante, ya que  podría decirse  que el "1" significa activado y el "0" significa  desactivado.

Un lenguaje  de programación siempre actúa como intermediario y/o traductor entre el  ordenador y el usuario, ya que nos sirva para hacernos la tarea lo menos difícil que sea posible, y así no tener que comunicarnos a través del  lenguaje maquina, para ello usamos  programas especializado conocido como compilador en el cual podremos introducir un sistema de reglas  o instrucciones que nuestro ordenador debe seguir para estableces comunicación con el mismo.


Codificación: La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas, en un código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.

Depuración: Los errores humanos dentro de la programación de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración.

Prueba : La prueba consiste en la captura de datos hasta que el programa no presente errores (los más comunes son los sintácticos y lógicos).

Tipos de Lenguajes

Lenguaje de programación: Es un sistema simbólico y de reglas que  permite la construcción de programas para asi traducirlos y que la maquina pueda analizarlos y comprenderlos de una manera eficaz y ordenada. 


Lenguaje Máquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 ó 1).


Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.

Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel BASIC, pascal, cobol, fortran, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensión del programa.

Dato: El dato es una representación simbólica (numérica, alfabética, algorítmica etc.), un atributo o una característica de una entidad. El dato no tiene sentido en sí mismo, pero si recibe un tratamiento (procesamiento) apropiado, se puede utilizar en la realización de cálculos o toma de decisiones. Es de empleo muy común en el ámbito informático y, en general, prácticamente en cualquier disciplina científica. En programación, un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo. En Estructura de datos, es la parte mínima de la información.


Información: Es un conjunto organizado de datos, que constituye un mensaje sobre un cierto fenómeno o ente. La información permite resolver problemas y tomar decisiones, ya que su uso racional es la base del conocimiento. Por lo tanto, otra perspectiva nos indica que la información es un fenómeno que aporta significado o sentido a las cosas, ya que mediante códigos y conjuntos de datos, forma los modelos de pensamiento humano. 


Hardware: Corresponde a todas las partes físicas y tangibles de una computadora: sus componentes eléctricos, electrónicos, electromecánicos y mecánicos; sus cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado. El término es propio del idioma inglés pero se define como «Conjunto de los componentes que integran la parte material de una computadora».

Software: Es el equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas. Los componentes lógicos incluyen, entre muchos otros, aplicaciones informáticas; tales como el procesador de textos, o el software de sistema, tal como el sistema operativo, que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y con el resto de las aplicaciones, proporcionando también una interfaz para el usuario.


Peopleware: Puede referirse a cualquier cosa que tenga que ver con el papel de las personas en el desarrollo o uso de software y sistemas hardware, incluyendo cuestiones como productividad de los desarrolladores, trabajo en equipo, dinámicas de grupo, la psicología de la programación, gestión de proyectos, factores de organización, diseños de interfaces de usuario e interacción hombre-máquina. 


Clasificación del Hardware: Entrada, Salida, Proceso y Almacenamiento.

Entrada: Un dispositivo de entrada o periférico de entrada es cualquier periférico (pieza del equipamiento del hardware de computadora) utilizado para proporcionar datos y señales de control a un sistema de procesamiento de información (por ejemplo, un equipo).

Salida: Son aquellos que permiten emitir o dar salida a la información resultante de las operaciones realizadas por la CPU (procesamiento).Los dispositivos de salida aportan el medio fundamental para exteriorizar y comunicar la información y datos procesados; ya sea al usuario o bien a otra fuente externa, local o remota.

Proceso: Las unidades centrales de proceso (CPU) no sólo están presentes en las computadoras personales (PC), sino también en otros tipos de dispositivos que incorporan una cierta capacidad de proceso o "inteligencia electrónica”.

Almacenamiento: Se encargan de guardar los datos de los usuarios. El hardware de almacenamiento sirve para almacenar permanentemente información y programas que la computadora deba recuperar en algún momento. 

Sistemas Operativos: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento.


Aplicaciones: El Software de aplicación es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios.

El Bit O Dígito Binario: Un bit es la unidad de información más pequeña que el procesador manipula y físicamente se representa con un elemento como un pulso o un punto. Ocho bits constituyen un byte.

El Byte O Unidad Mínima De Almacenamiento: Cuenta con 8 bits. Equivale a un sólo carácter, como una letra o un número.

El Kilobyte (KB): Equivale a 1.024 bytes y a menudo es la unidad en la que se registra el almacenamiento de archivos pequeños como documentos de texto o imágenes en baja resolución.

El Megabyte (MB): Equivale a más de un millón de bytes, y comúnmente archivos de tamaño considerable se almacenan en esta unidad. Por ejemplo, imágenes en alta resolución, archivos, carpetas, documentos y hasta programas.

El Gigabyte (GB): Equivale a mil millones de bytes. Es la unidad que más típicamente se maneja hoy en día, y los ordenadores más comunes proveen de un espacio de más de 100 GB para memoria. Los archivos de todo un ordenador de tamaño considerable se miden en GB.

El Terabyte (TB): Equivale a 1024 Gigabytes y es una medida que se utiliza para referir a ordenadores de alta complejidad.

Medida                Cantidad de Bytes          Equivalente
Kilobyte (KB)     1024      1024 Bytes
Megabyte (MB)               1048576               1024 Kilobytes
Gigabyte (GB)   1073741824        1024 Megabytes
Terabyte (TB)    1099511627776 1024 Gigabytes
  

Read more

Desarrollo web


Desarrollo Web (inicio)








Es el termino empleado para definir la creación de sitios web  para Internet o ya sea para una intranet, para desarrollar un sitio web o pagina web se hace uso de tecnologías de software  del lado del servidor y del cliente, estos involucran una combinación de procesos de datos  cuando se hace uso de un navegador.

PROGRAMAS DE DISEÑO



1.- Adobe Dreamweaver CS6


Adobe Dreamweaver CS6 es con diferencia el  editor web más potente.  Permite la creación de páginas compatibles con  teléfonos móviles y tabletas, además de  sitios web tradicionales. Cuenta con las Herramientas fundamentales  para todas las tecnologías utilizadas actualmente en la Web, soportado por IoS y Windows .

2.- Sublime Text


Sublime Text es un editor de texto y editor de código fuente está escrito en C++ y Python para los plugins. Desarrollado originalmente como una extensión de Vim, con el tiempo fue creando una identidad propia, por esto aún conserva un modo de edición tipo vi llamado Vintage mode, soportado por Linux  IoS y Windows .

3.- Aptana Studio


Aptana Studio es un entorno de desarrollo integrado de software libre basado en eclipse y desarrollado por Aptana, Inc., que puede funcionar bajo Windows, Mac y Linux y provee soporte para lenguajes como: Php, Python, Ruby, CSS, Ajax, HTML y Adobe AIR. Tiene la posibilidad de incluir complementos para nuevos lenguajes y funcionalidades. Los desarrolladores lo definen como el IDE de desarrollo web de código abierto más potente,soportado por Linux  IoS y Windows .

4.- Eclipse


Eclipse es un programa informático compuesto por un conjunto de herramientas de programación de código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus, soportado por Linux  IoS y Windows .

5.- NetBeans


NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE  es un producto libre y gratuito sin restricciones de uso,soportado por Linux  IoS y Windows .



Lenguajes de programación, estilo  y etiquetado.



Si bien  tenemos conocimiento de uno o alguno de estos  lenguajes  o sistemas de etiquetado y estilos, tenemos que saber diferenciar cada uno de estos  y para  que nos sirven.

Lenguajes de Programación Web.


1.- C # es el lenguaje por excelencia para el desarrollo de plataformas y servicios de Microsoft. Si quieres crear modernas aplicaciones web utilizando Azure y .NET, aplicaciones para dispositivos Windows, aplicaciones de escritorio de negocio potentes, e incluso desarrollar juegos, C # es la forma más rápida para aprovechar todo lo que Microsoft ofrece.

Si lo tuyo es programar a niveles más bajos, es decir, si necesitas entenderte directamente con la máquina y aprovechar al máximo su poder de procesamiento, C++ será tu lenguaje. Es versátil y capaz de reunir necesidades de trabajo a bajo nivel con abstracciones de alto nivel para productividad. Multiplataforma, gran rendimiento, reutilizable… Un clásico eterno que nunca pasará de moda.

C es un lenguaje de programación de propósito general sencillo y no está especializado en ningún tipo de aplicación y sobre todo, se aprende rápidamente.  Este lenguaje no está ligado a ningún sistema operativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se puede desarrollar otro tipo de aplicaci

2.- PHP es un lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos.

3.- JAVA es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados.

4.- Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.

5.- .NET es un framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde el sistema operativo hasta las herramientas de mercado.

Lenguajes de Etiquetado (marcado/hipertextuales).


1.- HTML (Hipertext Markup Language) o lenguaje de marcas de hipertexto es el lenguaje que permite la generación de hipertextos en la World Wide Web. Este lenguaje deriva de la existencia de otros lenguajes de marcados previos y, a su vez, ha tenido unos desarrollos posteriores. HTML (HyperText Markup Language) es un lenguaje muy sencillo que permite describir hipertexto. La descripción se basa en especificar en el texto la estructura lógica del contenido (títulos, párrafos de texto normal, enumeraciones, definiciones, citas, etc.) así como los diferentes efectos que se quieren dar (especificar los lugares del documento donde se debe poner cursiva, negrita, o un gráfico determinado) y dejar que luego la presentación final de dicho hipertexto se realice por medio del navegador.

2.-SGML (Standard Generalized Markup Language) o Lenguaje de Etiquetado Generalizado Estándar es una norma ISO que permite que la estructura de un documento pueda ser definida en base a la relación lógica de sus partes. Esta estructura puede ser validada por una Definición de Tipo de Documento (DTD - Document Type Definition). La norma SGML define la sintaxis del documento y la sintaxis y semántica de DTD.

En SGML, el marcado de un fragmento de texto se realiza a través de las etiquetas o marcas (tag). Estas marcas se diferencian del propio texto porque aparecen entre paréntesis angulares  < > en caracteres ASCII que, por tanto, se convierten en signos reservados para la sintaxis SGML.)

3.-XML o eXtensible Markup Language, es un lenguaje de marcado derivado del lenguaje SGML que proporciona una sintaxis superficial para documentos estructurados, pero que no impone restricciones semánticas sobre el significado de los mismos. XML permite suministrar, recibir y procesar información en la Web y puede interoperar tanto con SGML como con HTML.

XML es un estándar desarrollado por el Consorcio World Wide Web (W3C). Se trata de una versión reducida y especializada en la Web de la norma SGML. Su caracterización como "extensible" se deriva de la no limitación en el número de marcas o etiquetas, pues permite crear todas aquéllas que sean necesarias. Otra de sus características principales es que permite enlaces multidireccionales (esto es, que apuntan a varios documentos).

4.-XHTML, Siglas del inglés eXtensible HyperText Markup Language. XHTML es básicamente HTML expresado como XML válido. Es más estricto a nivel técnico, pero esto permite que posteriormente sea más fácil al hacer cambios o buscar errores entre otros. En su versión 1.0, XHTML es solamente la versión XML de HTML, por lo que tiene, básicamente, las mismas funcionalidades, pero cumple las especificaciones, más estrictas, de XML. Su objetivo es avanzar en el proyecto del World Wide Web Consortium de lograr una web semántica, donde la información, y la forma de presentarla estén claramente separadas


Lenguajes de Estilo.


Las hojas de estilo (style sheets) son conjuntos de instrucciones, a veces en forma de archivo anexo, que se asocian a los archivos de texto y se ocupan de los aspectos de formato y de presentación de los contenidos: tipo, fuente y tamaño de letras, alineación y posicionamiento del texto, colores y fondos, etc. Las hojas de estilo permiten liberar la composición del texto de los aspectos visuales y favorecen que se estructure y anote mediante códigos que permiten un tratamiento más eficaz de los contenidos. Dos lenguajes de hojas de estilo son CSS y XSL.


1.-Hoja de estilo en cascada o CSS (siglas en inglés de cascading style sheets) es un lenguaje usado para definir y crear la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). El World Wide Web Consortium (W3C) es el encargado de formular la especificación de las hojas de estilo que servirán de estándar para los agentes de usuario o navegadores.

2.-XSL (siglas de Extensible Stylesheet Language, expresión inglesa traducible como "lenguaje extensible de hojas de estilo") es una familia de lenguajes basados en el estándar XML que permite describir cómo la información contenida en un documento XML cualquiera debe ser transformada o formateada para su presentación en un medio.


Ya hemos visto un poco de las bases espera el siguiente post  sigue con nosotros....



Read more

Seguridad Informática





Introducción 

¿Que es la Seguridad informática?

La seguridad informática, se define como una diciplina  cuyo enfoque es  proteger la información, integridad y privacidad de la información que esta almacenada en un sistema informático.


Factores a tomar en cuenta
  • Los riesgos: Son aquellos que pueden provocar factores que ponen en riesgo los datos.
  • La amenaza: Queda claro que es la tendencia a provocar daño sobre la información.
  • Vulnerabilidad: Conocida a veces como falencias (flaws) o brechas (breaches)) representa el grado de exposición a las amenazas en un contexto particular.
  • Contramedida: Representa  los factores que usamos para prevenir  cualquier fallo en el sistema.

Amenazas

1.    Humanas:
·          Personal(se pasa por alto el hecho de la persona de la organización incluso a la persona ajeno a la estructura informática, puede comprometer la seguridad de los equipos)
·          Ex-empleados(generalmente se trata de personas descontentas con la organización que pueden aprovechar debilidades de un sistema del que conocen perfectamente, pueden insertar troyanos, bombas lógicas, virus o simplemente conectarse al sistema como si aun trabajaran el la organización)
·          Curiosos(son los atacantes juntos con los crakers los que más se dan en un sistema )
·          Hackers(una persona que intenta tener acceso no autorizado a los recursos de la red con intención maliciosa aunque no siempre tiende a ser esa su finalidad)
·          Crackers(es un término mas preciso para describir una persona que intenta obtener acceso no autorizado a los recursos de la red con intención maliciosa)
·          Intrusos remunerados(se trata de personas con gran experiencia en problemas de seguridad y un amplio conocimiento del sistema que son pagados por una tercera parte generalmente para robar secretos o simplemente para dañar la imagen de la organización)


2.    Lógicas :
·          Sofware incorrepto(a los errores de programación se les llama Bugs y a los programas para aprovechar uno de estos fallos se les llama Exploits.)
·          Herramientas de seguridad(cualquier herramienta de seguridad representa un arma de doble filo de la misma forma que un administrador las utiliza para detectar y solucionar fallos en sus sistemas o la subred completa un intruso las puede utilizar para detectar esos mismos fallos y aprovecharlos para atacar los equipos, herramientas como NESUS,SAINT o SATAN pasa de ser útiles a peligrosas cuando la utilizan Crakers.)
·          Puertas traseras(durante el desarrollo de aplicaciones grandes o sistemas operativos es habitual que entre los programadores insertar atajos en los sistemas habituales de autenticación del programa o núcleo de sistema que se esta diseñando.) Son parte de código de ciertos programas que permanecen sin hacer ninguna función hasta que son activadas en ese punto la función que realizan no es la original del programa si no una acción perjudicial.)
·          Canales cubiertos(son canales de comunicación que permiten a un proceso trasferir información de forma que viole la política de seguridad del sistema.)
·          Virus(un virus es una secuencia de código que se inserta en un fichero ejecutable denominado huésped de forma que cuando el archivo se ejecuta el virus también lo hace insertándose a si mismo en otros programas.)
·          Gusanos(es un programa capaz de ejecutarse y propagarse por si mismo a través de redes en ocasiones portando virus o aprovechando bugs de los sistemas a los que se conecta para dañarlos a ser difíciles de programar su numero no es muy elevado pero el daño que causa es muy grave.)
·          Caballos de troya(son instrucciones escondidas en un programa de forma que este parezca realizar las tareas que un usuario espera de el pero que realmente ejecuta funciones ocultas.), Programas conejo o bacterias(bajo este nombre se conoce a este programa que no hace nada útil si no que simplemente se delimitan a reproducirse hasta que el número de copias acaba con los recursos del sistema


3.      Físicas:
·          Robos
·          Sabotajes
·          destrucción de sistemas
·          Suministro eléctrico
·          Condiciones atmosféricas

·          Catástrofes naturales

Formas de protección de nuestro sistema:

Para proteger nuestros sistemas hemos de realizar una análisis de las amenazas potenciales, las perdidas que podrían generar y la probabilidad de si ocurrencia a partir de este análisis hemos de diseñar una política de seguridad que defina responsabilidades y reglas a seguir para evitar tales amenazas o minimizar sus efectos en caso de que se produzcan, a esto se le llama mecanismo de seguridad, son la herramienta básica para garantizar la protección de los sistemas o la red. Estos mecanismo se pueden clasificar en activas o pasivas.

Activas: evitan daños en los sistemas informáticos mediante empleo de contraseñas adecuadas en el acceso a sistemas y aplicaciones, encriptación de los datos en las comunicaciones, filtrado de conexiones en redes y el uso de software especifico en seguridad informática.


Pasiva: minimizan el impacto y los efectos causados por accidentes mediante uso de hardware adecuado, protección física, eléctrica y ambiental, realización de copias de seguridad.






Read more