domingo, 16 de agosto de 2009

Linux - Add a existing user to existing group

Add existing user tony to ftp supplementary/secondary group with usermod command using -a option ~ i.e. add the user to the supplemental group(s). Use only with -G option:
# usermod -a -G ftp tony

Change existing user tony primary group to www:
# usermod -g www tony

sábado, 8 de agosto de 2009

Instalar D-Link DWA-110 en debian lenny

Instalar drivers:
http://wiki.debian.org/WiFi/rt73#Lenny

Instalar wpa_supplicant:
http://wiki.debian.org/WiFi/HowToUse#wpasupplicant

viernes, 7 de agosto de 2009

Instalación de debian 5.02 desde el disco duro teniendo otro debian ya instalado

Obtener desde:
ftp://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/hd-media/
Los sgtes archivos:
  • boot.img.gz
  • initrd.gz
  • vmlinuz

Obtener desde www.debian.org el "Network install from a minimal CD":
  • debian-502-i386-netinst.iso

En el debian ya instalado:

mkdir /boot/newinstall

copiar en ese directorio los sgtes archivos:
  • boot.img.gz
  • initrd.gz
  • vmlinuz
  • debian-502-i386-netinst.iso

Agregar al final del archivo /boot/grub/menu.lst

title New Debian Install
root (hd0,0)
kernel /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz

reiniciar y bootear el "New Debian Install"

jueves, 6 de agosto de 2009

Obtención del nombre de la máquina en PHP

Si no resulta $_SERVER['SERVER_NAME'], usar:

php_uname('n');

miércoles, 22 de julio de 2009

Logs tipo Apache NCSA en framework Restlet... y con DailyRollingFileAppender

El servidor web (ej: jetty) del framework Restlet arroja logs de los requests en formato Apache (NCSA) al logging estándar del JDK.

Para capturar esos logs, colocar en el main de la aplicación:


java.util.logging.Handler fh = new NCSAFileHandler();
java.util.logging.Logger.getLogger("").addHandler(fh);


La clase NCSAFileHandler es sencilla, sólo sobreescribe 1 método de su padre Handler:



public class NCSAFileHandler extends Handler {
...
private static Logger log = Logger.getLogger(NCSAFileHandler.class);;
@Override
public void publish(LogRecord logRecord) {
log.info(logRecord.getMessage());
}
}


Al método publish de NCSAFileHandler le llegarán todos los records (record = mensaje con el resumen del roundtrip de un request) de Restlet. Con publish botamos los records a log4j.

Para que el log de NCSAFileHandler quede en un DailyRollingFileAppender de log4j, en el main de la aplicación:


File ncsaLogFile = new File("/tmp/http_ncsa.log");
DailyRollingFileAppender ncsaAppender = new DailyRollingFileAppender();
ncsaAppender.setFile(ncsaLogFile.getAbsolutePath());
ncsaAppender.setName("DailyRollingFileAppenderNCSA");
ncsaAppender.setDatePattern("'.'yyyy-MM-dd");
ncsaAppender.activateOptions();
PatternLayout ncsaLayout = new PatternLayout("[%t] %m%n");
ncsaAppender.setLayout(ncsaLayout);
Logger ncsaLogger = Logger.getLogger(mipackage.ncsa.NCSAFileHandler.class);
ncsaLogger.addAppender(ncsaAppender);

sábado, 4 de julio de 2009

No me hagas pensar - ¿Cómo usamos realmente la web?

No leemos las páginas, las hojeamos
  • Tenemos prisa
  • Sabemos que no hay que leerlo todo
  • Somos buenos para hojear (ej: periódicos)

Satisficing: No tomamos decisiones óptimas, es suficiente
  • Tenemos prisa
  • Errar -> Atrás
  • Adivinar es más divertido
No leemos el manual, nos las arreglamos
  • No nos importa
  • Si funciona, seguimos con ello
  • Ej: docenas de personas escriben las url en la búsqueda de yahoo. "Yahoo es la Internet"...
Ref: No me hagas pensar - Una aproximación a la usabilidad en la Web, Segunda edición. Steve Krug.

viernes, 3 de julio de 2009

No me hagas pensar - Clics evidentes

¿Dónde harías clic para ver detalles de la oferta de compras de 3 a 12 cuotas que aparece en el banner?



Al colocar el ratón, sólo se podía hacer clic en la zona en verde oscuro...

Otro caso de facebook:



Al colocar el ratón encima de "Name", cambia el puntero, ¿A dónde me lleva?, no aparece nada abajo en el status bar del browser, al presionarlo me di cuenta de que lleva al mismo lado que al hacer clic en "change".

Ref: No me hagas pensar - Una aproximación a la usabilidad en la Web, Segunda edición. Steve Krug.