<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-4152097373641005138</id><updated>2009-01-16T08:14:48.017-08:00</updated><title type='text'>Cloud Scale</title><subtitle type='html'>The rarified atmosphere of cloud design.</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default'/><link rel='alternate' type='text/html' href='http://jamiesonbecker.com/blog.html'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jamiesonbecker.com/atom.xml'/><author><name>Jamieson</name><uri>http://www.blogger.com/profile/14353751020175443175</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4152097373641005138.post-1213252415576332546</id><published>2008-12-31T16:23:00.000-08:00</published><updated>2009-01-10T14:32:35.032-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memcache caching'/><title type='text'>Memcache may not be as fast as you think</title><summary type='text'>I became a big fan of memcache a few years ago and used it for several projects, where it was extremely useful. A recent project involved distributed caching on front-end web servers that each had multiple GB's of RAM and about 1TB of local disk each.  As I was designing the application, I did some simple testing to learn whether the advantage of hitting a network-based memory cache could really </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/1213252415576332546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jamiesonbecker.com/2008/12/memcache-may-not-be-as-fast-as-you.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/1213252415576332546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/1213252415576332546'/><link rel='alternate' type='text/html' href='http://jamiesonbecker.com/2008/12/memcache-may-not-be-as-fast-as-you.html' title='Memcache may not be as fast as you think'/><author><name>Jamieson</name><uri>http://www.blogger.com/profile/14353751020175443175</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4152097373641005138.post-8971922243585613584</id><published>2008-10-19T14:40:00.001-07:00</published><updated>2009-01-08T00:42:52.659-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Finding actual path of a python script</title><summary type='text'>Python guru ironfroggy pointed out a quick way to pull the path of the module you are located in (aside from sys.modules['__main__'], which doesn't always work) is os.path.abspath(os.path.dirname(__file__)).</summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/8971922243585613584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jamiesonbecker.com/2008/10/finding-actual-path-of-python-script.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/8971922243585613584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/8971922243585613584'/><link rel='alternate' type='text/html' href='http://jamiesonbecker.com/2008/10/finding-actual-path-of-python-script.html' title='Finding actual path of a python script'/><author><name>Jamieson</name><uri>http://www.blogger.com/profile/14353751020175443175</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4152097373641005138.post-1202495457910662954</id><published>2008-08-03T11:21:00.000-07:00</published><updated>2009-01-08T00:42:42.027-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian xmms'/><title type='text'>How to install XMMS in Debian Lenny</title><summary type='text'>As with most of my posts, this one is also a quickie problem solution, so ignore it if it doesn't apply to you. Why XMMS when it's been dropped by Debian and Ubuntu? Simply because it handles problematic playlists (i.e., playlists with ../ in them, which I use a lot and audicious doesn't handle), it handles all files without crashing (i.e., Amarok and Audacious both hang with many of my tunes), </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/1202495457910662954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jamiesonbecker.com/2008/08/xmms-in-lenny.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/1202495457910662954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/1202495457910662954'/><link rel='alternate' type='text/html' href='http://jamiesonbecker.com/2008/08/xmms-in-lenny.html' title='How to install XMMS in Debian Lenny'/><author><name>Jamieson</name><uri>http://www.blogger.com/profile/14353751020175443175</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4152097373641005138.post-1285080192316143784</id><published>2008-07-23T09:44:00.000-07:00</published><updated>2009-01-08T00:42:30.879-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dns security vulnerability'/><title type='text'></title><summary type='text'>"Patch.  Today.  Now. Yes, stay late.  Yes, forward to OpenDNS if you have to.  (They’re ready for your traffic.)  Thank you to the many of you who already have."

The largest vulnerability since about 1999 is here!

THIS IS HUGE. THIS IS HUGE. THIS IS HUGE. (AND APPARENTLY  QUITE REPETITIVE.)

EVERY WEBSITE THAT YOU LOG INTO MIGHT NOT ACTUALLY BE THE WEBSITE THAT YOU THINK IT IS.

If you've ever</summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/1285080192316143784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jamiesonbecker.com/2008/07/patch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/1285080192316143784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/1285080192316143784'/><link rel='alternate' type='text/html' href='http://jamiesonbecker.com/2008/07/patch.html' title=''/><author><name>Jamieson</name><uri>http://www.blogger.com/profile/14353751020175443175</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4152097373641005138.post-4179520801329817717</id><published>2008-06-25T19:43:00.001-07:00</published><updated>2009-01-08T00:41:47.951-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian ubuntu'/><title type='text'>Dynamic MMAP ran out of room</title><summary type='text'>I always forget this, and wanted to post it here: if you ever get "Dynamic MMAP ran out of room" when apt-get updating, it's probably because you're pinning or getting ready to dist-upgrade. To fix it, just add this line to /etc/apt/apt.conf to increase the apt cache limit to 8MB:

APT::Cache-Limit "8388608";</summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/4179520801329817717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jamiesonbecker.com/2008/06/dynamic-mmap-ran-out-of-room.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/4179520801329817717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/4179520801329817717'/><link rel='alternate' type='text/html' href='http://jamiesonbecker.com/2008/06/dynamic-mmap-ran-out-of-room.html' title='Dynamic MMAP ran out of room'/><author><name>Jamieson</name><uri>http://www.blogger.com/profile/14353751020175443175</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4152097373641005138.post-996777759783924830</id><published>2008-06-05T22:47:00.000-07:00</published><updated>2009-01-08T00:41:42.683-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='json http iso countries codes zip IP states area codes'/><title type='text'>Quickie databases (in JSON, of course)</title><summary type='text'>(Note: all of the JSON files below I created/converted by hand using regular expressions, and I'm placing them into the public domain. The larger ones are compressed with gzip, which is a fast but efficient standardized compression system. (It's part of HTTP -- yes, even Internet Explorer has been able to decompress it for years.)  If you need a program to decompress it, it's probably already </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/996777759783924830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jamiesonbecker.com/2008/06/quickie-databases-in-json-of-course.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/996777759783924830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/996777759783924830'/><link rel='alternate' type='text/html' href='http://jamiesonbecker.com/2008/06/quickie-databases-in-json-of-course.html' title='Quickie databases (in JSON, of course)'/><author><name>Jamieson</name><uri>http://www.blogger.com/profile/14353751020175443175</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4152097373641005138.post-1536050669783997552</id><published>2008-06-04T18:30:00.000-07:00</published><updated>2008-06-04T19:11:46.927-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http status error json xml w3c python'/><title type='text'>HTTP Status Codes (Errors) in JSON and XML Format</title><summary type='text'>Here's a handy conversion of the W3C HTTP Status codes from w3.org and descriptions into both XML and JSON format.

Here's a sample in JSON:
"302": {
  "name": "Found",
  "description": [
      "The requested resource resides temporarily under a different URI. Since the redirection might be altered on occasion, the client SHOULD continue to use the Request-URI for future requests. This response </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/1536050669783997552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jamiesonbecker.com/2008/06/http-error-descriptions-in-json-and-xml.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/1536050669783997552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/1536050669783997552'/><link rel='alternate' type='text/html' href='http://jamiesonbecker.com/2008/06/http-error-descriptions-in-json-and-xml.html' title='HTTP Status Codes (Errors) in JSON and XML Format'/><author><name>Jamieson</name><uri>http://www.blogger.com/profile/14353751020175443175</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4152097373641005138.post-7417704264290026828</id><published>2008-06-04T12:35:00.000-07:00</published><updated>2008-06-08T20:05:43.768-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sparse virtual servers filesystem linux-vserver xen lvm2'/><title type='text'>Overselling your disks without LVM</title><summary type='text'>It's easy to "oversell" (i.e., pretend that you have more disk available) your disks by simply using sparse files. This is particularly useful with Linux-Vserver, Xen, UML, VMware, etc. Just use these sparse files (already mounted) as the "backing store" for your virtual machines.

For instance, let's say that you only have a 1TB filesystem in RAID1 available on your server, but you want to </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/7417704264290026828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jamiesonbecker.com/2008/06/overselling-your-disks-without-lvm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/7417704264290026828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4152097373641005138/posts/default/7417704264290026828'/><link rel='alternate' type='text/html' href='http://jamiesonbecker.com/2008/06/overselling-your-disks-without-lvm.html' title='Overselling your disks without LVM'/><author><name>Jamieson</name><uri>http://www.blogger.com/profile/14353751020175443175</uri><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>