tag:rohitsrealm.com,2018://1Rohit's RealmRohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/Copyright (c) 2001-2010, Rohit Nafday. All rights reserved.2018-12-21T20:04:50-08:00tag:rohitsrealm.com,2018-09-04:/archive/2018/09/04/the-photo-gallery-comes-home-to-nestThe Photo Gallery Comes Home to Nest2018-12-21T20:04:50-08:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2018-09-04T21:27:16-07:00Copyright (c) 2018, Rohit Nafday. All Rights Reserved.<p>As should be readily apparent from the lack of activity on this most wretched of sites—the <a href="http://rohitsrealm.com/archive/2017/10/25/a-very-odd-couple-apache-web-server-response-time-and-ipfilter/" title="A Very Odd Couple: Apache Web Server Response Time and IPFilter">last post</a> was nearly a year ago and about some <a href="http://rohitsrealm.com/archive/2010/09/24/fun-with-flex-bison-and-friends/" title="Fun with Flex, Bison, and Friends">weird</a> <a href="http://rohitsrealm.com/archive/2011/11/28/recent-mod-perl-woes/" title="Recent Mod Perl Woes">computer</a> <a href="http://rohitsrealm.com/archive/2017/06/03/learning-the-hard-way-postgres-recovery-from-the-file-system/" title="Learning the Hard Way: Postgres Recovery from the File System">shit</a>—very little these days can wake me from the somnolence that set in over me and this site years ago. But asleep shouldn’t necessarily be interpreted as moribund. While this pathetic excuse for a site hasn’t seen a comprehensive update in more than a <a href="http://rohitsrealm.com/archive/2007/02/06/rohits-realm-redux/" title="Rohit’s Realm Redux">decade</a>, I have not abandoned all my web properties just yet.</p>
<p>For instance, following the <a href="http://rohitsrealm.com/archive/2016/08/21/an-update-of-sorts/" title="An Update of Sorts">untimely demise</a> of the <a href="http://galleryproject.org/time-to-hibernate" title="Time to Hibernate">Gallery Project</a>, I did develop and release a web application (RIOT Gallery) for displaying my <a href="http://photos.rohitsrealm.com/" title="Rohit’s Gallery">photos</a> on the web, built on top of the <a href="http://rohitnafday.net/software/" title="RIOT">command line software</a> (RIOT) that I had developed in 2006 to <a href="http://rohitsrealm.com/archive/2006/07/12/iphoto-no-more-part-1/" title="iPhoto No More (Part 1)">facilitate</a> my <a href="http://rohitsrealm.com/archive/2006/07/27/iphoto-no-more-part-2/" title="iPhoto No More (Part 2)">photo management</a> that has served me well over the years. Over Labor Day weekend, I managed to finalize and release a much needed update to RIOT Gallery. The balance of this post summarizes the changes made, and also briefly (and, very likely, futilely) discusses what is up next.</p>
<p>The changes in this release were both structural and visual. While the latter will be immediately apparent (the site looks different!), the former are far more significant. In no particular order, the changes were as follows:</p>
<ul>
<li><strong>Nested Containers</strong>. As those sad few that have been with me prior to 2014 may recall, my old photo gallery utilized nested albums to organize various events into useful subsets (e.g., all subalbums from a trip to <a href="http://photos.rohitsrealm.com/travels/europe-2005/" title="Europe 2005">Europe</a> would be in one album). When I was implementing the first version of RIOT Gallery, I did not include this feature, primarily because it would have involved implementing recursive <abbr title="Structured Query Language">SQL</abbr> queries to manage the tree structure and I simply ran out of time.<br />The alternative, unfortunately, was rampant disorganization. Most of my photos come from <a href="http://photos.rohitsrealm.com/travels/" title="Travels">travel</a>; without groupings of albums, it was getting very hard to use. In this version, I added nested containers (at an arbitrary level, although I don’t expect to use more than one or two levels of depth). You tell me, but I think this feature, coupled with pagination (discussed next), significantly improves the usability of the gallery.</li>
<li><strong>Pagination</strong>. I’d like to think I did not implement pagination in the first iteration of RIOT Gallery for some principled reason, but thinking back on that time a couple years ago, no discernible principle has emerged. I think it may have been simply because I got lazy and decided to skip it. Whatever the excuse, I have now remedied it and pagination is back.</li>
<li><strong>HTML 5</strong>. Although there was already a tremendous buzz about HTML 5 at the time I was coding the first version of RIOT Gallery in 2015–2016, my experience with that technology was limited at the time, and I was not ready to commit the time necessary to make the switch. Since then, I have used HTML 5 for a couple sites (including in the latest revamp of my <a href="http://rohitnafday.net/" title="Rohit Nafday">personal site</a>) and come to like it quite a bit. Given that I was making significant structural changes to the code base for RIOT Gallery to implement the first two changes, it seemed like the natural time to also revamp the views.</li>
<li><strong>Style</strong>. The move to HTML 5 also resulted in two other changes, both which I view as big wins. First, I moved to a cleaner theme and styling for the site and in particular decided to move to <a href="http://fonts.google.com/" title="Google Fonts">Google Fonts</a> for typography. I happen to like the new look, but of course feedback is welcome.</li>
<li><strong>Mobile Support</strong>. The second big change resulting from HTML 5 was the ability to add much more robust mobile support. With the first version, mobile support did not extend beyond general compliance with HTML and CSS standards; the site was visible on a mobile device, but there was no attempt to address the smaller screen size or other limitations that accompany mobile devices relative to desktop computers. With a <q>fluid layout</q> in HTML 5 and CSS 3, however, I was able to make some specific tweaks to the styling that optimizes the display for small screens (e.g., one picture per row rather than three).</li>
<li><strong>Image Generation</strong>. I made some minor changes to the <a href="https://www.imagemagick.org/script/index.php" title="ImageMagick">ImageMagick</a> code used to generate images and thumbnails from the full sized images. Those changes achieved in an increase in quality without much of an increase in file size, though I see this as one area where additional optimization may be possible.</li>
</ul>
<p>That hits all the major changes. So, what’s next? Well, the biggest piece that is still missing is the ability for friends and family to access non-public photos (which I loosely define as any photo with a person in it). Obviously, that is a big issue, but solving it is also a rather significant technical chore, as it, among other things, requires researching and then coming to a view on an authentication framework (home rolled? outsourced? to whom?), and then implementing the authentication and authorization code. While I have made some progress in the last few months in answering some of the threshold questions, a fully functional system is still a ways away. (I have all but given up on committing to any sort of time frame.)</p>
<p>But so it is with this site. As I observed in my <a href="http://rohitsrealm.com/archive/2012/08/18/some-reflections-on-the-tenth-anniversary-of-the-realm/" title="Some Reflections on the Tenth Anniversary of the Realm">missive</a> recording the tenth anniversary of the Realm, <q>[t]his site is nothing if not wrought with the shambles of unmet expectations.</q> It wouldn’t be a post on this site if I did not leave you disappointed, dear readers. But in the mean time, please check out the <a href="http://photos.rohitsrealm.com/" title="Rohit’s Gallery">photo gallery</a>, and let me know what you think!</p>tag:rohitsrealm.com,2017-10-25:/archive/2017/10/25/a-very-odd-couple-apache-web-server-response-time-and-ipfilterA Very Odd Couple: Apache Web Server Response Time and IPFilter2017-10-25T22:59:46-07:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2017-10-25T22:59:46-07:00Copyright (c) 2017, Rohit Nafday. All Rights Reserved.<p>As those who have been with me on this miserable excuse for a website for awhile can likely attest, I am a fairly unabashed fan of <a href="https://en.wikipedia.org/wiki/Unix-like" title="Unix-like">*nix systems</a>. I have been running <a href="http://freebsd.org/" title="FreeBSD">FreeBSD</a> at home for more than sixteen years and, for several years during that period, it was the only operating system I used. No Windows; no Macs; and sometimes no graphical user interfaces. Back in my truly hardcore days (i.e., Berkeley, circa 2002), I didn’t even bother to own a router; why waste the money on some piece of shit hardware (and back then, they really were pieces of shit, even more so than now) when I could route and NAT all the traffic through a computer I had built? Hell, I even flirted with <a href="http://openbsd.org/" title="OpenBSD">OpenBSD</a>, for crying out loud!</p>
<p>Of course, not all is beer and skittles when it comes to open source software: hardware incompatibility, broken device drivers, lacking (or worse, inaccurate) documentation, and <a href="http://rohitsrealm.com/archive/2010/09/24/fun-with-flex-bison-and-friends/" title="Fun with Flex, Bison, and Friends">maddeningly</a> <a href="http://rohitsrealm.com/archive/2011/11/28/recent-mod-perl-woes/" title="Recent Mod Perl Woes">cryptic</a> <a href="http://rohitsrealm.com/archive/2017/06/03/learning-the-hard-way-postgres-recovery-from-the-file-system/" title="Learning the Hard Way: Postgres Recovery from the File System">bugs</a> will all sap your will to live if you spend enough time with it. And, so it shouldn’t come as a surprise that over the years, my once unwavering dedication to all things *nix began to waver. I gave up running my own <q>homebrew</q> router sometime in 2004, and <a href="http://rohitsrealm.com/archive/2007/03/13/outsourcing-my-digital-existence/" title="Outsourcing My (Digital) Existence">tearfully</a> bade farewell to hosting my own e-mail in 2007.</p>
<p>So much the worse that I did, as those sysadmin skills would have undoubtedly come in handy in debugging one of the most cryptic bugs with my systems that I have encountered to date: massive Apache webserver (<code>httpd</code>) performance degradation resulting from a <a href="https://www.freebsd.org/doc/handbook/firewalls-ipf.html" title="IPFilter Firewall">IPFilter</a> glitch. For those interested, more on the problem, the symptoms by which it manifest itself, and also the eventual solution is below.</p>
<h4>The Problem</h4>
<p>For many months, I had been experiencing a major and quite inexplicable problem with the response time of the webserver that hosts this site (and a few others, including my <a href="http://photos.rohitsrealm.com/" title="Rohit’s Gallery">photo gallery</a> and my <a href="http://rohitnafday.net/" title="Rohit Nafday Personal Site">personal site</a>). (For background, this site is hosted on a colocated server running <a href="http://freebsd.org/" title="FreeBSD">FreeBSD</a> (what else?) and uses <a href="http://httpd.apache.org/" title="Apache">Apache</a>.) The sites, especially image downloads, were quite literally crawling.</p>
<p>Because the response time issue generally resolved itself (at least briefly) when I restarted <code>httpd</code>, I initially (and for many months of sporadic attempts at debugging thereafter) suspected that it had something to do with <a href="https://en.wikipedia.org/wiki/Memory_leak" title="Memory Leak">memory leaks</a>. If Apache was swapping to disk because of memory leaks, that would, of course, be fatal for response time, and, as I noted <a href="http://rohitsrealm.com/archive/2016/08/21/an-update-of-sorts/" title="An Update of Sorts">last year</a>, the crusty old software on which this site still runs (i.e., <a href="http://rohitsrealm.com/archive/2011/11/28/recent-mod-perl-woes/" title="Recent Mod Perl Woes">mod_perl</a>) is quite prone to memory leaks. But no matter how much I tweaked or tuned Apache, I couldn't get any detectable change in response time.</p>
<p>By early 2017, I had given up on trying to debug the issue, and instead decided to focus on <em>finally</em> killing off mod_perl and launching the new version of this site (<q>v3</q>), which has been in on-and-off development for nearly a decade without ever quite making it to the finish line. So, essentially, until I found the time to completely rewrite the site, it would just be non-functional (along with all other sites hosted on the machine). Not quite the ideal result.</p>
<h4>A Breakthrough</h4>
<p>A breakthrough in this seemingly intractable problem came about quite randomly a couple weeks ago. I was installing some software updates on the server, and because the port management software was having trouble pulling down some patches, I had temporarily disabled the firewall on the machine. By complete chance, I also happened to load a page on my <a href="http://photos.rohitsrealm.com/" title="Rohit’s Gallery">photo gallery</a> when the firewall was off and voilà! It loaded in an instant (including several images)!</p>
<p>Could it be that the firewall was killing Apache? How? Why?! I turned the firewall back on, and loaded the same page again; it took several seconds to load. What the fuck?</p>
<p>So, at that point, I was pretty sure I had found the source of the problem, but I still had no clue as to what the solution could be. Back in the halcyon days of running my own router, I had spent a lot of time playing around with my firewall configuration, but by this point, my firewall rule set was well established; it had not changed in years and there had never an issue with Apache before. What was going on?</p>
<h4>A Most Obscure Bug</h4>
<p>Hours of research and numerous wild goose chases led nowhere. I had again hit a brick wall and was now considering dumping IPFilter in favor of another firewall (such as <a href="https://www.freebsd.org/doc/handbook/firewalls-ipfw.html" title="IPFW">IPFW</a> or <a href="https://www.freebsd.org/doc/handbook/firewalls-pf.html" title="PF">PF</a>). But the idea of having to rewrite and test all the existing rules in a completely different software was daunting and I was quite reluctant to do it.</p>
<p>As a last ditch effort, I decided to do a deep dive into the network traffic coming in and out of the machine to try to deduce what was getting messed up. While scanning through <code>netstat</code> and <code>ipfstat</code> dumps after accessing discrete pages on my website, I noticed something unusual:</p>
<blockquote><code>996 block out log first quick on [Interface] all</code></blockquote>
<p>Huh? Why were so many packets trying to get out but getting blocked? DNS queries? No. DNS queries were explicitly permitted in the firewall. Digging through the logs generated by <code>ipmon</code>, I then came across log entries like the following, coming in rapidly when I accessed a page:</p>
<blockquote>
<code>Oct 25 19:41:47 hegemon ipmon[97188]: 19:49:52.149937 2x [Interface] @0:21 b [Server IP address],80 -> [Client IP address],59222 PR tcp len 20 4396 -A OUT bad</code>
</blockquote>
<p>That meant that outgoing packets were somehow getting corrupted, and then blocked by the firewall. Turning off the default rule that blocked all outgoing packets that did not meet certain criteria confirmed it; the site was responsive when that rule was not in effect.</p>
<h4>The Solution</h4>
<p>Finally, we had gotten to the $64,000 question—why the fuck were outgoing packets getting corrupted?! I finally stumbled across what I think is likely the answer with some googling. In a 2007 (!) <a href="https://lists.freebsd.org/pipermail/freebsd-sparc64/2007-December/005205.html" title="freebsd-sparc64">e-mail thread</a> on the <code>freebsd-sparc64</code> distribution list (!!), someone had encountered a similar error in a release candidate of FreeBSD 6.3 (!!!) and one of the responses suggested a fix by disabling checksum offloading capabilities for the hardware interface:</p>
<blockquote>
<code>ifconfig [<em>Interface</em>] -txcsum -rxcsum</code>
</blockquote>
<p>PC load letter? Nevertheless, I ran that code, enabled blocking of all outgoing packets by default, and started everything up again. And like a charm, it all worked.</p>
<h4>Postscript</h4>
<p>So, what happened here? Why was it working fine before and suddenly stopped working?</p>
<p>The first part of the puzzle is somewhat simple: sometime in March 2016, my colocation service upgraded the hardware running my server and in the course of that process, the hardware interface changed. Presumably the previous interface did not have checksum offloading capabilities (or those capabilities were not enabled or the issue with IPFilter did not manifest itself with that particular interface). Because I was sure that the server response time issues were caused by memory leaks in mod_perl, I never put together the emergence of the problem with the upgrade of the server and hardware network interface.</p>
<p>As to what the issue is with IPFilter and checksum offloading capabilities, frankly, I don’t have the faintest idea. The 2007 e-mail thread suggested a bug in IPFilter, but I have not been able to confirm either the existence of the bug or any purported solution via some light Google research. It does seem odd that a bug that was surfaced in 2007 would still be around, but perhaps not impossible if IPFilter is not being actively developed.</p>
<p>So, that’s it? No magnificent explanation? Too bad, so sad? Recent <a href="http://rohitsrealm.com/archive/2017/06/03/learning-the-hard-way-postgres-recovery-from-the-file-system/" title="Learning the Hard Way: Postgres Recovery from the File System">experiences</a> painfully wading through the innards of obscure systems notwithstanding, I have really no desire to figure this one out. Frankly, if IPFilter is no longer being developed, I think it’s probably a sign that I should move my firewalls to a different system, not figure out this fucking obscure bug. Even I have my limits.</p>
<p>But just in case anyone else comes across this issue, I thought I would document it for posterity. You’re welcome, dear readers.</p>
<p>(Note that interface names and IP addresses have been redacted for privacy throughout.)</p>tag:rohitsrealm.com,2017-06-03:/archive/2017/06/03/learning-the-hard-way-postgres-recovery-from-the-file-systemLearning the Hard Way: Postgres Recovery from the File System2017-06-03T20:22:20-07:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2017-06-03T20:03:51-07:00Copyright (c) 2017, Rohit Nafday. All Rights Reserved.<p>There are some lessons in life that are perhaps better learned the hard way. That you should have a proper backup system for your data is not one of them. And it's especially not a lesson to learn the hard way when you have been building and working with computers for nearly two decades. But so it goes.</p>
<p>Earlier this week, I had a hard disk fail in one of my servers that doubles as my main workstation. It wasn't the first time I have had a disk fail (or even the first time one has failed in this particular machine), but it was by far the most damaging instance. For reasons that now escape me, I never bought a second hard drive to setup a RAID 1 mirror when I upgraded the system a couple years back (which I normally always do for this system), nor did I ever get my regular backup system running after the upgrade. Even more inexplicably, during that same time period, I went from using that machine solely for development to using it host my definitive photo database (<a href="http://rohitsrealm.com/archive/2016/08/21/an-update-of-sorts/" title="An Update of Sorts">described here</a>).</p>
<p>So you can imagine how I felt when the computer refused to boot after an update. After several consecutive nights of staying up into the wee hours, I can say that I've almost brought things back to normal. No part of the process was pleasant, but by far the worst of it was trying to recover the <a href="http://www.postgresql.org/" title="PostgreSQL">Postgres</a> database cluster from the file system because my database backups generated by <code>pg_dump</code> were too old.</p>
<p>Given the significant complexity involved with this chore, I thought I would document it here for posterity. Read on for more detail (if you must).</p>
<h4>Background</h4>
<p>The machine in question was running Postgres 9.4 on FreeBSD. The disk failure I mentioned above resulted in several sectors across multiple file systems becoming unreadable. After some effort, I was able to boot into the system with an old kernel, and then using <code>rsync</code>, transfer much of the data to a new drive I had purchased and installed. Some files and directories couldn't be transferred due to bad blocks and sectors on the disk, however, which is where I first saw that my Postgres database was going to be affected.</p>
<p>While most of the data directory for the cluster was salvaged, notably the directory <code>data/global</code> was all unreadable. To make matters worse, running <code>fsck</code> on the damaged file system resulted in a bunch of files in the <code>lost found</code> directory without file names. After looking at a clean install of the Postgres data directory and realizing that almost all the file names in the <code>global</code> directory are arbitrary numbers (I think mapping to the Postgres OID of the system object), I almost gave up. Trying to map the unnamed binary files to arbitrary numbers in the <code>global</code> directory seemed like an intractable problem.</p>
<p>After studying the Postgres <a href="http://www.interdb.jp/pg/pgsql01.html#_1.2" title="The Internals of Postgres">internals</a>, however, I realized that my databases were probably intact because they are stored in the <code>base</code> folder; if I could get enough of the <code>global</code> directory restored, perhaps I could get the server to run for long enough to dump the data.</p>
<h4><code>pg_filedump</code> to the Rescue</h4>
<p>After several hours of research, I came across this <a href="https://www.commandprompt.com/blog/recovering_a_lost-and-found_database/" title="Recovering a Lost-and-Found Database">article</a> that was on point (albeit for an older version of Postgres) and discovered the <code>pg_filedump</code> utility, which prints out Postgres binary files in a (somewhat) human-readable format. Unfortunately, the port for this utility on FreeBSD had fallen into <a href="https://www.freshports.org/databases/pg_filedump">disrepair</a>, so I had to compile the program myself.</p>
<p>That ended up being a chore in and of itself, but luckily, I (still) have enough C knowledge to debug compiler errors. This is what I had to do to the Makefile to make it compile on FreeBSD:</p>
<blockquote>
<code>CC=<strong>clang</strong> /* Changed from gcc */</code><br />
<code>CFLAGS=-g -O -Wall -Wmissing-prototypes -Wmissing-declarations <strong>-I/usr/local/include</strong> /* Need to add this to pull in libintl.h */</code><br /><br />
...<br /><br />
<code>PGSQL_INCLUDE_DIR=<strong>/usr/local/include/postgresql/server</strong></code>
</blockquote>
<p>With <code>pg_filedump</code> installed and working, I went to work on the files in the <code>lost found</code> directory.
<h4>Mapping Lost and Found Files to the <code>data/global</code> Directory</h4>
<p>The next step—i.e. mapping Postgres system catalog files to the <code>data/global</code> directory was painstakingly manual, and took several hours. The iteration consisted of:</p>
<p><em>First</em>, try to start a Postgres server in single mode on the data directory.<p>
<blockquote>
<code>pgsql@autocrat % pwd</code><br />
<code>/usr/local/pgsql/data</code><br />
<code>pgsql@autocrat % postgres --single -P -D '.' postgres</code>
</blockquote>
<p>That would yield some sort of missing file error, such as:</p>
<blockquote>
<code>ERROR: could not open file "global/12447": No such file or directory</code>
</blockquote>
<p><em>Second</em>, run <code>pg_filedump</code> on a fresh install of the data directory (I used <code>initdb</code> to create one so I could see what the <code>global</code> directory had in it):</p>
<blockquote>
<code>root@autocrat % ./pg_filedump -f -i ../fresh-install/data/global/12447</code>
</blockquote>
<p><em>Third</em>, if the missing file is blank in the fresh install, then create a blank file:</p>
<blockquote>
<code>touch global/12340</code>
</blockquote>
<p><em>Fourth</em>, if the missing file wasn't blank, cycle through the files in the <code>lost found</code> directory and identify any that look similar based on the dump. A few things that were helpful in this process: (a) checking the number of <q>Attributes</q> generated by the <code>pg_filedump</code> against the description of the Postgres <a href="https://www.postgresql.org/docs/9.4/static/internals.html" title="Systems Catalog">systems catalog</a>; and (b) checking file sizes of the corresponding files in the fresh install. For instance, I think 12447 probably maps to the <a href="https://www.postgresql.org/docs/9.4/static/catalog-pg-database.html" title="pg_database"><code>pg_database</code></a> system catalog, as the dump had database names in clear text and 13 attributes (same as <code>pg_database</code> sans the hidden OID attribute).</p>
<blockquote>
<code> root@autocrat % ./pg_filedump -f -i /mnt/lost found/#08832096</code>
</blockquote>
<p><em>Fifth</em>, once you have found the file that matches, copy the file from the <code>lost found</code> directory to the <code>data/global</code> directory, and go back to the first step.</p>
<blockquote>
<code> root@autocrat % cp /mnt/lost found/#08832096 global/12447</code>
</blockquote>
<p>After iterating through that process for a number of times, the Postgres server finally started.</p>
<h4>Rebuild the Index</h4>
<p>After getting the server running, I then logged into each database I wanted to recover (and the <code>postgres</code>, <code>template0</code>, and <code>template1</code> system databases), and rebuilt the indices:</p>
<blockquote>
<code>pgsql@autocrat % postgres --single -P -D '.' riot</code><br />
<code>PostgreSQL stand-alone backend 9.4.12</code><br />
<code>backend> reindex system riot</code><br />
</blockquote>
<h4>Dump the Database (and Rejoice!)</h4>
<p>Once I had rebuilt the system indices, I was then able to dump most of the databases in the cluster using <code>pg_dump</code> normally.</p>
<blockquote>
<code>pgsql@autocrat % postgres -P -D '.'</code><br />
<code>pgsql@autocrat % pg_dump -v --format=c --file=riot-2017-06-03 riot</code>
</blockquote>
<p>With two of the databases in the cluster, I got errors while dumping that I wasn't able to resolve (corrupted <code>pg_toast</code> index), but luckily those were development databases.</p>
<h4>Lesson(s) Learned</h4>
<p>Don't be an idiot like me. Regular, automated backups are important for the whole system. But especially so for Postgres databases.</p>
<p>I frankly got really lucky that this disk corruption affected the system tables (that were (relatively) easy to identify by comparing against a fresh install) and not the databases themselves. The next failure probably won't be so fortunate, and I am not planning to find out.</p>
<p>Also, would it hurt Postgres to use names instead of numbers to identify system files on the file system? Or at least embed the file number in the file header so it can be seen with a utility like <code>pg_filedump</code>? What a clusterfuck.</p>tag:rohitsrealm.com,2016-10-02:/archive/2016/10/02/rohit-reviews-light-in-augustRohit Reviews: Light in August2016-10-02T10:46:45-07:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2016-10-02T10:44:19-07:00Copyright (c) 2016, Rohit Nafday. All Rights Reserved.<div class="photobar">
<a href="https://www.amazon.com/Light-August-William-Faulkner/dp/0679732268/rohsrea-20/" title="Light in August"><img src="http://images.amazon.com/images/P/0679732268.01.MZZZZZZZ.jpg" alt="Light in August" //></a>
</div>
<p>As I briefly observed in my <a href="http://rohitsrealm.com/archive/2013/08/24/rohit-reviews-demons/" title="Rohit Reviews: Demons">review</a> of <em>Demons</em> some years back, the order in which one approaches a particular author's catalog (<em>oeuvre</em>, for the pretentious among you) often influences one's perception of his or her individual works. And so was the case when I read William Faulkner's 1932 novel <em>Light in August</em>.</p>
<p>I was first exposed to Faulkner in high school (<em>The Sound and the Fury</em>), and since then, have made my way through two of his other major works—<em>Absalom, Absalom!</em> (for an English class in college) and <em>As I Lay Dying</em> (review <a href="http://www.rohitsrealm.com/archive/2006/02/15/rohit-reviews-as-i-lay-dying/" title="Rohit Reviews: As I Lay Dying">here</a>). In each of those instances, I recall enjoying the read but also struggling to make my way through it. The distortion of time, the dense, unpunctuated prose, and varying narratives all required tremendous focus to follow. <em>Light in August</em> was different.</p>
<p>A non-linear tale that alternates between the story of Lena Grove, a young, pregnant white woman who has been abandoned by the father of her unborn child, and Joe Christmas, a troubled man of unknown racial heritage who fits into neither white nor black society, <em>Light in August</em> is a compelling study of race, sex, and religious fervor in the racially segregated American South of the 1930s. But unlike the other works mentioned above, this novel was also a much easier (and therefore faster) read. The plot moves quickly, and is quite a bit more dramatic than the other books—violence, depravity, murder, and mayhem are never very far off in <em>Light in August</em>. Put somewhat differently, it's almost a bit like <q>Faulkner lite</q>: heavy on the captivating Southern Gothic themes that make Faulkner's novels so great, but light on the unstructured modernist style that often makes them so difficult.</p>
<p>Faulkner is known for his memorable characters, and up until reading this novel, I had always thought Quentin in <em>Absalom, Absalom!</em> (and, to a lesser degree, also in <em>The Sound and the Fury</em>) was the most memorable. And maybe that is still so after reading <em>Light in August</em>, but at minimum, Joe Christmas gives Quentin a run for his money in my mind. Christmas is not what one would call a hero by any means (he is at best a morally ambiguous character), but nevertheless, one cannot help but be drawn in by his plight living at the margins of society and ultimately his fate at the hands of an intolerant and violent society.</p>
<p>What emerges through Christmas's story (and that of many other interesting characters, including Grove) is a dark portrayal of alienation and conformity that I found to be quite relevant even today. Coming up with a rating for this novel was a bit difficult. I recall thinking when I read it that <em>Absalom, Absalom!</em> was an absolute <em>tour de force</em>, but that was almost fifteen years ago. At the same time, <em>Light in August</em> was such a great story, I find it hard not to give it full marks even if <em>Absalom, Absalom!</em> was perhaps better on the margins. I would even venture that it is my favorite of the Faulkner novels I have read so far: five stars of five.</p>tag:rohitsrealm.com,2016-08-21:/archive/2016/08/21/an-update-of-sortsAn Update (of Sorts)2017-07-27T21:45:08-07:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2016-08-21T16:29:16-07:00Copyright (c) 2016, Rohit Nafday. All Rights Reserved.<p>Well, hello there, dear readers. It's been a long <a href="http://rohitsrealm.com/archive/2013/08/24/rohit-reviews-demons/" title="Rohit Reviews: Demons">while</a>, has it not? Nearly three years to be precise and, really, <a href="http://rohitsrealm.com/archive/2012/08/18/some-reflections-on-the-tenth-anniversary-of-the-realm/" title="Some Reflections on the Tenth Anniversary of the Realm">quite a bit longer</a> than that (tepid <a href="http://rohitsrealm.com/books/" title="Rohit's Realm - Books">book reviews</a> hardly count). And while I primarily decided to return to this site after so many years to test that the bug fixes I implemented over the weekend were working, I thought I might as well also put out an update (of sorts) while I'm at it.</p>
<p>It's no secret that this site has long been abandoned to its fate (which, for those who are in need of a reminder, is likely to be an unnoticed and unlamented demise, same as for all of us). The design has not been updated in almost a decade. Neither has the code running it. But what's not probably immediately apparent is that with each upgrade to the open source packages that power the site (such as <a href="http://perl.org/" title="Perl">Perl</a> and <a href="http://httpd.apache.org/" title="Apache">Apache</a>) for security purposes or otherwise, more and more things break. Interfaces offered by open source libraries disappear, compatibility issues abound, and memory leaks increase. It hasn't been lost on me that my sites are running at the pace of the web on a 56K modem circa 1999, but the fundamental problem that I've been grappling with for altogether <a href="http://rohitsrealm.com/archive/2009/06/28/did-law-school-kill-the-realm/" title="Did Law School Kill the Realm?">too</a> <a href="http://rohitsrealm.com/archive/2011/11/28/recent-mod-perl-woes/" title="Recent Mod Perl Woes">long</a> is that fixing any (let alone <em>all</em>) of these issues requires embarking on a wholesale rewrite of the site using a modern infrastructure based on <a href="http://ruby-lang.org/" title="Ruby">Ruby</a>. And that requires a lot more time than I have to spare.</p>
<p>As a result, progress has been incredibly slow. Confronted with the same issue in 2010, I chose to fix the <a href="http://rohitsrealm.com/archive/2010/11/22/slowly-but-surely/" title="Slowly, But Surely">easier problem</a> first (i.e., attack the <q>low hanging fruit,</q> <a href="http://rohitsrealm.com/archive/2006/12/14/viral-virulent-virile/" title="Viral, Virulent, Virile">if you will</a>). But in the last two years, the problem has become much more salient.</p>
<p>In June 2014, the software that I had used to host my <a href="http://photos.rohitsrealm.com/" title="Rohit's Photos">photo gallery</a> for nearly ten years went into <a href="http://galleryproject.org/time-to-hibernate" title="Time to Hibernate">hibernation</a>. That was a sad day for me, not only because it marked an end of an era, but also because it made my website related woes much more urgent. I <em>had</em> to come up with a solution for the photo gallery or, quite quickly, everything would be broken given the lack of continuing updates from the Gallery project.</p>
<p>Even given that urgency, it took me nearly two years to remedy the issue. After quite a bit of research, I concluded I would need to <q>roll my own</q> gallery software because nothing available met my idiosyncratic needs and also decided I would not use <a href="http://rubyonrails.org/" title="Ruby on Rails">Ruby on Rails</a> despite <a href="http://rohitsrealm.com/archive/2007/02/09/a-perl-programmer-on-ruby-on-rails-part-1/" title="A Perl Programmer on Ruby (on Rails) (Part 1)">earlier flirtation</a>. The second decision in turn required learning various Ruby frameworks (I settled on <a href="http://sequel.jeremyevans.net/" title="Sequel">Sequel</a> and <a href="http://www.sinatrarb.com/" title="Sinatra">Sinatra</a> for database access and web application development, respectively, both of which are excellent) and porting the <a href="http://www.rohitsrealm.com/archive/2006/07/12/iphoto-no-more-part-1/" title="iPhoto No More, Part 1">photo</a> <a href="http://rohitsrealm.com/archive/2006/07/27/iphoto-no-more-part-2/" title="iPhoto No More Part 2">system</a> (i.e., <a href="http://rohitnafday.net/software/" title="RIOT">RIOT</a>) I had developed in 2006 to Ruby.</p>
<p>I quietly released the new photo gallery earlier this year. It works, as far as I can tell, although it is obscenely slow because of lingering problems from mod_perl and <em>this</em> site. Earlier this summer, I started work on a rewrite of this site using Ruby, Sequel, and Sinatra, though progress again faltered in July and August.</p>
<p>So, where does that leave us? Well, while I might have <a href="http://rohitsrealm.com/archive/2011/01/02/the-death-of-the-public-journal/" title="Death of the Public Journal">given up</a> on blogging like I once did, I still have not given up on maintaining this site. I'm still hoping to finish the overhaul of this site by the end of the year, if only to stave off the sort of things I had to do to fix the latest set of bugs that had been introduced by recent software upgrades. (It involved hacking on long abandoned Perl libraries that are used for this site; don't ask.) But I've said that before and, frankly, that deadline is looking a lot less likely now than it was earlier this summer.</p>
<p>Which is all to say: we'll see. In the meantime, all I can hope for is that there are no more major changes to underlying libraries. I'm getting too old to debug decades old software.tag:rohitsrealm.com,2013-08-24:/archive/2013/08/24/rohit-reviews-demonsRohit Reviews: Demons2013-08-24T12:08:23-07:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2013-08-24T11:26:53-07:00Copyright (c) 2013, Rohit Nafday. All Rights Reserved.<div class="photobar">
<a href="http://www.amazon.com/Demons-Novel-Three-Vintage-Classics/dp/0679734511/rohsrea-20/" title="Demons"><img src="http://images.amazon.com/images/P/0679734511.01.MZZZZZZZ.jpg" alt="Demons"/></a>
</div>
<p>I would say something about my long <a href="http://rohitsrealm.com/archive/2013/03/24/rohit-reviews-nausea/" title="Rohit Reviews: Nausea">absence</a> from this loathsome <a href="http://rohitsrealm.com/" title="Rohit's Realm">affair</a>, but is there even a point any more? You, dear readers, should know not to expect anything of me—<a href="http://rohitsrealm.com/archive/2012/08/18/some-reflections-on-the-tenth-anniversary-of-the-realm/" title="Some Reflections on the Tenth Anniversary of the Realm">I told you</a> as much last year.</p>
<p>I return today to this miserable site to review <em>Demons</em>, Fyodor Dostoevsky's 1872 novel about political intrigue and revolutionary conspiracies in nineteenth century Russia, which I finished while traveling through India earlier this year. This being the last of Dostoevsky's major works on my reading list after <em>Crime and Punishment</em>, <em>The Brothers Karamozov</em> (review <a href="http://www.rohitsrealm.com/archive/2007/01/24/rohit-reviews-the-brothers-karamazov/" title="Rohit Reviews: The Brothers Karamozov">here</a>), <em>The Idiot</em> (review <a href="http://rohitsrealm.com/archive/2011/07/16/rohit-reviews-the-idiot/" title="Rohit Reviews: The Idiot">here</a>), and <em>Notes from Underground</em> (review <a href="http://rohitsrealm.com/archive/2012/01/02/rohit-reviews-notes-from-underground/" title="Rohit Reviews: Notes from Underground">here</a>), I was expecting to be somewhat disappointed—how could this novel possibly match up to those awesome works of literature? Instead, I was rather pleasantly surprised.</p>
<p><em>Demons</em>, which is loosely based on an actual political murder that occurred in 1869, is principally the story of Nikolai Stavrogin, a seemingly sociopathic aristocrat actually consumed by guilt over his various misdeeds, and Pyotr Verkhovensky, a leftist plotting to overthrow the government and foment revolution. The story takes place in the small town where Stavrogin resides and follows Verkhovensky's conspiracy to murder a former conspirator who subsequently renounces the leftist agenda. In the course of the novel, Dostoevsky introduces us to a number of conflicting ideologies that all collided in nineteenth century Russia and ultimately led to the Bolshevik Revolution in 1917—conservatives of the established (and decaying) order, liberal idealists of the 1840s focused on utopian existence, and various socialistic and nihilistic radicals spawned by the deterioration of those liberals' ideas. What ultimately emerges is a terrifying and prophetic study of the <q>demons,</q> or nihilistic concepts, that would consume the first half of the twentieth century, with horrifying consequences for those who lived through that time.</p>
<p>As with many of Dostoevsky's novels, <em>Demons</em> is a case study of rich literary voices, from the drunk (and dangerous) Captain Lebyadkin to the nihilistic Kirillov (obsessed with the idea that suicide is the only path to freedom). But, more so than Dostoevsky's other works and despite the extraordinarily dark subject matter, I also found <em>Demons</em> to be Dostoevsky's funniest and fastest moving novel. I don't ever recall laughing out loud while reading a Dostoevsky novel, but in this one I did—multiple times. Who knew nihilism and murder could be downright hilarious? (Then again, maybe that's just <a href="http://www.rohitsrealm.com/archive/2006/06/14/contemplations-on-killing-oneself/" title="Contemplations on Killing Oneself">me</a>.)</p>
<p>At another level, however, it is a poignant reminder that the most dangerous thing in the world is an idea. Dostoevsky's central thesis of the novel—that the seemingly benign ideas of the utopian reformers of the 1840s spawned the much more pernicious ideas of the socialists and nihilists of the 1860s—is just as salient today as it was nearly 150 years ago. Similar (and similarly failed) utopian ideologies saw a resurgence within my parents' lifetime (the 1960s) and still find favor among loathsome hippies and bums on the streets of <a href="http://rohitsrealm.com/archive/category/berkeley/" title="City of Berkeley">Berkeley</a> and <a href="http://rohitsrealm.com/archive/category/sf/" title="San Francisco">San Francisco</a>. And the world was still dealing with the scourge of what the 1860s Russian socialists and nihilists unleashed on the world (Soviet communism) in <em>my</em> lifetime.</p>
<p>Settling on a rating for this book is difficult. Most people who are Dostoevsky fans do not consider it to be his best effort, and I can see why. It's hard to compete with the philosophical <em>tour de force</em> of <em>The Brothers Karamozov</em> or the penetrating insight of <em>Crime and Punishment</em>, and objectively, <em>Demons</em> probably does not do so on either front. At the same time, this might be the one I found to be most interesting of all his works (perhaps because of my general interest in the history and politics of that era). So where does that leave me? I'm probably at 4.5 stars on this book, but I generally truncate decimals for reviews: four stars of five.tag:rohitsrealm.com,2013-03-24:/archive/2013/03/24/rohit-reviews-nauseaRohit Reviews: Nausea2013-03-24T21:24:47-07:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2013-03-24T21:03:38-07:00Copyright (c) 2013, Rohit Nafday. All Rights Reserved.<div class="photobar">
<a href="http://www.amazon.com/gp/product/B006Q983IK/tag=rohsrea-20" title="Amazon | Nausea"><img src="http://ecx.images-amazon.com/images/I/31BoohaEv5L._SL160_.jpg"/></a>
</div>
<p>Well, dear readers, it's been a <a href="http://rohitsrealm.com/archive/2012/08/18/some-reflections-on-the-tenth-anniversary-of-the-realm/" title="Some Reflections on the Tenth Anniversary of the Realm">while</a>. I hope you didn't miss me too much over the past few months. (I grant you that it is hard indeed to imagine the scenario in which anyone might miss me or this most dreadful blog, but hey—the world is full of <a href="http://www.wired.com/wiredscience/2013/03/bat-eating-spiders/" title="Wired Science: Bat-Eating Spiders">strange and dreadful phenomena</a>. Who am I to judge?) In any case, I wish I could tell you that I emerge today full of spirit and motivation to begin writing prolifically again, but that's simply not the case. I have, however, gotten through several books since I last wrote here, and will hopefully be reviewing a few of them over the next couple week. The first of the set is <em>Nausea</em> by Jean-Paul Sartre, which I finished on a plane from Los Angeles to New York last Christmas. To put it mildly, it was definitely not a merry read.</p>
<p>Sartre's first novel, and purportedly his best, <em>Nausea</em> takes the form of the diary of Antoine Roquentin, a listless French writer who has moved to the small (and fictional) town of Bouville to research the subject of a biography he is writing. Fixated on and horrified by his existence, however, Roquentin spends much of the novel documenting his feelings and sensations as he goes through his daily routine and interacts with both animate and inanimate objects. And while certain other characters do make appearances, including an ex-lover (Anny) and a local acquaintance (the Self-Taught Man), the novel is largely a collection of Roquentin's (actually, Sartre's) thoughts on consciousness and the meaning of life (or the lack thereof).</p>
<p>As with <em>The Age of Reason</em> (review <a href="http://rohitsrealm.com/archive/2007/05/24/rohit-reviews-the-age-of-reason/" title="Rohit Reviews: The Age of Reason">here</a>), I emerged from reading this novel uncertain of what to think. It doesn't have much of a plot to speak of, although it moves quickly enough, and ultimately, I wasn't really sure of what to make of the ending (which I will not spoil here).</p>
<p>But, on another level, it does what I consider to be a fantastic job of capturing the sensation of <a href="http://rohitsrealm.com/archive/2007/02/26/wallowing-in-existential-angst/" title="Wallowing in Existential Angst">existential angst</a> that I know so well. And akin to <em>The Age of Reason</em>, this novel too makes one focus—perhaps more so than is mentally sound—on where one is and where one is going (which, of course, is nowhere).</p>
<p>Reconciling that conflict enough to give a rating to this novel has proven to be difficult for me. <em>Nausea</em> is clearly a seminal work of existentialist <em>philosophy</em>, but it's not really much of a novel in the sense of it having a story (which, frankly, is of utmost importance to me in reading fiction). And perhaps it needn't be to accomplish its goal, to the extent its goal is capturing the essence of the feelings of restlessness and lack of meaning that most humans likely confront at one time or another during their (necessarily futile) lives. At the same time, there are definitely other novels that tackle the same subject and do it with much more of a plot. Camus's <em>The Stranger</em> and Dostoevsky's <em>Notes from Underground</em> (review <a href="http://rohitsrealm.com/archive/2012/01/02/rohit-reviews-notes-from-underground/" title="Rohit Reviews: Notes from Underground">here</a>) immediately come to mind.</p>
<p>Ultimately, however, I can't bring myself to knock this book too much. It speaks the truth in many ways, and I actually think I probably should have read it before starting on the <em>Roads to Freedom</em> trilogy back in 2007. After all, what could be more true than this: <q>Every existing thing is born without reason, prolongs itself out of weakness and dies by chance.</q> Four stars of five.</p>tag:rohitsrealm.com,2012-08-18:/archive/2012/08/18/some-reflections-on-the-tenth-anniversary-of-the-realmSome Reflections on the Tenth Anniversary of the Realm2012-08-19T09:54:38-07:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2012-08-18T22:04:02-07:00Copyright (c) 2012, Rohit Nafday. All Rights Reserved.<p>Even typing that title is a little disorienting: has it really been <em>that</em> long? Have I really been tending this miserable little spot on the web full of <a href="http://rohitsrealm.com/archive/2003/03/11/is-there-no-sacred-place-left/" title="Is There No Sacred Place Left?">irrational rage</a> and <a href="http://rohitsrealm.com/archive/2007/05/15/musings-on-the-meaning-of-life/" title="Musings on the Meaning of Life">misguided existential angst</a> and <a href="http://rohitsrealm.com/archive/2010/09/24/fun-with-flex-bison-and-friends/" title="Fun with Flex, Bison, and Friends">random computer shit</a> and <a href="http://rohitsrealm.com/archive/2009/10/17/contemplations-on-corporate-crime/" title="Contemplations on Corporate Crime">really</a> <a href="http://rohitsrealm.com/archive/2007/09/20/tying-the-noose-criteria-for-marital-bliss/" title="Tying the Noose: Criteria for Marital Bliss">crazy</a> <a href="http://rohitsrealm.com/archive/2011/07/04/on-asset-classes-and-relationship-portfolios/" title="On Asset Classes and Relationship Portfolios">ideas</a> for <em>ten years</em>? Am I really so <em>old</em> that a decade can pass me by with nary a notice? Hardly seems possible.</p>
<p>And yet it is. Although some manifestation of this website has existed since Halloween of 2001, the <a href="http://rohitsrealm.com/archive/category/rohitsrealm/" title="Rohit's Realm">blog</a> that would eventually become its highlight (if such a term can be used for a place as dark as this one) had its <a href="http://rohitsrealm.com/archive/2002/08/18/welcome-to-blogger/" title="Welcome to Blogger">start</a> on August 18, 2002. I was eighteen years old at the time and about to enter my sophomore year at <a href="http://rohitsrealm.com/archive/category/ucb/" title="UC Berkeley">Cal</a>. It seems like a lifetime ago, and in fact, it's probably been several—in the time that has elapsed, I have gone from <a href="http://rohitsrealm.com/archive/2005/07/18/the-end-of-the-beginning/" title="The End of the Beginning">Berkeley</a> to <a href="http://rohitsrealm.com/archive/2007/08/20/bye-bye-san-francisco/" title="Bye Bye San Francisco">San Francisco</a> to <a href="http://rohitsrealm.com/archive/2010/09/06/bye-bye-chicago/" title="Bye Bye Chicago">Chicago</a> and now <a href="http://rohitsrealm.com/archive/2010/10/31/hello-new-york/" title="Hello New York">New York</a>. I have graduated from both college and law school, accumulated potentially crippling <a href="http://rohitsrealm.com/archive/2010/07/07/briefly-noted-on-a-midsummers-evening/" title="Briefly Noted on a Midsummers Evening">debt</a>, and of course, experienced countless <a href="http://rohitsrealm.com/archive/2008/05/05/stable-marriage-and-information-failure-in-the-social-marketplace/" title="Stable Marriage and Information Failure in the Social Marketplace">failures</a>. And very clearly, I am in a very different place in my life <a href="http://rohitsrealm.com/archive/2010/10/03/late-twenties-liminality/" title="Late Twenties Liminality">now</a> than I was <a href="http://rohitsrealm.com/archive/2003/10/04/a-quarter-life-crisis/" title="A Quarter Life Crisis">then</a>.</p>
<p>In some respects, I think it's rather silly to drone on much further about this subject. So it's been ten years of writing for an audience of very few about whatever nonsense may have come to my (quite nonsensical) mind: so fucking what? But at the same time, I can't help but recognize the occasion. (Hell it even managed to wake me from the somnolence of this year that has caused this blog to be dormant for many months.) The Realm has been with me for nearly my entire adult life. Like <a href="http://rohitsrealm.com/archive/2009/09/13/on-football-and-friendships/" title="On Football and Friendships">Cal football</a>, it's been a reliable constant in a life otherwise composed of seemingly unending <a href="http://rohitsrealm.com/archive/2010/01/02/reflections-on-being-homeless/" title="Reflections on Being Homeless">transience</a> and relentless <a href="http://rohitsrealm.com/archive/2007/07/02/the-more-things-change/" title="The More Things Change">change</a>. It's provided me with a constant technical project to manage and upgrade (though less so in recent years than in early years) and more importantly, a place to write—an activity I obviously quite enjoy.</p>
<p>Of course, as I <a href="http://rohitsrealm.com/archive/2011/01/02/the-death-of-the-public-journal/" title="The Death of the Public Journal">discussed</a> in greater depth last year, this blog has long stopped being about <q>me</q>—the real person—if it ever was, the first person nature notwithstanding. As I noted then, <q>I write—and have always written—for an audience on this site, and with a voice that as years have passed and this site has evolved has become increasingly distinct from what might be considered my 'normal' voice.</q> Nonetheless, voice distortion or not, the intensely personal nature of the enterprise can hardly be denied. It's not just that the Realm has been around me for ten years: it's quite unequivocally a part of me—and a nontrivial one at that. In many ways, it may be one of my few meaningful enterprises of the last decade. (I hope the incongruity of that last statement is not lost on you, dear readers.)</p>
<p>Having reflected a bit on the past, let me say a few words on both the present and the future. Obviously, I don't write here with nearly as much frequency or vigor as I once did. In the past, I have tried to <a href="http://rohitsrealm.com/archive/2009/06/28/did-law-school-kill-the-realm/" title="Did Law School Kill the Realm?">attribute</a> this drop in productivity to law school and then work. And while certainly I have far less time these days to read or write as I once did, that doesn't explain everything. Truthfully, at least part of the reason I write here less often than I once did is because I have less to say.</p>
<p>In its early years, the Realm was my avenue to vent my anger and bitterness at the world. But as I have gotten older, I have become less angry and bitter. The minor annoyances of day-to-day existence simply don't have nearly the effect on me that they once did. In some ways, it was inevitable. You can only be a teenager for so long.</p>
<p>After I graduated college, the Realm became a place for me to explore my role in the world and my discontent with existence writ large. And while I haven't necessarily purged the existential angst that plagued me in those years (far from it, really), it no longer torments or overwhelms me in the way it once did. I will likely live with <a href="http://rohitsrealm.com/archive/2011/05/08/into-the-heart-of-despair/" title="Into the Heart of Despair">low level existential angst</a> for the rest of my life, but that's hardly something to write home about. Absent some sort of religious awakening, I don't think I'll be finding any answers to those questions any time soon and what's the point of blogging about the same questions over and over? I have said my piece on the subject, I think. And that too was likely inevitable: you can no more go through a quarter life crisis forever than you can be an angry teenager.</p>
<p>So where does that leave us? Months of silence interspersed with book reviews and ramblings on weird computer shit? Is that all that the future holds for this once illustrious blog and its once prolific (and still profoundly awful) author? Possibly. But I wouldn't discount yet another transformation just yet, dear readers—you just might have to wait until I finally succeed in <a href="http://rohitsrealm.com/archive/2008/08/08/my-romantic-quest-from-cynicism-to-nihilism-part-2/" title="My Romantic Quest: From Cynicism to Nihilism (Part 2)">ruining my life</a> and move onto a new phase.</p>
<p>In the meantime, I do sincerely hope you keep my largely silent feed on your feed reader. Maybe some day, I'll make it worth it your while. But I wouldn't count on it. This site is nothing if not wrought with the shambles of unmet expectations. If you want evidence of that, just take a look at the <a href="http://rohitsrealm.com/archive/" title="Archives">archive</a>—all ten years of them.</p>tag:rohitsrealm.com,2012-03-12:/archive/2012/03/12/rohit-reviews-war-and-peaceRohit Reviews: War and Peace2012-03-12T22:17:52-07:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2012-03-12T22:14:48-07:00Copyright (c) 2012, Rohit Nafday. All Rights Reserved.<div class="photobar">
<img src="http://images.amazon.com/images/P/1400079985.01.MZZZZZZZ.jpg" alt="War and Peace"/>
</div>
<p>For the benefit of those who have not had the insurmountable displeasure of interacting with me in person of late, I must admit that I have become somewhat fixated in recent months upon the so-called Mayan apocalypse and the prospect of world coming to an (unlamented) end on or about December 21, 2012 (the winter solstice). That's not to say I <em>believe</em> the world is coming to an end in nine months, because only lunatics and buffoons believe in such rubbish, but only that this prospect has caused me to contemplate the <a href="http://rohitsrealm.com/archive/2007/05/15/musings-on-the-meaning-of-life/" title="Musings on the Meaning of Life">meaninglessness of life</a> (<a href="http://rohitsrealm.com/archive/2010/05/07/on-the-recent-and-unhappy-turn-to-seriousness-in-life/" title="On the Recent and Unhappy Turn to Seriousness in Life">alone and in the dark</a>, of course) and consider the extent to which I have accomplished <a href="http://rohitsrealm.com/archive/2007/10/03/age-and-accomplishment/" title="Age and Accomplishment">nothing</a> more than I normally might. One natural question that follows from this line of thought is as follows: what would I regret not having accomplished <span class="strike">if</span> when I perished along with the rest of the wretched mass of humanity that torments this miserable planet like a biblical plague? The answer shouldn't be too hard to guess: I would regret having not gotten to Leo Tolstoy's 1869 epic, <em>War and Peace</em>.</p>
<p>And so, with heady thoughts of the world's end consuming me, I set out on January 1st of this year to accomplish at least this one goal in a life otherwise riddled with <a href="http://rohitsrealm.com/archive/2006/09/03/coming-full-circle-or-270-at-least/" title="Coming Full Circle (Or 270° At Least)">false starts</a> and <a href="http://rohitsrealm.com/archive/2008/05/05/stable-marriage-and-information-failure-in-the-social-marketplace/" title="Stable Marriage and Information Failure in the Social Marketplace">downright failures</a>. Last night, I accomplished this goal, some nine weeks after I began, and below I briefly summarize some of my impressions on this vast, towering novel.</p>
<p>Where to begin when reviewing a novel that spans two decades and 1,250 pages—what Henry James described as a <q>large loose baggy monster</q>—is somewhat of a conundrum. <em>War and Peace</em> is, at its essence, a historical fiction—predominantly the story of three families, the Bolkonskys, the Rostovs, and the Bezukovs, as they navigate Russia during the Napoleonic Wars (approximately 1805–1812). At another level, it is Tolstoy's treatise on war and military history. And at yet another, it is an awesome and awesomely compelling tale of an entire people as their country descends into war.</p>
<p>It is hard not to devolve into raving praises for a novel that accomplishes so much so well, but having spent the better part of the past two months with this work, I would prefer here to focus on a couple areas I found to be problematic. Notably, length was not one of these. Yes, the novel is quite long and completing it will require more focus and diligence than is usually necessary for most other works, including other works of Russian literature. Given the numerous characters and parallel story lines, keeping on a schedule is all but necessary to keep from losing track of it all. But so what? It's worth it. I read about 50 pages or so a night and never felt that it was dragging.</p>
<p>That said, two areas I <em>did</em> find problematic were as follows: first, despite occupying some 1,250 pages of text, the novel failed at times to develop characters in depth that I was expecting; and second, perhaps as a consequence of the enormous breadth of the novel and focus on <q>humanity</q> broadly, the novel never engaged with philosophical questions that emerge in the character's lives (principally those of Pierre Bezukhov and Andrei Bolkonsky). Additionally, Tolstoy's ultimate conclusions on war (and peace) are not nearly as revolutionary today to someone living after the carnage and atrocities of the 20th century as they might have been to someone living in the late 19th century. At times, they even seem somewhat quaint.</p>
<p>Of these flaws, the most disappointing to me was the first. Although nearly a decade has elapsed since I read Tolstoy's other great work, <em>Anna Karenina</em> (on this <a href="http://rohitsrealm.com/archive/2002/12/30/adventures-in-london-and-neighboring-areas/" title="Adventures in London and Neighboring Areas">trip to London</a>, incidentally), that novel remains in mind one of the greatest and most moving portrayals of the depth of human emotion ever created. Just about everything one might feel in a lifetime is, I'd like to believe, covered in that novel. The fact that <em>War and Peace</em> failed to deliver with its characters in the same manner as <em>Anna Karenina</em> was therefore quite a let down.</p>
<p>I don't mean, however, to be too dour. Ultimately, this was still a book I'm very much glad I was able to finish before any untimely apocalypse could take me out and one I wholeheartedly recommend to all but the faint of heart. I just can't say it was the best Tolstoy I've read when I have read <em>Anna Karenina</em>. Four stars of five.</p>tag:rohitsrealm.com,2012-02-01:/archive/2012/02/01/handwringing-on-the-subject-of-e-booksHandwringing on the Subject of E-Books2012-02-02T05:18:46-08:00Rohit Nafdayrohit@rohitsrealm.comhttp://rohitsrealm.com/2012-02-01T21:28:19-08:00Copyright (c) 2012, Rohit Nafday. All Rights Reserved.<p>Having committed most spare moments of the past month to making progress in Leo Tolstoy's massive 1869 tome, <em>War and Peace</em>, it seems only fitting to pause as I pass the approximate halfway point (end of Volume II, page 600 of 1224) and consider the vexing question of book format that has tormented me since the start of the e-ink revolution in late 2007. Although I bought a second generation Kindle shortly after its release in April 2009, and have since then <a href="http://rohitsrealm.com/archive/2010/03/26/redemption-part-one/" title="Redemption (Part One)">occasionally</a> used the thing to read <a href="http://rohitsrealm.com/archive/category/books/" title="Book Reviews">books</a> (as opposed to law articles), it has never replaced the physical format for me (as it has for many fellow <a href="http://rohitsrealm.com/archive/category/technology/" title="Technology">techies</a> I know). Indeed, both of my last two <q>ill-advised <a href="https://twitter.com/#!/rohitnafday/status/148518800684363776" title="Book-Buying Binge 2">book-buying</a> <a href="https://twitter.com/#!/rohitnafday/status/92331816383549440" title="Book-Buying Binge 1">binges</a></q> have involved brick and mortar bookstores, and my version of <em>War and Peace</em> is the <a href="http://www.amazon.com/War-Peace-Vintage-Classics-Tolstoy/dp/1400079985/rohsrea-20/" title="Amazon: War and Peace">2008 Vintage translation</a> by Richard Pevear and Larissa Volokhonsky (easily my favorite Russian translators, incidentally).</p>
<p>As with most things in my <a href="http://rohitsrealm.com/archive/2006/09/25/the-curse-of-an-overly-analytical-mind/" title="The Curse of an Overly Analytical Mind">sorry</a> <a href="http://rohitsrealm.com/archive/2006/09/19/the-principles-of-discontentment/" title="The Principles of Discontentment">excuse</a> for an <a href="http://rohitsrealm.com/archive/2007/11/24/30-seconds-of-bliss-in-an-otherwise-meaningless-existence/" title="30 Seconds of Bliss (in an Otherwise Meaningless Existence)">existence</a>, the question of <q>why</q> bothers me. Why haven't I abandoned the physical format yet (as I long did in music, TV, and movies)? E-books mean less clutter and less expense—what's not to love? Perhaps nothing. But I can think of at least three possible explanations as to <em>why</em> I—and many of my fellow <a href="http://rohitsrealm.com/archive/2010/03/22/law-school-casualties-and-a-chance-at-redemption/" title="Law School Casualties (and a Chance at Redemption)">bibliophiles</a>—might not have made the leap to e-ink wholeheartedly: (1) books are intrinsically different than other media such that (a) format <em>matters</em> and (b) the physical format can be superior; (2) the utility people derive from pretension (i.e., others seeing your library) exceeds the cost of the clutter; or (3) we are relics of a soon to be bygone era on our way to waxing nostalgic about bookstores and paperback books much the way our parents' generation goes on about record stores and LPs.<sup><a href="http://rohitsrealm.com/archive/2012/02/01/handwringing-on-the-subject-of-e-books/#fn1" name="n1" title="Go to Footnote 1">1</a></sup> Bear with me as I tackle each of these thoughts in turn. Or don't: it wouldn't be the first time I (or this third-rate <a href="http://rohitsrealm.com/" title="Rohit's Realm">site</a>) have been <a href="http://rohitsrealm.com/archive/2009/06/28/did-law-school-kill-the-realm/" title="Did Law School Kill the Realm?">abandoned</a>, and it certainly won't be the last.</p>
<h4>Are Books Different?</h4>
<p>Distinguishing books from other media that have almost entirely escaped the physical world is a difficult enterprise. On the one hand, books (like music and movies) are just data easily translated to 1s and 0s and thus stored digitally. On the other hand, listening to music and watching movies are a passive form of entertainment whereas reading is active. Once I've popped a CD into its player, it is indistinguishable from a digital recording played off an iPod; the same is not true of a book, where physical manipulation of pages is required.</p>
<p>The issue becomes especially salient when reading a book like <em>War and Peace</em>, which is written in multiple languages and requires heavy annotation for modern readers. Between all the French and German dialogue left intact and translated in footnotes, and the end notes that explain obscure historical references, I imagine my edition of <em>War and Peace</em> would be essentially unreadable in a digital format. Accessing the end notes in the physical copy is irritating as it is, but having to jump back and forth to footnotes in the digital edition to understand dialogue that was half French and half English translated from the Russian would be absolutely unbearable. In fact, many of the Amazon reviewers make this exact point about the Kindle edition of the 2008 Vintage edition.</p>
<p>So, at the very least, we can conclude that (a) format <em>can</em> make a difference for books in a way it doesn't for passive media, <em>and</em> (b) in some instances at least, the physical format may be superior. What about cost? Again, the answer isn't clear. The venerable <em>Wall Street Journal</em>, for instance, <a href="http://online.wsj.com/article/SB10001424052970204336104577096762173802678.html" title="E-Book Readers Face Sticker Shock">noted</a> (subscription required) in December that as publishers have begun to set their own prices (rather than the flat rates dictated by Amazon), the prices of e-books sometimes exceed the cost of the paperback version by $10 or more. No matter your commitment to minimalism and clutter-free living, that sort of premium is hard to justify paying.</p>
<p>The trouble with the format justification, however, is that it is too shortsighted. We are still early in the e-book revolution and with improving technology, it may be that format becomes irrelevant here too. A reasonable analogy might be the story of compression algorithms and music. In the mid 1990s, CDs still had worth because the 44.1 kHz that CD audio offered was usually vastly superior to the shit recordings available on the Internet. Fifteen years later, compression algorithms are such that we can have the same or better quality sound as CDs with same or less disk space as those crappy mid 1990s MP3s. Anyone who buys a CD today is a fool. And let's not even get started on lossless algorithms such as FLAC!</p>
<p>Thus, while the format argument might provide some solace at the moment, clearly another justification will be required to support my continued purchase of physical books, if not now, then soon.</p>
<h4>How Much Is Pretension Really Worth?</h4>
<p>Can pretension be that justification? Certainly, it has long justified far <a href="http://rohitsrealm.com/archive/2007/08/27/the-first-five-year-plan/" title="The First Five Year Plan">worse</a> on this dreadful site. But after reading an <a href="http://www.newyorker.com/reporting/2011/11/07/111107fa_fact_wood" title="The Value and Legacy of a Private Library">article</a> (subscription required) late last year in the (consummately pretentious) <em>New Yorker</em>, I am no longer convinced. In a nutshell, the author in that article, who is tasked with packing up his deceased father-in-law's library, asks what is the value of a private library? His ultimate conclusion is that, maybe, it's not much, and certainly not as much as we who collect vast quantities of dead trees might like to think it is.</p>
<p>Sad as I am to admit it, the author's arguments really resonated me after some reflection. What would my library say to someone tasked with packing up all my shit if I were to get hit by a bus tomorrow (or <a href="http://rohitsrealm.com/archive/2006/06/14/contemplations-on-killing-oneself/" title="Contemplations on Killing Oneself">end it all</a> after the <a href="http://rohitsrealm.com/archive/2012/01/22/some-thoughts-on-sports-allegiances/" title="Some Thoughts on Sports Allegiances">49ers</a> or <a href="http://rohitsrealm.com/archive/2009/09/13/on-football-and-friendships/" title="On Football and Friendships">Cal</a> suffer yet another <a href="http://rohitsrealm.com/archive/2007/10/14/boys-dont-cry/" title="Boys Don't Cry">devastating loss</a>)? Would they be <em>impressed</em> by all the languages I know how to code (as evidenced by the various O'Reilly books on the subject) and all the Russian literature I had consumed before my inopportune death? Or would they silently curse me for not having cleaned up my own shit before my untimely demise and conclude that I was just some pretension jerk off who didn't know how to code half the languages he had books for and who hadn't read more than a quarter of the books he owned? I mean, seriously, what kind of <em>asshole</em> actually owns Aron Nimzowitsch's <em>My System</em>?</p>
<p>This compelling argument combined with the facts that (1) I live in a broom closet in Midtown, (2) rarely have anyone over to my place to witness my pretension as a consequence, and (3) move far more often than I would like, makes it rather obvious that pretension is <em>not</em>, in fact, worth it.</p>
<h4>Am I a Relic?</h4>
<p>Which brings me to the most likely explanation: I (and many of my generation) are relics of a bygone era. As I <a href="http://rohitsrealm.com/archive/2011/03/16/melancholy-meditations/" title="Melancholy Meditations">noted</a> last year, <q>a new generation of pant-shitting ingrates is already among us.</q> Will that generation relish the calm weekend afternoons browsing through bookstore shelves the way I do? Hard to see it happening with all these newfangled <em>smartphones</em> and <em>social networks</em> and <em>sexts</em>.</p>
<p>So, maybe this is the time we stop asking <q>why</q> and just accept that we're become our parents, at least in the generational relic sense. To truly become our parents, we'd have to engage in a sixty year project of self-righteousness and hypocrisy, inflate an unsustainable entitlement state that we consciously chose to habitually underfund, bankrupt the world, fuck up the family unit through endemic selfishness, and then leave our <a href="http://rohitsrealm.com/archive/2005/11/23/to-my-children/" title="To My Children">children</a> holding the bag on the whole goddamn mess. But that's a story for another day.</p>
<p style="text-align: center;">* * *</p>
<p>All the bullshit and rambling aside, what can I conclude after this verbal diarrhea of an entry? Two things: first, as long as format is an issue, I'm going to continue to buy paper copies of certain types of books (mostly older or complicated ones) while moving to e-books for just about everything new; and second, publishers ought to rejoice because those older or complicated books that are generally available for free on e-readers as a consequence of being out of copyright are precisely the ones for which a physical format (with its superior annotation) actually makes sense. The irony is rich—even the Baby Boomers couldn't have planned it better.</p>
<p class="entry-footnotes">
<a href="http://rohitsrealm.com/archive/2012/02/01/handwringing-on-the-subject-of-e-books/#n1" name="fn1" title="Return to Text">^</a> <sup>1</sup> Full disclosure: I own both <a href="http://rohitsrealm.com/archive/2006/08/01/top-five-most-underutilized-purchases/" title="Top Five Most Underutilized Purchases">turntables</a> and LPs. They sound different, and in some cases, better than digital audio. That doesn't mean that I support LPs as the principal medium of music delivery, however. Have you ever had to carry around a bunch of LPs? It's not fun.
</p>