Random tech jargon

I am in the process of evaluating which option to choose for a new production deployment of a Sinatra application. Pros and Cons of the implementations: JRuby Stack: Pros: • Fast for serial execution once warmed up. • Multi-threaded, easy to scale with spiked traffic / shared resources. Cons: • Slow warm up time, app […]

Tagged with , , ,

One of our articles on fabulously40 went viral on the tagged.com which is one of the largest social networks in the alexa top 100. The viral aspect was quite apparent when the bandwidth sky rocketed to 30Mb/sec of sustained traffic. We were pushing over 60gigs of image data per day! We broke our bandwidth quota […]

Tagged with ,

I have finally nailed out all our issues surrounding Varnish on Solaris, thanks to the help of sky from #varnish. Apparently Varnish uses a wrapper around connect() to drop stale connections to avoid thread pileups if the back-end ever dies. Setting connect_timeout to 0 will force Varnish to use connect() directly. This should eliminate all […]

I finally got around to open sourcing our scala memcached implementation that we use at fabulously40 for session storage. Since wicket sessions can vary greatly in size, using the standard memcached server implementation became impractical due to the slab allocator. The current code on github lacks the ehcache store and an Actor IoHandler adapter. The […]

Tagged with , , ,

Want horoscopes on your site? Give our web service a try. http://widgets.fabulously40.com/horoscope.json?sign=cancer http://widgets.fabulously40.com/horoscope.yml?sign=cancer http://widgets.fabulously40.com/horoscope.xml?sign=cancer To pull by specific date… YYYY-MM-DD month format http://widgets.fabulously40.com/horoscope.json?sign=aries&date=2009-05-03 http://widgets.fabulously40.com/horoscope.yml?sign=aries&date=2009-05-03 http://widgets.fabulously40.com/horoscope.xml?sign=aries&date=2009-05-03

I would be sitting on a gold mine. SLOC Directory SLOC-by-Language (Sorted) 37890 src java=37890 5026 contrib-utilities java=5026 4457 contrib-crud java=4457 2259 contrib-mootools java=2259 1235 contrib-generaldao java=1235 1185 contrib-emailmanager java=1185 986 jetty-memcache java=986 961 contrib-cache java=961 787 jmemcached java=786,sh=1 640 contrib-thumbnail java=640 503 contrib-blueprint java=503 181 contrib-snapshot java=181 32 contrib-nicedit java=32 Totals grouped by language […]

Tagged with

One of the first few things I have tackled while creating fabulously40 was stateless pagination. I wanted to keep all the public facing pages stateless to avoid session overhead. Wicket makes pagination brain dead simple at the cost of session use. I wanted to keep the simple programming model yet be completely stateless. Here is […]

Tagged with ,

Update: Just an update, All the issues with Varnish on Solaris have been fixed with the 2.1.4 release. We have been using Varnish on our Solaris production servers since the release with great stability and performance. A big thanks to the Varnish devs and slink for the eventport fixes. I have dumped varnish as our […]

Tagged with , , ,

I am about to run out the house for the Labor Day weekend, quickie post on my new coding url strategy. MixedParamHybridUrlCodingStrategy lets you keep stateful multi-pagemap URLs clean while using mixed parameters. Example… mount(new MixedParamHybridUrlCodingStrategy(“/questions”,QuestionsPage.class,false,new String[]{“cat”})); This will mount “/questions/stupid-category” and convert it to… new PageParameters(“cat”,”stupid-category”); package com.base.target.coding; import java.util.HashSet; import java.util.Iterator; import java.util.Map; […]

Tagged with ,

This is a late night post, so I am just going to make it short. This patch lets you use QueuedThreadPool with the Grizzly Connector. This is a monkey patch, getMaxThreads() should be moved up into the Thread Interface. — GrizzlyConnection-old.java Sat May 2 01:08:02 2009 +++ GrizzlyConnector.java Sat May 2 00:56:37 2009 @@ -51,6 […]

Tagged with , ,