<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');if ( ! function_exists('pr')){function pr($thing){echo '<pre>';var_dump($thing);echo '</pre>';die();}}
jueves, 19 de diciembre de 2013
codeigniter debug helper
Little helper to print_r variables with pre
Etiquetas:
CodeIgniter,
create,
debugger,
helper
martes, 17 de septiembre de 2013
restart and stop apache tomcat in linux
# Restart
sudo /etc/init.d/tomcat7 restart
# Stop
sudo /etc/init.d/tomcat7 stop
miércoles, 28 de agosto de 2013
php ternary operator - operador ternario en php
muy util en vistas:
<?phpesa cosa, equivale a todo este if:
$agestr = ($age < 16) ? 'child' : 'adult';
?>
<?php
if ($age < 16) {
$agestr = 'child';
} else {
$agestr = 'adult';
}
?>
jueves, 22 de agosto de 2013
swap dom elements with jquery
Util función para intercambiar elementos en el dom:
function swapElements(elm1, elm2) {
var parent1, next1,
parent2, next2;
parent1 = elm1.parentNode;
next1 = elm1.nextSibling;
parent2 = elm2.parentNode;
next2 = elm2.nextSibling;
parent1.insertBefore(elm2, next1);
parent2.insertBefore(elm1, next2);
}
uso:
swapElements(i[0], k[0]);
no olvidarse si i y k fueron extraidos del dom con jquery de colocar el subindice.
Etiquetas:
dom,
javascript,
jquery,
objects
miércoles, 31 de julio de 2013
Primeros pasos en laravel 4
Hoy les vengo a contar sobre este framework que llegó a mi casi por casualidad por ser el que utilizó un cliente para crear un CMS, al cual nos ha solicitado adaptar numerosos templates.
A primera vista parece un poco complejo comparado con codeigniter, pero a medida que fuí aprendiendo a utilizarlo no ha dejado de sorprenderme, lo práctico que resulta blade (el parseador de vistas y templates), y la potencia y flexibilidad que nos da el archivo de routes es increible, por ejemplo.
El ORM resulta fácil de aprender y nos simplifica la vida con las consultas evitando todos esos mugrosos joins que usaba antes en codeigniter. Todavía hay muchisimas funciones del framework que aún no he investigado pero en este momento ya puedo afirmar que aprender laravel vale la pena.
Me he descargado recientemente la versión 4 del framework recien sacada del horno. Comenzaré a utilizarla para un proyecto personal, no se sorprendan si muchas de las siguientes entradas del blog están dedicadas a laravel4.
lunes, 15 de julio de 2013
copy things from one server to another - copiar archivos entre servidores
Con scp copiamos carpetas o archivos entre servers sin tener que descargar todo y volverlo a subir. Solo ejecutar el comando y se arreglan entre ellos.
copy from a remote machine to my machine:
copy from my machine to a remote machine:
copy all file*.txt from a remote machine to my machine (file01.txt, file02.txt, etc.; note the quotation marks:
copy a directory from a remote machien to my machine:
copy from a remote machine to my machine:
scp user@192.168.1.100:/home/remote_user/Desktop/file.txt /home/me/Desktop/file.txt
copy from my machine to a remote machine:
scp /home/me/Desktop/file.txt user@192.168.1.100:/home/remote_user/Desktop/file.txt
copy all file*.txt from a remote machine to my machine (file01.txt, file02.txt, etc.; note the quotation marks:
scp "user@192.168.1.100:/home/remote_user/Desktop/file*.txt" /home/me/Desktop/file.txt
copy a directory from a remote machien to my machine:
scp -r user@192.168.1.100:/home/remote_user/Desktop/files /home/me/Desktop/.
lunes, 8 de julio de 2013
many dropbox in the same ubuntu - muchos dropboxes en ubuntu
Tienes la necesidad de tener varias cuentas de dropbox conviviendo en tu equipo? Bueno a mi me pasa, una para el trabajo, una para la vida ... se puede usar varios dropbox en ubuntu de la siguiente manera:
Con esto aparece el típico instalador de dropbox permitiendonos sincronizar otra cuenta.
Si queremos que el nuevo dropbox se inicie con el sistema editamos sudo gedit /etc/rc.local
agregamos
y listo.
HOME=$HOME/nombredelanuevacarpetadedropbox /usr/bin/dropbox start -i
Con esto aparece el típico instalador de dropbox permitiendonos sincronizar otra cuenta.
Si queremos que el nuevo dropbox se inicie con el sistema editamos sudo gedit /etc/rc.local
agregamos
su tunombredeusuario -c “HOME=$HOME/nombredelanuevacarpetadedropbox /usr/bin/dropbox start”
y listo.
Etiquetas:
dropbox,
mismo ubuntu,
muchos
martes, 2 de julio de 2013
codeigniter log data to the db
Creé este pequeño model para debuguear un script que corre en background. Su mision es loguear cualquier tipo de información con un stamp de tiempo en la bd.
Su uso es muy simple. Solo cargamos el modelo y hacemos: $this->blog->message('acá la cosa que queremos loguear');
a continuacion la clase:
Su uso es muy simple. Solo cargamos el modelo y hacemos: $this->blog->message('acá la cosa que queremos loguear');
a continuacion la clase:
/*
--
-- Table structure for table `logs`
--
CREATE TABLE IF NOT EXISTS `logs` (
`stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`message` varchar(2000) NOT NULL,
`type` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
*/
dblog->message($thingToLog);
*
* by Patricio Gabriel Maseda ** 2013 ** patricio.mase@gmail.com
*
*/
class Dblog extends CI_Model {
public function __construct(){
parent::__construct();
}
public function message($message){
return $this->db
->set('message', $message)
->set('type', 'message')
->insert('logs');
}
}
viernes, 17 de mayo de 2013
removing mate desktop on ubuntu -- removiendo escritorio mate en ubunt
bueno me agarró por probar mate 1.6. Si después quieren sacarlo como me pasa a mi agarran y hacen:
Saludos
sudo apt-get remove mate-archive-keyring mate-notification-daemon atril atril-common caja caja-common engrampa engrampa-common eom eom-common gir1.2-mate-panel libatril libcaja-extension libmarco libmatedesktop libmatekbd libmatekeyring libmatemenu libmatepanelapplet libmatepolkit libmateweather libmateweather-common libmatewnck libmatewnck-common marco marco-common mate-applets mate-applets-common mate-backgrounds mate-calc mate-control-center mate-core mate-desktop mate-desktop-common mate-desktop-environment mate-dialogs mate-icon-theme mate-media mate-media-common mate-media-gstreamer mate-menus mate-panel mate-panel-common mate-polkit mate-power-manager mate-power-manager-common mate-screensaver mate-screensaver-common mate-session-manager mate-settings-daemon mate-settings-daemon-common mate-settings-daemon-gstreamer mate-system-monitor mate-terminal mate-terminal-common mate-themes mate-utils mate-utils-common pluma pluma-common
Saludos
Etiquetas:
mate 1.6,
mate desktop,
remove,
ubuntu
jueves, 18 de abril de 2013
martes, 16 de abril de 2013
domingo, 24 de marzo de 2013
Ver log errores PHP en tiempo real (watch PHP errors in real time)
Para ver la lista de procesos:
top
Para ver los logs en tiempo real:
tail -f /var/log/apache2/users/*
(o cambiar por la carpeta o archivo que sea necesario)
jueves, 14 de marzo de 2013
¿Cómo crear un usuario con privilegios Root en Linux?
Para crear un usuario con privilegios de administrador en el servidor de linux siga los siguientes pasos:
a) Ingrese con su usuario root al servidor
b) Para crear el usuario con los privilegios ingrese el siguiente comando:
useradd -u 0 -o -g 0 "nombre_de_usuario"
c) Para añadir una contraseña al usuario ingrese el siguiente comando:
passwd "nombre_de_usuario"
d) Escriba una contraseña e ingrésela nuevamente.
sábado, 2 de marzo de 2013
codeigniter debug error 500
Bueno y otra vez me paso esto de no poder ver que carajo de error es lo que está pasando. Y otra vez me había olvidado como mostrarlo.
De nuevo a buscar y esta vez si que lo posteo acá para que quede registrado para la próxima vez que me olvide o para cualquier otra alma en pena que lo necesite:
editamos el index.php de codeigniter y agregamos:
De nuevo a buscar y esta vez si que lo posteo acá para que quede registrado para la próxima vez que me olvide o para cualquier otra alma en pena que lo necesite:
editamos el index.php de codeigniter y agregamos:
if (defined('ENVIRONMENT')){switch (ENVIRONMENT){case 'development':error_reporting(E_ALL);ini_set('display_errors', TRUE); // <------ esa lineabreak;case 'testing':case 'production':error_reporting(0);break;default:exit('The application environment is not set correctly.');}}
Etiquetas:
CodeIgniter,
debug,
error 500
domingo, 17 de febrero de 2013
instalando sendmail en debian, installing sendmail debian
Tratando de hacer funcionar la clase email de codeigniter sobre un debian me doy cuenta que este no tiene instalado sendmail, ni ninguna otra cosa capaz de sacar un mail al exterior.
Manos a la obra:
HOW TO rápido para instalar SENDMAIL en Debian:
apt-get install sendmail
Módulo de autentificación:
apt-get install sasl-bin
apt-get install libsasl-modules-plain
apt-get install libsasl-digestmd5-des
Después ejecutar:
/usr/share/sendmail/update_authSi necesitamos que se autentifiquen al enviar:
/etc/mail/default-auth-infoy lanzar de nuevo:
/usr/share/sendmail/update_auth
Soporte TSL.
apt-get install openssl
después ejecutamos:
/usr/share/sendmail/update_tlsa continuación, nos indicará que para que sendmail pueda usar STARTTSL, es necesario
añadir la siguiente línea:
include(`/etc/mail/tls/starttls.m4')dnlal archivo:
/etc/mail/sendmail.mcen mi caso ya estaba añadida.
después hay que ejecutar:
Si queremos un servidor POP, podemos instalar IPOPD, que complementa a SENDMAIL.
Los pasos para su instalación son muy simples si utilizamos apt-get:
y ya está.
sendmailconfigy finalmente reiniciar sendmail:
/etc/init.d/sendmail restart
Si queremos un servidor POP, podemos instalar IPOPD, que complementa a SENDMAIL.
Los pasos para su instalación son muy simples si utilizamos apt-get:
apt-get install ipopd
y ya está.
Etiquetas:
CodeIgniter,
debian,
mail,
pop,
sendmail
viernes, 8 de febrero de 2013
activar mod_rewrite en apache - activar archivos .htaccess
Resulta que por default viene desactivado. Para activarlo hacemos:
eso lo que hace es activar el modulo "rewrite"
luego de eso editamos
y buscamos donde diga "AllowOverride None" lo cambiamos por "AllowOverride All"
Reiniciamos apache y listo!
a2enmod rewrite
eso lo que hace es activar el modulo "rewrite"
luego de eso editamos
nano /etc/apache2/sites-enabled/000-default
y buscamos donde diga "AllowOverride None" lo cambiamos por "AllowOverride All"
Reiniciamos apache y listo!
Etiquetas:
apache,
CodeIgniter,
codeigniter quitar index.html,
debian,
mod_rewrite
miércoles, 6 de febrero de 2013
configurar ftp en debian
Se me presentó el problema de montar todo un server para mi nuevo proyecto de sitio web, he elegido un debian.
He instalado apache2, php, mysql y phpmyadmin, vamos que eso no da problemas es bastante sencillo. Ahora me encuentro con el problemilla de subir archivos por lo que vamos a detallar lo que haremos para montar un servidor ftp que nos de acceso a la carpeta www
Para conservar todo lo más seguro posible vamos a dar de alta un usuario que solo servirá para el acceso ftp.
Lo primero que debemos hacer es editar el archivo /etc/shells y agregar la siguiente linea:
/bin/falseEsto con el objetivo de evitar que el usuario que acceda al servidor no pueda usar la consola de comandos.
Luego creamos un usuario especifico para ftp
# useradd -m -s /bin/false tunombredeusuarioAhora le asignamos una contraseña al usuario creado anteriormente:
# passwd tunombreusuarioLa opción -m creará una carpeta en home con el nombre de usuario, es decir, /home/tunombredeusuario, y la opción -s nos asignará un shell a ese usuario en este caso es el /bin/false, este tipo de "shell" nos sirve en caso de querer algo mas de seguridad, puesto que con esto cerramos cualquier entrada por consola, hay que tener en cuenta que este usuario está creado específicamente para acceder al servidor ftp.
Ahora procederemos a la instalación del servicio. Hay muchos demonios que sirven para este propósito, en mi caso usaré el vsftpd porque es sencillo de configurar y porque es considerado uno de los mas seguros.
#aptitude install vsftpdPara configurar nuestro servidor editaremos el archivo /etc/vsftpd.conf y comentaremos las lineas que no necesitemos.
Si no quieres que los usuarios anonimos se conecten a tu servidor entonces es recomendable comentar la linea “anonymous_enable=YES”, en mi caso lo haré porque necesito que solo se conecte el usuario que he creado.
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
#anonymous_enable=YES
Como dije anteriormente, se creó un usuario especifico para conectarse al servidor, si queremos que dicho usuario se conecte a nuestro servidor hay que dejarlo en la lista de accesos, para eso hay que descomentar las siguientes lineas:
# Uncomment this to allow local users to log in.
#local_enable=YES
# You may specify an explicit list of local users to chroot() to their home
# users to NOT chroot().
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
# directory. If chroot_local_user is YES, then this list becomes a list of
En este caso activé la lista por defecto pero se puede escoger cualquier archivo en otra ubicación.
Ahora, procederemos con el cambio de puerto, el puerto por defecto para el protocolo tcp es el 21, en mi caso fue cambiado por motivos de seguridad, si bien sabemos que tcp es inseguro, con esto hacemos las cosas un poquito mas complicadas, y de paso no nos complicamos con SSL (Que no es muy complicado, pero en mi caso no lo apliqué porque la aplicación que se iba a conectar con nosotros no soportaba SSL).
Para decirle a nuestro servidor que escuche por un puerto diferente al 21, simplemente agregamos la siguiente linea al archivo:
listen_port=201En mi caso usé el 201, pero ustedes pueden usar el que quieran, siempre y cuando no utilicen alguno que esté ocupado.
Ahora guardamos los cambios y procedemos a editar el archivo/etc/vsftpd.chroot_list, en mi caso dicho archivo me tocó crearlo, de cualquier manera solo hay que añadir los usuarios autorizados a conectarse a nuestro servidor.
#Lista de acceso a usuarios que se conectaran al servidor.
tunombredeusuario
Luego editamos el /etc/apache2/sites-available/default para que en lugar de /var/www el apache tenga como raiz la carpeta del nuevo usuario.
Por ultimo reiniciamos el servicio y con esto deberíamos de tener nuestro servidor FTP funcionando sin ningún problema.
#/etc/init.d/vftpd restart
si da problemas con los permisos:
chown :usuario /var/www
chmod g+w /var/www.
Etiquetas:
debian,
ftp server,
instalar
martes, 15 de enero de 2013
close your eyes and imagine
close your eyes and imagine that you are 80 years old what would you be thinking of? the regrets of what you would have done when you were younger? what it could have been if you asked that girl you liked out? what if would have been if you studied a bit harder and put the effort in and got yourself to where you want to? how guilty will that make you feel imagine that and throw the bullshit of fear out of your mind it doesn't if it's a a fail or success as long as it's not a guilty regret.
robado de un comentario perdido en youtube
miércoles, 9 de enero de 2013
sintaxis alternativa if isset print
me encontré con esto y esta buenisimo:
en lugar de:
en lugar de:
if( isset( $value ) )se puede hacer:
{
print $value;
}
isset( $value ) AND print( $value );
Etiquetas:
alternative,
echo,
php,
print,
syntax
Suscribirse a:
Entradas (Atom)