Message Queue Evaluation Notes - Second Life Wiki
http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes
RabbitMQ - A Fast, Reliable Queuing Option for Rubyists
http://www.rubyinside.com/rabbitmq-a-fast-reliable-queuing-option-for-rubyists-1681.html
When it comes to developing large systems with many interdependent parts, it’s common nowadays to use “queues.”
Runs as a daemon to link separate apps via a queue. Article includes suggested links.Quick Tip: Prevent Animation Queue Buildup » Learning jQuery - Tips, Techniques, Tutorials
celery is a distributed task queue framework for Django. It is used for executing tasks asynchronously, routed to one or more worker servers, running concurrently using multiprocessing.Gearman
# Reverse Worker Code $worker= new GearmanWorker(); $worker->addServer(); $worker->addFunction("reverse", "my_reverse_function"); while ($worker->work()); function my_reverse_function($job) { return strrev($job->workload()); }
Gearman provides a generic application framework to farm out work to other machines or processes that are better suited to do the work. It allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events. In other words, it is the nervous system for how distributed processing communicates.
language independent worker frameworkThe Rails Way: Do it Later With Delayed Job.
Ryan's meta-programming approach for declaring background tasks doubles-up as documentation, and puts the focus on the individual methods rather than requiring you to create separate classes for your jobs.
Do it Later With Delayed Job.Advanced Messaging & Routing with AMQP - igvita.com
Cet article explique ce qu'est AMQP et comment l'utiliser en Ruby.
The flexibility of the message and the exchange model is what makes AMQP such a powerful tool. Whenever a publisher generates a message, he can mark it as 'persistent' which will guarantee delivery through the broker - if there is an attached queue, it will accumulate messages until the consumer requests them. However, if you're streaming transient data (access logs, for example), you can also disable message persistence and not worry about overwhelming your broker. That's how you achieve 'exactly-once' vs 'at least once' semantics.
Your font is too damn small.Introducing Resque - GitHub
バッググランドジョブを管理する Resque の紹介Strategy: Flickr - Do the Essential Work Up-front and Queue the Rest | High Scalability
This strategy is stated perfectly by Flickr's Myles Grant: The Flickr engineering team is obsessed with making pages load as quickly as possible. To that end, we’re refactoring large amounts of our code to do only the essential work up front, and rely on our queuing system to do the rest. Flickr uses a queuing system to process 11 million tasks a day. Leslie Michael Orchard also does a great job explaining the queuing meme in his excellent post Queue everything and delight everyone. Asynchronous work queues are how you scalably solve problems that are too big to handle in real-time.Finally: Finger Trees! : Good Math, Bad Math
What finger trees do is give me a way of representing a list that has both the convenience of the traditional cons list, and the search efficiency of the array based method. The basic idea of the finger tree is amazingly simple. It's a balanced tree where you store all of the data in the leaves. The internal nodes are just a structure on which you can hang annotations, which you can use for optimizing search operations on the tree.
"The basic idea of the finger tree is amazingly simple. It's a balanced tree where you store all of the data in the leaves. The internal nodes are just a structure on which you can hang annotations, which you can use for optimizing search operations on the tree. What makes the finger tree so elegant is the way that some very smart people have generalized the idea of annotations to make finger trees into a single, easily customizable structure that's useful for so many different purposes: you customize the annotations that you're going to store in the internal nodes according to the main use of your tree." A commentator says regarding the article however, "Ørjan Johanse is right. You described a monoid-annotated-binary-tree, which is not enough to be a finger tree."The hoverFlow Plugin - A Solution to Animation Queue Buildup in jQuery
Another Solution to Animation Queue Buildup in jQuery Or: Why do hover animations continue after I stop hovering? Over at learningjQuery.com, Brandon Aaron published a quick tip on how to prevent animation queue buildup in hover animations. Since I was not satisfied with his solution, I tried to find another. After taking some wrong paths and learning a lot about jQuery's animation (queue) system, I think I finally found a good solution. The last locigal step was to wrap it up into a nice jQuery plugin - and so hoverFlow was born.
hoverFlow is a jQuery plugin that avoids animation queue buildup in hover animations. The plugin honors a single mouseover/-out with a full animation cycle while still preventing the continuation of the animation after the mouse has stopped moving.
A solution to animations building up after MouseOver.
The plugin honors a single mouseover/-out with a full animation cycle while preventing animation queue buildup.Ruby Algorithms: Sorting, Trie & Heaps - igvita.com
Collection of some useful Ruby data structures all coded up and ready for use.Beanstalkd / Python Basic Tutorial - Standard Deviations
Beanstalkd is an in-memory queuing system. It supports named queues (called ‘tubes’), priorities, and delayed delivery of messages. Terminology: a message is called a job, and queues are called tubes
c = serverconn.ServerConn('localhost', 99988)Gojko Adzic » Improving performance and scalability with DDD
Distributed systems are not typically a place where domain driven design is applied. Distributed processing projects often start with an overall architecture vision and an idea about a processing model which basically drives the whole thing, including object design if it exists at all. Elaborate object designs are thought of as something that just gets in the way of distribution and performance, so the idea of spending time to apply DDD principles gets rejected in favour of raw throughput and processing power. However, from my experience, some more advanced DDD concepts can significantly improve performance, scalability and throughput of distributed systems when applied correctly.
One of the most important building blocks of DDD that can help in distributed systems are aggregates. Unfortunately, at least judging by the discussions that I’ve had with client teams over the last few years, aggregates seem to be one of the most underrated and underused building blocks of DDD. I’m probably as guilty as anyone else of misusing aggregates and it took me quite a while to grasp the full potential of that concept. But from this perspective I think that getting aggregates just right is key to making a distributed system work and perform as expected.Nicholas Piël » ZeroMQ an introduction
ZeroMQ is a messaging library, which allows you to design a complex communication system without much effort.
ZeroMQ is a messaging library, which allows you to design a complex communication system without much effort. It has been wrestling with how to effectively describe itself in the recent years. In the beginning it was introduced as ‘messaging middleware’ later they moved to ‘TCP on steroids’ and right now it is a ‘new layer on the networking stack’. I had some trouble understanding ZeroMQ at first and really had to reset my brain. First of all, it is not a complete messaging system such as RabbitMQ or ActiveMQ. I know the guys of Linden Research compared them, but it is apples and oranges. A full flexed messaging system gives you an out of the box experience. Unwrap it, configure it, start it up and you’re good to go ones you have figured out all its complexities. ZeroMQ is not such a system at all; it is a simple messaging library to be used programmatically. It basically gives you a pimped socket interface allowing you to quickly build your own messaging system.
Libreria para comunicaciones
I had some trouble understanding ZeroMQ at first and really had to reset my brain. First of all, it is not a complete messaging system such as RabbitMQ or ActiveMQ. I know the guys of Linden Research compared them, but it is apples and oranges. A full flexed messaging system gives you an out of the box experience. Unwrap it, configure it, start it up and you’re good to go once you have figured out all its complexities. ZeroMQ is not such a system at all; it is a simple messaging library to be used programmatically. It basically gives you a pimped socket interface allowing you to quickly build your own messaging system.
#ZeroMQ an introduction - http://goo.gl/Za3t #python #messaging