<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>Kitsu&apos;s Life</title>
  <link>http://snaury.livejournal.com/</link>
  <description>Kitsu&apos;s Life - LiveJournal.com</description>
  <managingEditor>snaury@gmail.com</managingEditor>
  <lastBuildDate>Wed, 04 Nov 2009 13:48:05 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>snaury</lj:journal>
  <lj:journalid>952590</lj:journalid>
  <lj:journaltype>personal</lj:journaltype>
  <atom10:link rel='hub' href='http://pubsubhubbub.appspot.com/' />
  <image>
    <url>http://l-userpic.livejournal.com/92119204/952590</url>
    <title>Kitsu&apos;s Life</title>
    <link>http://snaury.livejournal.com/</link>
    <width>80</width>
    <height>60</height>
  </image>

<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/129951.html</guid>
  <pubDate>Wed, 04 Nov 2009 13:48:05 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/129951.html</link>
  <description>Yay! I just got a free &lt;a href=&quot;http://www.daisydiskapp.com/&quot;&gt;DaisyDisk&lt;/a&gt; license. ;)&lt;br /&gt;&lt;br /&gt;From &lt;a href=&quot;http://www.macheist.com/&quot;&gt;MacHeist&lt;/a&gt; via &lt;a href=&quot;http://www.tuaw.com/2009/11/04/get-your-thinking-caps-on-macheist-4-is-about-to-begin/&quot;&gt;TUAW&lt;/a&gt;...</description>
  <comments>http://snaury.livejournal.com/129951.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/129720.html</guid>
  <pubDate>Tue, 03 Nov 2009 21:35:16 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/129720.html</link>
  <description>I&apos;ve been studying how some program works, and while protection was really poor, one particularly interesting part turned out to be how it stores trial information. By setting breakpoints on the usual RegQueryValueEx I was quickly able to spot the interesting value that it reads/sets in the registry. And it protects that value by setting permissions on the key that deny access to Everyone, which regedit doesn&apos;t show in any way (as if that key is blank)... made me scratch my head how it reads the value that I can&apos;t see. ;) But as turned out today it was just a decoy, because the real info was stored somewhere else. :)&lt;br /&gt;&lt;br /&gt;I went with regmon/filemon (and even more recent procmon), which of course I was filtering by the executable name, but no matter how hard I tried to look all I was seeing is the same value I already found before. More scratching my head, because this was getting interesting! How can a program can store some data, which is not in the registry, and not in some file? Finally I removed filtering by the executable name and save a huge log to dig thru it around the time program is initializing (what if it injected itself into some other process?). And when I was going thru it I spotted that lsass.exe was accessing a key HKLM\SECURITY\Policy\Secrets that was way too similar to the name I found earlier. Wait, what is this HKLM\SECURITY\Policy\Secrets?&lt;br /&gt;&lt;br /&gt;As it turns out Windows has an LsaRetrievePrivateData API that can store computer local data (names prefixed with L$) in an encrypted/secure way. And that won&apos;t be catched by procmon/regmon if you are filtering by an executable name. Come to think of it, it&apos;s an ideal place for trial programs to &quot;hide&quot; data (and I spotted that I have quite a few L$ keys in there), but of course nothing you do is ever completely hidden. So if you study some program and don&apos;t know where the hell it gets its data, try hooking LsaRetrievePrivateData, or looking what lsass.exe is doing, maybe you&apos;ll find it. ;)</description>
  <comments>http://snaury.livejournal.com/129720.html</comments>
  <category>reversing</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/129354.html</guid>
  <pubDate>Sun, 01 Nov 2009 20:17:32 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/129354.html</link>
  <description>Third time&apos;s a charm:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://kitsu.ru/photos/_MG_2736.jpg&quot;&gt;&lt;img border=&quot;1&quot; src=&quot;http://kitsu.ru/photos/_MG_2736_t.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I&apos;m back to 2GB and lots and lots of swapping.&lt;br /&gt;&lt;br /&gt;Damn. :(</description>
  <comments>http://snaury.livejournal.com/129354.html</comments>
  <category>macbook</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/129078.html</guid>
  <pubDate>Sun, 01 Nov 2009 19:16:49 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/129078.html</link>
  <description>So I bought 2x2GB Samsung a week ago, and today seen my first freeze. Then, after adding &lt;code&gt;-v debug=0x100&lt;/code&gt; to Boot.plist I got kernel panic shortly thereafter. Interesting. I wonder what the hell is going on. There were reports some people had troubles even with Samsung (and I found some photos of original Apple Samsung 2GB planks and it matches what I have), but forum posts imply they were supposed to be fixed by some firmware update or something like that.&lt;br /&gt;&lt;br /&gt;Anyway, cleared nvram, popped memory out and then back in, maybe it will hold up (seems to for half a day), otherwise I&apos;ll see how it behaves. I&apos;d really like to think this is not how some people say that 9400M can&apos;t work right with 4GB no matter the brand. And mixed inconclusive reports all over the &apos;net are really frustrating. Can&apos;t know if any shit is true or not. :-/&lt;br /&gt;&lt;br /&gt;P.S. Maybe I really should have waited and bought Hynix, but it seemed to be really hard to come by (even those two Samsung planks were hard to find, bought them at some overpriced oem shop, where they didn&apos;t even have any boxing). Though even if I could find it I wouldn&apos;t buy it: can&apos;t be sure if it works, and getting a collection of 2x2Gb kits of all major brands is not something I want to do. Oh well... I so passively hate nvidia. Even though they are supposed to be the good guys. :(</description>
  <comments>http://snaury.livejournal.com/129078.html</comments>
  <category>macbook</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/128809.html</guid>
  <pubDate>Sat, 24 Oct 2009 19:24:31 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/128809.html</link>
  <description>&lt;a href=&quot;http://www.ddj.com/linux-open-source/220800130&quot;&gt;WTF&lt;/a&gt;? You need to notify the Bureau before publishing cryptographic code on the internetz, even if it&apos;s just md5? I pity you Americans. Your government is crazy. All those algorithms became public knowledge a long time ago, so why even bother?</description>
  <comments>http://snaury.livejournal.com/128809.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/128588.html</guid>
  <pubDate>Thu, 15 Oct 2009 05:23:00 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/128588.html</link>
  <description>If you ever leave videos converting to iPhone in QuickTime or iTunes, and get error -9459, that&apos;s not because videos are damaged or convertor sucks. It&apos;s because your display went to sleep at the wrong moment. :)&lt;br /&gt;&lt;br /&gt;In short, use Caffeine. :) You can even turn brightness to the minimum, just prevent display from sleeping.&lt;br /&gt;&lt;br /&gt;P.S. I&apos;ve been puzzled by this for soooo long. The most puzzling was that some videos converted successfully in iTunes, but not in QuickTime, and vice versa.</description>
  <comments>http://snaury.livejournal.com/128588.html</comments>
  <category>macbook</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/128510.html</guid>
  <pubDate>Sat, 10 Oct 2009 17:40:19 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/128510.html</link>
  <description>Today I found that trying to watch &lt;a href=&quot;http://www.vesti.ru/videos?vid=onair&quot;&gt;vesti.ru&lt;/a&gt; with Flip4Mac causes both Safari and Firefox to freeze. It doesn&apos;t even matter what version of Flip4Mac I install (the oldest version I had in my Downloads was 2.2.1.11 which definitely worked back then). Makes me wonder what&apos;s happening. :-/</description>
  <comments>http://snaury.livejournal.com/128510.html</comments>
  <category>macbook</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/128090.html</guid>
  <pubDate>Sat, 19 Sep 2009 13:24:41 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/128090.html</link>
  <description>So Kingston memory &lt;a href=&quot;http://snaury.livejournal.com/126580.html&quot;&gt;I bought recently&lt;/a&gt; has finally showed its face: it freezed twice in a row. Which kinda freaked me out, since I use FileVault and it&apos;s really easy to break with bad shutdowns (and lose all your data as a result). So I&apos;ll go with Hynix, and I hope it will go well.</description>
  <comments>http://snaury.livejournal.com/128090.html</comments>
  <category>macbook</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/127949.html</guid>
  <pubDate>Thu, 17 Sep 2009 20:39:20 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/127949.html</link>
  <description>Went to &lt;a href=&quot;http://en.wikipedia.org/wiki/Moon_(film)&quot;&gt;Moon the Movie&lt;/a&gt; today. Was pleasantly surprised by the original English version. Apparently theatre on Novy Arbat has one of rooms that shows untranslated movies only, so cool!</description>
  <comments>http://snaury.livejournal.com/127949.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/127571.html</guid>
  <pubDate>Wed, 09 Sep 2009 06:04:33 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/127571.html</link>
  <description>On a station not that far away:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://kitsu.ru/photos/IMG_0212.jpg&quot;&gt;&lt;img border=&quot;1&quot; src=&quot;http://kitsu.ru/photos/IMG_0212_t.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://kitsu.ru/photos/IMG_0214.jpg&quot;&gt;&lt;img border=&quot;1&quot; src=&quot;http://kitsu.ru/photos/IMG_0214_t.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://kitsu.ru/photos/IMG_0216.jpg&quot;&gt;&lt;img border=&quot;1&quot; src=&quot;http://kitsu.ru/photos/IMG_0216_t.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://kitsu.ru/photos/IMG_0217.jpg&quot;&gt;&lt;img border=&quot;1&quot; src=&quot;http://kitsu.ru/photos/IMG_0217_t.png&quot; /&gt;&lt;/a&gt;</description>
  <comments>http://snaury.livejournal.com/127571.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/127472.html</guid>
  <pubDate>Tue, 08 Sep 2009 21:07:44 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/127472.html</link>
  <description>Recently I&apos;ve tried &lt;a href=&quot;http://code.google.com/p/msysgit/&quot;&gt;msysGit&lt;/a&gt; and was pleasantly surprised with the result. I&apos;m a long time git user, and was primarily using it via cygwin. Despite cygwin being ridiculously slow, git was still much faster than bzr, and extremely powerful. Too bad &lt;a href=&quot;http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/25439&quot;&gt;some people don&apos;t understand it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Example: there was a time that I had to convert some mercurial repository to git just to make sense of all the intertwined merges and what changes they are really bring in. The hgk (a mercurial fork of gitk) wasn&apos;t helping at all, yet after converting to git, gitk just showed relevant information nicely grouped together and merge commits didn&apos;t stand in the way as impenetrable noise. Worse, mercurial&apos;s rebase didn&apos;t work at all, so I couldn&apos;t linearize history either, yet a git converted repo didn&apos;t have any problems with rebase. Power? Extreme power!&lt;br /&gt;&lt;br /&gt;In that recent ruby debate on migrating to git, some people tried saying that using subversion is perfectly ok, and people should just use a &lt;a href=&quot;http://github.com/shyouhei/ruby&quot;&gt;git mirror of ruby&lt;/a&gt;. Seems like these people don&apos;t know joys of using gitk as their primary analysis/change tracking tool. Let&apos;s try looking what has been going on in &lt;a href=&quot;http://github.com/shyouhei/ruby/commits/ruby_1_8_7&quot;&gt;ruby 1.8.7 branch lately&lt;/a&gt;. Huh? &quot;Merge revision(s)&quot;? That surely tells us a lot! Thank you very much!&lt;br /&gt;&lt;br /&gt;I guess I got side tracked and let&apos;s go back to msysGit. I was pleasantly surprised to see how well it works now, as well as to see the blazing speed improvements! (compared to cygwin) That&apos;s extremely cool! The only bad thing is that it is launched with a .cmd file, and Windows&apos; cmd.exe is a horrible-horrible beast that really annoys me a lot (like if you call git from a batch file your batch file will just end... for obscure compatibility reason you need to use call, and exit /b %ErrorLevel% just ignores the error code, stuff like that, grrh), but perhaps I&apos;ll just cook up yet another wrapper executable. Oh, and of course it needs some patching here and there. But overall, it&apos;s really good, maybe they should stop calling it preview and start giving out betas. :)</description>
  <comments>http://snaury.livejournal.com/127472.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/127102.html</guid>
  <pubDate>Mon, 07 Sep 2009 18:14:00 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/127102.html</link>
  <description>Today I found out about &lt;a href=&quot;http://hg.et.redhat.com/cgi-bin/hg-misc.cgi/fedora-mingw--devel/&quot;&gt;RedHat&apos;s mingw libraries&lt;/a&gt; and among them &lt;a href=&quot;ftp://ftp.gnu.org/gnu/readline/readline-5.2.tar.gz&quot;&gt;Readline 5.2&lt;/a&gt;. When I went to download it, I found that there&apos;s already &lt;a href=&quot;ftp://ftp.gnu.org/gnu/readline/readline-6.0.tar.gz&quot;&gt;Readline 6.0&lt;/a&gt;, so I downloaded that, and quick check showed that all of RedHat&apos;s patches are included, sweet! With just &lt;a href=&quot;http://git.kitsu.ru/patched/readline.git&quot;&gt;two patches&lt;/a&gt; I was able to really build it with mingw and compile ruby 1.8.6 against it, so that even tests work. Uber sweet! But something was nagging me in the back of my mind... I thought, if it builds so well, why invent rb-readline, plus I heard something bad along the lines of Ruby and Readline.&lt;br /&gt;&lt;br /&gt;And sure enough when I came home I looked in the COPYING file and my heart sank. It&apos;s GPLv3.&lt;br /&gt;&lt;br /&gt;I hate FSF. Already we had a mess like GPL doesn&apos;t mix with OpenSSL and stuff like that. Now GPL programs can&apos;t even be used with GPL libraries. Truly GNU Readline must die. :(</description>
  <comments>http://snaury.livejournal.com/127102.html</comments>
  <category>gpl</category>
  <category>gnu</category>
  <category>fsf</category>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/126729.html</guid>
  <pubDate>Sat, 05 Sep 2009 19:27:44 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/126729.html</link>
  <description>Also I wanted to purchase Snow Leopard upgrade today and went to &lt;a href=&quot;http://www.re-store.ru/&quot;&gt;re:Store&lt;/a&gt; in Savelovsky Complex today. They call themselves Apple Premium Reseller, btw. So I came there today, and asked if they have Snow Leopard, &quot;No&quot; they say, &quot;We had it yesterday, but today they&apos;re out of stock.&quot;&lt;br /&gt;&lt;br /&gt;Ok, so far so good, it can happen right? But right after that they say &quot;But if you want it, I could burn you an iso...&quot;&lt;br /&gt;&lt;br /&gt;WTF?!? I fucking came to fucking premium reseller to fucking purchase a licensed version and you fucking offer me to pirate it? If I wanted to pirate it, I&apos;d fucking download it already! What country am I living in? Of course there&apos;s piracy in almost every corner in Russia, but to hear something like that in a Premium Reseller store is way to blatant! :-/&lt;br /&gt;&lt;br /&gt;I really should have told them all that right in the face though, but I went away silently instead, so disappointed I was that I couldn&apos;t buy Snow Leopard. :(&lt;br /&gt;&lt;br /&gt;Looks like I&apos;d have to order it electronically with shipment. It&apos;s slightly more expensive, but oh well, whatever...</description>
  <comments>http://snaury.livejournal.com/126729.html</comments>
  <category>macbook</category>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/126580.html</guid>
  <pubDate>Sat, 05 Sep 2009 19:17:46 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/126580.html</link>
  <description>Today I went out to buy an upgrade for my macbook&apos;s memory. Initially I thought of buying Samsung memory since I initially had it installed, but that didn&apos;t really seem to be available anywhere, so I bought Kingston KVR1066D3D7/2G. Reports on the net are mixed: some say it works perfectly, some say it causes freezing, just like anything else does, but while for other types of memory (like OCZ) there were like 90% complaints, googling for &quot;macbook KVR1066D3D7/2G&quot; didn&apos;t show much of the bad stuff, so I decided to take a risk.&lt;br /&gt;&lt;br /&gt;When I came home however, I noticed that the exact part number is 9905428-001.B00LF, and googling for &quot;macbook 9905428-001.B00LF&quot; showed that there was &lt;a href=&quot;http://forums.hardwarezone.com.sg/showthread.php?t=2308171&amp;amp;page=2&quot;&gt;there was some kind of scandal&lt;/a&gt; when Kingston was selling KTA-MB1066 with that part number and it seems that it was causing freezes, so it suggests that the memory I bought is not compatible? I hope not, but of course time will tell.&lt;br /&gt;&lt;br /&gt;Now for the fun part. Of course I grabbed some old Ubuntu 9.04 cds and ran memtest (2.1 or something like that) off that. The first pass completed almost perfectly, until there were several strange errors in the middle. I thought that my memory is indeed incompatible, but I left it running for some more time and nothing was found for the rest of the pass, so at the end I pressed Esc to reboot. &lt;b&gt;Bam!&lt;/b&gt; Lots of reds. I press Esc again - and bam! - lots more. Turns out that every time I press a key while memtest is running it causes it to find errors. And indeed, in the middle of the test I pressed CapsLock because it was lit up and I found it strange.&lt;br /&gt;&lt;br /&gt;Memtest issue? Indeed, internets suggest that this is common to have false positives on ubuntu&apos;s memtest on a macbook, so I went to memtest86.com and downloaded a fresh iso, burned it, restarted... Freeze! Ok, let me try another time: power off, power up, another option... christmas time! - my macbook&apos;s various lights light up as if its lid closed or something like that. Several attempts was the same, so memtest 3.5 (or 3.4 for that matter) don&apos;t work at all... must be something wrong with BootCamp&apos;s emulation or something like that...&lt;br /&gt;&lt;br /&gt;But when I rebooted one of my usb ports stopped working! Looked as if it was fried, the only strange part was that it was still giving out power, and my iPhone was &quot;sensing&quot; it, but OSX didn&apos;t see it, EFI didn&apos;t see it either, and resetting nvram didn&apos;t help too. :( I popped the bottom lid open in search for any obvious signs of burning, but didn&apos;t find any, and when I assembled it back it magically &quot;unfried&quot; back. ;) Looks like memtest did something REALLY funny when it was lighting up lights like that, good thing macbook forgot it like a nightmare after reassembly, popping buttery must have reset something.&lt;br /&gt;&lt;br /&gt;So in the end it seems that those errors were false positives and my memory seems stable for now. I certainly hope so and will stay on Kingston, 4GB is much better than 2GB. ;)</description>
  <comments>http://snaury.livejournal.com/126580.html</comments>
  <category>macbook</category>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/126376.html</guid>
  <pubDate>Thu, 20 Aug 2009 19:51:05 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/126376.html</link>
  <description>I always wondered what will happen if a repository on github that is a root of a network disappears. Apparently _why taught us exactly that. Even though &lt;a href=&quot;http://github.com/whymirror&quot;&gt;whymirror&lt;/a&gt; is trying to bring repos back, the network is increasingly disconnected, and you can&apos;t see a complete picture of who forked what and when, and what people are working on on right now. :-/ Some projects are not damages very much (e.g. shoes seems to have a relatively big network right now). Others (e.g. hacketyhack) have exactly zero nodes, and what&apos;s worse, sometimes github can show you incomplete cached network, but as soon as you refresh it disappears. :-/&lt;br /&gt;&lt;br /&gt;I hope that&apos;s just some kind of github bug in network calculation and it will be fixed or something...</description>
  <comments>http://snaury.livejournal.com/126376.html</comments>
  <category>ruby</category>
  <category>git</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/126138.html</guid>
  <pubDate>Thu, 20 Aug 2009 14:47:34 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/126138.html</link>
  <description>Apparently &lt;a href=&quot;http://news.ycombinator.com/item?id=773106&quot;&gt;_why decided to disappear from the internets&lt;/a&gt;, taking a lot of his accounts down. The theory is that this is because someone found out his real name.&lt;br /&gt;&lt;br /&gt;This sucks. :(&lt;br /&gt;&lt;br /&gt;And what happens to Hackety and Shoes now?&lt;br /&gt;Those websites are down too... :(((</description>
  <comments>http://snaury.livejournal.com/126138.html</comments>
  <category>ruby</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/125696.html</guid>
  <pubDate>Thu, 20 Aug 2009 12:53:11 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/125696.html</link>
  <description>There&apos;s one annoyance in mingw&apos;s gcc+ld that makes it generate lots of dll imports for every ruby data symbol, which looks like &lt;a href=&quot;http://kitsu.ru/20090820-ld-bug-1.png&quot;&gt;this&lt;/a&gt; (how many times do you need to reimport rb_eRuntimeError?). What&apos;s even worse is that &lt;a href=&quot;http://kitsu.ru/20090820-ld-bug-2.png&quot;&gt;lookup tables themselves are repeated that many times&lt;/a&gt;. This screenshot doesn&apos;t show too many, but I&apos;ve seen hundreds of reimports for some extensions, looks really ugly.&lt;br /&gt;&lt;br /&gt;And what&apos;s even worse is that only the first import is &quot;correct&quot; (though unneeded), others are pure hacks. Here&apos;s excerpt using SEN&apos;s edump for eventmachine&apos;s fastfilereaderext.so compiled with gcc:&lt;pre&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;  Original thunk: 0004D21C
       Timestamp: 00000000 
 Forwarder chain: 00000000
            Name: 0004DA3C msvcrt-ruby18.dll
           Thunk: 0004D3A4

   Thunk     RVA   OrgThunk Orig RVA  Hint  Name
 -------- -------- -------- -------- ------ ---------------------------------
 0004D3A4 0004D7C4 0004D21C 0004D7C4    170 rb_cObject
 0004D3A8 0004D7D4 0004D220 0004D7D4    193 rb_check_type
 0004D3AC 0004D7E4 0004D224 0004D7E4    238 rb_data_object_alloc
 0004D3B0 0004D7FC 0004D228 0004D7FC    248 rb_define_class_under
 0004D3B4 0004D814 0004D22C 0004D814    254 rb_define_method
 0004D3B8 0004D828 0004D230 0004D828    256 rb_define_module
 0004D3BC 0004D83C 0004D234 0004D83C    257 rb_define_module_function
 0004D3C0 0004D858 0004D238 0004D858    275 rb_eException
 0004D3C4 0004D868 0004D23C 0004D868    403 rb_int2inum
 0004D3C8 0004D878 0004D240 0004D878    517 rb_num2long
 0004D3CC 0004D888 0004D244 0004D888    570 rb_raise
 0004D3D0 0004D894 0004D248 0004D894    639 rb_str_new
 0004D3D4 0004D8A4 0004D24C 0004D8A4    658 rb_string_value_ptr

  Original thunk: 0004D254
       Timestamp: 00000000 
 Forwarder chain: 00000000
            Name: 0004DA3C msvcrt-ruby18.dll
           Thunk: 00002069

   Thunk     RVA   OrgThunk Orig RVA  Hint  Name
 -------- -------- -------- -------- ------ ---------------------------------
 00002069 6EB0D3C0 0004D254 0004D858    275 rb_eException

  Original thunk: 0004D254
       Timestamp: 00000000 
 Forwarder chain: 00000000
            Name: 0004DA3C msvcrt-ruby18.dll
           Thunk: 000020CF

   Thunk     RVA   OrgThunk Orig RVA  Hint  Name
 -------- -------- -------- -------- ------ ---------------------------------
 000020CF 6EB0D3C0 0004D254 0004D858    275 rb_eException

  Original thunk: 0004D254
       Timestamp: 00000000 
 Forwarder chain: 00000000
            Name: 0004DA3C msvcrt-ruby18.dll
           Thunk: 0000211C

   Thunk     RVA   OrgThunk Orig RVA  Hint  Name
 -------- -------- -------- -------- ------ ---------------------------------
 0000211C 6EB0D3C0 0004D254 0004D858    275 rb_eException

  Original thunk: 0004D254
       Timestamp: 00000000 
 Forwarder chain: 00000000
            Name: 0004DA3C msvcrt-ruby18.dll
           Thunk: 000023DF

   Thunk     RVA   OrgThunk Orig RVA  Hint  Name
 -------- -------- -------- -------- ------ ---------------------------------
 000023DF 6EB0D3C0 0004D254 0004D858    275 rb_eException

  Original thunk: 0004D25C
       Timestamp: 00000000 
 Forwarder chain: 00000000
            Name: 0004DA3C msvcrt-ruby18.dll
           Thunk: 00002147

   Thunk     RVA   OrgThunk Orig RVA  Hint  Name
 -------- -------- -------- -------- ------ ---------------------------------
 00002147 6EB0D3A4 0004D25C 0004D7C4    170 rb_cObject

  Original thunk: 0004D25C
       Timestamp: 00000000 
 Forwarder chain: 00000000
            Name: 0004DA3C msvcrt-ruby18.dll
           Thunk: 00002167

   Thunk     RVA   OrgThunk Orig RVA  Hint  Name
 -------- -------- -------- -------- ------ ---------------------------------
 00002167 6EB0D3A4 0004D25C 0004D7C4    170 rb_cObject&lt;/pre&gt;As you can see, the first import of rb_eException points to the correct thunk, that&apos;s where address of rb_eException is linked to (note that rb_eException is a VALUE, which is essentially unsigned long). The others? Hackish. They specify the location in code (e.g. 0x2069) where code is reading from thunk, where an address of the symbol is linked, e.g. 0x6eb0d3c0 (that&apos;s where rb_eException address is placed when there are no fixups, 0x6eac0000[image base] + 0x4d3c0[thunk]). But what does code really expect? It looks, for example, like this:&lt;pre&gt;
        mov eax, [rb_eException thunk offset]
&lt;/pre&gt;But gcc, when compiling code like that, actually means there should be address of rb_eException in there (direct linking), not the address of location where address of rb_eException is placed (thunk, indirect linking). While msvc usually generates more code immediately afterwards:&lt;pre&gt;
        mov ecx, [eax]
&lt;/pre&gt;That&apos;s because eax at this time (in msvc) is address of rb_eException (read from thunk), so one more dereference is needed. And gcc? It expects that eax will immediately receive the value of rb_eException, so that later &quot;one function at a time&quot; imports do the actual job of placing correct address for them. But then what the hell the first import of rb_eException is for, and why does address in that mov points there? (when in reality it doesn&apos;t mean that) :-/ Import tables like this look really ugly to me, they are confusing to the human eye (although they are helping a little in hiew, as it doesn&apos;t show pure data imports in its assembly view, this way it can at least display something like &lt;code&gt;mov eax, rb_eException&lt;/code&gt; for me, even though it&apos;s really &lt;code&gt;mov eax, [rb_eException]&lt;/code&gt;), and add unnecessary bloatware.&lt;br /&gt;&lt;br /&gt;...or was it done for compatibility with preexisting .o/.a files?...</description>
  <comments>http://snaury.livejournal.com/125696.html</comments>
  <category>reversing</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/125594.html</guid>
  <pubDate>Wed, 19 Aug 2009 20:21:50 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/125594.html</link>
  <description>&lt;a href=&quot;http://alexandreev.livejournal.com/&quot;&gt;Wow!&lt;/a&gt;</description>
  <comments>http://snaury.livejournal.com/125594.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/125186.html</guid>
  <pubDate>Tue, 18 Aug 2009 22:26:42 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/125186.html</link>
  <description>Suppose that you have a perl hash, which is better?&lt;pre style=&quot;overflow:auto; font-size:12px; padding:6px; background-color: #141414; color: #F8F8F8;&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #7587A6;&quot;&gt;&lt;span style=&quot;color: #7587A6;&quot;&gt;$&lt;/span&gt;hash&lt;/span&gt;{&lt;span style=&quot;color: #DAD085;&quot;&gt;lc&lt;/span&gt; &lt;span style=&quot;color: #7587A6;&quot;&gt;&lt;span style=&quot;color: #7587A6;&quot;&gt;$&lt;/span&gt;_&lt;/span&gt;}
&lt;/code&gt;&lt;/pre&gt;or&lt;pre style=&quot;overflow:auto; font-size:12px; padding:6px; background-color: #141414; color: #F8F8F8;&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #7587A6;&quot;&gt;&lt;span style=&quot;color: #7587A6;&quot;&gt;$&lt;/span&gt;hash&lt;/span&gt;{(&lt;span style=&quot;color: #DAD085;&quot;&gt;lc&lt;/span&gt;)}
&lt;/code&gt;&lt;/pre&gt;:)</description>
  <comments>http://snaury.livejournal.com/125186.html</comments>
  <category>perl</category>
  <lj:security>public</lj:security>
  <lj:reply-count>8</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/125161.html</guid>
  <pubDate>Sun, 16 Aug 2009 19:20:13 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/125161.html</link>
  <description>&lt;a href=&quot;http://vimeo.com/1166968&quot;&gt;Magnetic Movie&lt;/a&gt; via &lt;a href=&quot;http://physicsbuzz.physicscentral.com/2009/08/secret-lives-of-magnetic-fields.html&quot;&gt;Physics Buzz&lt;/a&gt;... wow!</description>
  <comments>http://snaury.livejournal.com/125161.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/124890.html</guid>
  <pubDate>Sun, 16 Aug 2009 17:22:25 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/124890.html</link>
  <description>Found somewhere about &lt;a href=&quot;http://www.keepassx.org/&quot;&gt;KeyPassX&lt;/a&gt;... Cool!&lt;br /&gt;&lt;br /&gt;I mean, I already used to TrueCrypt + text files, but this is much much better. And since KeyPassX is open source I built a version myself, don&apos;t trust official binaries (especially when they are so fat, compiled with static Qt). So far so good. :)</description>
  <comments>http://snaury.livejournal.com/124890.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/124562.html</guid>
  <pubDate>Fri, 14 Aug 2009 22:16:03 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/124562.html</link>
  <description>&lt;pre style=&quot;background-color:#2B2B2B;color:#E6E1DC;padding:6px;line-height:12px;font-size:12px;padding:6px;&quot;&gt;&lt;code&gt;&lt;span style=&quot;color:#CC7833&quot;&gt;def&lt;/span&gt; &lt;span&gt;nil.empty?&lt;/span&gt;
  &lt;span style=&quot;color:#DA4939&quot;&gt;true&lt;/span&gt;
&lt;span style=&quot;color:#CC7833&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;I wonder why this isn&apos;t in the language.&lt;br /&gt;Tired of &lt;code&gt;something.nil? || something.empty?&lt;/code&gt;</description>
  <comments>http://snaury.livejournal.com/124562.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/124254.html</guid>
  <pubDate>Fri, 14 Aug 2009 16:35:02 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/124254.html</link>
  <description>Deprecate my ass...
&lt;pre style=&quot;background-color:#2B2B2B;color:#E6E1DC;padding:6px;line-height:12px;font-size:12px;padding:6px;&quot;&gt;&lt;code&gt;diff --git a/magick/image.c b/magick/image.c
index 1abd8ac..fe71f8c 100644
&lt;span style=&quot;color:#BC9458&quot;&gt;&lt;span style=&quot;color:#BC9458&quot;&gt;---&lt;/span&gt; a/magick/image.c&lt;/span&gt;
&lt;span style=&quot;color:#BC9458&quot;&gt;&lt;span style=&quot;color:#BC9458&quot;&gt;+++&lt;/span&gt; b/magick/image.c&lt;/span&gt;
@@ -1186,8 +1186,8 @@ MagickExport ImageInfo *CloneImageInfo(const ImageInfo *image_info)
   clone_info-&amp;gt;temporary=image_info-&amp;gt;temporary;
   clone_info-&amp;gt;adjoin=image_info-&amp;gt;adjoin;
   clone_info-&amp;gt;antialias=image_info-&amp;gt;antialias;
&lt;span style=&quot;color:#FF6040&quot;&gt;&lt;span style=&quot;color:#FF6040&quot;&gt;-&lt;/span&gt;  clone_info-&amp;gt;scene=image_info-&amp;gt;subimage;&lt;/span&gt;
&lt;span style=&quot;color:#FF6040&quot;&gt;&lt;span style=&quot;color:#FF6040&quot;&gt;-&lt;/span&gt;  clone_info-&amp;gt;number_scenes=image_info-&amp;gt;subrange;&lt;/span&gt;
&lt;span style=&quot;color:#80FF40&quot;&gt;&lt;span style=&quot;color:#80FF40&quot;&gt;+&lt;/span&gt;  clone_info-&amp;gt;scene=image_info-&amp;gt;scene;&lt;/span&gt;
&lt;span style=&quot;color:#80FF40&quot;&gt;&lt;span style=&quot;color:#80FF40&quot;&gt;+&lt;/span&gt;  clone_info-&amp;gt;number_scenes=image_info-&amp;gt;number_scenes;&lt;/span&gt;
   clone_info-&amp;gt;depth=image_info-&amp;gt;depth;
   if (image_info-&amp;gt;size != (char *) NULL)
     (void) CloneString(&amp;amp;clone_info-&amp;gt;size,image_info-&amp;gt;size);
&lt;/code&gt;&lt;/pre&gt;
If you deprecate something (image_info-&amp;gt;subimage and image_info-&amp;gt;subrange in this case), then don&apos;t overwrite new members with deprecated members. Some libraries (like RMagick) actually follow your deprecations, it&apos;s not nice when they suddenly break. :-/&lt;br /&gt;
&lt;br /&gt;
I spent a lot of time thinking that it was psd module not supporting number_of_scenes (which it does, at least for scene=0 number_of_scenes=1 case). Turns out it affected everything, so this patch fixes the issue.&lt;br /&gt;
&lt;br /&gt;
Now I wonder who do I post it to? I couldn&apos;t find any mention of any bug tracker in sources archive or on ImageMagick website. x_x</description>
  <comments>http://snaury.livejournal.com/124254.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/124124.html</guid>
  <pubDate>Thu, 13 Aug 2009 21:00:11 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/124124.html</link>
  <description>District 9 was awesome. The audience was even applauding, something rare to see.</description>
  <comments>http://snaury.livejournal.com/124124.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://snaury.livejournal.com/123664.html</guid>
  <pubDate>Thu, 13 Aug 2009 15:30:35 GMT</pubDate>
  <author>snaury@gmail.com</author>  <link>http://snaury.livejournal.com/123664.html</link>
  <description>A little something I cooked up today:
&lt;pre style=&quot;background-color:#2B2B2B;color:#E6E1DC;padding:6px;line-height:12px;font-size:12px;padding:6px;&quot;&gt;&lt;code&gt;&lt;span style=&quot;color:#CC7833&quot;&gt;class&lt;/span&gt; &lt;span&gt;TimeStampedFile&lt;span&gt; &lt;span&gt;&amp;lt;&lt;/span&gt; File&lt;/span&gt;&lt;/span&gt;
  &lt;span style=&quot;color:#CC7833&quot;&gt;def&lt;/span&gt; &lt;span&gt;write&lt;/span&gt;(&lt;span style=&quot;color:#D0D0FF&quot;&gt;text&lt;/span&gt;)
    text &lt;span style=&quot;color:#CC7833&quot;&gt;=&lt;/span&gt; text.&lt;span&gt;to_s&lt;/span&gt;
    &lt;span style=&quot;color:#CC7833&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color:#CC7833&quot;&gt;super&lt;/span&gt;(text) &lt;span style=&quot;color:#CC7833&quot;&gt;if&lt;/span&gt; text.&lt;span&gt;empty?&lt;/span&gt;
    count &lt;span style=&quot;color:#CC7833&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#DA4939&quot;&gt;0&lt;/span&gt;
    lines &lt;span style=&quot;color:#CC7833&quot;&gt;=&lt;/span&gt; text.&lt;span&gt;split&lt;/span&gt;(&lt;span style=&quot;color:#A5C261&quot;&gt;&lt;span style=&quot;color:#A5C261&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#A5C261&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;,&lt;span style=&quot;color:#CC7833&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#DA4939&quot;&gt;1&lt;/span&gt;)
    lines[&lt;span style=&quot;color:#DA4939&quot;&gt;0&lt;/span&gt;...&lt;span style=&quot;color:#CC7833&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#DA4939&quot;&gt;1&lt;/span&gt;].&lt;span&gt;each&lt;/span&gt; &lt;span style=&quot;color:#CC7833&quot;&gt;do &lt;/span&gt;|&lt;span style=&quot;color:#D0D0FF&quot;&gt;line&lt;/span&gt;|
      &lt;span style=&quot;color:#CC7833&quot;&gt;super&lt;/span&gt;(&lt;span style=&quot;color:#A5C261&quot;&gt;&lt;span style=&quot;color:#A5C261&quot;&gt;&amp;quot;&lt;/span&gt;[&lt;span&gt;&lt;span&gt;#{&lt;/span&gt;&lt;span&gt;Time&lt;/span&gt;&lt;span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;now&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;to_s&lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;] &lt;span style=&quot;color:#A5C261&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;) &lt;span style=&quot;color:#CC7833&quot;&gt;unless&lt;/span&gt; &lt;span style=&quot;color:#D0D0FF&quot;&gt;&lt;span style=&quot;color:#D0D0FF&quot;&gt;@&lt;/span&gt;line_in_progress&lt;/span&gt;
      count &lt;span style=&quot;color:#CC7833&quot;&gt;+=&lt;/span&gt; &lt;span style=&quot;color:#CC7833&quot;&gt;super&lt;/span&gt;(line)
      count &lt;span style=&quot;color:#CC7833&quot;&gt;+=&lt;/span&gt; &lt;span style=&quot;color:#CC7833&quot;&gt;super&lt;/span&gt;(&lt;span style=&quot;color:#A5C261&quot;&gt;&lt;span style=&quot;color:#A5C261&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#A5C261&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;)
      &lt;span style=&quot;color:#D0D0FF&quot;&gt;&lt;span style=&quot;color:#D0D0FF&quot;&gt;@&lt;/span&gt;line_in_progress&lt;/span&gt; &lt;span style=&quot;color:#CC7833&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#DA4939&quot;&gt;nil&lt;/span&gt;
    &lt;span style=&quot;color:#CC7833&quot;&gt;end&lt;/span&gt;
    line &lt;span style=&quot;color:#CC7833&quot;&gt;=&lt;/span&gt; lines[&lt;span style=&quot;color:#CC7833&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#DA4939&quot;&gt;1&lt;/span&gt;]
    &lt;span style=&quot;color:#CC7833&quot;&gt;unless&lt;/span&gt; line.&lt;span&gt;empty?&lt;/span&gt;
      &lt;span style=&quot;color:#CC7833&quot;&gt;super&lt;/span&gt;(&lt;span style=&quot;color:#A5C261&quot;&gt;&lt;span style=&quot;color:#A5C261&quot;&gt;&amp;quot;&lt;/span&gt;[&lt;span&gt;&lt;span&gt;#{&lt;/span&gt;&lt;span&gt;Time&lt;/span&gt;&lt;span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;now&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;to_s&lt;/span&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;] &lt;span style=&quot;color:#A5C261&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;) &lt;span style=&quot;color:#CC7833&quot;&gt;unless&lt;/span&gt; &lt;span style=&quot;color:#D0D0FF&quot;&gt;&lt;span style=&quot;color:#D0D0FF&quot;&gt;@&lt;/span&gt;line_in_progress&lt;/span&gt;
      count &lt;span style=&quot;color:#CC7833&quot;&gt;+=&lt;/span&gt; &lt;span style=&quot;color:#CC7833&quot;&gt;super&lt;/span&gt;(line)
      &lt;span style=&quot;color:#D0D0FF&quot;&gt;&lt;span style=&quot;color:#D0D0FF&quot;&gt;@&lt;/span&gt;line_in_progress&lt;/span&gt; &lt;span style=&quot;color:#CC7833&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color:#DA4939&quot;&gt;true&lt;/span&gt;
    &lt;span style=&quot;color:#CC7833&quot;&gt;end&lt;/span&gt;
    count
  &lt;span style=&quot;color:#CC7833&quot;&gt;end&lt;/span&gt;
&lt;span style=&quot;color:#CC7833&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;i&gt;Updated, it&apos;s a little bit better now...&lt;/i&gt;</description>
  <comments>http://snaury.livejournal.com/123664.html</comments>
  <category>ruby</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
</channel>
</rss>
