I've done a lot of different software on a lot of different platforms. Today I started doing my thing for Google.
I'm really getting attached to using Mercurial. I've been a Subversion fan for years but when Ben Collins-Sussman (one of the authours of Subversion) mentioned he's been using Mercurial, I took that as a pretty solid endorsement. I'm not saying I'm jumping ship but I definitely have found some of the things I can do with hg to be pretty convenient compared to the way I've been using Subversion.
The installation instructions for Go are pretty clear and worked easily on my Ubuntu VM. Setting it up on my VPS at Slichost required a little bit of translating and some extra packages I hadn't installed yet. This Slice runs CentOS 5.3 right now and I wanted to try running my latest version of GoPlot on it.
Basically what I did to get started is the same as the official docs but translated to an rpm-based system.
Back when I first set up this Slice, I'd already done the recommended first steps. I'm also running Advanced Policy Firewall (APF).
First I needed the prerequisite Go dependencies. Getting the latest version of the Go source requires mercurial (hg) and the easy way to get that is with easy_install. So CentOS is rpm-base, we use yum (as root):
It's been a couple days since I created a project on Google Code, so here's another one. Seriously though, Google released the Go programming language yesterday. It's intended as a systems programming language for projects that could be done in C or C++. All I saw was a short video showing off the quick compile time.
I wrote my first VB.net app yesterday. I haven't touched Visual Basic since version 6, but recently I've been looking at Microsoft .Net tools. Mostly I just want to get up to speed and see how things are going over there. At the moment, Visual Studio 2010 Beta 2 is available for download free of charge. I installed it, rebooted a couple times, and made a new project.
You know the trick with gmail where the user can also use the address billg+whatevertag@gmail.com? Exim can do that too. It's called an email address suffix or sometimes plussed addressing. The official Exim manual shows it's pretty simple to add to your configuration. Their example shows just adding two lines to turn it on for local users:
Most sites hosted on a VPS don't actually want to deal with just the email addresses for local users (these are users that have a shell account on the system). It's more likely there's a configuration section using the redirect driver. This seems to be the relevant part of the configuration at PowerVPS in /etc/exim.conf:
I can't go through all the steps in a lot of detail here but I can give a basic overview.
I already had a development environment set up for Google Appengine on my computer. This uses PyDev in Eclipse. I'm not much of a Python programmer but I've done a little bit for Appengine, mostly just following the Google tutorials. For my robot, I created a new Google Appengine project and I created a new project hosted on Google Code (using Subversion because I'm comfortable with it). You can see the code for Q&A bot in my qnabot project.
The Prepopulate module is only 65 lines of code. It does something really handy. It takes variables from the URL and uses them to fill in form fields. There are a couple ways this can be useful, like giving a link to a form that has some default value. Making bookmarklets is the other big use for this module. There are a couple examples in the Drupal handbook on Prepopulate, like this one I submitted:
So this is pretty cool. But there can be issues with long URLs. HTTP doesn't limit the length of URLs but browsers do. I don't mean the URL of the bookmarklet here. When the surfer clicks the bookmarklet, the browser will create and follow a URL like
http://example.com/node/add/customenode?edit[title]=title&edit[body_field][body]=body&edit[field_external_link][0][url]=currentsiteurl
The highlighted parts of that url are the parts that are filled in by the page the user is visiting when they click the bookmarklet. The rest of it is controlled by our site, so we can make it shorter. I'd like it to look more like:
http://example.com/r?t=title&s=body&u=currentsiteurl
This isn't really complex, just something I had to do recently. Sometimes you want to tweak a form in Drupal, like rearrange the form elements for example or add a little text that wasn't there before.
In this case I'm using the Password Policy module to enforce strong passwords. When a user makes a bad password, Password Policy will reject it and dynamically display a message that indicates why the password is unacceptable. It's a pretty cool feature but I'd like users to know what the requirements are before typing in a password. So I want to take the description of the policy and show it to the user in the description by the edit boxes where they can change their password.
Nautilus makes some nice thumbnails for media when viewed as icons. I got to like the feature but then I noticed it doesn't happen on Samba shared folders. To get the thumbnails to show, I had to go to Edit -> Preferences. This brings up the File Management Preferences dialog. On the Preview tab there are options that let you set previews such as thumbnails and audio previews for local files or all files. I'd like a few more options in there, like distinguishing between my LAN and the Internet, but so far we can choose between Never, Local and Always. Local will only make thumbnails for files on your computer. Always will make thumbnails for files on your computer or folders on Windows (SMB) shares. Never won't make thumbnails.