Happy Birthday!

It is my wife’s birthday today!

Happy Birthday Rebecca!

Share Button

Unable to start Eclipse 3.x on Linux?

Whether you uninstalled Eclipse and reinstalled it or you install it the first time, you may run into an issue where you try to start Eclipse and it tells you that it can’t…. go look in the .eclipse/…./.log file to see why it couldn’t start. Unless you’re familiar with Java exception stacktraces, it is damn near impossible to figure out why.

One such cause is the dreaded ‘SWTError’ error message, buried in the log file. How to see if you’re running into this problem? Open the log file in your favorite text editor and search for ‘SWTError’. If you see something like:

Root exception: java.lang.NoClassDefFoundError: org/eclipse/swt/SWTError

It is quite likely that your libswt* files aren’t being picked up by Eclipse. Use rpm, apt-get, emerge or whatever you normally use to install software to reinstall libswt3.2-gtk-java and libswt3.2-gtk-jini. That should allow you to start Eclipse or at least get past the SWT error.

Example log file showing the errors

Share Button

Questions on the design of Democracy Player

I posted the following on the Democracy Player forums:

I’ve been using Democracy Player for several months now and will be writing up a review of it but I have a few questions. There didn’t seem to be much on the www.getdemocracy.com website as to the design of the application.

  1. DP makes use of a custom binary database instead of a text based database (XML, ini, etc) or an embedded database (SQLite, etc). Was there a specific reason for the custom database?
  2. Currently, the database is platform and bit (32 or 64) specific. Are there active efforts to make the database cross platform and 32bit/64bit-ness?
  3. I performed some scalability testing this past weekend. DP remains responsive and ‘zippy’ when the number of new videos is below 400 and the total videos is below 600. From the forum posts, this seems to be a long standing issue. I’ve identified, on my system anyways, that DP gets stuck in a couple areas:
    • Database lookups do not appear to be cached well so we end up scanning it over and over
    • All the videos are stored in a single directory, causing excessive disk i/o
  4. Unless I’m mistaken, DP makes use of the gecko engine in the Mozilla project as an embedded web browser for the video channels. With known memory leakage issues with the gecko engine, is the current design plan to stick with the gecko engine or are other engines being evaluated?

thanks

Jason L. Froebe

Share Button

ASE 12.5.4 esd 5 and ASE 15.0.1 esd 2 – unable to load with more than 32 stripes

On Linux, have you ever tried to load a database from backups with dozens of stripes and it failed even though you increased the resources on the backup server? Well, I recently ran into it while trying to load a 1TB database from over 100 stripe files.

Backup Server: 1.72.1.17: Bitmap routine called by function AT_ISSTRIPELDED returned -1
Backup Server: 1.72.1.18: Bitmap routine called by function AT_ISSTRIPELDED returned -1

This turns out to be a new bug with the Sybase Backupserver (both 12.5x and 15.0x codelines): CR 466497. If you run into this bug, please open a case with Sybase TechSupport and have your ticket associated with this bug.
WORKAROUND: Unfortunately, you will need to backup your database(s) with 32 stripes or less.

Share Button

Geek Spotlight: Nicola Worthington

Every once in a while, I’m going to try to highlight an individual that stands out from the rest. Earlier today I was fortunate enough to be able to sit down, virtually, with Perl developer, Nicola Worthington….

Nicola, you are well known for your multiple Perl modules in the CPAN (http://search.cpan.org/~nicolaw) registry. What led you to create and maintain these modules? Is there a story behind them?

Most of my modules have come about from personal projects that I’ve worked on. Whenever I copy and paste some code more than a couple of times, I tend to ask myself if it would be better abstracted in to a module and whether other people might find it usefuNicola Worthington programming at her deskl too.Probably the best example of that is RRD::Simple. I wanted to graph things using RRD, but found the interface quite confusing. It took me days reading the RRD manual to figure out how to use it. After that I never ever wanted to have to read that manual again. Hence RRD::Simple was born, with (what I hope is) an interface a complete Perl newbie could understand.

My first CPAN module was WWW::Dilbert. I guess that one speaks for itself. Who wants to have to go to someone else’s website to read their favorite daily comic when it could be right there on your own local homepage? 🙂

What started you on the path of a programmer/developer? Was there a pivotal point when you decided or was there no question at all?

I can’t think of one particular moment when I knew I wanted to be a programmer, although I was pretty sure I wanted to play^H^H^H^Hwork with computers ever since I left school. They were an aspect of life that I could totally control. That was comforting.

Why Perl? Why not Python or Java?

Mine is probably a similar story to many other Perl programmers. When the internet came along I started working on personal web pages. I got bored with what plain old HTML could do on its own, and wanted to add some interaction and automation with what I was doing. I downloaded *shudder* some scripts from Matts Script Archive and started hacking away when they wouldn’t do what I wanted. Had Python or Java been the language of the interweb back then, then no doubt I wouldn’t be writing in Perl today.

You can see some of my first (reworked but still rather shoddy) work from those days here: https://svn.perlgirl.org.uk/dav/gallery/

Have you faced any hurdles in the Perl or Linux communities because you are a woman?

Not that I can think of. I have professionally, but I guess that still goes with the territory. I think women are still somewhat of a novelty and distraction for the men in on-line technical communities.

Can you tell us a little about your professional work life?

My last job was auditing customers code before it was allowed on their (very large and well known international website). That was an interesting job, but once you’ve seen the same error again and again from the same programmer, it begins to wear you down a little. 😉At the moment I fix and automate broken things. I may not always be hired for that purpose, but I can’t stand working in any environment where there’s unnecessary manual processes where a well placed script would save hours of work. I crave routine and order, and put things right so I get it.

My last job was auditing customers’ code before it was allowed on their (very large and well known international) website.

Recently you’ve started picking up the C++ language. What do you think of it?

It’s like writing an essay with a pen after you’ve gotten used to typing. You can’t use CPAN with it. 🙂

What do you do when you’re not coding?

I’m a sucker for finding a TV series that I like (that’s finished) and then watching every episode, several per night, until I need to find the next series. My last few TV series were Stargate, West Wing and Goodnight Sweetheart. I’m currently just starting season 5 of the X Files and looking forward to the movie before starting season 6.

Oh, sleeping is always good. Can’t get enough of that!

What’s your biggest pet peeve when reading someone else’s Perl code?

That’s a difficult question. It would have to be either not using strict and warnings, or not properly checking results of system calls. Unfortunately I see both far too often during my professional life. I can almost forgive it when the author isn’t a programmer by trade,.. but when they’re an experienced programmer, regardless of what their native language is, I just despair.

What’s on your radar? Specifically, are there new projects you are, or about to, start on that you would like to share with us?

There’s nothing new coming up that I’m planning for. I do however have a long backlog of patches and improvements. My backlog is currently in a bit of a sorry state, not least the Sys::Filesystem module which I’m somewhat ashamed of for my lack of attention to maintaining it.

For those of us that use your Perl modules, how can we express our gratitude?

Tell me what you do or don’t like about my software. Suggest enhancements and report bugs (it’s nice to know that people want to use my software and want to help make it better). If you’re feeling especially generous, buy me something from my Amazon wish list. 😉

Nicola, aka Neechi – a Perl Girl, lives in London and has written many perl modules for CPAN. Not only is she a fellow geek, she is highly intelligent and motivated. Along with her multiple linux servers at home, she can also boast having a Network Attached Storage (NAS) device – think big harddrive – that I’m very envious of.

Sorry, guys! She’s taken.

Share Button

Task-Focused Programming with Mylar video no longer works.

On the web page http://www.eclipse.org/mylar/start.php
Webinar: Task-Focused Programming with Mylar by Mik Kersten (56 min, Oct 2006)
5-15 min: task management demo
15-30 min: task context demo
34-40 min: technology & frameworks

The adobe link is http://adobedev.adobe.acrobat.com/p46246963

What happens is that that the web page comes up (flash) showing:

Adobe Acrobat Connect Professional: Connecting…

adobe.jpg

The status bar on the firefox is showing “Read admin.abobe.acrobat.com”.

This is occurring on Linux (Firefox 32bit), Windows XP SP2 IE 6 and 7 – latest flash player on both platforms.

I’m suspecting that either the webinar is no longer available or that the video server is unavailable for some reason.

I’ve opened a ticket with Adobe to investigate the matter.

UPDATE:  The problem now only occurs with flash on the Linux platform.  It works fine on MacOSX.

Share Button

Old but still fun: The Internet is for Porn (World of Warcraft)

Share Button

A little humor as we are just way too serious these days :)

Share Button

O_DIRECT & O_ASYNC, Linux & Perl

I’ve written a C program that creates a 20GB file using O_DIRECT and O_ASYNC correctly. The trick to write to a file using O_DIRECT is that I have to align the buffer with respect to the memory block size.

When I write a similar program using Perl, I receive the expected “System write error: Invalid argument” as the buffer is not aligned.

So, my question is: Is it possible, in Perl, to align the buffer?

#!/usr/bin/perl

use strict;
use warnings;

$|++;

use Fcntl qw(:DEFAULT O_ASYNC O_DIRECT);

my $FH;
sysopen($FH, "./test.dat", O_WRONLY | O_TRUNC | O_CREAT | O_ASYNC | O_
+DIRECT, 0666);

my $BUFFER = "0"x1048576;
my $BUFSIZE = 1048576;

for (my $i = 0; $i < 20480; $i++) {
my $written = syswrite($FH, $BUFFER, $BUFSIZE);
die "System write error: $!\\n" unless defined $written;
}

Don’t forget Mother’s Day! It’s this Sunday so get her some sock yarn.

Update: sgifford over at Perlmonks.org, gave me the answer. Just mmap() the buffer using Sys::Mmap 🙂

#!/usr/bin/perl

use strict;
use warnings;

$|++;

use Fcntl qw(:DEFAULT O_ASYNC O_DIRECT);
use Sys::Mmap;

my $FH;
sysopen($FH, "./test.dat", O_WRONLY | O_TRUNC | O_CREAT | O_ASYNC | O_DIRECT, 0666);

my $BUFSIZE = 1048576;
my $BUFFER;

mmap($BUFFER, $BUFSIZE, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, STDOUT) or die "Couldn't mmap\\n";

for (my $i = 0; $i < 20480; $i++) {
        my $written = syswrite($FH, $BUFFER, $BUFSIZE);
        die "System write error: $!\\n" unless defined $written;
}
Share Button

To my fellow geeks: PSST! Sunday is Mother’s Day… you did remember didn’t you?

If she knits, buy her some really good sock yarn. Believe me, she will be wildly grateful that you spent the time to buy her the ‘good stuff’!

Share Button