Everyone knows of the now infamous google malware database corruption. Google was able to fix the issue quickly, which is great and all. But what really impresses me is their open attitude when it comes to their end user products, like this post on the gmail blog.
You may be a big headless giant robot, but you're our big headless giant robot.
Wednesday, February 04, 2009
Sunday, January 11, 2009
Renaming MP3 by ID tag
Ever tried to recover from an IPOD dump, and get a bunch of files with the useless names? Here's a script to fix that.
And here's the perl script:
$ ls *.mp3 | ./rename.pl - | while read line; do OLD=`echo $line | cut -d, -f1`; NEW=`echo $line | cut -d, -f2`; mv "$OLD" "$NEW"; done
And here's the perl script:
#!/usr/bin/perl
#
#Your Love Means Everything.mp3: (tag v1.0)
#songname: Your Love Means Everything
#artist: Coldplay
#album: Varie
#year:
#comment:
#genre: Other(12)
#
while( <> )
{
chomp;
my %hsh = ();
my @info = `id3ed -i "$_"`;
foreach my $iline ( @info )
{
chomp $iline;
#print $iline . "\n";
if( $iline =~ /songname:\s+\b(.+?)$/ ){
$hsh{ song } = $1;
}
if( $iline =~ /artist:\s+\b(.+?)$/ ){
$hsh{ artist } = $1;
}
if( $iline =~ /album:\s+\b(.+?)$/ ){
$hsh{ album } = $1;
}
}
my $newname = "$hsh{ artist }" . "-" . "$hsh{ album }" . "-" . "$hsh{ song }" . ".mp3";
$newname =~ s/\s+/_/g;
print "$_,$newname\n";
}
Monday, January 05, 2009
Autologging in and running app in X
I've been keen on doing this for some time, but a combination of:
- lack of need
- lack of time
Thursday, December 25, 2008
Monday, December 22, 2008
Wednesday, December 10, 2008
My first fvwm module
I've been using FVWM for some time now, but have never tried writing any kind of modules to extend it. Yesterday I tried it out, and I've got my first working FVWM module.
I wrote the module in Perl, and you can view there source here. Basically what it does is capture window focus events, and will set the transparency of the window to whatever is set in a configuration file
You can add as many types of applications (one per line). For instance, Firefox has
To install the module, place it somewhere where the .fvwmrc ModulePath will find it, then place it into the StartFunction section:
I wrote the module in Perl, and you can view there source here. Basically what it does is capture window focus events, and will set the transparency of the window to whatever is set in a configuration file
pblair@laptop:~$ cat ~/.fvwm/fvwmPeteTrans.cfgThe above config will set all xterminals to 60% opacity when the focus moves away from it, but will return it to complete opacity once focus returns to it.
XTerm:0.60
You can add as many types of applications (one per line). For instance, Firefox has
$ xprop | grep CLASSSo you could either place "Navigator" or "Firefox" at the left of the colon.
WM_CLASS(STRING) = "Navigator", "Firefox"
To install the module, place it somewhere where the .fvwmrc ModulePath will find it, then place it into the StartFunction section:
AddToFunc StartFunctionP.S. You need "xcompmgr" and "transset" installed. And be sure to change the absolute pathnames within the module to the respective locations on your system.
+ I Module FvwmPeteTransFocus
+ I FvwmButtons
Tuesday, December 09, 2008
Guerilla Refactoring
In the world of software development, refactoring is the process of updating code (usually for the better). But the problem may exist where management sees the existing application as "good enough" and doesn't want to allocate any budget towards fixing what in their eyes "aint broke".
Enter guerilla refactoring.
I must admit that I fall victim to this. I find lots of things at work that could be expanded upon, or made better, which would drastically increase the use of the package, make it more robust, or simply more elegant and orthogonal. I ensure that it doesn't eat into my work time, and the end product is usually something that I will directly benefit from, but hopefully also something that will make someone else's life better/easier/simpler.
P.S. I recommend this podcast from NPR.
Enter guerilla refactoring.
I must admit that I fall victim to this. I find lots of things at work that could be expanded upon, or made better, which would drastically increase the use of the package, make it more robust, or simply more elegant and orthogonal. I ensure that it doesn't eat into my work time, and the end product is usually something that I will directly benefit from, but hopefully also something that will make someone else's life better/easier/simpler.
P.S. I recommend this podcast from NPR.
Long time no see
It's been about a year and a half since my last entry. I had lost complete interest in blogging and any self self congratulations that come with the territory.
But I'm starting to feel like I have more to share again, and I hope to see more posts here in the near future.
But I'm starting to feel like I have more to share again, and I hope to see more posts here in the near future.
Subscribe to:
Posts (Atom)