Search Results: "ressu"

31 August 2007

Russell Coker: Carbon Geo-Sequestration

My post about Why Hydrogen Powered Cars Will Never Work has received a record number of comments. Some of them suggested that carbon geo-sequestration (storing carbon-dioxide at high pressure under-ground) is the solution to the climate change problem. The idea is that you can mix natural gas or coal gas with steam at high temperature to give carbon-dioxide and hydrogen. Then the carbon dioxide gets stored under-ground while the hydrogen is used for relatively clean fuel. Beyond Zero Emissions has produced a media release about the fallacies expressed in the FutureGen document promoting so-called “clean-coal”, the best content is in their PDF document titled FutureGen Conceptual Design Retort. Note that I did some research to support the preparation of the retort, I am not referencing them to support my arguments but as background information. One overwhealming problem with geo-sequestration for coal based power plants is that it is significantly more expensive than the current coal-fired power plant design. Currently the price difference between coal power and wind power is quite small and there are several technologies that are almost ready for production which will decrease the cost of wind power, it is expected that before so-called “clean coal” becomes viable (they are planning for the first production plants to go live in 2022) the cost of renewable energy will be lower than the current cost of coal power. There is no reasonable possibility of “clean coal” being cheaper than renewable energy. The underground reservoirs that could be used for storing CO2 currently contain brine, which can contain toxic metals and radioactive substances (according to the Bureau of Land and Water Quality in the US). If toxic and radioactive substances need to be pumped out to make room for CO2 then it’s hardly a clean process! The US Geological Survey has an interesting page about volcanic gas. Apparently it’s not uncommon for small animals to be killed when CO2 forms pools in low lying areas. If (when?) CO2 escapes from geo-sequestration the same might happen with humans. They also have a page about CO2 killing trees at Mammoth Mountain! Before I read this I never realised that plants could be killed by excessive CO2. Apparently tree roots need oxygen and CO2 in the ground will kill them. The release of 300 tons of CO2 per day killed 100 acres of trees. The FutureGen trial power plant is designed to support sequestration of over 1,000,000 tons of CO2 per year (that is over 2,700 tons per day). If it leaked at 1/9 that rate then damage comparable to Mammoth Mountain would be the result. Note that the FutureGen trial plant will be a fraction of the size of a real coal power station so an escape of significantly less than 1/9 of the CO2 from a real sequestration plant would have such a bad result. It’s interesting to note that tents and basements are documented as CO2 risks, so I guess we have to avoid camping in areas near power plants! What would happen if a large geo-sequestration project had a sudden failure? IE if the reservoir broke and all the CO2 erupted suddenly? We already have an answer to this question because such things have happened in the past. In 1986 in Cameroon 1.2 cubic kilometers of CO2 gas was released from a volcanic lake, that is 2,400,000 tons (or just over two years of output from the proposed FutureGen plant). It killed over 2000 people. What might happen if 10 years of output from a commercial scale coal power plant was suddenly released into the atmosphere? As far as I know there has been no research on de-sequestration of CO2. If a reservoir is discovered to be unstable after 20,000,000 tons of CO2 have been stored in it, what will we do? Geo-sequestration of CO2 makes nuclear power plants seem safe by comparison.

27 August 2007

Russell Coker: Hydrogen Powered Cars Will Never Work

One of the most important issues for a commodity fuel for vehicles is that it be convenient and safe to transport. For quite a while LP Gas has been available as a cheaper car fuel. Even with increasing petrol prices it’s acceptance is well below 100% due to extra expense in storing the fuel (high pressure and more insulation are required), the more expensive technology in the engine to heat the fuel before injecting it into the engine, and the extreme difficulty in creating something as convenient as a Jerry Can for transporting LPG. LPG is mostly comprised of Propane and Butane. Propane has the lower boiling point of -42.09C. Hydrogen however has a boiling point of -252.87C and therefore is much more difficult to store and transport. The next problem with hydrogen as a fuel is that it has a very low density. The energy density per volume of liquid hydrogen is 10.1MJ/L while the energy density of petrol/gasoline is 34.6MJ/L. Not only is liquid hydrogen difficult to transport but the vessels you transport it in need to be 3.4 times the size! Having a 3.4x larger fuel tank in a car may not be a huge obstacle, but then there is the issue of trucks used to transport it to fuel stations which are already at maximum size so the truck fleet will need to be 3.4x larger with more people driving them etc. Once these problems are solved there are a variety of safety issues. Hydrogen burns with an almost invisible flame, sustains a fire when at a concentration of between 4% and 75% of the air and ignites at a low temperature. For an explosion you need a concentration of between 18.3% and 59%. I won’t risk promoting foolish behaviour by describing details, but when younger I have performed experiments with ethanol and witnessed experiments with petrol that demonstrate that they are both far less dangerous. Page 22 of this document by the US Bureau of Transportation and Statistics gives more information about the fire risks posed by hydrogen fuel. Page 35 of the same document describes fuel cells as being 45% efficient and an internal combustion engine for methane gas as being 30% efficient thus giving overall efficiencies of 33% and 29.5% respectively. Of course using an Atkinson Cycle engine will give a significant efficiency benefit over an Otto Cycle engine and outweigh this. Also it should be noted that fuel cells tend to require expensive materials such as Platinum in their manufacture. Hydrogen is promoted by clean-coal advocates (not that any form of coal power is clean) and the nuclear industry (electrolysis is one way of using a huge amount of electricity). But there are many better options for powering cars that are available right now at minimal cost, these include bio-Diesel, ethanol, and plug-in hybrid or electric vehicles.

23 August 2007

Joerg Jaspert: UMTS V2

I got a few replies to my post about UMTS and finally ordered the flatrate from Moobicent as they use the Vodafone net. Vodafone got the best recommendations in the replys and is also the only one that has UMTS available in the area I want it… Basic summary of the comments is - Vodafone is the way to go as they (currently) have the best UMTS network. Even in Portugal, it seems, so if I plan a vacation that seems to be a good place to stay online during it. :) I also got the tip to always have a data transfer running in the background as it seems to make working with ssh way more comfortable. That should be simple to arrange. :) I already got the registration e-mail from Moobicent, my username and, in a seperate mail, my password to login to their service. I just need to wait for the hardware before I can start with that stuff. There was a big rant here first, about how “nice” it is to send you your username and your password in two unencrypted mails (sent at the exact same second, no difference in the header part beside subject and the SMTP id postfix puts in…………..). I decided to delete it, doesn’t help anyway. Instead I decided to play with Amazon wishlist a bit. Thats better for my blood pressure. :) Anyway, Im happy to have ordered the stuff and would love if the hardware would already be here (it will probably arrive on Friday/Saturday, I hope, having ordered on Wednesday). Oh my, lets play in NEW a bit, that usually kills lots of time… :)

22 August 2007

Ian Wienand: Fun with <tt>-funroll-loops</tt>

I was playing with loop unrolling, and decided to investigate it a little. The basis is this very simple program which looks like it could do with some loop unrolling.
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define SIZE (1500 * 1024 * 1024)
int fn(int *buf)  
        int i;
	for(i=0; i < (SIZE/sizeof(int)); i+=1)
		buf[i] = i;
	return 0;
 
int main(void)
 
        int *buf = malloc(SIZE);
        assert(buf);
	return fn(buf);
 
Firstly, lets have a look at what happens to the function when -funroll-loops is applied. Below is the de-compilation with some comments on what each line is doing.
Non-optimised
                           nop.m 0x0
r14=0                      mov r14=r0
save the "loop counter"    mov.i r2=ar.lc
                           nop.m 0x0
one less than iterations   movl r15=0x176fffff;;
                           nop.m 0x0
initalise loop counter     mov.i ar.lc=r15
                           nop.i 0x0;;
                           loop:
*buf = i, buf++            st4 [r32]=r14,4
i++                        adds r14=1,r14
dec lc, branch if > 0      br.cloop.sptk.few .loop
                           nop.m 0x0
restore loop counter       mov.i ar.lc=r2
Loop unrolled
                           nop.m 0x0
r26 = 0                    mov r26=r0
save lc                    mov.i r2=ar.lc
                           nop.m 0x0
iter / 32                  movl r14=0x2edffff;;
                           nop.m 0x0
setup loop counter         mov.i ar.lc=r14
                           nop.i 0x0
                           loop:
r3 = buf                   mov r3=r32
r8 = 1                     adds r8=1,r26
r25 = 3                    adds r25=3,r26
r23 = buf[3]               adds r23=12,r32
r24 = 4                    adds r24=4,r26
r22 = buf[4]               adds r22=16,r32;;
buf[0] = 0; r3=buf+1       st4 [r3]=r26,4
r21 = 5                    adds r21=5,r26
r19 = buf[5]               adds r19=20,r32
r20 = 6                    adds r20=6,r26
r18 = buf[6]               adds r18=24,r32
r16 = 7                    adds r16=7,r26;;
                           nop.m 0x0
buf[1] = 1, r3=buf+2       st4 [r3]=r8,4
r15 = buf[7]               adds r15=28,r32
r17 = 2                    adds r17=1,r8
r26 += 8                   adds r26=8,r26
buf += 8 (for next iter)   adds r32=32,r32;;
buf[2] = 2                 st4 [r3]=r17
buf[3] = 3                 st4 [r23]=r25
                           nop.i 0x0
buf[4] = 4                 st4 [r22]=r24
buf[5] = 5                 st4 [r19]=r21
                           nop.i 0x0
buf[6] = 6                 st4 [r18]=r20
buf[7] = 7                 st4 [r15]=r16
loop, dec branch           br.cloop.sptk.few .loop
                           nop.m 0x0
restore lc                 mov.i ar.lc=r2
                           br.ret.sptk.many b0;;
We can see that in the first case the loop counter is setup to run 393216000 times (e.g. 1500*1024*1024/sizeof(int)) and a very simple loop of storing the value and incrementing is undertaken. In the second version, the code becomes more complex. We can see the loop now executes 49152000 times (e.g. 1500*1024*1024/sizeof(int)/8) so we can infer that for each loop iteration, 8 values have been unrolled to be written into our buf array. Indeed, when pulled apart we can see the 8 stores (numbers just reflect the first time through). So, is it faster?
$ time ./loop
real    0m1.209s
user    0m0.388s
sys     0m0.820s
$ timme ./loop-unroll
real    0m1.056s
user    0m0.244s
sys     0m0.812s
Yes! Great. We can suggest a number of reasons why, but it would be interesting to get some hard statistics on why this is so. Thanks to the Itanium performance counters, we can. Firstly, lets start by seeing how cycles are being spent.
$ pfmon -e cpu_cycles,ia64_inst_retired_this,nops_retired,back_end_bubble_all ./loop
 547923609 CPU_CYCLES
1179995250 IA64_INST_RETIRED_THIS
    104431 NOPS_RETIRED
 154285534 BACK_END_BUBBLE_ALL
$ pfmon -e cpu_cycles,ia64_inst_retired_this,nops_retired,back_end_bubble_all ./loop-unroll
 311570590 CPU_CYCLES
1327451286 IA64_INST_RETIRED_THIS
 147560435 NOPS_RETIRED
  16088889 BACK_END_BUBBLE_ALL
Now, the Itanium can issue up to six instructions (IA64_INST_RETIRED_THIS) in two bundles of three instructions per cycle (CPU_CYCLES). However, you can't have dependencies between registers within a 3-instruction bundle (and branches and interruptions play havoc) so sometimes you need to pad with no-ops (this is why you need a good compiler). We can work out some figures from this, namely the useful instructions per cycle (e.g. instructions retired - nop instructions / cycles).
TestUseful instructions/cycle
loop1179995250 - 104431 / 547923609 = 2.15
unroll1327451286 - 147560435 / 311570590 = 3.78
This tells us that for each given cycle, the unrolled-loop version is doing more work (ideally we'd like that to be a the theoretical maximum of 6). So what is the unrolled version doing for all this time? Bubbles are where the CPU is waiting for something; a prime candidate is moving data from caches to registers. Bubbles make up (154285534/547823609) 28% of the cycles on the loop version, but only (16088889/311570590) 5% of the time for the unrolled version. This means the processor is spending a lot less time waiting for things to happen with the unrolled loop version. We can drill down further to see what bubbles are occurring.
$ pfmon -e be_l1d_fpu_bubble_all,be_exe_bubble_all,be_RSE_bubble_all,Back_end_bubble_fe ./loop
 14229581 BE_L1D_FPU_BUBBLE_ALL
    97669 BE_EXE_BUBBLE_ALL
     1260 BE_RSE_BUBBLE_ALL
131354866 BACK_END_BUBBLE_FE
$ pfmon -e be_l1d_fpu_bubble_all,be_exe_bubble_all,be_RSE_bubble_all,Back_end_bubble_fe ./loop-unroll
22676169 BE_L1D_FPU_BUBBLE_ALL
   83064 BE_EXE_BUBBLE_ALL
    1263 BE_RSE_BUBBLE_ALL
  718850 BACK_END_BUBBLE_FE
We are now breaking the stalls down to see where they are occuring. L1D_FPU_BUBBLES are essentially related to micro-architectural issues with the caches; things like the L1D cache being overwhelmend and interactions with the hardware page-table walker. BE_EXE bubbles are more simply described a waiting for data to come from caches (or even main memory) to registers. BE_RSE bubbles are related to the register stack engine, and "front end" bubbles (BACK_END_BUBBLE_FE) are where there are not enough instructions coming from the "front-end" for the "back-end" to issue out to functional units in the processor. In this case, the major cause of problems for the simple loop seems to be not being able to get enough instructions through to keep the processor busy. We can try to pin down what is happening in the front-end:
$ pfmon -e fe_bubble_imiss,fe_bubble_tlbmiss,fe_bubble_branch,fe_bubble_bubble ./loop
   27727 FE_BUBBLE_IMISS
    4910 FE_BUBBLE_TLBMISS
98094189 FE_BUBBLE_BRANCH
52615907 FE_BUBBLE_BUBBLE
$ pfmon -e fe_bubble_imiss,fe_bubble_tlbmiss,fe_bubble_branch,fe_bubble_bubble ./loop-unroll
780729 FE_BUBBLE_IMISS
  4858 FE_BUBBLE_TLBMISS
291620 FE_BUBBLE_BRANCH
111089 FE_BUBBLE_BUBBLE
What we can see here is that the increased code size of the unrolled version causes us a lot more i-cache misses, as expected. However, the problem for the unrolled version seems to be the time spent by the front-end dealing with the branch. This is not surprising since there is a rumor that there is a front-end buffer which fills up after 3 repeated cycles with branch instructions; apparently this is a problem addressed in the new Montecito chips (if anyone has one, I'll update this if you send me the numbers). Since we are doing 393216000 branches all within a single bundle its not surprising we've hit it! Just to confirm, we can break-down the BE_EXE bubbles. Remember, BE_EXE bubbles are caused by stalls in the execution phase primarily due to cache latencies or inter-register dependencies. Looking at our code, we don't re-use the same register over-and-over so we would not expect to spend a long time waiting for registers, and indeed this is what we see.
$ pfmon -e be_exe_bubble_grall,be_exe_bubble_grgr ./loop
79601 BE_EXE_BUBBLE_GRALL
  919 BE_EXE_BUBBLE_GRGR
$ pfmon -e be_exe_bubble_grall,be_exe_bubble_grgr ./loop-unroll
76627 BE_EXE_BUBBLE_GRALL
  918 BE_EXE_BUBBLE_GRGR
Therefore in this case, the speed increase isn't coming from better cache behaviour as we might have expected, but greater ability to keep the processor busy with instructions between branches. We can also examine the major events happening with the unrolled case. Here we see BE_L1D_FPU bubbles being the major overhead. On Itanium floating-point avoids the L1 cache (it is too big, and not re-used enough to make it useful) hence the concatenation of the event acronym. These bubbles can be broken down into the following events (measured in two runs, since you can only do 4 at a time).
$ pfmon -e be_l1d_fpu_bubble_l1d,be_l1d_fpu_bubble_l1d_dcurecir,\
  be_l1d_fpu_bubble_l1d_tlb,be_l1d_fpu_bubble_l1d_stbufrecir ./loop-unroll
 9623193 BE_L1D_FPU_BUBBLE_L1D_DCURECIR
     414 BE_L1D_FPU_BUBBLE_L1D_TLB
     282 BE_L1D_FPU_BUBBLE_L1D_STBUFRECIR
$ pfmon -e be_l1d_fpu_bubble_l1d_fullstbuf,\
    be_l1d_fpu_bubble_l1d_l2bpress,be_l1d_fpu_bubble_l1d_tlb ./loop-unroll
      23 BE_L1D_FPU_BUBBLE_L1D_FULLSTBUF
17220177 BE_L1D_FPU_BUBBLE_L1D_L2BPRESS
     425 BE_L1D_FPU_BUBBLE_L1D_TLB
These events expose micro-architectural details, the full extent of which is only gleaned by reading the processor manuals (a PhD in computer architecture probably helps too!). The store buffers are not an issue here -- the caches are more than able to keep up with our few writes. The TLB is also not involved; we have pretty good TLB coverage thanks to the virtual-linear page table and hardware page-table walker. The two clues are DCURECIR and L2BPRESS. Essentially DCURECIR happens when references have to "re-circulate"; this is a side-effect of the data not being available. The L2BPRESS figure suggests why this is so; this event happens when the L2 cache can not handle any more requests. The L2 cache keeps a queue of outstanding requests; when this queue is full (for example, full of long latency requests to get data from main memory) the L2 cache causes "back-pressure" which stops the L1 cache from issuing new requests. This suggests the program is chewing through a lot of data and not using the cache very effectively, which is exactly what we are doing. Pre-fetching hints can help (but as described in a previous entry on hacking Enigma may not always help), but in this case there probably isn't any spare bandwidth to pre-fetch in because essentially no processing is happening. What does all this mean? I don't know, but playing with performance monitors is fun!

8 August 2007

Matthew Palmer: Just so I'm not accused of being a coward...

Since MJ Ray seems to think that anyone who doesn't vote for him but doesn't tell him why is a coward, I'm going to be up-front about it so I can't be accused of cowardice. Elections are all about everyone making their own decision, for their own reasons, in the hope that the aggregate of those decisions will produce a useful and workable result. (Whether that happens in reality is a whole other issue). The individual's decision is a statement of their opinion, nothing more. Adding confidentiality to the voting process is meant to remove any pressure from the voter to make a decision on any basis other than their own opinion. Complaints about it like this from a candidate is pretty weak:
There seem to be some 30 or 40 voters who really dislike me, but didn't tell me that straight, preferring to be silent then vote me down. Are you cowards, or what?
Given this outburst, I'm hardly surprised that people weren't keen on telling Mark upfront that they weren't going to vote for him. (As a disclaimer, I didn't vote in the SPI election, because I don't have a specific opinion on any of the candidiates' suitability for office on the SPI board.)

7 August 2007

Antti-Juhani Kaijanaho: I am going to rank MJ Ray low from now on

MJ Ray writes:
There seem to be some 30 or 40 voters who really dislike me, but didn’t tell me that straight, preferring to be silent then vote me down. Are you cowards, or what?
This displays such an antipathy against secret ballots (which protect voters from social pressure, not to mention coercion of various degrees of severity) that I now consider MJ Ray an unacceptable candidate in any future election where I am enfranchised. By the way, since the election MJ Ray discusses had no None Of The Above option, there is no way to determine if his low rankings were due to dislike or just that there were better candidates. Added later on the same day:
MJR has responded to this post; his response is linked and reproduced in the comments section. MJR seems to have missed the subtle hint that his cowardice statement is a form of social pressure itself. In fact, he continues and elevates the pressure in his response, implying that if one is afraid of him, one should not vote (presumably, at least not ranking him low). That these statements are given after the vote has closed is a mitigating factor, but it does not absolve him, as the statements are applicable to any future elections where he is a candidate. I m now even more convinced that MJR belongs in the bottom of any ranked vote from me.

6 August 2007

Russell Coker: Housing Prices

The Sydney Morning Herald has an article about pre-fabricated houses from Ikea and suggests that they could solve the housing price problems. The article states that in the UK the pre-fab houses would be more than 25% cheaper than regular houses in the UK. Let’s assume for the sake of discussion that the introduction of Ikea pre-fabricated houses in the Australian market (which they currently don’t plan to do) will reduce house prices by 25%. This won’t solve the problem. According to the Australian Bureau of Statistics in 2006 the median income for males was $600-799 and for females was $250-399. A couple who are both at the high-end of that scale would gross $1200 per week, this would possibly allow them to pay $1600 per month towards a mortgage, if they were in the middle of that scale then they would gross $1000 per week which might allow paying $1000 per month towards a mortgage. With current interest rates that would make any mortgage greater than $200K unreasonably difficult for a couple at the high end of the median income range to repay and a mortgage greater than $120K would be unreasonably difficult for a couple in the middle of the range. The ABS median house prices show that the cheapest places to buy houses in 2005 were Adelaide, Hobart, and Darwin with median prices of $208K, $209K, and $216K respectively. So a couple who are both at the high end of the median income range can only afford to buy a house in the three cheapest cities in Australia (which are also not densly populated). The two largest cities are Sydney and Melbourne which had median house prices of $363K and $300K respectively, they would not be affordable to a couple who are anywhere near the median income - not even with a 25% reduction in price! I believe that people on a median income should be able to afford a median prices house - the majority of Australian families should be able to afford the majority of houses! The above analysis only covers families wanting to purchase a house with two incomes. The “traditional” Australian idea of having the man earn the majority of all the money that is required while his wife looks after the children (which is a bad thing for other reasons) is obviously dead. A man who earns 50% more than the median income will have trouble paying for a house while supporting children if his wife doesn’t also work. It is generally accepted that anyone who doesn’t purchase a house before having children will never own a house. It seems strange that the major political parties talk about wanting to support families and to support “the Aussie battler”, but won’t do anything serious about house prices (which is the most significant issue for such people). Giving a first home owners grant of $7000 (which is less than 3% of the required money). One possible way of alleviating this problem would be to remove Negative Gearing (or at least modifying it to encourage construction rather than buying existing properties). Then the price of properties that are rented out would reflect the rent value instead of being significantly over-priced. Another possibility would be to make public transport more efficient and with a wider scope. The desirability of a location is to a large extent determined by how much time/money/effort is required to get to the centre of the nearest city for work. Making the mass public transport support larger numbers of people (by larger and more frequent trains, trams, and buses), have shorter journeys (by a more frequent service to reduce waiting and express and connecting services where possible), and more routes (by building new train or tram lines every time a new major road is built) would significantly increase the desirability of properties that are further from the centre of cities. That would decrease the market pressure on prices of properties that are a currently 30 minutes or one hour travel from the centre. It would also be a significant benefit if people who currently spend 30 minutes commuting could spend only 20. If public transport was improved and negative gearing was abolished then I expect that there would be increased demand for new houses that are further away from city centres, and that pre-fabricated houses would make a significant difference in the price. But while the majority of the value of a house is contained in the land that it rests on I can’t see that making a difference.

29 July 2007

Steve McIntyre: Life...

I've been busy doing various things, so I've not had a chance to blog much lately. Time for a quick catch-up... We've had a bit of a development panic at work, so I've been working longer hours than normal. The scary thing is (and I've noticed this in the past too), I seem to enjoy the job more when there's real pressure involved. That's not to say I want it to always be stressful, but we've had more fun with a small group of us really concentrating on a single project, working well together. Outside of work, I've been really quite relieved to take a bit of a break from Debian stuff since Debconf has finished. Debconf (as always) was a really good way to be re-enthused about working on Debian, but it has taken me several weeks to get over it physically. I've finally finished upgrading all of my machines at home to Etch. In most cases it was easy, but the final one left was lump, the firewall/mail/web/foo server. I'd chickened out of upgrading it for quite a while due to the sheer number of services it hosts, and also the substantial amount of local config it therefore holds. In the end, things were thankfully mostly painless. The nice thing about doing the upgrade was that finally lots of new software has suddenly become readily available. Amongst other things, I've added iodine and openvpn, and now I'm looking into playing with voice over IP (probably Asterisk). My Nokia E70 has a VOIP client and wifi, so in theory I should be able to use my regular mobile phone as a voip handset on my wireless network at home and just get cheaper outbound calls. Yay! I visited my friend Matthew a couple of weeks ago, and also helped him upgrade/install his network of Debian machines. Unfortunately, his main workstation (dual AMD64 goodness) is still left just running Windows. BIOS/SATA RAID - just say NO! No matter what we did on that machine, we could not make it dual-boot XP and Debian without forcing him to reinstall it all from scratch. :-( The SPI board elections have just finished. Congratulations to the new mugs^H^H^H^Hmembers of the board, and best of luck in doing a good job. And comiserations to the people who lost - I'm sure most of you would have been good, useful board members too. We're having a final Debconf 7 wrapup meeting next weekend in York, where we're hoping to get the final conference report finished. There are a few more T-shirts to get finished and delivered to people and the sponsorship bags to go out, then it's all done for this year. It'll be good to meet up with people again anyway. Oh, and not long now until the big BBQ at my place. I've started getting some supplies in already, and I'm looking forwards to a bunch of geeks coming round to wreck my house again. Or something... *grin* Last but not least - I'm changing ISPs shortly. Noodles and Huggie have provided excellent service for nearly 3 years, but are exiting the business and moving on to other things. So I'll be moving my home ADSL back to UKFSN shortly. Hopefully the disruption will be minimal.

Evan Prodromou: 10 Thermidor CCXV

I'm getting myself ready to take off for Taipei for Wikimania 2007. It's going to be an exciting event -- my first time in Taiwan, too. I've been ambiguous about Wikimania each year, but I seem to keep going. The stated purpose of the conference is to be solely for Wikipedia and other Wikimedia projects, but people seem to keep coming who don't have anything to do with Wikimedia projects, so I figure I might as well go, too. I like finding out what other people are doing with MediaWiki, and I like getting pumped up about Open Content, the Wiki Way, and freedom of information around the world. I hope that eventually more general-purpose wiki conferences like RecentChangesCamp and WikiSym will get more public attention, and participation by Wikimedians, in the future. It would relieve some pressure on Wikimania to be something it doesn't seem to want to be. I'm going to be speaking about Extending wikis with social networking tools. We've done some interesting work with this on Wikitravel Extra, and I plan on using the same technique for other wiki sites in the future. I think it's a powerful way to enhance the unity of consensus knowledge with a multiplicity of varying opinions. I'm also looking forward to the Debian Birthday Party 2007, thrown by local Debianistas. It should be a lot of fun! There's also a Creative Commons conference happening during Wikimania, which will be pretty interesting. Lots to do in Taiwan this year. tags:

WYSIWYG and MediaWiki I've been an advocate of WYSIWYG editing in MediaWiki for 3 years now. So I'm interested to see that the core dev group for FCKeditor have gone the distance to make a real, working WYSIWYG plugin for MediaWiki. The extension has just about everything that I'd want from a WYSIWYG mode for MW:
  • It stores articles as Wikitext. Since in-browser editors generate HTML, plugins often try to store HTML in the wiki database, but this conflicts so much with other parts of the site, it's unworkable.
  • It's implemented as a MediaWiki extension. This makes it possible for MW installations to experiment with the tool and remove it if they don't like it. It also shows that the tool isn't too invasive and should work with other extensions.
  • It supports templates, tables, images, and citations. A lot of the advanced syntax for MediaWiki is supported.
  • It's optional for users. Users can switch to Wikitext any time they're editing a page, and users who don't like WYSIWYG at all can turn it off with a user preference toggle.
I think that this tool has the capability to be the WYSIWYG editor for MediaWiki. The previous effort using Wikiwyg didn't handle most of these points. Jimmy Wales gave an impassioned keynote at Wikimania 2006 about the need for WYSIWYG editing on Wikipedia and elsewhere, and I hope we can use the FCKeditor MediaWiki extension to meet that need. tags:

19 July 2007

MJ Ray: zugschlus becomes asuffield

Marc 'Zugschlus' Haber:
"I think I'm going to stop being responsive to users. They're not worth the blood pressure."
Andrew Suffield:
"But realistically, all that is fairly minor compared to the number of idiot users, idiot developers, kooks, luddites, zealots, managers, politicians, and self-obsessed fools that everybody has to deal with in the free software world."
I think I have a new source of blunt put-downs.

17 July 2007

Marc 'Zugschlus' Haber: From the personal Inbox of the exim4 maintainer

The DDs reading this might know the situation: You are subscribed to a gazillion of mailing lists, and spend quite some time answering questions of people using your packages. That’s fine, service to your users. Occasionally, users take great pains in finding out a personal mail address (for example, by googling, and finding the webmasteridiot mail address on my personal web page) to ask their question in private e-mail. This prevents the answers from showing up in mail archives and deprives the public of a possibility to find a solution to this question themselves in the future. Today, I had this happen to me twice. In the morning, I received a question about exim4 in private e-mail. In German. I investigated the user’s problem (which looked interesting enough), found two minor issues in the Debian exim4 packages and upstream exim behaving not as expected. I fixed the two issues in the package and reported the unexpected behavior of exim to the upstream mailing list. I then reported this - in German - back to the person who asked the question. Time from incoming message to outgoing report was like 80 minutes, most of which I spent with this user’s issue. On my personal time. A short while afterwards, I found out that this person has waited a mere eleven minutes before asking the same question on pkg-exim4-users, this time in English. Had I known before, I would have drafted my answer in English as well, to have the answer publicly visible. By doing this double post, the user has deprived the public of my answer. I’m probably going to stop answering questions asked in private mail. I might draft a boilerplate answer along the lines of “I don’t answer questions asked in private mail unless I am being paid to do so. You might be better off by asking one of the numerous mailing lists that are available on the Internet. I read a lot of them, might see your question, and you might get an answer from me. But otoh, there are many more knowledgeable people on these lists, and you’d want them to see your question as well.” Or I just might hit Delete on questions in my private inbox. The “Delete” approach has become more attractive this afternoon after I pulled the following (anonymized) from my personal Inbox:
Great job breaking exim4 on my system with no easy way to fix it.
$ /etc/init.d/exim4 start
Starting MTA:DEBCONFsomethingDEBCONF found in exim configuration. This
is most probably
caused by you upgrading to exim4 4.67-3 or later without accepting the
suggested conffile changes. Please read
/usr/share/doc/exim4-config/NEWS.Debian.gz for 4.67-2 and 4.67-4
2007-07-17 11:31:57 Exim configuration error in line 25 of
/var/lib/exim4/config.autogenerated.tmp:
  malformed macro definition
Invalid new configfile /var/lib/exim4/config.autogenerated.tmp, not
installing
/var/lib/exim4/config.autogenerated.tmp to
/var/lib/exim4/config.autogenerated
I’ve been running exim4 v4.63 for awhile now and only have you bugger
exim4-config it doesn’t work.
I mean, this user has Sorry, but: How stupid can people be? I think I’m going to stop being responsive to users. They’re not worth the blood pressure.

27 June 2007

Martin F. Krafft: Keysigning in Edinburgh

At DebConf7, I took part in the keysigning party. Since keysigning is not about authenticating government-issued IDs, I took only my Transnational Republic identity card to the event. The reactions I got were multifarious:
  • some (most) people had heard the story from last year and joyfully checked off my name.
  • a number of people challenged me to present a "real" ID, which I refused to do. They then told me they could not sign my key. I asked each to consider what it is they're signing: a statement about their perception of my identity, or a statement about their trust in the governments issuing "official" IDs. Given a second or two, most people would check off my name anyway. What's alarming is that in those cases I had the impression that they simply succumbed to my pressure without thinking about what I actually asked.
  • several people didn't need to see my ID and checked off my name after I answered the question about having checked the hashes (which is also rather pointless).
  • very few people checked off my name without knowing me or questioning the ID.
  • two people smiled and checked the ID, but placed an X or question mark on their sheet.
  • one person refused to inspect my ID and crossed out my name.
All in all, I am satisfied with the results and happy to see many more people questioning the web of trust, or at least the way in which we pretend to secure it. Yet, I have come to the point where I will not take part in keysigning events anymore. The value of the web of trust is overrated, and with every single keysigning party, we just make things worse. It was a good idea to separate folks into groups around well-connected keys to speed up the process, but the groups were still too large to allow for experienced people to pass knowledge to the lesser-experienced ones. Instead of taking part in the event with a critical eye, I saw people present three forms of identification ("does that mean you are really you, or just that you have more money than the other identify fraudsters?") or asking "trick questions" to verify the birthdate written on these documents ("someone ready to deceive an identity who went through the trouble to fake documents will surely have remembered their data"). I shall, in the future, only sign keys of people I already know, and with whom I've interacted before on a level to know bits about their life, personality, and project involvement. I will not require an ID to be presented. If this goes against your idea of the web of trust, please edit your trust database accordingly. My keys are 0x330c4a75 and 0x667c7088 (not yet used). NP: Proto-Kaw: Before Became After

24 June 2007

Julien Valroff: Iceweasel is not Firefox!

capture-virginmega-iceweasel.pngVirginMega.fr is a one of the French music download service which offers MP3 files (without DRM). They previously prevented all the browsers except MS Internet Explorer on MS Windows platform from accessing their website. I (we) used to change the browser id thanks to the FF User Agent Switcher plugin.
It now seems they have changed their mind under the pressure of Linux users. However, it seems there is still a problem for me (us) to access their website as they do not use the engine (Gecko in our case), but the user agent name… No, Iceweasel is not Firefox! Nor is Galeon! But why blocking access to a website which works perfectly with these browsers which share the same engine?

21 June 2007

Edd Dumbill: Jeni Tennison on women in computing

For a long time I've been vexed by the gender bias of computing towards men. It's clear that computing has multiple issues, ranging from its perception to the nature of its society. As organizer of computing conferences, I care about ensuring that participation is meritocratic and inclusive.
As various debates have taken place over blogs in the past on women in computing, I have stayed silent. Not because I don't care, but because I really didn't know what to say. I try to understand, but at the end of the day I'm a man, I tend to misunderstand important points, and I suspect my contributions would come across as at best naïve, and more likely, patronising. So many conversations between men and women on this topic end up in mutual uncomprehension. Better to stay silent than be a fool.
This is why I'm very grateful for Jeni Tennison's analysis of women in computing. It is the most helpful blog post I have read recently on the topic. Perhaps it's because Jeni's British, and we share some of the same cultural assumptions and constraints. But more importantly, it's because her article builds bridges to my experience and understanding.
An argument of femininity Rather than simply appealing to tribes of men and women, Jeni places the discussion in terms of feminine and masculine traits. Like many men, I identify with certain attitudes and preferences more closely allied to my feminine side. By not excluding me, her wording helped me view the points she unfolded in terms that my own experience, however poor, could identify with. I've often found contemporary computing communities to be suffocatingly macho. There's a strong pressure to succeed in terms of attention from the chattering bloggers, privileged inner circles and the capacity for vicious excoriation of those who fall from grace.As I grew up through school and university, I held these sorts of social forms in contempt, as well as occasionally suffering at their hands. Yet now, bafflingly, I find myself under the impression I need to belong and compete in these spheres.Self-efficacy One of Jeni's central points is concern about one's own self-efficacy. This was the real revelation to me. I tend to assume most capable people I meet are aware of their own capability. Jeni turned this on its head for me when she wrote
... look at how Ruby on Rails is marketed. A big play is made of how easy it is. But if a language or framework is easy then people with low self-efficacy can’t win: if they manage to do something with it then they haven’t really achieved very much because anyone can do it; if they don’t manage to do something with it then they’re complete idiots. I’m not saying that we should advertise languages or frameworks as being hard, because obviously that can put people off as well, but a recognition of the barriers that people might face may, in a strange way, make them more approachable.
As Jeni brings her article to a close, it's with some shock and shame that I get the punchline loud and clear: "this isn't about you."It's about empathy, inclusivity and selflessness. Human qualities that are unrestricted to either gender.

19 June 2007

Anthony Towns: Some Random Notes from DebConf

debootstrap’s now team maintained under the debian-installer subversion repository; uploaders are Joey Hess, Frans Pop, Junichi Uekawa and myself. Rumours are Colin Watson might be joining in too. There’s a few changes committed, but an upload hasn’t been made yet – at least last I checked. Frans is applying pressure to bump the version to 1.0, as he seems to think it’s ready for production use. ifupdown’s had a maintainer upload, albeit to experimental – consider it a response to the competitive threat of madduck’s netconf. Changes are pretty minimal – it now uses iproute instead of ifconfig, there’s a “-o” option for ifup that lets you say things like “ifup -o wireless_essid=DebConf7 eth1” instead of having to edit /etc/network/interfaces. There’s a couple of backwards-incompatible changes unfortunately, so some other development’s needed before it will be suitable for unstable. In other red-letter news, the bzr archive for dak is up to date compared to what’s in use on ftp-master. Take advantage while you can! dak continues to stand for “debian-archive-kit”, not “debian-archive-kilt” however.

18 June 2007

Evan Prodromou: 29 Prairial CCXV

I had a great Father's Day weekend with Maj and Amita June. On Friday afternoon, I spent a couple of hours with Patrick Tanguay to visit potential locations for the incipient Montreal coworking space. We saw a great space near the Provigo on Mont Royal and Clark; there's a definite premium for the location, which has to be weighed against the cost of other places. Then Maj and AJ and I drove up to Mont Tremblant National Park. Mont Tremblant is a beautiful park in the Laurentides a few hours north of Montreal. It's best known for the large ski resort in the town of Mont-Tremblant, but the park area is a real draw on its own. We camped in the Lac Monroe area, in the Secteur du Diable (closest to the resort). We spent most of the weekend on the beach at the lake, swimming and wading. Amita June is definitely hitting her stride as a water baby; she wailed like a banshee any time we left the beach. It was great to stretch our camping legs. Quebec is a great place to live if you like camping. There are lots of good national parks (both Quebec and Canadian) and wildlife reserves. The countryside is a beautiful mix of meadows and eastern temperate forest, and the facilities are of a uniform high quality. Also, the parks aren't particularly crowded, even on holiday weekends. Downsides? The bugs. There are blackflies and deerflies that leave gigantic welts and sometimes draw blood. We spend a lot of time slathering on highly-poisonous insect repellent and still get really bit up. The other thing is the short camping season; many campgrounds don't open for camping until June and close up in September. We woke up to rain on Sunday morning, but it cleared pretty quickly, so we were able to leave in the sunshine. We stopped in Mont-Tremblant on the way home yesterday for a nice Father's Day brunch. Amita June obliging fell asleep in the car, and we had a quiet ride home. Yesterday evening, we went to Piknic for a few hours, and had a great time. There was one of those moon-walk bouncy rooms, which Amita loved. What did I get for Father's Day? Well, the camping trip, of course, plus an IOU for a new BBQ. My old table-top one got a leak in its propane valve during the move, so I'm taking that as a signal to upgrade, and Father's Day is a good time for it. tags:

Bad things happen to good people I've been following with interest Biella Coleman's trials and tribulations with the Blue Cross Blue Shield Horizon of New Jersey. Apparently Biella had some dermatological surgery, and the insurance company is not paying up, citing a pre-existing condition. I wonder if they pay out on any dermatological work, since probably all of their customers have skin when they sign up. Biella's extremely resourceful (she doesn't have "healthhacker.org" for nothing) and was able to find a way to put pressure on her insurance company: by filing a complaint with the Department of Insurance. But the most interesting part of the story is that after complaining in her blog, Biella got an email from the Public Relations director of Blue Cross/Blue Shield. Kind of interesting to note which companies are keeping an eye on the blogs, and which aren't. What does it all boil down to? Not much yet, apparently. She's still fighting with the company over whether and how much they'll pay -- although having the PR Director intercede on her behalf has opened some doors. I'm going to continue to follow with interest. tags:

BarCampBlackRockCity I just read a Twitter message from Chris Messina about BarCampEarth, and I'm thinking: I'll probably be in Black Rock City at that point. Does a BarCampBlackRockCity make any sense? And then the other side of my head says: no, it does not. tags:

10 June 2007

Daniel Burrows: Closing bugs just because they're old is not cool

Two bug reports that I wrote were recently closed with the following explanation:

Last message was posted nearly three years ago. Considering abandoned and closing.


Whoops, I thought, I must have missed a request for more information. So I went to the bug page and, nope, the only message on the bug was my initial report.

Let me repeat that: the total sequence of interactions on these bugs was:


  1. I report a bug in 2004
  2. Someone closes it in 2007 because it's "too old".


Now, there are times when it's at least somewhat excusable to close old bugs without verifying that they're fixed (or even knowing that they might not be). When a package has hundreds of bug reports, closing old bugs that can't be reproduced can be a good thing: even if the reports are valid, keeping reports that can't contribute towards a fix around is arguably less useful than cleaning out the bug list so it's usable.

In my case, though, the package in question has only 20 or so bug reports, an easily managed number. Worse, both bugs I reported could be trivially reproduced. One of them was arguably not a bug, but the guy who closed my bugs did not argue that; as far as I can tell, he didn't even look at my bug report.


Notice that I haven't mentioned the maintainer of the package? That's because he didn't close the bug. In fact, the person who closed the bug is not a member of Debian, nor is he in the NM process. Evidently he's just a random user who decided that old bugs offend him, so they should be closed.

So please, everyone, exercise a modicum of common sense when it comes to closing bug reports. This will keep the BTS useful for all of us and keep blood pressures at a reasonable level. :)

25 May 2007

Biella Coleman: Pricefull and Priceless

$ 5000 medical bill (that insurance won’t pay for)
$ 450 water bill in Puerto Rico
$ 150 library fine for one lost book that normally costs under 20 dollars Anxiety and rage from dealing with these ludicrous bills: priceless. Ok seriously I am now dealing with these three things and it has been really really really unpleasant. I sometimes wonder if I was once a bad as* Roman tax collector by the name of Biella Plebius and now, reincarnated as Biella Coleman, I am suffering the karmic consequences of extorting people in the 3rd century A.D. Other times I take a lighter approach to all of this and console myself that if nothing else, I am learning a lot. For example, as I had mentioned awhile back, Blue Cross Blue Shield Horizon of New Jersey is stalling and denying health insurance bills for my mole surgery. Because I had a pre-existing clause in my contract, they are trying to squirrel out of it. However, since I never had a pre-existing issue with moles, I am pretty sure they are required to pony up the cash but getting them to do this has been a Herculean, no Sisyphean task. Since it was clear they were not going to pay if I alone was applying pressure, I was about to file a claim in Special Civil court (the bill is too high for small claims court) but I wanted to see if I had any other options. So hours and hours after diligent web research, I finally found on lawyers.com that I can file a complaint against my health insurance via the Department of Banking and Insurance. I am amazed that NO ONE in the doctor’s office, including those whose only job is to deal with health insurance, had a clue about this option. And even when you go to the Dept of Insurance website it is not totally obvious that you can file a complaint (it is under the “file for assistance” category). But once I got in touch with them, they have been incredibly helpful. Now, my detailed complaint letter is with them, and some other documentation and apparently they have an investigator on the case. I am not sure if this route will be enough pressure to get the job done but at least by the time this is over, I will be in the greater NY area so that I can move to the court option. The take away lesson here is that if you are having any trouble with claims and health insurance, do do do do file a complaint with your state Department of Banking and Insurance. This is a great first option to use.

23 May 2007

Evan Prodromou: 3 Prairial CCXV

I just finished reading Ben Yoskowitz's Top 10 reasons to join a startup, and I feel like I have to say something. As an experienced programmer, I think of a startup as an abusive relationship. Most technology startups I've been in have been run by charismatic sociopaths with no actual management or technology experience. They make wild, ignorant, unfounded promises to employees, investors and potential customers, then get increasingly anxious and unpleasant as their unsupportable predictions of schedule and market share don't come through. Employees end up working 80-hour weeks, typically for low or no pay and worthless stock options that never pay out. Guilty that living the "startup lifestyle" (work from home, come in late, have fun) has caused schedule or feature slips, they push themselves too hard at work, to the detriment of their health and home life. It doesn't help you much get another job later. Most startups don't succeed, which means that you end up with 1, 2 or 3 years of space on your r sum consumed by a made-up company name that no one has ever heard of and whose phone line has been disconnected. If people have heard of the name, they'll associate it with failure ("Oh, yeah, wasn't that the company that spent all that money and went nowhere?"). On top of all that, the tech experience of working in a startup is usually pretty bad. The engineers are typically unexperienced -- just out of school, or close to it -- and they waste a lot of time and effort trying to reinvent the wheel. The idea that you're changing the world encourages this kind of bad engineering. You end up cutting a lot of corners and developing a lot of bad habits that you have to unlearn later on. Schedule pressures make you drop important engineering steps like analysis, design, unit tests, documentation. That is, if you even knew you were supposed to do them in the first place. It takes a lot of experience in this kind of pressure-cooker environment to come out of a startup sane, healthy, and wealthy. The vast majority of people end up with broken relationships, poor mental and physical health, and not much in the way of money to show for their efforts. tags:

Wikiclock in the news So, Niko, Hugh, Mike and Leoben Richardson all blogged about the Wikiclock. As far as I know, no MSM coverage yet, but it should be coming down the pipe any day. I talked to Niko tonight, and he said that he saw Hugh at La ka, and Hugh was updating the wikiclock. They traded off updating all afternoon. Sigh. It's actually quite addictive. tags:

Transit strike We've got a transit strike on in Montreal (see the CBC for deetz). It's a pretty heinous problem -- the maintenance workers are asking for X% pay increases over Y years with blah blah blah pension and fie fo fum and... Whatever. The city is refusing to budge, which makes our mayor, G rald Tremblay, officially a hypocritical idiot. Tremblay has been wagging fingers at provincial, federal and international figures for years about sticking to the Kyoto protocol, but when the hard decisions had to be made, he was willing to shut down Montr al's transit system... in summer... after one of the warmest winters in history. You can blame both sides on this issue, but when it comes down to it the union's job is to get the best deal it can for its workers, and Tremblay's job is to keep the Montreal M tro running. Someone's not doing his job. The city spends millions trying to get commuters out of their cars and into the public transit system. And all that work's out the window, now. Despite the public call for more people to rollerblade to work (riiiiiiiight), traffic is way up and auto use is way up. That means air quality is going to go down, and our city can go from being an environmental leader to an environmental mistake. I'm glad to hear that the Quebec government is stepping in to break up the fight, but I hope it doesn't take too long. tags:

Calling graphic designers: Universal edit button One of the interesting movements to come out of RoCoCoCamp this weekend is the idea of a universal wiki edit button. This would be an icon similar to the RSS radio-wave icon that's become ubiquitous for indicating an RSS feed. The UWEB would symbolize that the current page can be edited. Folks at AboutUs.org have taken the lead on this effort, which could be really interesting. Getting a universally-understood sign for "edit this page" would greatly help with acceptance of the wiki way by the general public. I don't think it'd have to be limited to wikis; any page that could be edited (e.g., on a CMS) could also have the UWEB. I highly encourage skilled graphic designers who want to take a crack at designing the Next Big Icon to look at the UWEB effort and give it a try. tags:

15 May 2007

Benjamin Mako Hill: Ubuntu Community Council

Very quietly, the Ubuntu community reached a major milestone today when we held a Community Council meeting, like it does fortnightly. The only thing different was that the council included five new members -- Mike Basinger, Corey Burger, Matthew East, Jerome S. Gotangco and Daniel Holbach. These members are, with the exception of Holbach, not employed by Canonical and were each confirmed by a vote of the full Ubuntu membership. Before the recent elections, I was the only member who was not a Canonical employee -- and I used to be one. From a technical perspective, the founding Ubuntu team was able to benefit from everything that Debian had built -- a running start if there ever was one. From a community perspective though, we had to start from scratch and had to deal with the very difficult situation that paid labor and closely entangled corporate interests. Working with the rest of the team, I drafted a set of community norms (the Code of Conduct) and governance structures designed to keep both the community and Canonical under control. They seemed like good ideas but, because we didn't have a community yet, only reflected the sensibilities of Mark Shuttleworth, myself, and the rest of the early Ubuntu team. The highest Ubuntu governance board, the Community Council was initially filled with people that were in the room in Oxford when we came up with the idea: myself, Mark, James Troup, and Colin Watson. We decided that the council members should, and would, be approved by a vote of the membership. With no members though, we faced a bit of a bootstrapping problem. Three years later, Ubuntu has a vibrant community with hundreds of enfranchised members who have an up-or-down say on the members of the council itself. When we looked for new potential council members to propose to the community, we tried to pick the most active, most level-headed, and most representative group we could find. It was pleasing to see that only one member of the new CC board works for Canonical; Canonical employees are now outnumbered. It has been interesting to see announcements by Fedora, FreeSpire, OpenSuSE over the last few years proposing systems of more inclusive community governance structures that, perhaps not entirely coincidentally, look a bit like what Ubuntu has built in its attempts to empower users in that sometimes awkward community/company environment. Whatever the reasons, I think it means there's more pressure on us at Ubuntu to keep raising the bar. I see today as a great example of how we've done just that.

Next.

Previous.