Redefining CFLAGS in Makefile

I am used to the old way of defining CFLAGS in the console when needed but recently in Debian exporting CFLAGS didn’t have the desired effect.

So In case CFLAGS variable for command line and even in makefile doesn’t work for you, this will make the trick in Makefile:

EXTRA_CFLAGS += foo bar baz

Squid 3.3 in Raspbian Wheezy

I have been playing recently with Squid and “Splash pages”, but this function works fine on Squid 3.2 and later; however Raspbian only offers Squid 3.1.

I looked for a ready to install 3.2+ version in the Webz but didn’t find one, so I backported the Debian Jessie version.

For the lazy ones, here are the links (try them at your own):

libecap2 (This dependency is not available in Wheezy)

libecap2_0.2.0-1_armhf.deb

libecap2-dev_0.2.0-1_armhf.deb

Then install squid3 (install according to your needs)

squid3_3.3.8-1.1_armhf.deb 

squid3-dbg_3.3.8-1.1_armhf.deb

squidclient_3.3.8-1.1_armhf.deb
squid3-common_3.3.8-1.1_all.deb

squid-cgi_3.3.8-1.1_armhf.deb

squid-purge_3.3.8-1.1_armhf.deb

 

Mounting a partition from a dd image

At some point, everybody may have done a dd image of a USB/SD stick, as the below example shows:

dd if=/dev/sdb of=foo.img 

But it is usual that at some point in time we would like to access the information inside the image, doing that is quite easy:

First,you should do a fdisk on the image:

fdisk -l foo.img

Disk foo.img: 7998 MB, 7998537728 bytes, 15622144 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002fc6d

Device Boot      Start         End      Blocks   Id  System
foo.img1   *             15622143     7811071+   c  W95 FAT32 (LBA)

Then some maths are needed. The operators are the start of the partition and the sector size in bytes.  The operation is simply start * sector size in bytes.

In this particular case the operation is 1 * 512 = 512.

Now that we have the result, that we call the offset. In other words, 512 is the offset where the partition starts in this dd image.

So the command to mount the partition is:

mount -t vfat -o loop,ro,noexec,offset=512 foo.img /mnt/mountpoint

And then we can copy the information from the partition inside!

 

 

 

 

net-news/liferea-1.8.3 has improved its startup speed

For everybody out there complaining about liferea’s decreased performance in the 1.8.x releases, upstream has released 1.8.3 which uses sqlite 3 WAL journaling.

This basically improves the overall liferea’s performance, so if you are hating 1.8.x, please try the latest 1.8.3

Quick perl script to test smtp auth

#!perl

use warnings;
use strict;

use Net::SMTP;

my $smtpserver = 'xxx.yyy.zzz.www';
my $smtpuser   = 'foo@bar.com';
my $fromemail  = 'bleh@bar.com';

my $smtp = Net::SMTP->new($smtpserver, Timeout => 10, Debug => 1);
die "Could not connect to server!\n" unless $smtp;

  $smtp->auth ( 'user', 'secret' ) or die "Could not authenticate $!";
  $smtp->mail($smtpuser);
  $smtp->to('somebody@bar.com');
  $smtp->data();
  $smtp->datasend("To: somebody\@bar.com\n");
  $smtp->datasend("From: $fromemail\n");
  $smtp->datasend("\n");
  $smtp->datasend("Body message\n");
  $smtp->dataend();
  $smtp->quit;

 

Unmounting stale NFS mount points in Linux

Sometimes, a stale NFS mount point can be a real PITA, specially if you can’t mount the share somewhere else.

The following command line have helped me a lot lately:

umount -f -l /path/to/nfs/share

The first parameter forces umount, the second makes a “lazy umount”, detaching the filesystem and cleaning up all references.

Easy isn’t it?

Quick-n-Dirty duplicate mp3 finder script

René “Nepomusemo” Mayorga shared with me the following script to find out duplicate mp3 files in a specific directory:

find /media/music/ -not -empty -type f -printf “%s\n”  | sort -rn  | uniq -d  | xargs -I{} -n1 find /media/music/ -type f -size {}c -print0  | xargs -0 md5sum | sort | uniq -w32 –all-repeated=separate

This script might be used to find duplicate files, though

PHP: function.fopen : failed to open stream

Si en php al intentar utilizar fopen obtienen un resultado como:

Download Failed: Remote Server connection failed: fopen(http://jsitepoint.com/update/packages/joomla/update.xml) [function.fopen]: failed to open stream: no suitable wrapper could be found; Using Proxy: No(42)

La solución es editar php.ini modificando/agregando:

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-fopen
allow_url_fopen = On

ERROR 1396 (HY000): Operation CREATE USER failed

MySQL puede ser un poco delicado al momento de manipular usuarios. Al intentar crear un usuario, el cual yo sabía que existió en algún momento, me devolvió el error 1396

mysql> CREATE USER 'foo'@'localhost' IDENTIFIED BY 'lacontraseña';
ERROR 1396 (HY000): Operation CREATE USER failed for 'foo'@'localhost'

Entonces procedí a verificar si existía en la tabla mysql.user:

mysql> select user,host from mysql.user where user = 'foo';
Empty set (0.00 sec)

Lo anterior sucede porque el usuario todavía existe en la tabla mysql.db , lo cual se puede solucionar de la siguiente manera:

1. Utilizando comandos mysql de manejo de usuarios:

REVOKE priv1,priv2,priv3,etc… FROM ‘foo’@’localhost’;

DROP USER 'foo'@'localhost'; 

2. Eliminandolo directamente de la tabla mysql.db

delete from mysql.db where user=foo

¿Estará decayendo el nivel técnico del usuario Linux en Latinoamérica?

El día de hoy alguien en un canal de irc me preguntaba como se instalaba software en una distribución X Linux. Nada del otro mundo, todos tenemos dudas. Luego me preguntaba ciertas opciones del software de instalación, luego acerca de como se actualizaba y luego porque no le funcionaba.

El usuario llevaba una semana preguntando lo mismo y me dijo que ya había leído la documentación varias veces. La documentación responde claramente a las preguntas que hacía.

Recuerdo que hace unos 6 años, en los canales de irc no se hacían ese tipo de preguntas dia y noche. Generalmente el que preguntaba ya había leído la documentación y en lugar de preguntar “cómo instalo” preguntaba si la forma en que había hecho el procedimiento era el correcto.

De hecho leer lo que pasaba en esos canales era interesante, ya que siempre se aprendía algo. Se aprendía sobre software, trucos en la línea de comandos, seguridad, etc.

Ahora realmente los canales en español son deprimentes. A menos que tengas un grupo de amigos en ese canal, no dan ganas de estar ahí. Ves usuarios preguntando lo obvio, y cuando le das un vínculo con la solución no desean leer o insultan diciendote elitista.

Lo mismo pasa en las listas y en muchos foros.

Menciono latinoamérica porque he estado presente en canales de irc en español de las principales distribuciones, pero con el tiempo he decidido ya no entrar.

También otra cosa que he notado es que la calidad del usuario ha disminuido asi como ha aumentado la popularidad de distribuciones como ubuntu, que sacrificando calidad intentan ofrecer interfaces que faciliten la vida del usuario.

Me imagino que este es el precio que hay que pagar al intentar hacer de Linux un sistema operativo más popular y menos técnico.

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.