Tim Groeneveld

Random musings from the world of an Open Source geek

Installing all* the fonts on Red Hat EL6

| Leave a Comment

I am currently working on a project that takes screenshots of websites, and needed a quick way to get the most common fonts installed on the screenshot server. This worked wonders (although, it still needs a bit of tuning, I will work on that later.

yum install google-\*-fonts wine-fonts dejavu-\*-fonts

Internet Explorer 6 makes me sad.

/ | Leave a Comment

In this day and age, I can’t believe that people are still using Internet Explorer.

Because I am a good net citizen, I decided to help my uneducated users out.

if (preg_match('/MSIE [456]/i', $_SERVER['HTTP_USER_AGENT'])) {
require 'templates/blank_development/ie6.php';

Bye Bye IE

WordPress 3.5 is almost complete

/ | Leave a Comment

I am writing this blog article to you on the new WordPress 3.5.

The updates since 3.4 are really nice. I am especially enjoying the new media manager, with it’s easy to use ‘Drop files anywhere to upload’ screen. Drop files anywhere to upload

According to their Trac install, there is only six issues left to fix before they release the new update for everyone to consume.

See the remaining issues in the development version of WordPress, or try the WordPress Beta Tester plugin to test the very latest (trunk) WordPress right now.

Bandwidth of a Boeing 747

| Leave a Comment

The theoretical capacity of a Boeing 747 filled with Blu-ray Discs is 595,520,000 Gigabytes, resulting in a 245,829 Gbit/s flight from New York to Los Angeles.


Whois Server Live

/ | Leave a Comment

.ing whois server screenshot. ++ Please do not use this server to perform high volume queries. The Registry database contains ONLY .ing and .micro domains.

The whois server for the .ing top level domain is now live. You will be able to see when domains were first registered with register.ing.

The server has been written in nodejs, which is an event-driven I/O server-side JavaScript environment based on V8 (the fastest Javascript engine, written by Google and included with Chrome).

whios.js listens on port 43 for a whois request, parses the domain to ensure that it contains no invalid characters and then requests via the new register.ing API the registration status, and further information about the domain name, if available.

The addition of the register.ing whois server finally closes one of the earliest feature requests for the register.ing service.

New Installer Skeleton

| Leave a Comment

Ever written a web application, wondering what will happen months down the track when a client (or even *gasp* you) need to install your web application?

I am working on a new installer skeleton (if you will) which will allow you to very simply create a fully functional installer for your slightly complicated web applications.

Basically, you can provide the user with different modules. Modules are either required or optional. Modules can define what forms they will show to the user. When a modules form is shown to a user, it gets the chance to run code (via a function in the module’s include file) to both before the user is asked to input any data and after. Also, a separate function can be used to validate that the user has entered correct code.

The installer is (almost) completely modular. I should have an awesome release over the next coming weeks… here is a sneak peak.

CentOS 5.7 has been released

/ | Leave a Comment

I know I might bag out CentOS at the best of times, but Karanbir Singh – our fearless leader of all CentOS developers has announced the immediate availability of CentOS-5.7 for i386 and x86_64 Architectures.

Well, what are you waiting for? yum upgrade.

How Meetup.com started

/ | Leave a Comment

I got an email today from Scott Heiferman, one of the founders of the site ‘Meetup’.

A lot of people were thinking that maybe 9/11 could bring 
people together in a lasting way. So the idea for Meetup was 
born: Could we use the internet to get off the internet -- and 
grow local communities?

We didn't know if it would work. Most people thought it was a 
crazy idea -- especially because terrorism is designed to make 
people distrust one another.

A small team came together, and we launched Meetup 9 months 
after 9/11.

Today, almost 10 years and 10 million Meetuppers later, it's 
working. Every day, thousands of Meetups happen. Moms Meetups, 
Small Business Meetups, Fitness Meetups... a wild variety of 
100,000 Meetup Groups with not much in common -- except one 

Meetup is totally oriented towards planning in-person group activities rather than catching up online, and I like the features it doesn’t have almost as much as those it does. You can’t create a really complex profile, private message other people, or post a bunch of status updates.

The people you meet are often very open and friendly; it doesn’t take long before they stop feeling like strangers.

Meetup really is an online network that exists to help people connect in real-life groups on a local level – the first of it’s kind. To see that it grew the way that it had made me an even more proud user of the website.

More snippets

/ | Leave a Comment

Yesterday I posted about having an existing ssh-agent load on all new shells. Here are two more handy snippets of code from my .bash_profile

The first code snippet is a follow on from yesterday, were I can type ‘lock’ or ‘unlock’ into my shell and the ssh-agent will follow on accordingly. When your ssh-agent is locked, users that have access to the ssh-agent will be required to type in your SSH agent password.

function lock () { ssh-add -x }
function unlock () { ssh-add -X }

The next snippet of code adds a ‘ns’ command. I have issues trying to remember IPs – especially when they are not used too often. This command lets me easily remember 🙂

alias ns='for x in ns1 ns2 ns3 ns4 ; do host $x.google.com; done'

When run:

[tim@2-xlc-controller ~]$ ns
ns1.google.com has address
ns2.google.com has address
ns3.google.com has address
ns4.google.com has address

The last dirty one liner that I love is another simple time saver. Many people use the ‘whois‘ command to find out what nameservers are used by a domain name. It’s not too long before you work out that it is not really the best way to be finding out what the domain name’s nameservers are.

function nameservers() { echo $1\'s nameservers are:; dig +trace $1 | grep NS  | grep "^$1.";  }

This handy one liner allows me to do awesome things like:

[tim@3-xlc-controller ~]$ nameservers google.com
google.com's nameservers are:
google.com.             172800  IN      NS      ns2.google.com.
google.com.             172800  IN      NS      ns1.google.com.
google.com.             172800  IN      NS      ns3.google.com.
google.com.             172800  IN      NS      ns4.google.com.