Search Results: "andy"

15 January 2006

Edd Dumbill: Cool toys for Firefox and Emacs

Firefox extensions The release of Firefox 1.5 has awakened my interest in the browser, and a few extensions can make life easier.
View Rendered Source Chart
Really handy for a structured view of an HTML page's source. The big advantage is that is displays generated source too, perfect for figuring out AJAX applications.
Foxpose
Sheer eye candy. Thumbnail all your tabbed pages into one page.
Del.icio.us
Browser button for working with the del.icio.us bookmarks site. I've been reluctant to use remote bookmarks before, this extension might just push me over the edge. Really well thought-out integration with the browser.
Rails in Emacs Seeing as I'm not quite prepared to switch to OS X just in order to get TextMate, I figured it was time again to play with my editing environment. Pages from InVisible Blog and Scott Barron give a lot of tips as to the current state of play with Rails and Emacs. I've now got a reasonably pleasant setup, though I wasn't inclined to go the whole way to running the ECB IDE inside Emacs. On Ubuntu, the packages you are looking for are: speedbar eieio semantic ruby-elisp mmm-mode. I also found pabbrev a very handy interface for tab completion. Screenshot of Emacs editing a Rails application The future for Ruby and Emacs is looking hopeful. I learned that a proper Ruby grammar for the semantic package is being worked on, which will enable class browsing and intelligent completion. I am still disappointed that there's no version of Emacs that uses Xft or Pango for anti-aliased font rendering. To get sharp fonts, I still need to use a bitmap font like misc-fixed. If I were in the business of offering bounties for open source development, dragging Emacs into the GTK2/Pango era would be the biggest one. Checking the mailing lists indicates that Pango is not suitable for Emacs, but no alternative scheme ever seems to bear fruit. Yet if Aquamacs can do it... If somebody came along with a decent TextMate-a-like for GNOME, I'd pay good money for it. I've never been really happy with an editor since Cygnus Ed. Hallski and I keep talking about this, and only just manage to resist wasting months of time on trying to write one ourselves.

Edd Dumbill: Opinions and free 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.
  • Beagle, live search technology for GNOME. Needs to decide where its primary use will be, and get on and hit the 1.0 point for that use only. Choose one or two neat applications for integration, and be so utterly cool that every other app author flocks to integrate too.
  • Synchronization. First MultiSync, then OpenSync, have rumbled on for ages, without ever being truly effective for any particular device. My take: choose a few "must-have" target devices--say, iPods and Nokia phones--and make them work completely. Nearly-but-not-quite pleases nobody.
  • Mono. Mono's great, but where's the story? There's loads of potential in the people and the ideas behind the project, but playing catchup with Microsoft isn't very inspiring. Early projects like Muine helped Mono's cachet here, but we need more. My personal favourite option would have been a completely free alternative to ASP.NET for web applications. (I've seen a project called MonoRail, but don't know if it's the one...)
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.

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.

14 January 2006

John Goerzen: You remind me of a story...

It seems that lately my presence seems to remind people of stories of me as a child. I heard a new one tonight from the person that was my Bible School teacher in 2nd or 3rd grade. Apparently, each day of Bible School, one child would bring in something for show and tell. There were toys, dolls, maybe a pet. When it was my turn, I brought in something I was very proud of: my adding machine. She asked me if I remembered this. "Nope, but it sounds like something I would have done." I told Terah this story. She said, "You probably just brought the adding machine because your parents didn't want to have to carry the whole computer to church." I remind people of other stories too. My mom likes to mention that, when I was maybe 2 years old, I wanted to sleep with a real light bulb instead of some stuffed animal. She was a bit concerned about the safety of that, and apparently was only able to convince me to stop when she found an eraser in the shape of a light bulb that I accepted as a substitute. Mom also likes to talk about my birthday or Christmas requests at that age: a "good-quality vacuum cleaner" and 12 ceiling fans. My uncle tells me of the time I had a conversation with a math professor, when I was maybe preschool or kindergarten age. I had no idea who he was, but apparently was quite proud that my new calculator had a square root key, and told him how important it was to have that on a calculator. It's not really fair, though -- Terah doesn't call up lots of stories in people's memory. So I have to help out a bit. I mention her underwear rotation system, or this story: Terah has always been a big fan of deserts, and especially ice cream. Apparently her parents had a lot of trouble when the ice cream truck came around -- Terah always really, really wanted lots of ice cream. They thought that if they started calling it the "yuck truck" that Terah might think it only had nasty food. Nope, didn't work. She just started getting excited about the yuck truck. I also have no problem hiding gifts from Terah. She knows exactly where I keep them, but she's concerned that maybe that particular room can't keep out mice very well. So, to her, I keep gifts in the "rodent closet". Although she'd really like to snoop, she just can't bring herself to do it. Very handy as far as I'm concerned.

12 January 2006

Joachim Breitner: Tapu goes live - ohne mich

Vor einigen Wochen schrieb ich das Programm Tapu, eine Implementation von Tabu f r das Handy. Leider wurde mir kurz darauf mein Handy geklaut, so konnte ich es selbst nie spielen. Nun hat Andreas Zwinkau das ganze im Z10 in Karlsruhe getestet, und auf seinem Blog dar ber berichtet. Im Fazit: Spielbar, nur einige Knopfbeschriftungen sind nicht klar genug. Und es sind nicht genug W rter drin, uns so ruft Andreas auch auf, W rterlisten einzuschicken. Viel Arbeit werde ich momentan mangels eigenem Handy nicht reinstecken, aber W rterlisten-Zusendungen stecke ich ins SVN und baue dann bei bedarf auch entsprechende Pakete.

Matthew Palmer: Xinerama is the r0x0r

I was motivated, this morning, to look into whether my laptop chipset (Intel 915GM, for anyone interested) could do this funky multihead thing. Much to my surprise, it was (a) possible, (b) quite simple, and (c) incredibly useful. I now have a 15" Dell LCD screen on a cardboard box behind my laptop docking station. What is it useful for, you ask? Let me count the ways (with the help of the <ol> tag, of course):
  1. I've gotten a couple of PDF versions of my current "must always have with me" technical books (Programming Ruby and Agile Web Development With Rails, since you didn't ask), and now I can stick them on the other monitor to refer to while I'm coding.
  2. I can stick my xchat window up on the external monitor, so I can quickly glance at what's going on without having to touch anything. With the ability to stick a window on all desktops, I can have xchat no matter where I go!
  3. If I want to show somebody else something, it's handy to be able to push it up onto the top screen so they can more easily see it without having to crane down at my laptop screen (plus, if they go "what about <smudge>that?</smudge>", it's work's monitor that's getting grotted on, not my laptop screen that I have to stare at for 10+ hours a day).
Since I rarely (read: never unless I'm forced to) reboot my machine, instead relying on the magical marvels of sleep/hibernate, I did have one major concern with this multihead thing -- when I'm out-and-about, obviously I'm not going to have my external monitor with me, so how do I view things that are up on the other screen (either because I left them there when I was in the office, or because the window autoplacer stuck them there)? It turns out to be a fairly trivial and rarely noticed problem (except when I shove the mouse at the top of the screen to hit a button and my mouse disappears off into the wilderness). The answer to the invisible window problem is trivial -- I wave my mouse around where I can't see it until the window I want is highlighted in the miniview, then hit Alt-M to lasso it, and drag the little beastie into the light. Much easier than trying to guess where the title bar is to bring it down. In the interests of sharing the love (and having a record of what I did for next time), here is the sum total of what I had to add to my xorg.conf to make it all work on Ubuntu Breezy (along with some comments to make it easier to understand what's happening):
Section "ServerFlags"
        Option  "DefaultServerLayout" "double"
        #Option "DefaultServerLayout" "Default Layout"
EndSection
# This Device section is effectively identical to the one for the
# primary screen, with the addition of the Screen 1 parameter to
# select the alternate display device.
Section "Device"
        Identifier      "vgaout"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Option          "MonitorLayout" "CRT"
        Screen          1
        Option          "DDC" "false"
EndSection
# external display
Section "Monitor"
        Identifier      "generic"
        # I kept all these loose because most monitors support
        # autodetection.
        HorizSync       27 - 96
        VertRefresh     50 - 110
        Option "DPMS"
EndSection
Section "Screen"
        Identifier      "external"
        Device          "vgaout"
        Monitor         "generic"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                # I'd have added many more modes here, but
                # the amazingly crufty external LCD I'm using
                # only supports 1024x768.
                Modes           "1024x768"
        EndSubSection
EndSection
# xinerama layout
Section "ServerLayout"
        Identifier      "double"
        # The 0 0 (I think) identifies this as the "root" monitor
        Screen          "Default Screen" 0 0
        # You can also use Below, LeftOf, or RightOf to position
        # your shiny subscreen
        Screen          "external" Above "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
        # Never, ever forget this option.  You'll get laughed at
        Option          "Xinerama" "true"
EndSection

9 January 2006

Colin Watson: Killer apps: bzr shelve

Working on free software has made me fairly revision control system-agnostic; I can't afford to get too wedded to any one system because as soon as I do somebody will invent something new and I'll have to convert again, so I just work with whatever other people on the same project are using. Even CVS doesn't make a lot of difference to the way I work as long as I'm working online and have cvsps handy. And of course I usually don't bother with revision control if I'm just tweaking somebody else's Debian source package a bit (in which case I just use debdiff for paranoia). Using bzr at work, though, I think I just found my killer app in Michael Ellerman's shelve plugin. My working style generally involves alternating between doing lots and lots of stuff in the one working copy and (after testing) going through and committing it in logical chunks. This is fine if everything's in separate files (most revision control systems let you commit just some files), but if several of the chunks are in the one file then I'm reduced to saving diffs and manually editing out the bits I don't want to commit yet, which is obviously pretty tedious and error-prone. bzr shelve presents each diff hunk in your working copy to you in turn and asks you whether you want to keep it. If you say no, that hunk gets unapplied and goes into a "shelf", where bzr unshelve can later reapply it. In the meantime commits act as though the shelved hunks didn't exist. This doesn't help if you want to defer only one of two immediately adjacent changes that end up in the same hunk, of course, but it vastly reduces the scale of the problem. I suppose it would be easy enough to write a shelve-a-like for any other system; it's just that I haven't seen it for any other system yet. If working with systems that lack it really starts to annoy me, I may have to rip out the guts of shelve and figure out how to make it generic.

5 January 2006

Anthony Towns: On the technical committee

And thus the entrapment's completed,
With the motion so newly anointed.
Wichert, Jason, and Guy? 
   They're deleted!
Steve, Andy and I? 
   We're appointed!
Inspired by Mr Srivastava:
<Manoj> congrats vorlon, aba, aj (*snigger suckers *snigger)

Anthony Towns: On the technical committee

And thus the entrapment's completed,
With the motion so newly anointed.
Wichert, Jason, and Guy? 
   They're deleted!
Steve, Andy and I? 
   We're appointed!
Inspired by Mr Srivastava:
<Manoj> congrats vorlon, aba, aj (*snigger suckers *snigger)

4 January 2006

Michael Janssen: Asking = good

I have noticed a new trend in my shopping habits lately: I will ask for help from a "sales associate" much faster than I did previously. This could be a product of the instant-gratification culture, but I really don't have much patience with floundering around a store trying to find what I need, especially if I have done all of my research earlier and show up at a store with just one thing in mind. I will go to great lengths to find a live person because even if I spend 3-5 minutes trying to find help, they will most likely be able to help me right away. That said, I won't just grab the first employee that I see in the store, I will actually make a reaosnable effort at finding the item first. After getting help, I can look at my handy palm pilot and see if there's anything else in the store that I need. I have noticed that Target is especially good at having random people walking around the store doing things that are quickly dropped in order to help a customer. In addition they have these nice little buttons sprinkled around the store that you can press and the entire floor staff gets paged notifying them that you have a question. I prefer this to the "pick up the phone" approach, although that is also available in some stores. The worst store by far for this strategy that I have come across is Home Depot. You sometimes have to walk a very long distance before you find anyone, and then when you do, they just point you back in the direction that you came from and said that someone over there can help you. If there was someone over there, I wouldn't be asking over here. I wonder if they just think I'm too stupid to read the HUGE SIGNS which state what is where in a Depot.

28 December 2005

Axel Beckert: I changed my mind. I want a camera mobile phone.

Today I read and wrote about Semapedia, a service respective toolset to encode Wikipedia URLs (and also others) as dot-matrix barcode, print them out on leaflets together with mentioning Wikipedia and the URL. Then any visitor with a modern camera cell phone can take an image of the barcode, decode it with the right software on your phone, which passes the decoded URL directly to the phones webbrowser. This is the first useful application of camera phones I ever heard about. But I see it as so useful that I may consider buying me a camera cell phone with the next contract renewal, although until now, I focused all my search for a worthy successor to my Nokia 6310i on non-camera phones. (Update: And I’m not alone with the wish for a useful mobile phone.) The 6310i had nearly everything I needed: A big memory, long standby times (1.5 to 2 weeks), WAP incl. WAP browser for reading Symlink on the road, GPRS, GSM 900/1800, T9, Infrared, gnokii support, the same battery bay than my former mobile phones (Nokia 6210 and 6130) and the Nokia typical, very intuïtive and blindly usable user interface. (Siemens mobiles suck!). It also had some things, I didn’t need yet, but sounded useful: Voice dialing and voice recording, Java for playing with own programs, Bluetooth for a cableless headset or so and GSM-1900 because perhaps also other countries than the US use that frequency band. (I refuse to travel to the US, so I won’t need the GSM-1900 there.) It had nothing I didn’t want to have in a mobile phone: Camera, radio, MP3 player, standby time munching color display, e-mail client, MMS, MP3 ring tones or flip covers. The only thing I missed, was a more modern Java VM and even more memory when Opera Mini came out and maybe polyphone ring tones, so I could have the Monkey Island theme as ring tone. ;-) So what now? Being able to use Opera Mini and Semapedia means to have a mobile phone with camera and — and that’s the drawback — a color display. Anyone knows a Nokia camera phone on which Opera Mini runs but without color display? And with the battery bay from the 6x10 series? No? Or maybe I should just stay with the 6310i and get me a second one in better condition (no broken case) from eBay or so? There were also (yet unconfirmed) rumours that my GSM provider E-Plus will have the Linux based internet tablet Nokia 770 for a contract renewal plus 80€ to 90€… Difficult decision…

21 December 2005

Arnaud Vandyck: Maven2 tutorial

I found this tutorial of Maven2 today. I’ll read it and maybe change my point of view about Maven in Debian. Maven2 could be a very good application to build projects but at the moment, I’m not sure we should use it to build Debian package… Maybe I’ll change my mind after the reading.

19 December 2005

Christian Perrier: Old timers

After Bdale blogged about the 5.25" floppy drivers he had in his Fido BBS, I googled a bit and found the following nice gems: http://www.wps.com/FidoNet/FidoNews/1985/FIDO228.NWS:
        ============================================================
                                  NEWS
        ============================================================
        Bdale Garbee
        Sysop of L5NET Gateway, Fido 129/13
              Some Utilities I'm Looking for and Haven't Found
        There are a few public domain utilities I would like to
        locate for my Fido host, which I have unfortunately not yet
        found in my random wanderings around other Fido systems.
        I'm running a Tandy 1200HD, which is an IBM XT-clone.
        If you have any of the things I'm looking for, either send
        them to me by Fidomail, or send me a message detailing how
        I can get them.  Emphasis on public domain.  Sources
        desirable but not absolutely necessary (beggars can't be
        choosers!) 
.../...
http://www.wps.com/FidoNet/FidoNews/1986/FIDO333.NWS:
     =================================================================
                                  NOTICES
     =================================================================
     Announcing the return of the "HIP Shack" to Fidonet, now in
     Colorado Springs, CO.  The files and message areas are in
     the process of being reorganized, but Amateur Radio and SWL
     are still the primary themes.  I'm looking forward to
     hearing from everyone I've been out of touch with for the
     last 9 weeks...
     Bdale Garbee, sysop 128/18, 303/593-0766, 1200 baud, 24hrs
This seems to confirm that, despite our 6 months age difference (guess who wins?), Bdale is way much an old timer than my poor self, whose first appearance in the BBS world is around 1990. Anyway, I found this funny and wanted to share. Enjoy...

14 December 2005

Christian Perrier: Oaxtepec

Gunnar, thanks for the pictures of the Oaxtepec place. Which triggers me one question: how are we supposed to *pronounce* the place's name? The "x" is kinda puzzling in names coming from the local languages in Mexico. Having a map of the combined Mexico/Oaxtepec area handy somewhere would also help to prepare local sightseeing in the neighbourhood. Up to now, I just know that Oaxtepec is somewhat 60kms south of downtown Mexico (which makes it in the suburbs according to the giant size of the city). And, Gunnar, don't worry: I *still* plan to come back in Mexico next summer with my family. Probably not the best season, but the "kids", if I still can call them kids, have school in May, so coming at that moment is not an option. Only too bad that I really can't come a few days before Debconf and enjoy the El Pacifico train from Los Mochis to Chihuahua, which I planned to ride. To people coming to Debconf AND who have time: DO IT. The Copper Canyon train ride is for sure one of the things you have to see in Mexico. Then come back from Chihuahua to Mexico with a bus ride (a cheap bus, just like the local people do), eventually stopping for one day in Guadalajara. I bet you will then appreciate this small bit of real mexican life.

8 December 2005

Arnaud Vandyck: jai-core in Debian?

Mid October, I contacted the jai-core project on java.net to change the license to a free/open source one: Issue35. He just replyed he is accepting the issue. This could be very good for fop or other packages that use jai in Debian. Many thanks to aastha! Note from the website:
This project contains the source code for the core Java Advanced Imaging API reference implementation containing the packages javax.media.jai.* and com.sun.media.jai.*

7 December 2005

Meike Reichle: A new member in the family

Since this weekend there's a new member in my little computer family :)
After serving as my bedside table for over three months (ever since I moved here) my regular PC is now finally reassembled, equipped with a new hard drive and DVD drive and back in action! It's got a new name, too: Undine. For the illiterate among you, a Undine is a water spirit and this particular one is called after the Undine in the story of Friedrich de la Motte Fouqué. (Full text from the Gutenberg Project, and a summary.)
It's not all set up yet. (Is a machine ever?) Aplayer and xmms still throw errors and it won't go into any kind of standby (sleep or hibernate). But nevertheless the increase in quality of my life has since been enormous. Until then I used my beloved 12" Thinkpad (Dropkick, got it's name from them and the way I treat it) for daily work, which was okay, but somewhat unhandy at times. Now I got 21" instead of 12", a lot more power, sound, and a decent (but filthy) keyboard again. Yay!
Downside: I had totally forgotten how *INCREDIBLY LOUD* that thing is. Maybe I'll go buy a set of these insulating mats. This high-pitched noise drives me insane!

Regarding my last post: I noticed there's an extra-i-that-bears-witness-to-my-favourite-editor in it but decided to leave it as a statement ;) Maybe I'll start a new trend?
The Skatalites concert was as great as expected but unfortunately very full. People where standing shoulder to shoulder all the way to the back wall. So all you could do was stand and listen, dancing was rather difficult or even impossible. :( Also, we left a bit earlier since those $%*# ing regular work hours have turned me into a total sissy when it comes to staying up late. This needs to be undone!!

In other news: My increasing enthusiasm for Leipzig experienced a first drop when I noticed this morning that somewhen in the last few days someone must have stolen the bungee cord from my bike. :(

I am disappointed and indignant about this!!!

(Especially since only my new springy one is gone, the old, f***ed-up one is still there. Haha!! You me too!)

Last but not least: I got my Christmas leave confirmed! I am off work from christmas until new-year. This means that I can go South over the holidays and be with my ifamily who totally rocks and I very much look forward to seeing again :) (Mom, should you read this: We are having fondue again this Christmas, arent we? Pleeaaase??)

5 December 2005

Jonathan McDowell: Toshiba++

As I've previously said I bought a http://uk.computers.toshiba-europe.com/ Port g R200 a few months ago. It's lovely and wonderful and makes my old laptop (a Compaq N200) look tiny, but is still quite small. However I discovered it wouldn't hold charge. If I unplugged it and used it I'd quite happily get 3-4 hours use off the battery, but if I charged it up while off, then unplugged it (leaving it off) and didn't touch it for a couple of days it wouldn't power on and needed fully charged again. This is a bit of a bummer, but I hadn't got round to sorting it out as I wasn't finding it too inconvenient. I decided I should really get it dealt with before I go back to my parents' for Christmas, so rang up Toshiba's repair line a few weeks ago. Told them what the problem was and they said they'd ring back in the morning to arrange a pickup time. Except they actually rang back that afternoon. It was too late for collection the next day, but they said they'd pick it up the following day in the afternoon. Also I wasn't to pack it or provide any of the accessories; just the bare laptop. Handy. Lo and behold the nice man from DHL turned up when Toshiba said he would, had a piece of paper with the right reference number on it (though in quite small print) and didn't want the laptop packed up as he had a suitable box already prepared. Time passed and I heard nothing. I was getting a bit worried, but Tosh say it can take 5 working days and it hadn't been that long (and given the nature of the fault I guessed they'd need to charge and discharge to check). But it was a bit weird that they'd not asked me to do any of the stupid things you're normally asked to do. (Have you rebooted? Reinstalled? Repented?) Plus the laptop only has Linux on it, so I was worried they'd be freaked by that (though they'd been fine when I mentioned it on the phone). It came to day 5 and I decided I'd ring them the following day. And then the nice man from DHL turned up with a big, well padded, box containing my laptop. At first glance it appeared to only contain my laptop, but when I opened up the laptop there was an A4 sheet saying that the battery had been replaced and the BIOS upgraded. Since then the laptop has actually held charge, so it looks like they did the job. So, congrats to Toshiba. More communication would have been nice, but it got fixed, you didn't wipe my Linux install (though I'd backed it up and removed any personal data anyway) and it was done within the period you claimed. I've not had to get a laptop fixed before, but iDunno hasn't had fun with Acer in the past, so I was prepared for the worst.

1 December 2005

Edd Dumbill: Cool toys for Firefox and Emacs

Firefox extensions The release of Firefox 1.5 has awakened my interest in the browser, and a few extensions can make life easier.
View Rendered Source Chart
Really handy for a structured view of an HTML page's source. The big advantage is that is displays generated source too, perfect for figuring out AJAX applications.
Foxpose
Sheer eye candy. Thumbnail all your tabbed pages into one page.
Del.icio.us
Browser button for working with the del.icio.us bookmarks site. I've been reluctant to use remote bookmarks before, this extension might just push me over the edge. Really well thought-out integration with the browser.
Rails in Emacs Seeing as I'm not quite prepared to switch to OS X just in order to get TextMate, I figured it was time again to play with my editing environment. Pages from InVisible Blog and Scott Barron give a lot of tips as to the current state of play with Rails and Emacs. I've now got a reasonably pleasant setup, though I wasn't inclined to go the whole way to running the ECB IDE inside Emacs. On Ubuntu, the packages you are looking for are: speedbar eieio semantic ruby-elisp mmm-mode. I also found pabbrev a very handy interface for tab completion. Screenshot of Emacs editing a Rails application The future for Ruby and Emacs is looking hopeful. I learned that a proper Ruby grammar for the semantic package is being worked on, which will enable class browsing and intelligent completion. I am still disappointed that there's no version of Emacs that uses Xft or Pango for anti-aliased font rendering. To get sharp fonts, I still need to use a bitmap font like misc-fixed. If I were in the business of offering bounties for open source development, dragging Emacs into the GTK2/Pango era would be the biggest one. Checking the mailing lists indicates that Pango is not suitable for Emacs, but no alternative scheme ever seems to bear fruit. Yet if Aquamacs can do it... If somebody came along with a decent TextMate-a-like for GNOME, I'd pay good money for it. I've never been really happy with an editor since Cygnus Ed. Hallski and I keep talking about this, and only just manage to resist wasting months of time on trying to write one ourselves.

30 November 2005

Arnaud Vandyck: What about Classpath 1.1?

Yes, we already talked about it sometimes: what is the compatibility target of GNU Classpath with the official Sun’s Java classes library? Everybody skipped JDK1.0. About JDK1.1, there are two objections: the first is who does still use JDK1.1?; the second is with all those progresses in Swing, XML and all the API’s that are not in JDK1.1, it’d be a strange idea to remove all these API’s from Classpath! Imagine the work of all the hackers involved. I can understand the two points and I even agree with them. But we have at the time I write this entry Classpath is 99.78% compatible with the JDK1.1 API! OK, you can say that Classpath is 97.61%, but there is still some non trivial work to be done in packages javax.swing.text, javax.swing.text.html, and maybe in some other packages. The point of this blog entry is: Couldn’t someone ask Sun for passing the TCK1.1 with Classpath? The someone could be Debian (of course, I have to ask other developers, the DPL and maybe the SPI) if the license of the TCK is acceptable and if it’s not too expansive. But well… it’s for TCK1.1!.. It shouldn’t be so expansive ;-) I’m sure the results of the TCK, even if it’s the 1.1 could help GNU Classpath developers to make the code more compatible with the Sun’s one, and that’s what we want!

27 November 2005

Aigars Mahinovs: Do you want to hear the most incredible "it's not ...

Do you want to hear the most incredible "it's not a bug - it's a feature" story ever?

After shooting hundreds of megs of RAWs with my Canon 350D last couple of weeks, I noticed a very strange thing - importing this large amount of files from my camera into F-Spot took ages. F-Spot ate memory in tens and hundreds of megabytes and never returned it back to the system. Well I blamed it on Mono and went searching for a better way. Then I found out that command-line C program gphoto also take the same horrific amount of memory to import my photos. I saw that to download 900 Mb of photos (~250 photos) photo memory use went up to ~910 Mb (2 Mb were shared). Luckily Linux managed to swap out part of gphoto, so I could finish the download with my 512 Mb of real RAM and a 1 Gb swap file. I googled and founds tens of bug reports on this - first of them as early as December 2004. Ouch.

Well - let's see what the problem is, shall we? Some bugreports reference a bug in gphoto's SourceForge bug tracker where a users reports that downloading a 250 Mb video file takes 250 Mb of RAM and developers reply that unfortunately that is the limitation of current infrastructure and it is very hard to fix. Bumer.

But wait! He says that downloading ONE file takes a lot of RAM. This limit should not exist when downloading multiple files - we should be able to drop information about previous file as soon as we start downloading the next one, right?

Ok, lest see, what really is going on there. Downloading source of gphoto. Looking at it. Seeing a lot of mess. After around 10 minutes I start to understand that there is a table of option names and functions and the real job is doe by command line parser who calls a function as soon as he encounters a proper parameter on the command line. :P After 3 more minutes jumping around the code I finally get to a function that gets called to download a single file. Looks pretty easy:
Looks all fine and dandy so far. However I see the memory use that suggest that this last operation does not happen as it should, so I search for the gp_file_unref() function. I do not find it in gphoto source, but as I soon figure out - it is in libgphoto2. The function is pretty straight forward - the reference count of the structure is reduced by 1 and if it has reached 0, the structure is freed from memory via gp_file_free() function.

Hmm, I wonder what will happen if I replace gp_file_unref() with gp_file_free() in gphoto? After a quick compile and installation (I thank the Gods and all DD's for the wonders of "debuild -us -uc && sudo dpkg -i ../gphoto*.deb") I ran gphoto again. Wow, it now only consumes 8-16 Mb of RAM and not 900. The files downloaded fine, but in the end glibc made a lot of fuss about "double free". What does that mean? It means that someone managed to get a reference to our MemoryFile and didn't give it back. Naughty boy!

We only call three functions using that pointer, so it should not be hard to trace them trough the source to see what they do. The gp_file_new() function looks good, it sets reference count to 1 always. gp_get_file is more complex - I get to crawl through a lot of strange redirects to all levels of gphoto architecture. At one point I get a bit alarmed as I see a local variable called ref_count, but then I see that the code just stores reference count there for safekeeping while data is copied from another object and right after that copy reference count is put back safely. After all that I get to the end of the gp_get_file function, just a couple thing left - cache the result, clean up and return the file. Wait a minute ....

CACHE?!?!?!!

$(&@($^@#$(^@&^$(#&$@#(&$(@#$&!^&$^@*!(&$#(@& !!!!!

It appears that someone thought that it is a good idea to use a gig or so of my RAM for cache, just in case if I would like to download the same photos the second time around in the same program call. IT IS NOT!

Results: one line patch, one NMU building for upload, one *very* long bug in upstream bug tracker, one developer quite upset and not too convinced about the correctness of free software ways any more :P

Next.

Previous.