Search Results: "andy"

22 November 2005

Edd Dumbill: Opinions and opinionated software

Since interviewing the creator of Ruby on Rails, David Heinemeier Hansson, I've been thinking a little more about what he calls "opinionated software." That handy little phrase seems to sum up what attracts me to a lot of technology, at all levels. What I like Free software--it's not really economics that drew me to free software, but the principles and aims. When you release or use free software, you're exercising your right to free speech and adding your voice to an argument. Desktop environments--GNOME 2.0: The move from GNOME 1.0 to version 2.0 was highly opinionated (Mac users, think OS 9 to OS X). Complexity of user interface was thrown out in favour of sensible defaults. Web standards--CSS, RDF, XHTML: not only is there a right way to do things, but it turns out to be better too! I don't automatically fall in love with everything that emerges from the W3C, but some things are so obviously the right way it's impossible not to love them--warts and all. Muine music player--this player throws out the paraphernalia of iTunes clones and gets you close to the music. Queue, play. What I want to do. Epiphany web browser--a simple text bar does for bookmark lookup, search and URLs. The bookmarks work like del.icio.us tags. Despite the lure of Firefox extensions, simplicity and efficiency keeps me with Epiphany. Make friends and enemies The thing about opinions is that people are inclined to disagree with them. Opinions won't please everybody and, being opinionated, you will never carry everybody with you. But opinions give you something with which to scythe through indifference. In both my writing and software development work taking a particular stance enables me to create interest, and gives direction to my projects. I tend to get bored easily, and if I'm bored, then my readers and users will never make it. Being opinionated in software development is easier when there's a strong leader, or it's a one-person project. It's more of a dilemma if you're running a free software project with multiple contributors. Such projects need such contributions, but run a risk of losing focus and style. I think that there we need to be brave again. If being opinionated means losing potential users, it also means losing potential contributors. Opinions help in dealing with users, too. It's obvious that the mere act of listening to users isn't good enough. They often won't say what they mean, or their requests mask a deeper issue. How often have you given your boss exactly what he asked for, to find it wasn't what he wanted? A combination of reading-between-the-lines and having opinions helps cut a way through the noise of user feedback. Stirring the pot Here are a few wishes for some free software projects that I want to see succeed further, but which really need to get opinionated to be effective. These projects aren't failing, but they're not reaching the potential I know is there. Each of them are infrastructural in some way, and that's probably where the temptation to avoid being opinionated is strongest. But here's the genius: the rewards of being opinionated here are high. Ruby on Rails is the existence proof. What's better? A handful of users with the "right" idea about how fundamentally important you are to everything, or loads of users who only see a portion of the capabilities of a project? Copy the experts It may seem like cheating to copy Apple's lead, but a lot of what they've done in OS X is to take a stand on what's useful and not. On many occasions this has inconvenienced people, but it's not eroded that special lure that Apple products hold. There's not harm in asking "What have Apple done?" with some of our projects. Another poster-child for being opinionated is Ubuntu Linux. Technically, it's only marginally better than other Linux distributions. Strategically, it's miles ahead. Its founder, Mark Shuttleworth, had very solid opinions about where Ubuntu should go, and pursued them. Over time, these have pervaded the product itself, but at the start it was the message and the style that made the difference. Opinions not expressed are rarely effective.

20 November 2005

Matthew Palmer: My First Time Mining Ruby

I'm not usually a grand fan of the latest and greatest fads'' in programming. The only C# I know is the black key next to D#, and I loathe coffee. An IDE in the hands of a poor programmer will still result in crap code. While I do think that agile methods (such as XP) can do well in certain development environments, I certainly don't subscribe to the notion that XP can solve all the world's software production ills. And so on. I do know quite a number of programming languages, and tend to pick up new ones out of intellectual curiousity (although Ada did put a severe dent in that habit) or because a bit of research tells me that the language might be particularly suitable for a particular task (although I've since learned that the actual purpose of PHP isn't dynamic websites so much as bringing the security levels of Linux boxes in line with Windows-led industry standards). I also learn languages because I want to hack on projects written in them, which is motivational, but not a particularly good way to get a deep understanding of a language. Why all of this introspection in a blog? So you have the background to understand how everything about Ruby is different for me, including how I'm getting started using it. I have no interest in hacking on a Ruby-implemented project, and -- although Rails proponents give me an impression similar to that of a horny teenager with a shiny new unlimited broadband account -- I don't have any particular use for Ruby at the moment (I want to write less webapps, FFS, not more!). So, why the hell did I fork out $90 hard-earned South Pacific pesos for a copy of "Programming Ruby: The Pragmatic Programmers' Guide"? A couple of reasons: I'm glad I got "Programming Ruby". The book is superbly organised, reads very easily, and gives you all of the love as and when you need it. Surprisingly for me and a technical book, I read the first section of the book "cover to cover". By the end of it, I came away with a real (if naturally superficial) understanding of the language, and a feeling that I was ready to tackle the world in Ruby. It is a sad state of affairs when the first piece of new programming you can sink your teeth into is some four days after finishing your initial studies into a language, but this afternoon I wrote my first Ruby program in anger. It's quite simple -- just take stdin and rewrite it all on stdout with the lines in a random order. But I wrote it in a new programming language, in about 3 minutes, with nothing more than ri (Ruby's answer to firing up python and typing help(xyzzy), more or less) and "Programming Ruby". I think I also produced a suitably reasonable result:
#!/usr/bin/env ruby
lines = []
while line = gets() do
	lines << line
end
	
while ! lines.empty? do
	idx = rand(lines.length)
	puts lines[idx]
	lines.delete_at(idx)
end
(Any Ruby afficionados out there, feel free to e-mail me and tell me what egregious sins I've committed). I think it looks reasonably neat and clean, it's certainly simple, and the use of real Object Orientation makes for a certain readability (I think the method call lines.empty? is particularly cute, although I did initially consider the use of a question mark in a method name to be a crime against humanity). So, will I be using Ruby more in the future? I think so. There are some features in Ruby which I'm hoping to get a lot more cosy with -- the idea of "blocks" looks particularly interesting, and I don't think the utility of languages that have been designed, top-to-bottom, to really live the OO ideal has been explored enough (you SmallTalk bigots can stop glaring at me now -- really, I mean it -- stop it!). It's far too early to tell whether Ruby will become my "go to" language for random development tasks, but anything that stops the nightmares (where I start thinking about using PHP as a general scripting language) cannot be all bad. And, if I continue to make new webapps, Rails will probably come in handy. Update: HTML <pre> tags don't like having < inside them unescaped. Also, Philipp Kern pointed out that the Ruby documentation browser is called ri (not ir as I originally wrote). Philipp was also kind enough to provide a much shorter version of my original script, which shows the power of Ruby so much better:
 lines = []
 STDIN.each_line    line  lines << line  
 lines.sort_by   rand  .each    line  puts line  
Now tell me that isn't a language worth using!

Jordi Mallach: One year of Blue Gold

Today, my magic metro card is one year old. When I bought it twelve months ago, I never thought I'd be so lucky. I don't know exact figures, but I think I've done 200 more train rides that it should have let me, and the card should have expired the 1st of February. But it didn't, and I've been using it over and over throught the year. I only was very, very careful when inserting the card or storing it in my wallet so it wouldn't bend or be damaged in some way... it's worth a lot of money! While my primary means of transportation is the bicycle once again, having this handy is a great way to save maybe 25 every month. The Blue Gold Rush is eternal, although time does leave marks on it.


The magic card, when I found its magic properties After some hundred uses...


Go on, my blue friend! I should find someone with equipment that can copy the data in the magnetic band. That would rock.

19 November 2005

Edd Dumbill: The Web as it was meant to be used

Since giving XTech 2006 the tagline "Building Web 2.0", I've received a few questions as to how wise this was. The Web 2.0 label has been accused in some quarters of being a vague, marketing-oriented, term. Perhaps an attempt to kickstart a new bubble. I was going to write further, defending my choice: that, practically speaking, Web 2.0 encapsulates a combination of technologies and practices driving the web forward. Yes, it's a label of convenience, but the implementation trends are real. The maturation of XML, a revival in browser technology, a willingness to share data openly and new web development frameworks. Just as I embarked on distilling these thoughts into a fuller form, Paul Graham published an excellent essay on Web 2.0. In it he analyses the Web 2.0 term:
Does "Web 2.0" mean anything? Till recently I thought it didn't, but the truth turns out to be more complicated. Originally, yes, it was meaningless. Now it seems to have acquired a meaning. And yet those who dislike the term are probably right, because if it means what I think it does, we don't need it.
So what's the reasoning that means we don't need the term? Graham writes: "Web 2.0 means using the web the way it's meant to be used." There's nothing fundamentally new, but there is a groundswell of understanding of what's been there all along. For me, that's a wonderful encapsulation of both current web trends and my aspirations for XTech. "Web 2.0" is a just a handy label for this. "The Web as it was meant to be used" will strike a chord with many web practitioners today--whether it's sensible use of web services with REST, improving user interaction in web design, or open semantics and data interchange. If you're involved in using the web as it's meant to be used, consider submitting an XTech proposal.

9 November 2005

Matthew Palmer: Redhat Considered Harmful

I try hard not to hate Redhat, I really do. I don't visibly grimace when someone says "I'm running $REDHAT_DERIVED_DISTRO", and my first solution to "I can't get this to work on $REDHAT_DERIVED_DISTRO" is almost never "just install Debian,Ubuntu ". But Redhat makes it so hard to not beat them with a stick. For instance, I'm working on building a SOE for a client, and so I've got a bunch of scripts (calling random poorly documented and hard-to-find utilities) to help me do that. Naturally, I'm pruning the package list, which requires me to rebuild the list of packages which are on the CD. No problems, I can handle that. Oh, but the tool that builds the package list can't deal with the correct "ordering" of packages in the list. Why is ordering important? Because, and this will make you laugh, the installer can't actually deal with dependencies. Yes, that's right, anaconda will install your packages in any old order you specify, regardless of what is actually needed. Brain-damaged, certainly, but I've dealt with Windows, so this is ultimately a minor setback. The tools for building the packages lists are in a certain package, which I dutifully install. They then proceed to fail horribly. Why, do you ask? Because the script requires python modules from another package. Gee, wouldn't be handy if there was a mechanism by which a package could specify that it needed another package to operate? OH WAIT, THERE IS -- IT'S CALLED DEPENDENCIES, FOR $DEITY'S SAKE! YOU WROTE THE GODDAMN RPM SPECIFICATION, REDHAT, WHY CAN'T YOU ACTUALLY USE SOME OF IT'S FRIGGING FEATURES! But wait, there's more! Installing the package which contains the module doesn't actually make the module accessable to anything else on the system, because the module is installed in some god-forsaken, out of the way location, where Python fears to tread. You need to specify PYTHONPATH to make it work. Apparently someone was sure that specifying absolute paths in scripts (instead of letting the system search it's environment) was a bad idea, but didn't have problem with not putting modules in standard, well-known locations. Then, of course, the (other) tool segfaults. Why? Because it's reading an empty file. Wow. An empty file causes this thing to fall over in a screaming heap. Not "Sorry bub, but your file's empty" just an unceremonious segfault. Wow. Thanks. And that's even before we get around to actually doing an install...

6 November 2005

Matt Brown: Cool new feature in SSH 4.0, Weekend Update

Stumbled across a blog post earlier today on a cool new “connection sharing” feature in SSH 4.0. Basically it multiplexs multiple SSH sessions over a single TCP connection so that subsequent sessions don’t suffer the key exchange and round trip setup delay. Given that I use SSH extensively to a small number of hosts pretty much continuously during my work day this sounds like a very handy feature for me. Read more at: http://little.xmtp.net/blog/2005/11/04/ssh-connection-sharing-c-visibility-share-libraries-and-gcc-attributes-oh-my/ In other knews, I’ve been doing some more hacking on darpwatch as a result of some patches I received, so there will be a new release happening soon there. I’m still battling away against Glade, GTK# and F-Spot in my quest to get all my photos exported out of gallery and into a nice F-Spot + Original setup. Updated PHPwiki packages have been built and have been pending upload for a week or two now, but my sponsor is quite busy at the moment, so there is a bit of a delay at that point inthe path. If you’re desparate for the new packages you can grab them from http://www.mattb.net.nz/debian/.

26 October 2005

Andrew Pollock: [tech] New toys

We've been stocking up on gadgets for our upcoming trips. Camera Sarah's going to Singapore to catch up with some relatives and then joining me in the US a week or so later. As our digital camera is currently a 1 megapixel afterthought on our Sony DCR-PC100E Handycam of 5 and a bit years, we thought it high time we got something half-decent as a compact camera. I'm moderately keen on getting a digital SLR, and after using Mikal's Canon EOS 350D when we went to San Francisco for our Google interviews, wouldn't mind getting one of those down the track and doing a photography course. So we tossed up whether or not to get a compact now and an SLR later, or scrap the SLR, and get something in the middle like a Canon PowerShot S2 IS. We settled on getting a Nikon CoolPix 5900, partly because apparently all the PowerShots are stuck in Customs at the moment and there's none to be had in the country for love or money. iPaq and GPS There is no way I was going to drive in the US again without some form of satellite navigation in the car. There's just too much going on on the roads over there (not to mention driving on the other side of the road) to have to worry about how to get from A to B. We were just intending to buy a car that had satellite navigation when we got over there, and try our level best to get a hire car with one in the interim. Some friends were saying that we'd probably pay a lot more for a car with it as a built in option, than if we were to buy a handheld/portable GPS. Then Mikal bought a bluetooth GPS for his iPaq, and that convinced me to go that way as well. So I bought an iPaq hx2100, which interestingly seems to have just fallen off HP's website (it was there on the weekend), so it must be approaching obsolescence or something. Today I got the Destinator software with maps for the US, and some evaluation maps for Australia, and tonight Sarah and I went for a spin to try it out. It was pretty cool. One thing that could be better is the differentiation between the directions leading up to a turn and turn itself. For example, it says "Turn right in 300 metres" and then proceeds to count down (e.g. "Turn right in 100 metres". Then it just says "Turn right". It'd be more obvious if you didn't have to listen for whether it was "in x metres" or not and either tacked "now" on the start or end of the final direction. It was also cute how it called roundabouts "circles". Going straight through a typical roundabout was "Take the second exit on the circle". If you ignored directions at some point, it'd plot a new route to still get you to your destination. All in all, I'm pretty happy with that purchase. The bluetooth GPS unit itself is cool. I'm able to talk to it from our PowerBook under MacOS X as a bluetooth serial port, and I'm yet to try the same with Linux on my D610. Hopefully I'll be able to get it work with gpsdrive The one downside with getting an iPaq and running Pocket PC 2003 (or WinCE as I prefer to call it) is it's forcing me to spend more time in Windows on my laptop than I otherwise would, just so I can do syncs and stuff. Hopefully once I've got the iPaq all bedded down, that'll change...

25 October 2005

Gerfried Fuchs: grml 0.5 released, some history

Yesterday night grml 0.5 - Codename Tokolytika was released. I can just repeat my last remarks: grml is a charm when it comes to restoring systems, or in other tricky situations where you need your sysadmin tools handy. Saved my day quite often so far, and I'm sure it won't stop. Get it now! I simply don't know any better live CD. For those who wonder what I was doing in the last time: I had been to the last Friday Night Skating of this year. The last hundred meters of the almost 2 hour lasting course I got pushed because my legs had finished early... Thank you very much, Conny!
All in all it was a great event and I'm sure to visit it more regularly next year. :) Workload both at work and private didn't really stop for quite some weeks, it was a horror. I wasn't even able to reasonably follow any mailing lists, left aside to do any real work. Though if you noticed my 1.2.2-16 upload of beep you might know that I also have invested quite much there. Furthermore I managed to get some people of our Debienna group interested in the g++ 4.0 transition. Greek0 wrote some scripts to bring the data of mfurr's page into one (for us) better suited to use and work from. In our wiki we write down our progress to keep us updated on who's working on getting what in.
I don't have real numbers, but from tracking mfurr's list of packages needing a recompile it went down quite a bit since we started, and we don't plan to stop soonish. And finally: I've written an article about jigdo-lite for my company's magazine. It's the 5th issue of the magazine, and my third article for it (first has been about gnupg and second about MUDs). I like writing, and from some of the feedback I received people like reading me, too. :)

21 October 2005

Adam Rosi-Kessel: Happy Sukkot

We built our first sukkah. It is 64 square feet, and features stylish decorations and a handy picnic table: Happy Sukkot!

17 October 2005

Joey Hess: thoughts (less random than expected)

This time of year it's great to curl up in the evening with a feather comforter and a good text file. I recently read all of Andy Hertzfeld's stories about the origin of the mac on folklore.org, pretty much straight through in chronological order during one long night. Only at the last story did I find out that he'd turned the website into a book. Reading a whole book in one sitting online is not a novel experience for me, though it seems to be for many, but doing it by accident is. My enjoyment of quantities of text online does sometimes come out in my own weblog postings, which are probably long enough, if not good enough, to be their own book. This weblog at least occasionally violates 8 of Nielsen's 10 weblog usability guidelines. The only one I think I should fix is point 5. Another book I read online recently is Karl Fogel's Producing Open Source Software. The contrasts between how Karl suggests doing some things and how projects I'm involved in work are sometimes large (he suggests voting on technical issues for example), sometimes due to differences in technology (the debbugs bug tracker makes conversations and other email-based use of a bug tracking system work much differently than the BTSes he describes using), and sometimes pointed to things that could be improved. More often though, he seemed spot on in extrcting and highlighting best practices. For example, he does a great job in pointing out that simple, consistent naming conventions, like #404093 for a bug report and r1021 for a repository revision, are more important than they appear. I also enjoyed reading some reviews of Katamari Damacy, which sounds like a truely unique and fun game. I'm looking forward to playing it (probably under emulation) one of these years.

Next.

Previous.