Application Development - eWeek


Battery 500 Project Charged Up over All-Electric Cars
Charting the Final Frontier--Google Maps for Indoors
Get Smarter Technology on Your Mobile!
  Application Development


Making Ruby on Rails Scale




x}ks6*Q3{L=Ҕlcm,ki;[CĘ"$GrO/vKJc23NƖht7F;?{{~$rI56%SE}"I{C(`RϩIzNڶ? }~mksu;z=>;|9|AL=TadB$kwtL|ϨTS_Fܨ[`&`1ZlR!j 9i?xi='@IR(#ѺC(D=ߵ-m: \'|7*UnSp{ca_ʞz5"h4"j;^7w2 w:bq:!l m׸ڮU ؓ ۭ@5l"s9ȹ׳oGniɿTݱu61iB dbLJ^tf?D9z u v=r@J53ҧ 螥ɧ5f5I u1 ߘekfy3?b Jw3B~ V7g77MuiSCV=BCj`BӹciueUo~vO|SQ&:aZ+U#3p=jIo]}ퟒ;;Beu#7ReQ o̱n>@|ˤd6M2Tch^ԩ#5ǯhVj5V0z[PĿ G/<@'L[w p3Z&9T23=MH#k 3!RBʼĿIK _VPJB-)\Dh+ԌTwIQQ#w{̌_"ʥcc^IcGsQ 4l.k\BtWʲ9QY +K\M흛ޢG=-*<7Z)]u/{]iz-xXnvZM( :oo:jr-6_)Ab/*5U95|Qnl :2X jX1nґ>σutSOgG|JMk>uI< EC#mxq=Z.s+ЍEXn`vt#I4oQp{4ڭm= K!pI}xXS9&ztmP``ce!S uG νdrgoMC?Flz7t( u,/{@`\@8HpyE]ubsB[>ȁ=`Mtև &QsnPBfԁ.q<ɜ+) T@FHHt"AђF *4 gscX"K"'ǏA7;.VKŤ\*y"Jm':.ܱ;PKRx&,S,BV-KᗄPf%i2mhƪń(VFNl(0Vf)L>hQox@F6}Sˀ)4ٜi8SA0>A̞P,j\r 8Y~pI$З^s_o2ES|(n^ßf1d_w\ճ&VAB glCC2{ޡ[Y3R;= Mrʳ"#@7X>ť`N)mtй+>q^v.iԚv ei[I%ͺ7Ru-zց$l JҰ.Z*![r5}a׼6F]RZRKHDlPc/΅ò=cM2&7 ہ YMܛwXUM.R?xz#jISʑbY;l ʸfJirij>NMKϵ("fl>u L'|ф0ې l1N)>A TXfRhjUVL-F*|( +#NWɅk?Ng,.,KYkyMٕ.RB|vjN BrShfh:l<}6:Hy5՝5̆RP՘Iڏ9&_G5 k^ˣ6Wȵm>2躢΍GƱ4g3t%ұy4h_G3kHb4"T2paLHa0S] elQؼewPz?69r]ilu0q`(1Z3:uV*[O;$!WTͶwAQ O1kM8vهE1Ǿ{E; F:7a/S" @54ÀЇ>B SL@ΧrE\ ~1~1UŠP=I)Gz-X]>L, ~Ê?DNQcG=.C+DÜU^Vw.$JPVbrxɡUT9*J8;|%ZA~~Qet4?trFg}qs`~62Msg67`3|x+ߙ#[aeƘ]H`7\ +RUw5 Ř)2)N<:arUTՑn vOGA.CMtAk[, ܠYCaiϖҚZ-V,?A@ |~KZh"0w/eOTU)&U$jl|T`Z܎:{>-W` >N=1Ǩk 05-tp]U*jAe߯y+^t m(5# #2qgrh)hj* 8UoF* ϛ=G$1*@7Z Sғe4 "|GIpR|5y->p7poj%O@(1Oa*r1_?L= [L4Gzɖ0`O- v uhՂrO'(3_Gd3ⵚV+g|6i4DZ6svNR3̍oe?f#Z7pTJJ\ $J+A:b2u9pgtV?nHCos 车EM+v@l+J9wWGc&3 t@ ɢ\' WeRUn8J3Az "!cc?"MMxhG=a?qq-<92(jԈ 8fX&1W+ʬڼ d@48&o;W=J ПBQ`nо(&wmI@ N@M~H ۇ>^f}0qqnow/ 39o?{4{RvipEj_qHJGV%?~<ڝ?eF&{fB, 8oH1擸3Q=/"W隿z>h F$;rӼо_xt/h_$1~J`&MypyU4)$Ey~|hq\3nmǛ&Lkd3;fW쐶CtO[לY0z!B3p&qXhr!slP6hN؆{+^+[̚_f·ńB?JNx0(Gb z H)'4 EstZ;3^t}dh !V`!NU HE*4ДKe=ѓ:)K<;mt)x5E_ѫſ}i T t6~OWK0wfAba+F+9ǭN۟H‐ ׉ NAvhq_<#慰sF0xc`3JP -Mu?So2MDYkNEl͘-O|BaqB=LPƓ4wɨ ݖ:p<5G :)!O\'02H P,O&e=lI1 iKBih%bbVHJowռܞ6<1ޥ]ƙBvmK$Ζˬ&!̗4.נE8V#[vx~t7>XkI-jշΫ؉|Ds`*=SL aʕCrWkb~]4ZU$=ݝ:F`cIŃ O~ؑq eީӊN|u +KׅNo՗?݁C5=ICw5FOG2]>^Y #} DK,qj;;_=?P.zsRɍei:;S7Ukݮ< #sCӝꖃ]L.Iߺ&sP+=Ƃz :t{DoY7ۨ{.|ʜ(=}!Gzzy}69oa`Jwfk6"&s C7)۽4v7*A=wC?'dc: M"I^U֭UdU)I=YE㳏)G8}{tH_:`@L6COf=K=#tzoo=إ֛~=*~'Lw.z@z@pw{Zg%QJW=(qM@jjiAr\"~^YZ䑽أp l$>?Gko[#D:*pctOxcZy‡i'K-h<~lor:GBf#AVާA3'Wa}ZmSdL\ˠ,Iu9¸9 (_VtGbgőRJɞsޞŠc@$=C@7"=e򮅜",ebY[ ؤ w2;iNb'L [V|m5Bg02zfY[NI);91Z|{KJ`dI0Zt]sX< V*aB%Sx!(bhBzE@{NIdJW@ѠSW*7iXI)IZmP^i/g,3l&IyJt|z>|O⯈NT.J5u;>#!H 9I0-k/G%;$"iڶ;Wl4]v,7W`#1< ]do|65Tck Q:OJɯnY+sV3) \b6c6'ET W" 8e^7%'^Ɍ_`r6C6o*`*ɭ_'< tuSu#u17*tL=;%ʋr`ݢ D4֕k[D*jJm-)^K>!-l` $l [ Q LYZRL 4dj-9=B ?49T Ӑ>g˛1<IOC`#ף^H kW4ޖO,[3(D AT Nu:-zI>zuJ !"]ol]uKx1@Pn)̴=+{GvF;G\+2Pe:ȶl[?RgXA.BQ|||||jn:sGդUt y Cwmc'ᰴCgve0[?!? ܕ,!Ev$Cc_=69O5 s/YssrbhX~~Kr-GDPa;s=?`f$UQv7Cl)$P`?P0ԯKKh,>O@.WfbË$sI}O4cY!,IpVuXa/#iO'C~JOyK{HXD3,ў"ڗE|3?k: ?f$[{wnHsIC3P肹^u@p3 Яt{ADȎh;VL'`\pPǟR*.gs1E=>Opl {m[V\* GʳΔ;5%ICcyټs}ܱݱ;BC,GmR0+>AWNWjõU]M]?3ݶ+&.⫽rM3ŗ)$ķz4 /K`浉~*DL9b y;@BSk,Y3^iIͽ=ڶ/hG P|F0w-c H(W=~g3@VE[6,ѩ{Gҩ*eX -}-%ϒZw>n&zpy{¡YKj|!&VJD:`ѿWJSD)2UJ65Lh` >Ӌt-.'?=k҃>?w}g;2(P-)璘^K{`G-N fIibw2О$Mw q-{8R[xv1LC16fj;"8? eۆ?ͣ~Ge3ʼn߳yx](Z@ln1g+h!sOL$1aNc:`뽰 ΰ.xGD)F͞ߣYf0m!۟`c\n]7LG)3QE)u'8~/ &&ТC>y|_=" w~ci fx#@e,=}f|'B*b!rc[at ^ VŠyVC `5olz^CRM` 1K.қ≠D37:QY~s;6T"'.2\h pKy_gcqeSKA~@klM/5 ?)3$[] 0>5lbW-Tgz`N6D/]YjJEU0=j ]9 ȵF.0Fv'}ZpYĽ֞HbsgCK%XS=oȏzBYꕤ'>[S~<Z:<}Q-DR!&҃2n~Ar|jq_oj.7`ϔ4XHM` +_aw׭kdlɤNWDڭJ]kJ^@cTQBY=/VWkޞ`t/,9+siZ`3+nޖTm}qVҽ]F Rd3}$纣;~  A|3i~RBJuTcaP{G )(ȚXW!t "J ު۶6 |L`߄>zCh.o Arj$p ?l Pm̼܏@GB )}oobGd.$qGs5D(;do VIz# ,@Eꊍ\DQ+bB p7Z7l.Z~뺇V %^Lp@XțbBU 2NwjL!'vQ]Q sxxHB8!i oz˞RS Iݾ`?ч! L-ǚnԒIED#ThbGB#OscMZӄpxXҚ0!<RA~}s= d]>ۈ( s\cs$6g3 >߆Aqd=+x< +&(?,p E K{GLƙ;fQsѾ_$)KT t(.( oIYP,(!Lz)%D7UI8F7m<+: l :Lma`t.t?OgGA~2?t:&Zh5KޝQ>ɖàzEQp#ߛSg0YM2غ9P>r:tLPU8iz67axjfP "Z>^rФo%u?C@/P~ (By79hp(?g@ |?d#\_~5ۧF4kgeF9^s/3^_~/2ldOw};}:@;v2Oˌ_~OP~Q7([Fy;0{ s!?0~wAt3OK7C\\e5uc}G௏ ?eC>eSn&&oon2/9IR< 9k^픊8kgK " SV9,.2kP g  ~-2*B~ y/> K{\WKM0TntEճKT쵆cn%:v ^_j9.~QJxdB$h{dZc+mFD)O(c#h cHO8&J5FGk(x[xcEFz_dmBRP6սDd%Q( /q96m|LڸA^0–,ٵ&"m<=v|4#eUI;.~9MT~3)B4w^|7(6؆|%O' ϻW#J>0`9`"e "@"dWs<XQYɶz S~j^O(Coݒ\k<>aiЄΧYp穎m,U|A>cx;i?Ku A]=_v{[>/'_A wVǰar]MzS cJ\gGۂ~Ӎ+׶GS<"Y4.'쑥"?Hf";]2*箍A-Z12%o,gkV"F0Gg=zLk|FXKz\\KkÐ{yy0Ǖ2DM1F(ͧ,1f3L*@= փ W1`#hxb <nRh1)Lb'kI''60MÄr"+roq=y[יJp8g0N^Zɩȩ(vU_|JѬd;j +sGOg |I>"`\YBC^EkN~g!g˾t/>Jz`gɳ^VXvQJ=hy6xL 2V*wN㛼V cSEᘸeԔb}{7 p6JL?-۔̡9MR"GZi/%!zR4էr0>_v=̭q/2a-d4džHkckjG*