Profile cover photo
Profile photo
Kaushik Chakraborty
A foolish & hungry developer
A foolish & hungry developer

Kaushik's posts

Noticed that kill-line-backwards command of prelude is not working when emacs client is in terminal mode. Tried adding a new key binding to global-keybinding file for C-DEL like there is for C-<backspace>. Still no luck. What am I missing

I want to have theoretical knowledge behind Haskell esp. Category Theory. After going through many links I am planning on the following set of books.
Would appreciate inputs from community

- To learn Haskell - Haskell: The Craft of Functional Programming by Simon Thompson
- To learn CT - Category Theory by Steve Awodey
- To understand CT better - A Book of Abstract Algebra: Second Edition by Charles C Pinter

Post has shared content
Really nice
In a short interview with Sadache Drobi, Justin Sheehy and Rich Hickey discusses how two architecturally different storage solutions can play together in your application. Riak focuses on write scalability and high availability, while Datomic presents the traditional single server model for writes while allowing unlimited read scalability. The good part is that Datomic can work on top of Riak using the latter as the storage solution. It gives you transaction semantics for writes and is ACID. In your application not all parts need extremely high write scalability - use Datomic on top of Riak for those modules. You will get the guarantee of immutability and persistent data structures. For those parts of your application which need to have arbitrary write scalability, you can bypass Datomic and write directly into Riak. There you can use the control knobs that Riak offers to modulate the balance of consistency and high availability. A glorious example of polyglot persistence. Here's the interview on InfoQ ..,-nosql-and-cap

Post has shared content

Post has shared content
It's really a sad month
I was warmly surprised to see how many people responded to my Google+ post about Dennis Ritchie's untimely passing. His influence on the technical community was vast, and it's gratifying to see it recognized. When Steve Jobs died there was a wide lament - and well-deserved it was - but it's worth noting that the resurgence of Apple depended a great deal on Dennis's work with C and Unix.

The C programming language is quite old now, but still active and still very much in use. The Unix and Linux (and Mac OS X and I think even Windows) kernels are all C programs. The web browsers and major web servers are all in C or C++, and almost all of the rest of the Internet ecosystem is in C or a C-derived language (C++, Java), or a language whose implementation is in C or a C-derived language (Python, Ruby, etc.). C is also a common implementation language for network firmware. And on and on.

And that's just C.

Dennis was also half of the team that created Unix (the other half being Ken Thompson), which in some form or other (I include Linux) runs all the machines at Google's data centers and probably at most other server farms. Most web servers run above Unix kernels; most non-Microsoft web browsers run above Unix kernels in some form, even in many phones.

And speaking of phones, the software that runs the phone network is largely written in C.

But wait, there's more.

In the late 1970s, Dennis joined with Steve Johnson to port Unix to the Interdata. From this remove it's hard to see how radical the idea of a portable operating system was; back then OSes were mostly written in assembly language and were tightly coupled, both technically and by marketing, to specific computer brands. Unix, in the unusual (although not unique) position of being written in a "high-level language", could be made to run on a machine other than the PDP-11. Dennis and Steve seized the opportunity, and by the early 1980s, Unix had been ported by the not-yet-so-called open source community to essentially every mini-computer out there. That meant that if I wrote my program in C, it could run on almost every mini-computer out there. All of a sudden, the coupling between hardware and operating system was broken. Unix was the great equalizer, the driving force of the Nerd Spring that liberated programming from the grip of hardware manufacturers.

The hardware didn't matter any more, since it all ran Unix. And since it didn't matter, hardware fought with other hardware for dominance; the software was a given. Windows obviously played a role in the rise of the x86, but the Unix folks just capitalized on that. Cheap hardware meant cheap Unix installations; we all won. All that network development that started in the mid-80s happened on Unix, because that was the environment where the stuff that really mattered was done. If Unix hadn't been ported to the Interdata, the Internet, if it even existed, would be a very different place today.

I read in an obituary of Steve Jobs that Tim Berners-Lee did the first WWW development on a NeXT box, created by Jobs's company at the time. Well, you know what operating system ran on NeXTs, and what language.

Even in his modest way, I believe Dennis was very proud of his legacy. And rightfully so: few achieve a fraction as much.

So long, Dennis, and thanks for all the magic.

"Stay hungry, stay foolish" 

Nice Infographic on 35 years of Apple Products Design

Post has attachment
An awesome documentary peeking inside the mind of the legendary Stanley Kubrick.

Nerd Talk: The tale of the life of a link on Reddit

Post has attachment
This short movie is amazing. Shows the earliest implementations of many ground-breaking stuffs (at that time) like Word Processor, Paint app., Image Processing app., bulletin boards, multiplayer games. Also there is an earliest prototype of modern day tablets !!
Wait while more posts are being loaded