robobait: prefuse labels on graphs

Posted in Hacking, robobait, Technology trends at 10:04 pm by ducky

I’ve been working with an open-source visualization library called prefuse for a while. It’s used quite a bit, but mostly for graph visualization. I’m trying to use it for chart visualization. (Why? Because I also want to do graph visualization, and I figured — perhaps wrongly — that it would be better to learn the tao of one library well than two poorly.)

There are almost no examples out in the wild of how to do charts with prefuse. Here, then, is a link to ScatterPlotWithAxisLabels.java. Humans, you probably don’t care about this, this is just to let the robots find it.

It is a variation on the program ScatterPlot, but with axes labelled. You wouldn’t think that would be a big deal, but there are a lot of little things you have to get right, and with few examples, it is hard to know what you have specify and what is the default behaviour.

More on why Linux will win / gnumeric customer support

Posted in Hacking, Technology trends at 10:43 am by ducky

(Ooops, I wrote this a while ago and forgot to post it.)

In my recent post, Linux on the desktop, I mentioned that oocalc and/or gnumeric had let me down six months ago when I was working with an admittedly challenging spreadsheet. (It contained LOTS of obscure fonts from around the world.)

Within three days, I got a posting from one of the maintainers of gnumeric, asking me for more information. This is why Windows is doomed. I can’t imagine getting email from someone at Microsoft asking me for more information about a bug based on a posting in what is a pretty obscure blog.

Unfortunately, my problems were such that I couldn’t write a good bug report on it. (If I could have, I would have done so at the time. I consider writing bug reports one of the obligations of using open-source software.) At the time, there was a long, long delay between whatever-I-did-to-corrupt-the-file and my discovery of the corruption. My bug report would have said something like, “I worked for three hours, saving regularly, and at the end of the three hours, I discovered that my file was corrupt.” Alas, that kind of bug report is probably worse than no bug report, as the best that a triager could do is say WORKSFORME.

I did go back through my notes, and it looks like oocalc was the original offender, and that I switched to gnumeric at least briefly. I didn’t see anything in my notes that gnumeric let me down. However, I don’t see any .gnumeric files in the directory, and I would think that if gnumeric was working smoothly for me, I would have left at least some .gnumeric files around.

Note, though, that I had these troubles in November 2006, which is about 56 dog-months ago. I would be surprised if they had made no progress since I had trouble, and (to be fair!), the spreadsheet that I worked on was a very challenging one.


robobait: how to enable coredump files

Posted in Hacking, robobait, Technology trends at 5:28 pm by ducky

How do you enable core dumps?

ulimit -c unlimited

(This was harder to find than it should have been, so I’m helping the world to find it.)

Keywords: core, coredump, enable, limit, unlimit, allow.


passing phase

Posted in Technology trends at 2:43 pm by ducky

There’s a cartoon today where a teenager is trying to arrange a band practice, and having to make phone call after phone call because he has to keep revising the plans because each new person has some conflict with the plan of the moment.

I read that and thought to myself, “someday that will seem quaint”.  Someday, you’ll pop open your cell phone, tell it who you want to meet with, and it will take care of the arranging.  Each person will get contacted with a list of possible times, and have the option of a hard veto or a soft veto.  The communications infrastructure will take care of doing the negotiating.

In thirty years, college students won’t really understand how you could possibly do it any other way, just like they now don’t fully understand what a pain it was to use a typewriter to fill out a form, or what a mimeograph was.

College students today still remember vaguely that once upon a time, there weren’t TV remote controls, answering machines, VCRs, or cell phones.  In ten years, college students won’t have any concept of what it was like to have to negotiate down to three square meters exactly where you were going to meet, with contingency plans for what to do if the rendezvous failed.


Linux on the desktop

Posted in Technology trends at 9:55 am by ducky

There’s an article that has been talking about 2008 being the year of the Linux desktop. I think that’s too optimistic.

Don’t get me wrong — I love Linux. I have been using it as my primary OS for about five years now, and have been fiddling with it for eight or ten.

It has gotten way, WAY easier to use, particularly in installing applications. Red Hat 7 was a nightmare of dependency hell. The Gentoo on my work machine in about 2003 was much much easier, although you had to have a certain level of confidence to go around compiling things, and it took a long time to compile stuff. Knoppix on my home machine at around the same time certainly was easier to install (especially all the drivers and stuff), but it was hard to find documentation and help for a minority distro. Ubuntu, now Ubuntu ROCKS. It totally kicks.

Linux appss are clearly getting better all the time. Gimp has a learning curve and Photoshop is better, but Gimp is good enough that 99% of the time I don’t bother to reboot into Windows to use Photoshop. I actually like Inkscape a bit better than Illustrator for what I do.


But there are still warts. I can get away with Ubuntu because almost all the business applications work I do is server-based or text-based. OpenOffice and Gnumeric have come a looong way, to the point where I can use them most of the time, but they are just not bulletproof yet. Neither of them worked perfectly with a challenging spreadsheet I made that included lots and lots of text from different languages in UTF8; one or both of them actually corrupted data silently. I’m working on a .doc file in OpenOffice, and it seems to lose formatting sometimes when I save and reopen.

I do think Windows is doomed. I think they just can’t sustain their operating system in the face of so much competition. However, I don’t think it will be next year, or the year after that. I think it will be more like 2012 before we really see Windows slide.

It’s also quite possible that MacOS will be the big winner. With MacOS being based on Unix, it should be far easier to port code from Linux to MacOS than from Linux to Windows. (If it isn’t already, it’s because of tools infrastructure. Comments from people who know more than I are welcome.)

Another interesting possibility is porting from MacOS to Linux. That should be relatively straightforward, and could be really lucrative for Apple — assuming that they can get people to actually pay for the software. It is my understanding that Microsoft makes the bulk of its money on Office.. and Apple has been steadily creating a lot of applications that I hear really good things about. They could really profit from growth in the Linux market.

Update: I got email from one of the maintainers of gnumeric three days after posting my experience (on a relatively obscure blog!), asking for more info about the problems I was having. This is why Windows is doomed.


Mylyn podcast

Posted in Technology trends, University life at 4:17 pm by ducky

Hey! That’s Mik!

I bumped into a screencast of Mik Kersten talking about Mylyn, which is a really cool tool that he developed under my supervisor’s direction, and which he and my supervisor are now productizing. 🙂 Go Mik!


Disintermediation of education

Posted in Technology trends at 3:33 pm by ducky

It’s happening!

Twelve years ago, I started talking about disintermediation of education. Today I read an article in The Economist that talks about a gentleman from India named Krishnan Ganesh who has set up a company to provide Indian tutors to American schoolchildren.



Yay! Stored Communications Act overturned at Appeals level!

Posted in Politics, Random thoughts, Technology trends at 9:23 pm by ducky

Yay!! Wired Magazine tells me that the Sixth U.S. Circuit Court of Appeals in Ohio has overturned the Stored Communications Act!

Basically, the Stored Communications Act made it possible for the government to seize your email records directly from your ISP, without a warrant, and without ever telling you. While I understand that many people are all in favor of violating civil rights of guilty people, I am really really against violating the rights of innocent people, and any time you make it easy to violate the civil rights of guilty people, you pretty much guarantee that some innocent people’s rights will be violated as well.

I thus see this verdict as a Good Thing.  Go EFF!  Go ACLU!


Google sowing seeds of own self-destruction

Posted in Technology trends at 10:34 am by ducky

Robert X. Cringely has an article where he says that Google will ultimately be killed off by employees who have left to start their own company.

While I don’t own any crystal balls, I don’t think Google is as doomed as he does. His reasoning is that the 20% time Googlers have to work on other projects will result in 4,000 new product ideas per year, of which 400 will be good, but only about ten of which can be turned into new products. He says that the people who had the other 390 will be bitter and go start their own companies.

I have to argue with some of the math.

  • Not all 20% projects are for new products. I bet most aren’t, in fact. If I were to start working at Google tomorrow, I would probably try to work on:
    • user-generated thematic maps
    • spam reduction
    • better contact management in Gmail
    • programmer productivity tools
    • a to-do list manager

    80% of the the projects on my list are either internal tools or add-ons to some existing product. It is way, way easier to think of a feature enhancement than a completely new product. I would be really surprised (and disappointed) if they aren’t already working on a to-do list manager, so my list probably has 0% new products.

  • Not everybody will be working alone. If, for example, I started a new to-do list manager, there is no way that I would be able to productize it all myself in 20% time. I would want to recruit others to help me on it. This means that there will be fewer ideas than people.
  • One of Google’s great strengths is its hardware infrastructure. Their 2006 financial statement showed $2.4 billion (yes, Billion with a B) worth of property and equipment assets. That gives the potential defectors a reason to stay: they have a whole lot more toys to play with if they stay (and a real disadvantage if they try to compete directly with Google).
  • I never worked on a 20% project, so I don’t know if they ever get canceled. I suspect that it’s very rare that you’d get told that you had to stop working on it. Thus if you really believed in something, you’d keep working on it as a 20% project because you were sure that if you just added a frobnitz, then the powers that be would see how incredibly cool it was, and would push it. Eventually, something else that was shiny would come along and you’d put aside your wonderful thing just for a bit… and your project would just wither away.
  • Working at Google is awfully pleasant. In addition to the food and stuff, you get to hang out with really nice, really smart people, and other people take care of nuisances like facilities, payroll, tech support, etc. You get to work on fun stuff that you want to do. Why would you ever leave?

While Cringely figures there will be 390 worthwhile projects per year that will get killed, I figure that the number of worthwhile new-product ideas will be less than 20: (3700 coders in FY 2006/ 3 people per team) * (1 new product / 10 projects) * (1 product that is worthwhile / 10 proposed products) = 12 worthwhile products.

In 2006, as near as I can tell, they launched nine new products: GCalendar, GDocuments, GSpreadsheets, GCheckout, SketchUp, GCo-op, and about three versions of existing products for mobile phones.

Only four of the things I mentioned were really new (vs. a port to phones) and came from in-house (vs. acquisitions). GCo-op doesn’t seem all that major to me, so really there were three major new in-house products: GCalendar, GSpreadsheets, and GCheckout. If my estimations are right, then that means that there were nine new products that got orphaned. Probably less than 10% of the people who have orphaned products will leave, so that means less than one project would leave. If that product required Google’s infrastructure, then chances would be even lower that it would escape.

The fact that two of the products that were released in 2006 (SketchUp and GDocuments) came from acquisitions says to me that Google doesn’t have enough new product ideas internally to keep up with the number they can release and support. I don’t know, but I suspect that I was being optimistic in my estimate of new products per 20% project. It’s probably much lower than 10%. This would mean that Google actually has quite a ways to go before they start losing people who are frustrated that their pet project got cancelled.

I expect that there are a non-zero number of people who will quit and start their own companies, but I think that will be because they see an opportunity in an area outside of Google’s business. They will decide to open a restaurant, or consult, or design video games, or set up a charter bus tour company. Some people will step off of the treadmill and raise kids, go into the ministry, or become forest rangers or professional snowboarders. While Google might miss those people, I don’t think that the professional snowboarders will be a threat to Google’s continued existence.


comparative programming linguistics

Posted in Hacking, programmer productivity, Technology trends at 8:26 pm by ducky

I have seen a lot of discussion over the years of the relative strengths (or weaknesses) of specific languages. People talk about why they use this language or that language, and they seem to always talk about specific linguistic constructs of their favored language.

“Mine has generics!” “Mine has macro expansion!” “Mine has closures!”

Sometimes the various devotees will give a nod to the richness of their language’s libraries, or to the robustness of their compiler, but rarely.

Recently, I’ve been working on a hobby project in PHP while reading up on tools like odb, JML, Daikon, Esc/Java2, javaspider, and EmmaECL. The contrast is stark.

PHP is stable enough, and seems to have plenty of libraries, but PHPEclipse quite downrev compared to Eclipse, the debugger doesn’t work at all for me (and I don’t now where to start troubleshooting), and there are essentially no additional tools. I feel like a starving dieter writing reviews for a gourmet food magazine: shackled to PHP and pining for the abundance of the Java tools.

Java’s advantages in the tool arena aren’t accidental.

  • Its static typing and no pointers makes a lot of tools easier to write.
  • Having no pointers makes it easier to teach, so undergraduate classes are now usually taught in Java, which means that the grad students tend to use Java when they research new tools.
  • The Eclipse IDE, being both open source and supported by IBM, makes it a great platform for tool development.

I am just about ready to swear fealty to Java, purely because of the richness of the third-party programming toolset.

« Previous Page« Previous entries « Previous Page · Next Page » Next entries »Next Page »