<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>The professional blog of Jonathan Simms.</description><title>until(true)</title><generator>Tumblr (3.0; @slyphon)</generator><link>http://blog.slyphon.com/</link><item><title>Cute. :)</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lpbvonzeAk1qhb7l5o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Cute. :)&lt;/p&gt;</description><link>http://blog.slyphon.com/post/17325410660</link><guid>http://blog.slyphon.com/post/17325410660</guid><pubDate>Thu, 09 Feb 2012 13:23:04 -0500</pubDate></item><item><title>Interesting demonstration of moiré effect</title><description>&lt;p&gt;So, I&amp;#8217;m not a photographer, but image processing and such has always interested me. My buddy &lt;a href="http://torvakian.tumblr.com/"&gt;@sigwinch&lt;/a&gt; has an &lt;a href="http://torvakian.tumblr.com/post/15613562377/fujifilm-xtrans-moire-simulation"&gt;interesting post&lt;/a&gt; up about a technique that Fuji is doing in their new camera. The main takeaway is that in current cameras, most manufacturers use what&amp;#8217;s known as a &lt;a href="http://en.wikipedia.org/wiki/Bayer_filter"&gt;Bayer filter&lt;/a&gt; to create an RGB color sensor, and Fuji has done something new.&lt;/p&gt;

&lt;p&gt;Both the Fuji filter and the standard Bayer filter cause a chromatic effect when shooting a monochrome target (the moiré pattern), but the Fuji one is dramatically less, which means that they don&amp;#8217;t need to do as much post-processing.&lt;/p&gt;

&lt;p&gt;He &lt;a href="http://torvakian.tumblr.com/post/15613562377/fujifilm-xtrans-moire-simulation"&gt;explains it&lt;/a&gt; better than I can :)&lt;/p&gt;</description><link>http://blog.slyphon.com/post/15638042670</link><guid>http://blog.slyphon.com/post/15638042670</guid><pubDate>Tue, 10 Jan 2012 17:48:24 -0500</pubDate><category>filters</category><category>image</category><category>photo</category><category>processing</category><category>technology</category><category>Fuji</category></item><item><title>The Avenger Controller mob</title><description>&lt;p&gt;I just wanted to take a moment to point out this story. Normally, one does not come across douchebaggery of this magnitude, especially when dealing with PR or customer service people. Someone had pre-ordered an &lt;a href="http://avengercontroller.com/"&gt;avenger controller&lt;/a&gt; which (as far as I can tell) is an expensive toy. In trying to find out if his toy was going to be available for christmas, he had quite possibly the worst customer service email exchange I&amp;#8217;ve ever seen. Subsequently, he &lt;a href="http://penny-arcade.com/resources/just-wow1.html"&gt;decided to share it&lt;/a&gt; with the guy that does Penny Arcade. It is truly amazing, containing the gems:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Send that over to Engadget you look like a complete moron swearing and sending your customer service complaints to a magazine as if they will post it or even pay attention do you think you’re the first or the last what are they going to do demand us to tell you were your shipment is or ask for a refund on your behalf … Really &amp;#8230; Welcome to the Internet&amp;#160;? Son Im 38 I wwebsite as on the internet when you were a sperm in your daddys balls and before it was the internet, thanks for the welcome to message wurd up.  Grow up you look like a complete child bro. I Don’t have my controller so im gonna cry to the world … Really&amp;#160;?? Hey take that free time and do something more productive.&lt;/p&gt;
  
  &lt;p&gt;You just got told bitch … welcome to the real internet&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;truly amazing stuff.&lt;/p&gt;

&lt;p&gt;So here&amp;#8217;s the thing, which I think the penny arcade guy &lt;a href="http://penny-arcade.com/resources/an-update1.html"&gt;summarizes beautifully&lt;/a&gt; in the last paragraph.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I have a real problem with bullies. I spent my childhood moving from school to school and I got made fun of everyplace I landed. I feel like Paul is a bully and maybe that’s why I have no sympathy here. Someday every bully meets and even bigger bully and maybe that’s me in this case.  It’s the same thing that happened with Jack Thompson. It might not always make the most business sense and it is a policy that has caused us some legal problems, but I really don’t give a shit about that. When these assholes threaten me or Penny Arcade I just laugh. I will personally burn everything I’ve made to the fucking ground if I think I can catch them in the flames.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As my friend Greg put it, &amp;#8220;many of the &amp;#8216;geeks&amp;#8217; online have been bullied all their lives, and now you&amp;#8217;ve stumbled into their house and kicked their dog.&amp;#8221; When the internet senses something like that, it &lt;a href="http://www.examiner.com/video-game-industry-in-national/ocean-marketing-gaming-pr-rep-to-avoid-at-all-cost"&gt;&lt;em&gt;will punish you&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Personally, I&amp;#8217;m torn. I think the mob can go way too far. I mean, you shouldn&amp;#8217;t erase this idiot from the face of the earth. He already lost the account, his credibility, probably his career. Ok, enough.&lt;/p&gt;

&lt;p&gt;It is hard however, while being &amp;#8220;mature about it,&amp;#8221; not to crack a bit of a smile.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: This is interesting, apparently the aforementioned asshole has done something really interesting, he&amp;#8217;s taken to reddit &lt;a href="http://www.reddit.com/r/IAmA/comments/nxpqo/i_am_paul_christoforo_ama/"&gt;to make amends&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.slyphon.com/post/14939569061</link><guid>http://blog.slyphon.com/post/14939569061</guid><pubDate>Wed, 28 Dec 2011 17:51:00 -0500</pubDate></item><item><title>Go Cry on Somebody Else's Shoulder: MongoDB is fine</title><description>&lt;p&gt;I&amp;#8217;m getting kind of sick of all of &lt;a href="http://pastebin.com/raw.php?i=FD3xe6Jt"&gt;these postings&lt;/a&gt; where people slag on MongoDB because they happened to have a bad experience in their environment. Moreover, I&amp;#8217;m tired of people who can&amp;#8217;t make a decent argument about a piece of technology.&lt;/p&gt;

&lt;h3&gt;My personal experience w/ MongoDB&lt;/h3&gt;

&lt;p&gt;A little bit about who I am. I worked at a now-defunct video startup named Motionbox. We had a system in place that offloaded (from our rails app) the generation of a manifest for our player (describing where to get videos, multiple videos in playlists, etc). The first iteration of this system was to write these &amp;#8220;JSON blobs&amp;#8221; to an NFS filesystem, which had all the scalability problems you can imagine. The second was CouchDB, and it was a total disaster (I know many people like CouchDB and can use it effectively, but for us, it didn&amp;#8217;t work). The last solution was based on MongoDB, and it had a name that made our CTO recoil with horror: &lt;a href="http://en.wikipedia.org/wiki/Cornhole"&gt;Cornhole&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We hosted the infamous &lt;a href="http://gizmodo.com/5520164/this-is-apples-next-iphone"&gt;iphone4 video&lt;/a&gt; that Gawker got in all that trouble for. That day was not fun, our load balancers were totally overwhelmed by the amount of traffic, and were falling over because of TCP TIME_WAIT issues. The one thing that didn&amp;#8217;t flinch was MongoDB.&lt;/p&gt;

&lt;p&gt;We had MongoDB deployed on two Sun x4440 servers, nothing special in terms of the filesystem (it was lzjb-compressed ZFS in a RAID-10 configuration), and we probably gave mongo 40GB of ram. This was in the days before replica sets and we were using simple master/slave replication. It served over 400 hits/sec, and aside from our load balancer issues, came through with flying colors.&lt;/p&gt;

&lt;h3&gt;Know what tradeoffs you&amp;#8217;re making&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;**1. MongoDB issues writes in unsafe ways *by default* in order to
win benchmarks**

If you don't issue getLastError(), MongoDB doesn't wait for any
confirmation from the database that the command was processed.
* In a concurrent environment (connection pools, etc), you may
  have a subsequent read fail after a write has "finished";
  there is no barrier condition to know at what point the
  database will recognize a write commitment
* Any unknown number of save operations can be dropped on the floor
  due to queueing in various places, things outstanding in the TCP
  buffer, etc, when your connection drops of the db were to be KILL'd or
  segfault, hardware crash, you name it
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;First of all, with &lt;em&gt;any&lt;/em&gt; piece of technology, you should, y&amp;#8217;know, &lt;em&gt;&lt;a href="http://www.mongodb.org/display/DOCS/getLastError+Command"&gt;RTFM&lt;/a&gt;&lt;/em&gt;. EVERY company out there selling software solutions is going to exaggerate how awesome it is. Before you deploy something into production, you should make sure you understand the implications of the decisions you&amp;#8217;re making. All technology is a tradeoff. MySQL uses MyISAM as its default table type. You know, the one that&amp;#8217;s designed for high performance and isn&amp;#8217;t all that awesome about data integrity.&lt;/p&gt;

&lt;p&gt;Any communication between two processes is subject to conditions where data may be lost. Traditional RDBMS&amp;#8217;s make certain promises about the steps they take to mitigate those situations, however those trade off performance for data integrity. When businesses choose to run Oracle for their eCommerce backend, that choice wasn&amp;#8217;t arrived at because some developer in designer eyeglasses decided that Oracle was &lt;em&gt;sexytime&lt;/em&gt;. They made that decision because if they credited someone&amp;#8217;s account, they needed to be absolutely 100% certain that the transaction either happened or didn&amp;#8217;t, and that nobody gets charged/credited twice.&lt;/p&gt;

&lt;p&gt;What MongoDB and NoSQL in general are saying is that (in the words of my &lt;a href="http://blog.toppingdesign.com"&gt;co-worker&lt;/a&gt;) &amp;#8220;Sometimes &lt;em&gt;it doesn&amp;#8217;t matter&lt;/em&gt;&amp;#8221;. If you&amp;#8217;re collecting lots of statistics on a distributed process, and you miss one because a process dies, do you really care? Maybe? The point is that you should have the option to trade data integrity for speed &lt;em&gt;in the cases where you need to&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;Have a backup&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;**2. MongoDB can lose data in many startling ways**

Here is a list of ways we personally experienced records go missing:

 1. They just disappeared sometimes.  Cause unknown.
 2. Recovery on corrupt database was not successful,
    pre transaction log.
 3. Replication between master and slave had *gaps* in the oplogs,
    causing slaves to be missing records the master had.  Yes,
    there is no checksum, and yes, the replication status had the
    slaves current
 4. Replication just stops sometimes, without error.  Monitor
    your replication status!
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Every database can have the same sorts of errors. I can&amp;#8217;t speak to #1, but #2 and #4 we definately experienced with MySQL at Motionbox. I hate to break it to the poster (and I &lt;em&gt;would&lt;/em&gt; if they hadn&amp;#8217;t chickened out and actually &lt;em&gt;put their name on their post&lt;/em&gt;) but &lt;strong&gt;software has bugs&lt;/strong&gt;. We went to great lengths to try and ensure against data loss. As a cardinal rule, &lt;em&gt;you should have three copies of anything you don&amp;#8217;t want to lose&lt;/em&gt;. In addition, you should have multiple backups in case your data gets corrupted.&lt;/p&gt;

&lt;h3&gt;Learning experiences suck&lt;/h3&gt;

&lt;p&gt;All in all, reading the original post, it seems like someone just learned that &lt;em&gt;all software sucks&lt;/em&gt;. This is not unique to MongoDB. Even with the potential drawbacks, we&amp;#8217;ve chosen MongoDB again to be our backend for an encoding system, because it works for us, it&amp;#8217;s fast, and for our workload, it&amp;#8217;s a good fit.&lt;/p&gt;

&lt;p&gt;I look forward to hearing about their awesome adventures trying to get PostgreSQL to scale in terms of write load and learning about log-shipping replication.&lt;/p&gt;</description><link>http://blog.slyphon.com/post/12435929063</link><guid>http://blog.slyphon.com/post/12435929063</guid><pubDate>Sun, 06 Nov 2011 16:21:00 -0500</pubDate><category>MongoDB</category><category>ycombinator</category><category>NoSQL</category><category>CouchDB</category><category>rants</category></item></channel></rss>

