Every time we press a key in an interactive SSH session, the SSH Client sends that keystroke as a TCP segment to the SSH Server. Here is a Wireshark capture of I having SSH-ed into my own machine and pressing a single key . I have not included packets indicating the setup and teardown of the TCP and SSH connections. You can differentiate between the client and server from the source and…
This is actually very unlike a man page. It assumes that you know very little about TCP/IP networking. It also deals with only the parameter-less invocation of ifconfig , since other invocations are well documented in the real man page. You can read the sections independently of one another, skipping what you already know. In this regard, it is quite like a man page. What is ifconfig? ifconfig is…
Earlier this year, Shishir Das and I presented at RubyConf India 2012 on how to go about crafting beautiful, utilitarian and functioning command line applications using Ruby. And then this week, I got a chance to speak about the same topic at the Ruby Lightning Talk series organized by the great folks at ApartmentList and Thoughtbot in the heart of SoMa in San Francisco. I condensed the…
While working on deploying a web-application recently, I needed to transfer a build artifact (fancy name for a .tgz ) from a Continuous Integration server to an RPM repository server. We already have an existing RPM repository server that uses Apache, and once my tarball was in the correct location, it would be available over HTTP for all to consume. Cutting to the chase What is the simplest way…
Almost everyone I know who writes any Ruby outside of the irb REPL uses Bundler. And everyone I know uses RVM to manage their rubies and their gems locally, except for this one guy who uses rbenv (which is a great tool, more on that in another blog post). I have observed people use different strategies and workflows with bundler and RVM, since there is at least one overlap in what they do: manage…
It started with SSH sessions to the Bangalore data center freezeing up sporadically. It wasn t all that sporadic, a pattern was noticed soon enough a harmless C-x C-s issued when inside vi. Unfortunately, most distros do not come bundled with emacs and I have to resort to botching up and fumbling with vi (or vim) to edit a few configurations now and then. Everytime I d tweak an LXC configuration…
Presented earlier this year in January 2011, Chris Breisemeister put forth a few practices that we follow when working with a variety of large enterprise clients on software delivery and enablement. We start right from the basics of what lifecycle does a line of code typically follow to how different environments should be configured and managed. Since we talked to a Ruby audience, we talk…
@AjeyGore and I presented deployment patterns and paradigms that we ve observed and influenced while consulting and enabling numerous clients. The ones at the beginning are ideal for smaller scale applications that do not typically need to scale fast. We also go on to talk on more advanced patterns by using system-level packing tools that can enable an application to scale very rapidly if you use…
This is a followup from the lightning talk 5 Time Saving Bash Tricks that I gave at DevOpsDays, Bangalore 2011. SSH multiplexing Adding these to ~/.ssh/config or /etc/ssh_config will allow you to multiplex one SSH connection to open multiple terminals, multiple scp and git push without having to authenticate over keys or passwords. Host \* ControlMaster auto ControlPath /tmp/%r0%h:%p Ensuring Bash…