Name: Bhasker V Kode
Member since: 2007-03-28 15:43:21
Last Login: 2008-04-02 15:15:17
Homepage: http://bhaskervk.com
Notes: Being there, doing that... in the world of garage innovations on the web ,and weekend hacks.
Keep Clicking, Bhasker V Kode
Erlang, distribution & bspawner
Sriram Krishnan was enquiring about distributed programming tools and all things distributed. No doubt, the first thing that came into my mind was "erlang", and taking into consideration that he was inviting feedback & his recent work on cacheman and on server /app performace i thought it would be a good time to talk about bspawner - my own pet project among other things erly.
Load Balancing & Introducing bspawner
Erlang nodes can communicate over the network if they find each other. You can send a message to any process (differ from OS process) through its Pid – even if the process is on another node.
Although you don't have to know where processes are, it is still up to the erlang programmer to decide which node initially spawns a task on which node as there is no inherent way to make use of multiple nodes , even though they recognize each other & can message-pass between them.
bspawner is a project i've open sourced - that attempts to load-balance the task of spawning across multiple nodes . The steps involved can be isolated into a couple of distinct problems.
This project in its essence, deals with the first part and the implementation of the message passing begins with the "messenger.erl" sample program and modifiedto handle the intended message-passing, load-balancing and node-information
Cheers to the feedback, suggestions , comments, and further changes inspired by the growing involvement of the erlang community & encouragement from #erlang in particular.
However, since the project is still in its early stages - and although it was a fantastic learning experience - I learned that Erlang already had inbuilt load-balancing module that I quote:
How cool can it get! Since it's even build in a master-slave basis - when one worker goes down, restart strategies can be configured courtesy of Erlang's OTP supervisor and behaviours. this basically allows you to horizontally scale and have distribute processing among box's. I'm even wondering to test this setup at hover.in on weekends by maybe doing some bizarrely wild clustered processing job like ...pool can be used to run a set of Erlang nodes as a pool of computational processors. It is organized as a master and a set of slave nodes and includes the following features:
- The slave nodes send regular reports to the master about their current load.
- Queries can be sent to the master to determine which node will have the least load.
Testing & Test suites
I'm not much into the whole test suite setup as yet, but there a good test suite that is widely adopted would be
Distributed Monitoring & Debugging
Regarding utilities for debugging & profiling ,etc apart from user-contributed packages, and there are loads of them on process-one, trapexit , jungerl, google code ,etc - I thought I would list few of the interesting utilties . ( see more on the left side of the documentation at erlang.org under Tool Applications )
These go hand in hand with other utilities like the distributed database also written in erlang called Mnesia, or other open-source erlang implementations of everything from bloom filters and decisssion trees , to bayeux protocol-comet servers and cron jobs.
Preserving State in Datastrutctures, Process's or Servers
Behaviours are templates or formalizations of common design patterns. The three inbuilt behaviours are gen_server (client-server paradigms), gen_event (event-driven paradigms) and gen_fsm ( finite state machine paradigms). In addition you can create your own behaviours and have modules implement them. (Emacs in erlang mode, even gives nice skeletons for all behaviours, common design patterns)
You can also have stateless or stateful process's which can run indefintely, or be blocking in nature or exit after a timeout. Which really opens up a whole lot of possibilities, but again - since the key is in message passing - regardless of the process's being on your local node or half way across the globe.
To think about ....
Syndicated 2008-05-24 08:06:00 (Updated 2008-05-24 10:17:12) from Bosky
Updates on Identities on the web
Some thoughts on identities and their related data , online accounts and related news over the past few weeks.Syndicated 2008-05-20 12:32:00 (Updated 2008-05-20 15:07:21) from Bosky
1 Apr 2008 (updated 2 Apr 2008 at 00:09 UTC) »
Developing developer platforms Part-1
It's no secret that I've always been an ardent admirer of companies that invest in impressive internal tools, developer resources, and internal things that make your developers go mmmh! Perhaps thats the secret to how they manage to release public api's and platforms for developers quickly in their product life cycle than companies with more mature products,but spend more time and effort trying to open up API's even for internal use in a plug-n-play, easy to lookup&hack fashion. Facebook & YUI will always be remembered for the part they've played in this very paradigm.Technorati Tags: programming, api, facebook, yui, bosky, hover
Syndicated 2008-04-01 21:23:00 (Updated 2008-04-01 23:46:32) from Bosky
13 Mar 2008 (updated 2 Apr 2008 at 23:14 UTC) »
it doesnt matter what language you write in, if you can write the future
I often hear about an upcoming platform going to revolutionize the next decade. Now I have no qualms with this , and infact biased towards big-thinkers . But i just think that on the contrary this is an inherent potential that any platform / technology can claim. How big was it designed to be when it was visualized ? Were they thnking big enough when the users were thought of ? I think these are interesting questions. Because for all practical reasons ,it is you who writes the future. Literally in your code , in your packaging, and its scaling before it goes out there for better or for worse. Who would you blame for X's success or failure? seems reasonable enough to claim X to please stand up. But looking deeper I think it's only fair to say that you may have limited yourself to build something just big enough for a million people to notice that it's doing well. Might sound cruel? but thats the way the way consumer web products space works.
Blogged with Flock
Syndicated 2008-03-13 15:09:00 (Updated 2008-04-02 22:37:07) from Bosky
pipesCamp, unconference for yahoo! pipes enthusiasts [del.icio.us]
pipesCamp, is an unconference for yahoo! pipes enthusiasts, and will be held in Chennai, India for the first time on december 23, 2007 .bkode certified others as follows:
Others have certified bkode as follows:
[ Certification disabled because you're not logged in. ]
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!