Nerdishness

EU Study on OSS

Via the dot, the EU has released a study on Open Source software. The parts I found interesting was the survey of OSS programmers. Debian is the most popular OS, most programmers know C and C++, almost as many people know Java as Perl.

The question on OSS philosophy is lame - either OSS is a "different way of living" than Free Software, it's pretty much the same, or you don't care. The first option makes it sound like you've joined a cult, but the second option is, to me as a programmer, simply incorrect. Releasing software as open source is objectively different from releasing it as free. Free means anyone can use your software, but only you can make changes to it and redistribute it. Open means anyone can modify it and redistribute it, even if you choose a license with restrictions (e.g. GPL). It seems to me even an anti-open source programmer would agree that open and free are different things, but they wouldn't pick the first answer because it sounds religious.

MT Plugins and Brad Choate

Tagged:  

One of the advantages of using a popular, established package like Movable Type is the support available. Brad Choate seems to be an alpha MT guru, and has written a number of useful plugins, including KeyValues, which is a hack for storing metadata in extra fields of MT entries as well as category, and blog descriptions. This seems like an easy way for me to store my per-category link lists, so I've been using it. I ran into a problem, posted a question in Brad's comments section, and less than an hour after sending him a copy of my offending code he emailed me updated code which fixed my problem. Thanks, Brad!

Brad maintains that although Movable Type is not intended as a general purpose CMS, it can be coaxed to do a lot more than its authors intended. MT does have the core of a good CMS inside it, but its code is rather locked into its special-purpose application as blogging software. It's template management limits pages to be indexes or archives based on categories or date, and its tag library is similarly restricted. These can be creatively abused to do more than they were intended, but it would be nice if the authors rearchitected it a bit to allow the core to be more easily repurposed for non-blog uses.

The really useful thing about MT is it's got a great model for baking web pages. There are a baskillion web page frying systems whose templates are processed at runtime, ASP, JSP, PHP, et. al. Even more down-to-earth systems like Turbine fry their pages, although Velocity does offer baking functionality with DVSL.

MT bakes its pages when the content or the template changes, and whats more, offers a plugin architecture that makes it easy to extend what happens at bake-time. Since it puts out flat files, pages which really need to be fried, because they have elements which change at view-time (e.g. user personalization), can be produced with whatever frying template code you need.

If the MT authors refactored their code to move the blogging-specific features outside the core of MT, the core could become a very strong web application framework. Of course it would help if they open sourced that bit (they could keep the blog-specific MT stuff under the current semi-open license), but that's a different story.

Speaking in Tongues

Russel Beattie is another American Java geek living abroad, he's in Madrid. I'm enjoying reading about his experiences and viewpoints, he's a guy I can relate to. A few days back he has a post about learning foreign languages.

how many ridiculous things do you always hear about learning another language? How there's going to be a magical point where you just suddenly understand! How you'll one day cross this line and suddenly, you're dreaming in the other language! How great! All you have to do is spend an hour a day, five days a week for 9 months listening to a droning teacher babble on in the other language, a few vocabulary drills and some grammer homework and POOF! You're chattin' like a native! Or, I love this one, the only REAL way to learn another language is to live in another country so you're surrounded by it. Then you'll just "pick it up" quickly because it's everywhere. You'll be "immersed" in the language, it'll be so easy!

Take it from a once-monoglot who just spent the last two years learning Spanish that all these things you hear about learning other languages are all just complete lies. There's nothing magical about learning another language, believe me. It's hard-ass work.

True words, learning a language can't be done by osmosis. A friend of mine who has lived in China for many years advised me that ignoring the language is the worst thing you can do - it only develops a habit of regarding the language as meaningless background noise.

I'm a lazy, lazy man, I haven't worked nearly as hard as Russell at learning Turkish, and certainly not as hard as my mother-in-law would like ("Evet, cok tembelim, Anne"). I bought Teach Yourself Turkish, and took a course during my first three months here. Self study books aren't very useful for lazy people, but the course was crucial. I didn't come out of it speaking all that much, but I got the fundamental grammar. Since the course I've been learning very incrementally from the environment around me.

Although learning by osmosis is bullshit, being in a country where they speak the language is invaluable for the lazy student. The more contact you have with people who can't speak your own language, the better, it forces you to work. I'm sure very few people who live on military bases or work or study almost exclusively with English speakers learn to speak the local language worth a damn. I learn the most when I'm with my in-laws, who don't speak a word of English. With my wife I speak almost only English (very, very bad!)

But it still takes work to progress. You have to actively listen and ask questions to keep moving. I tend to notice certain words cropping up a lot, and realize they're something I really ought to know - those are the words that stick, whereas drilling on vocabulary tends to yield only a few words that I'll actually retain. But it's all necessary.

I've been here almost a year and a half now, and my Turkish is pretty meager. I usually can't follow conversations between Turks, although sometimes a topic comes up and I know, I understand, whoohoo! I can communicate though, which feels good. I have friends who have studied English, but with whom Turkish is easier, so that's got to be some kind of milestone.

If I could do anything differently, I would have gotten a tutor a long time ago. The classes got to be too much for me - the second course was packed into a month, and included students who were more advanced than me, so I couldn't follow most of the discussion and I ended up studying, testing, and forgetting most of the material. Bleh. A tutor would have helped a lot at that point.

Another bit of advice, this one also from my China-dwelling friend, is to shack up with someone with whom the only language you share is the one you're learning. This isn't an option my wife would let me try, but if it suits you, give it a try.

Blogging for Bucks

Tagged:  

Like me, Anthony Eden wonders what Dave Winer's point is in his post about making money from blogging. I think Dave is talking about a completely different thing than most bloggers are when they ponder this.

Dave's Cluetrainist idea is a that companies which are transparent to their customers will be more competetive, at least as consumers come to expect it, so blogs will become a standard tool to achieve that transparency. I think he's right, to an extent, but the idea that CEO's and Congressfolks are going to personally blog throughout their day without a PR/legal screen is unlikely. The American legal and political systems can make the consequences of saying the wrong thing very dire. I do think blogs, or something very similar, should and will become a common tool for corporate and political communications, I just don't think we're going to be reading Lou Gerstner bitching about his daily drive to work anytime soon.

That said, the real problem with Dave's vision is that it completely fails to answer the question current-day bloggers are asking, which is "how can I make money from this?" They're publishing content, they're wondering how to make money doing it. Dave compares blogs to word processors because he makes tools for a living, so he's thinking about blogging from the perspective of the tools.

The bloggers aren't talking about the tools, they're talking about the web as a medium for publishing original content. The issue isn't really about blogs, it's about profitably publishing on the web. Individual publishers face many of the same problems as corporate publishers, i.e. subscriptions and advertising don't seem to be profitable, at least not yet.

Bloggers are producing a somewhat different type of content than most big publishers, in that it's largely referrals to and commentary on other content, and it's possible this may make some different opportunities. But bloggers have different challenges, they have a harder time using the web as a loss leader for other revenue streams, although many are authors who hawk their books, and theoretically some tech bloggers might promote consulting services or software (*cough*Userland*cough*Citydesk*).

If the big guys find a way to make web publishing independently profitable, the independents will most likely use the same tactics, even if they have to group together, for example offering a subscription which covers a group of blogs. What would be most interesting is if the bloggers discover a business model that allows an individual publisher to make a good living, but can't be scaled up to support an organization with lawyers, accountants, HR departments, etc.

A couple of links for independent publishers:

  • The End of Free is a group blog following
    the efforts of various web businesses to make money.
  • nublog is from some content consultants
    who have written a lot of good material on how to make good (and bad) content sites.
  • PAID is one I haven't read a lot of yet,
    a site about "the economics of content".
  • ContentBlog is another new one to me, written by Anne Holland of ContentBiz, a newsletter for epublishers.
  • Category Links in MT

    Tagged:  

    I've hacked up a bit of code to let me include category specific links in the sidebar on my category index pages. MTPerlScript looks like a useful prototyping tool - you can play around with different ways to implement some functionality, then move it into a plugin when you're happy with it.

    I'm not satisfied with the way I've done the links functionality, because it doesn't make it easy to manage the links via the web interface. I could make templates to generate each link file, but that seems like too much hassle to set up. I guess lists of links could be managed like a blog, with each link an entry, but that's awkward also. It probably needs a new data type with a different configuration page, but MT doesn't make that easy to pull off.

    Here's my code:

    $category = "";
    $links_file = "../templates/links/${category}_links.html";
    if ($category && -f $links_file) {
    if (!open(LINKS, $links_file) ) {
    print ("");
    } else {
    print " Links";
    while() {
    next if ( /^s*#/ || !/S/ );
    if ( /^s*(S+)s+(.+)/ ) {
    my ($url, $name) = ($1, $2);
    print "

  • $name
  • ";
    }
    }
    }
    } else {
    print "";
    }

    PGP Lives!

    Tagged:  

    Network Associates has sold PGP, which it had put in the closet after buying, to a newly formed company called the PGP Corporation.

    This is great, PGP is an privacy product for the grass roots, and in today's environment the grass roots people need privacy more than ever. Millions of people now use the Internet for routine communications, and the Net is a very un-private place - few people realize that their email is about as private as a postcard.

    Despite this, the US government (with the EU close behind), rather than following a policy of protecting the privacy of its citizens, has been doing the exact opposite. Your email can now be collected, stored, read, searched, profiled, etc. without a search warrant. You have no right to control how big corporations use and distribute your private data, such as your medical records. I'm talking about the law as it is today, not to mention the even more reprehensible stuff Congress is being paid to make into law for tomorrow.

    Of course I've used the free PGP on Unix, but I also used to have the commercial PGP for Windows, because I use W2K as my desktop platform. With security tools, the more convenient they are to use the more you will use them, so I want to have encryption right there in my email program, file explorer, etc. Hopefully the new PGP company will ride these trends (increased Net usage and decreased individual privacy) to help more people protect themselves, and make themselves some money doing so.

    Looking through the PGP Corporation's press releases, they've got Bruce Schneier and Phil Zimmermann on their technical advisory board. They got the money to buy the PGP licenses from VC's, which shows that it's still possible to get VC funding for a startup. I'm sure it helped that their business plan involved immediately acquiring proven, existing products. It's interesting to note that they got $14 million in funding - I wonder how much they bought PGP for from Network Associates. In boomtimes $14 million wasn't enough to buy a product that only existed in PowerPoint, much less something at version 7 with cash left over to fund development and corporate operations. NA probably got more than cash, but shares in a startup don't have a lot of buying power these days.

    Unix Bloggers

    Are there any Unix blogs out there? There has been a boom in Java blogs lately, but there don't seem to be any specifically on Unix. I guess most Unix geeks with blogs have a wider focus. This section of my site is mostly filled with Unix stuff because that's where my head is right now, but I don't see it as a Unix blog.

    Moveable Type Annoyances

    Tagged:  

    I've played around with a few different blogging packages, and so far I like MT well enough. It's a mature piece of software compared with most of the alternatives, and I like the fact that it is both server based and produces flat output. My only gripe is that it is, in fact, a blogging package. This means it's designed with the blogging paradigm firmly in mind, so it's hard to twist and bend it to do exactly what I want.

    My main gripe is the templating language doesn't have quite enough oomph to it. It offers a set of tags useful for making blog-shaped pages, but not much else. There are no conditionals - I can automatically create a list of links to each category in the sidebar, but it can't recognize the current category and mark it up differently - leaving it unlinked and flagging it with an icon, for example. I can't tell it to leave certain categories out.

    I also can't easily add different data types or fields to the typical blog entry. I want to treat books specially, so I can automatically create Amazon links with my affiliate code. Plus bookmarks. I want to have a different set of links for each category page.

    It's possible to stretch and bend MT in ways it wasn't obviously intended, but writing Perl plugins looks like the best way to get the functionality I want. It shouldn't be necessary, though, the MT templating architecture ought to be a bit more flexible than it is.

    In the end I settled on MT for kief.com because I don't want to bother either writing Yet Another Goddam Blogger, spend a lot of time helping an existing blogger like Roller, or build blogger functionality on top of a framework like JPublish.

    I was seriously considering these things a few weeks ago, because I was planning to get into online publishing as a line of consulting work, but it now looks like I'm going to take on a lot of Unix sysadmin work, so I won't have the cycles to spare. So MT will let me run my site with a minimum of hassle, and if I do get some cycles maybe I'll tackle some of those minor annoyances.

    The Purple Book

    This weekend I've started re-reading the UNIX System Administration Handbook, AKA "The Purple Book" or simply The Book. This is the third edition of the book I was recommended as the "Red Book" back when I stared as a Sysadmin, some 6 or 7 years ago (damn, has it really been that long?). When the new edition came out a little while back there was a lot of bitching because it's price has bloated to $68, but it's still a worthy tome.

    The main appeal of this book is that it's a practical, real-world guide for sysadmining from a bunch of crusty old-school Unix geeks who know their stuff inside and out. They don't talk about managing Unix boxes in an idealized environment, instead they assume that you, like they, are dealing with a network including a hodgepodge of various flavors of Unix (as well as those pesky Windows boxes).

    I started to read it from the beginning, planning to read it through, but quickly got distracted by wondering what it has to say about particular issues I'm dealing with now, so I've been jumping around it. Towards the end there is a chapter about dealing with the organizational politics, including tips on how to retire old systems in spite of the users who refuse to learn new things. When they talk about dealing with power outages, they suggest taking advantage of the opportunity to leave crusty old machines you want to get rid of power off, and wait to see if anyone complains; if they don't, it's safe to get rid of.

    This book covers a lot of topics, and no, as some Amazon reviewers complain, it doesn't cover them in depth. But it's not shallow. The authors rightfully assume you can learn more details about configuring DNS or whatever from other sources, and they refer you to plenty of good places for more info. But they do more than just introduce you to what a topic like DNS is, they discuss the practicalities that you won't get from the vendor documentation, like how to make it play well with other parts of the system, what it's hazards are, and what alternatives to consider. What does this book give that others don't? Why. They explain why to do things, which means you'll understand how to figure out the best way to do them.

    Looking over the Amazon reviews, I should also point out that this is a systems administration book. Users and even power users may find this book has almost nothing of interest to them. Even someone running a Linux box or two at home probably doesn't care about how to set up a backup system for dozens of boxes, or managing hundreds of user accounts. I suggest looking over the table of contents before you fork over the $68. Also be aware that the book doesn't teach everything you need to know to be a systems administrator - you'll need to learn how to use the shell, write scripts, and use many tools, somewhere else, not to mention having reference material on hand.

    I recommend Unix Power Tools for learning how to really, really, use Unix. These two are the foundation of my Unix library.

    What this book has in it is the stuff you're not going to get from vendor or tool-specific resources. It's the kind of lore you would learn from working with a group of crusty old systems admins.

    CS Team Development

    Brett Morgan continues the discussion of OSS as a learning tool.

    One of the problem's I see with fresh out of uni coders is that the biggest project they have worked on is usually say 2 months coding (in a team of say 3 coders), so they have no real understanding of what working on 10k loc project is like. They have no idea of the real need for code documentation (because it was small enough to fit in their heads), they have no idea of the need for refactoring (we hand it in, and then we never see it again), and a total lack of ability to communicate.

    So, here is a thought. Take a class of third year CS students. Bring up a CVS server and slave it to some large project. Force the students to then work at understanding the code base. Then get them to work out small projects to make changes to the tree. Make sure to update the tree nightly from the main CVS server to keep the students on their toes.

    I definitely agree that CS programs don't give students as much exposure to real team development as it could. Whether it's an existing OSS project, or simply a large class project, something like this could be very cool.

    The project for the Operating Systems course I took was developing an OS that ran on a MIPS simulator. We worked in teams of 2 or 3, and every few weeks we had a new piece of the system to write; process scheduler, virtual memory manager, file system, etc. Very cool. I'm not sure whether you could have an entire class work on the whole thing, a big part of the value of the course was building up each component from scratch.

    But what could be very educational would be to force teams to swap code after each module. So after you finished the file system, you have to use a different team's file system code to write your virtual memory management component. Students would learn very quickly to like comments and good code design.

    Syndicate content