<?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>Ajay Divakaran</title>
	<atom:link href="/feed/" rel="self" type="application/rss+xml" />
	<link>https://ajaydk.com</link>
	<description>Network Architecture and Automation</description>
	<lastBuildDate>Sun, 10 Aug 2014 17:29:03 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0</generator>
	<item>
		<title>Typefocus 7.3.2</title>
		<link>https://ajaydk.com/typefocus-2/</link>
		<comments>https://ajaydk.com/typefocus-2/#comments</comments>
		<pubDate>Thu, 23 Jan 2014 02:04:29 +0000</pubDate>
		<dc:creator><![CDATA[ajaydivakaran]]></dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[typefocus]]></category>
		<category><![CDATA[Wordpress theme]]></category>

		<guid isPermaLink="false">https://ajaydk.com/?p=254</guid>
		<description><![CDATA[Changes in version 7.3.2
Typography changes, Removed some more junk from underscores,  Theme hooks updated and Faster loading . Theme now loads in roughly 368ms (from 1.26secs in the previous version)
]]></description>
				<content:encoded><![CDATA[<h2>TypeFocus &#8211; Release 7.3.2   </h2>
<p><a href="/wp-content/uploads/2014/01/typefocus_v7_3_2.zip">Download→</a></p>
<p>Another 3-day weekend.. and I finally patched Typefocus again to release 7.3.2.<br />
Link <a title="TypeFocus theme by Ajay Divakaran" href="https://github.com/ajaydk/typefocus">here</a></p>
<p>&nbsp;</p>
<p style="text-align: center;">
<p style="text-align: center;"><a href="/wp-content/uploads/2013/12/screenshot.png"><img class="size-full wp-image-170 aligncenter" alt="typefocus by Ajay Divakaran" src="/wp-content/uploads/2013/12/screenshot.png" width="600" height="435" /></a></p>
<h2>Changes in version 7.3.2</h2>
<ul>
<li><strong>Typography changes:</strong> Included open-source fonts for enhanced readability.Licenses are packaged in.</li>
<li>Removed some more junk from underscores. Cleaner code.</li>
<li>Added more customizations. Theme hooks updated</li>
<li>Faster loading (minified some libraries). Theme now loads in roughly 368ms (from 1.26secs in the previous version)</li>
</ul>
<h2>License</h2>
<p>Underscores, Fontawesome, and Typefocus are all released under GPL. So anything you make from it too, should carry a copy of GPL, and remain free. I like free&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>https://ajaydk.com/typefocus-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nuage Networks : Looking good so far! These guys seem to have covered most things that even some of the &#8220;big guys&#8221; left out&#8230; Impressed!!</title>
		<link>https://ajaydk.com/89/</link>
		<comments>https://ajaydk.com/89/#comments</comments>
		<pubDate>Wed, 30 Oct 2013 13:23:35 +0000</pubDate>
		<dc:creator><![CDATA[ajaydivakaran]]></dc:creator>
				<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://divakaran.net/?p=89</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>https://ajaydk.com/89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>To thread or not to thread? that is the question!</title>
		<link>https://ajaydk.com/multithreading-vs-multiprocessing/</link>
		<comments>https://ajaydk.com/multithreading-vs-multiprocessing/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 04:46:20 +0000</pubDate>
		<dc:creator><![CDATA[ajaydivakaran]]></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://divakaran.net/?p=8</guid>
		<description><![CDATA[Agreed, it comes down to the language of choice, but these days I use python and perl heavily in my scripts. And the GIL in python, always seems to make multithreading a daunting task on my multi-core machine.]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;"><span class="su-dropcap su-dropcap-style-default" style="font-size:2.5em">E</span>very so often, I see myself pondering over this same question. And sometimes I pen my thoughts and conclusions down on a piece of paper , so that I don’t have to re-think later. This beautiful piece of paper, always seems to get lost among the clutter ( which I call organized stack) of papers  at my desk. So <strong>Threads or Processes?</strong></p>
<p style="text-align: left;">
<p>&nbsp;</p>
<p>Agreed, it comes down to the language of choice, but these days I use python and perl heavily in my scripts. And the GIL in python, always seems to make multithreading a daunting task on my multi-core machine.</p>
<p>&nbsp;</p>
<p>Of course, we all know that multithreading has its advantages over multiprocessing- less footprint, stack size, much lighter , etc etc.. , but what happens with threading  behind the scenes , is what drives early programmers nuts, and make them conclude that threading arose from the dead sea.</p>
<h3>The multithreading/multiprocessing debate…</h3>
<p>In this particular project that I was working on, the ease of initiating a thread pool, lured me into the path of threads. Also, the fact that my underlying netsnmp c-library, was async, turned out to be an added bonus. </p>
<div class="su-pullquote su-pullquote-align-left">
<h3>Yes, I started threading at first&#8230;</h3>
</div>
<p>A little tidbit here- the scheduling of threads is actually done by the OS, and this turns out to be a disaster sometimes.</p>
<p>&nbsp;</p>
<p>Yes, python relies on the OS to schedule threads. It just releases and re-acquires the GIL. Why not?  After all, the underlying OS is all about multithreading, and the guys who made it, should be experts at scheduling, right? Actually yes, the OS does a damn good job at this. </p>
<p>&nbsp;</p>
<p>However, in a multicore machine, the OS is aware of all available cores. And chances are that it schedules the thread on another core…. boom! …. and you just created context-switching, and increased the overall time before the thread actually acquires the GIL. This is invariably what causes multithreading to give poorer than expected results…</p>
<p>&nbsp;</p>
<p>So I went back to multiprocessing for this. Yes,  I know it has higher startup costs, significantly more memory…etc. But at the end , there isnt a lot of crazy context switching. And in this particular instance , I had 32 cores.  I was just planning to start the processes once, and then pipe their output in a subprocess stream. They worked fine!</p>
<div class="su-pullquote su-pullquote-align-right">
<h3>&#8230;and then went back to processes</h3>
</div>
<p>&nbsp;</p>
<p>I’m not against threads, and I dont always favor processes either. But often times, we have to decide between the two based on the environment, the hardware, the throughput requirement, the desired speed of execution ( and a little bit of personal choice).  Its called “Using the right tool for the job”</p>
]]></content:encoded>
			<wfw:commentRss>https://ajaydk.com/multithreading-vs-multiprocessing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Mini-ESXI server</title>
		<link>https://ajaydk.com/mini-esxi-server/</link>
		<comments>https://ajaydk.com/mini-esxi-server/#comments</comments>
		<pubDate>Sat, 09 Mar 2013 00:36:06 +0000</pubDate>
		<dc:creator><![CDATA[ajaydivakaran]]></dc:creator>
				<category><![CDATA[ESXI]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://divakaran.net/?p=10</guid>
		<description><![CDATA[My latest ESX server runs (and has been running ) at 26C inside the box. Partly because there are no moving-parts. The ESXI5 image boots off of USB, and the VMs from NAS. ]]></description>
				<content:encoded><![CDATA[<div><span class="su-frame su-frame-align-left su-frame-style-default"><span class="su-frame-inner"><img alt="Ajay Divakaran, mini-esxi server" src="/wp-content/uploads/2013/10/photo1-1024x768.jpg" /></span></span>&nbsp;</p>
<p>Yes, chill-n-cool,running purely off of USB and NAS, currently the fastest node in my cluster, so quiet and cool( less than 26C inside the case ), that I have to brag about it&#8230; </p>
<p>&nbsp;</p>
<p>Thought I’d share this configuration.Its storing/running all its VMs from NAS.</p>
<h2>The Mini-ESXI Server Hardware Specs (845$):</h2>
<p>&gt;&gt; Processor: Intel Xeon E3-1230 V2($290)<br clear="none" />&gt;&gt; Motherboard : Intel S1200BTSR Micro ATX Server Motherboard LGA 1155 DDR3 1333 (190$)<br clear="none" />&gt;&gt; Hypervisor Installation : 8Gig PNY USB-Flash drive ($8 @ staples)<br clear="none" />&gt;&gt; VMs Storage : iOmega Home NAS ($100)<br clear="none" />** – Upgraded later to DNS-320 that i got on sale at J&amp;R. I needed the Raid!!<br clear="none" />&gt;&gt; RAM : 32G ECC Unbuffered Dual Channel Crucial (120$)<br clear="none" />&gt;&gt; Power: Intex PSU (450W, I think) 40$<br clear="none" />&gt;&gt; Case : AeroCool m40 cube , MicroATX with Front-LCD Temperature display</p>
<h2></h2>
<h2>And why these??</h2>
<p>Well, my processor choice was down to either a core-i7 or a Xeon. And given that core-i7s are rather power-hungry for their performance, I settled on Xeon. Its TDP at 89Watts was lucrative, and in practice, with about 5 VMs running all the time, it consumes a little less than 30W (Cheaper than a lightbulb). And the quad-core ivy bridge, and 8MB L3-cache, sealed the deal.</p>
<p>&nbsp;</p>
<p>I needed a server class motherboard, and after researching for a long while, i decided to go with one that I had already seen in use. The Intel S1200BTSR is a decent server motherboard, under 200$. Agreed, it comes with poor documentation, but seriously, how many of us look at that pamphlet of documentation that comes with motherboards? Aside from that, it performs well, runs cool, has a good FSB, and RAID (just if I ever decide to move my HDDs from NAS into this compute node)</p>
<p>&nbsp;</p>
<p>The case was the instigator. I really liked the design and airflow-pattern of the Aerocool M40 cube. Besides, it has a front-panel LCD display indicating the temperature inside the chassis. Real cool. </p>
<p>&nbsp;</p>
<h2>A true beast of beauty</h2>
<p>A few cable ties, to keep the wires from obstructing the airflow, and I was at the BIOS. Didnt overclock.. just turned on support for virtualization, and proceeded to install the esxi Hypervisor onto the USB (The little white guy you see standing up in the picture). Four minutes later, it was ready to start running my VMs.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://ajaydk.com/mini-esxi-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spot the difference</title>
		<link>https://ajaydk.com/spot-the-difference/</link>
		<comments>https://ajaydk.com/spot-the-difference/#comments</comments>
		<pubDate>Fri, 22 Feb 2013 00:21:42 +0000</pubDate>
		<dc:creator><![CDATA[ajaydivakaran]]></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://divakaran.net/?p=14</guid>
		<description><![CDATA[The difference between the two following pieces of code are pretty evident, or are they?Except for the fact that one was almost 60 times faster than the other, over 100,000 iterations.

<br /><br /><br /><br />Figuring out the part that was slowing my co-routine wasn’t easy… Three red-bulls later….]]></description>
				<content:encoded><![CDATA[<span class="su-dropcap su-dropcap-style-default" style="font-size:2em">T</span>he difference between the two following pieces of code are pretty evident, or are they?Except for the fact that one was almost 60 times faster than the other, over 100,000 iterations.</p>
<p>Figuring out the part that was slowing my co-routine wasn’t easy… Three red-bulls later….<br />
<pre class="crayon-plain-tag">if “key” in d.keys():
    print “Found pattern”
else:
    print “No match”</pre>
<pre class="crayon-plain-tag">try:
    k=d["key"]
    print “Found pattern”
except:
    print “No match”</pre>
]]></content:encoded>
			<wfw:commentRss>https://ajaydk.com/spot-the-difference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
