tag:blogger.com,1999:blog-41520973736410051382009-02-21T01:45:43.630-08:00Cloud ScaleThe rarified atmosphere of cloud design.Jamiesonhttp://www.blogger.com/profile/14353751020175443175noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-4152097373641005138.post-12132524155763325462008-12-31T16:23:00.000-08:002009-01-10T14:32:35.032-08:00Memcache may not be as fast as you thinkI 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 Jamiesonhttp://www.blogger.com/profile/14353751020175443175noreply@blogger.com6tag:blogger.com,1999:blog-4152097373641005138.post-89719222435856135842008-10-19T14:40:00.001-07:002009-01-08T00:42:52.659-08:00Finding actual path of a python scriptPython 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__)).Jamiesonhttp://www.blogger.com/profile/14353751020175443175noreply@blogger.com2tag:blogger.com,1999:blog-4152097373641005138.post-12024954579106629542008-08-03T11:21:00.000-07:002009-01-08T00:42:42.027-08:00How to install XMMS in Debian LennyAs 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), Jamiesonhttp://www.blogger.com/profile/14353751020175443175noreply@blogger.com4tag:blogger.com,1999:blog-4152097373641005138.post-12850801923161437842008-07-23T09:44:00.000-07:002009-01-08T00:42:30.879-08:00"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 clickedJamiesonhttp://www.blogger.com/profile/14353751020175443175noreply@blogger.com0tag:blogger.com,1999:blog-4152097373641005138.post-41795208013298177172008-06-25T19:43:00.001-07:002009-01-08T00:41:47.951-08:00Dynamic MMAP ran out of roomI 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";Jamiesonhttp://www.blogger.com/profile/14353751020175443175noreply@blogger.com0tag:blogger.com,1999:blog-4152097373641005138.post-9967777597839248302008-06-05T22:47:00.000-07:002009-01-08T00:41:42.683-08:00Quickie databases (in JSON, of course)(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 Jamiesonhttp://www.blogger.com/profile/14353751020175443175noreply@blogger.com1tag:blogger.com,1999:blog-4152097373641005138.post-15360506697839975522008-06-04T18:30:00.000-07:002008-06-04T19:11:46.927-07:00HTTP Status Codes (Errors) in JSON and XML FormatHere'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 is onlyJamiesonhttp://www.blogger.com/profile/14353751020175443175noreply@blogger.com3tag:blogger.com,1999:blog-4152097373641005138.post-74177042642900268282008-06-04T12:35:00.000-07:002008-06-08T20:05:43.768-07:00Overselling your disks without LVMIt'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 provideJamiesonhttp://www.blogger.com/profile/14353751020175443175noreply@blogger.com0