Search Results: "spa"

20 October 2005

MJ Ray: Selling, the web, chipping and bloody hacking

The Internet Advertising Bureau thinks the UK spend could be over a billion for the first time. It's now 5.8% of the national advertising spend and is growing at a pretty remarkable rate. Is Christmas coming early for online? OSCommerce - the future will be templated. We're doing more OSCommerce work and 2.2 MS2 is a fairly typical PHP application, with some structure, but also lots of spaghetti code. The next version is looking a lot better, including this announcement from the lead developer. Templating and styling has to be the most-requested work. I find it a little worrying that OSCommerce is not more openly developed, but it'll be good when the new release ships. Jakob Neilsen has announced the top ten web design mistakes of 2005 and "Legibility Problems" are number one. This isn't a surprise to me. Many websites, including some big names, are totally broken if your browser defaults are light text on a dark background, because that's easier on your eyes. I once spotted the Disability Rights Commission getting this wrong. Even planet.debian.org is missing a:link color: ... . The second top mistake is bad linking, including:
"In particular, don't open pages in new windows"
.which is another thing which I find irritating on many sites. If I want a new window, I'll pick the link for a "new window" from the context menu, or by shift-clicking. Does Mozilla or Firefox or something have an "ignore _blank link targets" option yet? It's only a matter of time. My own company's web site has been updated and I've tried to take these on board. We don't do any of the worst things, but there are always things we can do better. Our site isn't that high a priority - there's so much else to do. The W3C's internationalisation working group has issued a note on working with time zones. I get a lot of unusual time zone requests while programming, but I'll remember these explanations and I think I usually follow the recommendations in s1.5 anyway. Also from W3C is a Working Draft of "Mobile Web Best Practices 1.0" which they'd like feedback on, if you use or develop for mobile web devices. At first glance, it seems that many of the items are stronger versions of the Web Content Accessibility Guidelines. PlayStation chipping is legal in Australia but not in the UK, where it was ruled illegal last year. Chipping is the practice of adding a part to the games console so that it can play imported titles. If the chipping and the risk of breaking it costs less than the difference between imported and domestic releases, some people will want to do it. It's competition between markets. I remember similar things for the old cartridge-based machines of my youth. UK law-makers seem to be trying to kill off that trade in favour of foreign companies that want to tightly control the consoles long after they've been sold. The ruling from Australia might bring the start of a backlash against the increasingly restrictive UK laws, but it's more likely that the EU, US and others will press Australia to fall into line. Copyright seems to be one of the few areas where free trade is being reduced, rather than increased. And finally, I remember the feeling of getting sparc32 Linux working.

19 October 2005

Jonathan McDowell: <twomack />

From an ubuntu-announce mail just received:
  • A slim default installation, occupying just 400 megabytes
Now I'm not picking on Ubuntu in particular here, but the word just really does seem to indicate that Tom Womack's proclamation that "Disk space is cheap" just continues to get truer and truer. My first well used Linux install was on a 40MB disk and I'm prepared to bet there are plenty of people who started with less. Even these days people like OpenWRT are producing distros that fit in 8MB of flash. I think it's a sad reflection that 400MB is considered a small footprint for a mainstream distro.

Scott James Remnant: Parallel Peer Programming

Here at Canonical Towers we have several staff who worship at the altar of Extreme Programming, and as such many of the methodologies and rituals prescribed by that religion find their way into our day-to-day working practices. A few of these came together in an interesting way a few weeks ago, and it was suggested by a cow-orker that I blog about it so he could give the URL to people. The first ritual is that of the sprint, I don’t think this is orthodox XP but rather something inspired from it that we picked up from the Python community. With all of the Canonical developers scattered across the globe mostly working from their own homes, it’s become a useful tool; particularly for the Launchpad team. The basic idea for those that haven’t heard of it is simple, and perhaps obvious; you get a selection of the team together in one place, sit them around the same table with particular goals to complete. In effect it’s highly compressed facetime and high bandwidth interaction to nail those tasks that need it, before you head off again and work at a more sedate pace. The second is directly from XP doctrine and is that peculiar observance known as pair programming, something that is often coupled with sprints. For anybody who hasn’t encountered this before, it’s something I’ve always found rather odd. You get two programmers together, both itching to code, and you take one of them’s laptop away; and you don’t just force them to fight over the keyboard either, the laptop-less soul isn’t allowed to touch it. The theory here is that it frees the deprived individual of the hassle of coding and allows them to direct the programmer in ways that may not be immediately obbious, or alternately think about the next bit of work that needs doing. Another interesting side-effect is it can be an interesting way to learn code you’ve not worked with before, if you’re the one doing the coding and you’re being guided what to do by a sage who already knows it. I have a funny story here, so I’m going to digress from the main stream for a moment to tell it. A few months ago I was working in the London office, Mark had been up all night coding and had then given me responsibility to get his changes landed onto the Launchpad mainline. I’m not that hot on quite a bit of Launchpad, and fade to utterly clueless the nearer the code gets to the web application itself; and when trying to merge the two there were conflicts which I needed Mark’s help to resolve. Now as anybody who’s met Mark knows, he’s a pretty good example of a Type-A personality, yet he suggested that we do a spot of pair programming to get the code in and I’d be the one with the laptop as it’d help me get to grips with the affected parts. This hilighted something I’ve always seen as a problem with pair programming, dealing with it when the a person with the keyboard has a totally different way of working to you. In particular, I’m an emacs user, whereas Mark is a die-hard vim user; but also right down to the working directory I would work from, how I test results, etc. When you’re the one without the laptop, this can be quite infuriating, as you know exactly how to solve a problem and the idiot with the keyboard is dithering about doing things you don’t understand just to get there. If you’re a Type-A personality, you generally snatch the laptop away at this point and do it yourself; or at least you would, if you could drive the strange editor the other person uses. I swear Mark was sulking as he gave the laptop back and let me do it. Anyway, there is some relevance to that and we’ll come to it in a moment. The third and final methodology is the concept of unit tests and more specifically test driven development. For anyone who hasn’t come across this before, I highly recommend it; I was suspicious too when Robert Collins took it upon himself to teach me the true way, but now I’m sold. Simply the idea is that if you have any code that doesn’t have another piece of code in a test suite that checks that it’s working correctly, that code is broken. More particularly unit testing involves checking just one feature or requirement at a time, and stacking them together to test all of the code paths. I’ve actually found that this improves the APIs I design, as I write the code in small blocks and functions to make them easier to test. Test driven development takes it even further, you write the unit tests first, before you write the code they’re supposed to test; usually one or two at a time. Obviously these tests will fail at first, it’s then your job to write as little code as possible to make them pass. If your code isn’t right, you add a unit test that will fail, and modify the code to make it pass. This really comes into its own when you’re fixing bugs later, once you’ve identified the bug you write a test case or two that cause the problem; these will of course fail. You can then modify the code to make them pass, and at the same time be sure you’ve not broken other functionality because of the existing test suite. I’ve also found it really useful for particularly complicated or tricky pieces of code, especially those intricate algorithms that do particularly heavy lifting. So onto the event itself, this was a sprint in our London office to indoctrinate Gustavo Niemeyer with the various projects he’d be working on. The goal for this sprint was decided to start the conversion of HCT to Bazaar-NG, and to do this Gustavo and I would pair program. Now my last experience of pair programming had been that story with Mark (see, it had some relevance) and I knew I’d be just as bad if I wasn’t allowed to have the keyboard. I was also acutely aware that if Gustavo was just sitting by and watching, he wouldn’t get much benefit from it either, so he needed to be actively involved in the coding so he could learn the things he’d be working on. I came to what I thought was a pretty neat, and obvious, solution to these problems. We set up my laptop with the code we’d be working on, and on my display were two side-by-side terminals both running screen sessions. Gustavo then set up two same-sized terminals on his, ssh’d into my laptop from both of them and joined the screen sessions. In the left-hand one he ran vi, and in the right-hand one I ran emacs. Thus we both had keyboards, and both had editors, yet could see each other working and even steal the keyboard without danger of violence. We didn’t just sit side-by-side and code on different things though, that’s not pair programming and is just ordinary programming with a bit of a voyeuristic twist. What we did was: in my terminal I started writing the test cases for the code we needed, it was Gustavo’s job to write the code that would make them pass. We actually added a third terminal in which we could run the test cases themselves; so I could run them when I’d added something that would fail, and Gustavo could run them when he thought he’d made them pass again. This turned out to be a rather fun way to work, and at one point I was almost able to try and convince myself that the code was writing itself to pass the test cases I was writing. It also got me thinking that it’d be really neat to use genetic algorithms to breed code to pass test cases.

Robert McQueen: Comments

Just a quick post to reply to the comments I’ve had on some previous posts. On Missing entropy on my server box, I received lots of comments on how to feed random other stuff into the entropy pool or make it bigger or other hacks, but Alexander Reelsen pointed me to the real cause — a kernel bug in older 2.4 kernels which causes the entropy pool to deadlock on SMP systems, and never get refilled. There is a patch from RedHat which backports the fix from 2.6, and is included in recent 2.4 kernels. On the topic of kernels, now I’ve upgraded from 2.4.29-rc1 to 2.4.32-rc1 I get lots of errors like hw tcp v4 csum failed in my syslog. I’m using the e100 driver which as far as I can see hasn’t changed between versions, but there have been some changes to TCP checksumming code which I havn’t quite been able to grok. Google finds mailing list posts with other people asking what the cause is, but nobody answering. Anyone know what’s going on there? On Windows accessibility, many people seem to not listened to the first couple of minutes of the tasteless song I linked to, and hence taken my comment completely seriously. Thanks to everyone who told me about sticky keys etc in comments, but I did already know about the existence of Windows accessibility support (warning: mjg59 in furious anger mode). :D On the topic of blog comments, how do I cut down on the comment spam I have to moderate without requiring people to go through a completely unaccessible captcha image thing, or the annoyance of registering and acknowledging an e-mail? Would prohibiting comments and URIs containing words like ‘mortgage’, ‘casino’ and ‘ringtone’ ever cause false positives?

18 October 2005

Joachim Breitner: Cell phone stolen, camera bought

Isn’t it ironic: I just wrote Tapu, a game for my mobile phone and spend quite some time typing 450 playing cards for it - and then, before ever having played the game, my cell phone, a SonyEricsson T630, gets stolen! And that in a very bold way: At night, from my dorm room, while I was sleeping there. And since the theif did not take my laptop or other expensice stuff, I assume he was not planning on stealing, therefore he (or she) is most likely from my dorm. Which makes me uncomfortable.Also uncomfortable is the Siemens S35 that I still got lying around here, and so is the fact that I had to order a new SIM card, that I had to notify the loss at the police station and that I lost some contacts on the phone.Out of frustration (ok, it was planned for a while now, but this gave me the rest), I bought myself a new camera (the old one went to pieces, as previously blogged). Now I own a shiny new Panasonic Lumix DMC-FZ5. It’s not a pocket size camera any more, but the 12x zoom and the large lense was just too tempting. It was actually at DebConf 5 when Ralph Amissah enthuiastically showed me his Lumix, making me interested in this kind of Camera.
I uploaded a few pictures, though nothing special yet. Have a look at this zoomed in picture versus this wide angle picture for a demonstration of the 12x zoom and compare these two pictures, both fully zoomed in, first one with image stabilizer, second one without. Again, for zoom demonstration, the wide angle view.

Sam Hocevar: Opening my non-blog

I have been avoiding blogs as much as I could ever since they became fashionable. I found them uninteresting. Most of them were slight variations of the everlasting alternation of friends (or children s, or pets ) pictures and reports of how the day before (or yesterday s movie, or life) was great (or sucked, or was utterly boring). I did not read them, but they started invading my life nonetheless, spamming search engines and diluting information. But I could cope with the Google noise and just ignore blogs. Then, blogs started to carry opinions, not just feelings. They are now seen by many as a new kind of journalism, yet most of them suffer from the obvious bias that the entry poster is the same person as the comment moderator. Having been banned countless times from Slashdot for bashing moderators or simply attacking the general groupthink, I was not surprised at all to see a few of my comments removed from many blogs. How could I not hate blogs as a means of communication? In mailing-lists or on Usenet, when people disagree with you, they answer and argue, they don t remove your messages. Blogs have become the most selfish variation of the web bulletin board. But I could still cope with the spread of flawed information and just ignore blogs. Then, blogs started to build communities. You can only be part of the community if you are a blogger. Well, it would prove astonishingly difficult for me to care less about blogger communities (though I might try). If the community is about having a blog, then I am perfectly happy with the numerous communities I am a part of that are not about me having a blog and I can just ignore blogs. But today, I have a problem. Even within tech-savvy communities such as the Debian developers, discussions can occur that are not taking place in the common channels (such as the mailing-lists) but on blogs. There are people who are following Planet Debian but not the debian-devel mailing-list. And the reason can definitely not be that debian-devel is full of noise or flamewars: it is incredibly easy to kill a thread in a mailing-list, whereas it is virtually impossible to filter out the new fucking blog meme that spreads everywhere and about which I do not care. Also, people no longer subscribe to mailing-lists, it seems too tedious. Instead, they prefer to hammer RSS feeds every fucking five seconds to know whether something new just happened. So, here it is, my non-blog. My RSS-feed-without-a-blog. You can subscribe to it if you are too lazy to get informed through the other channels about libcaca releases, my Debian bugs, PWNtcha development, my work on VideoLAN, the next talk I am giving. It appears nowhere on my webpage but you can still subscribe to it.

Scott James Remnant: live-f1

And while I’m briefly in the blogging mood, I thought I may as well wax lyrical about another of my recent weekend projects. As anybody who vaugely knows me is aware, I’m a bit of an F1-nut and watch every Grand Prix religiously. For a couple of years now the official Formula 1 website has had a Java applet that recieves the live timing data from the races and displays it on your screen. Obviously this depended on Java, which is a bad thing. But curiously the main thing that inspired this project was that the applet uses pretty small fonts, and isn’t resizable; so you can’t stick your laptop on the table and glance at it during the race. So a race weekend a couple of weeks back, the one where FERNANDO ALONSO was busy winning the World Championship, in fact I tcpdumped the network traffic while running the Java applet and set about figuring out exactly how it worked. The result a nice curses C application that does much the same thing: I don’t plan on releasing it properly until the start of the 2006 season, when I hope to have added some useful features into it that the Java applet lacks, but it’s coming along nicely. Update: I didn’t actually intend to live you all hanging quite like that… you can play with the code today (though there’s obviously no race to watch) by grabbing it with bzr from http://www.netsplit.com/bzr/live-f1. It’s written in C and you’ll need libncurses5-dev and libneon24-dev to build it.

16 October 2005

Steinar H. Gunderson: Multi-terabyte arrays

What's a good way of getting a few terabyte of cheap (ie. SATA) disk these days? Our backup box will increase to 3TB in a few days, and after that it's just getting too painful to continue as we do today: 12 300GB disks (400/500GB is a lot more expensive); some older PATA, the rest SATA, all in RAID-5 plus one hotspare and a system disk. It has grown from 240GB two years ago, and if this is going to continue we'll have a real problem in a few years. I read about this unusually cheap SATA SAN from IBM the other day, and it was $5k even without disks... way outside our league. :-) Of course, disk is going to be even cheaper then, so 500GB disks will be viable, but we'll still be needing too many disks to fit in one internal rack-mounted case. We don't need extreme performance or hardware RAID; all we want is raw block devices we can access from Linux and use for a few RAID-5 devices we can LVM together.

Erich Schubert: My favourite spam so far...

This is by far my most favourite spam so far... <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL was not found on this server.<P>
<HR>
<ADDRESS>Apache/1.3.31</ADDRESS>
</BODY></HTML>
Whoa, I'm going to buy this stupid product! But you need to send my this spam more often. Two times (+ those caught by greylisting) is not enough. I need tons of these ads! Oh, and did I mention this didn't come into my inbox, but into my "spam" folder, too? My filters detect you stupid software, dudes! Come on. I just don't get why spam works...

Matthew Palmer: Debian Patch Management Smackdown

So, Joey Hess managed to stir up a bit of a discussion on the relative merits of patch management systems used in Debian packages. I guess it's a bit of a change from having this discussion on debian-mentors, at least... So I was thinking that it's time to really have a head-to-head of all of the methods that people have to manage their patches -- from the purpose-built systems, like dpatch and cdbs, to revision control systems and the scripts layered on top, to whatever personal processes various Developers may have. To assist in working out what to write, and to make comparisons a little more structured, I've jotted down a few ideas about what areas we might like to compare different systems against. So, tell us all your systems and why they work. Feel free to wax lyrical. Describe how your system works (even for the established programs, for people who aren't already familiar with the way they work), and describe how they match the areas above. I'd also be interested in hearing about systems you've tried and decided they weren't up to snuff. I'll be attempting to at least aggregate, if not summarise and combine, the opinions of everyone who contributes. If your blog is syndicated on Planet Debian, Just Blog It. Otherwise, either e-mail your ideas to me or send me a link to your blog or other page where your brainwaves are saved for posterity, and I'll include them in my "analysis".

Axel Beckert: Galeon, GNOME and all the rest

I feel that I still owe a few answers on the recent Galeon discussion on Planet Debian and apparently also other planets, so here they are… (But I try to keep them short. :-) First, Erich’s question Why are not-gnome users complaining about Gnome? — Because some people do not use GNOME but do use GNOME applications like Galeon. They don’t use them because GNOME is cool, useful, user-friendly or what else — they use them because these applications are cool, useful, user-friendly or so. They would also use them if they were plain GTK or maybe even KDE applications. For example, I also use Gnumeric or AbiWord, because I like them and not because I like GNOME. (Which — in general — I do btw.) I also use KDE applications although I don’t like KDE in general. (I don’t like KDE for much more emotional reasons compared to Galeon 1.3 btw., so I won’t rant about that. ;-) ark is a nice example for a KDE application I like. Unfortunately some distributions seem to have dropped it. At least I missed it recently on some box. Then there was Gunnar Wolf’s question if it wasn’t Galeon 1.2 which went off the path. He maybe right, since I’ve never seen a Galeon version before 1.2 and the fact that the former Galeon lead developer dropped Galeon for the very spartanic Epiphany also suggests that. But since Galeon 1.2 took the right path in my eyes, Galeon 1.3 seemed at least to change (back) again to some wrong path from that point of view. We’ll see if Kazehakase really keeps following the “right” path. JFTR: Interesting to read were also the discussion between Og, Erich and some more in Og’s journal as well as Wouter’s postings on the subject. Oh, and in general: Thanks for the really nice discussion. Rants seem always to get more constructive responses than just asking for them. That’s one reason why I like to rant. ;-) Another reason is that it frees your mind if you know that people have read about what bothers or annoys you. So also thanks to all who followed the discussion (or still are following it if it hasn’t ended yet ;-).

Now playing: Roxette — The Look

Axel Beckert: Orpheus on Woody

Nobse’s blog posting about his ITP the text mode menu- and window-driven front-end to mpg123, mpg321 and ogg123 orpheus made me curious since I was also unsatisfied with the audio players I used so far and mostly ended up in using mpg123 -Z *.mp3, because it works fine and is not as resource-hungry as XMMS. And for CDs I usually used a self-written perl wrapper around the command line tools of cdtools (mostly cdir and cdplay). I first installed orpheus from sources on my SuSE box at work today while waiting for a windows box to upgrade to some service pack. At home I took nobse’s debian packages sources and recompiled the package on my Woody running desktop. After installing the required build dependecy dpatch from backports.org, the package compiled through without any problems and I now have a very useful and slim text mode audio player.
orpheus and aumix in transparent aterms
And orpheus and aumix look fine together inside transparent aterms.

Now playing in orpheus of course: Jean Michel Jarre — Je Me Souviens

Erich Schubert: Erich needs memes...

Meme time again. Let's ask google what I need...

Next.

Previous.