Name: Duncan McGreggor
Member since: 2001-11-21 22:13:44
Last Login: 2008-10-23 14:55:14
Homepage: You're looking at it.
Notes: If you would like to leave comments on the blog posts, visit the blogger version.
echo "wngvtg@twrmnf.nl" | tr a-z h-za-g(thanks for the tip, fxn !)
21 Jun 2009 (updated 21 Jun 2009 at 05:05 UTC) »
Mac OS X: Execute Shell Commands via Icon-Clicks
My main development machine is a custom PowerBook running Ubuntu natively. I use it when I'm sitting on the couch, my office comfy chair, the futon, floor, etc. Every once in a while, though, I want to work at a desk from my 24" iMac. Just to mix it up a little. However, that box is my gaming and web-browsing machine: it runs Mac OS X and that's the way I want to keep it. So, if I'm going to do work on the iMac, I need to ssh into the machines that have the environments set up for development.open -n "/Applications/Utilities/Terminal.app"
vi ~/.bash_profile
if [ ! -z "$REMOTE_CONNECTION" ]; then
ssh $REMOTE_CONNECTION
REMOTE_CONNECTION=""
fi
REMOTE_CONNECTION=rhosgobel \
open -n "/Applications/Utilities/Terminal.app"
Now, I just click my "Shells" menu, choose the destination, and start working on that machine. A new window or new tab opened with that instance of Terminal.app will give me a new session to that server, without having to manually ssh into it -- this is even more convenient than having an icon to double-click!Syndicated 2009-06-21 03:01:00 (Updated 2009-06-21 04:09:57) from Duncan McGreggor
18 Jun 2009 (updated 18 Jun 2009 at 22:05 UTC) »
A Sinfonia on Messaging with txAMQP, Part III
Unlike databases which manage data at rest, messaging is used to manage data in motion. Use messaging to communicate between and scale applications, within your enterprise, across the web, or in the cloud.Paraphasing Wikipedia's entry on AMQP:
The AMQ protocol is for managing the flow of messages across an enterprise's business systems. It is middleware to provide a point of rendezvous between backend systems, such as data stores and services, and front end systems such as end user applications.
AMQP Essentials
AMQP is a protocol for middleware servers -- servers that accept, route, and buffer messages. The AMQP specification defines messaging server LEGO blocks that can be combined in various ways and numbers, achieving any manner of messaging goals, whose final forms are as diverse as the combinations of the components.
For the visually inclined, below is a simple diagram of the AMQ protocol. I've put multiple virtual hosts in the diagram to indicate support for multiple server "segments" (domains in the most general sense). There could just as easily be multiple exchanges and queues in each virtual host, as well. Likewise for publishers and consumers.
sudo rabbitmq-server
BASE=/usr/lib/erlang/lib/rabbitmq-server-1.5.5/
BIN=$BASE/scripts/rabbitmq-server
RABBITMQ_MNESIA_BASE=$BASE/mnesia \
RABBITMQ_LOG_BASE=/var/log/rabbitmq \
RABBITMQ_NODE_PORT=5672 \
RABBITMQ_NODENAME=rabbit \
$BIN &
python2.5 consumer amqp0-8.xml
python2.5 producer amqp0-8.xml \
"producer-to-consumer test message 1"
def someFunc():
d1 = someAsyncCall()
d1.addCallback(_someCallback)
d2 = anotherAsyncCall()
d2.addCallback(_anotherCallback)
@inlineCallbacks
def someFunc():
result1 = yield someAsyncCall()
# work with result; no need for a callback
result2 = yield anotherAsyncCall()
# work with second result; no need for a callback
Syndicated 2009-06-18 17:40:00 (Updated 2009-06-18 21:28:53) from Duncan McGreggor
12 Jun 2009 (updated 18 Jun 2009 at 19:07 UTC) »
A Sinfonia on Messaging with txAMQP, Part II

Unified orders: at the end of the sales process, there should be one abstraction of the "order", regardless if the source was the web store, a phone call, or the sales guy. The order abstraction will be a message (or series of messages, for orders with multiple items; we'll be addressing only the simple case of a single item).
Unified status: at the end of the manufacturing process, both the shipping guy and customers should be aware that the product has been completed and is ready to be sent: the shipping guy can connect to our messaging system (probably via a service) and the customer can be notified by email or by checking the order status in the web kilt store.Syndicated 2009-06-12 03:03:00 (Updated 2009-06-18 17:58:53) from Duncan McGreggor
7 Jun 2009 (updated 18 Jun 2009 at 19:07 UTC) »
A Sinfonia on Messaging with txAMQP, Part I
Message-oriented middleware (MOM) is infrastructure focused on message sending that increases the interoperability, portability, and flexibility of an application by allowing the application to be distributed over multiple heterogeneous platforms. It reduces the complexity of developing applications that span multiple operating systems and network protocols by insulating the application developer from the details of the various operating system and network interfaces.AMQP (Advanced Message Queuing Protocol) is one of these protcols.
Decentralized, Locally Governed Federated Mesh of AMQP Brokers with standardized Global Addressing. The killer application for AMQP is transacted secure business messages between corporations - e.g. send a banking confirmation message to confirms@bank.com [...]I find this rather exciting due to my interest in ultra large-scale systems; scenarios like the one described above are the seeds for tomorrow's ULS systems :-)
Syndicated 2009-06-07 21:22:00 (Updated 2009-06-18 17:59:07) from Duncan McGreggor
After the Cloud: Epilogue
Syndicated 2009-05-28 10:45:00 (Updated 2009-05-28 10:49:18) from Duncan McGreggor
oubiwann certified others as follows:
Others have certified oubiwann 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!