[photocommons file=”Wikimedia logo family complete.svg” width=”300″ align=”left”]Our Deputy Director, Erik Möller, has posted a list of the open Engineering positions at the WMF that we’re hiring for right now.
If you’ve ever wanted your work to matter, to mean something more than a paycheck and the 9-5 grind, and you have the skill and aptitude for software engineering, product management, or QA, then I don’t know of a place that you can work that a bigger impact than the only non-profit with a website listed in the top 10 websites — an organisation that is dedicated to a bigger vision that we are really trying to achieve instead of something we tell you to get more eyeballs for our ad banners.
Check out our job openings — we even have some non-engineering positions. Unlike the other top web properties, Wikimedia is never going to make you rich with stock options, or a signing bonus, but we’re still small enough where your own work can make a big difference.
I talked about Jetpack before, but it looks like Dave has finally decided to come out for real. He has a video where he reveals all. Jetpack is looking awesome.
A friend of mine asked me for a job recommendation. He got the job, so I’ll assume that anything I said about him didn’t hurt him. Today, I talked to him. He is managing the JetPack project for Mozilla Labs. After he mentioned it today, I went to look at it. After poking around a bit, I have to say, it is some exciting stuff.
Over the past couple of weeks, I’ve been working on MediaWiki’s search functionality. First, I fixed a bug I found with Unicode normalization in the lucene-search extension used by Wikipedia itself. Later, I adapted the normalization that Chinese and Japanese language MediaWiki’s have been doing for full-width characters to all languages. If you’re like me when I started this, you don’t really have a clue what I mean when I say “Fullwidth Latin Characters” even if you know what Unicode is. If you’re familiar with Unicode, you know that the first section is compatible with ASCII. The alphabetical characters contained here are called “halfwidth”. They don’t mix easily with “fullwidth” Japanese and Chinese characters. In order to accomodate the mixture of latinate languages (like English) with these ideogram-based languages there are fullwidth forms available. These fullwidth forms (ＡＢＣ vs ABC) occupy a different area of the Unicode character set and, if your software doesn’t normalize them, then searching for “Mark” won’t match “Ｍａｒｋ”. (And, if you look over the Wikipedia page titled “Latin characters in Unicode”, you’ll find several copies of the alphabet in Unicode space.)
Emacs23 includes default keybindings for scaling fonts up or down:
C-x C-+ — scale the current buffer’s face/font up C-x C-+ — scale the current buffer’s face/font down
This is good as far as it goes, but I’d really like something a little easier. So I’ve added the following to my .emacs file:
(global-set-key [(control mouse-4)] (lambda () (interactive) (text-scale-increase 1))) (global-set-key [(control mouse-5)] (lambda () (interactive) (text-scale-decrease 1)))
Now, if I hold down the control key and scroll the mouse wheel, the font will get larger or smaller. Some other applications (e.g. Firefox) use “Control +” and “Control -” to do something similar along with “Control 0” to return to the default size. You could set these keybindings in Emacs without losing too much (unless you’re used to C-- and C-0 as prefixes, in which case, you still have C-M-- and C-M-0):
(global-set-key [(control ?+)] (lambda () (interactive) (text-scale-increase 1))) (global-set-key [(control ?-)] (lambda () (interactive) (text-scale-decrease 1))) (global-set-key [(control ?0)] (lambda () (interactive) (text-scale-increase 0)))
None of this will permanently affect the size of the font, so for the next buffer you open or the next time you start Emacs, you’ll have the same size font you started with. If you want to change the default font size, use M-x customize-face RET default RET instead.
I have this “thing” about owning my own data. I probably won’t be a real user of Tim O’Reilly’s Internet OS. I like running my own mail server — not relying on Google for Domains, not giving Google more and more data to feed into their advertising. But I’ve been using Google Reader. I’m not sure what Google is doing with that information, but, well, I can run my own feed reader on the desktop. So I switched to Liferea. Besides nice things like task-bar notifications, integration with del.icio.us — or, with a SMOP, my own GotNoBlog — it allows me to pull RSS feeds that require authentication so that I can read LiveJournal friends-only feeds now. I’ve managed to reclaim a little bit of my data. Hurrah!
One of the never-ending subjects of Free Software is “Where are the Women?” While I see it as mostly a non-problem — that is, there are some obvious problems that need to be fixed with time, but no one is going to rectify them right now — I’m doing what I can to encourage my daughters and son in the field. In the meantime, The Decline of Women in Computer Science from 1940-1982 has some fascinating anecdotes:
Computing was unique, however, in the sense that the fledgling profession was still in its infancy and had no strong pre-war gender socialization. This fact must have helped the women in that the returning men lacked programming expertise, and clearly had no expectation of “returning” to a programming job. The lack of structure in the industry was also a boon to women programmers who wanted to continue working even after they became pregnant and had children. Most notably, “Computations, Inc., of Harvard, Massachusetts (outside Route 128), formed in 1958 by Elsie Shutt and several other programmer-mothers who worked part-time and largely at home on problems contracted out to them by their former employers, such as Minneapolis-Honeywell and Raytheon”. These women, widely known as the “Pregnant Programmers” were mentioned by speaker Richard H. Bolt at the M.I.T Symposium on American Women in Science and Engineering in 1964. Bolt, who was a lecturer in Political Science at M.I.T and also a former Associate Director of the National Science Foundation (NSF) from 1960-1963, also mentioned the following:
“I asked one of the unmarried women, a computer programmer in industry, if she thought a woman’s activities as a mother and homemaker would interfere with her opportunities in a career. ‘One good thing about programming,’ she said, ‘is that you can work part time.’”
Tomorrow, our adventures into programming Lego Mindstorms begin. It took a little doing, but I managed to get XSLisp compiled and working on my brick. I’ll be posting a HOWTO shortly. For starters, we’re just going to build a simple rover using the program in this paper. You could consider this cheating since I haven’t had time to come up with anything really didactic. That’s ok, though. I don’t want to bore them to tears right out of the gate. Perhaps we’ll take the rover and modify it somehow over time.
There is, for those of you not geeky enough to know, a new fad sweeping the world of software development. It’s called “Extreme Programming” or “XP” for short. One of the core concepts of XP is testing, specifically test first design or test driven development (TDD). So, all this is well and good for new projects, but what about me? I’m stuck with thousands of lines of code written by the previous developer. Not a test in site. Most of it desperately needs to be refactored. Now, your typical XP fanatic would say “So, write the tests before you refactor” and I’m sure that’s the “right” thing to do. But I don’t. Instead, I just dive in, refactor away and then think “Hey, this is the big money maker. I need to test!” And then I remember (in addition to all the TDD hype I’ve been hearing) that you should never do something twice when you can write a program. So, today I wrote a bunch of tests. And found a bunch of bugs. And saved myself a bunch of grief. And, quite possibly, save the firm some money. I should do this more often!