Search Results: "reg"

3 April 2008

Joachim Breitner: How to make contour lines circles?

Dear lazyweb, I have a question with regard to image manipulation. Given an rectangle image with a continous function on it (in my case, walking distance from a certain point), I can easily draw the contour lines of the function, i.e. for a given distance from the center mark all points that have this distance. This looks very similar to the contour lines of height map. I d like to morph this image now that all these contour lines are circles around the centers, but I don t have a good idea how to do that with a minimum amount of distorting. Any suggestions or pointers to algorithms are welcome.

2 April 2008

Peter Van Eynde: ipv6 with a Cisco ADSL router a short howto

For a long time I wanted to play with IPv6, but I never liked any of the tunnels I saw. This evening I started wondering if my Cisco 837 ADSL router cannot handle some form of tunnel.

A short time later and:
router#ping ipv6.google.com
Translating "ipv6.google.com"...domain server (195.238.2.21) [OK]

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:4860:0:1001::68, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 276/278/284 ms


How to do it: I configured a 6to4 tunnel on the router:

ipv6 unicast-routing
ipv6 cef
! enable ipv6
ipv6 inspect name MyIPv6Inspection tcp
ipv6 inspect name MyIPv6Inspection udp
ipv6 inspect name MyIPv6Inspection ftp
ipv6 inspect name MyIPv6Inspection icmp
! let's have a firewall
interface Tunnel1
no ip address
no ip redirects
ipv6 address 2002:51F0:CCA5::1/128
ipv6 enable
ipv6 traffic-filter
ipv6ip in
ipv6 inspect MyIPv6Inspection out
tunnel source Dialer1
tunnel mode ipv6ip 6to4

interface Ethernet0
ipv6 address 2002:51F0:CCA5:DEAD::1/128
ipv6 enable

ipv6 route 2002::/16 Tunnel1
ipv6 route ::/0 2002:C058:6301::

ipv6 access-list ipv6ip
deny ipv6 any any


Of course the 6to4 ip (the one on Tunnel0) is derived from my ipv4 ip. Which changes now and again. So I uploaded to the flash of my router the following file:

proc doconf   section setting   
if [ catch ios_config $section $setting errmsg ] error "configuration of $section $setting failed";


set ipaddr [exec "show ip interface Dialer1 i Internet address"]
regexp is ([0-9.]*)/ $ipaddr match ip
regexp ([0-9]*).([0-9]*).([0-9]*).([0-9]*) $ip match a b c d
set newipv6 [format "2002:%2x%2x:%2x%2x::1" $a $b $c $d]
set newintipv6 [format "2002:%2x%2x:%2x%2x:dead::1" $a $b $c $d]
doconf "interface Dialer1" "no ipv6 address"
doconf "interface Dialer1" "ipv6 address $newipv6/128"
doconf "interface Ethernet0" "no ipv6 address"
doconf "interface Ethernet0" "ipv6 address $newintipv6/64"


This is a TCL script that will get the current external ip (from Dialer1) and give the correct IPv6 ips to the right interfaces.

And with alias exec updateipv6 tclsh flash:update-ipv6.tcl I can quickly login and adapt the addresses myself.

The router handles IPv6 autoconfiguration on the inside, so my machine now says:
# ip addr show dev wlan0 scope global
4: wlan0: mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:19:d2:28:2c:a4 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.53/24 brd 192.168.1.255 scope global wlan0
inet6 2002:51f0:cca5:dead:219:d2ff:fe28:2ca4/64 scope global dynamic
valid_lft 2590061sec preferred_lft 602861sec

The one remaining problem is that when the external ip changes the autoconfig announcements change too, but the old ipv6 IPs remain on the interfaces.

PS: for those not in the know: I work for Cisco but this was done after hours and using public information (of course)

Lucas Nussbaum: Things you should know before buying an Asus EEE PC

I’ve been using an EEE PC since december, and people keep asking me if they should buy one. So here are some things you should know before making a decision. Screen The screen is small, but that’s OK. I couldn’t find many applications that didn’t work in 800×480. And for the remaining ones, you can usually use hacks such as running the app in a larger virtual desktop. Not ideal, but it works. Regarding usability, it’s not a too big problem. Jut expect to use many apps maximized, and use scrolling and virtual desktops a lot. (Important note: Xmoto doesn’t work!!) Keyboard The keyboard is probably a bigger problem than the screen (I hadn’t expected it to be a so big problem before buying the laptop). Every other keyboard seems to have HUGE keys after typing on the EEE PC keyboard. But with some training, you can type quite fast, even if probably not as fast as with a full size keyboard. The layout of the “special” keys is quite good (esp. the PgUp/Down, Home and End keys on the arrows. I should remap my other keyboard like that). Battery, power consumption One big problem with the EEE PC is that it consumes a lot of power while sleeping (using suspend to RAM). If you leave it sleeping for more than a few hours, expect the battery to be empty. That really sucks, especially since suspend to disk isn’t really a good option on such a device. Another problem related to power is that charging the battery is quite slow. SDHC card reader If you want to expand the storage capacity of your EEE PC with the SDHC port, choose your SDHC card carefully. There are only a few cards that work. The other ones will cause write error (they will work in read-only mode, so I’m using an external card reader to write, which sucks). A list of supported cards is available in the EEE PC manual. Random Q&A Q: I don’t have a laptop. Should I buy it? A: If you want to do a lot of real work on it, it’s probably not a very good idea. There are faster (but bigger) laptops at around 450-500 EUR. They are probably a much better option. The EEE PC is perfect as a the second laptop you only bring to places where you want to stay connected, read email and surf on the web (like conferences and meetings). Q: Does the VGA output works well? A: Yes. And it uses an Intel video card which works like a charm with xrandr. I already gave several presentations and classes using it. The laptop can output 1280×1024 (maybe 1600×1200, not sure). The only problem is that you will only have the top-left part of your slides on the laptop’s screen, because of the smaller resolution there. Annoying if you plan to read your slides.

Conclusion So, should you buy one? If you can’t wait, go ahead. If you can wait, it might be a good idea to wait until Asus fixes some of the problems (the SDHC card reader and the power consumption while sleeping are the most annoying ones).

Miriam Ruiz: ISO/IEC DIS 29500 (OOXML) is now an International Standard

Today is a sad day. Corruption has won over rationality. ISO sucks. I guess I lost all the trust I had on the standards organizations. OOXML is a standard covered by many patents, ambiguous enough for Microsoft to keep the real specs closed, far worse than the previous ISO standard for the same task (ODF), and approved in a very suspicious way, in a process full of irregularities, which I hope the European Union will investigate.

David Welton: Google Maps' terrain view now has contour lines

Amongst other things, I have long had a passion for maps. I remember what a nice discovery USGS topo maps were as a kid, and as I developed an interest in cycling, all the cool places I've found over the years by poring over maps. There's also an element of discovery in getting detailed information about a place you've never been. So I'm excited to notice that Google Maps' terrain view now has contour lines to show elevations, rather than just shading. Here's the mountain north of Innsbruck, for example. Or Oregon's North and Middle Sisters Steens Mountain, Little Blitzen and Big Indian gorges Cool!

1 April 2008

Brett Parker: Hehehe... gotta love IRC...

22:36 < quinophex> "some say he spells with regexps, some say he uses so much
		   alcohol as it acts as a coolant for his built in
		   supercomputer....."
22:37 < quinophex> "all we know, is he is called iDunno"

31 March 2008

Eric Warmenhoven: Rewriting as a learning tool

So a year and a half ago, I mentioned I was trying to learn Haskell, and I still am. It’s been going much more slowly than I hoped, since I haven’t really spent any time on it. I never write anything new anymore! So I decided to rewrite something I had previously written myself, need be damned. So I chose the RSS aggregator I wrote, harsh. harsh hasn’t changed in eleven months (and that change was just about making the location of its configuration file configurable), but I still remembered how it worked pretty closely; at least enough that I didn’t have to really go searching through its code too much. That’s probably also a function of how small harsh is; in terms of lines of code (excluding blank lines):
  config.c: 139
  cookie.c: 221
 display.c: 709
    feed.c: 577
    list.c: 96
    list.h: 16
    main.c: 96
    main.h: 84
     md5.c: 360
     md5.h: 76
     rss.c: 120
     xml.c: 276
     xml.h: 17
     total: 2787
It uses expat to parse the HTML, libnbio for socket management (which is available in Debian), and ncurses for the UI. It doesn’t have any sort of threading (libnbio does a good job of making sure that, other than DNS lookups, there’s never anything going on long enough to prevent responsiveness). About its only feature is that it will use my cookies.txt file, so that I can see my LiveJournal friends’ protected entries. I originally wrote harsh in about a day or two. It was really easy because of the 2800 lines, about 850 of them had been written in some of my other projects (list.c/h and xml.c/h) or are standard (md5.c/h). I was also really familiar with the three helper libraries from writing grim (my IM client) and stark (a tool for viewing GnuCash data files). As a learning exercise, rewriting harsh in Haskell was excellent. It’s incredibly small, does a lot of standard things (like networking and console UI), and doesn’t do a lot of non-standard things (like an AIM client does). I got to play with the Haskell light-weight threads and STM; I learned how to create a Debian Haskell package; I learned how to use ghci as a debugger with breakpoints; and I’m much more comfortable with monads and with the language in general. It did take me significantly longer to write than the C version, though that’s more due to me having to learn not just the language but some libraries along the way (like HTTP, Vty, and HaXml). I still think that it would take me just as long to write the Haskell version as the C version, but I’m still much more comfortable with C, and imperative programming in general. From a code size perspective, the Haskell version is about one-sixth the size (excluding comments):
Config.lhs: 53
  Feed.lhs: 144
 Harsh.lhs: 272
  Util.lhs: 26
     total: 495
However, that’s not a very fair comparison. In the C version, md5.c/h are included in the total count, when really they should be considered a standard library (and on the Haskell side, I used Data.Hash.MD5 from MissingH). On the C side, I did all of the HTTP request and response processing myself (which is what more than half of feed.c is about), while on the Haskell side I left that to an HTTP client library. Excluding all those things though, the Haskell version is still about one-fourth the size. Anyway, I put the Haskell version of harsh up here. If any Haskell hackers out there could take a look at it and let me know what I’m doing wrong or oddly, I’d appreciate it.

Lior Kaplan: Where did the numbers go ? (major bug in OO.org 2.4.0)


About two months after the Israeli government stopped the support for openoffice.org localization, we hit a major bug (actaully - a regression) with version 2.4.0 effecting Hebrew users. In version 2.4.0 numbers written in Microsoft Word documents are shown as Hindu numbers instead of Arabic numbers. There’s a big confusion in the terms, as the number used in Arabic are the Hindu numbers and the number used in Latin languages are the Arabic numbers. Anyway, this means that, the facto, Openoffice.org 2.4.0 can’t show properly Microsoft Word documents which were written in Hebrew. I can’t start to describe how much interoperability problems that causes in Israel. Which such behavior I can’t recommend OO.org to people, and organizations already moved to previous versions of OO.org can’t upgrade to 2.4.0 and must stay with 2.3.1. This is also a problem as most Linux distributions (Debian, Ubuntu, Fedora) intend to include 2.4.0 for their stable release. With all the RTL related bugs, OO.org was still usable. But this bug absolutely changes things. I hope it will be fixed for 2.4.1 and won’t be delayed for version 3.0. I wish I could say this is an April’s fools post, but that bug is a reality… Please vote for this bug.

30 March 2008

Christian Perrier: Booked

I'm going to DebConf8, edition 2008 of the annual Debian 
     developers meeting I just booked my flight tickets. Sadly, the rate went up from EUR902 to EUR1080 since Feb. 27th...:-( Anyway, I'll be there. Now I have to register the i18n sessions (yes, faw, I didn't do it already).

29 March 2008

Enrico Zini: OpenStreetMap party at Kaohsiung, Taiwan

OpenStreetMap party at Kaohsiung, Taiwan Apparently, yesterday we had the first OpenStreetMap event in Taiwan! We met in a caf /restaurant equipped with power plug, wireless network and overhead projector and we had a bit of an introduction, chat and lunch. Then we split in groups and exploited the fact that the newly built underground (KMRT) system is still free of charge, to spread around and map around the stations. Finally, we reconvened at someone's house to see how to put the data together, draw roads, tag and upload. Highlights of the day: Technical bits: Issues to address:

Jonathan McDowell: Archos 705 media player

El Reg reviewed the Archos 705 yesterday. They only gave it 50%, which I think is a little harsh. I bought one of these back in November when they first came out, as something to help easy my daily commute by train. I have to say I don't regret the purchase; while there are various niggles that annoy me it basically does what I want. My main drive was the size of the screen. There are plenty of options available if you want in the region of 4", but I wanted something bigger that could still be shoved in a bag without any hassle. The 705's 7" screen is great. I can sit it on the tray table on the train and it gives a clear viewable image that doesn't leave me squinting trying to see it. The second concern was the battery life. At 7" you start to get into the UMPC area. However there didn't seem to be anything around that both offered enough battery life and had the grunt to decode DivX. I need a guaranteed 2hrs (ideally a bit longer) so I can watch something without being interrupted. I've certainly had over 3hrs on the Archos and various reviews claim it'll do 5hr for video without problems. Archos call the 705 a DVR. I've no idea why; I certainly wouldn't consider it one. I have the DVR station, but I've only used it to connect the Archos up to a hotel room TV and never for actually recording anything. There's no tuner (neither analog nor digital), so you need a Freeview/cable/satellite or similar box to provide a signal. Plus it seems pointless to convert a digital TV signal to analog and then for the Archos to have to re-encode it. Much more sane to record TV on your PVR and pull the file off that and onto the 705. Except there you hit a bit of a problem. By default the Archos supports DivX and WMV. To get MPEG2 or H.264 support, or indeed AC3 audio, you need to pay extra for a license that will enable the appropriate codec. This is annoying and I've ended up just using mencoder to convert Freeview records to an Archos friendly format rather than shelling out more for the codecs. Archos do seem to have dropped the ball here. The MPEG2 license fee seems to be $2.50 per device. The TI licensing seems to be about $2 for MPEG2 + AC3. Archos sell the plugin for €19.99. I doubt AC3 licensing is over $15, which rules out Archos merely keeping the cost down for customers by allowing them to pick and chose which codecs they want to avoid paying license fees. The 705 also comes with a web browser. Which, of course, you have to pay for. I ended up getting this thrown in with my 705 + DVR station bundle. It's powered by Opera and reasonable enough. The only time I've really made use of it is while staying in a hotel; it was quite nifty to have the 705 hooked up to the TV and be able to lie on the bed with the keyboard remote control and lookup film times or interesting places to go. Internet access is provided by wifi; if it had bluetooth as well then I might make use of it on the train, but as it is it's not really something I use much. As I said at the start I'm still happy with my purchase. It's not a cheap item, but it has the screen size and battery life I wanted and there wasn't a lot else out that offered both. Having to pay for codecs is a bad move on Archos' part, but I've avoided doing so by re-encoding. If you want something that's a decent media player of this size then the 705 is definitely worth considering; if you're not sure about the size aspect you may be better off with a 605 (the 4.3" screen version) or even something from Cowon (who unfortunately don't seem to have anything in the 7" range). Finally, if you already own a generation 5 Archos device, you might be interested to know that shell access has been obtained. The device is pretty locked down (signed kernel modules, no /dev/mem, signed root cramfs filesystem), but there's an arcwelder exploit to get an ssh login over wifi and an Archos Hacking forum on Archosfans.

28 March 2008

John Goerzen: A Realistic View of the Economy

Yesterday, I read an article on CNN called From $70K to food bank.

It describes a woman who was laid off in February from a job paying $70,000 a year. "Weeks later", with bills "piling up and in need of food for her family", she went to a food bank.

The article proceeds to talk about the subprime lending situation at great length, which is largely irrelevant to this person's situation.

Then we learn she applied for food stamps, but was denied. There's a quote from this person about how frustrating that was, and general "tugging at the heartstrings" trying to make us feel sorry for this woman with two children whose mother moved in to help make the house payment. It seems to me that this is a correct decision; someone that can pay a $2500 mortgage each month ought to move into an apartment before trying to leech food or money from social service agencies.

And that's where this story gets interesting.

She has an interest-only mortgage, and is managing to pay the $2500 bill each month.

If you're not familiar with an interest-only mortgage, here's how it works. The bank loans you money to buy your house -- say, $200,000. This is a loan, and you have to pay interest on it each month, just like a regular mortgage. But with an interest-only mortgage, you never pay off the loan. You could be making monthly payments for 30 years and still owe $200,000. In general, the only ways to "pay off" this kind of loan is to sell your house, or get a conventional mortgage that pays off the interest-only loan.

Interest-only mortgages were largely banned after the Great Depression. Prior to that time, they were how mortgages normally worked. But there are several problems with them. One is that you have to pay on them forever, even after you retire. Another is that you can't move unless you can sell your house for at least as much as the bank financed, even if you've lived there for 20 years. In times of declining housing prices and unemployment, that really stinks. People often default on the loans, and from a bank's perspective, that really stinks, too.

Interest-only mortgages are usually used by banks financing construction (we had one for a few months when we renovated our farmhouse) or other short-term projects such as professional real-estate investors that buy old houses and fix them up to sell at a profit. Except for these things, in general, they should never be used for a primary house. It's not in the interest of the bank or the homeowner.

But since you never pay off the principal, the monthly payments can be lower. It seems likely that this woman took a knowing gamble, buying a home more expensive than she could afford, and somehow found a bank willing to finance this. Problem is, both she and the bank took a knowing risk. If she ever ran into financial difficulties, she'd have to sell the house quick. But now the house is probably worth less than the value of the mortgage, so selling it won't remove the loan -- BUT it would let her pay off a large part of the principal, reducing her monthly payments and giving her some wiggle-room to buy food and pay off the rest of it.

It seems to me that she is unwilling to own up to the calculated risk she took, and wants society to help bail her out. Don't get me wrong; I think we need to help people that run into hard times. We need to help make sure they still have the tools they need to find a job and a place to stay. But bailing out people that take huge financial risks shouldn't be the job of society. Let's help them land softly, but not be enablers keeping them in a home they never could -- and still can't -- afford. Fortunately, I don't think anyone in government (or running for president) is suggesting we should.

Not only that, but her bank shouldn't have ever made that loan. Banks should be held accountable to not sell unwise products to people that rely on them for their primary residences.

Here's another interesting point: in just a few weeks, she had burned through her entire savings.

This, unfortunately, is a quite typical situation for many Americans. My financial planner, and I think most experts, suggest that everyone ought to have 6 months of income in liquid non-retirement assets (savings accounts, investments, etc.) in case something like a layoff happens. Very few Americans have this.

And when it comes down to it, isn't that part of the problem? The economy thrives on consumer spending. Or, put more starkly, overconsumption. If people start saving like they ought to, and stop feeling like they're outcasts just for not keeping up with the Joneses and buying every last gadget or the biggest house, we'd all be in better shape -- but the economy wouldn't have grown as much.

The growth it would have seen, had we all been more responsible, would have been a lot more durable and recession-proof, I think.

Russell Coker: Debian SE Linux Status

At the moment I’ve got more time to work on these things than I have had for a while. I’ve got Etch support going quite well (see my post about my Etch repository [1]), the next step is to back-port some packages for AMD64 to get it working as well as i386. I’ve got an i386 Xen server for SE Linux development (which is also used for my Play Machine’s [2] DomU - so it’s definitely not for anything secret). I can give accounts and/or DomU’s to people who have a good use for them (the machine has 512M of RAM so could have 4-5 DomU’s). Currently it seems that the 2.6.24 kernel in Debian doesn’t work for Xen (at least on with an i686 CPU). I have filed bug report #472584 about it not working as a DomU [3]. This combined with the fact that according to bug report #466492 it doesn’t work as a Dom0 (which I have verified in my own tests) [4] makes the package linux-image-2.6.24-1-xen-686 unusable. Due to the inability to use 2.6.24 Xen I can’t do SE Linux development for Lenny in a DomU (Lenny tools build policy version 21 and the Etch kernel I’m using only supports policy version 20). So I have repurposed one of my servers for Lenny (unstable) development. I can give user accounts on that machine to anyone who has a good reason (and there are some people who I would give root access to if they need it). The current policy packages in Unstable are built without MCS support. This is a problem as converting between a policy which has MCS or MLS and one which doesn’t is rather painful (purge policy, reinstall policy, and reboot are all required steps). I have filed bug report #473048 with a patch for this - my patch may not actually be much good (I don’t understand some aspects of Manoj’s code) but it does achieve the desired result [5]. I won’t be making Apt repositories for such things as I expect that the changes will get into Debian fast enough. The next thing I am starting to work on is MLS support for Debian (currently it only supports the Strict and Targeted policies). See the Multilevel Security Wikipedia page for some background information on the technology [6]. I don’t expect that many people will use MLS on Debian in production environments, and it wouldn’t surprise me if no-one used it on a production server (although of course it would be impossible to prove this). But I still believe that it’s worth having for educational purposes. I am sure that there are packages in Debian of a similar size that will get less use so it’s not a waste of disk space on mirror servers! The only real down-side to adding MLS support is that it will increase the build time for the Debian SE Linux policy packages, currently they take 13 minutes to build on a 1.1GHz Celeron system (the Xen server I mentioned previously) and I expect that the machine in question will have build times greater than 20 minutes with MLS included. I will probably need to set up an Unstable DomU on a dual-core 64bit machine for the sole purpose of building policy packages. I will also have to investigate use of the “-j” option to make when building the policy to take advantage of the dual cores. I often do small tweaks to policy and it’s annoying to have to wait for any length of time for a result. The version of Coreutils that is currently in Unstable will have ls display a “+” character for every file when running SE Linux (I have filed bug report #472590) about this [7]. It is being actively discussed and at this stage it seems most likely that the functionality from Etch in this regard will be restored (which is using “+” to represent ACLs only not SE Linux contexts). It seems likely to me that I will find a few other issues of a similar nature now that I have started seriously working on Unstable. For the benefit of Debian and upstream developers who get involved in such discussions, please do not be put off if you join a discussion that is CC’d to the NSA SE Linux mailing list and have your message rejected by the list server. The code of conduct is much the same on most mailing lists, and the SE Linux list is not much different to others. The difference is that before your get your email address white-listed for posting you have to agree to the terms of service for the list. The people who run the list server appear to work more than 40 hours a week so there should not be a great delay. If anyone wants to get a message about Debian SE Linux development sent to the list without delay on a weekend then they can send it to me for forwarding. I am aware of some discussions about SE Linux and the Debian installer. I have not responded to them yet because I wanted to get some serious coding done first as an approach of “I haven’t done much coding recently but trust me I’ll fix the problems for you” might not be accepted well. I will start investigating these issues as soon as I have my Debian/Unstable server working well in enforcing mode. Update: I’ve just filed bug report #473067 with a patch to enable MLS policy builds [8].

27 March 2008

Andrew Pollock: [tech] LugRadio Live USA 2008

LugRadio Live USA 2008 I've never been much of a podcast listener, largely because I haven't gotten my act together and downloaded any on a regular basis, and partly because the iPod is tied to Sarah's iTunes on her laptop, so it's not convenient to go fiddling with the iPod. If I ever manage to get back into the swing of things and get to the gym regularly, I think I'd prefer to listen to a podcast rather than straight music, so I can hopefully expand my brain while I'm slogging my guts out on the treadmill. Kynan and Shona have both talked about LugRadio events from when they lived in the UK, and I've been vaguely aware of it as a podcast (it's probably the first podcast I'd name if you asked me to name one). I vaguely knew that Kynan had been trying to organise something LugRadio related in the Valley for a while now. Well, it turns out he's succeeded, and it's good to see he's gotten some credit for it as well. Onya Kynan! So I got all excited when I went and looked at the schedule and discovered it was going to be something vaguely like a mini-linux.conf.au, I scurried off and bought a couple of tickets. Then Sarah pointed out that it's the weekend that we're going to San Diego for a four-day weekend. Oh well, at least the tickets were pretty cheap. So, if, unlike me, you'll actually be in the Bay Area on April 12th and 13th, check it out, it sounds like it'll be fun.

Aigars Mahinovs: More of a good thing?

There is one particular aspect of Microsoft’s document format going through ISO process that I had a hard time to find a counter-argument against: “Well it is better to have multiple open formats, isn’t it?”. Last night when I was presenting in a Document Freedom Day event, I finally got one. When multiple standards exist in the same area, two options can exist:
  1. Cooperative standards - providing similar functionality in different ways that can coexist in the same medium without a significant overhead. An example of this are the credit cards - they have multiple ways that the card information can be transferred to the bank: visual writing down of the data, imprint, magnetic strip and the chip. Any of these ways can be used and all of the are equally valid;
  2. Conflicting standards - providing the same functionality in incompatible ways. The example here is the power adaptors - the form of the power plug is an open and public standard (AFAIK), but so many of them exist in different places that it creates all sorts of problems both for companies producing electronic equipment and for frequent travellers.
What Microsoft proposes is much worse than the power plug mess, because the power plug standards are at least restricted by region. But imagine going to another country and having to be ready that you hotel could have any one of 8 power plug types at random. And while electricity is rather easy to convert looselesly, complex documents are far more .. complex. It is like having to buy 8 different power bricks for each of your electrical devices to be prepared for all possible voltages, frequencies, waveforms, polarities and whatnot. Having more than one ISO document standard in a horrifying idea for any programmer that will have to ever work on software that will need to support both of them - twice the work for no etra benefit whatsoever. If Microsoft can prove (in technical terms) that their file formats present capabilities that Open Document can not, then the only sane way to implement those in the ISO format is to add those capabilities as an extension of the existing Open Document format and not to reinvent the wheel. Microsoft also has a habit of pointing to JPEG and PNG being “competing”. Well, they are not - those are complimentary standards, because JPEG is designed for compression of photographic details while PNG is designed for the compression of bitmapped vector images. Something like DejaVu could be seen as a superset of the two formats. So, if you ever need an argument against more standards - remember about the power plugs.

26 March 2008

Michal &#268;iha&#345;: Don't be impatient

I handle bug reports and email communication as soon as possible, but it does not mean that it may take month or even more to get reply. I'm not working full time on my free software projects, I do it only in my free time. Besides this I have regular job and I also have a real life with another hobbies. So if you wrote me something, just try to be patient, sending another emails to urge your issue won't help anybody. I will just have more unread mail to process until I get to real work.

25 March 2008

Cyril Brulebois: When patience isn't enough

Random things you can't do without being a DD (and no, DM isn't the answer). Being able to read debian-private@, having a nice^Wspammed @d.o address, or getting an lwn access could be added here, but that's only bonus stuff compared to the previous items (and I'm probably forgetting others). Oh, yeah, I know, patience is the key. I'm not sure about how many months we're supposed to wait for an answer from James. I'm not sure how many years we're supposed to wait for the various DAM problems to be solved. Lucas is very worried about bringing fresh blood into Debian. Maybe there's some already, but it's not allowed to flow in. Many thanks to all developers who are making it less frustrating by doing mass-sponsoring; and to everyone showing sympathy. Not listing you all, you know who you are.

Christian Perrier: [life] Bhutan takes the turn of democracy

The first democratic elections were held in Bhutan yesterday. This is an important step on the transition from absolute monarchy to constitutional monarchy, for the small himalayan kingdom which I already blogged quite a lot about. Sorry for that, I fell in love with that country. The 47 seats of the National Assembly were to be filled in by a two-round vote: voters first vote for parties (two of which registered: DPT and APP). The two winning parties (well, there were only two, so....) then field candidates in the consistuencies. As anyone can see, there's still some work to do to reach the democracy we all experience in the so-called western countries. As usual, this is the bhutanese way to do things: slowly, at their own pace, but consistently. Just compare this with their giant northern neighbour who's currently in the news for their democratic behaviour in Tibet... Ass BBC News says on their web site, "At a time when the future of democracy is uncertain in several countries in South Asia, Bhutan may be heading in the right direction.". And, remember, we're talking about a country who made the choice of Free Software, also..:-)

Tollef Fog Heen: pkg-config, sonames and Requires.private

This post is both an attempt at replying to a bug against telepathy-glib, but also an attempt at explaining what Requires.private do (and don't). I am using Evolution as my example here, not to pick on Evolution or its authors in any way, but because it's a convenient example. Currently, on Ubuntu Hardy, evolution links against 75 different libraries. Amongst those, we find libz.so.1, libXinerama.so.1 and many more. I'll go out on a limb here and claim that Evolution does not call any of the functions in libXinerama directly. Let that be the assumption from here on. An obvious question then is, why does evolution link against libXinerama.so.1 if it doesn't use it? To answer that question, we need to go back in time to before we had dynamic linking. If you wanted to build a binary like evolution you had to have 75 -l statements when you linked and you ended up with the whole code for Xinerama embedded in your email and calendar client. For various reasons, we stopped doing that and switched to dynamic linking where the evolution binary just contains a reference to libXinerama. At some point we also grew the ability for libraries to contain those references to other libraries, so you don't have to hunt down all the dependencies of libfoo when you are linking with it. We also got tools such as libtool which try to abstract away a lot of the problems of building on older platforms which don't support inter-library dependencies. Now, since evolution still doesn't use anything directly in libXinerama.so.1 but just uses a library which in turn links against libXinerama.so.1, it shouldn't be linking against it. Then why is it linked with it? Again, we need to look back at history, and for this part I am at least partially responsible. pkg-config was originally written as a replacement for gnome-config and various other -config utilities. Lots of libraries and applications now ship .pc files and we have a standardised interface for querying those files. One of the problems the original authors of pkg-config faced was the problem of dependencies. They added dependencies so the authors of gst-python-0.10 could say "We need pygtk-2.0 too" and so the compilation flags needed for gst-python-0.10 would also include those for pygtk-2.0. Note that I'm using "compilation flags" loosely here, I am not just talking about CFLAGS. This did not fix the problem of inflated dependencies. Not at all. I talked with some of the Debian Release Managers back in 2004/2005 and we worked out a solution which should help us have correct, uninflated dependencies since the then-current way of handling dependencies caused big problems for migrations of packages between unstable and testing. The plan was to introduce a new field, Requires.private which would not show up unless you passed --static to the pkg-config invocation (since you need all libraries if you are linking statically). This definition of Requires.private was mostly useless since GNOME and GTK+ have a habit of including each other's headers. To make a long story short, I changed the semantics so the Cflags field from private dependencies were included even when not linking statically. A problem which pkg-config does nothing to guard against in this case is if you have libfoo.so.2 linking against libbar.so.1 and libfoo.so.2 exports some of libbar's types in its ABI (and not just as pointers, but actual structs and such). If libbar's soname is then bumped to libbar.so.2 and libfoo is rebuilt, libfoo's ABI has changed without a soname bump. This is bad and will cause problems. If your application is linked against both libfoo.so.2 and libbar.so.1, you'll still get problems since libfoo.so.2 then suddenly pulls in symbols from libbar.so.2. If you used symbol versioning, you would at least not get symbol conflicts and your application would continue to work, but you would have a spurious dependency and the package containing libbar.so.1 would be kept around until your application was recompiled. With this background, you might ask the question why we still have Requires since it is seemingly useless. For C, it is useless in all but the most special cases, just use Requires.private instead (and its sibling Libs.private). Other languages have different semantics. Some people use .pc files for other purposes such as gnome-screensaver having variables defining where themes and screensavers go. Hopefully this blog post has explained a bit about why we have Requires.private and what the difference between this and their regular counterpart is. If there's anything unclear, please do not hesitate to contact me.

Martin F. Krafft: Looking for an environmental charity

I am looking for a charity to receive regular donations. I would like to support the environment and wildlife, rather than people directly, and the World Wildlife Fund immediately comes to mind. While I ve been supporting the fund s work for two years now, I feel a bit uneasy about its size. It seems plausible that they can leverage synergies much more effectively, but large organisations also burn through heaps of money just to be able to do what they want to do. In addition, I feel the whole organisation is too professional and anonymous. The same applies to Greenpeace. With none of this do I intend to discredit the work of the WWF or Greenpeace! They re just not what I am looking for. I have previously donated to a charity in China, but the troubles and efforts involved with this were too much. And while China certainly needs a lot of help and support in rethinking their environmental policies, it s not like central Europe or other parts of the world couldn t put money to good use in this sector as well. So what I seek for is a small charity who operates in a niche and to whom regular donations, even if small, make a difference. EuroNatur looks promising. I d love to have more choice though. If you know of any, please let me know. NP: Barclay James Harvest: Eyes of the Universe Update: Micah Anderson pointed me to the Rainforest Action Network and Ron Lee introduced me to the Sea Shepherd Conservation Society, started by Greenpeace co-founder Paul Watson, who resigned from the Greenpeace Foundation (in 1977) because of disagreements with the emerging bureaucratic structure of the organization . I have contacted both and asked for their annual reports and whether they have experience with tax-deductible donations from Central Europe. Update: Karen O Sullivan suggests the Jane Goodall Institute and the International Fund for Animal Welfare. I ve written to them as well.

Next.

Previous.