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

martes, 26 de diciembre de 2017

Trastorno por Videojuegos - Nueva enfermedad

International Statistical Classification of Diseases and Related Health Problems (ICD), por sus siglas en Inglés, es el estándar que regula la clasificación internacional de enfermedades y problemas de la salud a nivel mundial. En su onceava versión (ICD-11), la cuál aún está en revisión, se incluye a solicitud de la Organización Mundial de la Salud (OMS) la enfermedad "Gaming Disorder", la cuál llevandola al castellano sería algo muy parecido a Trastorno por Videojuegos, lo que vendría a ser un desorden mental según la categoría en donde lo han colocado.

Acaso es tan malo juegar videojuegos ?


WikiHow
Aunque en primera instancia parecería que una persona que gasta grandes cantidades de tiempo jugando videojuegos podría tener este diagnóstico, lo cierto es que se necesita analizar varios aspectos de la vida como el familiar, social, personal, laboral, entre otros. Incluso los juegos de violencia como los de acción o los tipo "shooter" pueden mejorar habilidades sociales y relacionadas con la salud como es la percepción y la memoria según un estudio de la American Psychological Association. Si esto es así, entonces quién realmente tendría este trastorno ?


Cómo identificar un posible trastorno ?


Según la ICD este trastorno se define como sigue:

"El trastorno por videojuegos es caracterizado por un patrón de comportamiento de juego persistente o recurrente (juegos de video o digitales), bien sea online o no, manifestados por 1) comportamiento no controlado hacia los videojuegos (en frecuencia, intensidad, duración, terminación, contexto, ...); 2) Incremento extendido hacia los videojuegos sobre otros intereses de la vida o actividades diarias; 3) Continuidad y escala en el juego a pesar de las consecuencias negativas que este pudiere traer. El patrón de comportamiento es de suficiente gravedad como para causar un deterioro significativo en las áreas de funcionamiento personal, familiar, social, educativo, ocupacional u otras áreas importantes. El patrón de comportamiento del juego puede ser continuo o episódico y recurrente. El comportamiento del juego y otras características son normalmente evidentes durante un período de al menos 12 meses para que se asigne un diagnóstico, aunque la duración requerida puede acortarse si se cumplen todos los requisitos de diagnóstico y los síntomas son graves."
Un comportamiento compulsivo hacia los videojuegos es tal vez el síntoma más fácil de identificar. Muchos jugadores desarrollan un comportamiento violento hacia cualquier cosa que pueda afectar el desempeño de su juego, si a esto se le suma una reducción del interés y afectación en el desempeño de otras actividades como el trabajo, colegio o universidad no sería muy difícil realizar un primer diagnóstico de la persona.

A quién afecta este trastorno ?


Si pensabas que esto del "Gaming Disorder" es solo cuestión de chicos estás equivocado. Según un Reporte de 2009 la edad promedio de los jugadores de videojuegos está en 35 años y hay una creciente de mujeres adentrándose en este mundo.

De acuerdo a esto, es fundamental la moderación temprana para evitar futuros transtornos. Un juego descontrolado, a horas no debidas, y sin una frecuencia controlada muy probablemente generará un trastorno que puede perjudicar la salud y las actividades diarias en todo ámbito.


Fuentes

- Do You Have Video "Gaming Disorder", A Newly Recognized Mental Health Condition ?. (2017, December 24). In Forbes. Retrieved 20:24, December 26, 2017, from https://www.forbes.com/sites/brucelee/2017/12/24/do-you-have-video-gaming-disorder-a-newly-recognized-mental-health-condition
- World Health Organization Says Video Game Addiction Is a Mental Health Disorder—Are They Really That Bad?. (2017, December 26). In Newsweek - News, Analysis, Politics, Business, Technology. Retrieved 20:24, December 26, 2017, from http://www.newsweek.com/world-health-organization-says-video-game-addiction-mental-health-disorder-are-759660

domingo, 24 de diciembre de 2017

Obtén Google Drive Ilimitado

Cuántas veces has necesitado una o dos Gb adicionales en tu cuenta de drive y has tenido que crear otra cuenta Gmail o pasar tus archivos a otra nube ?. Lo que pocos saben, es que Google brinda servicios de almancenamiento ilimitado!! si tu cuenta de correo cumple unas características especiales. A continuación, veremos qué condiciones permiten este plus adicional a tu cuenta.


Si tu cuenta de correo Gmail no es tan antigua como la mía, seguramente habrás llegado en algún momento al límite de tu cuenta de 15 Gb. Aunque Google anteriormente brindada al menos 25 Gb para cuentas públicas, lo cierto es que hoy en día 15 Gb se quedan cortas aún guardando copias de seguridad solamente de tus archivos más importantes en la nube.

Si bien es cierto que Google ofrece actualmene services desde $2 USD al mes para 100 Gb, debemos aprovechar los beneficios que traen algunas cuentas de google que sí tienen almacenamiento ilimitado.

En 2014, Google anunció que las cuentas de Google Apps dentro de las cuáles se incluye Google Drive, no tendrán limitaciones de almacenamiento mediante su programa Google for Education. Este programa es totamente gratuito para administradores de colegios y universidades y es por esto que es raro que muchas universidades a nivel estatal tengan servicios de correo, almacenamiento y otros con el gigante Google.

Aunque es difícil de creer, si estudias en algún colegio o universidad y tienes un correo .edu, muy seguramente tendrás Google Drive ilimitado. Recién acabo de enterarme y he entrado al Storage de Google y lo he comprobado!.

Ejemplo de mi cuenta educativa en la Universidad del Tolima

Google upgrade - cuenta ilimitada para .ut.edu.co

Enhorabuena, ahora podremos tener más almacenamiento!, así que nunca dejes de estudiar!.

sábado, 23 de diciembre de 2017

Estudia programación en el SENA, los cursos en Java te sorprenderán

El Sena es una de las mejores opciones para adentrarse en el mundo de la programación en Java. Los últimos cursos han sido diseñados de manera consecutiva para un aprendizaje rápido y funcional. Pero antes, veamos alguna información relacionada al SENA y su proceso de aprendizaje.

El Servicio Nacional de Aprendizaje SENA es una entidad colombiana que se encarga de dar programas de formación titulada y complementarios. El principal objetivo del SENA es formar el recurso humano con habilidades técnicas para el mercado laboral en distintas áreas del conocimiento. El servicio actualmente es solo accesible para colombianos, extranjeros nacionalizados y colombianos en el extranjero en cursos virtuales.


Cursos Virtuales - SENA Sofía Plus


Sofía Plus es la plataforma madre de cursos virtuales en el SENA  mediante la cual se publica la oferta disponible. Los cursos relacionados con programación en Java, los cuales son los que nos interesan particularmente, podemos listarlos en orden de complejidad de la siguiente manera:




Variables y estructuras de control son los primeros conceptos que se deben aprender para manejar el lenguaje Java. Este curso, es requisito para todos los demás cursos en Java y enseña lo básico de la programación en este lenguaje.




Este curso está enfocado a aprender a utilizar de manera básica las interfaces gráficas en Java, eventos, y el paradigma de programación orientado a objetos, lo cual incluye clases, métodos, uso de objetos, entre otros. Es esencial en la formación del pensamiento orientado a objetos, y muy seguramente lo que se aprenda con este curso servirá en un futuro para utilizar rápidamente otros lenguajes orientados a objetos.




Este curso está enfocado en la lectura y escritura de archivos de texto junto con el manejo de excepciones en Java. El uso de archivos de texto es una característica muy importante en cualquier lenguaje de programación, puesto que representa una de las formas de leer (input) y exportar (ouput) la información.




Este curso está enfocado en aprender los conceptos sobre arreglos unidimensionales y multidimensinoales, así como también arreglos de objetos y colecciones. El manejo de datos en memoria permite el procesamiento de grandes cantidades de datos y es una característica que en otros lenguajes está presente.




Los procesos simultáneos o hilos, son elemenentos de la programación que permiten desarrollar tareas en segundo plano y no interrumpir el funcionamiento normal de los programas. En este curso se aprederá el uso de hilos en Java y menús de aplicación.

Otros cursos que pueden ser de interés podrían ser los siguientes.




Este curso está disponible de manera presencial y virtual en algunas épocas del año. El objetivo de este programa es formar en conocimiento como análisis de requisitos y desarrollo de sistemas en lenguajes como Java, PHP o .NET.




Este programa está destinado a enseñar los conceptos básicos en el diseño de bases de datos relacionales, modelo entidad-relación y normalización.

Todos estos cursos y muchos más están disponibles en la página oficial de Sofía Plus. Para descargar los certificados se debe ingresar a la página oficial de certificados SENA y con solamente el documento de identificación podrás acceder a ellos. Este portal es muy funcional ya que permite a las empresas validar la certificación de los estudiantes que han aprobado cursos.

Recuerda que estos cursos están en su mayoría disponibles todo el año excepto en época decembrina y Enero. Mientras tanto cuéntanos qué cursos has aprobado en el SENA de manera virtual ? Hasta pronto!.

martes, 8 de marzo de 2016

Sintaxis básica en PHP

Este artículo ha sido actualizado el día 03/09/2017 por políticas de calidad de la información del sitio para brindar una información oportuna y actualizada.

Ya hemos visto anteriormente una pequeña Introducción al Lenguaje PHP, en esta ocasión, empezaremos con el estudio de la sintaxis básica del lenguaje y cómo combinarlo con el lenguaje de marcado HTML.

Etiquetas de Apertura y Cierre


Cómo en muchos lenguajes de scripting, PHP utiliza etiquetas que identifican el inicio y fin de un script PHP. Éstas etiquetas pueden ser usadas en scripts que contengan solamente código PHP o bien una combinación con otro lenguaje como HTML. A continuación, vemos cómo PHP se puede utilizar como lenguaje embebido dentro de HTML.

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?php echo "<p>Hola mundo</p>"; ?>
  </body>
</html>

Además de esto, puede darse el caso contrario, y utilizar PHP como controlador para imprimir código HTML.

<?php
   echo "<!DOCTYPE html>";
   echo "<head><title>Título Página</title></head>";
   echo "<body>";
   echo "<p>Hola mundo!</p>";
   echo "</body>";
?>

Ambas formas son correctas y tienen usos específicos. La primera forma es común cuando se está diseñando la capa de presentación de una aplicación web. La segunda forma tiene un uso más extendido en el diseño de controladores de aplicación (lógica de negocio).

Cuando se trabajan con código PHP embebido en HTML, por lo general las impresiones en pantalla se realizan mediante la siguiente sintaxis de atajo denominada short echo tag (note la etiqueta de apertura <?=).

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?= "<p>Hola mundo</p>"; ?>
  </body>
</html>

Por otro lado, cuando se realizan scripts puramente en PHP (sin escapes a HTML), el grupo de desarrollo de PHP aconseja no agregar la etiqueta de cierre para prevenir la impresión accidental de nuevas líneas o espacios en blanco. Vea por ejemplo como en el siguiente código se ha omitido la etiqueta de cierre ?>.

<?php
class Cliente
{
   public $nombre;

   public function obtenerNombre()
   {
      return $this->nombre;
   }
}

El significado completo del código anterior puede parecer algo complejo de entender para el programador amateur, sin embargo, el objetivo de este ejemplo es ver cómo en las aplicaciones de producción puede omitirse la etiqueta de cierre en archivos puramente PHP.

Por otro lado, desde PHP 7 se eliminaron las etiquetas <%, %>, <%= disponibles en antiguas versiones de PHP junto con la etiqueta de script HTML <script language="php">. El uso de estas etiquetas está desaconsejado y se recomiendo no utilizarlas en aplicaciones PHP.

Escape de código PHP en HTML


Existen varias formas de escapar del lenguaje HTML cuando se utiliza en conjunto con PHP. Una de ellas es la que se vio en el primer ejemplo del presente post. Consiste básicamente en abrir y cerrar las etiquetas de PHP cada vez que se requiera imprimir código HTML. Sin embargo, observemos ahora cómo luce este tipo de escape con otros elementos del lenguaje como las sentencias condicionales.

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?php
         if (true) {
            echo "<p>Hola mundo</p>";
         }
         else 
         {
            echo "<p>Esto no se imprime</p>";
         }
      ?>
  </body>
</html>

PHP ha diseñado una forma alternativa de sintáxis que puede ser utilizada en documentos que tienen características de plantilla. Para nuestro caso, supondremos que el archivo anterior es una plantilla, y lo modificaremos de la siguiente forma para que utilice la sintáxis alternativa. Esta forma de escapar el código PHP es mucho más entendible y compacta que la sintaxis de llaves utilizada en controladores PHP.

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?php if (true): ?>
         Hola mundo 
      <?php else: ?>
         Esto no se imprime
      <?php endif; ?>
  </body>
</html>

Finalmente, si combinamos la shor echo tag con un operador ternario para simular el bloque if del código anterior, obtendríamos el siguiente script mucho más compacto.

<!DOCTYPE html>
<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>Título</title>
   </head>
   
   <body>
      <?= (true) ? "Hola mundo" : "Esto no se imprime" ?>
  </body>
</html>

La belleza, en todo su esplendor!. Se ha refactorizado el código de los anteriores ejemplos en tan solo una línea de código PHP. Este ejemplo simple muestra algunos aspectos avanzados de la programación como lo es la refactorización de código y las sentencias de atajo como el operador ternario. De esta forma, el nuevo programador de PHP puede adentrarse poco a poco en el lenguaje implementando buenas prácticas de programación y refactorización.

Nota: Como otros lenguajes (C, Perl) cada sentencia PHP debe terminar con un punto y coma. Sin embargo, en algunas partes de los ejemplos se ha omitido dado que PHP no los requiere en dichos casos. El lector debe observar los ejemplos en los cuales se utliza la short echo tag, dado que con esta sentencia no se necesita un punto y coma.


Comentarios en PHP


PHP soporta comentarios tipo C, C++ y Unix-shell. A continuación se muestra la forma en que se puede comentar el código PHP de cada una de las formas posibles.

<?php
   // Esto es un comentario en una sola línea tipo C++
   echo "Hola ";

   # Esto es un comentario tipo Unix-shell
   echo "mundo";

   /* Este es un comentario
      multilínea */
   echo "!";
?>

Los comentarios multilínea no deben ser anidados por ninguna razón en PHP. Los comentarios en PHP sirven para documentar el código y que en el futuro los programadores puedan entender un poco mejor las razones por las cuales hemos creado variables, procedimientos, entre otros componentes del script. Para más información sobre cómo documentar el código puedes visitar phpDocumentor. Hasta la próxima!.


Referencias

- PHP: PHP tags - Manual. (2016, March 7). In PHP: Languaje Reference - Manual. Retrieved 03:42, March 7, 2016, from http://php.net/manual/en/language.basic-syntax.phptags.php
- PHP: Comments - Manual. (2016, March 7). In PHP: Languaje Reference - Manual. Retrieved 03:42, March 7, 2016, from http://php.net/manual/en/language.basic-syntax.comments.php

domingo, 21 de febrero de 2016

Schemas en Oracle Database

En anteriores post hemos visto Cómo instalar Oracle Database y Cómo instalar Oracle SQL Developer para el manejo de las bases de datos Oracle. En el post del día de hoy comenzaremos con el estudio de Oracle Database y el lenguaje estándar SQL.

Database Schemas


Un Schema (Esquema) es una colección de estructuras lógicas de datos, o esquemas de objetos. En el post Conceptos básicos en Oracle Database se explicó el concepto de estructuras lógicas y estructuras físicas de almacenamiento en Oracle Database. En lo que refiere a un esquema, este siempre pertenece a un usuario de la base de datos con el mismo nombre. A su vez, un usuario siempre tiene un esquema asociado.

Para entender esto mejor, visualicemos esquema SYSTEM del cual el usuario dueño es SYSTEM. Para observar las tablas del sistema que tienen asociado el esquema SYSTEM, es decir, donde SYSTEM es el dueño basta realizar el SELECT mostrado a continuación.


El ejemplo anterior nos indica cómo consultar las tablas asociadas a un esquema/usuario de la base de datos. Más adelante veremos cómo crear un esquema, lo cual por intuición, significa crear un usuario. Por ahora, es necesario comprender cómo es la arquitectura de las bases de datos Oracle para guardar bases teóricas sólidas. Por esto reiteró, es necesario comprender lo básico en arquitectura de Oracle leyendo el post Conceptos básicos en Oracle Database.

Los esquemas de objetos pueden ser manipulados mediante el lenguaje SQL e incluyen los siguientes tipos.

Object Schema
Clusters
Database Links
Database triggers
Dimensions
External procedure libraries
Indexes and index types
Java classes, Java resources, and Java sources
Materialized views and materialized view logs
Object tables, object types, and object views
Operators
Sequences
Stored functions, procedures and packages
Synonyms
Tables and index-organized tables
Views

Existen otros tipos de esquemas de objetos que no están contenidos en ningún esquema de bases de datos. Estos son:

Object Schema
Contexts
Directories
Profiles
Roles
Tablespaces
Users

Es de notar, que un Tablespace puede contener objetos de diferentes esquemas de bases de datos, a su vez, un objeto puede estar contenido en diferentes Tablespaces. Es decir, no existe una relación entre Esquemas y Tablespaces. A lo largo del curso Oracle, expondremos en detalle los esquemas de objetos más importantes en Oracle Database. En nuestro próximo post, entraremos en detalle sobre la creación de bases de datos y usuarios. Hasta pronto!


Referencias

- Schema Objects. (2015, July 27). In Oracle Help Center. Retrieved 03:42, February 21, 2016, from https://docs.oracle.com/cd/B19306_01/server.102/b14220/schema.htm

sábado, 20 de febrero de 2016

Instalación Sublime Text Linux

Sublime Text es un editor de texto escrito en Python que ha demostrado ser uno de los mejores editores multiplataforma desde su segunda versión. En la Página oficial de Sublime Text se pueden descargar los instaladores tanto para Windows como para Linux 32/64 bits. Según sea la arquitectura de nuestra computadora deberemos descargar la carpeta correspondiente como tarball.



Instalación sobre Debian GNU/Linux


Después de decargar el source, descomprimirmos la carpeta descargada y navegamos en consola hasta ubicarnos dentro de ella. Creamos la carpeta sublime_text en /opt, creamos el enlace simbólico a /usr/bin y copiamos el ícono de acceso a la aplicación en el menú del sistema.

cd Downloads/sublime_text_3
mkdir /sublime_text/opt
cp -Rv * /opt/sublime_text
ln -s /opt/sublime_text/sublime_text /usr/bin/sublime-text
cp /opt/sublime_text/sublime_text.desktop /usr/share/applications

Para verificar que todo ha quedado correctamente configurado, ejecutamos el comando sublime-text en consola y tendrá que abrir enseguida el Sublime Text. Debe ocurrir exactamente los mismo si ejecutamos el Sublime Text desde el menú del sistema. A continuación dejo las imagenes de ejecución en consola y la búsqueda en el menú del sistema. Hasta la próxima!.

Ejecución por consola de Sublime Text

Búsqueda de Sublime Text en el menú de GNOME