TweetDeck – My new favorite Twitter client.

For the last few months I’ve been using  Twhirl to stay connected with the Twitter community, but my activity has of late  slowly been reduced next to nothing. Well, that’s until a good colleague of mine recommended TweetDeck last Friday. I’m back in the Twitter-sphere, and I’m loving it.

Both clients is written in Adobe AIR, which is a big bonus since it means I can run it both on my office Windows machine and my Linux machine at home. I think Adobe AIR is one of the most interesting technologies right now for web applications. Although all that come out of Adobe is slow and sluggish, it’s far better than the last “cross-platform” language that promised a trouble free world. Java. Java was also slow and sluggish, but unlike AIR, Java didn’t seem to work. If you got a application running on one machine, you could be sure it didn’t want to run on your next computer.

Back to the topic; Twitter is still going strong, and with the right tools it can continue to grow. The only question they have to sort out is how to make money. I don’t really see the Ad business as the right move right now. And as long as everyone can create a third-party client, such rubbish can easily be removed before it hits your eyes.

You may follow me on Twitter and read my rubbish. It’s mostly in Norwegian, but that might change.

Filesystem mounted as read-only during boot

Today I had a case where a server mounted the root filesystem as read-only during boot. To make a short story shorter, check /dev/null.

After doing some searching in the logs I found a few lines complaining about /dev/null also being read-only filesystem. So I checked the permission with ls -al /dev/null, and it turned out this had been changed into a regular file rather then the special file it’s supposed to be.

The fix is easy. Delete the file called /dev/null and re-create the special device with the command mknod -m 666 /dev/null c 1 3.

You can also read about how to create this special file by reading the man-pages. Command: man 4 null.

Hodnafjell

Hodnafjell

This is how Norwegian nature looks like without power lines… (actually, you can still see some to the right of the picture).

The vignetting is because of a polarization filter. Didn’t use a leens hood on this trip.

Schnitzel!

Schnitzel

A swine schnitzel with rosmary, basil, salt and pepper on a bed of rice.

Canon AE-1 Program

Canon AE-1 Program

An old Canon AE-1 with a 50mm f/1.8 lens. The reflection is mainly candles, but also includes me.

Stakkestadvatnet

Stakkastadvatnet

Half Baked

Half Baked

A half baked bread still in the oven.

Pride

Pride

A horse enjoying the sun at Eikeskog, Norway.

Me and my Canon 5D

I was here first

A self portrait taken with my new (second hand) Canon 5D.

What can I say other than ‘Wow’. This is an amazing piece of equipment, and definitely a step up from my four year old Canon 350D. Although the previous owner had it for almost 2 years (1 year and 10 months), it’s in mint condition.

One of the ‘rules’ in photography is to invest in good optics. But now that the marked is packed with people upgrading to Canon 5D MkII, it’s the perfect time to get the hand on a used MkI for a reasonable price. In fact, for the price I paid for the 5D, I couldn’t even get a new 500D. Sure, the 500D has more mega pixel and full 1080p video. But I’m not interested in video, and the camera is to small for my hands. And that is also my biggest regret on buying the 350D in the first place, but it’s also the only one. Always buy a camera that fits your hand.

NimBUS and Regular Expressions

I recently had to configure NimBUS to send alarm upon detecting a specific log entry in /var/log/messages on a Linux system. Because this alarm was supposed to be sent by SMS , I didn’t want it to send more than one message. But since our log file has a timestamp, each entry were we found a match would be handled as a unique alarm, thus sending one message for each log entry where the mach was found.

If the string we were looking for first would appear, it would most likely show up somewhere between 5 to 50 times within an hour.It’s hard to guess, really. But we are looking for a problem that won’t solve itself, and the program checking for this problem will continue to write to the log file upon each encounter with the problem.

The way to solve this kind of problem, where we want to ignore the timestamp, is to understand how NimBUS handle incoming alarms. If it receives the same message two or more times, it would just upper the count, instead of creating a new entry in the alarm window.

Lets say our log file looks like this:

Mar 14 14:55:35 ErrorCheck: Oh noes, error detected in A51
Mar 14 14:57:32 ErrorCheck: Oh noes, error detected in A51

We only want to get one alarm, but with a count of two (actually one), not two alarms which is identical except for the timestamp. First, set up logmon to detect the correct line in the log file using regular expressions. The logmon probe supports both pattern recognition and regular expressions, so make sure to use the right one. Regex starts and end with a forward slash, otherwise it assumes pattern is used.

In this case we can use the following simple regex:

/.*ErrorCheck.*/

Of course my regex where more advanced since I had to detect other parameters as well, since the output of our program also had to be checked.

Now, with this regex in place, we are at the point where every entry will be treated uniquely. But logmon also give you the possibility to construct your own message, and to define variables. And that is what we have to do.

We can construct variables both by row or column number. Since this is a single line, we will use the column offset. So, let us create the variables:

prog = column number 4
error = column number 10

This is only a simplified view. The logmon probe has a user interface for this. Right click, add new variable (or something like that).

When this is done, add your own message text in the field saying so:

$prog: Error detected in $error

When this is set as the outbound message, NimBUS will count it instead of creating a new entry in the alarm view each time, since the message now is identical. If the error code changes, a new alarm will be sent.

Short version:

Create your own output message when using NimBUS logmon probe on a log file which has a timestamp.

(This short version was a lot better and could have saved me some time)