<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Chandan Kumar]]></title>
  <link href="http://chandankumar.com/atom.xml" rel="self"/>
  <link href="http://chandankumar.com/"/>
  <updated>2013-02-10T03:18:29+05:30</updated>
  <id>http://chandankumar.com/</id>
  <author>
    <name><![CDATA[Chandan Kumar]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Android Apps]]></title>
    <link href="http://chandankumar.com/blog/2013/02/10/android-apps/"/>
    <updated>2013-02-10T02:00:00+05:30</updated>
    <id>http://chandankumar.com/blog/2013/02/10/android-apps</id>
    <content type="html"><![CDATA[<p>Some handy apps and tricks on Google Android</p>

<h3>Music</h3>

<p>Google Music - On desktop go to <a href="http://music.google.com">Google Music</a> website. You will have to signup with your account for the first time, if you haven&#8217;t already. To upload music, you will have to download and install <em>music manager</em> on your system. Once music manager is installed show it the folder from where you want to upload your mp3 files. This activity could be a long process depending on how many files and size of the data to be uploaded. Please note that this will consume a lot of bandwidth in case you have a lot of songs to upload.</p>

<!-- More -->


<p>On Android you can access the app &#8220;Play Music&#8221;. You can find help at <a href="http://support.google.com/googleplay/bin/answer.py?hl=en&amp;answer=1291788">Google support</a></p>

<h3>Photo Editing</h3>

<p><a href="https://play.google.com/store/apps/details?id=com.niksoftware.snapseed">Snapseed</a> - Very powerful image editor, in case you consider Instagram and image editor, this one is a grand daddy.</p>

<h3>Contact Syncing</h3>

<p><a href="https://play.google.com/store/apps/details?id=ro.weednet.contactssync">Contact sync for facebook</a> In case your phone does not sync concats from Facebook, this one does the job for you.</p>

<h3>SMS Backup</h3>

<p><a href="https://play.google.com/store/apps/details?id=com.zegoggles.smssync&amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS56ZWdvZ2dsZXMuc21zc3luYyJd">SMS Backup+</a> This little app is very handy to backup your SMS to your email account. You can set it up with your Google account, this guy will take care of syncing it to your email account. In case you need some info from SMS on other device, you know where to find it.</p>

<p>Some other things</p>

<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.metago.astro">Astro file manager</a> File browser for you phone.</li>
<li><a href="https://play.google.com/store/apps/details?id=com.sand.airdroid">Airdroid</a> AirDroid is a fast, free app that lets you wirelessly manage your Android from your favorite browser. Basically lets you control your device from your desktop and sync/transfer files over wi fi.</li>
<li><a href="https://play.google.com/store/apps/details?id=com.anydo">Any.do</a> A simple TODO application, you can sync your account from multiple device. You can sign in with your facebook account. Install plugin on chrome browser on desktop/laptop or any other device.</li>
<li><a href="https://play.google.com/store/apps/details?id=com.android.chrome">Chrome</a> Best web browser for me, syncs up browser settings between multiple devices if you sign in to the browser.</li>
<li><a href="https://play.google.com/store/apps/details?id=com.melodis.midomiMusicIdentifier.freemium">Soundhound</a> Music recoginition.</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Using Omniauth with Sinatra]]></title>
    <link href="http://chandankumar.com/blog/2013/01/07/using-omniauth-with-sinatra/"/>
    <updated>2013-01-07T19:30:00+05:30</updated>
    <id>http://chandankumar.com/blog/2013/01/07/using-omniauth-with-sinatra</id>
    <content type="html"><![CDATA[<p>Getting started with Sinatra and OmniAuth.</p>

<p>A brief note and tutorial about OmniAuth. How to use it in conjunction with Sinatra.</p>

<p><a href="http://railscasts.com/episodes/304-omniauth-identity?view=comments">Railcast</a> on Omniauth</p>

<p>A little sinatra app on <a href="https://github.com/ch4nd4n/sinatra_omniauth_demo">Omniauth</a></p>

<p>To be continued</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Compare point and shoot and Mirrorless Camera]]></title>
    <link href="http://chandankumar.com/blog/2012/11/22/compare-point-and-shoot-and-mirrorless-camera/"/>
    <updated>2012-11-22T03:47:00+05:30</updated>
    <id>http://chandankumar.com/blog/2012/11/22/compare-point-and-shoot-and-mirrorless-camera</id>
    <content type="html"><![CDATA[<p>I plan to buy a secondary camera thats easier to carry around. At the moment this post is for my reference. Just in case, if this note helps anyone else in deciding what they would want to buy. I am comparing compact cameras which fit my need. Primarily a sub $400 camera as on date. This note might not be relevant at all in future date.</p>

<p>I have this question on <a href="http://photo.stackexchange.com/questions/29872/secondary-compact-mirrorless-or-point-and-shoot-camera">stackexchange</a>. You can find opinion of other folks there.</p>

<p>List of cameras so far</p>

<h3>Compact P&amp;S</h3>

<p><a href="http://www.amazon.com/Sony-Cyber-shot-DSC-HX20V-Digital-3-0-inch/dp/B006K551WQ/ref=sr_1_16?s=photo&amp;ie=UTF8&amp;qid=1353532132&amp;sr=1-16&amp;keywords=point+and+shoot+camera">Sony Cyber-shot DSC-HX20V</a> Price $328.00</p>

<!-- More -->


<p><a href="http://www.flipkart.com/sony-cybershot-dsc-hx10v-point-shoot/p/itmd8xrphr4xrzzg?pid=CAMD8XRZQNSVDH8Y&amp;ref=1cf9ec75-0db7-4467-aac8-044b5b99a0e1&amp;srno=m_1_1&amp;otracker=from-search">Flipkart DSC-HX10V</a> Rs. 16600</p>

<h4>Canon PowerShot SX260 HS 12.1</h4>

<p><a href="http://www.amazon.com/Canon-PowerShot-Digital-Stabilized-Wide-Angle/dp/B0075SUKBO/ref=sr_1_13?s=photo&amp;ie=UTF8&amp;qid=1353532132&amp;sr=1-13&amp;keywords=point+and+shoot+camera">Amazon</a> Price $230/12650</p>

<p><a href="http://www.dpreview.com/reviews/canon-powershot-sx260-hs">DPreview</a></p>

<p><a href="http://www.flickr.com/cameras/canon/powershot_sx260_hs/">Flickr</a></p>

<p><a href="http://www.flipkart.com/canon-powershot-sx260-hs-point-shoot/p/itmd8yvyq2u2hzw3?pid=CAMD8YVYBV5B6K6E&amp;ref=25a8899c-6dab-4aa3-ac9b-e72a4779af2a&amp;srno=s_2&amp;otracker=from-search">On flipkart</a> Price Rs. 18425</p>

<h3>Mirrorless below</h3>

<h4>Olympus E-PM1</h4>

<p><a href="http://www.amazon.com/Olympus-12-3MP-Interchangeable-Camera-14-42mm/dp/B005JRIJWA/ref=wl_it_dp_o_pC_S_nC?ie=UTF8&amp;colid=1XXFI786IDYEB&amp;coliid=ID5HL8GEJ56ZD">Amazon</a> Price $399 Looks like price changed in last few hours, the first time checked the price was $349</p>

<p><a href="http://www.flipkart.com/olympus-pen-mini-e-pm1-mirrorless/p/itmd4pcynjjngv3n?pid=CAMD4PBJZSJEVZZT&amp;ref=d20a469f-8bcc-4353-a022-b0d6a90f84bb">Flipkart</a> Price - Rs 24000</p>

<p><a href="http://www.dpreview.com/reviews/olympusepm1">Review</a></p>

<p><a href="http://www.flickr.com/cameras/olympus/e-pm1/">Flickr</a></p>

<h4>Olympus E-PL2</h4>

<p>Looks like best value for money. Even dpreview has appreciated this model for this price range, but this isn&#8217;t the latest model</p>

<p><a href="http://www.amazon.com/Olympus-Thirds-Interchangeable-Digital-14-42mm/dp/B004HO59M4/ref=sr_1_36?s=photo&amp;ie=UTF8&amp;qid=1353525659&amp;sr=1-36">Amazon</a> Price - $320</p>

<p><a href="http://www.dpreview.com/reviews/olympusepl2">dpreview</a></p>

<p><a href="http://www.flickr.com/cameras/olympus/e-pl2/">flickr</a></p>

<p><a href="http://www.flickr.com/photos/sunday8pm/8171419400/in/photostream/">Some additional photos</a></p>

<h4>Olympus E-pl1</h4>

<p><strong>At the moment this is my choice for given requirement</strong></p>

<p>This is not the latest model still look good value for money.</p>

<p><a href="http://www.flickr.com/cameras/olympus/e-pl1/">Images on flickr</a></p>

<p><a href="http://www.amazon.com/Olympus-E-PL1-Interchangeable-Digital-Black/dp/B0035LBRJO/ref=sr_1_2?s=electronics&amp;ie=UTF8&amp;qid=1353568795&amp;sr=1-2&amp;keywords=Olympus+EP-L1">Amazon</a> Price $290</p>

<p><a href="http://www.flipkart.com/olympus-e-pl1-mirrorless/p/itmczagkzgy6vzmy?pid=CAMD2PSZXHYRR5J7&amp;ref=43a783db-b3d7-4a35-a9e7-d1929f9866ff&amp;srno=m_1_1&amp;otracker=from-search">Flipkart</a> Unavailable.</p>

<h4>Nikon 1 J1</h4>

<p><a href="http://www.dpreview.com/reviews/nikonv1j1/">Key difference between V1 and J1</a></p>

<p><a href="http://www.amazon.com/Nikon-Digital-Camera-System-10-30mm/dp/B005OGQXJW/ref=cm_cmu_pg__header#productPromotions">On Amazon</a> Price $397</p>

<p><a href="http://www.flickr.com/cameras/nikon/1_j1/">Flickr Link</a> to view photos taken</p>

<p>Some interesting <a href="http://www.flickr.com/photos/23219303@N03/8179271478/">Photos taken by camera</a></p>

<p><a href="http://www.flipkart.com/nikon-1-j1-mirrorless/p/itmd7bpyyhbk2wzd?pid=CAMD7CPPZYTTGYDG&amp;ref=68043b7a-aa11-4bbb-adb0-8c382653a6f1&amp;srno=s_2&amp;otracker=from-search">Flipkart</a> Price Rs. 24002</p>

<h4>Camera Nikon 1 V1</h4>

<p><a href="http://www.flipkart.com/nikon-1-j1-mirrorless/p/itmd7bpyyhbk2wzd?pid=CAMD7CPPZYTTGYDG&amp;ref=68043b7a-aa11-4bbb-adb0-8c382653a6f1&amp;srno=s_2&amp;otracker=from-search">On Amazon</a> Price $399</p>

<p><a href="http://www.flipkart.com/nikon-1-j1-mirrorless/p/itmd7bpyyhbk2wzd?pid=CAMD7CPPZYTTGYDG&amp;ref=68043b7a-aa11-4bbb-adb0-8c382653a6f1&amp;srno=s_2&amp;otracker=from-search">Flipkart</a> Price Rs. 37782</p>

<p>Flickr Link to <a href="http://www.flickr.com/cameras/nikon/1_v1/">view photos</a></p>

<p>Some <a href="http://www.flickr.com/photos/botimage/6992430840/in/photostream/">interesting photos</a> on flickr</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Seriously Google? Android 4.2 feature or bug]]></title>
    <link href="http://chandankumar.com/blog/2012/11/19/seriously-google-android-4-dot-2-feature-or-bug/"/>
    <updated>2012-11-19T23:45:00+05:30</updated>
    <id>http://chandankumar.com/blog/2012/11/19/seriously-google-android-4-dot-2-feature-or-bug</id>
    <content type="html"><![CDATA[<p>Two bugs to begin with, Android 4.2 Calendar month December goes missing, second, Google App domain renewal in 2012 happens in the past.</p>

<p><img class="left" src="https://lh3.googleusercontent.com/-Wx14O_DIUEs/UKpBxJIwXxI/AAAAAAAAFO4/oeBxpppjj1s/s512/Screenshot_2012-11-19-19-54-03.png" title="Calendar Control Screen Shot on Android 4.2" > <img class="right" src="https://lh5.googleusercontent.com/-yzmR_ioRvDY/UKpBpYOBUkI/AAAAAAAAFO0/_aq4aD4RSSY/s512/Screenshot_2012-11-19-19-55-47.png"></p>

<p>I got to know about the Google calendar bug from <a href="https://twitter.com/miuirom/status/270369254522621952">this tweet</a>. Tweet elaborates how month of December is missing in calendar widget on the phone. Initially I simply dismissed it. Nah, would not happen, its GOOGLE after all. N of all the things on my mobile? Quite not possible. Well I changed my mind; well why not give it a shot. Next thing that I know is that What? What the Fuck!?!? Really Google? A grin and move on to chore. By the way if you have upgraded to 4.2 JB, try it yourself. You cant add birthday for month of December for your contacts at all on the phone.</p>

<p>Now the second part. Around evening I get a notification for domain renewal. I thought, well, I don&#8217;t want to lose my domain like my friend did other day for being lazy. Let me rather renew it right away. $10 does not hurt my situation this month. Then goes some clicks and ticks. All set. Then comes the second WTF from Google. The email screen shot above. Trust me I got this email from Google, confirming that my domain has been renewed, but guess what? It&#8217;s renewed and valid till December 15, 2010.</p>

<p>What do I conclude of this!</p>

<p>BTW if this was not enough, there was another jolt from Ebay. I asked my friend to buy me something from Ebay UK. Order placed, payment made, delivery date set. Receives confirmation email. All set. Just that he does not get the delivery (on date). Ok lets check EBay regarding status. Tries to login, invalid password. Tries to retrieve userid, invalid user id. Tries to retrieve password, invalid email. Tries to register with the same email and user id. Ebay says already register. Ah&#8230; now its time to waste some time on customer support.</p>

<p>Will update later on Ebay story.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Install Android 4.2 on Galaxy Nexus]]></title>
    <link href="http://chandankumar.com/blog/2012/11/14/install-android-4-dot-2-on-galaxy-nexus/"/>
    <updated>2012-11-14T12:03:00+05:30</updated>
    <id>http://chandankumar.com/blog/2012/11/14/install-android-4-dot-2-on-galaxy-nexus</id>
    <content type="html"><![CDATA[<p>Android 4.2 is out for couple of days now. Yesterday morning I got OTA notification to upgrade it on my Galaxy Nexus GSM.
As excited I could be, I went for it, mobile rebooted to recovery mode. After a bit of cranking and all, boom! it failed
to update the system with some error  message. I was like WTF! I rebooted the phone and I was anticipating that it
would have some how installed 4.2 Alas, no that was not the case. I tried OTA couple of times  again but in vain.
So resorted to Google and found that OTA packages are available to download. Followed the article on slashgear and XDA forum.
All that failed I kept on getting error message <code>assert failed : apply_patch_check ("/system/build.prop"</code> something
like that.
I tried something new this time, I decided to install factory image. List of factory images for nexus device is found
at <a href="https://developers.google.com/android/nexus/images">Google Nexus site</a> I went for <a href="https://developers.google.com/android/nexus/images#takjujop40c">4.2 (JOP40C)</a>. Yes this is a 261+ MB in size.</p>

<p>In short, if you follow the steps given below you should be able to update your GNex to 4.2 without rooting it or OEM unlock. You don&#8217;t even need to install CWM (clockworkmod) etc.</p>

<p><img src="https://lh4.googleusercontent.com/-Hat4ZS53se4/UKNEqWVv3BI/AAAAAAAAFFA/JfZwOrN1PLM/s512/Screenshot_2012-11-14-11-01-15.png" alt="Screen Shot" /></p>

<!-- more -->


<h3>Prerequisite</h3>

<p>I am using ubuntu 12.04 with android SDK installed. Which implies you would have <code>adb</code> and <code>fastboot</code> available.
You can check for that in platform-tools folder in your android sdk path. On Ubuntu I suppose you don&#8217;t need to install
any sort of device drivers.</p>

<p>These steps may work on Windows as well, although with minor modification, you should have device drivers, <code>adb</code> and <code>fastboot</code> installed. Note that <code>tz</code> file has <code>.bat</code> file. So I assume if you have adb and fastboot in System <code>Path</code>. All you need to do is run <code>flash-all.bat</code> from <code>cmd</code> prompt.</p>

<h3>Steps Involved</h3>

<p><strong>Please note that these steps would wipe out all the data from your phone. Consider taking a backup of data. This may even brick your phone.</strong></p>

<ul>
<li>Unzip content of <code>takju-jop40c-factory-1a47c890.tgz</code></li>
<li>boot your phone to bootloader</li>
<li>install bootloader</li>
<li>reboot to bootloader</li>
<li>flash takju image to phone</li>
</ul>


<p>Essentially above steps are in <code>flash-all.sh</code> file. <code>flash-all.sh</code> did not work for me because for some reason <code>fastboot</code> fires
up for me only when I sudo.</p>

<p>In short you would fire following commands in the sequence below</p>

<pre><code>fastboot flash bootloader bootloader-maguro-primelc03.img
fastboot reboot-bootloader
fastboot flash radio radio-maguro-i9250xxlh1.img
fastboot reboot-bootloader
fastboot -w update image-takju-jop40c.zip
</code></pre>

<p>I copied the content of <code>takju-jop40c-factory-1a47c890.tgz</code> to <code>platform-tools</code> folder before starting up with the above commands for ease of referencing the files.</p>

<p>log of my system below for reference.</p>

<pre><code>$ adb reboot-bootloader

$ sudo ./fastboot flash bootloader bootloader-maguro-primelc03.img
sending 'bootloader' (2308 KB)...
OKAY [  0.581s]
writing 'bootloader'...
OKAY [  0.653s]
finished. total time: 1.234s

$ sudo ./fastboot reboot-bootloader
rebooting into bootloader...
OKAY [  0.006s]
finished. total time: 0.006s

$ sudo ./fastboot flash radio radio-maguro-i9250xxlh1.img
sending 'radio' (12288 KB)...
OKAY [  3.092s]
writing 'radio'...
OKAY [  1.638s]
finished. total time: 4.730s

$ sudo ./fastboot reboot-bootloader
rebooting into bootloader...
OKAY [  0.006s]
finished. total time: 0.006s


$ sudo ./fastboot -w update image-takju-jop40c.zip
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
--------------------------------------------
Bootloader Version...: PRIMELC03
Baseband Version.....: I9250XXLH1
Serial Number........: 0149C7A508017004
--------------------------------------------
checking product...
OKAY [  0.007s]
checking version-bootloader...
OKAY [  0.008s]
checking version-baseband...
OKAY [  0.008s]
sending 'boot' (4400 KB)...
OKAY [  1.108s]
writing 'boot'...
OKAY [  0.398s]
sending 'recovery' (4900 KB)...
OKAY [  1.248s]
writing 'recovery'...
OKAY [  0.707s]
sending 'system' (436723 KB)...

OKAY [110.300s]
writing 'system'...
OKAY [ 42.772s]
erasing 'userdata'...
OKAY [  1.122s]
formatting 'userdata' partition...
Creating filesystem with parameters:
    Size: 14539534336
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 8144
    Inode size: 256
    Journal blocks: 32768
    Label:
    Blocks: 3549691
    Block groups: 109
    Reserved block group size: 871
Created filesystem with 11/887696 inodes and 97200/3549691 blocks
sending 'userdata' (137559 KB)...
writing 'userdata'...
OKAY [ 46.028s]
erasing 'cache'...
OKAY [  0.044s]
formatting 'cache' partition...
Creating filesystem with parameters:
    Size: 452984832
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 6912
    Inode size: 256
    Journal blocks: 1728
    Label:
    Blocks: 110592
    Block groups: 4
    Reserved block group size: 31
Created filesystem with 11/27648 inodes and 3566/110592 blocks
sending 'cache' (8832 KB)...
writing 'cache'...
OKAY [  4.060s]
rebooting...

finished. total time: 207.843s
</code></pre>

<p>After completion phone would reboot automatically. Please leave a comment if you this works for you or not.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Static IP on Ubuntu]]></title>
    <link href="http://chandankumar.com/blog/2012/11/07/static-ip-on-ubuntu/"/>
    <updated>2012-11-07T17:22:00+05:30</updated>
    <id>http://chandankumar.com/blog/2012/11/07/static-ip-on-ubuntu</id>
    <content type="html"><![CDATA[<p>I tried these steps on Ubuntu 12.04. It may differ for other Linux versions.</p>

<h3>Introduction</h3>

<p>Sometimes you may want to setup OS instances with static ip. Doing this on Ubuntu is quite simple.
Static IP implies that IP address of the machine does not change. Everytime you bootup you have
same IP address associated. When you assign static IP to any machine, make sure that you select an
IP that is not assigned to any other machine. You may run in to network issues if two machines have
same IP address.</p>

<!-- more -->


<h3>How you do this on Ubuntu?</h3>

<p><em>Before you start making these changes make sure that you take a backup of your existing config</em>
For example</p>

<p><code>cp /etc/network/interfaces ~/interfaces.bak</code></p>

<p>Copy interfaces file to your home folder.</p>

<p>You would need to modify <code>/etc/network/interfaces</code> file, after setting up static ip
it would look something like below after changes</p>

<pre><code># This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
iface eth0 inet static
  address 192.168.1.151
  netmask 255.255.255.0
  gateway 192.168.1.1
</code></pre>

<p>Here it is assumed that you are on a network in range of <code>192.168.1.xxxx</code> and you are setting
static ip of <code>192.168.1.151</code>. You can use whatever value fits your need</p>

<p>Once you are done making changes restart network.</p>

<pre><code>sudo /etc/init.d/networking restart
</code></pre>

<p>Verify this using <code>ifconfig</code>. IP address should be what you have assigned in the interfaces file.
If it is not the case, check for typos.</p>

<p>At this point of time you may not be able to connect to any server out of your network. You can verify
this by pinging. For example</p>

<pre><code>ping google.com
</code></pre>

<p>Most probably <code>/etc/resolve.conf</code> file may not have nameserver verify this by</p>

<pre><code>sudo cat /etc/resolv.conf
</code></pre>

<p>To fix this on Ubuntu 12.04 you would need to modify <code>/etc/resolvconf/resolv.conf.d/base</code>
and add name server entry</p>

<pre><code>nameserver 8.8.8.8
</code></pre>

<p>You can replace <code>8.8.8.8</code> with nameserver address of your choice.</p>

<p><a href="http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/">More info</a> on setting up name server.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Learning Twitter Bootstrap and Less CSS]]></title>
    <link href="http://chandankumar.com/blog/2012/09/06/learning-twitter-bootstrap-and-less-css/"/>
    <updated>2012-09-06T17:28:00+05:30</updated>
    <id>http://chandankumar.com/blog/2012/09/06/learning-twitter-bootstrap-and-less-css</id>
    <content type="html"><![CDATA[<h3>Introduction</h3>

<p>This article is reference to self, but I hope it may help others who want to dive in to
<a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a> and <a href="http://lesscss.org/">LESS</a>.
I did not want to write everything from scratch, so, I forked <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a>
and host the changes to <a href="https://github.com/ch4nd4n/bootstrap/">forked repository</a></p>

<h4>What is Twitter Bootstrap</h4>

<p>Sleek, intuitive, and powerful front-end framework for faster and easier web development.</p>

<!-- more -->


<h4>What is Less CSS</h4>

<p>LESS extends CSS with dynamic behavior such as variables, mixins, operations and functions. LESS runs on both the client-side (Chrome, Safari, Firefox) and server-side, with Node.js and Rhino.</p>

<h4>What does customization look like.</h4>

<p>This site is live example of modified Twitter Bootstrap. Another sample page is at <a href="http://ch4nd4n.github.com/docs/customized-template.html">http://ch4nd4n.github.com/docs/customized-template.html</a>. As mentioned forked source is <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a></p>

<h3>Get going</h3>

<p><a href="http://twitter.github.com/bootstrap/extend.html">Extending Twitter Bootstrap</a> has documentation
about dependency to install before you get started. You could either clone Twitter Bootstrap on
github or fork and make your
changes. Forking Git repository has advantage, you maintain versions of your changes. In future
if you make any change that is worth to be shared you send a pull request to Twitter
Bootstrap repo.</p>

<p><em>cloning bootstrap</em> <code>git clone</code></p>

<p>npm(node package manager) should be installed.</p>

<p><code>make</code> will build the stuff for you.</p>

<p>To quickly compile changes to CSS you would issue command something like</p>

<pre><code>lessc less/bootstrap.less &gt; DESTINATION/bootstrap.css
</code></pre>

<p>append <code>--compress</code> to minify the file.</p>

<p>Some of the primary files that I have customized</p>

<ul>
<li><a href="https://github.com/ch4nd4n/bootstrap/blob/master/less/widget.less">widget.less</a> - this
is the primary less file that contains the crux of the widget CSS.</li>
<li><a href="https://github.com/ch4nd4n/bootstrap/blob/master/less/overrides.less">overrides.less</a> - Overrides the
default values of twitter bootstrap. For example <code>body</code> tag</li>
<li><a href="https://github.com/ch4nd4n/bootstrap/blob/master/less/bootstrap.less">bootstrap.less</a> -
include <code>widget.less</code> and <code>override.less</code> in to this file</li>
</ul>


<h4>Work in progress</h4>

<p>You could hack around above three files to get an understanding of how things
work. Will update this page soon.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Octopress - Tutorial otherwise]]></title>
    <link href="http://chandankumar.com/blog/2012/09/05/octopress-tutorial-otherwise/"/>
    <updated>2012-09-05T19:47:00+05:30</updated>
    <id>http://chandankumar.com/blog/2012/09/05/octopress-tutorial-otherwise</id>
    <content type="html"><![CDATA[<h3>Introduction</h3>

<p>It is said very eloquently on Octopress home page and I quote</p>

<blockquote><p>Octopress is a framework designed by Brandon Mathis for Jekyll, the blog aware static site generator powering Github Pages. To start blogging with Jekyll, you have to write your own HTML templates, CSS, Javascripts and set up your configuration.</p><footer><strong>Brandon Mathis</strong> <cite><a href='http://octopress.org/'>Octopress Site</a></cite></footer></blockquote>


<p>Now before that really scares you away, let me tell you that, all that is not really very difficult. It may sound intimidating in the beginning<!-- more -->
but its not so. Of course if you know nothing about HTML, CSS, JavaScript etc. you may find it difficult to customize it.</p>

<p>I would primarily cover blogging basics first, assuming that, you are already all set with Octopress</p>

<h3>Blogging basics</h3>

<!-- more -->


<p>There are various formats in which one can blog an article. My preferred format is Markdown. Primarily
because I want to master it. Other format that I use is HTML. You can mix and match formats.</p>

<h5>Create a new blog entry</h5>

<p><em>Syntax</em></p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>rake new_post["title"]</span></code></pre></td></tr></table></div></figure>


<h5>Create a new page</h5>

<p><em>Syntax</em></p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>rake new_page["title"]</span></code></pre></td></tr></table></div></figure>


<h5>Including Gist</h5>

<h5>Including an image</h5>

<h3>Work in progress</h3>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[hello octopress]]></title>
    <link href="http://chandankumar.com/blog/2012/05/09/hello-octopress/"/>
    <updated>2012-05-09T19:20:00+05:30</updated>
    <id>http://chandankumar.com/blog/2012/05/09/hello-octopress</id>
    <content type="html"><![CDATA[<p>If for some reason it&#8217;s not obvious, this site is powered by Octopress. I  am
fascinated with simplicity of octopress. After playing around with it for sometime,
I find that Octopress is a fun to use piece of work. The foremost thing <!-- more -->
that I love about this change is that I can edit the site in vim! Updating it on
heroku is a git push away.</p>

<p>I am yet to try embedding video etc but I am sure that it&#8217;s all going to be fun.</p>
]]></content>
  </entry>
  
</feed>
