2007 10 28

My current Samsung TV is working fine.

But one of these days, I think I’ll replace it with the gorgeous Sony Bravia KDL-32S3000 LCD TV pictured above.

It’s beautiful, it’s feature complete (HDMI, 720p and Widescreen) and is currently being sold at around $900 in the US.

The only slight issue is the lack of high definition content in Mauritius. As indicated in the TV’s manual (which I’ve, of course, downloaded and read cover to cover), the TV accepts the following HD signals:

  • Over-the-air broadcasting via HD-quality antenna. MBC broadcasting HD signals?!? Forget it.
  • HD cable subscription. Not available here.
  • HD satellite subscription. I am not too sure that this is a priority either from Parabole Océan Indien or Canal Satellite. I have a Parabole Maurice subscription and I don’t have access to films in English. I am forced to watch (mostly) everything in French which is crap as I tend to watch a lot of American and English movies. So if they don’t feel that having two audio streams is important I doubt they’ll bother with an HD video stream which is bound to use a much higher amount of bandwidth. My guess is that we won’t have HD satellite programs here for at least 2-3 years.
  • Blu-ray Disc player or other external equipment. I don’t think I’ll buy a Blu-ray or a HD-DVD player soon (but who knows?). I don’t also intend to buy a PS3 or an XBOX 360. So there is only the Apple TV left. I am thinking of getting one to host all my media files (audio, photos, videos of the family and some movies) but I’ll have to convert all my video files to H264 first… which I’ll have to do as I fear that the (cheap) DVD-R I used to store my home videos won’t last for ever.

Seem a little bit limited for the time being, isn’t it?

Popularity: 2% [?]

written by avinash

2007 10 28

I’ve just come across an excellent article on eWeek titled Programming Superstars Eye Parallelism where some of the brightest computer scientists ever discuss on the Next Big Thing (TM).

James Gosling, creator of Java at Sun, Anders Hejlsberg, creator of Turbo Pascal at Borland and C# at Microsoft and Bertrand Meyer, creator of Eiffel reflect on “”What will you do with a 4,000-core machine?”

Multicore processors

Most of us buying computers now have dual-core processors like the Intel Core Duo I have on my MacBook. The same company has communicated on its Tera-Scale research program and has announced that 10-cores processors will be ready in two years. Intel is even experimenting with 80-cores processors…

Sun Microsystems already sells an 8-core processor with 4 hardware threads per core = 32 threads. It is, of course, the UltraSPARC T1 (Niagara) processor. It even has a successor called T2 which has 8 hardware threads per core i.e. 64 threads…

So the future is going to be massively multi-core.

The problem

Anders Hejlsberg says that “the models we have today for concurrency don’t work. Developers need to move an abstraction level up and he sees a resurgence of functional programming and its influences.” And the others agree.

Simply said, the way we program today (with C/C++/Java/C#/whatever) does not work on massively multi-core processors. This is because of state being shared among the cores and, hence, the necessity to use synchronization mechanisms a lot. The immediate consequence is that it becomes impossible to write programs which are free from deadlocks and starvation as the number of possible interleavings is massive. Exhaustive testing is impossible.

Functional programming to save the world

Joe Armstrong, the creator of Erlang, has spoken eloquently on why functional programming languages, which can be defined as languages without variables, are much more suitable to write concurrent (and parallel) applications than imperative languages that we all use today (like C/C++/Java/C#/etc)

Basically (and I quote),

    No Mutable Data Structures = No Locks = Easy to parallelize!

Incidentally, this is one of the reason I’m teaching Concurrency and Parallelism: I so deeply want functional programming to succeed!

I have been using Erlang for a month now to teach concurrent programming and, in my opinion, my students have loved it (and I too!)

Conclusion

The future is concurrent and parallel. And, according to the best, the future is also functional (very interesting things are happening in research, for example, F# and Data Parallel Haskell). Erlang is already here and is beautiful (and powerful).

I knew those hours I spent learning Scheme when I was younger were going to be useful.

I’m happy.

Popularity: 2% [?]

written by avinash

2007 10 20

The other day, while visiting the new Editions de l’Océan Indien bookstore (appropriately called The Bookstore) in Rose-Hill, I discovered its basement containing lots of old books at very cheap prices.

I bought 5-6 books at Rs. 10 each among which Logo for Beginners by J.W. Penfold.

As you can guess by the name of the book, it talks of the Logo programming language, developed by Seymour Papert to teach programming to students.

To be frank, I did not have a very positive opinion of Logo prior to reading that book. It’s only when I came across page 3 that I realized that Logo was something special:

“LOGO derives from a family of languages known as ‘list processing’ languages, and these are the languages of so-called artificial intelligence”

What??? LOGO is a derivative of LISP!?! I couldn’t believe it. As you have gathered by now, I am very very fond of LISP and its children: Scheme, Haskell, Erlang and Ruby.

Programming in Logo

Logo, when used to teach programming, is very straightforward. For instance, this is the body of a procedure, called square, which draws a square:

repeat 4 [forward 100 right 90]

The following code then draws the figure that you can see above:

repeat 72 [square right 5]

It’s not complicated and, arguably, can really teach the basic concepts of computation very easily. No wonder lots of schools (especially in the UK) still use Logo.

Of course, Logo being a LISP derivative, can be used to solve very complex problems. It has higher-order functions for instance and this opens the world of map and reduce (and even Google).

Where to get Logo?

There are many free implementations of Logo. The “standard” seems to be UCBLogo also known as Berkeley Logo which works on lots of different platforms (Linux and Windows for example). I did not use that one.

Instead I found ACSLogo which is a fantastic Logo implementation for Mac OS X. It’s so good that it even won a Mac OS X Innovators Contest award in 2003!

Final thoughts

Try Logo. I think you’ll be impressed. And, in case you come across that Rs. 10 book, buy it. Rs. 10 is so little to pay to access such a wonderful world…

Popularity: 2% [?]

written by avinash