Comprimir y descomprimir archivos tar y tar.gz con Linux
Descompresión de archivos tar y tar.gz
tar -zxvf yourfile.tar.gz -> con este comando extraemos el contenido del tar.gz en el directorio donde estamos parados.
Si queremos descomprimir el contenido el archivo en un directorio diferente debemos utilizar el operador -C de la siguiente manera
tar -C /nombre_de_la_caperta -zxvf yourfile.tar.gz
Compresión con tar y tar.gz
tar -cvzf file.tar.gz {carpeta que queremos comprimir}
Autocomplete for CodeIgniter 2.x en NetBeans
Para los que trabajamos con NetBeans y Codeigniter esta función es la solución al problema de Autocomple del código.
Al ejecutarla, nos descargamos un archivo autocomplete.php que debemos incluir dentro de nuestro proyecto.
Despues de hacer esto, hacemos un restart de NetBeans (cerrarlo y volverlo a abrir) y ya tenemos el autocompleter funcionando para todas nuestras librerias, modelos y CodeIgniter Base Classes
function generate_nb_autocompletion($with_declared_classes = FALSE) {
$CI = & get_instance();
$CI->load->helper("file");
$CI->load->helper("download");
$classes = array();
if ((bool) $with_declared_classes === TRUE) {
$declared = get_declared_classes();
foreach ($declared as $class) {
if (strpos($class, "CI_") === 0) {
$classes[str_replace("CI_", FALSE, $class)] = $class;
}
}
}
$libs = get_filenames(APPPATH . "libraries/", FALSE, TRUE);
foreach ($libs as $file) {
$file = str_replace(".php", FALSE, $file);
$classes[str_replace("MY_", FALSE, $file)] = $file;
}
$core_libs = get_filenames(APPPATH . "core/", FALSE, TRUE);
foreach ($core_libs as $file) {
$file = str_replace(".php", FALSE, $file);
$classes[str_replace("MY_", FALSE, $file)] = $file;
}
$files = get_filenames(APPPATH . "models/", FALSE, TRUE);
foreach ($files as $file) {
$file = str_replace(".php", FALSE, $file);
$classes[str_replace("MY_", FALSE, $file)] = $file;
}
$class_property = " /**\n";
$class_property.= " *\n";
foreach ($classes as $key => $value) {
$class_property.= " * @property {$key} \${$value}\n";
}
$class_property.= " */\n";
$declaration = $class_property . "Class CI_Model{}\n";
$declaration .= $class_property . "Class CI_Controller{}\n";
foreach ($libs as $file) {
$lib = str_replace(".php", FALSE, str_replace("MY_", FALSE, $file));
$declaration .= $class_property . "Class {$lib}{}\n";
}
foreach ($core_libs as $file) {
$lib = str_replace(".php", FALSE, str_replace("MY_", FALSE, $file));
$declaration .= $class_property . "Class {$lib}{}\n";
}
force_download("autocomplete.php", "<?php \n{$declaration}\n?>");
}
Saludos,
SEO: Redirigir trafico no-www al dominio www
Si queremos redirigir todo el tráfico no-www de nuestro sitio a nuestro dominio principal con www tenemos que escribir en el archivo .htaccess las siguientes lineas
# Redirect non-www traffic to www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^juanrabadan.com.ar [NC]
RewriteRule ^(.*)$ http://www.juanrabadan.com.ar/$1 [L,R=301]
Sudo sin contraseña en Ubuntu
Si queremos que cada vez ejecutamos un comando SUDO el sistema no nos pregunte el password, tenemos que editar el archivo de los sudoers. Para ello desde una terminal escribimos sudo visudo Luego agregamos al final de este archivo la siguiente linea
username ALL=(ALL) NOPASSWD: ALL Ctrl + X para salvar los cambios. Recuerden cambiar username por el nombre de usuario que utilicen.
Alias persistens en Ubuntu
Siempre que realizo tareas a través de una terminal (consola) para ejecutar algún proceso o ejecutar un determinando comando, pierdo mucho tiempo en recordar o escribir ciertos comandos que son demasiado extensos. Para resolver estos problemas existen los famosos alias.
En informática un alias es una orden que nos permite reemplazar una palabra o serie de palabras con otra. Su uso principal es el de abreviar órdenes o para añadir argumentos de forma predeterminada a una orden que se usa con mucha frecuencia.
Los alias se mantienen hasta que se termina la sesión en la terminal, pero normalmente se suelen añadir en el fichero de configuración del intérprete de órdenes (~/.bash_aliases) de forma que siempre están disponibles para todas las sesiones de terminal.
Debemos descomentar las siguientes tres líneas que se encuentran en el archivo ~/.bashrc
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Luedo editamos/creamos el archivo ~/.bash_aliases y dentro de este creamos todos los alias que precisemos uno debajo de otro por ejemplo.
alias lsa='ls -la'
Debemos guardar estos cambios y reiniciar la consola para que estos cambios se apliquen.
Funciones para extender el date helper en CodeIgniter
Hola a todos quiero compartir con ustedes estas funciones que utilizo a diario en mis proyectos de CodeIgniter. Las mismas están referidas a la manipulación de fechas y es muy buena idea extender el date helper de codeigniter con las mismas.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | /* Agregar a una fecha dias, meses o años */ function date_add($givendate,$day=0,$mth=0,$yr=0) { $cd = strtotime($givendate); return date('Y-m-d', mktime(date('h',$cd), date('i',$cd), date('s',$cd), date('m',$cd)+$mth, date('d',$cd)+$day, date('Y',$cd)+$yr)); } /* calcular la diferencia entre dos fechas */ function date_diff($start_date,$end_date,$format = 'd') { $start_date = strtotime($start_date); $end_date = strtotime($end_date); switch ($format) { //seconds case "s": return floor(($end_date-$start_date)); //minutes case "i": return floor(($end_date-$start_date)/60); //hours case "h": return floor(($end_date-$start_date)/3600); //days case "d": return floor(($end_date-$start_date)/86400); //months case "m": return floor(($end_date-$start_date)/2628000); //years case "y": return floor(($end_date-$start_date)/31536000); //days default: return floor(($end_date-$start_date)/86400); } } /* conocer la hora exacta de un determinado timezone */ function get_date($timezone = 'America/New_York', $full_date_time = false) { date_default_timezone_set($timezone); $date = ($full_date_time) ? date('D,F j, Y, h:i:s A') : date('Y-m-d'); date_default_timezone_set('UTC'); return $date; } |
Que son los hooks en CodeIgniter
Los hooks o ganchos que vienen con CodeIgniter nos permiten pinchar el framework sin la necesidad de hackear los archivos del core. Cuando CodeIgniter se inicia se ejecutan una serie de procesos, cuyo diagrama puede verse en el siguiente gráfico del flujo de la aplicación.

Algunas veces precisamos ejecutar ciertos procedimientos en determinados momentos del flujo de una aplicación. Por ejemplo queremos ejecutar un determinado script antes de que se cargue el controlador o justo despues.
Por suerte CodeIgniter nos trae de la mano una buena herramienta llamada ‘Hooks’ o ganchos, que simplemente nos permite hacer esto, ejecutar determinadas funciones en un determinado momento.
El “determinado momento”, básicamente puede ser:
- pre_system: al principio de la ejecución del sistema, sin haber cargado básicamente nada.
- pre_controller: ejecutar antes de cargar el controlador, una vez cargadas las librerías y todo el systema básico.
- post_controller_constructor: justo se ejecutar tras el constructor del controlador pero antes de cualquier función.
- post_controller: se ejecutará una vez lo haya hecho el controlador.
- display_override: esto es para sobrescribir la función que nos muestra la pagina finalizada en el navegador.
- cache_override: lo mismo pero para la función de cache, nos permite sobreescrivirla.
- scaffolding_override: para crear nuestro propio scaffolding.
- post_system: ejecutará el código al final de todos los procedimientos.
Prometo venir con un ejemplo en breve de como utilizar hooks.
Saludos a todos mis lectores.
Como utilizar repositorios SVN bajo Ubuntu Karmic
Hace tiempo que estaba buscando algun software para reemplazar al Tortoise, un cliente para repositorios SVN al cual estaba acostumbrado cuando era usuario de windows.
Finalmente pude dar con el RabbitCVS, el cual se integra completamente a Nautilus y está basado en Tortoise.
Aquí les dejo como instalarlo en Ubuntu 9.10 (Karmic)
$ sudo add-apt-repository ppa:rabbitvcs
$ sudo aptitude update
$ sudo aptitude install rabbitvcs-core rabbitvcs-nautilus
Reiniciamos el GUI
Y ya está listo para usar.
Algunas capturas para que vean la similitud con TortoiseSVN



Funciones para incluir en nuestros helpers de codeigniter
Estimados usuarios, hace un par de meses que estoy investigando y desarrollando una aplicación con CodeIgniter. En esta oportunidad quiero compartir con ustedes algunas funciones muy útiles para incluir en nuestros helpers o plugins.
Object2Array
Con esta funcion podremos pasar un objeto a un array de tipo asociativo.
function object2array($object) { if (is_object($object)) { foreach ($object as $key => $value) { $array[$key] = $value; } } else { $array = $object; } return $array; }
Array2Object
Esta función es la inversa de la anterior. Nos permite convertir un array asociativo en un objeto con propiedades.
function array2object($array) { if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key => $val) { $obj->$key = $val; } } else { $obj = $array; } return $obj; }
Normalizar un String
Una función esencial para los desarrolladores web. Para mejorar la visibilidad de nuestro sitio en los motores de búsqueda, se utiliza la reescritura de URL. Lo que permite que las URL sean más ricas a nivel de SEO. Con este propósito siempre es bueno tener una función para normalizar strings para que contengan caracteres válidos para nuestras url. Con esta función, aporte de mi amigo Angel, resuelves este problema.
function normalize($text, $separator = "-") { $isUTF8 = (mb_detect_encoding($text." ",'UTF-8,ISO-8859-1') == 'UTF-8'); $text = ($isUTF8) ? utf8_decode($text) : $text; $text = trim($text); $_a = utf8_decode("ÁÀãâàá"); $_e = utf8_decode("ÉÈéè"); $_i = utf8_decode("ÍÌíì"); $_o = utf8_decode("ÓÒóò"); $_u = utf8_decode("ÚÙúù"); $_n = utf8_decode("Ññ"); $_c = utf8_decode("Çç"); $_b = utf8_decode("ß"); $_dash = "\.,_ "; $text = ereg_replace("[$_a]", "a", $text ); $text = ereg_replace("[$_e]", "e", $text ); $text = ereg_replace("[$_i]", "i", $text ); $text = ereg_replace("[$_o]", "o", $text ); $text = ereg_replace("[$_u]", "u", $text ); $text = ereg_replace("[$_n]", "n", $text ); $text = ereg_replace("[$_c]", "c", $text ); $text = ereg_replace("[$_b]", "ss", $text ); $text = ereg_replace("[$_dash]", $separator, $text ); $text = ereg_replace("[^a-zA-Z0-9\-]", "", $text ); $text = strtolower($text); return ($isUTF8) ? utf8_encode($text) : $text; }
El archivo config.php
Leyendo un poco más sobre este framework di con un artículo en donde te explican una manera de hacer que el parámetro base_url definido en el archivo /config/config.php se escriba dinámicamente utilizando variables de servidor.
$config['base_url'] = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 's' : '').'://'.$_SERVER['HTTP_HOST'].str_replace('//','/',dirname($_SERVER['SCRIPT_NAME']).'/');
Fuente: Wiki CodeIgniter