Inteligencia artificial: “hic sunt dracones”

No Comments
Hic sunt dracones

En las cartas náuticas de la antigüedad, más allá de las tierras conocidas, se dibujaban seres monstruosos e imposibles acompañados de la leyenda Hic sunt dracones (aquí hay monstruos) indicando a los navegantes que a partir de ese meridiano era tierra ignota, que toda navegación más allá era, a la vez, pionera y bajo su responsabilidad.

Hablando de computación llamamos Inteligencia Artificial  a un conjunto de técnicas capaces de hacer “aprender” a un programa acerca de determinadas cosas. En esta determinación podemos incluir tareas tan variadas como el análisis de imágenes para diagnóstico médico, análisis de los correos electrónicos para filtro de spam, finanzas, procesos de optimización del tráfico rodado, y un larguísimo etcétera que sale del propósito de este artículo.

Read More…

Validación “edit unique” en CodeIgniter

No Comments

Extracto

Es cierto, CodeIniger, tiene muy buen sistema de validaciones, aunque le falten algunas tan tontas como un validador de fechas, y uno que antes de realizar un update en la base de datos compruebe que los campos que hemos declarado como claves UNIQUE sigan siéndolo con los nuevos datos que estamos modificando.

@pedroruizhidalg―La situación es la siguiente: tengo una tabla a la que llamo kanban, cuyo campo kanban_name he descrito como único. Así: Read More…

Trabajar con MY_Controller de CodeIgniter

No Comments

Extracto

Reemplazar las librerías nativas de CI con nuestras propias versiones. Asignando un nombre a los archivos de clase idéntico a una librería nativa causaremos que CI los utilice en lugar de las clases nativas. Esta característica se invoca de la forma más elemental: llamar a la librería igual que su nombre nativo de CI. Por ejemplo para reemplazar con nuestro propio código a la librería nativa de Email tan solo tenemos que crear el archivo application/libraries/Email.php y declarar su clase como:

class CI_Email{
// aquí tu código ///
}

@pedroruizhidalg―Hay que tener en cuenta que la mayoría de las clases empiezan con el prefijo CI, aunque no todas. Has de tener cuidado con esto. No obstante si lo que necesitamos es añadir una (o varias) funcionalidades extra a nuestras clases nativas, es más recomendable usar la extensión de las librerías nativas que andar reconstruyendo todo desde cero: reinventando la rueda.

Read More…

Gestor de copias de seguridad incrementales en Linux

No Comments

Extracto

@pedroruizhidalg― Ya escribimos sobre las copias de seguridad en Linux, otra estupenda opción es rsync. Este comando (https://rsync.samba.org/) de los creadores de samba, tiene, en principio, está pensado para la sincronía remota de directorios. No obstante, su funcionalidad es muy amplia y puede ser dedicado a otros usos.

Read More…

Copias de seguridad en Linux

1 Comment

Extracto

@pedroruizhidalg― Qué duda cabe, las copias de seguridad son un mal necesario en los sistemas de información tanto en los productivos, como de desarrollo e igualmente en los comerciales. El valor de una copia de seguridad es directamente proporcional a la valoración (en euros) de nuestros datos. Los informáticos que me lean entienden perfectamente qué estoy diciendo…

Descripción

Generalmente el comando que se usa en Linux para hacer copias de seguridad es tar. Si bien este comando es estupendo para crear almacenes de ficheros, es decir, tener agrupados archivos que por cualquier motivación queramos mantener agrupados (comprimidos o no), este comando deja mucho que desear en cuanto a tiempos de respuesta para copias de seguridad en sistemas de grandes volúmenes de datos. El tiempo es oro. Esto nos lleva al comando cpio.

Read More…

Categories: linux, Tecnología Tags: Etiquetas: , , ,

Los permisos de archivos en Linux

No Comments

Extracto

@pedroruizhidalg― Cada archivo y directorio en Linux tiene asociado un conjunto de permisos de determina quiénes pueden acceder y en qué forma. Estos permisos se pueden establecer para restringir el acceso a tres entidades y de tres formas: a usted, al grupo al que perteneces y a otros ―es decir, todo el mundo―.

Read More…

Categories: Computación, linux, Tecnología, Tecnologías Tags: Etiquetas: , , ,

Google Inbox para gestionar mucho correo

No Comments

Extracto

@pedroruizhidalg― Gestionar mucho correo se ha convertido en una tarea tan necesaria como desagradable. Seguramente os ocurrirá como a mí y recibís cientos de correos a la semana. La mayor parte de ellos totalmente inútiles, algunos de ellos interesante y pocos a los que prestar atención. Google tiene una buena solución para esto. Google Inbox.

inbox

Abreviaturas usadas

Descripción

La perfecta integración de Google Inbox con el móvil ―al menos con Android― es perfecta. Permite gestionar varias cuentas de correo, obviamente todas Gmail, con una interfaz ligera con la que puedes cambiar de usuario con un solo gesto, tanto en el navegador del equipo como en el móvil.

Ejecución

Lo primero que tienes que hacer cuando entras en Inbox es entrar al menú,, a la izquierda de Recibidos.inbox1

Tras esto entras en configuración→otros.

inbox2

Y puedes redireccionar todo el tráfico de Gmail a Inbox marcándolo como indico. Si luego no te agrada o quieres dejar de probarlo, tan solo desactiva la redirección eliminando la marca.

Inbox, viene preparado para filtrar, filtrar mucho. Por defecto todos vienen creados unos contenedores para viajes, compras, finanzas, social, notificaciones, foros, promociones y la posibilidad de crear nuevos según tu conveniencia. No obstante yo los tengo desactivado, pues prefiero que me llegue todo al área de Recibidos. Verás por qué. El tratamiento correos de inbox es tan sumamente útil que de una vez por todas vas a tener la bandeja de entrada (Recibidos) vacía.

inbox3

Cuando pases el ratón por encima de cada email aparecen los manejadores que puedes ver a la derecha. El primero es para fijar el email a Recibidos mientras no elimines la chincheta. El segundo es para posponer. Una pasada. Puedes posponerlo para una hora, para otro día, incluso para otro lugar; yo lo he probado incluso con distintas provincias, funciona de maravilla. El tercero envía el email a la bandeja de completados, sin tener que leerlo si no te apetece. El cuarto es para clasificarlo si te apetece o moverlo a otro lugar.

Siempre podrás consultar los archivos pospuestos en su bandeja correspondiente. Igualmente con completados. Que lo elimines de la bandeja de Recibidos no significa que lo hayas eliminado. En absoluto. No obstante, esto también es configurable.

Verás que bajo la bandeja de Enviados, aparece un icono de Recordatorios.

inbox4

Otra maravilla. Olvídate de enviarte correos a ti mismo para acordarte de las cosas. Esto se integrará perfectamente con tu Google Calendar. Todos los recordatorios que tú actives estarán por defecto con la chincheta en la bandeja de recibidos y perfectamente clasificados en tu calendar, tanto en el ordenador como en tu móvil.

Tienes que saber que la «gestualidad» en el móvil es distinta a la del entorno en un navegador. En el móvil cuando recibes un correo lo mandas a completado desplazándolo a la derecha. Mientras que si lo desplazas a la izquierda estarás mandándolo a Pospuestos, listo para ser programado.

Mi táctica personal es como antes dije mantener la bandeja de entrada vacía. Nunca antes lo había conseguido con tanta comodidad.

Epílogo

Espero y deseo que este artículo haya sido de utilidad. Es muy importante para la continuación de trabajos de calidad recibir algún tipo de feedback por parte de los lectores: es decir, responde con comentarios, evalúa la calidad del trabajo con el sistema de estrellas, comparte con tus redes sociales, da me gusta, marca el blog como favorito. Son pequeños gestos que ayudan a mantener el trabajo de creación.

Clave pública @pedroruizhidalg.pub.key

exlibri, sapere aude

exlibri, sapere aude

#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel

Comando ln para crear vínculos de archivos

No Comments

Extracto

@pedroruizhidalg― Linux puede dar a un archivo más de un nombre usando la orden ln. Tal vez te interese hacer referencia a un archivo usando diferentes nombres para acceder a él desde diferentes directorios. A estos nombres adicionales se les conoce como vínculos.

Abreviaturas usadas

Descripción

La orden ln lleva dos argumentos: el nombre del archivo original y el nuevo nombre del archivo adicional. La operación ls listará ambos nombres de archivo, si bien, en realidad, físicamente ser trata de un solo archivo.

Existen dos tipos de vínculos, los vínculos simbólicos y los vínculos duros.

Ejecución

Vínculos duros:

Como forma general:

$ ln nombre-del-archivo-original nombre-añadido-del-archivo

Veamos un ejemplo práctico.

$ touch archivoOriginal
$ echo "este es el contenido del archvivo Original" > archivoOriginal 
$ cat archivoOriginal 
este es el contenido del archvivo Original
$ ln archivoOriginal otroarchivo
$ ls
archivoOriginal otroarchivo
$ cat otroarchivo 
este es el contenido del archvivo Original
$

Puede parecer que se trate de una copia, pero no lo es. Realmente estamos accediendo al mismo archivo con otro nombre. Si ahora estuviera dando clases pondría el ejemplo. Yo contesto a mi esposa cuando me llama “Pedro” y a mi hija cuando me llama “papá”, si bien yo sigo siendo el mismo. Pasemos a otra cosa:

En el ejemplo anterior he puesto en negrita lo que tenemos que teclear y he dejado en texto normal el resultado que nos ofrece el ordenador. Pasemos a explicar los pasos.

  1. Con touch archivoOriginal creamos un archivo vacío.
  2. Con la siguiente orden echo introducimos en el archivoOriginal la cadena de texto que está entre comillas.
  3. Con la orden cat comprobamos el contenido de archivoOriginal.
  4. El comando ln crea un vínculo a archivoOriginal.
  5. Mediante ls vemos que ahora disponemos de dos archivos diferentes.
  6. Con cat otroarchivo listamos su contenido y comprobamos que es idéntico al archivoOriginal.

¿Cómo estar seguros que se trata en realidad del mismo archivo?

Usando el comando ls con la opcion -li nos muestra el número de inodo que indica que en realidad apunta al mismo lugar físico.

$ ls -li
total 8
4980891 -rw-rw-r-- 2 pedro pedro 43 oct 26 19:59 archivoOriginal
4980891 -rw-rw-r-- 2 pedro pedro 43 oct 26 19:59 otroarchivo
$

Observamos en los números en negrita que se trata de idéntica localización de inodo.

Un vínculo duro puede fallar en linux si está colocado en otro directorio, esto es debido a la segmentación que puede sufrir ―de hecho sufre― el sistema de archivos.

Vínculos simbólicos

Un vínculo simbólico indica un acceso a un directorio o fichero que se encuentra en un lugar distinto dentro de la estructura de directorios. Una modificación realizada utilizando este enlace se reflejará en el original; pero, por el contrario, si se elimina el enlace, no se eliminará el auténtico. Veamos el ejemplo:

$ ln -s archivoOriginal otroarchivo
$ ls -l
total 4
-rw-rw-r-- 1 pedro pedro 43 oct 26 19:59 archivoOriginal
lrwxrwxrwx 1 pedro pedro 15 oct 26 20:47 otroarchivo -> archivoOriginal

Si otroarchivo fuera movido a otro directorio seguiría apuntando al mismo archivo de forma efectiva al archivo al que pertenece.

Comprobamos que ambos apuntan al mismo inodo.

$ ls -li
total 4
4980891 -rw-rw-r-- 1 pedro pedro 43 oct 26 19:59 archivoOriginal
4981228 lrwxrwxrwx 1 pedro pedro 15 oct 26 20:47 otroarchivo -> archivoOriginal

Una práctica interesante, sería colocar en nuestro directorio .bin, un enlace simbólico al comando whish con el nombre «donde».

La orden which busca el directorio donde se encuentra un comando determinado. Por ejemplo which php en mi sistema responde /usr/bin/php

Ejecutamos lo siguiente:

$ which which
/usr/bin/which
$ cd ~/.bin
$ ln -s /usr/bin/which donde
  1. Usamos la orden which para obtener la localización del comando which.
  2. Nos situamos en nuestro directorio de ejecuciones de scripts.
  3. Realizamos un enlace simbólico al comando which desde ~/.bin/donde

A partir de este momento siempre que tengamos bien configurado el directorio de ejecuciones de scripts, podemos acceder al comando which mediante donde.

 $ donde php
/usr/bin/php
Tux: orden ln

comando ln

Epílogo

Como truco, la práctica totalidad de los enlaces que se realizan son enlaces simbólicos.

Espero y deseo que este artículo haya sido de utilidad. Es muy importante para la continuación de trabajos de calidad recibir algún tipo de feedback por parte de los lectores: es decir, responde con comentarios, evalúa la calidad del trabajo con el sistema de estrellas, comparte con tus redes sociales, da me gusta, marca el blog como favorito. Son pequeños gestos que ayudan a mantener el trabajo de creación.

Clave pública @pedroruizhidalg.pub.key

#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel
Categories: linux, Tecnología Tags: Etiquetas: ,

Linux, comando file

No Comments
linux shell bash

Extracto

@pedroruizhidalg― En ocasiones necesitamos clarificar el contenido de un directorio. En Linux todo es archivo. Es decir, el sistema operativo no necesita ni requiere las extensiones de los archivos. En otras palabras, podemos dar la extensión .mp3 a un archivo de python, o bien .txt a un archivo de sonido. Las extensiones para Linux «son cosas de humanos».

El comando file sirve para clarificar a qué tipo, o cómo se ejecuta ―qué papel juega― un archivo dentro del sistema. Bien usado puede ser una herramienta interesante.

Abreviaturas usadas

mp3― Formato de compresión digital para la transmisión rápida de archivos de audio y vídeo a través de Internet.

txt―Un archivo de texto llano, texto simple, texto plano, texto sencillo o texto pelado es un archivo informático compuesto únicamente por texto sin formato, sólo caracteres, lo que lo hace también legible por humanos. …

Descripción

El comando file determina el tipo al que pertenece un archivo. Este comando acepta la opción -f para poder leer la entrada desde un archivo. Algunas veces tenemos tal pollo formado en un directorio que esto termina por poner algo de luz en él.

$ file archivos
archivos: ASCII text
$

Ejecución

Por regla general, uso este comando de la siguiente forma:

$ ls > archivos
$ file -f archivos >> archivos
$ cat archivos
archivos
lexico.l
sintactico.tab.c
sintactico.tab.h
sintactico.y
archivos:         ASCII text
lexico.l:         UTF-8 Unicode text
sintactico.tab.c: C source, ASCII text
sintactico.tab.h: C source, ASCII text
sintactico.y:     C source, UTF-8 Unicode text
$
  1. Introducimos el listado del directorio en un archivo (al que llamo «archivo»).
  2. Ejecutamos el comando file con -f para que pueda tomar como entrada el archivo que hemos generado. Haciendo que él escriba añadiendo al archivo el análisis de tipo de los ficheros del directorio.
  3. Mostramos por la salida estándar el contenido de «archivo» y comprobamos que la primera parte corresponde a la descripción de los componentes del directorio y la segunda a su análisis de tipo.

Epílogo

 

Espero y deseo que este artículo haya sido de utilidad. Es muy importante para la continuación de trabajos de calidad recibir algún tipo de feedback por parte de los lectores: es decir, responde con comentarios, evalúa la calidad del trabajo con el sistema de estrellas, comparte con tus redes sociales, da me gusta, marca el blog como favorito. Son pequeños gestos que ayudan a mantener el trabajo de creación.

9cf76-ubuntu

Clave pública @pedroruizhidalg.pub.key

#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel
Categories: Computación, linux, Tecnología Tags: Etiquetas: , ,

Leer argumentos en scripts en bash

No Comments
keep calm and #!/bin/bash

Extracto

@pedroruizhidalg― Como venimos escribiendo acerca del entorno de terminal bash sobre sus variables, las posibilidades del entorno y preparar nuestro sistema para ejecutar scripts incluso con algún ejemplo sobre criptografía en este artículo vamos a ver la forma de recibir argumentos desde la linea de comandos para ser leídos en un script bash.

Abreviaturas usadas

Descripción

Como describimos en el artículo sobre bash  los comandos en Linux por regla general se ajustan al siguiente esquema.

$ Orden Opciones Argumentos

También por regla general los argumentos en Linux suelen ser nombres de archivos. Pero nosotros podemos crear scripts conforme a nuestros gustos, apetencias, forma de trabajar…

Ejecución

Una vez creado ambiente para ejecutar scripts, a modo de ejemplo vamos a crear un script para copiar archivos a un directorio que vamos a crear para tener un repositorio de los archivos que nos interese.

$ cd ~/
$ mkdir sandbox
  1. Nos situamos en nuestra directorio home.
  2. Creamos el directorio sandbox en nuestro home.

Ahora nos dirigimos al directorio que hemos preparado para ejecutar scripts ―en mi caso ~/.bin―. Allí vamos a crear un script que copie automáticamente a sandbox.

$ cd ~/.bin
$ touch tosandbox
$ chmod u+x tosandbox
$ gedit tosandbox &
  1. Cambiamos el directorio a .bin.
  2. Creamos el archivo “tosandbox” vacío.
  3. Le damos permisos de ejecución para el usuario (o sea, nosotros)
  4. Editamos con gedit el archivo en background. Por supuesto puedes usar el editor que más te guste. Guardamos el archivo.
#!/bin/bash
cp $1 ~/sandbox/
  1. En la primera linea informamos al sistema que este script debe ser ejecutado en bash.
  2. En la segunda $1 corresponde al argumento ―es decir, en este caso al nombre del fichero que queremos copiar― en la carpeta sandbox. Es decir, los argumentos, por orden de aparición, adquieren dentro del script como nombre para referirnos a ellos $1, $2, $3
Probamos que funciona
$ cd ~/
$ touch archivodeprueba
$ tosandbox archivodepueba
$ ls -l sandbox
$ ls -l
total 0
-rw-rw-r-- 1 pedro pedro 0 oct 24 16:25 archivodeprueba

Como podemos comprobar, y era previsible, tosandbox a enviado nuestro archivo de prueba a la carpeta deseada.

Usar un número desconocidos de argumentos

Sí. Se puede hacer así. Modificamos nuestro ~/.bin/sandbox

#!/bin/bash
cp $* ~/sandbox/

En la segunda línea hemos sustituido 1 por *. Esto significa que “todos los argumentos que enviemos serán copiados a la carpeta sandbox. Lo probamos.

$ cd ~/
$ touch unfichero otrofichero
$ tosandbox unfichero otrofichero
$ ls -l sandbox
total 0
-rw-rw-r-- 1 pedro pedro 0 oct 24 16:25 archivodeprueba
-rw-rw-r-- 1 pedro pedro 0 oct 24 16:35 unarchivo
-rw-rw-r-- 1 pedro pedro 0 oct 24 16:35 otroarchivo

Epílogo

Con esta entrada del blog podéis empezar a crear vuestros propios scripts aportándoles argumentos desde la linea de comandos.

Espero y deseo que este artículo haya sido de utilidad. Es muy importante para la continuación de trabajos de calidad recibir algún tipo de feedback por parte de los lectores: es decir, responde con comentarios, evalúa la calidad del trabajo con el sistema de estrellas, comparte con tus redes sociales, da me gusta, marca el blog como favorito. Son pequeños gestos que ayudan a mantener el trabajo de creación.

Clave pública @pedroruizhidalg.pub.key

#aboutpedroruizhidalgo
[polldaddy poll=9120832]
♻ miotroblogsite ahorra papel
Categories: Computación, linux, Tecnología, Tecnologías Tags: Etiquetas: