Devolver una cadena al revés con PHP strrev – PHP Tips

strrev es una función que nos permite generar una cadena invertida. A primera vista seguro que es una función para la cual muchos no le veríamos utilidad ninguna, pero quizá en alguna ocasión puede que nos venga bien conocerla.

Ejemplo:


$cadena = "Hola Mundo";

$invertida = strrev("Hola Mundo");

echo $invertida; // devuelve odnuM aloH

 

Funciones de Arrays: array_shift y array_unshift – PHP Tips

Hay muchas funciones con arrays que cuando las ves en el listado de funciones crees que no las vas a usar nunca, quizá en el momento no le ves mucha utilidad, pero llega un día en el cual tienes que echar mano de ellas, esto me ha sucedido con las funciones array_shift y array_unshift, que ha llegado un día en el cual, no solo una, sino las 2 me han sido de mucha utilidad.

Array_shift

Definición:

array_shift() Quita el primer valor del array y lo devuelve, acortando el array un elemento y corriendo el array hacia abajo. Todas la claves del array numéricas serán modificadas para que empieze contando desde cero mientras que los arrays con claves literales no serán modificados.

Uso:

mixed array_shift(array &$array);

Array_unshift

Definición:

array_unshift() añade los elementos pasados al inicio de array. Observe que la lista de elementos se añade como un todo, por lo que los elementos añadidos permanecen en el mismo orden. Todas las claves numéricas del array serán modificadas empezando a contar desde cero mientras que las claves literales no se tocan.

Uso:

int array_unshift ( array &$array , mixed $value1 [, mixed $… ] );

Ejemplo

Imaginemos que tenemos que obtener datos desde un fichero CSV procesarlo y escribir los datos en otro fichero CSV. Estos ficheros siempre llevan un encabezado el cual nos define el nombre de las columnas. Esta linea no nos será de mucha utilidad a la hora de procesar los datos contenidos en el fichero, pero es necesaria a la hora de escribir los datos en el otro fichero.


// $csv contiene los siguientes datos:
  $csv = array(
           array('nombre','apellido','email','usuario'),
           array('Yo','Mismo','mi@email.es',''),
           array('Tu','Tambien','tu@email.com','')
         );
$cabecera = array_shift($csv); // $cabecera almacenara la primera fila
foreach ($csv as &$var) { // proceso el foreach por referencia para modificar los datos del array
    $var['usuario'] = $var['nombre'].".".$var['apellido']; //concateno el nombre y apellidos
}
$array_unshift($csv, $cabecera); // pongo el array con los nombres de columna al principo

+ Info:
array_shift

array_unshift

Cambiar de OpenJDK a SunJDK en Ubuntu – Ubuntu Tips

Por defecto en Ubuntu como JDK de Java tenemos la OpenJDK la cual suele funcionar bastante bien,  pero si queremos habilitar la ‘Oficial’ o SunJDK tenemos que realizar los siguientes pasos:

  • Abrimos el Centro de Software Ubuntu
  • Seleccionamos en el menú Editar > Orígenes de Software
  • Seleccionamos la pestaña Otro software
  • Activamos las opciones de Socios de Canonical (las dos)

Después de hacer esto lo mas rapido es abrir una terminal y ejecutar los siguientes comandos

  • sudo apt-get update
  • sudo apt-get install sun-java6-jdk sun-java6-jre sun-java6-plugin
  • sudo update-alternatives -–config java

En el listado que nos saldrá al ejecutar el update-alternatives seleccionamos el SunJDK

 

Enhanced by Zemanta

Conocer la longitud y latitud en Google Maps

Si habéis trabajado o trabajáis, os pensáis trabajar con el API de Google Maps, esta web os va a ser de mucha utilidad http://universimmedia.pagesperso-orange.fr/geo/loc.htm ya que poniéndole la dirección del lugar que buscáis o moviendo el marcador os va a devolver la latitud y longitud, y nos va a venir muy bien para poder diseñar nuestros propios mapas con el API de Google Maps.

Web de la API v3 de Google Maps https://developers.google.com/maps/documentation/javascript/?hl=es

Como cambiar de MyISAM a INNODB – MySQL Tips

Antes en MySQL el mecanismo de almacenamiento predeterminado esta MyISAM,  hasta que cambio a INNODB. ¿Cual es mejor? ¿Debería migrar mis bases de datos a INNODB? a la primera pregunta diría que es bastante mejor INNODB y si deberíamos o no migrar las bases de datos, pues en casos será conveniente y en otros no, pero si creamos bases de datos desde cero es conveniente establecer el mecanismo como INNODB.

Como cambiar de MyISAM a INNODB


ALTER TABLE nombre_tabla ENGINE=INNODB;

No existe un comando que nos permita cambiar todas las tablas de una base de datos de MyISAM a INNODB, y para hacerlo tenemos que cambiar una a una.

Para facilitar las cosas siempre podemos crearnos un script que acceda a nuestra base de datos, tenga permisos ALTER y hacerlo todo de una vez.

He desarrollado un script en PHP que lo hace


<?php
/**
* Created by Ruben Lacasa Mas
* User: Ruben Lacasa Mas <ruben@rubenlacasa.es>
* Date: 18/10/13
* Time: 12:18
*/
$dbhost = 'hostname';
$dbname = 'dbname';
$dbuser = 'dbuser';
$dbpass = 'dbpassword';
$dsn = 'mysql:dbname='.$dbname.';host='.$dbhost;
try {
$dbh = new PDO($dsn, $dbuser, $dbpass);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$sql = "SHOW TABLES";
$query = $dbh->prepare($sql);
$query->execute();
$tables = $query->fetchAll(PDO::FETCH_CLASS);
foreach ($tables as $table) {
$sqlAlter = "ALTER TABLE ".$table->Tables_in_dbname." ENGINE=INNODB;";
$dbh->exec($sqlAlter);
}

view raw

alterEngine.php

hosted with ❤ by GitHub

Mas información: http://dev.mysql.com/doc/refman/5.0/es/converting-tables-to-innodb.html http://es.wikipedia.org/wiki/InnoDB

The world’s most popular free OS | Ubuntu 13.10 “Saucy Salamander”

Ya esfa disponible la nueva versión de Ubuntu 13.10, toca actualizarse.
http://www.ubuntu.com

Configurar la dirección ip estatica en Ubuntu – Ubuntu Tips

Ubuntu LinuxCon las nuevas versiones de ubuntu, la configuración de la red una vez finalizada la instalación se queda como ip dinámica. Esto puede ser muy útil para los equipos de escritorio, y en el caso de querer cambiarlo a estático a través del configurador de red se hace rápido, pero, en el caso de los servidores, no es muy practico que digamos, y en la mayoria de los casos, yo por lo menos lo hago, prescindo del entorno gráfico para ese tipo de sistemas.

Entonces, ¿como cambiamos la configuración de dinámica a estética?. En versiones anteriores de Debian, existía una herramienta que se llamaba etherconf la cual era muy útil, pero la he buscado en los repositorios de Ubuntu y no la he encontrado, de todas maneras se puede hacer de una manera no muy complicada a mano.

El fichero /etc/network/interfaces

En este fichero se establece la configuración de los interfaces de red de nuestro sistema. Por defecto tendremos establecida la configuración del interfaz lo (loopback) y el eth0 que corresponde a la tarjeta de red. Si tenemos varias tarjetas de red en el sistema podemos tener otra como eth1 o eth2.

Para establecer en el interfaz eth0 la dirección IP estática antes de ponernos a modificar nada tendremos que conocer los siguientes datos:

  • Dirección IP que queramos asignar a nuestro sistema. Parece una obviedad pero es importante saber que dirección le queremos asignar y asegurarnos que no esta repetida en nuestra red local.
  • Mascara de nuestra red. En la mayoría de los casos las redes que usamos en nuestra red local usan una mascara de 24 (255.255.255.0) pero por si acaso no cuesta nada asegurarse.
  • Dirección de la puerta de enlace (Gateway). Aqui generalmente se especifica la dirección IP de nuestro Router.
  • Dirección de retransmisión (Broadcast) de nuestra red (opcional). Si estamos usando una red de 24 sera la misma dirección que nuestro ordenador pero sustituyendo el ultimo octeto por 255.

En caso de duda no cuesta nada, antes de modificar nada, realizar desde la terminal un ifconfig o ifconfig -a para ver como se ha configurado nuestra red automáticamente y apuntarnos esos valores.

Para este ejemplo voy a usar unos valores típicos

  • Direccion IP: 192.168.1.2
  • Mascara: 255.255.255.0
  • Gateway: 192.168.1.1
  • Broadcast: 192.168.1.255

El fichero nos quedara de esta manera

<br /><br />auto lo<br /><br />iface lo inet loopback<br /><br />auto eth0<br /><br />iface eth0 inet static<br /><br />address 192.168.1.2<br /><br />netmask 255.255.255.0<br /><br />gateway 192.168.1.1<br /><br />broadcast 192.168.1.255<br /><br />

Una vez guardados estos valores en el fichero interfaces,(para guardarlo tienes que ser root) antes de ponernos a reiniciar la red o el sistema, tenemos que modificar otro fichero, ya que si no lo hacemos probaremos a ver si tenemos conexión y no nos conectaremos a ningún sitio.

El fichero /etc/resolvconf/resolvconf.d/base

En este fichero tenemos que especificar los servidores DNS que vamos a usar. Antes el modificando el fichero /etc/resolv.conf ya lo tenias todo echo pero ahora si lo haces, cada vez que reinicies el sistema te encontraras que no hay nada de lo que habías puesto. Ahora es el fichero base el que hay que modificar. Si tenemos servidor DNS dentro de nuestra red local lo pondremos antes que ningún otro DNS. Y si no tenemos y no sabemos cual configurar siempre podemos usar el de Google que funciona muy bien y es muy fácil de recordar (8.8.8.8)

<br /><br />nameserver 127.0.0.1<br /><br />nameserver 8.8.8.8<br /><br />search midominio.es<br /><br />

La ultima linea (search) si no estamos dentro de ningún dominio no hace falta ponerla.

Ahora si una vez modificado este fichero ejecutamos los siguientes comando y ya lo tendremos todo configurado para que funcione

<br /><br />resolvconf -u<br /><br />service networking restart<br /><br />

Gestioando el resolvconf http://enavas.blogspot.com.es/2012/11/resolvconf-gestionando-etcresolvconf.html

Enhanced by Zemanta

Determinar y cambiar la codificación de un fichero – Linux Tips

Puede ser que alguna vez nos sea útil saber cual es la codificación de un fichero, y para conocerla podemos usar el comando file


file -bi test.txt

text/plain; charset=us-ascii

 

 

El ejemplo anterior nos dice que es un fichero de texto y que su codificación es us-ascii.

Si queremos cambiar la codificación de ese fichero podemos utilizar o bien el comando iconv o recode.


iconv -f ascii -t utf8 test.txt > testUTF8.txt

 

 


recode UTF-8 test.txt

Ahora nuestro fichero esta codificado en UTF-8.

Articulo original en inglés

http://mindspill.net/computing/linux-notes/determine-and-change-file-character-encoding/

 

 

 

Enhanced by Zemanta

Crear accesos directos en Ubuntu – Ubuntu Tips

Ubuntu LinuxDesde que Ubuntu ha adoptado Unity, una de las cosas que mas echo en falta es la de crearme mis propios accesos directos en el escritorio. Es verdad que si instalas una aplicación desde la tienda ubuntu, estos programas una vez lanzados desde el buscador y abiertos, desde la barra de programas y haciendo botón derecho sobre el los puedes anclar, y luego llevarte el lanzador en el escritorio, pero, ¿y si te descargas el programa desde Internet y no requiere instalación, como puede ser Eclipse o Zend Studio? en ese caso tenemos dos opciones, o ir a la carpeta donde lo tenemos, y ejecutarlo o crearnos un acceso directo. Hay varias maneras de hacerlo, y puede ser un poco tedioso, pero no es complicado. La manera mas sencilla, por lo menos desde mi punto de vista es creando el fichero .deskop.

Abrimos un editor de textos, como podría ser el Gedit y escribimos lo siguiente:


[Desktop Entry]

Version=9.0.4

Type=Application

Terminal=false

Comment=Zend Studio 9.0.4

Icon=/opt/ZendStudio/icon.xpi

Name=Zend Studio 9.0.4

Exec=/opt/ZendStudio/ZenStudio

Este fichero lo guardamos como ZendStudio.desktop y listo, ya tenemos el acceso creado en el escritorio. Una vez guardado comprobar si tiene los permisos de ejecución

Si queremos agregar al menú este acceso directo, podemos ponerlo en 2 sitios, o bien habilitado para todos los usuarios.

Para todos los usuarios:

Con permisos de administrador movemos el fichero al directorio /usr/share/applications

Solo para nuestro usuario:

Movemos el fichero al directorio $home/.local/share/applications

Enhanced by Zemanta

Utilidad para la conversión de dígitos binarios – Utilidades Web

En alguna ocasión puede suceder que a la hora de especificar las unidades en algún fichero de configuración no podamos utilizar unidades mas amigables, como los Megas o los Gigas, y tengamos que especificarlo en Kilobytes o bytes. Para esas ocasiones esta web nos puede ser de bastante utilidad.

http://www.onlineconversion.com/computer_base2.htm