<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mikhail panchenko / blog</title>
	<atom:link href="http://mihasya.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://mihasya.com/blog</link>
	<description>good things now come in packages of three</description>
	<lastBuildDate>Mon, 02 Aug 2010 18:47:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Leaving Flickr, Joining SimpleGeo</title>
		<link>http://mihasya.com/blog/leaving-flickr-joining-simplegeo/</link>
		<comments>http://mihasya.com/blog/leaving-flickr-joining-simplegeo/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 18:47:47 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=368</guid>
		<description><![CDATA[Flickr has been a wonderful experience, as has Yahoo! as a whole. Some time soon I&#8217;ll write a longer, more thoughtful blogpost about it. For now, I&#8217;ll just say that I&#8217;m sad to be leaving an amazing team, but excited about a fresh start with another group of brilliant people.]]></description>
			<content:encoded><![CDATA[<p>Flickr has been a wonderful experience, as has Yahoo! as a whole. Some time soon I&#8217;ll write a longer, more thoughtful blogpost about it.</p>

<p>For now, I&#8217;ll just say that I&#8217;m sad to be leaving an amazing team, but excited about a fresh start with another group of brilliant people.</p>

<p><center><object type="application/x-shockwave-flash" width="400" height="225" data="http://www.flickr.com/apps/video/stewart.swf?v=71377" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> <param name="flashvars" value="intl_lang=en-us&#038;photo_secret=34be0ab8dc&#038;photo_id=4495685707"></param> <param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=71377"></param> <param name="bgcolor" value="#000000"></param> <param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&#038;photo_secret=34be0ab8dc&#038;photo_id=4495685707" height="225" width="400"></embed></object></center></p>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/leaving-flickr-joining-simplegeo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Django Admin: Sorting on Related Object&#8217;s Property</title>
		<link>http://mihasya.com/blog/django-admin-sorting-on-related-objects-property/</link>
		<comments>http://mihasya.com/blog/django-admin-sorting-on-related-objects-property/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 08:03:28 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[foreign key]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[sorting]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=362</guid>
		<description><![CDATA[This is mostly a note to myself for the future, but I&#8217;m sure someone else out there will find it helpful. The Problem In one of the apps I work on, I have a pretty standard setup for extending the User object in Django: I have a UserProfile model with a ForeignKey to the auth.User [...]]]></description>
			<content:encoded><![CDATA[<p>This is mostly a note to myself for the future, but I&#8217;m sure someone else out there will find it helpful.</p>

<h2>The Problem</h2>

<p>In one of the apps I work on, I have a pretty standard setup for extending the User object in Django: I have a <code>UserProfile</code> model with a <code>ForeignKey</code> to the <code>auth.User</code> model and have <code>AUTH_PROFILE_MODULE</code> pointing at that model, so that the appropriate row gets returned when I call <code>user.get_profile()</code></p>

<p>I&#8217;ve populated the UserProfile model with a bunch of fields that the client wanted to be able to see in the admin view. Nice and easy so far.</p>

<p>I was then asked to add the date the user joined the site to that view, and also make it sortable. &#8220;Easy!&#8221; I thought. I immediately went and added <code>user__date_joined</code> to the <code>ModelAdmin</code>&#8216;s <code>list_display</code> Turns out it&#8217;s not that easy! Doing this causes a 500.</p>

<p>At first I was baffled that a simple relationship could not be traversed. I went into the Django source and figured out that the error was being thrown by <code>admin.validation.validate()</code> I took out the check to see what would happen if it the field were just allowed to be in there (I was half expecting it to just work, since putting <code>user__date_joined</code> in <code>search_fields</code> worked fine.. I thought maybe the check was accidentally too strict) and that&#8217;s when I understood why it&#8217;s not allowed: by allowing a field on another model to be included in a certain model&#8217;s admin class, an assumption is introduced that 1. that model/field have all the methods required to be displayed and 2. that those methods do what the writer of the <code>ModelAdmin</code> in question expects. Not a good idea.</p>

<h2>The Solution</h2>

<p>I brought this up in a django IRC channel, and <a href="http://inzain.net/">Zain</a> quickly suggested that I just add a callable to the <code>ModelAdmin</code> that simply returns the user&#8217;s <code>date_joined</code>. I already knew I could do that, and the reason I hadn&#8217;t was that I needed to be able to sort by that field &#8211; something that is impossible if it&#8217;s generated by a callable.</p>

<p>That&#8217;s when Zain pointed out <code>admin_order_field</code> to me &#8211; turns out you can tell the admin site to use a specific column to back sort queries against a callable. The resulting code looks like this:</p>

<pre><code>class UserProfileAdmin(admin.ModelAdmin):
    list_select_related = True
    list_display = ( [...] 'date_joined')

    def date_joined(self, profile):
        return profile.user.date_joined

    date_joined.admin_order_field = 'user__date_joined'
</code></pre>

<p>That&#8217;s all there is to it. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/django-admin-sorting-on-related-objects-property/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;Fighting Spam at Flickr&#8221; at Web2.0Expo</title>
		<link>http://mihasya.com/blog/fighting-spam-at-flickr-at-web2-0expo/</link>
		<comments>http://mihasya.com/blog/fighting-spam-at-flickr-at-web2-0expo/#comments</comments>
		<pubDate>Sat, 15 May 2010 18:40:40 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[w2e]]></category>
		<category><![CDATA[web2expo]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=355</guid>
		<description><![CDATA[I recently had the giddy honor of speaking at the 2010 Web2.0Expo in San Francisco. The topic was simple &#8211; spam. I shared some insights (or I hope they were insights, anyway) about combating the spam problem on a social website &#8211; something I had been doing quite a lot of since joining Flickr. The [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had the giddy honor of speaking at the 2010 Web2.0Expo in San Francisco. The topic was simple &#8211; spam. I shared some insights (or I hope they were insights, anyway) about combating the spam problem on a social website &#8211; something I had been doing quite a lot of since joining Flickr. The slides are now on Slideshare and embedded below.</p>

<p>Thanks to <a href="http://twitter.com/brady">Brady</a> and the rest of the w2e team for putting together a great conference. I didn&#8217;t get to go to as many sessions as I would have liked due to having to spend most of my time in the speakers lounge preparing, but the ones I did go to were excellent.</p>

<p>Things I forgot to say in the talk/slides that are important:</p>

<ul>
<li><p>Keep track of recent rates for ALL activity that your users do. This gets a bit expensive in terms of storage, but if you prune the data furiously, it can be made sustainable. Having that information is key &#8211; it can be used at pretty much every step of spam mitigation. Also, be smart about this &#8211; if messages can be deleted from a table, don&#8217;t use that table to do the counting. Nobody I know has EVER done that&#8230;&#8230;</p></li>
<li><p>Rate limit everything. There&#8217;s usually a sweetspot right between what 99% of real users will actually ever do and spam-land.</p></li>
</ul>

<p>Anyway, here are the slides. Enjoy!</p>

<div style="width:425px" id="__ss_4110449"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/mihasya/fighting-spam-at-flickr" title="Fighting Spam at Flickr">Fighting Spam at Flickr</a></strong><object id="__sse4110449" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=spam-100515132519-phpapp02&#038;stripped_title=fighting-spam-at-flickr" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4110449" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=spam-100515132519-phpapp02&#038;stripped_title=fighting-spam-at-flickr" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/mihasya">Mikhail Panchenko</a>.</div></div>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/fighting-spam-at-flickr-at-web2-0expo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ishmael: A UI for mk-query-digest</title>
		<link>http://mihasya.com/blog/a-ui-for-mk-query-digest/</link>
		<comments>http://mihasya.com/blog/a-ui-for-mk-query-digest/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 22:26:38 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=338</guid>
		<description><![CDATA[(queries obscured) UPDATE: Richard is far more clever and is generally on a roll with naming projects recently, so he suggested that the name should be &#8220;Ishmael&#8221; in honor of one of the world&#8217;s most famous whale hunters. I&#8217;m not feeling very creative, so my latest project is exactly what its name implies: mk-query-digest-ui is [...]]]></description>
			<content:encoded><![CDATA[<div class="alignright"><a href="http://mihasya.com/blog/wp-content/uploads/2010/04/screenshot.png"><img src="http://mihasya.com/blog/wp-content/uploads/2010/04/screenshot-300x163.png" alt="screenshot" title="screenshot" width="300" height="163" class="size-medium wp-image-339" /></a><br /><small>(queries obscured)</small></div>

<p><strong>UPDATE:</strong> Richard is far more clever and is generally on a roll with naming projects recently, so he suggested that the name should be &#8220;Ishmael&#8221; in honor of one of the world&#8217;s most famous whale hunters.</p>

<p>I&#8217;m not feeling very creative, so my latest project is exactly what its name implies: <code>mk-query-digest-ui</code> is a simple UI on top of the data that <code>mk-query-digest</code> produces. The project was born of me and Tim Denike, the Flickr DBA, spending hours and hours staring at the the tool&#8217;s plaintext output while hunting for whale queries to optimize. Now that I think about it, I should have called it &#8220;Whale Hunter.&#8221;</p>

<p>The UI simply lets you sort the queries in the report by a few useful characteristics and facilitates more convenient access to data that is useful during the optimization process. As we keep using it, we&#8217;ll keep adding features.</p>

<p>I made it a point to work on this tool in my spare time so that I could release it without the normal ass-ache associated with open-sourcing something at a big company. Thus, the code is on github: <a href="http://github.com/mihasya/ishmael">http://github.com/mihasya/ishmael</a>. Patches and feature requests are welcome.</p>

<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/a-ui-for-mk-query-digest/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Kibera OSM Tiles on Flickr Maps</title>
		<link>http://mihasya.com/blog/kibera-osm-tiles-on-flickr-maps/</link>
		<comments>http://mihasya.com/blog/kibera-osm-tiles-on-flickr-maps/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 21:04:10 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=331</guid>
		<description><![CDATA[I&#8217;m not going to be able to make it to where 2.0, but I was there in spirit. I distracted a few other Flickr employees and made Aaron hold my hand like a small child while we pulled down new OSM tiles for Nairobi and put them up on the Flickr map in time for [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mihasya.com/blog/wp-content/uploads/2010/04/Screen-shot-2010-04-01-at-2.00.22-PM.png" alt="Kibera on Flickr" title="Kibera on Flickr" width="239" height="46" class="alignleft size-full wp-image-332" /> I&#8217;m not going to be able to make it to where 2.0, but I was there in spirit. I distracted a few other Flickr employees and made <a href="http://www.aaronland.info/weblog/">Aaron</a> hold my hand like a small child while we pulled down new <a href="http://www.openstreetmap.org/">OSM</a> tiles for Nairobi and put them up on the Flickr map in time for <a href="http://brainoff.com/weblog/">Mikel&#8217;s</a> talk about the <a href="http://mapkibera.org/">Map Kibera Project</a>.</p>

<p>You can read the Flickr blog post about it <a href="http://blog.flickr.net/en/2010/03/31/map-kibera-project-on-flickr/">here</a>.</p>

<p>You can go see the map on Flickr <a href="http://www.flickr.com/map?&#038;fLat=-1.3085&#038;fLon=36.8205&#038;zl=5">here</a>.</p>

<p>You can find out way more about the Map Kibera project <a href="http://mapkibera.org/">here</a>.</p>

<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/kibera-osm-tiles-on-flickr-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abusing MySQL: The Federated Engine</title>
		<link>http://mihasya.com/blog/abusing-mysql-the-federated-engine/</link>
		<comments>http://mihasya.com/blog/abusing-mysql-the-federated-engine/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 05:34:19 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=326</guid>
		<description><![CDATA[I don&#8217;t have quite the experience that Kellan and Richard do with wrangling databases (yet), but I have seen some relatively unorthodox stuff. I&#8217;ll write a quick note about something quirky we did back when I worked on internal tools at Yahoo! The Problem We had one central database that contained a lot of the [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t have quite the experience that <a href="http://laughingmeme.org/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/comment-page-1/#comment-811664" title="Ticket Servers: Distributed Unique Primary Keys on the Cheap">Kellan</a> and <a href="http://rcrowley.org/articles/opendns-mysql-abuses.html" title="OpenDNS MySQL abuses">Richard</a> do with wrangling databases (yet), but I have seen some relatively unorthodox stuff. I&#8217;ll write a quick note about something quirky we did back when I worked on internal tools at Yahoo!</p>

<h2>The Problem</h2>

<p>We had one central database that contained a lot of the information about the company&#8217;s infrastructure (say, <code>db_central</code>). Among other things, it contained information about users, user groups, and inventory, for some definition of that word.</p>

<p>There were several other tools built around it that had their own databases, but still relied on some of the same data, particularly the user-related tables. We wanted to be able to do joins across the databases, but you can&#8217;t do that easily when the databases are on different physical boxes.</p>

<p>You could set up replication on the box that the auxilary database is on (say, <code>db_app1</code>), but we couldn&#8217;t do that either &#8211; we were doing dual-master replication for HA, and a single MySQL instance can only slave from one host at a time.</p>

<h2>Federated Engine</h2>

<p>One of the advantages of being an internal team is the ability to stay on top of the &#8216;new hotness&#8217;. Since our datasets and userbases were always relatively small, we were able to upgrade frequently; we were on 5.0 and 5.1 fairly soon after they were released.</p>

<p>With 5.0 came the Federated Engine. It allows you to create a sort of shim for a table on a remote machine and access it as if it were a local table; most notably it allows you to join against the remote table.</p>

<p>Obviously, this sounds like a performance nightmare. Though we never tested it in a straight-forward setup (you&#8217;ll see what I mean in a second), and it might have turned out OK for this particular use-case, even at our relatively small size and low traffic, slow joins were a serious problem (at Yahoo!&#8217;s size, even the internal apps had multi-million row tables). Adding network latency to that was not something we were interested in.</p>

<h2>The Prestige</h2>

<p>This is where one of the (other) crazy Russian guys on the team thought of something awesome (can&#8217;t remember if it was Andrey or Alex.. neither has a blog, unfortunately).</p>

<p>We would set up an additional instance of MySQL on another port on each of the <code>db_app1</code> masters (call them <code>db_app1_plus</code>). This instance would be a slave for <code>db_central</code>. Then, on the <code>db_app1</code> instance, we would set up a Federated Engine table (aha!) that would point to the <code>db_central</code> replica on the <code>db_app1_plus</code> port over <code>localhost</code>. Though we never scientifically benchmarked this setup, in our limited testing it worked like a charm and performed beautifully.</p>

<p>Of course, as I said before, this would not work for a high-traffic production setup. However, it did allow us to simplify the code in our internal apps (and you always want that code to be simple and readable) and did not cause any noticeable performance degradation or additional operational headaches. As far as I know, that setup is still in place.</p>

<p>I&#8217;ve recently come back to this idea for some uses at Flickr (mainly background data-mining jobs) and keep forgetting to talk to Kellan about it. Let&#8217;s see what he says <img src='http://mihasya.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/abusing-mysql-the-federated-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2010: One More Than 2009</title>
		<link>http://mihasya.com/blog/2010-one-more-than-2009/</link>
		<comments>http://mihasya.com/blog/2010-one-more-than-2009/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 08:53:54 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=323</guid>
		<description><![CDATA[This seems like a good time to reflect and take stock. One year ago, I was building internal tools at Yahoo! and starting to toy around with Django on the side. I was working on Yourmuni, which was later presented at the January 2009 Django SF Meetup. I was about to start working on a [...]]]></description>
			<content:encoded><![CDATA[<p>This seems like a good time to reflect and take stock.</p>

<p>One year ago, I was building internal tools at Yahoo! and starting to toy around with Django on the side. I was working on Yourmuni, which was later presented at the January 2009 Django SF Meetup. I was about to start working on a sizable side project (having met the founder at said meetup).</p>

<p>Today, I&#8217;m working at Flickr, inching ever so close to a launch of the aforementioned side project, working on an iPhone app, and toying around with all sorts of exciting stuff. Things feel very different. This is the first time that I actually CAN believe that a year had passed, because a lot of things have happened. I changed jobs, learning a ton and growing a whole lot as an engineer in the process; I took down Flickr, all by my self; I finally visited France after having been the only French major in my class not to have done so; we moved &#8211; it was the first time I painted a place; I got my US citizenship; my brother got married; I met a whole ton of awesome people, though I feel like I&#8217;ve fallen out of touch with more; I got my first real DSLR camera (thanks, Alexa!) I submitted minor patches to a couple open-source projects, gave some small presentations, and submitted my first proposal for a talk at a conference &#8211; fingers crossed!</p>

<p>I feel good about 2010, and hope that it will be even more eventful and crazy.</p>

<p>Happy new year, everyone!</p>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/2010-one-more-than-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Awesome quotation from the MySQL Performance Blog</title>
		<link>http://mihasya.com/blog/awesome-quotation-from-the-mysql-performance-blog/</link>
		<comments>http://mihasya.com/blog/awesome-quotation-from-the-mysql-performance-blog/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 17:40:04 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[funny]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=318</guid>
		<description><![CDATA[&#8220;No matter how much you want it to fit, some things may not work (like the Godfather 3).&#8221; http://www.mysqlperformanceblog.com/2009/10/15/mysql-memcached-or-nosql-tokyo-tyrant-part-1/]]></description>
			<content:encoded><![CDATA[<blockquote>&#8220;No matter how much you want it to fit,  some things may not work (like the Godfather 3).&#8221;</blockquote>

<p><a title="MySQL Performance Blog Tokyo Tyrant Writeup Part 1" href="http://www.mysqlperformanceblog.com/2009/10/15/mysql-memcached-or-nosql-tokyo-tyrant-part-1/">http://www.mysqlperformanceblog.com/2009/10/15/mysql-memcached-or-nosql-tokyo-tyrant-part-1/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/awesome-quotation-from-the-mysql-performance-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cluelessness, expressed in under 140 characters</title>
		<link>http://mihasya.com/blog/cluelessness-expressed-in-under-140-characters/</link>
		<comments>http://mihasya.com/blog/cluelessness-expressed-in-under-140-characters/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 04:56:23 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=315</guid>
		<description><![CDATA[In other news, this is post #100 on this blog.]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;">
<img src="http://mihasya.com/blog/wp-content/uploads/2009/10/idiot.jpg" alt="ORLY?!" title="ORLY?!" width="578" height="175" class="alignnone size-full wp-image-316" />
</p>

<p>In other news, this is post #100 on this blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/cluelessness-expressed-in-under-140-characters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Watch out for your CRON jobs&#8221; @ MySQL Performance Blog</title>
		<link>http://mihasya.com/blog/watch-out-for-your-cron-jobs-mysql-performance-blog/</link>
		<comments>http://mihasya.com/blog/watch-out-for-your-cron-jobs-mysql-performance-blog/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 05:40:54 +0000</pubDate>
		<dc:creator>mihasya</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[ops]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[opsdev]]></category>

		<guid isPermaLink="false">http://mihasya.com/blog/?p=312</guid>
		<description><![CDATA[I had a post brewing in my head for a couple of weeks that was going to be titled &#8220;Keeping tabs on your crontabs,&#8221; inspired by some recent margins-of-the-day stuff I&#8217;d been doing. However, Peter Z at the MySQL Performance Blog has beaten me to it. I still maintain my title idea was better Check [...]]]></description>
			<content:encoded><![CDATA[<p>I had a post brewing in my head for a couple of weeks that was going to be titled &#8220;Keeping tabs on your crontabs,&#8221; inspired by some recent margins-of-the-day stuff I&#8217;d been doing. However, Peter Z at the MySQL Performance Blog has beaten me to it. I still maintain my title idea was better <img src='http://mihasya.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Check it out, it has some nice, easy-to-implement tips for making sure your crons don&#8217;t do stupid things and making your ops team happy (and we&#8217;re all about that at Flickr).</p>

<p><a href="http://www.mysqlperformanceblog.com/2009/10/14/watch-out-for-your-cron-jobs/">Watch out for your CRON jobs</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mihasya.com/blog/watch-out-for-your-cron-jobs-mysql-performance-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
