ncurses into experimental

Sven has been very busy getting a new Debian ncurses packages into order.  With the multiple changes made and the fact that so many things depend on the shared libraries, we decided that it is best to put the first cut of these packages into experimental.

We’re now using the Quilt 3.0 source format for our packages, which means that we should have a better handle on the patches, especially as they all now have Dep-3 patch tags .

So what has changed, why should you go over and try the experimental packages?

  • First, it will help us with checking the packages actually work, Sven has tried them out (I will be soon) but the more testing the better.
  • We’ve updated the upstream patch level (basically the upstream version) on this set of packages.
  • New package! ncurses-examples which are all the example programs that shows you what ncurses can do.


Book: Surface Detail

Oh yes, another Iain M. Banks story is out and I had to read it right away.  I wasn’t disappointed either.

It’s another one of his Sci Fi books in the world, or worlds of The Culture.  I wasn’t disappointed and it was interesting to see him flesh out more of his universe in this book. Like a lot of his books, there are several sub-threads within the main story with no real obvious connection between them all.

Transferring your “mind state” from the grey mushy stuff you have in your head into a computer isn’t new in this series. Even the concept of the dead “living” in a computer is not that unique.  What has been introduced is the “hells”. A computer simulation of hell where people who go against some societies rules end up if they’re bad enough.

Now some civilizations think this is great, it keeps their population on the straight and narrow. As they know there really is a hell for them if they break whatever rules they have on the planet.  Other civilizations think they are abhorrent and want to shut them down.

Hence the “virtual wars” where the two sides fight in simulators, winner gets to keep the hells running or shut them down, depending who you are.  But now one side is thinking of taking it outside the simulation, to attacking in “the real”.

And this change to “the real” and the political mess that makes is the main story.  There are plenty of twists as you’d expect. A lot of decisions made where you’re not sure if the “right” thing was done but more importantly it was a very enjoyable read.

One thing, if you are the sort of person who reads the last page first, do not do it on this book! The surprise on the last line was worth it.

Enhanced by Zemanta

psmisc 22.13, gjay 0.3.1-2 and son 2.0

Debian OpenLogo

Image via Wikipedia

Two updates for Debian today.

I’m the upstream for psmisc and 22.13 finally got released, which also meant 22.13-1 Debian package got released too. There was some delay to it (see below why) but it is now out.  Unless you run a mips or superH architecture, there is not really any exciting changes, but should make it compile for those two architectures and then at least get the mips buildd underway so the versions all line up.

Secondly, gjay had two minor bug fixes and was updated.  If the analysis daemon kept playing music instead of looking at it or the vorbis files were not being recognised, then this new version will help there.  The mpg123 command line patch will be rolled into the upstream too.

I’m also working on getting gjay to work with the Exaile player.  If you want it to work with your player the easiest thing is to send me patches or code snippets that do the following:

  • Detect your player is running
  • Can give me the currently played song, preferably the filename of it. Exaile doesn’t so I’ll put it a kludge to guess it from title and artist
  • Remotely send a playlist to your player and get the player to start

Last of all, my second son was born last week. It’s back to those night feeds again and is probably why I’ve not written as much code as I normally would; but I wouldn’t change that either.

Manually calculating process times

Most of the time you can trust the times you see in programs such as ps and top within Linux, but there are those other times where you just want to check what is going on.

First up, if you’re using a FreeBSD system and the procps Linux tools, you’re out of luck because a lot of the procfs is broken.  You’re almost guaranteed to get wierd results.

Jiffies and Hertz
The first thing to find is your jiffies.  This is the number of clock ticks per second.  There are two main ways of doing it.

The first, and more difficult way is to add up the cpu numbers in /proc/stat, divide it by the first number in /proc/uptime and divide it by the number of cpus.

My cpu line in /proc/stat looks like:

cpu  1267430 145826 552700 137029699 905086 8295 17885 0 0

and my /proc/uptime is:

695317.99 1370303.58

I’ve got 2 cpus on this system so the calculation is:

(1267430  + 145826 + 552700 + 137029699 + 905086 + 8295  + 17885 + 0 + 0 )  / 695317.99 / 2

which equals 100.

The second way is to use getconf, with the command “getconf CLK_TCK” which again on this system gives you 100.

We call this value “Hertz” and is usually 100 or 1024 though for some architectures it is other values.

Start Time
For each process the procfs has the start time, but it is expressed as the number of jiffes since the computer was booted.  If we want to know the real “wall clock” time a process is started we have to start with number of seconds since epoch (for example using the time() function) subtract the number of seconds since the computer was booted and add the process start time from procfs.

The seconds since boot is the first value in /proc/uptime:

696141.85 1371857.53

The 22nd item in a procfs PID stat file is the number of jiffes since boot when the process started. We have to divide it by Hertz to calculate the number of seconds.
27139 (bash) S 11942 27139 27139 34821 5200 4202496 5500 25537 0 14 40 16 18 15 20 0 1 0 69446639 23433216 1378 18446744073709551615 4194304 5082140 14073724008 6512 140737240085456 140127945249678 0 65536 3686404 1266761467 0 0 0 17 1 0 0 0 0 0

To get the start time, take the current time, subtract the boot time and add the process start time.

perl -e ‘$nowstr = localtime(time() – 696141.85 + 69446639 / 100); print $nowstr, “n”;

Mon Jul 12 22:20:07 2010

Unless you are very quick, you will have to take a few seconds off because the time() function will be now, while the values from the proc files will be a few seconds earlier as it takes time for you to cut and paste.


Book: Do Androids Dream of Electric Sheep?

Actually they’re more interested in freedom, to be no longer slaves to humans. I don’t think it’s any spoiler to mention that an electric sheep does appear in the book.

This is a classic science fiction story of a dark not-so-distant future.  In fact given that it’s over 40 years old it could be set in some alternate now.  Some disaster has occurred and many have either left earth or died.  Some andriods, or andys have escaped and bounty hunters are after them.

You may not know the book by its correct title, but you may of heard the movie that is based upon it, called Blade Runner.  Like most movies based on books, it takes some of the concepts and ideas of the book but in my opinion is a pale imitation.

I’m glad I read this book. It hasn’t aged that much and it’s very though provoking.  Sci-Fi often uses some alternate reality to put a mirror up to what happens in the real world and this book is no exception.

And a token link to Debian, if you want you own electric sheep you can install the screensaver electricsheep package which draw pretty fractals on your screen.