<?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>Pete Zaitcev</title>
  <link>http://zaitcev.livejournal.com/</link>
  <description>Pete Zaitcev - LiveJournal.com</description>
  <lastBuildDate>Thu, 16 May 2013 16:19:46 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>zaitcev</lj:journal>
  <lj:journalid>3838583</lj:journalid>
  <lj:journaltype>personal</lj:journaltype>
  <image>
    <url>http://l-userpic.livejournal.com/48611588/3838583</url>
    <title>Pete Zaitcev</title>
    <link>http://zaitcev.livejournal.com/</link>
    <width>80</width>
    <height>80</height>
  </image>

<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/217858.html</guid>
  <pubDate>Thu, 16 May 2013 16:19:46 GMT</pubDate>
  <title>Joe Arnold on Software-defined Storage</title>
  <link>http://zaitcev.livejournal.com/217858.html</link>
  <description>&lt;p&gt;At Havana summit they were giving away a paper version of &lt;a href=&quot;http://www.amazon.com/Software-Defined-Storage-OpenStack-ebook/dp/B00C93QFHI/&quot;&gt;Joe Arnold&apos;s &quot;Software Defined Storage with OpenStack Swift&quot;&lt;/a&gt;. Very useful book for anyone dealing with Swift, I would be glad to pay the cover price of $25. But even more interestingly than tips on care and feeding of Swift, Joe opens the whole book thus:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[...] a de-coupled management system so customers  could achieve (1) amazing flexibility in terms of how (and where) they deployed their storage, (2) control of their data without being locked-in to a vendor and (3) private storage at public cloud prices.&lt;/p&gt;
&lt;p&gt;These features are the essence of Software Defined Storage (SDS), a new term the meaning of which is being defined. [...] Key aspects of SDS are scalability, adaptability, and the ability to use most any hardware. Through this de-coupling, operators can now make choices on how their storage is scaled and managed and how users can store and access data &amp;mdash; &lt;em&gt;all driven programmatically&lt;/em&gt; for the entire storage tier, regardless of where the storage resources are deployed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Parts of the above prompt questions. Firstly, what good is de-coupling in respect to lock-in? SwiftStack effectively locks in by owning the de-coupled management. Sure, you own your data and could, in theory, manage your Swift with another management plane... I do not expect anyone crazy enough to try switching by anything less than standing up a new cluster. In any case, that part is not important, IMHO. The important part is &lt;b&gt;programmatic control&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;The phrase &quot;SDS&quot; jumps off &quot;Software-Defined Networking&quot;. When SDN came into OpenStack, I was quite skeptical about it. It seemed too much like vendor-driven marketing bullshit. However, as users deployed the Project Formerly Known as OpenStack Quantum, it became clear that SDN answers their needs. The chief need was the ability to shape networks programmatically, overlaid on top of the physical networking plant, in service of the VMs.&lt;/p&gt;
&lt;p&gt;Before SDN, when all this cloud thing came about, practitioners also struggled with the definition of it, and in particular the difference from the plain old datacenter virtualization. The difference is the programmatic control throughout. RHEV (now oVirt) eventually grew an API, which blurred the lines. But in OpenStack it was the main feature from the start. So you can manage everything and anything programmatically, including, for example, running on bare hardware. One can say that cloud is &quot;Software-Defined Computing&quot;.&lt;/p&gt;
&lt;p&gt;So, how does this programmatic thing apply to Swift? Joe had interesting insights cunningly hidden in the book, like these:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In an SDS system, reliability is the responsibility of the software, not the hardware. Replication and data integrity tactics are used to ensure that data does not become corrupt and that lost data is recovered.&lt;/p&gt;
&lt;p&gt;[...]&lt;/p&gt;
&lt;p&gt;A crucial function of an SDS system is to orchestrate capacity &amp;mdash; storage, networking, routing &amp;amp; services &amp;mdash; for entire cluster.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Swift covers the first part well already. The second is missing, or &quot;de-coupled&quot;.&lt;/p&gt;
&lt;p&gt;For galactic fairness, he also wrote things that seem wrong-headed to me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There is no application sharding or managing volumes which can drive operational knowledge and complexity into applications because the SDS system is one cohesive system. Users do not need to ask for or know &apos;which storage pool&apos; should be used because there is only one namespace.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem with hiding the pools outside of namespace is that they become invisible to the programmatic control as well, and such control is essential to the very definition of SDS. Someone at Amazon made a brilliant decision to make buckets a unit of replication in S3, so they can be linked to a region. In effect this hides the &lt;i&gt;complexity&lt;/i&gt; but exposes &lt;i&gt;knowledge&lt;/i&gt; that an application needs. Thus, any S3 client can do what Joe coniders SDS, but without any de-coupling, through the namespace and inside the API (or it can chose not to do it and just use a default region, for simplicity).&lt;/p&gt;
&lt;p&gt;Joe&apos;s employees are &lt;a href=&quot;http://swiftstack.com/blog/2012/09/16/globally-distributed-openstack-swift-cluster/&quot;&gt;hard at work&lt;/a&gt; implementing the vision as he outlined it, using the concept of regions that are internal to Swift cluster. The problem for everyone else, however, is how the programmatic control of that stack is exclusive to SwiftStack (with some useful things leaking into Swift, such as changeable replica count).&lt;/p&gt;
&lt;p&gt;So, in the end, today Swift offers a solid foundation and parts of an SDS system, but the orchestration is &quot;de-coupled&quot; away elsewhere. Seems like a clear challenge to OpenStack to (re-)create the missing pieces.&lt;/p&gt;
&lt;p&gt;P.S. I&apos;d love to see the missing parts inside the Swift API and even namespace, although we have a problem here. Our Accounts and Containers are not guaranteed to live anywhere specifically or even on the same nodes. Changing that would be a step that I prefer. But Joe prefers to give up on plugging programmatic orchestration into the Swift API and just &quot;de-couple&quot; the heck of it. John, our benevolent PTL, seems to toe that line. Maybe they are right.&lt;/p&gt;
&lt;p&gt;P.P.S. The deal with the programmatic orchestration is something that &quot;unified&quot; storage projects have to address too. E.g. in GlusterFS a program can issue mkdir(2). Is this programmatic control? No, not enough. Okay, they have glusterfsd nowadays, I can create volfiles in there, is that SDS? That is getting closer!&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/217858.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/217826.html</guid>
  <pubDate>Thu, 09 May 2013 20:12:25 GMT</pubDate>
  <title>Viva la testing revolution</title>
  <link>http://zaitcev.livejournal.com/217826.html</link>
  <description>&lt;p&gt;This is not something to brag about, but apparently I managed to program computers for about 30 years without writing unit tests. Today it&apos;s recitified by adding a test to one of my projects &lt;a href=&quot;https://github.com/zaitcev/slasti/commit/d56cc12db5e4d3d6e3084b84a6dece690f2bc89f&quot;&gt;voluntarily&lt;/a&gt;. I encountered the goodness of build-time testing when working on Jeff Garzik&apos;s Project Hail. And of course, OpenStack, including Swift, had them since forever. Those weren&apos;t my projects, however.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/217826.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/217497.html</guid>
  <pubDate>Tue, 23 Apr 2013 18:28:24 GMT</pubDate>
  <title>I have your posix_ipc right here</title>
  <link>http://zaitcev.livejournal.com/217497.html</link>
  <description>&lt;p&gt;Greg Holt &lt;a href=&quot;https://review.openstack.org/26957&quot;&gt;posted a change&lt;/a&gt; to Swift&apos;s object server and replicator, which adds a counting semaphore to the server. As best I can tell, the intent is to provide a form of load control, so that no more than N replicators talk to a given server. So:&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;
    global_conf[&apos;replication_semaphore&apos;] = [posix_ipc.Semaphore(
        None, flags=posix_ipc.O_CREAT | posix_ipc.O_EXCL,
        initial_value=int(preloaded_app_conf[&apos;replication_concurrency&apos;]))]
    .......
    try:
        self.replication_semaphore.acquire(0)
    except posix_ipc.BusyError:
        return HTTPServiceUnavailable()
    try:
        ....... replication service goes here
    finally:
        self.replication_semaphore.release()
&lt;/pre&gt;&lt;/code&gt;
&lt;p&gt;This appears to be doing the job, but it adds a dependency on &lt;kbd&gt;posix_ipc&lt;/kbd&gt;. Question arises, are we missing a traditional way to do this?&lt;/p&gt;
&lt;p&gt;Since the semaphores are not taken and checked often in this application, once per replication request, something like creating a directory in /var/run, populating it with one file per server instance, and counting them with listdir would be acceptable (even with obvious inexact count), but we need something that cleans up in case of crashes.&lt;/p&gt;
&lt;p&gt;Another trick I know is to create a pipe and prime it with N 1-byte tokens, but then again, crash cleanup is not bulletproof.&lt;/p&gt;
&lt;p&gt;The best would be to identify an entity in Linux that counts opens. Something in /proc, perhaps? Open it, read it to see the open count, if it is too high, abort. Close when done. Kernel closes it in case of a crash, perfect. Well, I guess I just described POSIX semaphore, again. If only it was a part of Python...&lt;/p&gt;
&lt;p&gt;UPDATE: Someone was urging Greg to use &lt;kbd&gt;multiprocessing.Semaphore&lt;/kbd&gt;. Unfortunately, the docs for that contain omnious warnings of poor crash resistance. Cannot say more without looking at the implementation.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/217497.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/217287.html</guid>
  <pubDate>Thu, 18 Apr 2013 17:39:13 GMT</pubDate>
  <title>Amazon S3 breaks 2T objects</title>
  <link>http://zaitcev.livejournal.com/217287.html</link>
  <description>&lt;p&gt;Techcrunch &lt;a href=&quot;http://techcrunch.com/2013/04/18/amazons-s3-now-stores-2-trillion-objects-up-from-1-trillion-last-june-regularly-peaks-at-over-1-1m-requests-per-second/&quot;&gt;said it all&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;At at AWS Summit in New York today, Amazon announced that its S3 storage service now holds more than 2 trillion objects. That’s up from 1 trillion last June and 1.3 trillion in November [...]. As Amazon’s Chief Evangelist for AWS Jeff Barr notes in a blog post today, it took Amazon six years to grow to get to 1 trillion stored objects, “and less than a year to double that number.” S3, Barr also writes, now regularly sees peaks of more than 1.1 million requests per second.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I don&apos;t think all Swift istallations combined come anywhere close, although potentially they should be able to. Pretty easy, actually. Meanwhile, we hit local problems. At the Summit two days ago, a presenter from Korea Telecom said that some of their customers put 50 million (5e7) objects into a Swift container. Naturally, container listings and even lookups become challenging.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/217287.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/217058.html</guid>
  <pubDate>Tue, 16 Apr 2013 20:45:12 GMT</pubDate>
  <title>Facebook Open Hardware</title>
  <link>http://zaitcev.livejournal.com/217058.html</link>
  <description>&lt;p&gt;&lt;img src=&quot;http://ic.pics.livejournal.com/zaitcev/3838583/53509/53509_original.jpg&quot; width=&quot;640&quot; height=&quot;432&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Continuing the Hardware at Havana theme, Facebook showed their &quot;Open Hardware&quot; platform. Like Google, they found it advantageous to design systems for themselves, but unlike Google, they opened the design. Anyone can download the detailed docs and anyone can contribute.&lt;/p&gt;
&lt;p&gt;I was sceptical about open source for hardware. The material nature of hardware places a high barrier, so participation tends to be low. Nonetheless, the gentleman at the booth said that someone contributed an ARM server board. It slides into the slot under the drive tray where SAS extender goes in the reference design.&lt;/p&gt;
&lt;p&gt;It shows how long I was out of the hardware, but apparently it&apos;s completely acceptable nowadays to place drives along the airflow. The Facebook tray is very much like Dell design that way, only using 3.5&amp;quot; drives. Fans are removable on drive trays but not on server bricks.&lt;/p&gt;
&lt;p&gt;In a strange twist, Facebook trays take 12V DC power. Not telco-style 48V, nor contentional AC.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/217058.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/216580.html</guid>
  <pubDate>Tue, 16 Apr 2013 16:12:51 GMT</pubDate>
  <title>Dell C5220/C5125</title>
  <link>http://zaitcev.livejournal.com/216580.html</link>
  <description>&lt;p&gt;&lt;img src=&quot;http://ic.pics.livejournal.com/zaitcev/3838583/53389/53389_original.jpg&quot; width=&quot;640&quot; height=&quot;408&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Saw a cute thing at the &quot;Havana&quot; OpenStack Summit: a Dell ARM prototype. It is based on C5125 module for C5220 chassis. If you go to Dell website and check their gallery, it&apos;s readily apparent how busy the design of the x86-based module is when compared with the ARM (the x86 is AMD; Dell have an even worse module based on Intel -- 50% thicker).&lt;/p&gt;
&lt;p&gt;Another thing, I love the way drives are bunched on trays. People keep chasing the individually accessible drives with the corresponding hit to density. If one abandons the hot-swap mania, he can do these nice trays. Also! This is the first time I see someone intelligently using the 2.5&quot; drives. Only took 15 years. About the only critique I would level on the thing is that the air goes over the drives in sequence. There&apos;s a bit of spare width for staggering, so a few cheap baffles and/or raisers could even it out, but someone at Dell decided not to bother.&lt;/p&gt;
&lt;p&gt;BTW, Dell people told me that the prototype is not slated for production. They are waiting for the 64-bit ARM. Typical. ARM servers are always one year away, for many years now. In the time we heard promises of ARM servers SpaceX built whole rocket and started launching it, but Netwinder seems harder to reproduce than Saturn V.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/216580.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/216404.html</guid>
  <pubDate>Sat, 09 Mar 2013 00:24:14 GMT</pubDate>
  <title>Yahoo versus Linode in datacenter networking</title>
  <link>http://zaitcev.livejournal.com/216404.html</link>
  <description>&lt;p&gt;I just saw a &lt;a href=&quot;http://blog.linode.com/2013/03/07/linode-nextgen-the-network/&quot;&gt;blog post today&lt;/a&gt; that trumpets improvements that Linode made to their datacenter networks. It looks pretty good, bandwidth is improved, etc. I would never know any better, except that a month ago I was at a presentation by Yihua He of Yahoo. And, for a layman like me, it seemed that he was quite a bit ahead.&lt;/p&gt;
&lt;p&gt;Link-wise, the He-style Yahoo networking is very similar to Linode&apos;s Nextgen. It uses a so-called &quot;leaf-spine&quot; architecture with Top-of-Rack (ToR) switches being the leaves. Linode&apos;s post did not articulate clearly the advantages that He architure brings: increased bisection that accomodates growing east-west traffic and reduction in oversubscription, but I presume Linode customers will reap improvements in that area too. However, there&apos;s one curious difference: Linode allowed a vendor to provide the balancing that leaf-spine requires, whereas He went with a COTS gear.&lt;/p&gt;
&lt;p&gt;He accomplishes this by using routers as spines where Linode uses Cisco Nexus 5000. As it turns out, using iBGP works in place of whatever proprietary magic Cisco employs. He simply gives each ToR a private ASN.&lt;/p&gt;
&lt;p&gt;Once you go with COTS gear, you are free from the yoke of Cisco. You can mix and match as you with, build datacenters incrementally, and run any kind of monitoring apps you like. And the whole thing is much, much cheaper.&lt;/p&gt;
&lt;p&gt;To be sure, there are issues as well. For example, depending on how magical Cisco is, you might be able to migrate VMs at will throughout the datacenter. In case of He, you can&apos;t. Although, using OpenStack with floating IPs probably accomplishes a useful result in such a case anyway.&lt;/p&gt;
&lt;p&gt;But in the end, if you can use an open solution, is it ever worth using the vendor solution? And I definitely didn&apos;t expect Linode and Yahoo feature in this ironic role reversal. Which one of them is the scrappy startup and which one is a bureaucratic monster courted by lock-in vendors?&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/216404.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/216094.html</guid>
  <pubDate>Wed, 27 Feb 2013 17:44:10 GMT</pubDate>
  <title>Working Remotely</title>
  <link>http://zaitcev.livejournal.com/216094.html</link>
  <description>&lt;p&gt;One thing I found remarkable about the &lt;a href=&quot;http://37signals.com/svn/posts/3453-no-more-remote-work-at-yahoo&quot;&gt;recent Yahoo flap&lt;/a&gt; (&lt;a href=&quot;http://allthingsd.com/20130222/physically-together-heres-the-internal-yahoo-no-work-from-home-memo-which-extends-beyond-remote-workers/&quot;&gt;memo&lt;/a&gt;) is how Marissa Mayer was supposed to be one of the bright lights of Google, who was recruited back when Google was much smaller and presumably was wetted by founders, and yet she has &lt;i&gt;no clue&lt;/i&gt;. No disrespect to rlove, AKPM, Raph, and tytso intended, but how many supposedly ultra-smart Google people are not really? Is this legend only a myth?&lt;/p&gt;
&lt;p&gt;By the way, Red Hat is quite good at this remote thing. At some point in 2003 or so Paul Cormier V.P. of Eng. attempted to consolidate all of engineering in Boston (Matthew was the CEO at the time). They asked me to relocate, too. But when I used my best judgement and declined, there were no sanctions. Red Hat did not threaten to fire me over it. That, I think, is the biggest difference between Paul&apos;s and Marissa&apos;s approaches. And of course he pushed for it back when it wasn&apos;t quite as obvious that remoting within reason is the way to go for programmers, and she is doing it in 2013.&lt;/p&gt;
&lt;p&gt;P.S. Not sure what to make of &lt;a href=&quot;http://zaitcev.livejournal.com/173141.html&quot;&gt;Elon Musk&lt;/a&gt; in this light.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/216094.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/215856.html</guid>
  <pubDate>Thu, 25 Oct 2012 04:31:43 GMT</pubDate>
  <title>Hard numbers from Wikimedia</title>
  <link>http://zaitcev.livejournal.com/215856.html</link>
  <description>&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://pics.livejournal.com/zaitcev/pic/0007x4r3&quot; height=&quot;374&quot; width=&quot;747&quot; /&gt;&lt;/div&gt;
&lt;p&gt;John threw a &lt;a href=&quot;http://ganglia.wikimedia.org/latest/graph.php?r=year&amp;amp;z=xlarge&amp;amp;m=swift_object_count&amp;amp;h=Swift+pmtpa+prod&amp;amp;c=Swift+pmtpa&quot;&gt;link&lt;/a&gt; to IRC that indicates that Wiki people hit 173,000,000 objects. This is 1e4 times fewer than Amazon S3 has, but 10 times more than &lt;a href=&quot;http://zaitcev.livejournal.com/213930.html&quot;&gt;Sina has&lt;/a&gt;. I heard more about Sina&apos;s performance issues and apparently they had issues with lots of updates to those objects; there was talk about sharding. Wiki guys probably do not update so much... Those objects are jpegs or something like that, so they only need to scale the auditors and replicators. Still, that&apos;s a heck of a pile of objects, even if so.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/215856.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/215765.html</guid>
  <pubDate>Sun, 21 Oct 2012 00:52:26 GMT</pubDate>
  <title>OpenStack Swift drops WebOb</title>
  <link>http://zaitcev.livejournal.com/215765.html</link>
  <description>&lt;p&gt;This actually happened back in September, but it didn&apos;t click as blogworthy back then. So: &lt;a href=&quot;https://github.com/openstack/swift/commit/5e3e9a882de8b51b8e3b27628ba39f0dabfc78df&quot;&gt;we dropped WebOb&lt;/a&gt; for an in-tree module for 1.7.x.&lt;/p&gt;
&lt;p&gt;The main reason was the trouble with WebOb being gratiously incompatible with itself, that came to the head with the WebOb 1.2. I am afraid myself screwing the pooch on that was a factor. Since Fedora Rawhide F18 came out with WebOb 1.2 and Swift blew up on it, I saw an opportunity to be productive and patch it over. Later, a guy from Korea, Iryong, joined in and did half of the coding. I thought I tested the patch well, but when it was committed, regressions started happening. Greg Holt came very close to requesting the whole thing being rescinded. The story dragged on long enough for Mike Barton just cut the whole gordian knot by throwing out not just my patch, but the whole WebOb. Good riddance, I say. I wish I was daring enough to do it myself.&lt;/p&gt;
&lt;p&gt;The funniest part is that OpenStack&apos;s reliance on WebOb 1.0.8 was the reason why we had to package it in EPEL. If only I knew how this was going to turn out, we could possibly do something like that across OpenStack and avoid having two WebObs in RHEL 6. But nobody had Mike&apos;s vision.&lt;/p&gt;
&lt;p&gt;I would not say that WebOb has poor governance or stewardship or whatever. They easily accepted &lt;a href=&quot;https://github.com/Pylons/webob/pull/62&quot;&gt;my patch&lt;/a&gt; for BYTES= in HTTP Ranges:, so they are user-facing. But their policy of gratious incompatibility was detrimental for us in Swift, and the value we extracted from WebOb was small (look at size of Mike&apos;s replacement).&lt;/p&gt;
&lt;p&gt;Now John started talking about getting rid of Eventlet. Woo hoo.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/215765.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/215380.html</guid>
  <pubDate>Thu, 18 Oct 2012 14:42:17 GMT</pubDate>
  <title>Slasti 2.0</title>
  <link>http://zaitcev.livejournal.com/215380.html</link>
  <description>&lt;p&gt;With little fanfare, Slasti saw a release 2.0 (&lt;a href=&quot;http://people.redhat.com/zaitcev/linux/index.html&quot;&gt;uploaded&lt;/a&gt;). This closes the chapter on our template nightmare. Unfortunately for that little project, I have too many exciting things going on with OpenStack, Swift, et.al, so it&apos;s going to languish, even though I use it every day (many times a day actually, via a browser &lt;a href=&quot;https://slasti.zaitcev.us/zaitcev/homepage/&quot;&gt;homepage&lt;/a&gt;, per &lt;a href=&quot;http://utcc.utoronto.ca/~cks/space/blog/web/BookmarksAlternative&quot;&gt;CKS&lt;/a&gt;).&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/215380.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/215159.html</guid>
  <pubDate>Fri, 12 Oct 2012 02:52:50 GMT</pubDate>
  <title>Swift LFS and Gluster UFO</title>
  <link>http://zaitcev.livejournal.com/215159.html</link>
  <description>&lt;p&gt;&lt;a href=&quot;http://berrange.com/&quot;&gt;DanPB&lt;/a&gt; poked a few people to blog more about all the awesome stuff we have going in open cloud storage. Honestly, I find it a bit difficult of late. Well, I pulled &lt;a href=&quot;https://github.com/portante/glusterfs/tree/refactor-swift-3.3.0&quot;&gt;Peter&apos;s branch&lt;/a&gt; of Gluster into a &lt;a href=&quot;https://github.com/zaitcev/swift-gluster&quot;&gt;Swift tree&lt;/a&gt; today. Okay, is anyone interested? Didn&apos;t think so.&lt;/p&gt;
&lt;p&gt;The only guy who I know as consistently interesting in the subject is &lt;a href=&quot;http://pl.atyp.us/&quot;&gt;JDarcy&lt;/a&gt;. But he&apos;s not prolific.&lt;/p&gt;
&lt;p&gt;I sort of understand where Dan comes from. There&apos;s so much stuff going on, most of it unnecessarily silent. It is frustrating. I didn&apos;t know Portante worked on UFO (Unified Filesystem Objects) until MarkMc tracked him down by the way of taking hot iron to Kaleb. Is more blogging the answer? Dan feels it could be. I suppose I could make an effort.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/215159.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/214870.html</guid>
  <pubDate>Mon, 24 Sep 2012 17:46:51 GMT</pubDate>
  <title>Darcy on CDMI</title>
  <link>http://zaitcev.livejournal.com/214870.html</link>
  <description>&lt;p&gt;Apropos &lt;a href=&quot;http://pl.atyp.us/wordpress/index.php/2012/09/storage-developer-conference-2012/&quot;&gt;Jeff Darcy&lt;/a&gt; mentioning CDMI and Swift in one paragraph, I looked briefly at the CDMI &lt;a href=&quot;https://review.openstack.org/5539&quot;&gt;patch&lt;/a&gt; for Swift.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It exists&lt;/li&gt;
&lt;li&gt;+2995 by diffstat, but well-confined in WSGI middleware pipeline&lt;/li&gt;
&lt;li&gt;Only implements a small subset of the &lt;a href=&quot;http://zaitcev.livejournal.com/213534.html&quot;&gt;spec&lt;/a&gt;, enough to attend plugfests&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The basic idea is that CDMI is the same front-end technology to Swift back-end as Jeff&apos;s model of SMB vs. Gluster. It aims to unsettle the S3 API, and you know there&apos;s a reason why Google Storage is S3 with very minor changes. Unfortunately, proponents of CDMI trade the strangehold by Amazon for a strangehold by a standards committee, and those who remember X.25 and OSI have a pretty good idea how that works out. After I poked at CDMI, I thought it wise to back away slowly.&lt;/p&gt;
&lt;p&gt;Everyone who uses Swift these days just use Swift&apos;s native Cloud Files API. That includes Jeff&apos;s own Image Warehouse, which has two almost identical back-ends for &quot;s3&quot; and &quot;cf&quot; in about 50 lines of C code each. Try that with CDMI. Although, knowing Jeff, he probably can code a CDMI client in that much, using nothing but libcurl and libc :-)&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/214870.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/214579.html</guid>
  <pubDate>Mon, 27 Aug 2012 15:29:20 GMT</pubDate>
  <title>Seeking Google Authenticator for Linux</title>
  <link>http://zaitcev.livejournal.com/214579.html</link>
  <description>&lt;p&gt;I have enabled a 2-step authentication for Google, but I do not have a smartphone. What to do?&lt;/p&gt;
&lt;p&gt;The official answer #0 is to buy the goddamn smartphone. But that means paying a cellular carrier for the rest of your life.&lt;/p&gt;
&lt;p&gt;The official answer #1 is to have Google call you. This is good, but what if I travel, say, to Ireland?&lt;/p&gt;
&lt;p&gt;The official answer #2 is to print a set of challenge-response pairs, sort of like we did in OPIE days. The only small problem is that I do not see them offering to switch from voice verification to challenge-response. Also, it&apos;s a hassle even if it works.&lt;/p&gt;
&lt;p&gt;In any case, it would be ideal if an open source program existed that substituted for Google Authenticator. Surprisingly, I am unable to find such a thing, and I don&apos;t know why. There should be nothing too secret about the workings of the code generator, even the parameters of the PRNG (the seed is the secret).&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://lwn.net/Articles/470764/&quot;&gt;article at LWN&lt;/a&gt; says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Traditionally, hardware authentication tokens must be physically connected to the computer to authenticate a user, though some one-time password (OTP) generators are standalone. Unlike the Android app, however, those devices are meant to make it difficult to extract the key without destroying them. Accessing the key from a phone, then running the app elsewhere (e.g. an Android emulator) would circumvent the &quot;things you have&quot; requirement.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;OK, fine, a computing device is less secure than the RSA token [generator] that I have on my keychain. But phone and laptop are &lt;i&gt;no diffrent&lt;/i&gt;. In fact, my laptop is far more secure than average malware-infested smartphone. Anyway, I don&apos;t want to hear the excuses, I just want this to work.&lt;/p&gt;
&lt;p&gt;The same article suggests:&lt;/p&gt;
&lt;blockquote&gt;
You can perform a passcode-generation hash by running:
&lt;blockquote&gt;
&lt;kbd&gt;oathtool --totp --now=&quot;the_current_time&quot; your_secret_key&lt;/kbd&gt;
&lt;/blockquote&gt;
The passcodes matched, once I figured out how to correctly convert the Base32 encoding produced by Google Authenticator into the hexadecimal required by oathtool — namely, that the Base32 encoding scheme defined by RFC 4648 is not the same as base-32 mathematical notation (because the encoding avoids easy-to-confuse characters like I and O). 
&lt;/blockquote&gt;
&lt;p&gt;Ouch. Is there no better way? Maybe I should write a wrapper.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/214579.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/214434.html</guid>
  <pubDate>Fri, 06 Jul 2012 16:48:14 GMT</pubDate>
  <title>Github</title>
  <link>http://zaitcev.livejournal.com/214434.html</link>
  <description>&lt;p&gt;I remember whailing about Sourceforge being our Open Source SPOF because everyone hosted on it. Seems like the problem solved itself now. Hah! What&apos;s interesting, I find it convenient to throw even &lt;a href=&quot;https://github.com/zaitcev/hailcam&quot;&gt;20-line script&lt;/a&gt; at Github. It&apos;s already in git, so almost zero cost to push too. With SF I would need to think: is this project important enough? Not anymore.&lt;/p&gt;
&lt;p&gt;All this makes me wish for some kind of semantic indexing. But I know that prompts madness.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/214434.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/214177.html</guid>
  <pubDate>Wed, 04 Jul 2012 21:42:23 GMT</pubDate>
  <title>Webcam and kernel nostalgia</title>
  <link>http://zaitcev.livejournal.com/214177.html</link>
  <description>&lt;div align=&quot;center&quot;&gt;
&lt;a href=&quot;http://ani-nouto.animeblogger.net/2012/06/28/sena-and-yozora-pettanko/&quot;&gt;&lt;img src=&quot;http://pics.livejournal.com/zaitcev/pic/0007w6t1&quot; height=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;I don&apos;t know what made me do it, but I ripped an OV511 decompressor from v4l-utils grafted it onto &lt;a href=&quot;https://github.com/fsphil/fswebcam&quot;&gt;fswebcam&lt;/a&gt;. The last time I wanted to take a picture, I found that nothing seemed to support OV511, so I gave up on it and used ibmcam. That one, however, requires a kernel patch, because it runs DMA from vmalloc-ed area, or some such. I figured it out then. Now? Meh, don&apos;t wanna reboot the laptop to test. I guess I&apos;m not a kernel programmer anymore for real.&lt;/p&gt;
&lt;p&gt;BTW, the changelog for fswebcam claims that I contributed something to it back in 2010. Can&apos;t remember what exactly. Something to do with ibmcam being V4L1-only.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/214177.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/213930.html</guid>
  <pubDate>Fri, 13 Apr 2012 16:40:01 GMT</pubDate>
  <title>Hard numbers from China</title>
  <link>http://zaitcev.livejournal.com/213930.html</link>
  <description>&lt;p&gt;It looks like almost every cloud provider hide their numbers, which makes guidance and education unnecesserily difficult. To be fair, I think I saw AWS posting a few items for S3, but forgot to save it. So, I&apos;m going to preserve what one Chinese gentleman &lt;a href=&quot;https://lists.launchpad.net/openstack/msg10020.html&quot;&gt;posted&lt;/a&gt; to OpenStack list, in the context of Swift performance issues:&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;
Our practice of  Sina Web Service Team https://launchpad.net/~sws:

total accounts:          121,961;
total containers:        160,703;
total objects:        14,291,519;
total storage usage:   1.3T

account replication time:      10 hours;
container replication time:    10 hours;
object replication time:       48 hours;
account audit time:             2 hours;
container audit time:           9 hours;
container update time:         19 hours;
&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;Unfortunately he omitted the requests per second and gigabytes per second that the cluster is sustaining from the users, but it&apos;s very interesting anyway.&lt;/p&gt;
&lt;p&gt;QUICKIE: Apparently I meant the official &lt;a href=&quot;http://aws.typepad.com/aws/2012/04/amazon-s3-905-billion-objects-and-650000-requestssecond.html&quot;&gt;post&lt;/a&gt; about Amazon S3:&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;
total objects:   905,000,000,000
total bytes:     ?
requests/s:           650,000
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;UPDATE 2012-06-12: Amazon announced that they reached a &lt;a href=&quot;http://aws.typepad.com/aws/2012/06/amazon-s3-the-first-trillion-objects.html&quot;&gt;trillion&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;
total objects: 1,000,000,000,000
total bytes:     ?
requests/s:           650,000
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The growth rate, according to my calculations, is 18,325 objects/s. The blog article claims 40,000 objects/s.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/213930.html</comments>
  <category>cloud</category>
  <category>storage</category>
  <category>openstack</category>
  <category>swift</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/213534.html</guid>
  <pubDate>Thu, 22 Mar 2012 03:37:14 GMT</pubDate>
  <title>Confounding</title>
  <link>http://zaitcev.livejournal.com/213534.html</link>
  <description>&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;16.1.9 JSON Format for ACLs&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;ACE flags and masks are members of a 32-bit quantity that is widely understood in its hexadecimal representations. The JSON data format does not support hexadecimal integers, however. For this reason, all hexadecimal integers in CDMI ACLs shall be represented as quoted strings containing a leading &quot;0x&quot;.&lt;/p&gt;
&lt;p&gt;&quot;cdmi_acl&quot; : [ { &quot;acetype&quot; : &quot;0xnn&quot;, .....&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If readability by humans is paramount, then why not use a bit string, like in ls(1)? If readability is not an issue, just transmit decimal.&lt;/p&gt;
&lt;p&gt;They also have hexadecimals without &quot;0x&quot; prefix elsewhere in the spec.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/213534.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/213314.html</guid>
  <pubDate>Mon, 19 Mar 2012 20:00:24 GMT</pubDate>
  <title>Bugception</title>
  <link>http://zaitcev.livejournal.com/213314.html</link>
  <description>&lt;p&gt;&lt;tt&gt;&lt;code&gt;[root@kvm-rei zaitcev]# rpm --rebuilddb&lt;br /&gt;
error: db5 error(-30969) from dbenv-&amp;gt;open: BDB0091 DB_VERSION_MISMATCH: Database environment version mismatch&lt;br /&gt;
error: cannot open Packages index using db5 -  (-30969)&lt;/code&gt;&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;I have a vague feeling that I encountered this before, but I do not remember how I dealt with it.&lt;/p&gt;
&lt;p&gt;UPDATE: Needs &lt;kbd&gt;rm /var/lib/rpm/__db*&lt;/kbd&gt; .&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/213314.html</comments>
  <category>rpm</category>
  <category>fedora</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/213207.html</guid>
  <pubDate>Fri, 02 Mar 2012 01:07:16 GMT</pubDate>
  <title>Twitterfail 2</title>
  <link>http://zaitcev.livejournal.com/213207.html</link>
  <description>&lt;p&gt;Just ran into a weird case on Twitter: If I tweet the following link to Failblog, the tweet disappears:&lt;/p&gt;
&lt;blockquote&gt;http://failblog.org/2012/02/23/epic-win-photos-win-wwf-win/&lt;/blockquote&gt;
&lt;p&gt;It disappears even if shortened with something like TinyURL. I noticed because a couple of people favourited my tweet before it disappeared, and then when it disappeared, Twitter&apos;s own &quot;interactions&quot; page became corrupted (one of their Javascript functions returned &quot;undefined&quot;).&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://pics.livejournal.com/zaitcev/pic/0007t82r&quot; height=&quot;415&quot; /&gt;&lt;/div&gt;</description>
  <comments>http://zaitcev.livejournal.com/213207.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/212990.html</guid>
  <pubDate>Sat, 25 Feb 2012 00:21:04 GMT</pubDate>
  <title>The other reST</title>
  <link>http://zaitcev.livejournal.com/212990.html</link>
  <description>&lt;p&gt;I was &lt;a href=&quot;https://github.com/openstack/swift/commit/6f7f95ffde4fc5e9ac21f7f76183323b4d252ccd&quot;&gt;moonlighting&lt;/a&gt; a bit as a technical writer, and run into an odd issue. In &lt;a href=&quot;http://swift.openstack.org/development_saio.html&quot;&gt;Swift SAIO doc&lt;/a&gt; we have a piece that comes out like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;[swift-&lt;span style=&quot;color:red&quot;&gt;hash&lt;/span&gt;]
&lt;span style=&quot;color:cyan&quot;&gt;# random unique string that can never change (DO NOT LOSE)&lt;/span&gt;
swift_hash_path_suffix = changeme
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;Why is &quot;hash&quot; red?&lt;/p&gt;
&lt;p&gt;My reading of the documentation for &lt;a href=&quot;http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html&quot;&gt;reST&lt;/a&gt; suggests nothing. If I try to escape the dash with a backslash, color disappears, but the backslash leaks into the HTML.&lt;/p&gt;
&lt;p&gt;To make matters worse, we cannot just spit on it all and re-code everything in &lt;a href=&quot;http://daringfireball.net/projects/markdown/syntax&quot;&gt;MD&lt;/a&gt;, because Sphinx is quite well entrenched.&lt;/p&gt;
&lt;p&gt;UPDATE: trying bug &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=797425&quot;&gt;797425&lt;/a&gt;. As it turned out, the problem is that Sphinx treats the document as Python code and highlights accordingly.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/212990.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/212501.html</guid>
  <pubDate>Tue, 17 Jan 2012 23:55:23 GMT</pubDate>
  <title>Eucalyptus and openness</title>
  <link>http://zaitcev.livejournal.com/212501.html</link>
  <description>&lt;p&gt;Reading what Spot &lt;a href=&quot;http://spot.livejournal.com/320607.html&quot;&gt;blogged about Eucalyptus&lt;/a&gt;, them poaching Greg de K. off us, and how this indicates change, and cannot help thinking he&apos;s way too optimistic. They are unlikely to go fully open, and the proprietary disease only dies when eradicated from the whole company. Remember Cygnus? It was supposed to be the torchlight of commerical GNU. When we bought them, old hands shared stories how their proprietary offerings failed again and again, while the support for gcc kept the lights on. Nonetheless, their executives did not have the will to go full open. I&apos;m saying it with all due respect to Michael Tiemann, of course! But I doubt the Eucalyptus&apos; management is much more sincere or unified when hiring Greg than Sun&apos;s was when they hired Ian Murdock. Or was that Simon Phipps?&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/212501.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/212396.html</guid>
  <pubDate>Mon, 09 Jan 2012 03:10:53 GMT</pubDate>
  <title>Blogs</title>
  <link>http://zaitcev.livejournal.com/212396.html</link>
  <description>&lt;p&gt;Unwittingly, I &lt;a href=&quot;http://zaitcev.livejournal.com/205419.html&quot;&gt;sat myself up&lt;/a&gt; for a yearly excersize, but let&apos;s look for a silver lining, shall we?&lt;/p&gt;
&lt;p&gt;
&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt; Blog &lt;/th&gt;
    &lt;th&gt; Posts &lt;/th&gt;
    &lt;th&gt; Delta &lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt; &lt;a href=&quot;http://ani-nouto.animeblogger.net/&quot;&gt;Ani-nouto&lt;/a&gt; &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; 149 &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; -220 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt; &lt;a href=&quot;http://zaitcev.mee.nu/&quot;&gt;Meenuvia&lt;/a&gt; &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; 93 &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; -28 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt; &lt;a href=&quot;http://zaitcev.livejournal.com/&quot;&gt;LiveJournal&lt;/a&gt; &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; 27 &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; -5 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt; &lt;a href=&quot;http://tracytoday.blogspot.com/&quot;&gt;Tracy Today&lt;/a&gt; &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; 1 &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; -3 &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt; &lt;a href=&quot;http://mixi.jp/list_diary.pl?id=165538&quot;&gt;Mixi&lt;/a&gt; &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; 0 &lt;/td&gt;
    &lt;td&gt; &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt; Duke City Fix &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; 0 &lt;/td&gt;
    &lt;td&gt; &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt; &lt;a href=&quot;http://www.advogato.org/person/Zaitcev/&quot;&gt;Advogato&lt;/a&gt; &lt;/td&gt;
    &lt;td align=&quot;right&quot;&gt; 0 &lt;/td&gt;
    &lt;td&gt; &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;Looks like I&apos;m taking my life back from the Internet.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/212396.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/212109.html</guid>
  <pubDate>Fri, 06 Jan 2012 05:11:45 GMT</pubDate>
  <title>SElinux in Fedora 16</title>
  <link>http://zaitcev.livejournal.com/212109.html</link>
  <description>&lt;p&gt;Perhaps even a flatworm can learn to turn left in T-maze when he&apos;s hit with an electric shock, but every time I install new Fedora, I try to leave SElinux enabled. In Fedora 15 it lasted for almost a week. This time, things went sour in 10 minutes.&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://pics.livejournal.com/zaitcev/pic/0007qe99&quot; height=&quot;194&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Thought 1: The troubleshooter is quite nice, they really are getting civilized these days. Poor Polkit is doing isatty(), let&apos;s see if we can help.&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://pics.livejournal.com/zaitcev/pic/0007r9pw&quot; height=&quot;481&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Thought 2: Well, this is a bit ugly, but hey, it&apos;s copy-pasteable! Hurray for supporting common UNIX tools...&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://pics.livejournal.com/zaitcev/pic/0007scgg&quot; height=&quot;334&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Thought 3: I am dumber than a flatworm. How could I believe that this time they get it right.&lt;/p&gt;
&lt;p&gt;Actually, I lied. I disabled the sorry thing the moment I saw this:&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://pics.livejournal.com/zaitcev/pic/0007p12y&quot; height=&quot;360&quot; /&gt;&lt;/div&gt;
&lt;p&gt;The reason I continue to suffer through this excercise twice a year is that the security issue is important, and the shifing focus of attacks at non-daemon, non-system applications (read: browsers) is a matter of great concern for me. Every time Dan Walsh posts something nice to &lt;a href=&quot;http://danwalsh.livejournal.com/&quot;&gt;his LJ&lt;/a&gt; it looks like progress is being made, but then I install new Fedora and feel despair. It is as if some fundamental architecture is broken or something.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/212109.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://zaitcev.livejournal.com/211730.html</guid>
  <pubDate>Fri, 16 Dec 2011 05:48:48 GMT</pubDate>
  <title>Modern Linux forming new social mores</title>
  <link>http://zaitcev.livejournal.com/211730.html</link>
  <description>&lt;p&gt;Was at a meeting today and at some point a whole side of the table was lined with half-closed laptops - except one that was closed fully. You could play &quot;spot the GNOME 2.x user&quot; (hello, Richard). That is because GNOME 3 on Fedora 16 has a reliable suspend, so everyone has it enabled by default, because that&apos;s what one normally wants. At a meeting, people used to close the tops to direct their attention to the presentation, or to indicate that they do. But that was then. Now, doing so triggers suspend, and that bumps you off VPN or weird WiFi providers like BitBuzz. Result is funny-looking and awkward. My neighbour eventually resorted to locking the screen (which blanks) instead of closing the top. Although blocking the distraction effectively, this has the disadvantage of not sending the right signal to the presenter, but tough cookies.&lt;/p&gt;
&lt;p&gt;I think ideally I might like some kind of hotkey-suspend or whatnot, and disable suspend-on-close, but I dunno. Seems kind of bothersome to RTFM for GNOME. Worse, getting everyone in a meeting to agree on upon a non-default configuration seems like a non-starter.&lt;/p&gt;</description>
  <comments>http://zaitcev.livejournal.com/211730.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
</channel>
</rss>
