Linklog – Low level Parsing,Lexing Grammars

Found this via @ravi_mohan today – He was trying to find books/articles on low level lexing and parsing of grammars and found this from his network – Seems to be worth reading – But currently I am unable to do so – Looking for inputs from people already done so.

Link is – Parsing Expression Grammars

Posted in linklog | Leave a comment

Linklog – Personal Hadoop Sandbox cluster by Hortonworks

Found link this via a sponsored/promoted tweet on twitter today -

http://hortonworks.com/products/hortonworks-sandbox/

Right now, I am not able to take this for a test ride. Looking forward to inputs on how good this is to get one’s hands dirty with Hadoop in general.

Go ahead and comment away! :)

Posted in linklog, What is.. | Tagged , | Leave a comment

Blending Features in Canvas HTML5

Reblogging this from Adobe website as a means to easily find the link again -

Summary of the post – Adobe has added some specs to the canvas api which will improve the way colors and backgrounds get blended. This is in addition to the blending capabilities provided by CSS(3)

For detailed understanding, click away -

http://blogs.adobe.com/webplatform/2013/01/28/blending-features-in-canvas/

Posted in How To..., linklog | Leave a comment

BookNotes – Chapter1 Using Memcached by Josef Finsel

Shring key takeaways from the first chapter of the Using memcached throu this blog post. Purpose is for me to recapitulate my learning and for you to get the highlights.

Before starting to read is book, I would recommend readin the following links – these will refresh the memory with the scope and context of words like  events and servers: -

http://blog.soemarko.com/post/1396596544/event-driven-approach

http://www.wangafu.net/~nickm/libevent-2.1/doxygen/html/

The key takeaways are -
1. Memcached is a NameValue Pair cache only and NOT a persistent data store of any sort.
2. The max size of Name/key is 250 chars, max size of values that can be stored is 1 MB.
3. Can be installed on both linux/unix and Windows servers.
Quote
Running the server under Windows as a service only allows one one instance. If you want to run multiple instances you will need to actually run memcached multiple times with different port addresses. This can be done by adding keys to the Registry or by using a tool such as AutoRuns[1] to do that for you.
Unquote
4. 4 commands for add, update and remove data, and a detailed statistics command
5. Works on a server client basis, so for raw interactions with a trial memcached sever use telnet as a client

That, in short, is the highlights of this chapter.

For detailed reading head to http://pragprog.com/book/memcd/using-memcached

Posted in BookNotes | Tagged | Leave a comment

What is Celery task queue, where do i use it and how do I use it?

As you start going beyond the landing page and the login/logout screen of the latest coolest app that you are building, you realize that the app needs to do a lot more set of things other than querying the database and building dandy HTML views around it. :)   And that is when you realize the need for an assistant of sorts, to whom you can throw all the extra load and continue working on your html views :)

This is where Celery the task queue comes into the picture. The Celery homepage and the associated Wikipedia page will only say this much -

Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.

But where the hell do I use it? What are typical usecases where Celery comes into the picture? So instead of writing a blogpost all over again, sharing this slide share link, that I found particularly useful in answering these questions that bogged me -

And this one with a little more technical details as to how the tasks are dealt with

So click through the above and get enlightened. And share your experience in the trenches with Celery.

Posted in library watch, What is.. | Tagged , | 2 Comments

Bridging the learning curve to Backbone.js

Sharing a URL which talks about how to move from JQuery programming to Backbone style. – i.e. converting an existing codebase into a Backbone based app - http://www.ofbrooklyn.com/2012/11/13/backbonification-migrating-javascript-to-backbone/

Posted in How To..., linklog | Tagged | Leave a comment

ClassNotes – What exactly is Functional Programming?

Sharing some notes and insights gained as part of attending Martin Odersky’s Functional Programming course on coursera.org

1) Programming usually taught in colleges (atleast indian ones) is the  imperative style which is strongly based on von neumann’s design of what a computer should be like. It means programs in this style are instruction sequences. And a good number of the popular languages are written around this philosophy  “compute/execute instruction in processor,store data and results in memory and have a bus that serves as transportation between the two”

Functional programming is different from this. The approach of object oriented programming is orthogonal to both Functional or Imperative i.e. it is independent of the two and can be successfully combined with both the above discussed types of programming.

Martin Odersky says that imperative programming is limited by the “Von Neumann Bottleneck” which is that “One tends to visualize datastructures word-by-word” – I dint quite understand that in entirety – will update the post when i do so

 

Lets consider Mathematics. Every other topic in mathematics consists of laws that describe relationships between data and a set of operations that can be done on them. So Quote Martin ” If we want to implement  high-level concepts following their mathematical theories,then there’s no place for mutation”. So we want to be able to

  1. concentrate on defining theories for operators
  2. avoid mutations
  3. have powerful ways to abstarct and compose theories.

This is what functional programming  is all about. and this is the space that functional programming operates in.

Posted in Functional Programming | Tagged , , , | 1 Comment