Thursday, January 26, 2006

C? vs. Erlang? | Lambda the Ultimate: "C? vs. Erlang?

I know there was C? topic before. But the discussion really had more to do with Xen (XML, DB integration) than the Polyphonic C# concurrency part. I'm an Erlang newbie myself, but I already can see that asynchronous communication is the common thread to both languages and this approach is going to be big - can be used from embedded system to biz process orchestration.

Looking at the Santa Claus sample, C? code seems to be quite compact and the syntax extension to C# is minimal. However process/thread creation is implicit, and it seems to be a little more difficult to reason. I would imagine a solution in Erlang clearer, but maybe longer.

Any thoughts/pointers on the pros and cons of different concurrency approaches? We really should have a 'great concurrency shootout'."
MochiKit – A lightweight Javascript library: "MochiKit makes JavaScript suck less

MochiKit is a highly documented and well tested, suite of JavaScript libraries that will help you get shit done, fast. We took all the good ideas we could find from our Python, Objective-C, etc. experience and adapted it to the crazy world of JavaScript.

MochiKit has HUNDREDS of tests. We build real applications with this thing. So even though development can move fast, we make sure to get tests written. This also makes platform compatibility issues much easier to detect and resolve than the 'guess and check' style of quality assurance seen in some of the other libraries out there. It's not broken.

You're unlikely to find any JavaScript code with better documentation than MochiKit. We make a point to maintain 100% documentation coverage for all of MochiKit at all times. You don't have to fumble around reading our source code or leafing through examples to find out how something works.

MochiKit can adapt to anything you throw at it. It makes no assumptions about how your code needs to act, and it has hooks (by way of the the adapter registries) that makes sure that you can define your own comparisons, programmer representations, iterators, or DOM node coercion for any object in any way you wish. We'll gladly serve you all the Kool-Aid you want, but we're not goi"
Javascript Inheritance | Lambda the Ultimate: "Javascript Inheritance

This seems like a nice summary of various approaches, and provides an interesting prespective on prototype based languages in general and on Javascript in particular. Some of the libraries mentioned were discussed here before.

It is tempting to compare this to various documents trying to show 'how to add objects to Scheme/Haskell/etc.' The solutions are rather similar..."

Wednesday, January 25, 2006

Slashdot | How To Choose An Open Source CMS: "How To Choose An Open Source CMS
Posted by ScuttleMonkey on Wednesday January 25, @08:56AM
from the focus-on-the-problem dept.

An anonymous reader writes 'Content management specialist Seth Gottlieb has written an easy to understand how-to on selecting an open source CMS. Gottlieb is also responsible for the whitepaper 'Content Management Problems and Open Source Solutions' which summarizes 15 open source projects and distinguishes between open source CMS and proprietary software selection.'"

Tuesday, January 24, 2006

36. Purple Cow. Gelett Burgess. Modern American Poetry: "36. The Purple Cow
(Reflections on a Mythic Beast Who's Quite Remarkable, at Least.)

I NEVER saw a Purple Cow;
I never hope to See One;
But I can Tell you, Anyhow,
I'd rather See than Be One. "

Monday, January 23, 2006

Cooperative Linux: "Cooperative Linux is the first working free and open source method for optimally running Linux on Microsoft Windows natively. More generally, Cooperative Linux (short-named coLinux) is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine. For instance, it allows one to freely run Linux on Windows 2000/XP, without using a commercial PC virtualization software such as VMware, in a way which is much more optimal than using any general purpose PC virtualization software. In its current condition, it allows us to run the KNOPPIX Japanese Edition on Windows (see Screenshots)."

Thursday, January 19, 2006

GParted -- LiveCD: "LiveCD

The power and simplicity of GParted on a biz-card sized LiveCD.

The CD aims to be fast, small in size, and use minimal resources
to get that disk partitioned the way you want it. GParted LiveCD is based on Slackware Linux and uses Xfree86's Xvesa, the lightweight Fluxbox window manager, and the lastest 2.6 Linux Kernel.

Being up to date is important! GParted LiveCD will be updated along side the GParted source releases and have minor releases when bugs are fixed or new filesystem tools become available.

GParted LiveCD runs on most x86 machines with a PII or better and a Vesa 2.0 compatible video card."

Wednesday, January 18, 2006

Maverick Speak: "DataSets Vs Custom Entities - The Eternal Debate

I was involved in an eternal debate again. This time I was very much convinced that it was going to be an easy one as it is one of my favorite topic. DataSets Vs Custom Entities. I can already see few eyebrows raised. J I know most of the times the answer is ‘It depends”. The job was cut out for me as I had to defend an Architecture which was using Custom Entities as data carriers. I am glad that I had to defend custom entities as that’s my personal preference as well. I probably won’t go into the complete details of my defending points. Probably, I shall write another post which will include all the points to consider before deciding upon the right data carrier for any application."
Welcome to
Are these Microsoft guys? In any case, Siram Krishnan (previous post) mentions Roshan James as being an inspiration to him. Roshan James has some really cool Scheme posts.
Sriram Krishnan : Lisp is sin: "Lisp is sin


Over the last few days, there has been one thought running in my head - 'All roads lead to Lisp'. I've tried to get it out of my head but like a tune from the radio, it has firmly lodged itself into my head and refuses to let go. Why this state? Call it a confluence of several items. In particular, these 3.

- Joel Spolsky goes off and writes one of his best articles ever called 'The Perils of Java Schools' which talks about the perils of not learning Lisp. As someone who has been playing catch-up with functional programming since I wasn't taught Lisp at college, I definitely agree. I forwarded that article to some senior folks internally - which in turn lead to some interesting conversations

- I've been working on a prototype of something at work - where I started off the usual imperative programming style. Realizing that this wasn't going to scale, I rewrote it in functional style making full use of C#'s anonymous delegates and iterators. When I had to make a major change, it was *so much* easier to add in extra functionality since I was just passing closures around.

- After 2 hectic work-filled weeks, I took advantage of a long weekend to curl up with a book which has been called the best book on programming ever - Peter Norvig's Paradigms of Artificial Intelligence Progra"
[Languages] You Are Not Lispless!: "While we are Lisping, lispen close. You, too, can speak (code) with a Lisp! If you have Visual Studio.NET, or the .NET Framework SDK, but have not yet fully indulged your curiosity, you may not know that you already have a Lisp compiler that compiles to MSIL. Check out the CLisp Sample project in your “Tool Developers Guide” directory. You will find it located at your equivalent of

C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Tool Developers Guide\Samples\clisp"

Tuesday, January 17, 2006

L Sharp .NET: "L Sharp .NET is a powerful Lisp-based scripting language for .NET. It uses a Lisp dialect similar to Arc but tightly integrates with the .NET Framework which provides a rich set of libraries.

L Sharp is free software distributed under the terms of the GNU General Public License. You can download the latest release from Sourceforge. You may also want to read Rob Blackwell's Web Log.

This documentation is a work in progress and is subject to change."

Tuesday, January 10, 2006

Ada95 Lovelace Tutorial Home Page - uses programmed learning (short quizzes, etc.).
SPARKAda | Lambda the Ultimate: " A SPARK program has a precise meaning which is unaffected by the choice of Ada compiler and can never be erroneous.

* Technical Overview
* First chapter of a book describing the system
* Back of an envelope summary (my first source)

From the examples in the chapter, I thought it looked surprisingly simple to use - comparable to adding contracts in DbC, for example. I guess the analysis requires a little more effort?"
ongoing · Don’t Invent XML Languages: "The Big Five · Suppose you’ve got an application where a markup language would be handy, and you’re wisely resisting the temptation to build your own. What are you going to do, then? ¶

The smartest thing to do would be to find a way to use one of the perfectly good markup languages that have been designed and debugged and have validators and authoring software and parsers and generators and all that other good stuff. Here’s a radical idea: don’t even think of making your own language until you’re sure that you can’t do the job using one of the Big Five: XHTML, DocBook, ODF, UBL, and Atom."

Originally seen at Tim Bray: Don’t Invent XML Languages on Lambda the Ultimate

Monday, January 09, 2006

Cell phone email addresses (from Continental Airlines - Flight Status Notification):
AT&T Wireless:

Sunday, January 08, 2006

The Art of Photography
" What is a Photograph? A photograph is life distilled and preserved for eternity. An expressive face, a fleeting moment in nature, an abstract shape- these are the fundamentals of photography. A photograph conveys, in a way no words can, a sense of the mystery and beauty of life, nature, and the achievements of mankind."

Friday, January 06, 2006

STSC CrossTalk - Correctness by Construction: A Manifesto for High-Integrity Software - Dec 2005: "Correctness by Construction: A Manifesto for High-Integrity Software
Martin Croxford, Praxis High Integrity Systems
Dr. Roderick Chapman, Praxis High Integrity Systems

High-integrity software systems are often so large that conventional development processes cannot get anywhere near achieving tolerable defect rates. This article presents an approach that has delivered software with very low defect rates cost-effectively. We describe the technical details of the approach and the results achieved, and discuss how to overcome barriers to adopting such best practice approaches. We conclude by observing that where such approaches are compatible and can be deployed in combination, we have the opportunity to realize the extremely low defect rates needed for high integrity software composed of many million lines of code."

This article refers to Communicating Sequential Processes (CSP), the Hoare invention.