<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
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:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>the lost logbook &#187; Technology</title> <atom:link href="http://utkarshsengar.com/category/tech/feed/" rel="self" type="application/rss+xml" /><link>http://utkarshsengar.com</link> <description>Utkarsh&#039;s mind.random() on Programming, India and Startups</description> <lastBuildDate>Sun, 30 Oct 2011 06:00:23 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Thank you Mr. Jobs</title><link>http://utkarshsengar.com/2011/10/thank-you-mr-jobs/</link> <comments>http://utkarshsengar.com/2011/10/thank-you-mr-jobs/#comments</comments> <pubDate>Thu, 06 Oct 2011 07:24:39 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Technology]]></category> <category><![CDATA[steve jobs]]></category> <category><![CDATA[tribute]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=741</guid> <description><![CDATA[Thank you. We aspire to be like you, but Steve Jobs will always be known as &#8220;The crazy one&#8221; and &#8220;The insanely awesome&#8221; visionary! Your job is done, sleep well :) And&#8230;&#8230;a small gift for you: StayHungryStayFoolish.me]]></description> <content:encoded><![CDATA[<p>Thank you.</p><p
style="text-align: center;"><iframe
src="http://www.youtube.com/embed/8rwsuXHA7RA" frameborder="0" width="420" height="315"></iframe></p><p>We aspire to be like you, but Steve Jobs will always be known as &#8220;The crazy one&#8221; and &#8220;The insanely awesome&#8221; visionary!</p><p>Your job is done, sleep well :)</p><p>And&#8230;&#8230;a small gift for you: <a
href="http://stayhungrystayfoolish.me/">StayHungryStayFoolish.me</a></p> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2011/10/thank-you-mr-jobs/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>next() in Java from The art of computer programming</title><link>http://utkarshsengar.com/2011/08/random-next-java/</link> <comments>http://utkarshsengar.com/2011/08/random-next-java/#comments</comments> <pubDate>Tue, 02 Aug 2011 06:47:30 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Technology]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=694</guid> <description><![CDATA[I have always used Random&#8217;s nextInt() or nextLong(). So was curious on how &#8220;random&#8221; is it actually? Then I found this protected method next(). protected int next(int bits) &#160; Implementation of Random.java via Google code: 1 2 3 4 5 6 7 8 9 protected int next&#40;int bits&#41; &#123; long oldseed, nextseed; AtomicLong seed = [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft" src="http://imgs.xkcd.com/comics/random_number.png" alt="xkcd: Random Number" width="287" height="103" />I have always used Random&#8217;s nextInt() or nextLong(). So was curious on how &#8220;random&#8221; is it actually? Then I found this <a
href="http://download.oracle.com/javase/6/docs/api/java/util/Random.html#next%28int%29">protected method next()</a>.</p><p><code>protected int next(int bits)</code></p><p>&nbsp;</p><p>Implementation of <a
href="http://www.google.com/codesearch/p?hl=en#ND67gFy8cpo/src/share/classes/java/util/Random.java&amp;q=Random&amp;exact_package=http://hg.openjdk.java.net/jdk7/2d/jdk&amp;type=cs">Random.java via Google code</a>:</p><div
class="wp_codebox"><table><tr
id="p6942"><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td
class="code" id="p694code2"><pre class="java" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">int</span> next<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> bits<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">long</span> oldseed, nextseed<span style="color: #339933;">;</span>
        AtomicLong seed <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">seed</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #009900;">&#123;</span>
            oldseed <span style="color: #339933;">=</span> seed.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            nextseed <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>oldseed <span style="color: #339933;">*</span> multiplier <span style="color: #339933;">+</span> addend<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> mask<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>seed.<span style="color: #006633;">compareAndSet</span><span style="color: #009900;">&#40;</span>oldseed, nextseed<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>nextseed <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;&amp;</span>gt<span style="color: #339933;">;&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">48</span> <span style="color: #339933;">-</span> bits<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div><blockquote><p>The general contract of next is that it returns an int value and if the argument bits is between 1 and 32 (inclusive), then that many low-order bits of the returned value will be (approximately) independently chosen bit values, each of which is (approximately) equally likely to be 0 or 1. The method next is implemented by class Random by atomically updating the seed to</p><p><code>(seed * 0x5DEECE66DL + 0xBL) &amp; ((1L &lt;&lt; 48) - 1)</code></p><p>and returning</p><p><code>(int)(seed &gt;&gt;&gt; (48 - bits))</code></p><p>This is a <a
href="http://stackoverflow.com/questions/6275593/how-to-write-you-own-random-number-algorithm">linear congruential</a> pseudorandom number generator, as defined by D. H. Lehmer and described by Donald E. Knuth in The Art of Computer Programming, Volume 3: Seminumerical Algorithms, section 3.2.1.</p></blockquote><p>Interesting!</p><p>EDIT: Something even more interesting: <a
href="http://stackoverflow.com/questions/7926482/why-this-code-is-giving-strange-result-so-random">Why this code is giving strange result? So Random?</a></p><p>Link to <a
href="http://download.oracle.com/javase/6/docs/api/java/util/Random.html">JavaDocs for Random</a>.</p> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2011/08/random-next-java/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>My emacs setup for python dev</title><link>http://utkarshsengar.com/2011/06/emacs-python/</link> <comments>http://utkarshsengar.com/2011/06/emacs-python/#comments</comments> <pubDate>Tue, 14 Jun 2011 04:46:46 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Technology]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=663</guid> <description><![CDATA[Just configured aquamacs and it&#8217;s awesome! Simple and quick. Will put up my .emacs and other details soon on github here. Stuff I am using are: 1. ECB &#8211; emacs code browser 2. emacs-for-python which includes all the goodies you need for python development! 3. Solarized dark theme, whose emacs port is here. My fav [...]]]></description> <content:encoded><![CDATA[<p>Just configured aquamacs and it&#8217;s awesome! Simple and quick. Will put up my .emacs and other details <del>soon</del> on github <a
href="https://github.com/utkarsh2012/my-dot-emacs">here</a>.</p><p>Stuff I am using are:</p><p>1. <a
href="http://ecb.sourceforge.net/">ECB &#8211; emacs code browser</a><br
/> 2. <a
href="http://gabrielelanaro.github.com/emacs-for-python/">emacs-for-python</a> which includes all the goodies you need for python development!<br
/> 3. <a
href="http://ethanschoonover.com/solarized">Solarized</a> dark theme, whose emacs port is <a
href="https://github.com/sellout/emacs-color-theme-solarized">here</a>.</p><p>My fav feature? It&#8217;s <code>M-x artist-mode</code> , see a screencast <a
href="http://www.cinsk.org/emacs/emacs-artist.html">here</a></p><p>(HOW-TO: Use mouse middle button to get options, COMMAND+click on a mac. Exit using <code>M-x artist-mode-off</code>)</p><p
style="text-align: center;"><a
href="http://i.imgur.com/fRpfd.png" rel="lightbox[663]"><img
class="aligncenter" title="emacs setup" src="http://imgur.com/fRpfd.png" alt="Click to see full image" width="682" height="426" /></a></p><p>If you are using Aquamacs, I recommend you not to use <code> ~/.emacs</code> but directly edit the file which it loads, its located here: <code>~/Library/Preferences/Aquamacs Emacs/Preferences.el</code></p><p><a
href="http://tv.uvigo.es/video/25765">The ultimate emacs course</a> &#8211; An awesome 2hr video lecture for emacs!</p> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2011/06/emacs-python/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>eBay University Hackathon 2011 &#8211; A Review</title><link>http://utkarshsengar.com/2011/05/ebay-university-hackathon-2011-a-review/</link> <comments>http://utkarshsengar.com/2011/05/ebay-university-hackathon-2011-a-review/#comments</comments> <pubDate>Tue, 31 May 2011 09:03:08 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Technology]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=617</guid> <description><![CDATA[Last week, me and 2 of my friends decided to go to the university hackathon organized by eBay. It was fun! We built a python-django based web app called BuildMyPc, a vertical shopping app, something like SparkBuy, but built using eBay data. Why? Because if you want to customize a desktop at home, there is [...]]]></description> <content:encoded><![CDATA[<p
style="text-align: left;">Last week, me and 2 of my friends <img
class="alignleft" src="http://img31.imageshack.us/img31/4218/15915132592.jpg" alt="" width="216" height="95" />decided to go to the university hackathon organized by eBay. It was fun! We built a python-django based web app called BuildMyPc, a vertical shopping app, something like <a
href="http://www.sparkbuy.com/">SparkBuy</a>, but built using eBay data.</p><p
style="text-align: left;">Why? Because if you want to customize a desktop at home, there is nothing like buying cheap parts from eBay!</p><p>And our app was judged 2nd! The first prize went to an app built with some awesome javascript + eBay API hackery.<span
id="more-617"></span></p><p>Anyway, some highlights:</p><ol><li> We were using python for the first time. Yes. This was the first time we were using python and django.</li><li> eBay API were very new to us.</li><li> We had <span
style="color: #ff0000;">14hrs</span> to build a working prototype. It was fun! Photographs of the event on <a
href="http://www.flickr.com/photos/26485568@N07/sets/72157626762401636/">Flickr</a></li><li> Something good came out of the hackathon, we are building a python wrapper for eBay API, called <a
href="https://github.com/roopeshvaddepally/python-ebay">python-ebay</a>. It&#8217;s an excuse to work more on python and help the eBay at the same time :D</li></ol><p><a
href="http://developer.ebay.com/"><img
class="aligncenter" src="http://img202.imageshack.us/img202/4342/imgdevlogo237x40.png" alt="ebay developer program" width="240" height="40" /></a></p><p><span
style="color: #ff0000;">The freebies we got were awesome</span>: Raffles every hour for iPod, Apple TVs, gaming keyboards etc (alas, I had an unlucky number :( ), <a
href="http://www.mysnuggiestore.com/">Snuggies</a> for all of us, 24hr supply of RedBull, eBay developers support through out the Hackathon, more eBay Developer Program swag like T-Shirts and stickers!</p><p>Now, coming to the <span
style="color: #ff0000;">review</span>, how was my experience? Well, it was mixed. <a
href="http://developer.ebay.com/support/docs/">eBay API documentation</a> is vast and at times, it&#8217;s an information overload.</p><p>For example, look at this <a
href="http://developer.ebay.com/DevZone/shopping/docs/CallRef/FindProducts.html">FindProducts</a> API call reference vs. Google&#8217;s <a
href="http://code.google.com/apis/customsearch/v1/overview.html">custom search</a> API call reference.</p><p>I understand, it&#8217;s like comparing apples to oranges, but keeping aside the actual functional perspective of the API, it&#8217;s not intuitive enough.</p><p>An interesting read: <a
href="http://blog.programmableweb.com/2011/05/20/what-developers-say-about-api-documentation/">What Developers Say About API Documentation</a></p><p>I am sure <a
href="http://developer.ebay.com/">eBay Developer Program</a> is working really hard to constantly improve it, keeping in mind eBay API is one of the oldest API on the internet. And as of now, we are working on <a
href="https://github.com/roopeshvaddepally/python-ebay"><span
style="color: #ff0000;">python-ebay</span></a> which hopefully should be complete by end of this month.</p><p>A screenshot of our hack:</p><p
style="text-align: center;"><img
class="aligncenter" title="build my pc - ebay hackathon" src="http://img233.imageshack.us/img233/4072/screenshot20110531at211.png" alt="" width="585" height="437" /></p> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2011/05/ebay-university-hackathon-2011-a-review/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Area42 goes live!!</title><link>http://utkarshsengar.com/2011/04/area42-goes-live/</link> <comments>http://utkarshsengar.com/2011/04/area42-goes-live/#comments</comments> <pubDate>Wed, 06 Apr 2011 08:54:49 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Technology]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=600</guid> <description><![CDATA[What is Area42? 1. Area: Taken from Area51, because its secret and very important/interesting people can be a part of it. 2. 42: We will share knowledge here. &#8220;The Answer to Life (tech), the Universe (tech) and Everything (tech)&#8221;. 3. Its uniqueness lies in less number of members == less noise. 4. All members have [...]]]></description> <content:encoded><![CDATA[<p><strong>What is Area42?</strong><br
/> 1. Area: Taken from Area51, because its secret and very important/interesting people can be a part of it.<br
/> 2. 42: We will share knowledge here. &#8220;The Answer to Life (tech), the Universe (tech) and Everything (tech)&#8221;.<br
/> 3. Its uniqueness lies in less number of members == less noise.<br
/> 4. All members have sudo rights!</p><p><strong>Where is it?</strong><br
/> Yeah right! It&#8217;s a secret!</p> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2011/04/area42-goes-live/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Event Driven Programming in Java</title><link>http://utkarshsengar.com/2011/03/event-driven-programming-in-java/</link> <comments>http://utkarshsengar.com/2011/03/event-driven-programming-in-java/#comments</comments> <pubDate>Wed, 23 Mar 2011 11:31:24 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Technology]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=587</guid> <description><![CDATA[Stumbled on this awesome 3 video playlist on Event Driven Programming in Java! Also, Node.js is one of the new event driven framework, which is freaking fast! A very good guide to understanding what is Node.js and Event driven programming in it self is very well documented here: 1. Node.js, Doctor’s Offices and Fast Food [...]]]></description> <content:encoded><![CDATA[<p>Stumbled on this awesome 3 video playlist on Event Driven Programming in Java!</p><p><object
width="480" height="385"><param
name="movie" value="http://www.youtube.com/p/9E9CD5111BD342FB?hl=en_US&#038;fs=1"></param><param
name="allowFullScreen" value="true"></param><param
name="allowscriptaccess" value="always"></param><embed
src="http://www.youtube.com/p/9E9CD5111BD342FB?hl=en_US&#038;fs=1" type="application/x-shockwave-flash" width="480" height="385" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p>Also, Node.js is one of the new event driven framework, which is freaking fast! A very good guide to understanding what is Node.js and Event driven programming in it self is very well documented here:</br><br
/> 1. <a
href="http://code.danyork.com/2011/01/25/node-js-doctors-offices-and-fast-food-restaurants-understanding-event-driven-programming/">Node.js, Doctor’s Offices and Fast Food Restaurants – Understanding Event-driven Programming</a></p><p>2. <a
href="http://docs.google.com/viewer?a=v&#038;q=cache:HSgLcBBnWm8J:bamboo-dht.org/async-tutorial/async-tutorial.pdf+java+event+driven+programming&#038;hl=en&#038;gl=us&#038;pid=bl&#038;srcid=ADGEESiiOMhw09L7xuZ-PIt9dLWvMFVt_d_zRy2dx8E8atmMT1F1FuQczqQJ7t7_xcoqLJilESWH3NfEPnRNSocgo9HOkxIMH6gCAJDFMNuiWwIqt_h453_yUVU2uJNKHceYAEpkppGj&#038;sig=AHIEtbSc1LJBAhL2pte9Dp0_gGJP4h7Cow">A Programmer’s Tutorial on Event-Driven Programming, Asynchronous Input/Output, and the Bamboo DHT</a></p> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2011/03/event-driven-programming-in-java/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[Analysis] Your favourite text editor/IDE?</title><link>http://utkarshsengar.com/2011/03/analysis-your-favourite-text-editoride/</link> <comments>http://utkarshsengar.com/2011/03/analysis-your-favourite-text-editoride/#comments</comments> <pubDate>Tue, 22 Mar 2011 10:46:12 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Technology]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=547</guid> <description><![CDATA[Just out of curiosity, I created this poll about the text editors and IDEs used by the awesome HackerNews community. I posted it on HackerNews and got 3005 responses. If you are interested in seeing the excel sheet, you can look it up here (it would be interesting if some one can mine this data [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft" title="XKCD" src="http://img151.imageshack.us/img151/8611/xkcdq.jpg" alt="" width="100" height="121" />Just out of curiosity, I created <a
href="https://spreadsheets.google.com/viewform?hl=en&amp;formkey=dHhwMm9jS1l6RTh4Q3RBZU1GRWE1R0E6MQ#gid=0">this</a> poll about the text editors and IDEs used by the awesome HackerNews community. I posted it on <a
href="http://news.ycombinator.com/item?id=2348898">HackerNews</a> and got 3005 responses. If you are interested in seeing the excel sheet, you can look it up <a
href="https://spreadsheets.google.com/ccc?key=0An4bm34gQOpddFY0NEZac1dxU3FOWWlqTThRQUEwVlE&amp;hl=en">here</a> (it would be interesting if some one can mine this data to get more relevant and useful information).</p><p>Anyway, time for some results!!<br
/> <span
id="more-547"></span></p><h3><strong>Update: You can view the most recent results <a
href="https://spreadsheets.google.com/viewanalytics?formkey=dHhwMm9jS1l6RTh4Q3RBZU1GRWE1R0E6MQ">here</a></strong></h3><p></br><br
/> </br></p><h2>1. What text editor do you use?</h2><p><img
class="alignleft" title="Text Editor Charting" src="http://utkarshsengar.com/wp-content/uploads/chart_editor.png" alt="" width="345" height="390" /></p><table
id="table#0"><tbody><tr><td>VIM</td><td></td><td>1304</td><td>48%</td></tr><tr><td>EMACS</td><td></td><td>561</td><td>21%</td></tr><tr><td>gEdit</td><td></td><td>292</td><td>11%</td></tr><tr><td>Geany</td><td></td><td>62</td><td>2%</td></tr><tr><td>jEdit</td><td></td><td>45</td><td>2%</td></tr><tr><td>Kate</td><td></td><td>52</td><td>2%</td></tr><tr><td>Bluefish</td><td></td><td>12</td><td>0%</td></tr><tr><td>Notepad++</td><td></td><td>654</td><td>24%</td></tr><tr><td>Textpad</td><td></td><td>75</td><td>3%</td></tr><tr><td>UltraEdit</td><td></td><td>51</td><td>2%</td></tr><tr><td>Coda</td><td></td><td>73</td><td>3%</td></tr><tr><td>TextMate</td><td></td><td>497</td><td>18%</td></tr></tbody></table><p></br><br
/> </br><br
/> </br><br
/> Others:</p><p>Kod BBEdit Sublime Text 2 eclipse Sublime Text sublime text redcar AkelPad BBEdi tNotepad2 EditPlus sublime text nano Redcar Sublime Text TextWrangler Sublime Text Scite Komodo EditPhpED sublimetext Sublime Editor 2 nano</p><h2>2. What is your Favorite IDE?</h2><p><img
class="alignleft" title="IDE Charting" src="http://utkarshsengar.com/wp-content/uploads/char_IDE.png" alt="" width="345" height="390" /></p><table
id="table#2"><tbody><tr><td>Embarcadero Delphi</td><td></td><td>16</td><td>1%</td></tr><tr><td>Netbeans</td><td></td><td>334</td><td>16%</td></tr><tr><td>Eclipse</td><td></td><td>877</td><td>43%</td></tr><tr><td>Mono Develop</td><td></td><td>27</td><td>1%</td></tr><tr><td>Visual Studio</td><td></td><td>528</td><td>26%</td></tr><tr><td>KDevelop</td><td></td><td>32</td><td>2%</td></tr><tr><td>Code::Blocks</td><td></td><td>46</td><td>2%</td></tr><tr><td>IntelliJ&#8217;s IDEA</td><td></td><td>228</td><td>11%</td></tr><tr><td>Komodo IDE</td><td></td><td>83</td><td>4%</td></tr><tr><td>Aptana Studio</td><td></td><td>83</td><td>4%</td></tr><tr><td>ActivePython</td><td></td><td>9</td><td>0%</td></tr><tr><td>XCode</td><td></td><td>356</td><td>17%</td></tr></tbody></table><p></br><br
/> </br><br
/> </br></p><div>Others:</div><div>zend studio 5 vim emacs Emacs Rubymine Emacs None EMACS EMACS Redcar Coda emacs none emacs Vim PhpED Emacs vim+plugins EMACS EMACS PharoWing IDE Qt Creators pyder Vim Cloud9IDE UNIX emacs vim wing Sublime Text EMACS vim QT Creator</div><p>&nbsp;</p><h2>3. What programming language(s) do you use?</h2><p><img
class="alignleft" title="Language Charting" src="http://utkarshsengar.com/wp-content/uploads/chart_lang.png" alt="" width="345" height="450" /></p><table
id="table#5"><tbody><tr><td>Java</td><td></td><td>883</td><td>31%</td></tr><tr><td>C#</td><td></td><td>451</td><td>16%</td></tr><tr><td>Ruby</td><td></td><td>698</td><td>25%</td></tr><tr><td>Python</td><td></td><td>1261</td><td>44%</td></tr><tr><td>C/C++</td><td></td><td>933</td><td>33%</td></tr><tr><td>Erlang</td><td></td><td>102</td><td>4%</td></tr><tr><td>Haskell</td><td></td><td>200</td><td>7%</td></tr><tr><td>Lisp</td><td></td><td>338</td><td>12%</td></tr><tr><td>HTML/CSS</td><td></td><td>987</td><td>35%</td></tr><tr><td>Javascript</td><td></td><td>1156</td><td>41%</td></tr><tr><td>Assembly</td><td></td><td>89</td><td>3%</td></tr><tr><td>Perl</td><td></td><td>239</td><td>8%</td></tr><tr><td>Objective-C</td><td></td><td>267</td><td>9%</td></tr><tr><td>PHP</td><td></td><td>292</td><td>10%</td></tr></tbody></table><p></br><br
/> </br><br
/> </br></p><div>Others:</div><div><div
id="textSummary#6" dir="ltr">Scala Tcl scala Clojure C Scala Ocaml F# Scala FORTH Go Malbolge Lua clojure scheme, vala, ocaml Pascal F# F# scala ColdFusion ActionScript Clojure Lua Bash Scala scala Fortran Smalltalk Scala</div></div><p>PS: People may select more than one checkbox, so percentages may add up to more than 100%. Also, I committed a monumental mistake of not including PHP in the list. So, the Google excel sheet I have shared is a formatted one, which also includes PHP in the charting. The original excel sheet can be found <a
href="https://spreadsheets.google.com/ccc?key=0An4bm34gQOpddHhwMm9jS1l6RTh4Q3RBZU1GRWE1R0E&amp;hl=en#gid=0">here</a>.</p><p>&nbsp;</p><p>XKCD <a
href="http://carlos.bueno.org/images/xkcd.jpg" rel="lightbox[547]">Image</a> credit: <a
href="http://carlos.bueno.org/2009/11/dismal-guide-to-dns.html">carlos.bueno.org</a></p> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2011/03/analysis-your-favourite-text-editoride/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>New Home for Vyuudha &#8211; A distributed store</title><link>http://utkarshsengar.com/2011/03/new-home-for-vyuudha-a-distributed-store/</link> <comments>http://utkarshsengar.com/2011/03/new-home-for-vyuudha-a-distributed-store/#comments</comments> <pubDate>Mon, 21 Mar 2011 09:45:53 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Technology]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=545</guid> <description><![CDATA[We have moved to SJSU-CMPE&#8216;s organization repo on GitHub! Vyuudha is hosted here What is Vyuudha? Vyuudha &#8211; A clean room implementation of a distributed storage middleware for education and research.]]></description> <content:encoded><![CDATA[<p>We have moved to <a
href="https://github.com/sjsu-cmpe">SJSU-CMPE</a>&#8216;s organization repo on GitHub! Vyuudha is hosted <a
href="https://github.com/sjsu-cmpe/vyuudha">here</a></p><p>What is Vyuudha?<br
/> Vyuudha &#8211; A clean room implementation of a distributed storage middleware for education and research.</p> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2011/03/new-home-for-vyuudha-a-distributed-store/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Manage multiple Linux Users on 1 Amazon EC2 Instance</title><link>http://utkarshsengar.com/2011/01/manage-multiple-accounts-on-1-amazon-ec2-instance/</link> <comments>http://utkarshsengar.com/2011/01/manage-multiple-accounts-on-1-amazon-ec2-instance/#comments</comments> <pubDate>Thu, 06 Jan 2011 19:11:59 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Technology]]></category> <category><![CDATA[amazon]]></category> <category><![CDATA[ec2]]></category> <category><![CDATA[user-management]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=480</guid> <description><![CDATA[In an organization of say 5, some times you need to give many people access to the same EC2 Instance. Sharing the private key and the password b/w 5 users is definitely not a good idea! So, how do you fix this problem? You create multiple accounts on the Linux EC2 instance and generate keys [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft" title="AWS" src="http://img689.imageshack.us/img689/8533/awslogocmyk.jpg" alt="" width="248" height="90" />In an organization of say 5, some times you need to give many people access to the same EC2 Instance. <span
style="text-decoration: underline;">Sharing the private key and the password b/w 5 users is definitely not a good idea</span>!</p><p>So, how do you fix this problem? You create multiple accounts on the Linux EC2 instance and generate keys for every individual accounts, here is how you do it:<br
/> <span
id="more-480"></span></p><h2>Step 0. Login by default user, &#8220;ec2-user&#8221;:</h2><div
class="wp_codebox"><table><tr
id="p48015"><td
class="line_numbers"><pre>1
</pre></td><td
class="code" id="p480code15"><pre class="bash" style="font-family:monospace;">static-<span style="color: #000000;">9</span>:ec2_thelostlogbook utkarsh$ <span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-i</span> my_key.pem ec2-user<span style="color: #000000; font-weight: bold;">@</span>111.111.11.111</pre></td></tr></table></div><h2>Step 1. Create a new user, we will call our new user &#8220;john&#8221;:</h2><div
class="wp_codebox"><table><tr
id="p48016"><td
class="line_numbers"><pre>1
</pre></td><td
class="code" id="p480code16"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>ec2-user<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> adduser john</pre></td></tr></table></div><p>Set password for &#8220;john&#8221; by:</p><div
class="wp_codebox"><table><tr
id="p48017"><td
class="line_numbers"><pre>1
2
</pre></td><td
class="code" id="p480code17"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>ec2-user<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">su</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ec2-user<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">passwd</span> john</pre></td></tr></table></div><p>Add &#8220;john&#8221; to sudoer&#8217;s list by:</p><div
class="wp_codebox"><table><tr
id="p48018"><td
class="line_numbers"><pre>1
</pre></td><td
class="code" id="p480code18"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ec2-user<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ visudo</pre></td></tr></table></div><p>and add this to the last line:</p><div
class="wp_codebox"><table><tr
id="p48019"><td
class="line_numbers"><pre>1
</pre></td><td
class="code" id="p480code19"><pre class="bash" style="font-family:monospace;">john   ALL = <span style="color: #7a0874; font-weight: bold;">&#40;</span>ALL<span style="color: #7a0874; font-weight: bold;">&#41;</span>    ALL</pre></td></tr></table></div><p>Alright! We have our new user created, now you need to generate the key file which will be needed to login, like we have my_key.pem in Step 0.</p><p>Now, exit and go back to ec2-user, out of root.</p><h2>Step 2. Creating the public and private keys:</h2><div
class="wp_codebox"><table><tr
id="p48020"><td
class="line_numbers"><pre>1
</pre></td><td
class="code" id="p480code20"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>ec2-user<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">su</span> john</pre></td></tr></table></div><p>Enter the password you created for &#8220;john&#8221; in Step 1.</p><div
class="wp_codebox"><table><tr
id="p48021"><td
class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td
class="code" id="p480code21"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ec2-user<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>john<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">ssh-keygen</span> <span style="color: #660033;">-b</span> <span style="color: #000000;">1024</span> <span style="color: #660033;">-f</span> john <span style="color: #660033;">-t</span> dsa
<span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> .ssh
<span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">700</span> .ssh
<span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">cat</span> john.pub <span style="color: #000000; font-weight: bold;">&gt;</span> .ssh<span style="color: #000000; font-weight: bold;">/</span>authorized_keys
<span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">600</span> .ssh<span style="color: #000000; font-weight: bold;">/</span>authorized_keys
<span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chown</span> john:ec2-user .ssh</pre></td></tr></table></div><p>In the above step, john is the user we created and ec2-user is the default user group.</p><div
class="wp_codebox"><table><tr
id="p48022"><td
class="line_numbers"><pre>1
</pre></td><td
class="code" id="p480code22"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chown</span> john:ec2-user .ssh<span style="color: #000000; font-weight: bold;">/</span>authorized_keys</pre></td></tr></table></div><h2>Step 3. Now you just need to download the key called &#8220;john&#8221;</h2><p>I use <a
href="http://www.hypexr.org/linux_scp_help.php">scp</a> to download/upload files from EC2, here is how you can do it:</p><p>You will still need to copy the file using ec2-user, since you only have the key for that user name. So, you will need to move the key to ec2-user folder and chmod it to 777.</p><div
class="wp_codebox"><table><tr
id="p48023"><td
class="line_numbers"><pre>1
2
</pre></td><td
class="code" id="p480code23"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> john <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>ec2-user<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>john<span style="color: #000000; font-weight: bold;">@</span>ip-<span style="color: #000000;">11</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span>-<span style="color: #000000;">111</span> ~<span style="color: #7a0874; font-weight: bold;">&#93;</span>$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">777</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>ec2-user<span style="color: #000000; font-weight: bold;">/</span>john</pre></td></tr></table></div><p>Now come to local machine&#8217;s terminal, where you have my_key.pem file and do this:</p><div
class="wp_codebox"><table><tr
id="p48024"><td
class="line_numbers"><pre>1
</pre></td><td
class="code" id="p480code24"><pre class="bash" style="font-family:monospace;">static-<span style="color: #000000;">9</span>:ec2_thelostlogbook utkarsh$ <span style="color: #c20cb9; font-weight: bold;">scp</span> <span style="color: #660033;">-i</span> my_key.pem ec2-user<span style="color: #000000; font-weight: bold;">@</span>111.111.11.111:<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>ec2-user<span style="color: #000000; font-weight: bold;">/</span>john john</pre></td></tr></table></div><p>The above command will copy the key &#8220;john&#8221; to the present working directory on your local machine. Once you have copied the key to your local machine, you should delete &#8220;/home/ec2-user/john&#8221;, since it&#8217;s a private key.</p><p>Now, one your local machine chmod john to 600.</p><div
class="wp_codebox"><table><tr
id="p48025"><td
class="line_numbers"><pre>1
</pre></td><td
class="code" id="p480code25"><pre class="bash" style="font-family:monospace;">static-<span style="color: #000000;">9</span>:ec2_thelostlogbook utkarsh$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">600</span> john</pre></td></tr></table></div><h2>Step 4. Time to test your key:</h2><div
class="wp_codebox"><table><tr
id="p48026"><td
class="line_numbers"><pre>1
</pre></td><td
class="code" id="p480code26"><pre class="bash" style="font-family:monospace;">static-<span style="color: #000000;">9</span>:ec2_thelostlogbook utkarsh$ <span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-i</span> john john<span style="color: #000000; font-weight: bold;">@</span>111.111.11.111</pre></td></tr></table></div><p>So, in this manner, you can setup multiple users to use one EC2 instance!!</p><p>PS: Please post your comments if you find any error.</p> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2011/01/manage-multiple-accounts-on-1-amazon-ec2-instance/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Technological Innovation in Education</title><link>http://utkarshsengar.com/2010/12/technology-innovation-in-education/</link> <comments>http://utkarshsengar.com/2010/12/technology-innovation-in-education/#comments</comments> <pubDate>Mon, 20 Dec 2010 00:40:21 +0000</pubDate> <dc:creator>Utkarsh</dc:creator> <category><![CDATA[Random]]></category> <category><![CDATA[Technology]]></category> <category><![CDATA[education]]></category> <guid
isPermaLink="false">http://utkarshsengar.com/?p=472</guid> <description><![CDATA[What is holding us back to improve education and make it more reachable? Education is one of the most important pillars for development of a society. We see technology innovation in all the domains but very less to truly revolutionize the education sector. I read this thread on HackerNews: Ask HN: Why is there so [...]]]></description> <content:encoded><![CDATA[<p><img
class="alignleft" src="http://img406.imageshack.us/img406/4718/educationh.jpg" alt="education" width="159" height="230" />What is holding us back to improve education and make it more reachable?</p><p>Education is one of the most important pillars for development of a society. We see technology innovation in all the domains but very less to truly revolutionize the education sector.</p><p>I read this thread on HackerNews:<a
href="http://news.ycombinator.com/item?id=2011805"> Ask HN: Why is there so little innovation in education?</a></p><p><span
id="more-472"></span><strong>Update:</strong> Rest in peace Mr. Jobs and <a
href="utkarshsengar.com/2011/10/thank-you-mr-jobs/">Thank you</a>, also read <a
href="http://blog.learnboost.com/blog/steve-jobs-on-education/">Steve Jobs – On Education</a><br
/> The best answer was Steve Jobs quote taken from <a
href="http://www.wired.com/wired/archive/4.02/jobs_pr.html">Wired.com</a>:</p><blockquote><p>&#8220;I used to think that technology could help education. I&#8217;ve probably spearheaded giving away more computer equipment to schools than anybody else on the planet. But I&#8217;ve had to come to the inevitable conclusion that the problem is not one that technology can hope to solve. What&#8217;s wrong with education cannot be fixed with technology. No amount of technology will make a dent.</p><p><span
style="text-decoration: underline;">It&#8217;s a political problem</span>. The problems are sociopolitical. The problems are unions. You plot the growth of the NEA [National Education Association] and the dropping of SAT scores, and they&#8217;re inversely proportional. The problems are unions in the schools. The problem is bureaucracy. I&#8217;m one of these people who believes the best thing we could ever do is go to the full voucher system.</p><p>I have a 17-year-old daughter who went to a private school for a few years before high school. This private school is the best school I&#8217;ve seen in my life. It was judged one of the 100 best schools in America. It was phenomenal. The tuition was $5,500 a year, which is a lot of money for most parents. But the teachers were paid less than public school teachers &#8211; so it&#8217;s not about money at the teacher level. I asked the state treasurer that year what California pays on average to send kids to school, and I believe it was $4,400. While there are not many parents who could come up with $5,500 a year, there are many who could come up with $1,000 a year.</p><p>If we gave vouchers to parents for $4,400 a year, schools would be starting right and left. People would get out of college and say, &#8220;Let&#8217;s start a school.&#8221; You could have a track at Stanford within the MBA program on how to be the businessperson of a school. And that MBA would get together with somebody else, and they&#8217;d start schools. And you&#8217;d have these young, idealistic people starting schools, working for pennies.</p><p>They&#8217;d do it because they&#8217;d be able to set the curriculum. When you have kids you think, What exactly do I want them to learn? Most of the stuff they study in school is completely useless. But some incredibly valuable things you don&#8217;t learn until you&#8217;re older &#8211; yet you could learn them when you&#8217;re younger. And you start to think, What would I do if I set a curriculum for a school?</p><p>God, how exciting that could be! But you can&#8217;t do it today. You&#8217;d be crazy to work in a school today. You don&#8217;t get to do what you want. You don&#8217;t get to pick your books, your curriculum. You get to teach one narrow specialization. Who would ever want to do that?</p><p>These are the solutions to our problems in education. Unfortunately, technology isn&#8217;t it. You&#8217;re not going to solve the problems by putting all knowledge onto CD-ROMs. We can put a Web site in every school &#8211; none of this is bad. It&#8217;s bad only if it lulls us into thinking we&#8217;re doing something to solve the problem with education.</p><p>Lincoln did not have a Web site at the log cabin where his parents home-schooled him, and he turned out pretty interesting. Historical precedent shows that we can turn out amazing human beings without technology. Precedent also shows that we can turn out very uninteresting human beings with technology.</p><p>It&#8217;s not as simple as you think when you&#8217;re in your 20s &#8211; that technology&#8217;s going to change the world. In some ways it will, in some ways it won&#8217;t.&#8221;</p></blockquote> ]]></content:encoded> <wfw:commentRss>http://utkarshsengar.com/2010/12/technology-innovation-in-education/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
