http://www.jkvor.comjkvorwww.jkvor.com2011-06-11T14:35:34Zhttp://www.jkvor.com/utilizing-redis2011-06-11T14:35:34ZLondon Erlang Factory 2011Orion and I gave a talk titled "Utilizing Redis in distributed Erlang systems"Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/bash-redis-cli2011-06-11T14:35:34ZPoking redis with netcatnetcat makes for a fine redis client.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/tempo2011-06-11T14:35:34ZPretty Tempo graphsTempo is a node.js websocket graphing interface to redis pub/subJakejacob.vorreuter@gmail.comhttp://www.jkvor.com/ruby-conf2011-06-11T14:35:34ZRubyConf '10I just got back from RubyConf in New Orleans. Fun times.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/latenightbadidea2011-06-11T14:35:34ZLateNightBadIdea.comThis is my contribution to society.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/release-handling2011-06-11T14:35:34ZTarget systems and release handlingThe 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.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/epm-plugins2011-06-11T14:35:34ZEPM 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.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/erlang-package-manager2011-06-11T14:35:34ZMaking Erlang package management easy with EPMI 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.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/hot-code-loading2011-06-11T14:35:34ZErlang hot code swappingHot 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.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/log-roller2011-06-11T14:35:34ZDistributed logging with log_rollerThe 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.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/marley-heroku-blogging2011-06-11T14:35:34ZBlogging with Marley on HerokuI 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!Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/rabbitmq-erlang-client2011-06-11T14:35:34ZCircumventing AMQP with the RabbitMQ Erlang clientAMQP (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.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/hacking-erlang2011-06-11T14:35:34ZErlang User Conference 2009Material from my talk, Hacking Erlang Through Preprocessing, at EUC '09 in Stockholm.Jakejacob.vorreuter@gmail.comhttp://www.jkvor.com/erlang-binary-protocol-memcached-client2011-06-11T14:35:34ZErlang binary protocol Memcached clientThe 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.Jakejacob.vorreuter@gmail.com