Useful Codes


20
Apr 10

Command Line Trash Can (Deferred Deletes)

I’m a Mac. I’m also an Ubuntu. I’m even a PC. In each of these, I have a pretty interface that lets me drag and drop just about anything to the Trash. Albeit an old, old feature that hardly ever comes in handy; when it does, it’s priceless. The thing is, I hardly ever use my GUI. Ever. I ride the command line like a drunken cowboy trying to prove something to the carneys. Given I really adore the concept of the GUI Trash deferred delete paradigm, I’ve added it to my command-line recipe book, giving it to me; GUI or not.

Continue reading →


16
Apr 10

Extensible Shell Environment Across Your Servers

One of my biggest frustrations any time I move to a new server: migrating to a new data center, changing jobs or simply adding new servers somewhere in between is keeping my customized shell environment while giving each server a bit of customizability. Of course, in a linux environment, we have our coveted .bashrc that will do this.  But what has helped me through this process time and time again is building my .bashrc to allow for server-specific extensions.  Here’s how I’ve done it. Continue reading →


2
Sep 09

Magical screens

Hello, I am the internet, and I am a screenoholic. Yes, I love screen. Never is an ounce of work accomplished on the command line without being encapsulated in the warm embrace of my favorite stateful terminal session manager. So much so that I quickly found myself being annoyed of always having to find my screen and never remembering what I named it, if I named it at all. And even worse were the times where I would lose my terminal to find that I was abandoned by my digital soul mate by never calling them before I stared. Oh how the innocence of youth lost so many critical vim undo buffers and ssh connections. I mean seriously, how many times can a guy type `ssh` in a day before hanging his self. 12. It turns out that number is 12. The resolution to my laziness was something of a revolution when I realized all the work I always forgot to do and never wanted to forget again could be easily accomplished automatically, every time I logged in. All hail the .bashrc. In other words, you can harness the power of .bashrc by intelligently invoking screen when you log in as well as giving a few helper functions along the way. Here is what I mean.

Continue reading →


19
Aug 09

Avoiding Latency when Using 3rd Party Widgets and Plugins

Anyone maintaining a site, blog or similar at some point has been tempted to add a widget or plugin provided by a 3rd party source. Twitter, Digg and ShareThis are just a few examples of sites that provide code and/or plugins (widgets) to help provide some level of dynamic and valued content. Although each of these can be incredibly useful (at least I think so as I’ve installed the Twitter WordPress plugin on this blog), they implicitly add page-rendering dependencies to your site as anyone who visits waits around for their code to load. Generally, this isn’t all that big of a deal as most of these sites have incredible uptime. But then there are sites like Twitter who seem to have some serious issues of staying alive. Particularly with plugins for content management applications like WordPress and the like, you have very little control into where the source will be loaded in the document and without any intervention, a staggering Twitter will throw your site into a tail-spin of foot tapping until your visitor’s browser finally gets fed up (after 30 seconds or so) and gives up the download. In the meanwhile, expect that person to not only leave your site but likely never come back. Not exactly what you’re looking for. Personally, I got fed up with Twitter’s lack of reliability, killing my load times and losing visitors. Luckily, if you are using a modern web server and you have access to modify the configuration, there is a simple patch you can apply to pull the reins back in and gain control of your own site performance. The example below is a patch you can apply to the Apache HTTP web server config although can be cross-ported to any of the other modern web servers that support Proxying.

Continue reading →