So I upgraded to the latest MoveableType version and changed the colors for itymbi. The upgrade went well, even the unexplained bit of enabling TrackBack when you're using mod_perl. It's interesting, though perhaps obvious, that because of the pattern used for the application and comments code finding how to setup TrackBack was pretty simple. The color scheme comes from a book called A Book of Colors published by the Nippon Color & Design Research Institute. It's fantastic for finding color combinations that work well together.
Of course the most interesting feature of the latest MoveableType version is TrackBack. This is something I, along with others, have thought about before, looks like there's going to be an open standard around this functionality, so I'll just hook MBlog into it, I hope.
TrackBack is implemented using REST and not SOAP. The REST vs. SOAP discussions are interesting. Perhaps SOAP has already been taken over by the standards people to such an extent that it's about to be suplanted by REST when ordinary mortals want to get something done. A rant I've indulged in before is my feeling that there are some people who get more enjoyment out of the standards setting process than is right. These people glom onto any new technology as an opportunity to get involved and make their mark on a new standard. The results are sometimes over elaborate for ordinary use. SOAP may be going this way, it's just getting too complicated to set up for simple, though powerful stuff, like the amazon api or TrackBack.
An interesting essay called Gaming the system: How moderation tools can backfire. It describes how moderation systems like Slashdot's can inadvertently encourage behavior they wish to discourage. By scoring users participation in moderation and posting Slashdot encourages some users to moderate so as to maximize points scored (karma whoring in Slashdot terms) instead of moderating so as to support interesting discussion.
I've put together a top level architecture diagram for MBlog with five functional boxes. Three of these come from the Model View Controller pattern so their function should be fairly obvious. At the moment I think that there will be little if anything in View as it represents the HTML pages displayed to the users and so is handled by the browser. The Generator produces these HTML pages, and the static blog pages, from data in the Model, while Remote handles updates to the Model by users from their PCs. An alternative would be to subsume the Generator within the View but I think the separation, even if the View is may have no code in MBlog, is functionally clearer.
To be completely pretentious about it I feel that my particular stall in the marketplace of ideas is not exactly overstocked. So I am occasionally reduced to reselling one idea to multiple buyers. In this case I reworked the brief piece below about .NET into an article for Kuro5hin. The editing process that let to it being posted was useful and I think the final result that got posted is better than the quick thoughts I dashed off originally.
Another site poking fun at Monday:, the PwC Consulting rebranding. This one from a story on The Register.
Here's an amusing comparison of Windows-NT vs. CP/M that I found on Haddock.org. I suspect everyone's seen this sort of thing before.
Whenever an X vs. Y comparison/evaluation is posted somewhere it 's likely to cause a flamefest. For example Microsoft has taken to reimplementing the J2EE example PetStore application using .NET, tuning it, and then claiming that .NET performs better than J2EE. I won't go into why I think this is not a valid comparison, the people at TheServerSide have a lengthy discussion that goes over it in detail.
The thing is, does anyone believe these things anymore? The only thing most of them seem to do is confirm whatever prejudice the reader already has. I mean, it seems like everyone thinks that they won't be taken in, but perhaps their boss, or some "suit" at another company will, and therefore they must point out at length all of the methodology flaws. Is this because so many of them are so biased that it's no longer possible to get a fair comparison taken seriously? Is it that it isn't actually possible to perform a fair comparison? On the specific performance front I've always liked the advice I've heard that it doesn't matter which is the fastest provided the one you are using is fast enough for your purposes. For instance, it's overkill to be able to serve ten thousand impressions a day if you only have to serve one thousand. More understanding of requirements, and less over engineering and guesswork is a good thing.
One good thing, these days it's a lot more difficult to publish a biased or slanted comparison and not have it picked apart, witness the latest Microsoft sponsored anti open source study and its rebuttals. Not sure I like the phrasing of the one reproduced on the Register but it does make the right points. This one from Portugal is better. A search on Slashdot will, of course, turn up much more material, and some of it may even be useful.
Performance, availability and scalability. If readers aren't going to see personalized or dynamic content then there is no need to generate the html pages for them for each request. The system used by other blog software of generating static pages when posts or comments are entered and then having these served directly by a web server will work fine. This means that performance for readers will be limited by the performance of the web server used. This will be adequate for the sorts of blogs mblog is intended for.
No special efforts will be made to make mblog a highly available or scalable system. The static pages could be mirrored relatively easily and the sub-system that generates these pages should separate the generation and installation steps. This will allow distributed installation onto multiple servers. A single server will be used to enter posts and comments, and to make changes to the blog configuration. This simplifies the architecture as it no longer has to worry about keeping state in sync between different machines.
To protect against loss or corruption of data the files used by mblog should be backed up on a regular basis. I'm going to look at providing some sort of rsync based system to help with this as an addon.
A brief follow on from yesterday. The average size of a post on this site, as an HTML page, is 5.6 Kbytes. So, ten authors, each posting twice a day, would use about 2.1 Mbytes for a year's worth of postings. This would probably be doubled to calculate memory use in Java because of its use of Unicode internally. On the other hand each HTML page includes about 2.9 Kbytes of repeated javascript and html formatting so 5.6 Kbytes is probably not a bad estimate overall.
The machine I run this site on used to have 128 Mbytes of ram, it now has 384 Mbytes. The default minimum memory size when you run Java is 64 Mbytes. It looks to me that these days I could pretty much cache all of the posts for several years in memory and not even notice. A few years ago that wouldn't have been true, and when I started in the business it certainly wasn't. Architecture wise it implies that an ingenious system designed to use a limited size buffer backed by disk storage is overkill for mblog. I might as well just load everything in memory when I need it, use soft references for the unlikely event that garbage collection occurs, and forget about it.
Joel Spolsky has another interesting strategy letter available. This has been discussed at some length on Slashdot and I don't want to try and rehash that discussion here.
Joel describes the general principle; Smart companies try to commoditize their product's complements. More interesting to me than the specific examples he gives is the actual idea itself. I think that in programming the best way to learn a language is to try to write programs in it; with these sorts of ideas the best way to understand them is to try and apply them.
What about .NET, is there anything to think about there? Well, imagine that Microsoft wants to move into the Enterprise Computing space, what sort of complementary products does that require? One thing that comes to mind is that you need good integration capabilities, you need to be able to connect the SAP ERP system to the Siebel CRM system. Currently this sort of product is provided by companies like TIBCO and webMethods, and has been a nice little earner for them. webMethods' stock went up 507.5 percent on its first day. OK, that was in 2000 but very impressive even for then.
So, what does Web Services and .NET do to the enterprise integration business? It commoditizes it. With this complementary product reduced to a commodity Microsoft's chances of getting into the Enterprise space improve and the prices they can charge go up. If Microsoft can convince SAP, Siebel and other Enterprise Software vendors to offer SOAP access in their applications; if it can position itself as the Web Services leader, with good support built into the OS it controls and the tools it provides; it's time to sell TIBCO and webMethods stock.
And it looks like this is happening. Microsoft is generating such hype and buzz around Web Services that customers are starting to demand SOAP access even when they have no compelling use for it yet. It's turning up in RFPs already, and this means that SAP, Siebel and PeopleSoft will be adding it to their systems. Perhaps the only bump is that Microsoft is trying to push its own BizTalk standard instead of going with ebXML. If the goal is commodity status the more players behind a single standard the greater the momentum. A couple of competing standards allows a space for TIBCO and webMethods to thrive on converting between the two.
What's after EAI integration? Maybe it's business process management. This is where TIBCO and webMethods are heading now, it's a pretty hot space. Microsoft has some product in this area and it might be where they would go next. The movement into business process management would perhaps be predicted by The Innovator's Dilemma, companies are forced to move upmarket chasing the larger returns as the market below them is eaten up the disruptive replacements. In this view Web Services is a disruptive technology to TIBCO and webMethods, perhaps not as good along the axes they are evaluated on but offering other benefits along other axes; that's a topic for another post though.
Just some brief usage notes to help me get some the non-functional requirements for mblog straight. First, an mblog installation is expected to have few authors, usually one or two, but at most in the low tens. Each author probably posts no more than two or three times a day. Each post will get between zero, which is most likely, and, if we're going to be optimistic, ten comments. The great majority of access will be by readers.
I'm not going to use these numbers to set limits on how may authors there may be but to help choose architecture and implementation techniques that are optimized for there figures. For example a complex paging display suitable for supporting many authors will be overkill for mblog.
So PwC Consulting is now going to be called Monday. Of course the site introducing the new name makes heavy use of the scarlet letter of style over substence, Flash.
Here's the actual PwC consulting thought about what the new name means.
WHAT MONDAY MEANS Monday is a fresh start, a positive attitude, part of everyones life. Monday is a real name, universally understood and easy to remember. Monday is confident. It stands out and it stands for something.
To me it just means pretension and lack of clarity about what the company does. Strangely the BBC's story actually manages to find some people with positive things to say about the idea.
Rebranding will cost $110m. Seems like a lot of money to me. I don't know how much of it goes to Wolf Olins who "masterminded the changeover". Wolf Olins is a company from the UK originally. This may explain the Flash. A lot of Nathan Barley types like Flash. Wolf Olins is part of the OmnicomGroup, now there's a name. Like the Globex corporation run by Hank Scorpio that Homer Simpson once briefly worked for.
On the other hand, I suppose the people in Andersen Consulting, rebranded as Accenture, were glad they were able to drop the Andersen part of their name before all of that inconvenient Enron stuff came out. The best that can be said is that at least PwC Consulting chose a real word instead of inventing one to imbue with whatever wonderful qualities they feel the company should have.
Slashdot sometimes posts links to science articles. These usually attract a few posters who might be charitably described as cranks. Today we have a link to an article about supercoductors and gravity. However, in one of the posts, a reply to a poster/crank with the nick s390 (weird, as that's an oldish IBM mainframe model, now renamed), we have the following wonderful line. This isn't consultancy, s390, this is science. Golf, blowjobs, and 'intuition' won't cut it.
In this week's New Yorker there's a brief article by James Surowiecki called Turf War. It's about Nike's failure to dominate the golf and soccer equipment markets despite their revered brand. The power of branding, Mr. Surowiecki says, is overrated, it's not enough to slap a logo on a poduct to make it successful, you actually have to make something that's better than the competition. "The surest way to get stronger sales is to sell a stronger product." I'd add that this innovation does not have to be along any of the dimensions that the current product dominates. As The Innovator's Dilemma points out you can take over a market with a less functional product if it dominates on a axis that is ill served by the current leader. I've written about this and open source software as Rules of Innovation - Clayton M. Christensen and Ant as an example of the Innovator's Dilemma.
Mr. Surowiecki's remarks are in contrast to those of the NoLogo movement who believe that branding is evil, or at least close to evil. An interesting and more detailed explanation of the other point of view is from Economist. The references to the article The Case for Brands I found weren't actually on the Economist website but through Google.
I think there is certainly something to the Economist's central thesis, that because brands make a product easily identifiable the company must make sure the product lives up to the promise the brand makes. Of course this may not be quality, it may be cheapness or consistency, but if the product doens't live up to the branding it's very easy for consumers to avoid it because the brand makes it easy to identify. The Economist feels that we have the power over branded products, if we don't like them, or the ways they are made, stop buying them and they must change. After all, it's easier to boycott Nike shoes to make them change their labor practices than to boycott generic shoes where you have to check the label to see where they claim to be made. In the same way, it's easier to stop McDonalds putting beef flavouring in their fries than the burger place down the road because McDonalds are easily identified and have a large number of customers to satisfy.
Building a Blog: Part four
I've come up with an initial list of the use cases for the functionality I want in MBlog. These will have to be elaborated further to be useful in the next stage of the development process.
Now I'm at the point where I want to start thinking about the MBlog architecture. At a higher level, looking at the development process, this is when I should select the methods to guide this architectural thinking. The techniques I chose will determine what the next steps in elaborating use cases and requirements will be. I have some ideas on what I want to do and I'm going to organize these into my next post.
On Lambda the Ultimate this morning was a posting discussing Larry Wall's latest Perl language design statements, this time about regular expressions. As usual Ehud Lamm had interesting things to say not just about the proposal but also about the meta issue of language design.
Meanwhile, at the same time, over on the other side of town, on slashdot, the latest perl musings were also being discussed. When I got to this discussion it had about 4 posts rated at +3 or above, and they were all rated funny. Clearly no serious discussion was taking place yet. I would have liked to see some posts about people's experience with perl, the perl 6 efforts, alternatives to perl, in fact anything but more funny remarks. I thought maybe I could try and get a discussion started. A lofty and presumptuous goal. A provocative post title looked like a good way to attract attention and get people talking, so I posted Perl's had its day - It's become like COBOL.
I think this is a defensible argument. Certainly I would say that Perl has had its day. I don't think it will again be the defacto choice for scripting or cgi programming the way it once was. It used to dominate the space it is in, it's less dominant now with the rise of python and ruby for scripting and php for cgi work; I don't think it will get its dominance back. It will still be used but some of this use will be because of legacy perl code that must be maintained or extended instead of rewritten. The rest will be for quick scripts that must be written and the writer happens to knows perl, the situation I find myself in from time to time. In some ways this is similar to COBOL, legacy use and legacy users.
Actually some of the resulting discussion was interesting, though not perhaps as interesting as I had hoped. What was more interesting to me was the history of the moderation done to the post and the light it threw for me on the slashdot groupthink that occurs. The post started off at +2 climbed to +4 (interesting) where upon it must have attracted attention as it was hit with flamebait and troll to end up at +2 (troll). Then it started to go up again and it currently sits at +3 (interesting) having had 11 moderation points used on it. Result as of now:
Moderation Totals: Flamebait=2, Troll=1, Insightful=1, Interesting=4, Overrated=2, Underrated=1, Total=11.
A quick look at the moderation of other posts in the threads and it seems like they generally get a small number of points, maybe 1 to 3, all in the same direction. There is also a really strong tendency for moderators to use offtopic to force threads to stay rigidly on topic when a bit of drift would make for a much more interesting discussion. Ah well, it was fun.
An interesting article from Beyond Value Investing. It analyses the Internet bubble, specifically that involving the companies that "made money" by selling banner ads to each other, as a pyramid scheme.
At the time, I worked a Deja for a brief while, it seemed to many of the lower deck swabbies in development that we were, as the quotation has it, making money by taking in each other's washing. It was a source of amazement that this sort of thing seemed to actually work, coupled with a sense that either an enormous scam was being pulled or we were too dumb to see the real value in swapping banner adds. Of course management tried to convice us of the "we were too dumb" idea but we sort of clung to the "enormous scam" opinion. In the end we were perhaps right. On the other hand they got rich and we didn't so.....
I found the link to the article on CamWorld but I don't agree with Cam's comment. I don't think the author is lumping all internet businesses together. Towards the end of the article he distinguishes between several sub-bubbles and even says "And not all Internet companies were Pyramid Schemes - Amazon, Google, eBay, and Overture are all healthy companies with positive cash flow." It's important to recognize that some were pyramid schemes though, even if unwittingly.
Juri Pakaste has an interesting post on his blog about Comments on blogs. I have conflicting feelings about this issue. On the one hand I want content on my blog, its hard enought to write stuff as it is without scattering it across the web :) On the other, comments are a nice form of conversation that I would like to encourage, and being able to read many peoples different (possibly) views on a subject on one site is useful.
The one possibly novel feature I want to try to implement in my toy blog project is cross blog commenting. The idea is that if two people are using this software to run their blogs then it is possible for one of them to comment on a post on the other's blog and and have that appear as a post on their own blog. With appropriate crosslinking I could post a comment on Juri's site which would appear as a post on mine with a link to the head of the discussion on his. With multiple participating sites I could imagine quite a rich system where you could click across multiple blogs reading a thread of comments with the benefit of seeing other articles on the blogs as well, browsing being part of the benefit of blogs. In some fantasy land view perhaps the sum of the parts could be greater than the whole and you'd end up with a sort of hyper blog made up of connected crosslinking blogs.
Just spent 3 hours, which is a bit longer than I expected, adding an extra hard disk to the machine this site runs on. After a few months running at 72% to 95% full on a 7G partition I bought a new drive from NewEgg following a recommendation from one of the hardware guys at work, thanks Tony. I got a 40G Western Digital for what I thought was a reasonable price. Installing it was simple using pieces from the Linux Hard Disk Upgrade Mini How-To as a guide. I did learn a few things though and in the true blog spirit I'll post them here.
Dust, dust, dust. It's pretty amazing how much dust can get into a machine. Some of the panels hadn't been taken off in years and it was nasty in there.
Dell cases are nice. Of course this is based on the sample of one that holds the machine I was working on. It's fairly old, being a 350MHz Pentium II, so I don't know how well this experience relates to recent Dell products. The case is well put together in a modular fashion. For example all the drive bays come out very easily to let you work on them. You don't have to try and get screwdrivers into impossible locations. The case holding my current Windows machine (ick), which I build two years ago, was highly rated but it's not as nice as Dell's.
Check your partitions twice. Part of the reason the process took so
long was that I managed to get the partitions on the new disk set incorrectly
first time round. I used fdisk instead of cfdisk,
made a mistake and didn't notice it. When I copied the data to the new disk I
wondered why 1.5G of data was taking up 50% of what I thought was a 20G
partition. It wasn't, it was taking up 50% of a 3G partition! I had to repartition,
reformat, and copy again. Looks ok now.
I don't think I'll delete the original directories just yet though, perhaps in a couple of days.