<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Inkzee</title>
	
	<link>http://blog.inkzee.com</link>
	<description>How to read more in less time</description>
	<pubDate>Sun, 28 Jun 2009 17:13:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Inkzee" type="application/rss+xml" /><item>
		<title>Tokyo Tyrant and some numbers</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/aJw6kJN5pZU/</link>
		<comments>http://blog.inkzee.com/index.php/2009/06/28/tokyo-tyrant-and-some-numbers/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 17:13:26 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[benchmark]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[schema-less]]></category>

		<category><![CDATA[schemaless]]></category>

		<category><![CDATA[tokyo cabinet]]></category>

		<category><![CDATA[tokyo tyrant]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=66</guid>
		<description><![CDATA[Tokyo Tyrant is the database server that uses Tokyo Cabinet as backend. It allows you to access the database remotely. It supports 3 protocols, binary, memcache and http. This is great if you have already existing infrastructure.
We needed a php class that implemented the protocol so we took a look at two of them,  [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Tokyo Tyrant</strong> is the database server that uses Tokyo Cabinet as backend. It allows you to access the database remotely. It<strong> supports 3 protocols</strong>, binary, memcache and http. This is great if you have already existing infrastructure.</p>
<p>We needed a php class that implemented the protocol so we took a look at two of them,  <a href="http://openpear.org/repository/Net_TokyoTyrant/">Net_TokyoTyrant</a> with Pete Warden&#8217;s patch and Tyrant by <a class="username" href="http://mamasam.indefero.net/u/golgote/">Bertrand Mansion</a>. The first one supports http and binary protocols, while Tyrant only supports the raw binary protocol.</p>
<p>During the first tests, Net_TokyoTyrant went crazy when inserting over 28000 records over http, so I guess there&#8217;s something wrong with that. When we switched to the binary protocol it worked as expected.</p>
<p>Here are some quick numbers:</p>
<p><strong>Net_TokyoTyrant (100000 keys)</strong></p>
<p>Time inserted: 50.3662779331 secs<br />
Time retrieved: 57.7555668354 secs<br />
Time deleted: 34.1996 secs</p>
<p><strong>Tyrant (100000 keys)</strong></p>
<p>Time inserted: 39.330272913 secs<br />
Time retrieved: 44.3433589935 secs<br />
Time deleted: 26.9360201359 secs</p>
<p><strong>The former is slightly faster</strong> so I guess we&#8217;ll go for it. Specially important is that the <strong>author keeps it up to date</strong>, which is also a plus!</p>
<p><strong>The Inkzee Team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/aJw6kJN5pZU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/06/28/tokyo-tyrant-and-some-numbers/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/06/28/tokyo-tyrant-and-some-numbers/</feedburner:origLink></item>
		<item>
		<title>First stats with Tokyo Cabinet</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/6HmPWGZbNsc/</link>
		<comments>http://blog.inkzee.com/index.php/2009/06/25/first-stats-with-tokyo-cabinet/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 02:15:33 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[benchmarks]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[pytc]]></category>

		<category><![CDATA[pyTyrant]]></category>

		<category><![CDATA[schemaless]]></category>

		<category><![CDATA[tokyo cabinet]]></category>

		<category><![CDATA[tokyo tyrant]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=62</guid>
		<description><![CDATA[Today we started testing Tokyo Cabinet as our DBM for the new design. We had some very good references about it, so we thought we should give it a try.
After setting up Tokyo Cabinet, it&#8217;s python binding and Tokyo Tyrant (db server) with it&#8217;s python bindings too we did some fast tests. We drafted a [...]]]></description>
			<content:encoded><![CDATA[<p>Today we<strong> started testing <a href="http://tokyocabinet.sourceforge.net/">Tokyo Cabinet</a></strong> as our DBM for the new design. We had some very good references about it, so we thought we should give it a try.</p>
<p>After setting up Tokyo Cabinet, it&#8217;s python binding and <strong><a href="http://tokyocabinet.sourceforge.net/tyrantdoc/">Tokyo Tyrant</a> (db server)</strong> with it&#8217;s python bindings too we did some fast tests. We drafted a new schema-less design for the new database and<strong> dumped part of some old data</strong> to Tokyo Cabinet.</p>
<p>For those not familiar with the term <strong>schema-less</strong>, it&#8217;s basically a database that has no table structure, that is, everything is stored as a tuple of (key, value). On one side, a key-value database is much faster to read/write but it&#8217;s much harder to maintain and keep in sync.</p>
<p>So, we did some queries (<strong>read only operations</strong>) in both databases an this is what we saw:</p>
<p><strong>Test 1:</strong></p>
<ul>
<li>All data from a feed (MySQL):  0.01699 s</li>
<li>Partial data from a feed (TC): 0.00174 s</li>
</ul>
<p>This first test wasn&#8217;t really fair, as MySQL had to retrieve all fields per record, while TC just had to access a bunch of buckets with fewer fields. We did this first test as it&#8217;s going to be the real scenario, currently we retrieve many more fields from a Feed than we should and so, the new query under TC is, not only faster because of the database, but because it&#8217;s much more lightweighted.</p>
<p>Anyway, we modified the test so that <strong>both queries retrieved both fields per row</strong>:</p>
<p><strong>Test 2:</strong></p>
<ul>
<li>Partial data from a feed (MySQL): 0.00346 s</li>
<li>Partial data from a feed (TC): 0.00151 s</li>
</ul>
<p>Here we can see that both are slightly similar. Again, this isn&#8217;t really fair, as MySQL is executing just one query against several that we do with TC. So, we changed the TC query into a <strong>multiget request</strong> (request several keys at the same time):</p>
<p><strong>Test 3:</strong></p>
<ul>
<li>Partial data from a feed (MySQL): 0.003533 s</li>
<li>Partial data from a feed (TC with Multiget): 0.000845 s</li>
</ul>
<p>Under exact circunstances it&#8217;s clear which one is faster. So, I think we&#8217;ll continue experimenting with Tokyo Cabinet and some more real data and see how it performs.</p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/6HmPWGZbNsc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/06/25/first-stats-with-tokyo-cabinet/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/06/25/first-stats-with-tokyo-cabinet/</feedburner:origLink></item>
		<item>
		<title>When partitioning isn’t enough</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/4IFl9Gfbj_Q/</link>
		<comments>http://blog.inkzee.com/index.php/2009/06/24/when-partitioning-isnt-enough/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 16:51:10 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[partition]]></category>

		<category><![CDATA[scalability]]></category>

		<category><![CDATA[schema]]></category>

		<category><![CDATA[schemaless]]></category>

		<category><![CDATA[sharding]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=59</guid>
		<description><![CDATA[These past weeks we&#8217;ve been partitioning our database design. The goal was to achieve better scalability. Because Inkzee grows with the number of feeds it holds, not the users, we needed to partitioned the data tables so that we could process feed posts faster.
After altering a lot of our current code so that it worked [...]]]></description>
			<content:encoded><![CDATA[<p>These past weeks we&#8217;ve been partitioning our database design. The goal was to <strong>achieve better scalability</strong>. Because Inkzee grows with the number of feeds it holds, not the users, we needed to partitioned the data tables so that we could process feed posts faster.</p>
<p>After altering a lot of our current code so that it worked with the new database design we&#8217;ve been experiencing problems with MySQL. It seems that, even though the solution makes the overall system much faster (like 3 to 4 times faster), <strong>some operations don&#8217;t play too well</strong> with MySQL and add an unaccepted latency to the system.</p>
<p>We&#8217;ve been resisting the urge to<strong> migrate to a schema-less database</strong> but it seems we have no other option but to transition to it. So, even though we thought we could have the new design working by the end of the week, we are afraid we&#8217;ll have to <strong>postpone it until further notice</strong>. We&#8217;ll keep you guys updated though!</p>
<p><strong>The Inkzee Team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/4IFl9Gfbj_Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/06/24/when-partitioning-isnt-enough/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/06/24/when-partitioning-isnt-enough/</feedburner:origLink></item>
		<item>
		<title>Step 2: Database redesign</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/jgHSJWtVg4I/</link>
		<comments>http://blog.inkzee.com/index.php/2009/06/15/step-2-database-redesign/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 16:17:19 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[milestone]]></category>

		<category><![CDATA[redesign]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=56</guid>
		<description><![CDATA[As part of our milestones towards opening up Inkzee we have the database redesign. We currently manage more than 2 millions posts and over 4000 blogs. And although it might not seem as a lot, our database is starting to complain. A lot of the queries we do against it are getting really sluggish.
That means [...]]]></description>
			<content:encoded><![CDATA[<p>As part of our milestones towards opening up Inkzee we have the<strong> database redesign</strong>. We currently manage more than <strong>2 millions posts and over 4000 blogs</strong>. And although it might not seem as a lot, our database is starting to complain. A lot of the queries we do against it are getting really sluggish.</p>
<p>That means that if we ought to open up Inkzee we need to <strong>redesign the database so it can sustain a higher load of blogs and posts</strong>. We are currently working on it and we&#8217;ve done great advances. We have a prototype working with the new design but there are still some bugs and problems to resolve.</p>
<p>We hope the new design is finished sometime during this week. We&#8217;ll then fire up our test cases and check nothing is broken and once we&#8217;re sure the new design is as flawless as we can get it, we&#8217;ll release it to you guys! Hopefully you&#8217;ll experience a much faster site, not only on a subscription by subscription basis but specially when you request all posts from all blogs.</p>
<p>We&#8217;ll keep you posted!</p>
<p><strong>The Inkzee Team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/jgHSJWtVg4I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/06/15/step-2-database-redesign/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/06/15/step-2-database-redesign/</feedburner:origLink></item>
		<item>
		<title>New UI redesign</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/R2tMmuw5e-o/</link>
		<comments>http://blog.inkzee.com/index.php/2009/06/15/new-ui-redesign/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 16:03:39 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[faq]]></category>

		<category><![CDATA[help]]></category>

		<category><![CDATA[redesign]]></category>

		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=48</guid>
		<description><![CDATA[As we said before, since we got back from the Bay Area we&#8217;ve been working on getting the site out of alpha status. Our goal is to open it up to everyone as soon as possible. This plan requires 3 steps:

Redesign the UI and make it more user-friendly
Redesign the database architecture and alleviate the current [...]]]></description>
			<content:encoded><![CDATA[<p>As we said before, since we got back from the Bay Area we&#8217;ve been working on <strong>getting the site out of alpha status</strong>. Our goal is to open it up to everyone as soon as possible. This plan requires <strong>3 steps</strong>:</p>
<ol>
<li><strong>Redesign the UI and make it more user-friendly</strong></li>
<li>Redesign the database architecture and alleviate the current scalability bottlenecks we are experiencing</li>
<li>Move all infrastructure to Amazon Web Services for easy horizontal scaling.</li>
</ol>
<p>To date we&#8217;ve accomplished the <strong>first milestone</strong>. We did a <strong>complete overhaul of the UI</strong> for Inkzee. It wasn&#8217;t just the design but we needed to add a lot of help features. One thing we&#8217;ve seen is that most users just use a small fraction of the features the site has (and there aren&#8217;t too many). Because the current version was on alpha status, there where no help pages whatsoever. That meant that only the most advanced users were able to navigate the site. Our goal is to make it plain simple for everyone and so we realized <strong>we needed a complete help system</strong>.</p>
<p>So, off we went and added a lot of help features into the site. For starters, <strong>we added a help page where you a a complete (or so we think) guide to Inkzee</strong>. In there you&#8217;ll, hopefully, find the answers to the most common questions you might have.</p>
<p>Secondly, we changed most of our cryptic icons and turned them into fully blown buttons with their textual meaning apart from the icon.</p>
<p><img class="aligncenter size-full wp-image-49" title="alerts" src="http://blog.inkzee.com/wp-content/uploads/alerts.png" alt="alerts" width="650" height="306" /></p>
<p>We also added a bunch of widgets to the main page so you now will have the<strong> latest news of this blog on the main page</strong>. We also added a much more interactive <strong>&#8220;get started&#8221; widget</strong> than the old plain text layer we had before.</p>
<p>And finally but not least, we added <strong>help bubbles</strong> all over the interface with tips about the feature at hand.</p>
<p>The<strong> first reviews from our alpha users has been very positive</strong> but we will love to <strong>get some feedback from everyone</strong>. Found a spelling mistake? Couldn&#8217;t find help about a specific topic? Do you still don&#8217;t undeerstand what that button or feature does?<strong> Feel free to <a href="http://www.inkzee.com/contact.html">contact us</a> with your suggestions and ideas!</strong></p>
<p><strong>The Inkzee Team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/R2tMmuw5e-o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/06/15/new-ui-redesign/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/06/15/new-ui-redesign/</feedburner:origLink></item>
		<item>
		<title>Back from Silicon Valley</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/3ezA7NvV2CI/</link>
		<comments>http://blog.inkzee.com/index.php/2009/06/15/back-from-silicon-valley/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 16:00:42 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[advice]]></category>

		<category><![CDATA[silicon valley]]></category>

		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=46</guid>
		<description><![CDATA[Hello everybody!
Sorry for this long lasting silence. It&#8217;s funny how easily we preach the value of blogs but we don&#8217;t apply it to ourselves. Anyhow we are back with some news. We recently went to Silicon Valley and had some really amazing conversations with a lot of entrepreneurs there. We should say that one of [...]]]></description>
			<content:encoded><![CDATA[<p>Hello everybody!</p>
<p>Sorry for this long lasting silence. It&#8217;s funny how easily we preach the value of blogs but we don&#8217;t apply it to ourselves. Anyhow we are back with some news. We recently went to <strong>Silicon Valley</strong> and had some really amazing conversations with a lot of entrepreneurs there. We should say that one of the most enlightening conversations was with <a href="http://twitter.com/FictiveCameron">Cameron Koczon</a>. We talked about a lot of things but one struck as really important. We can still remember his words: &#8220;<em>Dude, you&#8217;ve got everything, the idea, the prototype, the users, what are you waiting for?</em>&#8220;. And of course he was right.</p>
<p>There is nothing like getting trapped in your own web. We kept pushing our final release date because we wanted to finish this or that. After getting back from the Valley we realized we just<strong> needed to focus on getting Inkzee out of the door</strong> and not that much about individual features. So all of our late efforts have been oriented towards that goal. The first stage we&#8217;ve accomplished was a <a href="http://blog.inkzee.com/index.php/2009/06/15/new-ui-redesignnew-ui-redesign/">complete UI redesign</a>. Right now we are working on a couple of things we still need before opening Inkzee to the world.</p>
<p>In conclusion, we are still working for you guys and you&#8217;ll see some results very soon!</p>
<p><strong>The Inkzee team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/3ezA7NvV2CI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/06/15/back-from-silicon-valley/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/06/15/back-from-silicon-valley/</feedburner:origLink></item>
		<item>
		<title>Archiving news, what a wonderful thing</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/PClZuvAuQ9I/</link>
		<comments>http://blog.inkzee.com/index.php/2009/03/20/archiving-news-what-a-wonderful-thing/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 10:29:53 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[archive]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[partitioning]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[scalability]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=41</guid>
		<description><![CDATA[Hi all,
Some days ago we rolled out a new release. Apart from fixing a bunch of minor bugs, we implemented an internal improvement. One of the problems we were running into is the huge amount of posts the system is tracking (last week was something around 650.000 posts). Problem is that accessing a single table [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>Some days ago we rolled out a new release. Apart from <strong>fixing a bunch of minor bugs</strong>, we implemented an <strong>internal improvement</strong>. One of the problems we were running into is the huge amount of posts the system is tracking (last week was something <strong>around 650.000 posts</strong>). Problem is that accessing a single table with that amount of records in it can be time expensive. The solution was simple, most of the posts that are stored are quite old (more than 3 or 4 months old) so we decided to move all those old posts to some other tables where they would be access much less. That meant that<strong> we offloaded a lot of information from the main post table</strong>, keeping the number of records there under control.</p>
<p>As usual, implementing this things isn&#8217;t as straight forward as we would like and we had to implement a specific logic so that if a user wanted to read more posts from a blog that had been archived we would return them to the user in a seamless way. It&#8217;s finally working and the <strong>site&#8217;s performance is considerably better</strong>, so we are quite happy.</p>
<p>During the next weeks we&#8217;ll be partitioning some tables so that the site goes even faster, we&#8217;ll keep you posted.</p>
<p>Thanks for your patient!</p>
<p><strong>The Inkzee Team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/PClZuvAuQ9I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/03/20/archiving-news-what-a-wonderful-thing/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/03/20/archiving-news-what-a-wonderful-thing/</feedburner:origLink></item>
		<item>
		<title>New theme for our blog</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/69a35lbDRHE/</link>
		<comments>http://blog.inkzee.com/index.php/2009/03/09/new-theme-for-our-blog/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 20:04:22 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[blog]]></category>

		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[theme]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=38</guid>
		<description><![CDATA[We have to say this: FINALLY! Yeah, we&#8217;ve managed to get some time to deploy a new theme for our blog. It&#8217;s nothing fancy, one of the thousands of Wordpress themes but it&#8217;s much slicker than the old one. Hope you guys like it  
The Inkzee Team
]]></description>
			<content:encoded><![CDATA[<p>We have to say this: <strong>FINALLY</strong>! Yeah, we&#8217;ve managed to get some time to deploy a <strong>new theme</strong> for our blog. It&#8217;s nothing fancy, one of the thousands of Wordpress themes but it&#8217;s much <strong>slicker</strong> than the old one. Hope you guys like it <img src='http://blog.inkzee.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>The Inkzee Team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/69a35lbDRHE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/03/09/new-theme-for-our-blog/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/03/09/new-theme-for-our-blog/</feedburner:origLink></item>
		<item>
		<title>Alerts are here!</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/E9KaKXj8pfk/</link>
		<comments>http://blog.inkzee.com/index.php/2009/03/03/alerts-are-here/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 11:59:40 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[alert]]></category>

		<category><![CDATA[bugs]]></category>

		<category><![CDATA[cluster]]></category>

		<category><![CDATA[filter]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=35</guid>
		<description><![CDATA[Finally we managed to release alert filters to the system! It&#8217;s still a little buggy and we have already detected a couple of glitches that we are working on, but all in all it&#8217;s pretty decent. As for today you can create an alert with a bunch of keywords and get all posts within your [...]]]></description>
			<content:encoded><![CDATA[<p>Finally we managed to <strong>release alert filters</strong> to the system! It&#8217;s still a little buggy and we have already detected a couple of glitches that we are working on, but all in all it&#8217;s pretty decent. As for today you can create an alert with a bunch of keywords and <strong>get all posts within your subscriptions that match those keywords</strong>. As usual, the posts that are captured by the alert <strong>will also display related clustered posts</strong> so you can dig further if you want to.</p>
<p><a href="http://blog.inkzee.com/wp-content/uploads/inkzee.png"><img class="aligncenter size-medium wp-image-36" title="inkzee" src="http://blog.inkzee.com/wp-content/uploads/inkzee-300x152.png" alt="" width="438" height="221" /></a></p>
<p>Apart from the alerts, we&#8217;ve <strong>fixed a lot of bugs</strong>, updated our <strong>jQuery</strong> libs and integrated <strong>jQuery UI </strong>into our interface. There were some nasty <strong>bugs when importing some opml </strong>files that have been fixed as well as some <strong>problems when unsubscribing</strong> to a bunch of feeds.</p>
<p>As usual, feel free to contact us at <strong>support at inkzee dot com</strong> with any problems or bugs you find. Want to try the alpha? Request an invite here: <a href="http://www.inkzee.com">http://www.inkzee.com</a>.</p>
<p>Thanks a lot for your support!!</p>
<p><strong>The Inkzee Team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/E9KaKXj8pfk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/03/03/alerts-are-here/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/03/03/alerts-are-here/</feedburner:origLink></item>
		<item>
		<title>Some good press - Thank you!</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/-94Q6IggA5w/</link>
		<comments>http://blog.inkzee.com/index.php/2009/01/15/some-good-press-thank-you/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 12:20:58 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=34</guid>
		<description><![CDATA[Just a quick shout to our good friends from the Internet division at L&#8217;Echo, Sarah Godard and Roland Legrand whom we met at the LeWeb conference in Paris this year.
Sarah just wrote her first post on her new blog, Nekstr, and called on us as having &#8220;undeniable perseverance&#8221; and &#8220;a wild imagination&#8220;. We are very [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick shout to our good friends from the Internet division at <a href="http://www.lecho.be/">L&#8217;Echo</a>, <a href="http://twitter.com/sarahgodard"><strong>Sarah Godard</strong></a> and <a href="http://www.mixedrealities.com"><strong>Roland Legrand</strong></a> whom we met at the LeWeb conference in Paris this year.</p>
<p>Sarah just wrote <a href="http://www.nekstr.com/2009/01/nekstr-the-making-of.html">her first post</a> on her new blog, <a href="http://www.nekstr.com"><strong>Nekstr</strong></a>, and called on us as having &#8220;<em>undeniable perseverance</em>&#8221; and &#8220;<em>a wild imagination</em>&#8220;. We are very excited to hear such keen words! And from here we send our <strong>biggest gratitude for such amazing words</strong>! This year we&#8217;ll keep it going and will unveil some great new features and hopefully, some cash.</p>
<p>For all the startups out there, keep it tight but keep it comming, good times ahead!</p>
<p><strong>The Inkzee Team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/-94Q6IggA5w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/01/15/some-good-press-thank-you/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/01/15/some-good-press-thank-you/</feedburner:origLink></item>
		<item>
		<title>The not so simple case of folder management</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/OBpCADev8KY/</link>
		<comments>http://blog.inkzee.com/index.php/2009/01/14/the-not-so-simple-case-of-folder-management/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 16:27:18 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[drag]]></category>

		<category><![CDATA[drop]]></category>

		<category><![CDATA[folder]]></category>

		<category><![CDATA[management]]></category>

		<category><![CDATA[scalability]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=33</guid>
		<description><![CDATA[Today I want to tell all our readers a little tale, the case of the folder management. Folders has been one of the most asked features we got asked for in our first round of alpha testing. Users wanted to be able to group their feeds into folders. We started an early development and suddenly [...]]]></description>
			<content:encoded><![CDATA[<p>Today I want to tell all our readers a little tale, the <strong>case of the folder management</strong>. Folders has been one of the <strong>most asked features</strong> we got asked for in our first round of alpha testing. Users wanted to be able to group their feeds into folders. We started an early development and suddenly realized doing<strong> it wasn&#8217;t as simple as expected</strong>.</p>
<p>Technology seems easy to everyone except for the tech guys. Features that seem very straight forward become real nightmares to develop. The folder management was one of those. There where 2 steps we needed to take to implement it. The first one was to <strong>add all the necessary code in the user interface</strong> that enabled the user to drag and drop feeds into folders and within folders. That part was kind of easy, just some Javascript code here and there.</p>
<p>The second part wasn&#8217;t easy at all. We needed <strong>a way to store all the positions of all feeds and folders for a given user at any time</strong>. The easy way was to create a list to store the feed with the user&#8217;s position. Problem was that we needed to be able to reorder that list. That meant we<strong> needed to be able to change all the feeds ranking </strong>when a feed was reordered. Doing that translated into <strong>a lot of write operations</strong> to that list (and in conclusion to the servers disk). To those that aren&#8217;t tech geeks, write operations to any hard drive are very expensive, they take a long time and a lot of resources. Though if you want your servers to keep up with a big load of web traffic you need to minimize the number of write operations.</p>
<p>So we had this problem, if we had to change the ranking of all feeds every time some user reorder one of them, it meant a lot of write operations. The <strong>best case scenario</strong> was that the user dropped a feed at the end of this list, and so, <strong>we only needed to update this feeds rank</strong>. The <strong>worst case scenario</strong> was having the <strong>user drop a feed at the beginning</strong> of the list. In that case we needed to <strong>update all the other users feeds rank</strong>. When this list has only 10 feeds, then it&#8217;s ok, but if the list is as long as 800 feeds, those are a lot of write operations. Finally, if you start thinking we could have <strong>several users dragging and dropping feeds simultaneously</strong>, the number of possible <strong>write operations in the worst case was alarmingly high</strong>.</p>
<p>To solve the problem we<strong> partitioned the rank space</strong> so that ranks had a gap of x numbers in between. That allowed us to minimized the number of ranks we needed to update at a single moment. This added an extra layer of difficulty as we needed to<strong> track the number of free slots </strong>available before we needed to reorder the whole feed list.</p>
<p>At the same time we <strong>needed to track if a feed was being dragged, before or after another feed, before or after a folder or if it was being dropped inside a folder</strong>. So we had to check the type of operation, where, which folder and if we had free slots there.</p>
<p>When we finally had all this stuff right we had to <strong>translate this internal structure into the export / import mechanism </strong>that produces or reads opml files (xml files). We needed to be able to read an opml file with folders and translate it into our internal representation and ranking list so it would be correctly displayed to the users.</p>
<p>All in all, it was fun but a very hard work for something that initially seemed so trivial to accomplish. The system is working now and apart from eventual glitches it should work. <strong>We still want to get a better UI for the drag &amp; drop</strong> thing as it seems to us it&#8217;s still a little bit clumsy, but we&#8217;ll get there.</p>
<p>So now you know that even <strong>the simplest feature requires a hard work</strong>, so choose wisely what you want us to develop next <img src='http://blog.inkzee.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/OBpCADev8KY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/01/14/the-not-so-simple-case-of-folder-management/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/01/14/the-not-so-simple-case-of-folder-management/</feedburner:origLink></item>
		<item>
		<title>God bless the private invites</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/6IsBaRywuug/</link>
		<comments>http://blog.inkzee.com/index.php/2009/01/14/god-bless-the-private-invites/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 13:55:27 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[backend]]></category>

		<category><![CDATA[invites]]></category>

		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=30</guid>
		<description><![CDATA[Hi all,
After some finally tweaks, we managed to push another release today and finished migrating all users from the old alpha architecture. We were so excited, we decided it was time to send some more invites to some more users that have been waiting for it for ages! (We really regret that, sorry guys!).
Suddenly what [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>After some finally tweaks, we managed to <strong>push another release today</strong> and<strong> finished migrating all users from the old alpha architecture</strong>. We were so excited, we decided it was time to send some more invites to some more users that have been waiting for it for ages! (We really regret that, sorry guys!).</p>
<p>Suddenly what we can only define as a <strong>shit storm</strong> came our way. Servers were on fire, even though we didn&#8217;t send too many invites. Problem is that our system scales with the number of feeds each users has. Some of our new alpha users are really <strong>feed junkies</strong> (you know who you are! :P) and really pushed the total number of feeds the system manages really fast. We are throwing some stats so you get some idea:</p>
<p><a href="http://blog.inkzee.com/wp-content/uploads/stats.png"><img class="aligncenter size-full wp-image-31" title="stats" src="http://blog.inkzee.com/wp-content/uploads/stats.png" alt="" width="416" height="299" /></a></p>
<p><a href="http://blog.inkzee.com/wp-content/uploads/stats1.png"><img class="aligncenter size-full wp-image-32" title="stats1" src="http://blog.inkzee.com/wp-content/uploads/stats1.png" alt="" width="406" height="288" /></a></p>
<p>As you can see, the number of feeds being tracked by Inkzee internally <strong>nearly triplicated in a 20 minute span</strong>. We are storing, displaying and sorting 32,859 posts right now and growing fast.</p>
<p>In the process of managing such a large amount of new feeds<strong> some parts of the backend went belly up</strong>. We are investigating it now and we hope we can fix them soon. Even though some things broke, they weren&#8217;t critical parts so the system recovered from the failures pretty fast which is good news.</p>
<p>The moment we stabilize the system again we&#8217;ll continue sending new invites. Right now we are also focusing in <strong>adding new features</strong>. The next one in our roadmap will be the ability of creating custom filters and keyword alerts. We hope to release that some time next week.</p>
<p>As usual, <strong>thanks a lot for your patient </strong>and keep coming, but gently <img src='http://blog.inkzee.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>The Inkzee Team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/6IsBaRywuug" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2009/01/14/god-bless-the-private-invites/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2009/01/14/god-bless-the-private-invites/</feedburner:origLink></item>
		<item>
		<title>Refactoring code</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/u4HUhdvVnjY/</link>
		<comments>http://blog.inkzee.com/index.php/2008/11/25/refactoring-code/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 13:01:06 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[alpha]]></category>

		<category><![CDATA[architecture]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=29</guid>
		<description><![CDATA[Hi all,
One of the things we knew when we started Inkzee is that our code was going to be refactored several times. For those not familiar with this term, it means to rewrite part or most of the code so it gets better, cleaner and easier to maintain.
Having no experience about scaling web applications we [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>One of the things we knew when we started Inkzee is that our <strong>code was going to be refactored several times</strong>. For those not familiar with this term, it means to rewrite part or most of the code so it gets better, cleaner and easier to maintain.</p>
<p>Having no experience about scaling web applications we knew that we would be forced to rewrite parts of the code so the web app could scale and remain responsive under big loads. Until now we had done a couple of big code changes, but just to add new features or to change the way a submodule worked. We though that a<strong> big redesign of the code was paramount but not as soon as we expected it</strong>. As many first time entrepreneurs, <strong>we were very naïve</strong> about this and we suddenly found that the application needed a redesign so it could handle the load very early on. It&#8217;s funny because Inkzee doesn&#8217;t scales with the number of users, but with the number of feeds the system has. Of course there is a correlation, but we have users with 20 subscriptions and users with 800 subscriptions, so it&#8217;s not a matter of having 2 users what hurts performance, but a matter of having the system feeds duplicated in weeks.</p>
<p>That said, we <strong>started rewriting the web architecture so we could handle a bigger load and so the alpha would go back to a stable state</strong>. People have been asking us when is it going to be completed and we truly understand them. There is a growing list of people wanting to test the alpha and development on the alpha is very slow. The reason for this is that, because we are so small, we can only afford one developer that has to handle everything, from server administration to development or unit testing. We&#8217;ve been working really hard on the new architecture but it has come with a high price.</p>
<p>We&#8217;ve <strong>added internal unit testing</strong> so we avoid shipping new releases that break previous functionality and to ensure the <strong>maximum quality for our code</strong>. This has pushed the release date even further. Another big hurdle we encounter is that we found ourselves <strong>changing the semantic algorithm due to the way the new architecture works</strong>. This has been giving us big headaches as it&#8217;s a complex piece of code and testing it isn&#8217;t as easy as it sounds.</p>
<p>Finally, we&#8217;ve<strong> fixed some big character encoding issues the old code had</strong>. For starters, characters aren&#8217;t codified in the same way across all platforms, depending on the operating system, editor encoding and a myriad of other possibilities, characters can be encoded differently. Our system needs to handle everything with the same encoding, that means we need to decode everything that enters the system before we can work with it. This is something that seems easy, but in fact, is one of the most uncomprehended problems for most developers. Needless to say that it took us 3 days to hunt down a very obscure bug in our backend that broke the parsing of some feeds.</p>
<p>So here we are, about to launch the new scalable architecture of the alpha after a couple of months. We really wanted to<strong> thank everyone for their patient and we also wanted everyone to know why it&#8217;s talking so long</strong>. Hopefully it will be operative in a week or so. Thanks again to everyone!</p>
<p><strong>The Inkzee team</strong></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/u4HUhdvVnjY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2008/11/25/refactoring-code/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2008/11/25/refactoring-code/</feedburner:origLink></item>
		<item>
		<title>El Economista Interview</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/205Pyh-OVkM/</link>
		<comments>http://blog.inkzee.com/index.php/2008/11/25/el-economista-interview/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 12:38:52 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[Alejandro Barrera]]></category>

		<category><![CDATA[economist]]></category>

		<category><![CDATA[El economista]]></category>

		<category><![CDATA[interview]]></category>

		<category><![CDATA[newspaper]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=27</guid>
		<description><![CDATA[Hi all,
Sorry for the delay but the newspaper interview was published 2 weeks ago in the EcoAula section. Nevertheless, they also published it online for all of you who want to read about it.
You can find it here, and although it&#8217;s in Spanish I&#8217;m sure most of our readers can understand it  

Cheers all!
]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>Sorry for the delay but the newspaper interview was published 2 weeks ago in the EcoAula section. Nevertheless, they also published it online for all of you who want to read about it.</p>
<p>You can find it <a href="http://ecoaula.eleconomista.es/universidades/noticias/857178/11/08/No-volveria-a-trabajar-en-una-empresa-me-gusta-ser-emprendedor-en-serie.html">here</a>, and although it&#8217;s in Spanish I&#8217;m sure most of our readers can understand it <img src='http://blog.inkzee.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://blog.inkzee.com/wp-content/uploads/alejandro-barrera-d.jpg"><img class="aligncenter size-medium wp-image-28" title="alejandro-barrera-d" src="http://blog.inkzee.com/wp-content/uploads/alejandro-barrera-d.jpg" alt="" width="260" height="175" /></a></p>
<p>Cheers all!</p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/205Pyh-OVkM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2008/11/25/el-economista-interview/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.inkzee.com/index.php/2008/11/25/el-economista-interview/</feedburner:origLink></item>
		<item>
		<title>Radio and newspaper interviews</title>
		<link>http://feedproxy.google.com/~r/Inkzee/~3/a5j0OIK8DcM/</link>
		<comments>http://blog.inkzee.com/index.php/2008/10/21/radio5-newspaper-interview/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 09:04:41 +0000</pubDate>
		<dc:creator>abarrera</dc:creator>
		
		<category><![CDATA[inkzee]]></category>

		<category><![CDATA[news]]></category>

		<category><![CDATA[economista]]></category>

		<category><![CDATA[newspaper]]></category>

		<category><![CDATA[periódico]]></category>

		<category><![CDATA[radio]]></category>

		<category><![CDATA[radio5]]></category>

		<category><![CDATA[rne]]></category>

		<guid isPermaLink="false">http://blog.inkzee.com/?p=25</guid>
		<description><![CDATA[Hi all,
This Sunday we were interviewed on Radio 5 @ RNE, a Spanish radio. It was a very short interview, but hey, publicity is publicity  
Because it was broadcasted really early, we record it and we are uploading it here for everyone to listen.
We also did an interview for El Economista, a local newspaper. [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>This Sunday we were <strong>interviewed on Radio 5 @ RNE</strong>, a Spanish radio. It was a very short interview, but hey, publicity is publicity <img src='http://blog.inkzee.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Because it was broadcasted really early, we record it and we are uploading it here for everyone to listen.</p>
<p>We also did an interview for <strong>El Economista</strong>, a local newspaper. In theory the interview should be printed in tomorrows edition. I&#8217;ll update this post with a link to the interview as soon as it gets out.</p>
<p><a href="http://blog.inkzee.com/wp-content/uploads/radio5.mp3"><br />
<strong> Radio5 Interview (mp3)</strong><br />
</a></p>
<img src="http://feeds.feedburner.com/~r/Inkzee/~4/a5j0OIK8DcM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.inkzee.com/index.php/2008/10/21/radio5-newspaper-interview/feed/</wfw:commentRss>
<enclosure url="http://blog.inkzee.com/wp-content/uploads/radio5.mp3" length="6823701" type="audio/mpeg" />
		<feedburner:origLink>http://blog.inkzee.com/index.php/2008/10/21/radio5-newspaper-interview/</feedburner:origLink></item>
	</channel>
</rss>
