Presenting SourceJuicer at Dresden OSDevcon
Sunday Oct 25, 2009
I'll be presenting OpenSolaris SourceJuicer at the OSDevcon conference in Dresden this Thursday, October 29th at 3:00p.m. I hope to see you there!
cat /dev/random | grep "For being ignorant to whom it goes I writ at random, very doubtfully"
I'll be presenting OpenSolaris SourceJuicer at the OSDevcon conference in Dresden this Thursday, October 29th at 3:00p.m. I hope to see you there!
Emily Chen and I coauthored a chapter in an O'Reilly book entitled "Beautiful Testing" which was edited by Adam Goucher and Tim Riley.
Successful software depends as much on scrupulous testing as it does on solid architecture or elegant code. Beautiful Testing offers 23 essays from 27 leading testers and developers that illustrate the qualities and techniques that make testing an art. Through personal anecdotes, you'll learn how each of these professionals developed ideas of beauty in testing a wide range of products -- valuable knowledge that you can apply to your own projects.
The electronic version is already available here:
http://oreilly.com/catalog/9780596159825
In the wake of the cash for clunkers scam, the planned obsolescence of a few million televisions, and some misguided efforts to prevent electronic devices from being reused or recycled outside of the U.S., the obvious solution when my digital SLR began acting up should've been to pitch it and get another one. I'd already investigated and discovered that a newer model could be purchased for less than it would cost to send mine in for repair. But since I had nothing to lose, I decided to give it a try. I'm happy to report that this minor repair was a success! One less bit of e-waste.
I intend to put more of this kind of content on opensourcemechanic.com so this blog can grow more focused on Sun/OpenSolaris specific issues.
According to a CNN money article on the Cash for Clunkers program:
If the Cash For Clunkers program had instead been directed to encourage companies and individuals to junk their Wintel PCs and replace them with Sun Ray thin clients, there is a potential for a 97.5% decrease in energy consumption. So why isn't there a Cash for Clunkers program for desktop personal computers?
I'll be moderating a BOF at OSCON 2009 in San Jose on SourceJuicer discussing other cloud computing collaborative opensource development environments. For further information, see my post on the SourceJuicer blog.
This is a big day for technophiles as well as technologically nostalgic. An analog TV broadcast standard which has maintained compatibility for 68 years will end today. A B&W TV designed around the 1941 NTSC standard would have been able to display some broadcasts on channels 2-13 yesterday. A color TV designed around the 1953 standard would have displayed some broadcasts in color yesterday. For anyone who appreciates the engineering required to progress technology while maintaining backwards compatibility, the story of the NTSC compatible color standard is interesting.
...
Some of the disadvantages are unknown, but here are a few problems I forsee:
Some of the strongest criticisms of Django come from users of PHP or other frameworks which allow you to do almost anything in the templates. This can encourage developers to put business logic into the presentation layer which eventually results in an unmaintainable mess. It's the web2.0 equivalent of a GOTO statement.
But on several occasions while working on SourceJuicer it really would've been handy to be able to store or increment variables or directly access a slightly complicated query in the template. For example, I was attempting to pass a list indexed by an existing column (JobID) into a template when I noticed that there was no way to convert the JobID string to a numeric within the template. Then Luis reminded me that if it seems like you're trying to do too much in the template, you're probably trying to do too much in the template. So I went back to the model and saw that I could add the 'slightly complicated' query to an access method in my model. Django does allow you to access methods from the template but it doesn't allow you to pass parameters to these methods. This seems a reasonable balance between strictness and ease of use. It simplified the code while maintaining good separation between business logic and presentation.
A middle school telementor student is interested in pursuing a career in computer science. Her teacher asked the class to clip local job openings in their career choice. Since this isn't a terribly prosperous part of the U.S. midwest, I was surprised to hear that there are a number job opening. But the student learned that inexperienced but highly educated candidates were being brushed aside in favor of those with years of experience. How can I encourage a bright middle school student who intends to pursue an IT career, without being dishonest? I could mention the dearth of IT jobs in the midwest at the beginning of my career and the subsequent boom. I hope career counselors no longer channel students away from their talents towards the "hot job du Jour." My 101 computer science class began with a standing room only crowd, but by the end of the semester it had thinned considerably. Our teacher prided himself on his dropout rate!
I do see enormous untapped potential in IT. For example:
These are just a few ideas off the top of my head, but imagine my surprise when, to illustrate data mining, I found indeed.com's jobsite trawler which showed that jobs in Solaris are on the increase.
| solaris, aix, hp-ux, windows vista Job Trends | solaris jobs - aix jobs - hp-ux jobs - windows vista jobs |
We just returned from 9 days in Spain. We traveled from Madrid to southern Andalusia without noticing coal power plants, white skies or other environmental ugliness you'd see in many other parts of the world. We did see lots of wind turbines including one huge wind turbine blade on a semi-truck ready to be installed somewhere.
We saw these windmills towering over the plains of La Mancha 500 years after Cervantes described these or similar 'giants' in Don Quixote:
We saw many solar farms. It was really obvious that Spain is a leader in alternative energy technology. Spain already produces more than 16 Gigawatts of wind power and about 1/3rd of its electricity comes from renewable energy sources.
We stayed at cortijoloslobos, a horse farm in a beautiful unspoiled part of Andalusia. The white roof, thick walls and other design features help keep the place cool in the summer. The owners took it upon themselves to care for and try to find homes for animals left homeless during this recession.
We saw Olive groves and other farms, well suited to the dry Mediterranean climate.
We drove a Citroen diesel minivan which sipped little more than 1 tank of fuel in the several hundred mile journey from Madrid to Andalucia and back. Why don't Ford and G.M. release their small diesel engine powered cars in the U.S.? We saw more of the moorish architecture with deep set (often star shaped) ceiling windows. When my wife saw these in Istanbul, she noticed that they were very similar to the Solatube we had installed in our Wisconsin kitchen in the late 1990s, allowing in light without heat.
The SourceJuicer team has announced that SourceJuicer 1.0 is now available!. SourceJuicer is a web service which facilitates the building and review of OpenSolaris packages. Its goal is to pave the path between building an OpenSolaris package, (which may only work on your laptop) and publishing high quality packages into the OpenSolaris /contrib repository. Here are some of my favorite features:
pfexec pkg set-authority -O http://jucr.opensolaris.org/pending jucr-pending
pfexec pkg refresh
pfexec pkg install {foo}
This has been quite an interesting project and I've really enjoyed working with this team on this technology. Because I was focused on authentication, authorization and the (not yet released) bug management components, I didn't get to use the full system until very recently and I found that it really did remove some barriers to building and testing the 'dillo' browser and Alvaro's 'cherokee' web server.
We're looking forward to hearing feedback as more OpenSolaris contributors make use of SourceJuicer. You can find out more about the progress of sourcejuicer at The SourceJuicer Blog
NumptyPhysics is a fun opensource "Physics puzzle" game which uses the same Box2d physics engine as the award winning CrayonPhysics. As soon as I saw it, I really wanted to port it to OpenSolaris. One of my first computer programs (for the Commodore 64) simulated gravitational attraction between sprites and allowed the user to send sprites into orbit around each other. Cumulative floating point errors in my old BASIC program eventually caused orbiting objects to careen off the screen. My Solaris port of Numptyphysics still needs work and cleanup, buy it's a step in the right direction. Right now top priority is getting SourceJuicer out the door so there is a more efficient path between NumptyPhysics runs from my build environment on my laptop to, NumptyPhysics is available as a stable package for the OpenSolaris community.
In recent weeks I've been busy working on the bug management, user authorization and authentication components of the SourceJuicer project. SourceJuicer is a Django based web service which will allow developers to build OpenSolaris packages in a standard build environment and put them on a clearly paved path to review and publication in the OpenSolaris contrib repository.
Christian has a more detailed explanation on the SourceJuicer Blog. The technology behind it is really interesting, it makes good use of ZFS as well as Solaris Containers (a.k.a. zones.) Watch the SourceJuicer blog for more detail as the project unfolds.
We had a bad experience with a pickpocket during a Dublin St. Patrick's festival a few years ago. So in recent years we've decided to celebrate in some of the villages of county Meath. Dublin events can be O.K. for families but the parade isn't terribly impressive for anyone less than 12 feet tall, unless you bring a ladder taller than everyone else's. For anyone with young children I highly recommend smaller parades in places such as Skerries, Trim, Baltimore Md. and Denver (free beer and gloriously warm weather during the one St. Pat's day I was in Denver!)
This Slashdot article points to an IT Manager survey indicating that Linux adoption is growing during these difficult economic times. It does make sense that companies and governments which normally spent freely on proprietary software might begin to consider unorthodox, but much more cost effective alternatives now. What does this mean for other opensource operating systems such as OpenSolaris? I think the Google trends graph says it better than I could. Anyone looking for the root cause of this economic mess only needn't bother about property bubbles, dodgy investment shenanigans or massive increases in debt. Just look at the trend line of the third parameter in this Google graph ;-)
P.S.: I compared 'opensolaris' with 'economic downturn' instead of 'recession' because the magnitude of recession searches is so much larger that it pushes opensolaris towards the bottom of this graph. A similar scale issue makes it difficult to see that opensolaris seems to be gaining market share against Windows, Solaris, Linux and some of the most popular proprietary Linux distributions.
Google trends is an amazing tool, but it can't answer all psychohistory questions. Trends for some topics such as 'great depression' and 'great gatsby' are common topics in standardized U.S. school curriculum and therefore searches for these closely follow the school calendar. You'd think with so many students learning about Gatsby's 1920s hedonism and its unravelling during the 'Great Depression', it should be impossible to repeat this history.
The times I spend diagnosing, testing, analyzing and documenting system problems are interesting from a scientific discovery/mystery viewpoint, but there is something especially enjoyable about creating new code (of course without any mysteries or bugs for someone else to analyze ;-) During these long winter nights, my wife knits or sews childrens things and patchwork quilts while I take apart a broken toy or patch together some gizmo which could easily replaced for a pittance. Not long ago, my wife bought a toy telescope for 1 euro at a car boot sale. Some toy telescopes have surprisingly good optics in the objective (front) lens and terribly bad eyepieces designed as marketing gimmicks to pretend that they can pull 625 power out of a 60mm objective (defying the laws of physics in this universe) This along with the flimsy mounts on toy telescopes makes them all but useless for learning to appreciate astronomy. I was about 12 when my parents gave me a Skillcraft 2" Newtonian telescope. 2" reflectors with 1" secondary mirrors are diffraction limited even if you use a shaving mirror for the primary! But shortly after Christmas 1976, the mount broke and I had a useless tube. My grandpa was a carpenter, toolmaker and metal worker so he fixed it and with rivets and brass he made the mount look like new. (as though repaired by the robots in Metropolis.)
The optics of that telescope weren't great but I did manage to see the rings of saturn by using a paper Dixie[tm] cup as an adapter between this scope's eyepiece and one of my dad's good camera lenses. Because memory of a great depression lasted several generations, my grandpa spent time fixing this $20 toy and my parents hung onto that toy until 2008. I told them that the optics were never good and 20 years of corrosion of the tiny aluminized mirror wouldn't have improved anything so I recommended that they throw out the scope. But I asked if they could send me grandpa's mount. So 9 years after he died, grandpa gave his great grandkids a Christmas gift. I attached grandpa's sturdy mount to the telescope from the car boot sale. Added a 0.965 to T-Ring and T-Ring to Pentax K adapter to my Pentax *ist DL Digital SLR and, it's almost a respectable 700mm lens:
Now I only need to wait a couple of years for Saturn to tilt at a nicer angle and my kids will have no problem seeing Saturn through this telescope.
A few nights ago I encountered a problem which required me to find the host name of my parent zone. Solaris Zones (a.k.a. Solaris Containers) intentionally isolate zones from each other and from the root hardware which hosts the zone. But if the zones and the host are on the same network, there is a way. All zones which are hosted by a particular global zone will typically share the physical hardware address as the global zone. So:
ping the broadcast address of your local network.
arp -a | grep {the hostname of your zone}
Now arp -a | grep {the physical address you found}
This gives the list of the global zone and all of the hosted zones with the same physical network address.
"This generation has altered the composition of the atmosphere on a global scale through radioactive materials and a steady increase in carbon dioxide from the burning of fossil fuels."
--Lyndon B. Johnson 1965
"A new smart grid ... will save us money, protect our power sources from blackout or attack, and deliver clean, alternative forms of energy to every corner of our nation."
--Barack Obama, January 2009
"The most widely beneficial stimulus investment, however, could be for the government to subsidize the improvement of the electrical infrastructure of the U.S. The grassroots adoption of solar, wind, geothermal and other clean power is stifled by the grid’s inefficiency at handling highly variable inputs and transmitting power over long distances. An investment in a 21st-century grid would encourage energy reform without particularly favoring any specific production technology."
--Scientific American How Obama can boost the economy by investing in science.
"Over medium to long distances, IT demand load migration is far more efficient than electrical supply migration. This becomes significant when some locales can produce energy at a lower carbon or monetary cost. The global sale of computational resources is more feasible than the global sale of electric generation. Demand-centric computational resource trading can replace or complement carbon trading and contribute to a more effiient use of both IT and electrical grid resources."
--Me July 2008
Good luck Mr. President there are plenty of unexplored possibilities for making a more efficient, honest, balanced and free global economy.
I recently stumbled upon this pretty good Java circuit simulator applet and noticed that one of the simulated devices was a memristor. I'd never heard of such a component so I googled it and found that some smart people working at HP labs created what was up until recently, a theoretical component. This is really cool. Can you imagine if we'd stumbled along in an alternate universe where capacitors, resistors and transistors or inductors hadn't been discovered and someone suddenly said, "I've invented a resistor!" Maybe the invention of the memristor isn't quite this significant, but it is significant. Neural Networks for example can be implemented much more efficiently using memristor circuitry than with transistor logic. Also, most existing computer DRAM relies on capacitance. A bit is set by charging a tiny capacitor which loses its charge almost instantly so complicated circuitry and energy is dedicated to refreshing each bit thousands of times per second. (When our physics professor told us how this worked, we thought he was pulling our leg, that can't possibly work!) Until memristors can be purchased at your local RadioShack, you can experiment with them with the java circuit emulation applet.
In these times when it's too easy to report on grim economic news, I'm going to try to focus more on underreported good news. I was more bearish than the average bull in 2000 and 2005, Now I'm more bullish than the average bear. I have quite a backlog of obscure but very good news in medical research, education, arts, craftsmanship, astronomy, epidemiology and other technology I'd like to write about.
A while ago I kludged up this ugly, ugly hack which demonstrates a destructive dtrace script which snapshots the filesystem whenever a destructive command is run (e.g. /usr/bin/rm). It isn't useful except maybe for demos, but the idea could be used for something else. For example, you could snapshot every keystroke on Monday mornings or after a particularly happy New Years Eve especially when transitioning to or from years containing a leap day or leap second...1
#!/usr/sbin/dtrace -s
#pragma D option quiet
#pragma D option destructive
BEGIN
{
self->interested =0;
}
proc:::exec-success
/(execname =="rm") && (self->interested == 0) && (dirname(curpsinfo->pr_psargs) != ".")/
{
self->interested = 1 ;
printf("Someone is trying to delete %s\n",dirname(curpsinfo->pr_psargs +3));
printf("%s %d",dirname(curpsinfo->pr_psargs+3),timestamp);
printf("Snapshotting %s %d",dirname(curpsinfo->pr_psargs+3),timestamp);
system("/usr/sbin/zfs snapshot rpool%s@%d",dirname(curpsinfo->pr_psargs+3),timestamp);
stop();
system("prun %d", pid);
}
1Sun's JDS 2 Linux distribution was based on a Linux 2.4 kernel and the following version (JDS3 beta) was to be based on a 2.6.19 kernel before Sun decided to drop the Linux kernel and focus on products based around the Solaris kernel. AFAIK the leap second bug appeared in the 2.6.22 Linux kernel. The 5000 year old time keeper at Newgrange also failed to work properly because of a bug caused by the presence of clouds between itself and the sun.
P.S. Don't ask me why we seem to get reoccurring bugs every decade, millennium, leap year and leap-second in what should have been a few score lines of date related code some of which could have been implemented a couple of thousand years ago Maybe Ptolomy's code was refined over a few hundred years without fear of patent reprisals or maybe he just spent more money on development and QA.
A few days ago I was reminded of one of the differences between Solaris and GNU/Linux which caused a few headaches for Sun's desktop team back in the days of GNOME 1.2. The problem is that while you can printf("%s",NULL); in most Linux distributions, doing the same in Solaris caused the executable to exit and generate a core. There were some debates about the correctness of each approach. Should the program crash to tell the developer that he shouldn't be trying to print a NULL string (the Solaris behavior) or should the program continue happily along printing a NULL pointer? I can see some advantages in both approaches I suspect this and other "Linuxisms" will end up in OpenSolaris simply because they make it more convenient for average coders to throw together a quick and dirty program or for someone to compile and run the thousands of source packages out there which (perhaps unknowingly) take advantage of this Linuxism.
But thinking about this reminded me of a similar "bug/feature" in my very first computer, the Commodore 64 back in 1982 when 64K seemed an unbelievably excessive amount of memory for a computer which cost only $595. The built in blitter and 4 channel 16 bit synthesizer made it a really fun computer for me to write simulations and sound generator programs for my father's physical science class. If you look closely at many of the programs which were published for Compute! and other magazines of the time, you might notice something strange. When a character was read from the user (e.g. via get (a$) ), the asc(a$) function would convert the character to its numeric ASCII value. But in the code you would usually see something like this:
n = asc(a$+chr$(0))
What is going on here? There was a bug/feature in Commodore 64 BASIC V2 which raised an "Illegal quantity error." whenever a null string was passed to the asc() function. The Commodore 64's 6510 processor had the unusual ability of being able to peek the ROM and write to shadow RAM which shared the same address space and then disable ROM so that BASIC was running from RAM. This allowed modifications to the BASIC interpreter. Jim Butterfield, a Commodore expert and author once demonstrated a one byte poke which fixed this asc("") bug. Ever since I learned of this simple fix, I wondered why so many BASIC's had this same one byte bug. The Commodore 64, Vic-20, Atari, Amiga, and at least some versions of the Apple and IBM PC Basic's shared this same bug! What was going on? Well, as it happens, a little company known as Microsoft wrote versions of BASIC for nearly all 8 bit computers of the 1980s and 1990s. Was this one byte bug overlooked by Microsoft and propagated to all Microsoft inspired codebases or were Microsoft's developers following the same purist philosophy as Solaris developers who assert that "good coders shouldn't pass NULL into string functions?" Either way, when such a company grows to what it has now become, it can decide that this one byte bug is actually a feature.
We often teased the shyest member of my family by reminding her of the bad joke about the kid who didn't speak a word until he was eating breakfast on his 7th birthday when he said, "My porridge is cold!" When asked why he never spoke before, he said, "Up until now everything has been alright." This is how I felt about the silence which followed my work on a project which installed and provided support for over 7000 opensource JDS desktops at a bank.1 We called the customer occasionally to see if everything was O.K. We helped them through one upgrade which was necessary because the Linux kernel needed to be upgraded to support modern hardware but didn't have a stable ABI so the entire application stack also had to be upgraded. After the upgrade, one of our customers gave us some upgrades/minute statistics that were well beyond what is possible given network bandwidth limitations so I'll just say that the upgrade went well.
Shortly after the upgrade, we helped solve a peculiar focus bug whose root causes were spread across gtk, Java, Firefox and Star/OpenOffice. But overall things were very quiet. Sun was also quiet about this deployment, first of all because we hadn't yet finalized the disclosure agreement and later because Sun decided to drop our Linux-based desktop product and focus on OpenSolaris. So between our "are you still there?" pings to the customer's 2 person technical support staff, I was left wondering if no news is good news?
Then when I gave my presentation at the Irish Opensource Technology Conference, I noticed that two knowledgeable IT managers from this bank were giving presentations on their opensource desktop (a.k.a. JDS) roll out. I finally had the opportunity to be the "fly on the wall" and hear how things really went. I don't have links to their presentations, but these gentlemen said that the project was a success, that the deployment saved money and IT support costs compared to traditional Microsoft Windows based desktop solutions. They said the project completed ahead of schedule and under budget and that they were telling other banks the secrets of their success. I don't know if the other banks were paying attention to the potential savings in deploying opensource alternatives back when easy money was still flowing, but I would think they should take a hard look at such cost-effective alternatives now. In any case, it seems likely that the number of successful cost-saving "invisible" opensource deployments is understated.
"The art and science of interface design depends largely on making the transaction with the computer as transparent as possible in order to minimize the burden on the user" -- S. Joy Mountford
I'm working on a project which makes use of the Django framework. Django is a web framework which abstracts the back-end database away from the python object and view models which use that database. Since (aside for a small netbean project) I've stayed away from web development for several years, I seem to have missed a lot of noise around ASP, Perl and PHP web development. I hope I haven't missed much. From the looks of the internet, It wouldn't surprise me if only half the web-developers out there only understand half of what they know about web development. There is more than a grain of truth in the saying "If cities were built like web sites, the first woodpecker would destroy civilization".
I'm finding Django 1.0 somewhat challenging, but I'm also finding that I can pull off usable web pages and forms without too much trouble. The django documentation is well above average (especially djangobook.com), and the IRC and mailing list communities are active and helpful. I did run into a few gotchas. Here are some of them:
[Read More]
Barack Obama's team seems more technologically savvy than his predecessor. In the mid 1990s when George W. Bush was governor of Texas, I was surprised to learn that he didn't have a public email address. At the same time, George W. Bush's democratic Lieutenant Governor Bob Bollock did have a public email address. Obama's recently launched change.gov website provides a more scalable framework for public input than any past president has ever deployed. I hope he and his staff are able to manage it well. I submitted some of these suggestions to change.gov:
Against the better judgment of hundreds of economists as well as the vast majority of the voting public (those annoying constituents), Congress approved Henry Paulson's bailout plan. Now Paulson's appointed "bailout czar", Neel Kashkari has $800 billion tax dollars burning a hole in his pocket and he is trying to figure out how to spend it. My wife was a loan officer and defacto credit counselor way back in the late 1900s when most banks and credit unions still carefully considered credit ratings, debt/income and debt/asset ratios. She often helped people understand how to prioritize their spending. Sometimes little changes such as forgoing the daily cappuccino were enough to lift people out of debt and improve their credit rating. Our bailout czar's job is slightly different. In order to efficiently bail out failing financial institutions, he must invest taxpayer's money on assets that no one in their right mind would buy with their own hard-earned money. I personally don't think this is a good plan. At best it is a temporary patch to a deflating asset bubble. If the bailout czar really wishes to use tax money to improve long term American economic growth and competitiveness, he should consider the following options for spending 800 billion dollars:
I'm confident that any of the items on my shopping list would give U.S. taxpayers more bang for their buck than the current plan to reinflate the property bubble, an asset bubble which caused a massive misallocation of financial and intellectual resources and actually works against U.S. global competitiveness.
Incidentally, $800 billion is a lot of money, but it isn't an infinite amount. Unfortunately it isn't enough for the following:
Sad, school has only been in session a month and already 68 computers (enough for two or three classrooms) are gone... Educational PCs tend to be underutilized for a couple of years and just when teachers begin to understand how to integrate them into their curriculum, some local politician will push an agenda "IF only we used PC instead of Mac, Windows 98 instead of Windows 95, Apple IIe, Apple instead of Atari... then Johnny would be able to read!" I've heard of brand new computers sit in boxes for two years, becoming completely obsolete before they are ever used. It's possible that the excellent Apple audio/video capabilities which made these computers so attractive to thieves hadn't been used in the classroom yet. Some of these computers were purchased under a grant for the purposes of exam administration. I happen to know that the deployment/upgrade system was really well designed (by my brother ;-) and similar to a system I helped put together for an Irish bank. But Sun Rays might have been better for some of these purpose and would free up the Apples for the multimedia functions they excel at. Sun Rays have a much longer "shelf-life" than a typical P.C. or Mac. The first ones made in the late 1990s would be able to administer exams and display XP, Vista, Linux, Solaris applications just as well as the brand new ones. Upgrades would be system-wide and nearly instantaneous. Bad or stolen hardware could be swapped out by the teacher and ready to use in less than 5 minutes. The fact that Sun Rays are useless without a server should make them less likely to be stolen... [Read More]
I can almost understand why governments are trying to force us to use CFs. CFs are functionally equivalent to incandescent for MOST applications while using 1/5th to 1/3rd the wattage. But if we can overlook edge cases, why stop with light bulbs? Sun Rays are functionally equivalent to desktop PCs for MOST applications while using only 1/40th the electrical power. Replacing PCs with Sun Rays would saves between 8 and 13 times as much as moving from incandescents to CFs. So why not ban desktop PCs?
[Read More]
While discussing the U.S. government's relatively harmless economic meddling (Cheese subsidies) during the Reagan/GHW Bush years, a friend suggested that the government should buy computer chips and bury them in order to prop up the falling domestic chip market. Since then, inexpensive imported chips led to the personal PC market, the cell phone market, the video game market, the associated software markets and the internet economy. None of this might have happened if the government had imposed tariffs or burned chips in order to prop up that part of the economy. A few years later, this Bush administration tried and failed to meddle with WTO-defying steel tariffs which theoretically might have saved a handful of steelworker jobs while irritating the US's staunchest allies and endangering hundreds of thousands of domestic auto industry jobs.
[Read More]
I took my family out to the Donegal this weekend. By coincidence my Pentax digital camera "rolled over" from IMGP9999.PEF to IMGP0001.PEF just before I took this picture:
So now I must move all new files to a new folder or change the names before I rsync to my photo backup space to avoid overwriting old files. Whoever decided 10,000 photos was a sufficient limit for a digital SLR never had kids or lived in such a beautiful country. I'm still amazed at how many modern standards (e.g. ISO-9660, DCIM, DICOM) still bow to the 8.3 limitations of Microsoft's old FAT filesystem. As far as I know, DOS and RT-11 were the only popular operating systems made after 1970 with such a SHRTFLNM.LMT. Solaris, AmigaDOS, VMS, Gem, Geos, even the Vic-20 and Commodore 64 filenames exceeded this limit! Yes, it's possible to work around this limit with CLVRABRV.NMS or DIRECTRY STRUCTRS, but it seems that of all of the Digital camera manufacturers, only Casio, HP and Kodak have reasonably long term naming conventions, but none of them is as forward thinking as ZFS would allow them to be.
We really enjoyed our stay at the friendly family run Ocean Spray Bed and Breakfast on Muckross head, just east of the Slieve League cliffs in Donegal. The fact that there were no nearby restaurants or other late season tourists contributed to that "edge of the earth" feel of Donegal.
A couple of weekends ago we saw more than 20 kites and kitesurfers packed onto a stretch of beach on Bull island, a short distance north of Sun Ireland. I don't know how they avoid getting their kites tangled. Twenty years of windsurfing has biased me towards what seems a gentler, safer, easier sport, especially with the big old floaty boards and the Aquaglide Multisport inflatable sailboat windsurfer I picked up last summer:

The sail is tiny and it isn't terribly fast, but we get plenty of wind here and it goes upwind about as well as a small catamaran. I like that it folds down into something the size of a golf bag that I can carry home.
Note: The sky looks threatening in this photo and the next day a rare lightning storm and heavy rain flooded this part of Ireland, but this was about the nearest thing we had to summer in 2008.
The EC's Study on the Economic impact of open source software on innovation and the competitiveness of the Information and Communication Technologies (ICT) sector in the EU is an interesting document. I was fortunate to attend a presentation by one of the authors at an OpenIreland event a couple of years ago. The above StarCalc graph uses corporate FOSS contribution numbers from this document. A picture is worth 1000 words, isn't it? This study was published in November 2006, the same month Java was GPL'd so I doubt the Java codebase was included in these calculations. The open sourcing of Solaris was also in early stages. Add these and the MySQL code and it wouldn't surprise me if more than 1/2 of the corporate contributed OpenSource code is from a division of Sun Microsystems. I know we can do better. But quite a few big FOSS consumers (e.g. those selling beautifully branded FreeBSD or web services) are notably absent from the top 10 corporate contributor list. What percentage of corporate FOSS contribution would quench some of the hottest alternate kernel fanboy flames? 60%, 75%? Is it sufficient to contribute to the whole software ecosystem Joe sixpack thinks of as "Linux" or do you have to commit directly to Linus's kernel? What does it take to be cool? Are we there yet?