Infrastructure improvements and some more
I was pretty quiet last month. There was a lot of work to do on the server side and a lot of small bugs to fix.
While BazQux Reader is running on many servers web part was running only on a single machine as well as a feed fetcher. Only database and search index were distributed. You might be surprised how it worked that fast on a single machine serving thousands of people and a single machine fetching millions of feeds. Answer is simple -- Haskell. Instead of using slow interpreted languages like Ruby, Python or PHP, BazQux Reader is written in Haskell which is compiled language and about 10-30 times faster. That's the source of speed (as well as SSDs and dedicated servers instead of cloud).
But everything has its limits and there was only 2x capacity with previous architecture. So I decided to spent few weeks on improving things. Both web part and feed fetcher are distributed now. That means that there is at least 10x capacity for new users (for example, feed fetcher is now able to perform 100M feed and comment page fetches a day).
Many "this feed is not updating" bugs were fixed. Most important is handling of feeds that change their address. Few glitches in API were fixed as well.
Few minor new features:
I welcome you to the new Google+ community where you can ask questions or see little news before they come to blog (UserVoice is still preferred for feature requests since it helps me to prioritize tasks).
You could also help BazQux Reader to grow:
And the best thing you could do to help is to write small blog post about the reader. This would be really great!
Now I'm confident that BazQux can easily handle more load without lost of speed and feed refresh rate and can finally focus on implementing new features!
Next things planned are auto refresh, Fever API (so it'll be possible to use Reeder, Press and ReadKit) and reordering of feeds.
Stay tuned ;)
While BazQux Reader is running on many servers web part was running only on a single machine as well as a feed fetcher. Only database and search index were distributed. You might be surprised how it worked that fast on a single machine serving thousands of people and a single machine fetching millions of feeds. Answer is simple -- Haskell. Instead of using slow interpreted languages like Ruby, Python or PHP, BazQux Reader is written in Haskell which is compiled language and about 10-30 times faster. That's the source of speed (as well as SSDs and dedicated servers instead of cloud).
But everything has its limits and there was only 2x capacity with previous architecture. So I decided to spent few weeks on improving things. Both web part and feed fetcher are distributed now. That means that there is at least 10x capacity for new users (for example, feed fetcher is now able to perform 100M feed and comment page fetches a day).
Many "this feed is not updating" bugs were fixed. Most important is handling of feeds that change their address. Few glitches in API were fixed as well.
Few minor new features:
- "E" key to mail current article's link.
- "Escape" key closes opened list view item.
- Audio/video podcasts can be opened in a popup window.
- You can change order of feeds in Mr. Reader or Feeddler and it will be reflected on site.
I welcome you to the new Google+ community where you can ask questions or see little news before they come to blog (UserVoice is still preferred for feature requests since it helps me to prioritize tasks).
You could also help BazQux Reader to grow:
And the best thing you could do to help is to write small blog post about the reader. This would be really great!
Now I'm confident that BazQux can easily handle more load without lost of speed and feed refresh rate and can finally focus on implementing new features!
Next things planned are auto refresh, Fever API (so it'll be possible to use Reeder, Press and ReadKit) and reordering of feeds.
Stay tuned ;)