sábado, 9 de junio de 2018

Instalación DEBIAN GNU/Linux 9.4

Debian GNU/Linux es una distribución de Linux creada en 1993 bajo la dirección de Ian Murdock para el proyecto Debian. Actualmente está disponible en más de 75 lenguajes y 10 plataformas diferentes. Debian es conocida por ser una distribución estable y con una infinidad de paquetes de software disponibles para los usuarios, debido a esto, varias distribuciones se han derivado de Debian como Ubuntu, Kali Linux, Tails, entre otras.

Logo Debian - Wikimedia
Personalmente, he utilizado debian hace tanto tiempo que ya no recuerdo cuántos años me ha servido esta gran distribución. Aunque inicialmente no inicié en el mundo del software libre con esta distribución, posteriormente migré a ella debido a su estabilidad y los enormes beneficios a nivel de máquina que en aquellos tiempos me ofrecía.

No voy a hablar de las grandes ventajas que tiene una distribución de Linux sobre otros sistemas operativos, eso requeriría de uno o varios post, lo que puedo decirles por ahora, es que una de las características que más me gusta de esta distribución es la facilidad de instalación y personalización sobre otras como por ejemplo Arch Linux. En materia de seguridad también es excelente, aunque se puede configurar, recién instalado no viene configurado el famoso sudoers, y las acciones que requieren privilegios siempre se deben hacer con el usuario root.

Instalación


Lo primero que debemos hacer es descargarnos la última versión del instalador para debian. En este caso, y en el caso en que se tenga acceso a una red con internet, la mejor opción es descargar la versión netinst. Una vez en la página de descarga, recomiendo descargar la versión para USB Sticks o Tiny CD's según la arquitectura de la computadora en dónde de va a instalar.

Descarga de la versión netinst para amd64

En la página del instalador encontrarán un menú a la izquierda en donde deberán seleccionar netboot y descargar el archivo mini.iso.

Actualmente el archivo mini.iso pesa 39 MB. Este archivo contienen el código de arranque junto con el instalador que descargará los paquetes necesarias desde internet y los instalará en la máquina.



Para crear una USB booteable pueden descargar el programa LinuxLive USB Creator, de otra forma pueden utilizar un programa de quemado para grabar los contenidos del archivo mini.iso en un CD. Al iniciar la máquina desde el medio obtendrán la siguiente pantalla de inicio.

Inicio del instalador - Debian 9.4

Seleccionamos la opción Install, posteriormente seleccionamos el idioma del instalador y con el que se instalará el sistema operativo, el país de localización y la distribución de teclado. En mi caso Spanish, ColombiaLatinoamericano.




En la siguiente opción digitamos el nombre que tendrá el equipo. Este nombre será visible por ejemplo cuando compartamos directorios entre sistemas.


Seleccionamos una ráplica de Debian, esto es simplemente configurar la descarga para tomar el archivo desde la localización más cercana. En micaso, he seleccionado Colombia, y una réplica de la universidad uniminuto debian.uniminuto.edu.



Si no hay ningún proxy HTTP que es lo más seguro seleccionamos <Continuar> y esperamos que comience el proceso de descarga de componentes básicos.



En la siguiente pantalla, tenemos que asignar la clave del supersusuario root. Este paso es muy importante, no se debe olvidar la clave que se asigna a este usuario. Digitamos la clave y seleccionamos <Continuar>.


Después de esto, crearemos la cuenta personal para el equipo. En primer lugar, digitamos el nombre de la persona que usará la cuenta y seleccionamos <Continuar>. De aquí en adelante seleccionaremos continuar siempre que se quiere seguir al siguiente paso.


Enseguida digitamos el nombre de usuario para cuenta.


Y finalmente la contraseña para la cuenta.


Llegamos al particionado del disco. En muy pocos casos recomiendo realizarlo de manera manual, así que vamos a hacerlo manual.


Seleccionamos el disco sobre el cuál particionaremos, los discos por lo general aparecerán con las iniciales SCSI.


Seleccionamos <Sí> para crear la tabla de particiones desde una vez para el disco.


Después de esto veremos el espacio libre del disco duro. Seleccionamos la la opción ESPACIO LIBRE para crear nuestra primera partición. Los sistemas Linux necesitan por lo menos dos particiones para funcionar. La primera patición será la zona swap, un espacio reservado en el disco para que funcione como área de intercambio, esto es, una reserva del disco que funciona como si fuera memoría RAM cuando la propia memoria se queda sin espacio.


Seleccionamos Crear una partición nueva, y calcularemos el espacio necesario de la siguiente manera.

- Si la memoria RAM es hasta de 1GB la partición swap debería tener un tamaño igual.
- Si la memoria RAM está entre 2GB y 4GB la swap debería ser la mitad de la memoria RAM.
- Si la memoria RAM tiene más de 4GB la swamp debería tener máximo 2GB.


En mi caso, seleccionaré 2GB para la swap.


Seleccionamos que la swap quede por órden al principio del disco.


Y finalmente seleccionamos que la partición funcione como área de intercambio.


Después de esto, volveremos a la pantalla de particionado en donde ya se debe ver la partición creada.


Siguiendo este mismo procedimiento, creamos una segunda partición con todo el espacio disponible para que funcione como sistema de ficheros ext4 transaccional y el punto de montaje será la raíz /.


El particionado quedará finalmente como se ve a continuación.


Para confirmar el particionado Seleccionamos la opción Finalizar el particionado y escribir los cambios en el disco. Enseguida aparecerá una ventana de confirmación preguntando nuevamente si el particionado es correcto, seleccionamos <Sí>.


Lo que sigue ahora puede tardar un poco, se descargará el sistema base y se instalará.



Posteriormente se preguntará si deseamos enviar estadísticas anónimamente, presonalmente, nunca he seleccionado este tipo de características en ningún software. Queda a criterior del lector si desea o no enviar estadísticas a los desarrolladores.


Después de la instalación del sistema base el sistema preguntará qué paquetes de software deseamos instalar, en este caso, lo ideal sería escoger un entorno de escritorio de acuerdo a nuestra máquina. De preferencia, siempre he trabajo con Xfce por ser un entorno liviado, sin embargo, no he de negar que las últimas versiones de GNOME son estéticamente excelentes, al igual que el KDE. Lo justo es que veáis un par de videillos para tomar finalmente la desición. Las demás también van a criterior del lector, si desea instalar un servidor web, ssh, etc.


Después de esto, el sistema instalará los programas seleccionados, este proceso es el más demorado de toda la instalación de acuerdo a los elementos seleccionados.


Ya estamos cerca de terner nuestra instalación completa de Debian GNU/Linux. Lo último que solicita el sistema instalar es el cargados de arranque GRUB. Este pequeño programa lo que hace es montar en la partición principal MBR, o GPT, los archivos necesarios para que el sistema arranque.


En este caso, como solo tenemos un disco duro físico aparecerá como /dev/sda.


Finalmente seleccionamos <Continuar> para terminar la instalación.



Nuestro sistema GNU/Linux, si seleccionaste Xfce, lucirá más o menos así. Hasta la próxima.

Debian Gnu/Linux instalado!


Referencias

- Wikipedia contributors. (2018, May 22). Debian. In Wikipedia, The Free Encyclopedia. Retrieved 02:43, June 8, 2018, from https://en.wikipedia.org/w/index.php?title=Debian&oldid=842438168

jueves, 7 de junio de 2018

Introducción a Oracle Database

Oracle Database es un sistema gestor de bases de datos objeto-relacional creado y comercializado por la empresa Oracle Corporation. Oracle DB es soportado en múltiples sistemas operativos y soporta múltiples idiomas (multilenguaje). Está desarrollado en parte ensamblador, lenguaje C y C++.

Oracle DB es uno de los motores más robustos del mercado. Algunas características que hacen de este motor tan robusto es la escalabilidad, permitiendo implementar de Oracle RAC en clústers de computadoras. También permite la integración de algoritmos de minería de datos utilizando el software de código abierto R, y la utilización de herramientas de inteligencia de negocios OLAP. Desde 2016, Oracle ocupa el primer puesto en el mercado de motores de bases de datos con ingresos por delante de grandes como Microsoft, IBM, SAP y Teradata.


Versiones de Oracle DB


Oracle Standard Edition (SE): Diseñada para servidores simples o en clúster. Contiene la base del funcionamiento del gestor de bases de datos y puede ser usado en servidores que contienen de una a cuatro CPUs, para más de cuatro debe adquirirse la licencia EE.

Oracle Enterprise Edition (EE)Incluye muchas más funcionalidades que la versión estándar SE, especialmente en áreas de seguridad y personalización. Tanto la versión SE como la EE no tiene límite de memoria y se puede hacer clustering con el software Oracle RAC. La versión EE no tiene límite de recursos disponibles por parte del servidor para la base de datos.

Oracle Standard Edition One (SE1 o SEO): Incluye las mismas características que la versión SE, con características restrictivas adicionales para servidores con una o dos CPUs y sin limitaciones de memoria.

Oracle Express Edition (XE)Es la versión gratuita del sistema gestor de bases de datos que permite utilizar el motor con restricción de 11GB para almacenamiento de datos (versión 11g) y uso en una sola CPU con límite de memoría RAM de 1GB. Es la versión ideal para los desarrolladores que empiezan a conocer el motor de base de datos y para probar aplicaciones antes de adquirir una versión de pago.

Oracle Database Persona Edition (PE): Es una versión de una sola máquina, un solo usuario, que tiene todas las características del motor de base de datos.

Las versiones SE y SE1 de Oracle DB fueron descontinuadas desde Diciembre 1 de 2015.

Oracle SQL Developer


Oracle SQL Developer es una herramienta gráfica gratuita que permite administrar los objetos de la base de datos, ejecutar scripts SQL, y probar sentencias PL/SQL. Este entorno integrado utiliza Java Development Kit dado que está desarrollado propiamente en Java. Permite tanto la administración de conexiones locales como conexiones remotas. Su editor avanzado permite el resaltado de sintaxis para PL/SQL y permite el control de sentencias mediante commits y rollbacks.

Finalmente, es importante saber también que Oracle permite el desarrollo de aplicaciones propias de Java y PL/SQL mediante herramientas como Oracle Forms, Oracle JDeveloper y Oracle Reports. Éstas herramientas permiten una integración total de dos productos clave en Oracle Corporation, Java y PL/SQL.

Para realizar una instalación del motor de base de datos Oracle Database puedes seguir este hilo leyendo nuestro post Instalación Oracle Database.


Referencias

- Oracle Database. (2015, November 2). In Wikipedia, The Free Encyclopedia. Retrieved 05:22, November 3, 2015, from 
- Oracle SQL Developer. (2015, November 2). In Wikipedia, The Free Encyclopedia. Retrieved 05:26, November 3, 2015, from 
https://en.wikipedia.org/w/index.php?title=Oracle_SQL_Developer&oldid=688730169
- Wikipedia contributors. (2018, May 24). Oracle Database. In Wikipedia, The Free Encyclopedia. Retrieved 05:59, June 7, 2018, from https://en.wikipedia.org/w/index.php?title=Oracle_Database&oldid=842798807

lunes, 4 de junio de 2018

Microsoft adquiere GitHub por 7.5 billones

GitHub es el repositorio de código fuente más grande en internet, alojando proyectos que van desde el mismo core de Linux, hasta los frameworks y programas de computadora más utilizados hoy en día. Compañías como Apple, Amazon, Google, Microsoft y otras grandes empresas utilizan todos los días Github. No es de extrañar la desición de compra que ha tomado Microsoft, pues tan solo el año pasado el grande cerró CodePlex, su propio repositorio de código compartido creado once años atrás.

Microsoft, es la organización activa con mayor número de "commits" en GitHub, dos millones aproximadamente. Este hecho, que es seguido al cierre de CodePlex el año pasado, alentaron a Satya Nadella, actual CEO de Microsoft, a tomar la desición de adquirir GitHub.

La noticia de cerrar CodePlex fue anunciada el 31 de Marzo del año pasado en el blog de Brian Harrys, en dicho post Harrys también anuncia entre otras cosas cómo será el plan de cierre que culminaría el 15 de Diciembre de 2017, día en que se cerraría definitivamente el proyecto. Según palabras de Harrys, años después de haber creado CodePlex, aparecieron alternativas increíbles para compartir código, entre ellas la más popular GitHub, la cual fue haciéndose con el código de los proyectos más populares a lo largo de los años.

"Almost 11 years after we created CodePlex, it’s time to say goodbye.  We launched CodePlex in 2006 because we, like others in the industry, saw a need for a great place to share software.  Over the years, we’ve seen a lot of amazing options come and go but at this point, GitHub is the de facto place for open source sharing and most open source projects have migrated there."

La noticia se ha confirmado el día de hoy en el blog oficial de Microsoft, ésta es la segunda gran adquisición de Satya Nadella, después de haber comprado hace dos años LinkedIn por 26.2 billones de dólares. Pues el día de hoy, GiHub se ha vendido por 7.5 billones de dólares. Y ya que estamos hablando de cifras, en la actualidad GitHub aloja más de 85 millones de repositorios, lo cuáles son alimentados por 28 millones de desarrolladores. 

Chris Wanstrath - CEO GitHub (izquierda),
 Satya Nadella - CEO Microsoft (centro),
Nat Friedman - Co-fundador GitHub (derecha)

¿Qué consecuencias traerá esta poderosa adquisición del gigante?. Muchos desarrolladores se han anunciado exponiendo sus pros y sus contras al respecto. En OperadorTernario no daremos por lo pronto una posición al respecto, dejando al lector que obtenga sus propias conclusiones. 


Referencias

- Microsoft confirms it will acquired GitHub for 7.5 billion - The Verge. (2017, March 31). In The Verge. Retrieved 11:11, June 4, 2018, from https://www.theverge.com/2018/6/4/17422788/microsoft-github-acquisition-official-deal
- Shutting down CodePlex | Brian Harrys blog. (2017, March 31). In Brian Harrys blog | Everything you want to know about Visual Studio ALM and Farming. Retrieved 11:11, June 4, 2018, from https://blogs.msdn.microsoft.com/bharry/2017/03/31/shutting-down-codeplex

miércoles, 3 de enero de 2018

Historia de los lenguajes de programación

Los lenguajes de programación están clasificados en tres grandes grupos: lenguajes maquina, lenguajes de ensamblador, y lenguajes de alto nivel. Los lenguajes máquina son los únicos lenguajes que puede entender una CPU. Las instrucciones de estos lenguajes están codificadas en binario a muy bajo nivel. Cada tipo de CPU interpreta estos bits de forma diferente y existe un lenguaje por cada máquina. Un programa escrito en lenguaje maquina puede lucir de la siguiente forma:

10110011   01111010
10011111   01011100   10111011
00011001   11010001
10010100   00011001   11010001
10010000   11010001   10010110

Un nivel más arriba, encontramos los lenguajes de ensamblador, los cuales proporcionan una serie de símbolos para escribir instrucciones simples a la computadora. Un programa en ensablador puede lucir de la siguiente forma:

MV     0,         SUM,
MV     NUM,  AC
ADD   SUM,   AC
STO    SUM    TOT

Sin embargo, este conjunto de instrucciones es imposible de entender para la computadora y por esto se hace necesario un programa intermedio que traduzca las instrucciones a binario, este programa se denomina ensamblador.

Tomado de Wikipedia - Lenguaje de alto nivel

Por otro lado, los lenguajes de programacion de alto nivel permiten un nivel de abstraccion más alto permitiendo poder escribir programas para cualquier tipo de computadora independientemente del hardware. Estos lenguajes al igual que el anterior grupo necesitan un programa intermedio que traduzca las instrucciones de alto nivel a un lenguaje de mas bajo nivel de tipo ensamblador, este programa se denomina compilador. Un lenguaje de programacion de alto nivel puede lucir de la siguiente forma:

X = (Y + Z) / 2

Con lo cual, la programacion llega a ser un poco más parecida al lenguaje natural que utilizamos para comunicarnos pero mucho mas formal y sin ambiguedades. Uno de los primeros lenguajes de programacion de alto nivel fue FORTRAN (FORmula TRANslator) el cual fue diseñado para procesar instrucciones matemáticas. Otro lenguaje muy popular en los inicios de la progamacion de alto nivel fue COBOL (COmmon Business-Oriented Languaje) diseñado para el procesamiento de datos en procesos de negocio. FORTRAN y COBOL fueron desarrollados a finales de los años 50 y comienzos de los años 60. Algunos lenguajes de esta época fueron los siguientes:

1951 – Regional Assembly Language
1952 – Autocode
1954 – IPL (forerunner to LISP)
1955 – FLOW-MATIC (led to COBOL)
1957 – FORTRAN (First compiler)
1957 – COMTRAN (precursor to COBOL)
1958 – LISP
1958 – ALGOL 58
1959 – FACT (forerunner to COBOL)
1959 – COBOL
1959 – RPG
1962 – APL
1962 – Simula
1962 – SNOBOL
1963 – CPL (forerunner to C)
1964 – Speakeasy (computational environment)
1964 – BASIC
1964 – PL/I
1966 – JOSS
1967 – BCPL (forerunner to C)

Más adelante aparece el lenguaje BASIC (Benginners All-porpose Symbolic Instructional Code) desarrollado principalmente para enseñar a programar a los estudiantes y el cuál fue el primer lenguaje diseñado para microcomputadoras. Junto con PASCAL, otro lenguaje muy popular de enseñanza, sentaron las bases de la programación tal y como la conocemos actualmente.

Breve historia de las computadoras - Cómo surgieron las microcomputadoras ? Cuáles fueron las denominadas generaciones de computadoras ...

A comienzos de los años 70 AT&T Bells Labs desarrolla el lenguaje de programacion C. Más tarde, a comienzos  de los años 80, influenciado por el paradigma de programacion orientado a objetos se desarrolla C++ que incluye soporte a dicho paradigma. Sin embargo, el concepto de la POO (Object Oriented programming) fue implementado desde mucho antes (comienzos de los 60) por un lenguaje llamado Simula. Otro lenguje que implementa este paradigma es Smalltalk (desarrollado por Xerox PARC). Algunos lenguajes representativos de esta época fueron los siguientes:

1968 – Logo
1969 – B (forerunner to C)
1970 – Pascal
1970 – Forth
1972 – C
1972 – Smalltalk
1972 – Prolog
1973 – ML
1975 – Scheme
1978 – SQL (a query language, later extended)

A lo largo de los años 80 hubo un gran interés en consolidar los lenguajes imperativos más que desarrollar nuevos paradigmas de programación. El gobierno de los Estados Unidos estandarizó el lenguaje de programación Ada, mientras que Japón gastó tiempo y dinero en lo que llamó "La quinta generación de lenguajes de programación", los cuáles incorporaban constructores lógicos de lenguaje. Algunos lenguajes representativos de esta época fueron los siguientes:

1980 – C++ (as C with classes, renamed in 1983)
1983 – Ada
1984 – Common Lisp
1984 – MATLAB
1984 - FoxPro (as FoxBASE, later developing into Visual FoxPro
1985 – Eiffel
1986 – Objective-C
1986 – LabVIEW (Visual Programming Language)
1986 – Erlang
1987 – Perl
1988 – Tcl
1988 – Wolfram Language (as part of Mathematica, only got a separate name in June 2013)
1989 – FL (Backus)

Una gran tendendencia que se presentó fue la de desarrollar sistemas a gran escala a través del uso de módulos, o unidades de código organizadas. Algunos sistemas modulares fueron desarrollados en lenguajes como Ada, Modula y ML.

A mediados de los años 90, con la rápida creciente del internet nacieron lenguajes como JavaScript y PHP. Rasmus Lerdorf, creador de PHP, incluso mencionó que su intención no fue crear un lenguaje de programación, las cosas se dieron por casualidad dada la necesidad de modularizar su página web personal.

Introducción al Lenguaje PHP - Qué puede hacer PHP ? cómo surgió este lenguaje ?

Influenciados por la filosofía  RAD (Rapid application development), emergieron algunos lenguajes que venían con IDE (Entorno integrado de desarrollo), garbage collection (manejo automático de memoria), tales como Java y Visual Basic. Esta misma filosofía propició el desarrollo de los lenguajes de scripting, los cuales tenían la ventaja de realizar tareas con menos líneas de código, lo cual se traducía en mayor mantenibilidad del código y portabilidad. Algunos lenguajes de este tipo son Python, Ruby, R e incluso el mismo PHP. Otros lenguajes desarrollados durante este periodo fueron los siguientes:

1990 – Haskell
1991 – Python
1991 – Visual Basic
1993 – Ruby
1993 – Lua
1993 – R
1994 – CLOS (part of ANSI Common Lisp)
1995 – Ada 95                                                 
1995 – Java
1995 – Delphi (Object Pascal)
1995 – JavaScript
1995 – PHP
1997 – Rebol

Finalmente, las tendencias actuales apuntan a la programación funcional, y el uso de mecanismos de modularidad como traits, mixins, delegates y aspects. El uso de XML para las interfaces gráficas ha tomado también gran popularidad en lenguajes como XAML y XUL y parcialmente en el desarrollo Android. Algunos lenguajes de la nueva era son los siguientes:

2000 – ActionScript
2001 – C#
2001 – D
2002 – Scratch
2003 – Groovy                                             
2003 – Scala
2005 – F#
2006 – PowerShell
2007 – Clojure
2009 – Go
2010 – Rust
2011 – Dart
2011 – Kotlin
2011 – Red
2012 – Julia
2014 – Swift
2016 – Ring

Con el desarrollo de la computación cuántica, incluso se ha escuchado comunicados oficiales de lenguajes de programación cuánticos, debido a que este tema es algo extenso también, decidimos dejar a tarea del lector la investigación de este tipo de lenguajes. Hasta la próxima!.


Referencias

- C. Wu, Thomas (2010). An introduction to Object-Oriented Programming with Java™ 5ed. NY: Mc Graw Hill.
- History of programming languages. (2018, January 3). In Wikipedia, The Free Encyclopedia. Retrieved 04:51, January 4, 2018, from https://en.wikipedia.org/w/index.php?title=History_of_programming_languages&oldid=818389327