http://www.jkvor.com jkvor www.jkvor.com 2011-06-11T14:35:34Z http://www.jkvor.com/utilizing-redis 2011-06-11T14:35:34Z London Erlang Factory 2011 Orion and I gave a talk titled "Utilizing Redis in distributed Erlang systems" Jake jacob.vorreuter@gmail.com http://www.jkvor.com/bash-redis-cli 2011-06-11T14:35:34Z Poking redis with netcat netcat makes for a fine redis client. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/tempo 2011-06-11T14:35:34Z Pretty Tempo graphs Tempo is a node.js websocket graphing interface to redis pub/sub Jake jacob.vorreuter@gmail.com http://www.jkvor.com/ruby-conf 2011-06-11T14:35:34Z RubyConf '10 I just got back from RubyConf in New Orleans. Fun times. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/latenightbadidea 2011-06-11T14:35:34Z LateNightBadIdea.com This is my contribution to society. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/release-handling 2011-06-11T14:35:34Z Target systems and release handling The SASL OTP application provides tools for upgrading and downgrading application versions in a running system. This is done by packaging an application and its dependencies along with the Erlang runtime system into a tarball that can be deployed and installed on a target system. Once the first version of the target system is running, application upgrades can be performed on live code. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/epm-plugins 2011-06-11T14:35:34Z EPM plugin modules - now pull from anywhere! EPM has been refactored to support plugin modules in order to allow packages to be pulled from sources other than GitHub. There are two plugin modules packaged with EPM, github_api and bitbucket_api. However, for performance reasons only github_api is loaded by default. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/erlang-package-manager 2011-06-11T14:35:34Z Making Erlang package management easy with EPM I don't like complicated tools. When it comes to installing software, regardless of the OS or type of package I'm installing, I want the same interface. There should be commands for installing, removing, updating and searching. This is how APT, Yum, and RubyGems work. Now you can add EPM to that list. EPM is meant to help us Erlang folks setup and maintain our development environments with minimal effort and with a minimally invasive effect on our projects. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/hot-code-loading 2011-06-11T14:35:34Z Erlang hot code swapping Hot code swapping is an attractive feature of Erlang. It's what allows those fancy Ericsson telecom systems to achieve 99.9999999% reliability. Implementing it in your own code is simple. All of your favorite OTP behaviors take care of the heavy lifting for you. You're responsible only for writing a function to update the state of your stateful processes and the built-in Erlang release handler takes care of the rest. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/log-roller 2011-06-11T14:35:34Z Distributed logging with log_roller The OTP system provides a fully capable logging solution. However, in certain areas it falls short. Because of this, the Erlang world is full of custom loggers. Here's a rundown of what's provided by OTP and what's included in log_roller. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/marley-heroku-blogging 2011-06-11T14:35:34Z Blogging with Marley on Heroku I don't like using crappy web interfaces to write blog posts. I also don't like writing/editing posts with no version control. I really don't like hosting my blog on my own server or paying for hosting on someone else's server. The answer to all of my complaints turned out to be Marley/Heroku. Marley is an open-source blog engine that allows posts to be written and edited in the text editor of your choice. Combine this with Heroku's git workflow and writing, editing and deploying posts becomes incredibly simple. The process goes something like this: create a new post text file, commit it to local git index, push to github (this step could be left out), push to Heroku and it's live. Also, with Marley and Heroku, you can setup a hosted blog with custom DNS for free! Jake jacob.vorreuter@gmail.com http://www.jkvor.com/rabbitmq-erlang-client 2011-06-11T14:35:34Z Circumventing AMQP with the RabbitMQ Erlang client AMQP (Advanced Message Queuing Protocol) is the standard binary wire protocol supported by all major queuing systems. RabbitMQ is no different. Clients written in Ruby, Python, C and many other languages communicate with RabbitMQ brokers via this standard format. However, when developing in a homogenous Erlang environment it would be ideal to avoid serializing/deserializing data and sending packets through the tcp stack. This can be accomplished through message passing between client nodes and broker nodes in a connected Erlang grid. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/hacking-erlang 2011-06-11T14:35:34Z Erlang User Conference 2009 Material from my talk, Hacking Erlang Through Preprocessing, at EUC '09 in Stockholm. Jake jacob.vorreuter@gmail.com http://www.jkvor.com/erlang-binary-protocol-memcached-client 2011-06-11T14:35:34Z Erlang binary protocol Memcached client The binary protocol was introduced with memcached version 1.3. It provides a more efficient and extensible alternative to the text-based protocol that preceded it. All of the operations supported by the original protocol are available in the new protocol, and for this reason erlmc uses only the binary protocol for client-server communication. Jake jacob.vorreuter@gmail.com