Search Results: "Ben Hutchings"

2 June 2007

loldebian - Can I has a RC bug?: dude ur getting a dell

Dell not want

dude ur getting a dell. do not want

Mark Shuttleworth, Keith Packard, Bdale Garbee

Mexico, Debconf6, 2006

Pic by Nattie Mayer-Hutchings, submission by Ben Hutchings

12 May 2007

MJ Ray: The Woodcraft Folk

I mentioned above that I didn't know much about the Woodcraft Folk. Ben Hutchings commented:
"I was in the Woodcraft Folk for a while. They're like Scouts/Guides but more liberal and PC. I think I fit in quite well there..."

11 May 2007

Martin Michlmayr: GCC 4.3 related build problems: extra semicolons

After I described yesterday that GCC rejects semicolons after functions, Ben Hutchings pointed out that semicolons are actually allowed according to the standard. I regularly complain to the GCC people for introducing new errors, but when this was was introduced I assumed there was a good reason and didn't want to complain yet another time. Turns out that I should have. Fortunately, somone else must have noticed the problem because GCC has been changed in SVN and this code is no longer rejected.

10 May 2007

Ben Hutchings: MSN Video enforces "free software"

Semi-annoying, semi-amusing: I'm using Firefox Iceweasel 2.0.

8 May 2007

Martin F. Krafft: Linux pains #517: unregistering network devices

Somehow my network device does not want to recognise that it actually has a carrier. This being Linux (and not Windows), I thus decide to reload the driver, after taking down the network interface:
lapse:~# ip l dev eth0
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:0a:e4:30:43:16 brd ff:ff:ff:ff:ff:ff
# notice: not UP
lapse:~# rmmod e1000
lapse kernel: unregister_netdevice: waiting for eth0 to become free.
  Usage count = 1
lapse kernel: unregister_netdevice: waiting for eth0 to become free.
  Usage count = 1
[...]
# goes on forever, uninterruptible; thus new shell:
lapse:~# ps u -C rmmod
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      5624  0.0  0.0   1656   480 pts/2    D+   00:02   0:00 rmmod e1000
As we all well know, state 'D' uninterruptible sleep means: reboot. Especially since I cannot ssh into the box anymore (doh!), and su and sudo just end up in state 'D' as well, if I try them. So, on to reboot. Or wait, that doesn't work as the shutdown process will hang long before the filesystems get unmounted. Great. It's become impossible to argue that Linux is the more stable operating system Update: a few people responded with workarounds, ranging from use of watchdog to automate the reboot (this is my laptop, so it's not really necessary) to various combinations of flags to /sbin/shutdown or the use of sysrq to force the system to reboot without cleaning up or unmounting filesystems essentially the same as pressing the reset button. Ben Hutchings says:
I think this happens when the driver repeatedly attempts to fix an error condition and keeps scheduling future work (retaining a reference to the device) rather than giving up.
I thus ended up filing a bug against the kernel.

7 May 2007

Ben Hutchings: Renaming of Ion3 in Debian

Continuing a trend of upstream control-freakery, the author of Ion has claimed Ion and Ion3 as trademarks and set out a trademark policy that will require Debian to rename it. I've created a poll for selecting a new name.

30 April 2007

Ben Hutchings: Introducing dvswitch

I just released version 0.5.0 of dvswitch, the software DV mixer intended for use at DebConf 7. I believe I've met all of the video team's essential requirements and most of the desirables. Unfortunately real video mixing seems to take a faster machine than I have at the moment and I very much doubt I'll have time to improve that much. Although I have implemented picture-in-picture mixing, it won't be usable and may result in frame dropping, so I've started a stable branch intended for DebConf 7 that doesn't include it. Version 0.5.0 is released from this branch and can be considered the first alpha test version. There's now a little over a month to test, fix bugs and make minor improvements on this branch.

14 April 2007

Ben Hutchings: ACCU Conference

I've been meaning to attend the ACCU Conference for some years and finally decided to pay my own way for a couple of days this year. It was an opportunity to hear world experts on C++ and other programming topics and to a smaller extent to meet and socialise with other professional programmers. I attended the following sessions: Keynote: Improving Collaboration in Open Source Projects, Mark Shuttleworth This was a somewhat surprising choice of speaker and subject since I think most attendees work on proprietary software, but I think any sensible developer in the proprietary world will try to build on free libraries under non-copyleft licences, where appropriate. Mark talked about governance and leadership in "open source" projects (actually praising Debian for having a clear constitution) and about the need for good communication between projects, for example about release schedules. He seems to have accepted that Launchpad cannot be a single hub, and called for standard formats for, for example, exchanging information about related bugs between bug trackers. But it doesn't sound like he's ready to take the lead on that. Choose your Poison: Exceptions or Error Codes, Andrei Alexandrescu Andrei looked at the strengths and weaknesses of various error reporting mechanisms in C++ and introduced a technique for making error handling more flexible. Normally a function is designed either to indicate errors through its return value or to throw an exception on error. If a function returns an error indicator, it's easy for callers to ignore it. If it throws an exception on error, then a caller that provokes errors more often than the called function's author anticipated pays a high cost in processing time for those errors. Andrei's solution involves a class template Likely<typename T> whose instances hold either a return value of type T or an exception. A function that can fail has a specialisation of this template as its return type. The caller can check for failure if it knows how to handle it, or it can ignore it - in which case the conversion to T or the destructor will throw the exception. This is clever but doesn't seem to be entirely satisfactory. The destructor which throws does first check that no exception is already being processed, avoiding collision of the two exceptions and consequent abrupt termination of the program, but this can result in errors being unexpectedly ignored. Introduction to Component-Level Testing, John Lakos A marathon 3-hour talk on designing and testing software, particularly C++ programs (the subject of his well-known book) as a set of well-defined components. Lakos first defined these components as being "physical" i.e. sets of source files - normally a header file defining an interface, an implementation file, and a test driver file. They may also include metadata for the build system. He talked about the value of reusable components (as if this wasn't obvious!) and the risk of introducing circular dependencies - which essentially turn many components into one and reduce reusability - if we fail to keep track of dependencies. Software built out of components can be viewed as a hierarchy or stack defined by dependencies. In a large system, components with similar dependencies and dependents can be grouped together into packages or package groups to simplify a view of these dependencies. He explained that the test driver's dependencies count just as much as the implementation's, because we cannot reasonably test a component until we have tested its dependencies. Test drivers should also be written to avoid depending on environmental settings and configuration, so far as possible. Finally, and perhaps most importantly, he spent a long time talking about how to construct test cases and test data. I might try to summarise this in a later entry if anyone's interested. The Appliance of Science: Things in Computer Science that every practitioner should know, Andrei Alexandrescu Andrei began by complaining that OpenOffice Impress was even worse than PowerPoint, but being able to use Linux (specifically Ubuntu) more than made up for the pain. He briefly presented four key ideas that he believes programmers should understand and be ready to make use of: Writing for ACCU (BoF) I think I've been convinced to write an article about standardisation of multithreading in C++. C++ Threads, Lawrence Crowl Crowl gave an overview (similar to this) of the extensive work that's been done on standardisation of multithreading in the C++ language and library. This is one of the most important features in C++0x due to the increased parallelism mentioned above. The current semantics of multithreaded programs are not standardised, resulting in subtle but potentially serious differences between current C++ implementations that support multiple threads, and in the need for assembly-language code in programs that use lockless synchronisation. Much of this is also relevant to C and is being considered by the C standard committee. C++0x Initialisation: Lists and a Uniform Syntax, Bjarne Stroustrup Stroustrup recapped the 4 forms of syntax for initialising objects in C++, some inherited from C and some necessarily invented for C++, none of which are entirely generic. He noted the lack of a simple syntax to initialise the elements of containers, which violates the general principle that class types should have the same status as built-in types in C++. He then introduced a new initialiser syntax that he and others have defined for C++0x, which is a brace-enclosed comma-separated list of values, similar to that used for arrays and C-style structures (aggregates). Container types can define a constructor with a parameter of type const std::initializer_list<T> & and when constructed with this new form of initialiser they will receive this wrapper for a constant array of element values. For types that do not, the values in the list are treated as arguments to some other constructor, if one matches. Otherwise, for compatibility, this may be treated as aggregate initialisation. C++ Standard Library report, Alisdair Meredith There was far too much information here for me to even begin to summarise. Suffice to say there are lots of good things coming bu the library committee will have its work cut out to get them all properly specified in time for the Committe Draft coming late this year.
I also met old friends and new, put faces to names from newsgroups and books, and got too little sleep.

24 March 2007

Ben Hutchings: I can't draw cartoons

Cartoon: Signs you're close to shipping

Ben Hutchings: Gecko and ATI graphics

Just as Gecko exposes a bug in the nv driver, it can also provoke poor performance in the ati driver. This turns out to be avoidable by configuring X to use the newer driver interface.

16 March 2007

Russell Coker: things to do for the environment

I got the idea for this from Ben Hutchings.A. Copy the list below to your own journal and

Bold the actions you are already taking
Underline the actions you plan to start taking
Italicize the actions that don't apply to youB. Add one (or more) suggested action(s) of your ownC. Leave a comment here, so that she can track the meme to your journal, and copy your suggested action(s) back to my master list.
  1. Replace standard incandescent light bulbs with compact fluorescent light bulbs
  2. Choose energy efficient appliances - I'm documenting the power consumption of my computers
  3. Wash clothes in cold(er) water - Colder than what? I suspect this is based on American machines that are controlled by mixer valves rather than using a thermostat.
  4. Turn the thermostat of your hot water tank down to 50 C (125 F) - this is a good safety measure anyway
  5. Install a programmable thermostat (or turn the heat down over night and when you're out of the house)
  6. Register with the [Canadian Marketing Association's] Do Not Contact Service to reduce the amount of junk mail delivered to your house. - Substitute MPS.
  7. Eat less meat (particularly feedlot beef) - For practical purposes I'm vegetarian, with occasional exceptions.
  8. Walk, bike, carpool or take public transit as often as possible - I'm writing this on the tram
  9. Make sure you know what can be recycled in your area, and try to recycle as much household waste as possible
  10. Compost using an outdoor compost bin or an indoor vermicomposter
  11. Clean or replace filters on your furnace and air conditioner
  12. Buy local, organic or fair trade food where possible
  13. Reduce air travel - pity that long-distance trains suck in Australia
  14. Wrap your water heater in an insulation blanket
  15. Use a clothesline instead of a dryer whenever possible - don't own a clothes dryer, hanging up clothes inside near a heater works on cold days
  16. Plant a tree - pity my trees are dying because of the drought / climate change
  17. Buy fresh foods instead of frozen
  18. Keep your car tuned up and your tires inflated to their optimal pressure - also minimise driving. I drive about 5000Km per year.
  19. Use biodegradable dishwashing liquid, laundry soap powder, etc.
  20. Drink tap water (filtered if necessary) rather than buying bottled water - remember the Benzene incident...
  21. Turn the tap off while brushing your teeth
  22. Unplug seldom-used appliances and chargers for phones, cameras, etc., when you're not using them - the power use is small so I only do this for rarely used chargers.
  23. Plug air leeks and drafts around doors and windows with weatherstripping
  24. Switch from disposable to reusable products: food and beverage containers, cups, plates, writing pens, razors, diapers, towels, shopping bags, etc - I've done this for most things, could improve though.
  25. Consider garage sales, Freecycle, eBay, or borrowing from friends/family before buying a new tool or appliance - second-hand and refurbished computers are so powerful and so cheap that you don't need to care about the environment to do this.
  26. Reuse bathwater, maybe to flush the loo, water the garden, etc.
  27. Make sure your roof is well-insulated. - I think it is, but as tenants it's not really our choice.
  28. Always wear a jumper/sweater and socks indoors unless it's warm enough outdoors to go without both.
  29. Run your vehicle on biofuel/sustainable fuels
  30. Set up a grey water barrel to use when clean water isn't necessary - grey water should never be stored. It contains chemicals that are used as food for bacteria.
  31. Put grey water on your garden immediately without storing it.
  32. Install tanks to collect rain-water from your roof for watering the garden, washing your car, etc.

15 March 2007

Ben Hutchings: Developing a DV mixer

For this year's DebConf, we (the video team) want to be able to use multiple cameras like at DebConf 5, where we had one for the projection screen and one for the presenter fed to an analogue mixer and a digitiser. At DC6 we had no mixer and no budget for one. Same at DC7 - unless we can do it with software. Toresbe had a go at writing one but didn't finish. I want to give it a go. So:

10 March 2007

Ben Hutchings: New blog

This is my new blog for technical/geeky/Debian stuff. I'm keeping my LiveJournal for social and private matters and syndicating this one to Planet Debian. I hope this separation will make me less afraid of boring LiveJournal readers with technical minutiae and Debian politics or boring Planet Debian readers with local social stuff, so I actually write more. Don't get too hopeful though.

5 March 2007

MJ Ray: Bad Tech: CGI Scripts and Line Endings

Brett Parker suggested educating all users about line-endings - sadly, I think there are more users than I have time to educate (even with a web page that makes the basic point, I think there will still be lots of questions) and also, I think stuff on the Windows side should handle their bad decision - they came along last, didn't they? Jon Atkinson commented:
"WinSCP deals with line endings properly, and is free software. It also has a NC-style interface, which I prefer to the Filezilla interface. http://www.winscp.net/"
Thanks. I'll suggest that some users try WinSCP instead of Filezilla. Ben Hutchings commented:
"Version 4 of SFTP introduced the SSH_FXF_TEXT open flag, but OpenSSH is still stuck at version 3."
Why no version 4 in OpenSSH yet, then?

21 February 2007

Ben Hutchings: Security bug in CAPI code; please test updates

There is a potential buffer overflow in logging of CAPI messages in libcapi20 (part of isdnutils; bug 408530). The same broken code from libcapi20 is present in the Linux kernel (bug 411294). Also, the affected functions are not thread-safe and are unlikely to be made so without API changes; multithreaded programs calling them must use a mutex to avoid another security flaw; (such as asterisk-chan-capi; bug 411293). I have prepared updates of asterisk-chan-capi and isdnutils for sarge and sid but I have no ISDN hardware to test them with. I would appreciate it if users of these packages would test the updates and report their results to the associated bugs. The patches can be found attached to the bug reports. Updated packages are at:
deb http://womble.decadent.org.uk/debian/ distribution/
deb-src http://womble.decadent.org.uk/debian/ distribution/
(the repository is signed with my personal GPG key).

5 February 2007

Jon Dowland: Battery statistics

Recently I've noticed my X40's battery life appears to not be what it once was. I was curious to work out precicely what it is, so I delved into the debian packages to see what I could find. There are two popular "standards" for power management: APM and ACPI. Hardware support for the two standards varies wildly across laptops, which is why we haven't entirely ditched APM and moved to ACPI for everything. The X40 (and thinkpads in general) have great ACPI support, so I use ACPI. Unfortunately most of the packages I've found that look like they might do what I want are for APM only:
battery-stats
...periodically collect statistics...show charge/discharge patterns over time...requires APM...
ibam
...advanced battery monitor for laptops...statistical and adaptive linear methods...requires /proc/apm.
Some other tools sounded great, but also a bit self-defeating:
collectd
...reads various system statistics and updates RRD files... promising so far; the statistics are very fine-grained since the files are updated every 10 seconds. Ack! The heisenberg principle will probably kick in a bit here, if the hard disk is going to spin up every 10 seconds.
It's starting to look like it might be worthwhile porting one of these to ACPI. Ben Hutchings is going to send me some example code he uses to monitor his battery in ion3. Mental note: file patches for the descriptions of those packages which do not make it clear which interface they support.

17 January 2007

MJ Ray: Debian: Fun with no builder 3: pbuilder fans to the rescue

Erich commented:
"Pbuilder is great (and cowbuilder even more so). First of all, it makes setting up and upgrading chroots easier (even easier than dchroot etc.), but it will also handle dependencies and do install/removals (well, technically it won't remove stuff, the chroot is just thrown away afterwards). That way, pbuilder helps getting build dependencies right, and ensures the package is currently buildable (not with some library package you still happen to have on your system, but that has been removed from Debian; not uninstallable for some reason etc.). This makes the job easier for porters, since a FTBFS is less likely to be an error in packaging by the maintainer... At some point I had like 6 pbuilder chroots... woody, sarge, unstable, woody with some backports, sarge with SELinux backports, unstable with experimental. Sure, we don't need debhelper either? After all, it just does some cp and mvs, doesn't it? There IS some benefit in having stuff automatized in a standard way; even though we could all do our chroots ourselves, I want to express my thanks to the pbuilder (and cowbuilder) authors and maintainers for making life EASIER for me. A lot easier. I could live without, but I would probably not keep that many chroots."
Ken Bloom added:
"One important feature of a pbuilder chroot is that pbuilder installs build-dependencies as you ask it to build debian packages, and removes them as soon as it finishes building the packages. In this sense, pbuilder is specifically intended to replicate the buildd environment, so you can find out whether your packages will break on a buildd (e.g. whether you've remembered to include all of the build-deps in debian/control, because things will break on the buildds if you forgot to add a build-dep because the build-dep was just lying around on your system (or in your unstable chroot)."
Sven M ller wrote:
"Well, pbuilder has several benefits, but the most important one to me is that it restarts from a clean system (only base packages + build-essentials installed) on each build. Sure this adds to the time needed for the build, but it also makes sure that I get all build-deps right and that the whole build process is as reproducible as possible."
Ben Hutchings commented:
"The major difference between pbuilder's approach and simply building in a chroot'ed installation is that pbuilder tries to build on a minimal system plus the specified build-dependencies. If you always build with pbuilder or similar it's much less likely that you will miss a build-dependency or otherwise produce a package that can't be auto-built elsewhere."
I take the clean chroot point as a clear benefit, but it still strikes me that there are easier ways to do the same thing (rsync --delete) without all the waiting around for pbuilder on my slow mipsel. I guess that's the difference with debhelper: debhelper use doesn't seem to slow me down.

15 January 2007

Ben Hutchings: Mould: not just a flavour of cheese

BoingBoing linked to a previous story about Quorn being allergenic, which I've not heard claimed before. Supposedly about 5% of people have unpleasant reactions to it, which I find a bit hard to believe. I'm curious, though, so I shall make the most of my remaining days of paid account with a not particularly scientific poll:
View Poll: Mould: not just a flavour of cheese

21 November 2006

Ben Hutchings: Interface checking

Robert Collins writes: "Added to my list of 'things we need'... a version of icheck that requires less configuration to hook into package builds. Ideally one that we can get running automatically on any package build." There's only so much you can do without having debug information from both versions, which of course we don't keep at present. However, Steve Langasek implemented some basic checks on exported symbols in the unixodbc package which you can find in its debian directory. I'm slowly starting to work on a more comprehensive ABI checker that would use debug information. This would require someone to keep or rebuild debug information from the previous version (and to delay stripping it from the new version) so I don't think it could be automatic.

6 November 2006

Ben Hutchings: I came across a cache of old photos

Actually, I knew I had a backlog of photos that should go in albums, but could not resist the line. Actual printed photographs, from photograph film - so very last century. Actually I've covered my own photos from August 1999 up to the end of 2001, which still leaves nearly 5 years, but considering the time I think I should stop. Most of the good ones are already on the web and have been for years, but there are notable omissions (some noted with a claim that I would scan them "soon"). I'm afraid the new ones won't be going online quite yet, as there are a lot to scan. Which brings me to a request: Dear lazyweb, please give me software to scan then and automatically rotate and crop paper photos. (No, my scanner isn't sufficiently high-res to scan film, and I don't have the necessary adapter.)

Next.

Previous.