Tangle is a JavaScript library for creating reactive documents. Your readers can interactively explore possibilities, play with parameters, and see the document update immediately. Tangle is super-simple and easy to learn.
Facebook Chat looks very simple by design, but if you pry deeper you’ll learn that it’s an impressive engineering and design feat. One must question: how was Facebook Chat, which was to serve over 70 million users when it was built (now serving over 500 million), developed? What technologies were put together to bake this web-based chat feature?
Eugene Letuchy, the lead developer of Chat, from Facebook, has put the answers down in a neat presentation that highlights the main aspects of what went into Facebook Chat.
At the heart of Facebook Chat, and thus the central part of this presentation, is a programming language called Erlang, which is a general-purpose concurrent, garbage-collected programming language and runtime system.
For the more curious among us, I’m listing below a glossary of terms – the technologies and the buzzwords – that have made Facebook Chat possible, and scalable, for over 500 million people. Most of these technologies are open source:
Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang\’s runtime system has built-in support for concurrency, distribution and fault tolerance.
A polyglot is a computer program or script written in a valid form of multiple programming languages, which performs the same operations or output independently of the programming language used to compile or interpret it.
To make Facebook Chat available everywhere, they are using the technology Jabber (XMPP), an open messaging protocol supported by most instant messaging software, including iChat, Pidgin, Adium, Miranda and more.
Thrift is a remote procedure call framework developed at Facebook (later submitted and accepted under Apache Software Foundation) for “scalable cross-language services development”.
Presence information is a status indicator that conveys ability and willingness of a potential communication partner – for example a user – to communicate.
JavaScript is primarily used in the form of client-side JavaScript, implemented as part of a web browser in order to provide enhanced user interfaces and dynamic websites.
Comet is a web application model in which a long-held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it. It’s also sometimes called as Ajax Push and Reverse Ajax, among others.
In concurrent (parallel) programming, single tasks are split into a number of subtasks that can be computed relatively independently and then aggregated to form a single coherent solution.
Load balancing is a technique to distribute workload evenly across two or more computers, network links, CPUs, hard drives, or other resources, in order to get optimal resource utilization, maximize throughput, minimize response time, and avoid overload.
To transmit a single message to a select group of recipients. A simple example of multicasting is sending an e-mail message to a mailing list. Teleconferencing and videoconferencing also use multicasting, but require more robust protocols and networks.
A segmentation fault (often shortened to segfault) occurs when a program attempts to access a memory location that it is not allowed to access, or attempts to access a memory location in a way that is not allowed.
Out of memory (OOM) is an undesired state of computer operation where no additional memory can be allocated for use by programs or the operating system.
Hot code swapping refers to the ability to alter the running code of a program without needing to interrupt its execution. Only a few programming languages support hot swapping natively, including Pike, Lisp, Erlang, Smalltalk, and Java.
Being in the field of IT (Computer Science), it\’s necessary to keep pace with the changing landscape, otherwise you would end up rendering yourself obsolete. It\’s no different with web development/programming: The landscape keeps changing, either on the user interface front or the browser side or the website back-end.
Zenning is the online musing space, or (as known popularly) blog, of a visionary entrepreneur, technology evangelist and ideas man, Sawant Shah.
I am going to write about things that interest me the most, and that excludes almost nothing! I am into startups, web development, new technology, social media and open source stuff.