Entradas

Javascript. MooTools.

Hay muchos frameworks para javascript, yo he apostado por MooTools , aunque Prototype es de los más utlizados. Mootools pesa poco y nos ofrece multitud de objetos y funciones. ¿ Todavía sigues escribiendo todo el javascript ? Eso me pasaba a mí pero con los framework he logrado mejorar mi productividad, lograr código en casi cualquier navegador, desde Firefox, Opera, ... incluso en el IExplorer Nos cuesta adaptarnos a un nuevo API, bueno a cualquier cambio por lo general, pero si querías hacer siempre tu 3 x 4 mejor nos deberíamos haber metido en otra profesión que no fuera la informática... ya que esto no para de cambiar y hay que estarse reciclando y actualizando constantemente. La documentación está bastante bien, cuando te acostumbras a ella. También hay demos de la propia MooTools pero googleando encuentras efectos muy chulos hechos por otra gente: phatfusion.net speckyboy.com tutorialdog.com Dile adios al document.getElementById(..) Voy preparando otra entrada para desarollo ...

Linux. Ubuntu. Network-Manager Wireless

El Network-Manager en gnome está genial para los que no les gusta la consola, ni el ifup eth0, ifdown eth0. Aunque a los que nos ponemos a tocar el /etc/network/interfaces hacemos que el Network-Manager se pierda un poco. También he detectado que el Ubuntu Desktop Edition instala todo bastante bien, pero los que cacharreamos un poco al final usamos la "alternate installer” o el "Ubuntu Server" para cosas como LVM, RAID o cosillas así y al final el Network-Manager se pierde. Para el tema Wireless WIFI , recomiendo echeis un vistazo a la wiki de ubuntu WirelessTroubleShootingGuide en inglés pero hasta yo lo entiendo. Y si habeis instalado Ubuntu desde el "alternate installer” para el tema wireless debeis instalar compat-wireless (linux-backports-modules) # For Ubuntu 8.10 Intrepid users: sudo apt-get install linux-backports-modules-intrepid # For Ubuntu 9.04 Jaunty users: sudo apt-get install linux-backports-modules-jaunty Ver toda la información en linuxwireless.org...

PHP. módulo de un "long". Calcular dígito control de IBAN.

Calculando el DC dígito de control de un número de cuenta IBAN me he encontrado un problema con el módulo o resto. Al manejar un número que sobrepasa el integer, "no se exacta la barrera, pero supongamos que a partir de 2147483647 deja de ser nuestro integer de toda la vida", manual PHP. Enteros y al calcular el modulo de 97 de ese número long perdía la precisión y devolvía un resto incorrecto. Hay varias soluciones a esta situación, yo opté por usar bcmod function bcmod ya que en PHP hay funciones para casi todo y sino en www.phpclasses.org podremos encontrar alguna clase que nos facilite el desarrollo. Supongo que también se debe a la "anarquía" de PHP que no obliga a declarar el tipo de dato de la variable, aunque cada vez empiezo a encontrar más código en el que se hacen casting a las variables. En el mundo java un int es un int, un String es un String y un long es un long y todo el día haciendo casting pero siempre tienes claro que hay en una variable. $foo...

Linux. Mac Address

Es bastante sencillo saber cual es nuestra Mac Address. user@localhost:~$ ifconfig eth1 Link encap:Ethernet direcciónHW 00:18:e4:17:46:b3 inet dirección:192.168.1.48 Difusión:192.168.1.255 Máscara:255.255.255.0 dirección inet6: fe80::218:e8ff:fe17:43b3/64 Alcance:Vínculo ARRIBA DIFUSIÓN CORRIENDO MULTICAST MTU:1500 Métrica:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:4674 errors:0 dropped:0 overruns:0 carrier:0 colisiones:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:284122 (277.4 KB) Interrupción:19 Dirección base: 0xcc00 lo Link encap:Bucle local inet dirección:127.0.0.1 Máscara:255.0.0.0 dirección inet6: ::1/128 Alcance:Anfitrión ARRIBA LOOPBACK CORRIENDO MTU:16436 Métrica:1 RX packets:42737 errors:0 dropped:0 overruns:0 frame:0 TX packets:42737 errors:0 dropped:0 overruns:0 carrier:0 colisiones:0 txqueu...

PHP. JAVA. Sobreescritura de método o función

Hace poco tiempo me di cuenta que llevaba sobreescribiendo los métodos en php sin darme cuenta, aunque lo llevo llamando desde hace años parametros opcionales, pero al final conseguimos lo mismo. No se si con este ejemplo he logrado explicar el tema: <?php public function ladrar( $_ladrido ) { //$_ladrido = "guau guau guau"; print($_ladrido); return; } public function ladrar( $_ladrido, $_fuerte=false ) { if ($_fuerte==true) $_ladrido = strtoupper($_ladrido); print($_ladrido); return; } // Con esta función nos bataría para todo public function ladrar( $_ladrido , $_fuerte=false , $_saltar=false ) { if ($_fuerte==true) $_ladrido = strtoupper($_ladrido); if ($_saltar==true) saltar(); print($_ladrido); return; } ?> /*** java ***/ public void ladrar( String _ladrido ) { //String _ladrido = "guau guau guau"; System.out.print(_ladrido); return; } public void ladrar( Strin...

PHP. Prepare statement. Dao

Desde hace tiempo estoy implementando en PHP las sentencias SQL al estilo java, PreparedStatement, con mysqli. Así evitamos cualquier inyección de código y trabajamos contra la base de datos como les gusta a los Dba, mediante Bind. Esto sería parte de un objeto Dao implementación Mysql, fundamental el bean para trabajar con objetos y dar de una vez el salto a la programación POO. public function buscarPorTitulo( $_titulo ) { $Noticia_ = new Noticia(); $Noticias_array = array(); $sql = "SELECT ID_NOTICIA, TITULO, FECHA, CSS_STYLE, RUTA_FICHERO_HTML "; $sql .= "FROM NOTICIAS "; $sql .= "WHERE TITULO LIKE ? "; if ($stmt = $this->mysqli->prepare($sql)) { $stmt->bind_param("s", $_titulo); /* Character Description i corresponding variable has type integer d corresponding variable has type double s corresponding variable has type string b corresponding variable is a blob and will be sent ...

LINUX. buscar ficheros

Hay varios comandos que desde consola nos ayudan a buscar ficheros: locate busca rápidamente, ya que no va leyendo el disco, sino que mira en un indice que tiene en una base de datos: man locate # Por ejemplo para buscar donde está el server.xml del tomcat [user@locahost ~]$ locate server.xml /usr/local/apache-tomcat-5.5.26/conf/server.xml find es el comando para buscar, este si que va leyendo el disco. CUIDADO que es recursivo, por ello es mejor indicarle la ruta donde empezar a buscar. # Por ejemplo para buscar los java compilados [user@locahost ~]$ find programas/ -name *class Lo mejor es juntar el comando find con el comando grep ó egrep o fgrep y así buscamos dentro del contenido del los ficheros # Buscamos los ficheros con extensión java que tengan el texto jdbc:mysql [user@locahost ~]$ find programas/ -type f -name *.java -print | xargs egrep -i "jdbc:mysql" Un mini-how to sobre comandos para buscar en linux lo teneis en espaciolinux.com Ahora estoy intentando buscar t...