<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Friends of tswicegood</title><link>http://disqus.com/by/tswicegood/</link><description></description><atom:link href="http://disqus.com/tswicegood/friends.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Tue, 22 Feb 2011 14:25:06 -0000</lastBuildDate><item><title>Re: Configs for nginx and Apache with mod_wsgi | Brett Hoerner's blog</title><link>(u'http://bretthoerner.com/2008/10/9/configs-for-nginx-and-apache-mod-wsgi/',%202980287L)#comment-2980287</link><description>&lt;p&gt;nginx does blocking I/O, so the only way to mitigate that is to use more worker processes (I happen to run on a Dual CPU Dual Core, so I just use 4).&lt;/p&gt;&lt;p&gt;I don't totally understand how nginx works, though.  The idea that it uses blocking I/O and yet each worker can be serving X many requests is confusing as hell to me.  That's the extent of the English docs, though.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Fri, 10 Oct 2008 11:08:22 -0000</pubDate></item><item><title>Re: Setting up a baseline Django environment on Ubuntu | Brett Hoerner's blog</title><link>(u'http://bretthoerner.com/2008/10/8/settings-up-a-baseline-django-environment-on-ubuntu',%207312510L)#comment-7312510</link><description>&lt;p&gt;Ah, I only did those that way because I'm running 8.04 LTS.  I recently did an 8.10 install and agree that much of this is available in apt.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Wed, 18 Mar 2009 08:15:04 -0000</pubDate></item><item><title>Re: Setting up a baseline Django environment on Ubuntu | Brett Hoerner's blog</title><link>(u'http://bretthoerner.com/2008/10/8/settings-up-a-baseline-django-environment-on-ubuntu',%208228987L)#comment-8228987</link><description>&lt;p&gt;Was it actually my feed, or a feed of Google persistent search results?   I've had the same issue with a persistent search lately.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Wed, 15 Apr 2009 11:37:52 -0000</pubDate></item><item><title>Re: Disqus Forks Into Two Products, Launches Revamped Real-Time Comment System</title><link>(u'http://www.techcrunch.com/2009/08/25/disqus-forks-into-two-products-launches-revamped-real-time-comment-system/',%2015369129L)#comment-15369129</link><description>&lt;p&gt;No really, it's fixed.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Tue, 25 Aug 2009 14:42:22 -0000</pubDate></item><item><title>Re: Disqus Forks Into Two Products, Launches Revamped Real-Time Comment System</title><link>(u'http://www.techcrunch.com/2009/08/25/disqus-forks-into-two-products-launches-revamped-real-time-comment-system/',%2015370066L)#comment-15370066</link><description>&lt;p&gt;You can use it just about anywhere you want.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Tue, 25 Aug 2009 15:01:51 -0000</pubDate></item><item><title>Re: Disqus version 3: Introducing Disqus Comments and Disqus Profile</title><link>(u'http://blog.disqus.net/2009/08/25/disqus-v3/',%2015388484L)#comment-15388484</link><description>&lt;p&gt;Nope, just go into the control panel and change your theme to "Narcissus" to use all of the new features.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Tue, 25 Aug 2009 20:39:23 -0000</pubDate></item><item><title>Re: Disqus version 3: Introducing Disqus Comments and Disqus Profile</title><link>(u'http://blog.disqus.net/2009/08/25/disqus-v3/',%2015450666L)#comment-15450666</link><description>&lt;p&gt;This is for moderators only (people who run their sites): &lt;a href="http://disqus.com/comments/" rel="nofollow noopener" target="_blank" title="http://disqus.com/comments/"&gt;http://disqus.com/comments/&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Wed, 26 Aug 2009 22:44:41 -0000</pubDate></item><item><title>Re: Trust Agents</title><link>(u'http://mattdeboard.net/post/315828995',%2028001813L)#comment-28001813</link><description>&lt;p&gt;This post lacks Amazon affiliate links.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Mon, 04 Jan 2010 12:25:00 -0000</pubDate></item><item><title>Re: /2010/jan/11/hot-django-wsgi-action-announcing-django-wsgi/</title><link>(u'http://alexgaynor.net/2010/jan/11/hot-django-wsgi-action-announcing-django-wsgi/',%2029439352L)#comment-29439352</link><description>&lt;p&gt;I think you mean django_view(my_wsgi_app) at the end there. :)&lt;/p&gt;&lt;p&gt;I think I'll be using this real soon, thanks.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Mon, 11 Jan 2010 19:05:04 -0000</pubDate></item><item><title>Re: Wired&amp;#039;s Hide and Seek</title><link>(u'http://self.kovalyov.net/post/376961927',%2032969518L)#comment-32969518</link><description>&lt;p&gt;To think I opened Python to solve your puzzle and that's all it said. :(&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Sun, 07 Feb 2010 19:35:08 -0000</pubDate></item><item><title>Re: When you comment on a comment</title><link>(u'http://wordaligned.org/articles/comments-on-comments',%2033487846L)#comment-33487846</link><description>&lt;p&gt;I know of at least a couple DISQUS developers that follow your blog, so the feeling is mutual.  :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Wed, 10 Feb 2010 17:48:21 -0000</pubDate></item><item><title>Re: HTC Incredible | Brett Hoerner's blog</title><link>(u'http://bretthoerner.com/2010/5/12/htc-incredible/',%2049908617L)#comment-49908617</link><description>&lt;p&gt;I've had one over-the-air OS update already.  It just notified me that one was downloaded and ready to be applied.  I assume larger updates might tell you one is online and wait for Wi-Fi, I'm not sure yet.  About them actually being released for each phone, sadly that's in the hand of the manufacturer.  HTC is building a pretty good reputation, I hope they know this is important.&lt;/p&gt;&lt;p&gt;There isn't *any* software included out of the box.  You don't even plugin to setup all your accounts and stuff.  I think that's kind of nice, but agree that there's room for a really awesome non-closed iTunes-a-like syncing station.  I've always been a manual music manager, but man, having your desktop and phone know where you last left off in that 2 hour podcast is just so nice, I miss it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Wed, 12 May 2010 11:47:19 -0000</pubDate></item><item><title>Re: HTC Incredible | Brett Hoerner's blog</title><link>(u'http://bretthoerner.com/2010/5/12/htc-incredible/',%2049925834L)#comment-49925834</link><description>&lt;p&gt;Yeah, it's $80ish for the lowest minutes and all that jazz.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Wed, 12 May 2010 13:30:51 -0000</pubDate></item><item><title>Re: The many faces of Ninja Turtles</title><link>(u'http://blog.nodnod.net/post/681858916/the-many-faces-of-ninja-turtles',%2055604299L)#comment-55604299</link><description>&lt;p&gt;Phew, I was starting to worry about what they're teaching kids in America's Hat.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Wed, 09 Jun 2010 21:06:02 -0000</pubDate></item><item><title>Re: Disqus: The Official Blog</title><link>(u'http://blog.disqus.com/post/894669028',%2065764763L)#comment-65764763</link><description>&lt;p&gt;If you ask me, it sounds like you guys hire too many people named David.&lt;/p&gt;&lt;p&gt;PERL4LYFE.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Mon, 02 Aug 2010 17:04:37 -0000</pubDate></item><item><title>Re: Why I love Disqus</title><link>(u'http://https://thepcspy.com/read/why-i-love-disqus/',%2079810697L)#comment-79810697</link><description>&lt;p&gt;And we use Django, too. :)&lt;/p&gt;&lt;p&gt;&lt;a href="http://djangocon.blip.tv/file/4135225/" rel="nofollow noopener" target="_blank" title="http://djangocon.blip.tv/file/4135225/"&gt;http://djangocon.blip.tv/fi...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Tue, 21 Sep 2010 16:59:31 -0000</pubDate></item><item><title>Re: Microsoft &amp;amp; &amp;#8230;?</title><link>(u'http://mattdeboard.net/post/1210600113',%2082014583L)#comment-82014583</link><description>&lt;p&gt;Would this mean they'd have to tell the honest truth?  It's a hard pill to swallow.&lt;/p&gt;&lt;p&gt;Or would they just use the engineers to write bullshit posts that would hopefully bypass the tech-nerd filters?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Wed, 29 Sep 2010 11:34:18 -0000</pubDate></item><item><title>Re: http://joshbohde.com/blog/async-workers-in-django-with-celery</title><link>(u'http://joshbohde.com/blog/async-workers-in-django-with-celery',%20144825574L)#comment-144825574</link><description>&lt;p&gt;Did you verify that your DB calls are async?  If so, how?&lt;/p&gt;&lt;p&gt;psycopg2, being a C extension, is not patched by eventlet.monkey_patch(), unless I'm missing something.  We're using true async psycopg2 a little at Disqus, but it requires a lot more work and we don't use the Django ORM.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Fri, 11 Feb 2011 13:18:41 -0000</pubDate></item><item><title>Re: http://joshbohde.com/blog/async-workers-in-django-with-celery</title><link>(u'http://joshbohde.com/blog/async-workers-in-django-with-celery',%20144832588L)#comment-144832588</link><description>&lt;p&gt;Hmm, have you used this under load?  I read the psycopg2 documentation when I was working on this, and it states: "Psycopg connections are not green thread safe and can’t be used concurrently by different green threads."&lt;/p&gt;&lt;p&gt;So isn't django.db.connections['default'] (etc) a single DB connection? GreenThread #1 starts a query, then yields control.  GreenThread #2 gets control, and starts a query with the same connection, problems ensue? Am I missing something?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Fri, 11 Feb 2011 13:35:07 -0000</pubDate></item><item><title>Re: http://joshbohde.com/blog/async-workers-in-django-with-celery</title><link>(u'http://joshbohde.com/blog/async-workers-in-django-with-celery',%20144861753L)#comment-144861753</link><description>&lt;p&gt;Ah, I see.&lt;/p&gt;&lt;p&gt;I'm using eventlet.db_pool with an unpatched psycopg2.  That gives me a pool of connections are re-used (and thus capped, lower than the number of GreenThreads).  For example, I might have 1000 GreenThreads but only 4 DB connections they take turns using, because the real block is some HTTP APIs we hit, and not our DB (nor would we want 1000 workers hammering the DB at once).&lt;/p&gt;&lt;p&gt;My thought for the ORM was that I could monkey patch django.db.connections to fetch from this pool.  For now I just use async with raw queries, and workers that use the ORM still use normal single threaded forked processes.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Fri, 11 Feb 2011 14:44:54 -0000</pubDate></item><item><title>Re: Yeehaw!</title><link>(u'http://www.nuketexas.com/',%20149107388L)#comment-149107388</link><description>&lt;p&gt;New homepage.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Wed, 16 Feb 2011 16:26:00 -0000</pubDate></item><item><title>Re: Redis at Disqus | Brett Hoerner's blog</title><link>(u'http://bretthoerner.com/2011/2/21/redis-at-disqus/',%20153603719L)#comment-153603719</link><description>&lt;p&gt;It's not easy, actually. The short answer is that we don't add capacity (because we've only needed to once, and we have tons of room to grow now). The long answer is that I have a switch I can flip that starts incrementing/adding data to a whole new cluster of Redis nodes while it still updates the old ones. We can then backfill all data to the new nodes and when they're setup, flip a switch to read/write only from/to the new nodes. It may sound a bit weird, mostly because it is. Moving sets of random keys from one node to the other while you're expecting live reads/writes is a huge pain, so I just punted on the problem.&lt;/p&gt;&lt;p&gt;It really helps to plan ahead here. What's nice about Redis is that each running (software) server is very, very cheap. When we had to expand the first time, we just put up way more nodes per server than we expected to need. Say you have 5 servers and put 8 nodes on each. They're all splitting the server's resources by 1/8 (effectively), but your code can logically treat them like 40 servers. Now as they grow you can just move those existing (logical, software) servers to their own hardware without changing your hashing at all. In other words, you'd have to fill 40 physical servers worth of RAM until you really feel more pain about having to add new nodes.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Mon, 21 Feb 2011 18:25:50 -0000</pubDate></item><item><title>Re: Redis at Disqus | Brett Hoerner's blog</title><link>(u'http://bretthoerner.com/2011/2/21/redis-at-disqus/',%20153634475L)#comment-153634475</link><description>&lt;p&gt;There's a lot more discussion on Hacker News: &lt;a href="http://news.ycombinator.com/item?id=2247132" rel="nofollow noopener" target="_blank" title="http://news.ycombinator.com/item?id=2247132"&gt;http://news.ycombinator.com...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Mon, 21 Feb 2011 19:05:23 -0000</pubDate></item><item><title>Re: Redis at Disqus | Brett Hoerner's blog</title><link>(u'http://bretthoerner.com/2011/2/21/redis-at-disqus/',%20154153128L)#comment-154153128</link><description>&lt;p&gt;We use Flot and some other tools. My coworker DZ replied in more detail here: &lt;a href="http://news.ycombinator.com/item?id=2247810" rel="nofollow noopener" target="_blank" title="http://news.ycombinator.com/item?id=2247810"&gt;http://news.ycombinator.com...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Tue, 22 Feb 2011 14:20:12 -0000</pubDate></item><item><title>Re: Redis at Disqus | Brett Hoerner's blog</title><link>(u'http://bretthoerner.com/2011/2/21/redis-at-disqus/',%20154156135L)#comment-154156135</link><description>&lt;p&gt;Sure, but we actually haven't had to tune much of anything. This is random conf from one of our shards, apologies for random order, I just grepped out the default comments and sorted/uniq'd it: &lt;a href="https://gist.github.com/839193" rel="nofollow noopener" target="_blank" title="https://gist.github.com/839193"&gt;https://gist.github.com/839193&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Brett Hoerner</dc:creator><pubDate>Tue, 22 Feb 2011 14:25:06 -0000</pubDate></item></channel></rss>