The NTP Pool Project is an amazing piece of infrastructure on the Internet. Most people don’t even realize that they are making use of it, but in fact a huge number of Linux distributions (amongst others Fedora, Debian, Red Hat Enterprise Linux, and CentOS) and Internet providers all around the world use the pool to synchronize system clocks in computers, routers and other devices with accurate time information.
The pool is driven by volunteers who invest a little bit of their bandwidth and a tiny little bit of CPU power in running the ntpd software and exposing it to the NTP Pool. When you’ve installed ntpd on a box, you can add its IP address to the pool database. Every once in a while the IP will then be added to the DNS zones for *.pool.ntp.org and devices using the pool will query your server for time information then. The Wikipedia article provides a bit more information about how it works.
I have been running a box in the pool for quite some time now and am pretty satisfied with it: The CPU usage is negligible (ntpd is well optimized in this regard) and other services running on the same box (SMTP, HTTP etc.) consume significantly more bandwidth than what is spent on NTP traffic. And who cares about bandwidth these days?
So: Have some box with a static IP address sitting around somewhere? Go sign up for the NTP pool!
You can even use a box that sits behind a DSL connection, but in this case you should make sure that you really have a static IP address and that your NAT box is capable of handling all the packets coming in and leaving when your machine is in one of the *.pool.ntp.org DNS zones. And if you like playing with exotic hardware, you can probably get your hands on brand-new GPS time hardware provided by Meinberg once you’ve joined.
An incredible number of things on the Internet can be improved. Joining the NTP pool may be a step in the right direction.
Thursday, September 6, 2007, 6:00
Last Friday, Guido van Rossum released the first alpha version of Python 3.0 aka Python 3000. Judging by the changelog, the Python developers got rid of a number of annoyances and inconsistencies in order to make the language more cleaner (again). And prominent Python users don’t seem to be afraid of adjusting their code to work with the new version. Go figure.
Maybe it is time for PHP to jump on this bandwagon as well and start getting rid of historic cruft and inconsistent function naming in some future major release? I’d certainly embrace such a move, because luckily I live in a world where people work in environments controlled by themselves instead of clueless hosting companies, and where my tool-chain supports dependency handling. Thus I couldn’t care less about backwards compatibility that so many PHP developers are afraid of. Luckily the people who do actual work on the PHP engine (which does not include me, FYI) and not the ones who scream loudest are the ones to make such decisions. As a result I expect that we’ll have to live with the current inconsistencies that have made PHP the imperfect yet likable language that it is today.
Sunday, September 2, 2007, 6:00
I will be spending Monday and Tuesday at Microsoft’s Student Technology Conference.
If things converge towards the worst case, it will be mainly sales pitching with a barbecue plus free beer at night. If things go well, there will be interesting talks, hopefully good discussions and a barbecue plus free beer at night. In any case, there will be a barbecue plus free beer at night, which is a good thing. And the venue seems to be pretty, too.
If you happen to be there as well, I’d be happy if you stopped by and said hello. Unless of course they don’t let me in with a MacBook Pro in my bag …
Saturday, May 19, 2007, 6:00
Yahoo! has finally decided to get rid of their current Photos property and to only support Flickr for photo hosting from now on. There is an article about this on TechCrunch and the Photos FAQ also offers advise regarding the topic.
What I’m wondering is how people who were used to the internationalized version of Photos will react to this move? Flickr is available in English only at the moment, while Yahoo! Photos has been available in a number of languages. Can we expect an I18N-Flickr soon? I remember there being a presentation by someone from Flickr’s staff where they said that the site was built with I18N in mind from the very first day. And let’s face it: There are very active Flickr members who have most likely never written a comment in English but only in their mother-tongue. Wouldn’t it be great for those people and for the gazillion people coming from Photos to have the whole site in their native language then, too? We will see.
Friday, May 4, 2007, 6:00
There is a nifty example by Rasmus Lerdorf about using file upload hooks in PHP 5.2.x to generate a progress bar while uploading a file through a HTML form. The source code is pretty self-explaining regarding all the things that happen on the client side, but unfortunately Rasmus does not mention what is required on the server side to make the magic work.
In order to make it possible for clients to regularly poll a server for the progress of an upload, one needs a bit of middleware that hooks into the right places inside PHP and exports the progress information to “userland” PHP code. In Rasmus’ case, he is using the APC opcode cache to do this. Recent versions of it come with a (yet undocumented) feature which, once enabled, listens for incoming file upload requests that contain a special field called APC_UPLOAD_PROGRESS. If this field is given, APC creates a cache entry named after the value of the field and regularly populates the file upload progress to this entry.
If you look closely at Rasmus’ example, you’ll notice that not only the script uses apc_fetch() in order to read information from a shared memory segment, but also that it includes the magic APC_UPLOAD_PROGRESS field. The value of the field is generated using the uniqid() function so that multiple file uploads happening at the same don’t use the same cache entry.
So how does one trick APC into working that way? The documentation does not say a word about it at the time of writing this, but the installation instructions in the CVS repository tell us that one needs to add apc.rfc1867 = 1 to php.ini in order to enable the hooking. Once you know that, everything works just magically.
Hope this helps.
Saturday, April 28, 2007, 6:00
Some minutes ago I rolled version 0.2.0 of Services_Yahoo, which sports a brand-new fluent interface for the part that implements the web search API. Also the package now uses the serialized PHP data that is provided by Yahoo! instead of parsing their XML output. I’m not yet 100% satisfied with the fluent interface, but I think it comes pretty close to what I want it to be.
It will take until Sunday for the documentation on the PEAR website to be updated, but if you want to try the new release before, you’ll find some example code in the unit tests. Feel free to file a bug report or two if you encounter anything odd.
Friday, April 20, 2007, 6:00
Apparently the readership of my small niche of the web has no interest in GPS at all, because I received zero replies after my recent inquiry. Oh well, I don’t mind, really.
So today I went on a GPS unit foray with the intent of getting an eTrex Summit, which costs about EUR 220 in Germany, but came back home with something significantly better for a smaller price:
At their fantastic Cologne store Globetrotter is currently selling out their stock of eTrex Vista units which normally cost EUR 429 for EUR 199, because apparently Garmin is about to release a new model or something like that in the next weeks. This means that one gets the Vista unit which has all features of Summit plus basemap support (which I don’t really, but this doesn’t matter) for 20 bucks less. Pretty cool price. Pretty cool toy.
Tuesday, April 17, 2007, 6:00
Dear lazyweb,
I’m considering to get myself a GPS unit, but I am not really sure what to buy. Looking around it seems that most shops (in Germany) offer Garmin products and I currently think I’ll go for one of their models, most likely one from the eTrex family.
eTrex Summit has this nifty compass/barometic altimeter thing and comes at a reasonable price, while eTrex Legend is even cheaper and unlike Summit supports street maps. I will most likely only use the unit off-road, so map support is not critical for me.
As a result I’m leaning towards the Summit model at the moment, but if someone suggests something better or has bad things to tell about eTrex/Garmin/Summit, I’ll certainly reconsider. Let me know if you have anything to say.
Thursday, April 5, 2007, 6:00
Today I threw my name in the hat for the upcoming PEAR Group election. I have been thinking about whether to run for another legislature or not (I am a member of the current Group) ever since it became apparent that there is interest in the PEAR developers community to form a new organizational structure for the project. In the end I decided in favor of a candidature because I couldn’t come up with a really good reason why I should stop my involvement. A few months ago I would have most likely decided differently for various reasons, but these days the PEAR Threat Level is back to green for me.
Now let’s see what the outcome of the election will be. In any case it will be good for PEAR, which is important. If I don’t get enough votes, there is always CPAN. Or the Cheese Shop. Or raising sheep.
Friday, March 23, 2007, 5:00
During the time when this site was dead, two or three of my virtual buddies pinged me about the “n things you didn’t know about me” meme that spreads around the blogosphere. Today Thomas (German only) also tagged me and thus I have finally given in. There you go:
- I used to know quite a lot about seismology. Sadly I have forgotten most since then.
- I appeared on TV twice, both times because of 1.
- I am good at getting things done long before they are due
- I am good at procrastinating (anyone spots the contradiction?)
- I have a strange crush on Ursula Andress in Dr. No
Thursday, March 22, 2007, 5:00