<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TUTYSARA'S SPACE</title><link>https://www.tutysara.net/</link><description>Recent content on TUTYSARA'S SPACE</description><generator>Hugo</generator><language>en-EN</language><copyright>(c) 2026 tutysara</copyright><lastBuildDate>Sat, 14 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.tutysara.net/index.xml" rel="self" type="application/rss+xml"/><item><title>Clean Code vs A Philosophy of Software Design</title><link>https://www.tutysara.net/posts/2026/02/14/clean-code-vs-a-philosophy-of-software-design/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2026/02/14/clean-code-vs-a-philosophy-of-software-design/</guid><description>&lt;p&gt;Reading through many lines of code in Golang and Java makes for an interesting observation from the codebase which I was taking a look.&lt;/p&gt;
&lt;p&gt;There were different styles of coding and it was obvious from reading code that is written by experienced gophers.&lt;/p&gt;
&lt;p&gt;People on team who do both Java and Golang use the same Java style in Golang as well.&lt;/p&gt;
&lt;p&gt;While most Java programmers come from Clean code school of thought where functions are decomposed into many smaller functions which results in function explosion in the same file.&lt;/p&gt;</description></item><item><title>SQS vs SNS vs Kinesis</title><link>https://www.tutysara.net/posts/2021/09/07/sqs-vs-sns-vs-kinesis/</link><pubDate>Tue, 07 Sep 2021 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2021/09/07/sqs-vs-sns-vs-kinesis/</guid><description>&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Service&lt;/th&gt;
 &lt;th&gt;Think of it as&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;SQS&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;A &lt;strong&gt;durable queue&lt;/strong&gt; between producers and consumers&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;SNS&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;A &lt;strong&gt;fan-out notification system&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Kinesis&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;A &lt;strong&gt;high-throughput event stream&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="sqs"&gt;SQS:&lt;/h2&gt;
&lt;p&gt;Is ideal when&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Producers and consumers run at different speeds&lt;/li&gt;
&lt;li&gt;You want retry, durability, and backpressure&lt;/li&gt;
&lt;li&gt;Each message should be processed at least once&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sns"&gt;SNS&lt;/h2&gt;
&lt;p&gt;SNS is about fan-out, not durability for processing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Push-based&lt;/li&gt;
&lt;li&gt;One message → many subscribers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Subscribers can be: SQS queues or HTTP endpoints or Lambda&lt;/p&gt;</description></item><item><title>Implement mutex using channels</title><link>https://www.tutysara.net/posts/2019/07/05/implement-mutex-using-channels/</link><pubDate>Fri, 05 Jul 2019 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2019/07/05/implement-mutex-using-channels/</guid><description>&lt;p&gt;Concurrency primitives can be implemented on top of channel abstraction of CSP style.
Here is an example of implementing mutex using channels.&lt;/p&gt;
&lt;h2 id="go-code-to-implement-mutex-using-channels"&gt;Go code to implement mutex using channels.&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;package&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;main&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kd"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Lock&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;struct&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="nx"&gt;locked&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;chan&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;bool&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;NewLock&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Lock&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="nx"&gt;lock&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Lock&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;locked&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;make&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;chan&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="nx"&gt;lock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;locked&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;lock&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;l&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;Lock&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;Lock&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="nx"&gt;l&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;locked&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// read from channel and if another read happens it waits&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;l&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;Lock&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;Unlock&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="c1"&gt;// This is not reentrant&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="c1"&gt;// calling unlock again on an unlocked channel blocks&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;	&lt;/span&gt;&lt;span class="nx"&gt;l&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;locked&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// write to channel so, that it gets read and channel clears&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is not reentrant&lt;/p&gt;</description></item><item><title>Tips to prepare for TOEFL in two weeks</title><link>https://www.tutysara.net/posts/2018/04/05/tips-to-prepare-for-toefl-in-two-weeks/</link><pubDate>Thu, 05 Apr 2018 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2018/04/05/tips-to-prepare-for-toefl-in-two-weeks/</guid><description>&lt;p&gt;I wanted to share some tips on quickly preparing for the TOEFL iBT test&lt;br&gt;
I had to take TOEFL on a short notice, I had two weeks to take the exam and had prepared using materials that I will share in this post&lt;br&gt;
It helped me get a decent score (106/120) and I wanted to share those incredible materials that helped me with everyone who are looking to ace the exam in a short span of time.&lt;/p&gt;</description></item><item><title>Machine Learning Flashcards from Twitter -- Part 2 Data Analysis and Download</title><link>https://www.tutysara.net/posts/2018/02/11/machine-learning-flashcards-from-twitter--part-2-data-analysis-and-download/</link><pubDate>Sun, 11 Feb 2018 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2018/02/11/machine-learning-flashcards-from-twitter--part-2-data-analysis-and-download/</guid><description>&lt;p&gt;This is the analysis part where we do a small analysis to find&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which are the most important/popular tweets&lt;/li&gt;
&lt;li&gt;Whether older materials covered important concepts than recent tweets&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="load-the-necessary-libs"&gt;Load the necessary libs&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;load_ext&lt;/span&gt; &lt;span class="n"&gt;autoreload&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;autoreload&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;matplotlib&lt;/span&gt; &lt;span class="n"&gt;inline&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_option&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;display.width&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;re&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.image&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;mpimg&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pathlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="load-csv"&gt;Load csv&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;chrisalbon_mlflashcards.csv&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;text&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fillna&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inplace&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tail&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex="0"&gt;&lt;code&gt; id likes replies retweets text timestamp url img_url
236 94607825069... 19 1 0 Bayes Error 2017-12-27T... https://twi... https://pbs...
237 94575108497... 47 3 13 Occams Razor 2017-12-26T... https://twi... https://pbs...
238 94571793723... 8 0 1 K-Fold Cros... 2017-12-26T... https://twi... https://pbs...
239 94538342129... 18 1 1 Extrema 2017-12-25T... https://twi... https://pbs...
240 94536381783... 34 1 7 Softmax Act... 2017-12-25T... https://twi... https://pbs...
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="check-for-missing-values"&gt;Check for missing values&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;axis&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;id 241
likes 241
replies 241
retweets 241
text 241
timestamp 241
url 241
img_url 237
dtype: int64
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We see we have few img_urls missing. Let&amp;rsquo;s check what they are&lt;/p&gt;</description></item><item><title>Machine Learning Flashcards from Twitter -- Part 1 Data Collection and Preprocessing</title><link>https://www.tutysara.net/posts/2018/02/09/machine-learning-flashcards-from-twitter--part-1-data-collection-and-preprocessing/</link><pubDate>Fri, 09 Feb 2018 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2018/02/09/machine-learning-flashcards-from-twitter--part-1-data-collection-and-preprocessing/</guid><description>&lt;p&gt;I was searching the net for mlflashcards, I found this incredible machine learning flashcard &lt;a href="https://twitter.com/search?q=machinelearningflashcards.com%20and%20chrisalbon%20&amp;amp;src=typd"&gt;tweet series&lt;/a&gt; from &lt;a href="https://twitter.com/chrisalbon"&gt;Chris Albon&lt;/a&gt;.
It looks pretty and covers a lot of ground, Got a thought &amp;ndash; why not download them for later use?
I thought it would be a fun exercise to start the weekend and jumped into action.&lt;/p&gt;
&lt;h2 id="step-1--collectscrape-data-from-twitter"&gt;Step 1 &amp;ndash; Collect/Scrape data from twitter&lt;/h2&gt;
&lt;p&gt;I evaluated using twitter api using &lt;a href="https://github.com/tweepy/tweepy"&gt;tweetpy&lt;/a&gt;, but it has its own limitation aka we can search only a week worth of data which is not good for our use case.
We shoud be able to get data spread across months since the tweets we are interested are spread across a wide time range.&lt;/p&gt;</description></item><item><title>Themes and Extensions for Jupyter notebook</title><link>https://www.tutysara.net/posts/2018/02/07/themes-and-extensions-for-jupyter-notebook/</link><pubDate>Wed, 07 Feb 2018 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2018/02/07/themes-and-extensions-for-jupyter-notebook/</guid><description>&lt;p&gt;I am taking the wonderful &lt;a href="http://course.fast.ai/"&gt;fast.ai&lt;/a&gt; course thought by Jermey Howard and Rachel.
We use jupyter notebooks in classes and it is always nice to see how Jermey&amp;rsquo;s notebook looks.&lt;/p&gt;
&lt;p&gt;It has few tweaks like&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;collapsible headings&lt;/li&gt;
&lt;li&gt;better tables and fonts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Learnt that he uses a themes for the visual customizations and an extensions to allow collapsing of headers from his reply in &lt;a href="http://forums.fast.ai/t/collapsable-expandable-jupyter-cells/205/5"&gt;forums&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The theme script can be installed from &lt;a href="https://github.com/dunovank/jupyter-themes"&gt;jupyter-themes repo&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Use Skipgrams with sklearn CountVectorizer and TfidfVectorizer</title><link>https://www.tutysara.net/posts/2018/01/07/use-skipgrams-with-sklearn-countvectorizer-and-tfidfvectorizer/</link><pubDate>Sun, 07 Jan 2018 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2018/01/07/use-skipgrams-with-sklearn-countvectorizer-and-tfidfvectorizer/</guid><description>&lt;p&gt;We don&amp;rsquo;t have an implementation for skipgrams in sklearn. This post covers how to use the skipgram function in &lt;code&gt;nltk&lt;/code&gt; with sklearn&amp;rsquo;s CountVectorizer and TfidfVectorizer&lt;/p&gt;
&lt;p&gt;We are going to create a skipgram tokenizer that can be passed to the &lt;code&gt;tokenizer&lt;/code&gt; parameter of the vectorizer.&lt;/p&gt;
&lt;p&gt;Create a basic tokenizer that can split the original strings to tokesn.
Tokenizer can be just &lt;code&gt;.split()&lt;/code&gt; or a function to filter non-alpahbets etc. We can use tokenizer as below&lt;/p&gt;</description></item><item><title>Fix isset error in Hugo 2 version</title><link>https://www.tutysara.net/posts/2017/03/26/fix-isset-error-in-hugo-2-version/</link><pubDate>Sun, 26 Mar 2017 19:17:21 +0530</pubDate><guid>https://www.tutysara.net/posts/2017/03/26/fix-isset-error-in-hugo-2-version/</guid><description>&lt;p&gt;I have setup automatic compiling and deploying of my blog using Travis.CI&lt;/p&gt;
&lt;p&gt;Recently I encountered a strange issue, the blog compiles and runs fine in my system but the site doesn&amp;rsquo;t come up after a Travis build.&lt;/p&gt;
&lt;p&gt;On investigation found this in the logs from Travis CI.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Deploying updates to GitHub...
Started building sites ...
ERROR 2017/03/25 02:31:30 .Page's Use RSSlink is deprecated and will be removed in Hugo 0.21. RSSLink.
ERROR 2017/03/25 02:31:30 partials/homepage.html template: partials/homepage.html:3:10: executing &amp;quot;partials/homepage.html&amp;quot; at &amp;lt;isset .Site.Params.s...&amp;gt;: error calling isset: unsupported type &amp;quot;invalid&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;My local hugo from homebrew was v0.19 and the installation in Travis uses the latest hugo build&lt;/p&gt;</description></item><item><title>Spacemacs Ctrl-i fix</title><link>https://www.tutysara.net/posts/2017/03/24/spacemacs-ctrl-i-fix/</link><pubDate>Fri, 24 Mar 2017 09:07:41 +0530</pubDate><guid>https://www.tutysara.net/posts/2017/03/24/spacemacs-ctrl-i-fix/</guid><description>&lt;p&gt;Spacemacs uses Ctlr+o to move backward to the last edited location and Ctrl+i to move foward after going back using Ctrl+o similar to Vim.&lt;/p&gt;
&lt;p&gt;I found that Ctrl+o works but Ctrl+i doesn&amp;rsquo;t moves forward through the edit locations. I had the same issue in OSX/emacs 25.1 and in ubuntu/emacs25.1.&lt;/p&gt;
&lt;p&gt;Searched the net and found this helpful issue page &amp;ndash; &lt;a href="https://github.com/syl20bnr/spacemacs/issues/5050"&gt;https://github.com/syl20bnr/spacemacs/issues/5050&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We have the troubleshooting steps there&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(lookup-key evil-motion-state-map [C-i]) ;; should be evil-jump-forward
(display-graphic-p) ;; should be t
dotspacemacs-distinguish-gui-tab ;; should be t
(lookup-key key-translation-map [?\C-i]) ;; should be spacemacs/translate-C-i
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In my system dotspacemacs/user-configcemacs-distinguish-gui-tab is set as nil.&lt;/p&gt;</description></item><item><title>How to create custom profile ID in googleplus</title><link>https://www.tutysara.net/posts/2016/09/29/how-to-create-custom-profile-id-in-googleplus/</link><pubDate>Thu, 29 Sep 2016 04:30:51 +0530</pubDate><guid>https://www.tutysara.net/posts/2016/09/29/how-to-create-custom-profile-id-in-googleplus/</guid><description>&lt;p&gt;I was writing my blog and added a link to google plus in the sidebar. I wanted to make a human readable/rememberable Id to use for my google plus page.&lt;/p&gt;
&lt;p&gt;I guess, planning to {use|add link} to google plus is a bad idea.
I googled to find the steps to create a custom profile Id and landed in the documentation page &amp;ndash; &lt;a href="https://support.google.com/plus/answer/2676340?hl=en"&gt;Get a custom URL for your Google+ profile&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I tried following the steps and surprisingly it didn&amp;rsquo;t worked, I trusted google so much that I thought I may have did some mistake and repeated the steps one more time but still it didn&amp;rsquo;t worked.&lt;/p&gt;</description></item><item><title>Automating hugo blog deployment to github pages using travis-ci</title><link>https://www.tutysara.net/posts/2016/09/27/automating-hugo-blog-deployment-to-github-pages-using-travis-ci/</link><pubDate>Tue, 27 Sep 2016 03:35:35 +0530</pubDate><guid>https://www.tutysara.net/posts/2016/09/27/automating-hugo-blog-deployment-to-github-pages-using-travis-ci/</guid><description>&lt;p&gt;Here are the steps I took to build and deploy my blog automatically using hugo and travis-ci to github pages&lt;/p&gt;
&lt;p&gt;I assume a hugo blog is already created and exist&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Create &lt;code&gt;.travis.yml&lt;/code&gt; file in the project directory with the following contents&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;language&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;go&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;sudo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;required&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;git&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;submodules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;install&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;go get -v github.com/spf13/hugo&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;bash ./deploy.sh&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;notifications&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;on_failure&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;always&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate and encrypt github token&lt;/p&gt;</description></item><item><title>Good Font for Spacemacs</title><link>https://www.tutysara.net/posts/2016/09/03/good-font-for-spacemacs/</link><pubDate>Sat, 03 Sep 2016 14:25:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2016/09/03/good-font-for-spacemacs/</guid><description>&lt;p&gt;Spacemacs recommends using source code pro as the default font, infact this is the font set in &lt;code&gt;.spacemacs&lt;/code&gt; file. If the font is not availale it is substituted for some other alternative.
To find the font in use do &lt;code&gt;C-u C-x =&lt;/code&gt; on my mac it was using Menlo font. DejavuSansMono looks better than Source code Pro on ubuntu and I switched to it in my ubuntu system.
A list of top programming fonts can be found at &lt;a href="https://github.com/hbin/top-programming-fonts" title="Top programming fonts"&gt;Top programming fonts&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Django development on OSX using emacs</title><link>https://www.tutysara.net/posts/2013/10/30/django-development-on-osx-using-emacs/</link><pubDate>Wed, 30 Oct 2013 13:16:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2013/10/30/django-development-on-osx-using-emacs/</guid><description>&lt;p&gt;I started following the Django tutorials by &lt;a href="http://arunrocks.com/building-a-hacker-news-clone-in-django-part-1/"&gt;arun&lt;/a&gt;. I wanted to know about the related classes and quickly look into docs for the things that I code, I wanted an environment that is nice to newbies, helping with code completion and easy documentation lookup. I searched and found a huge list of &lt;a href="http://www.quora.com/Which-IDEs-are-best-suited-for-Django-development"&gt;options&lt;/a&gt;. Since I was begining with Django I wanted an environment that is much easier to setup, my first choice was &lt;a href="http://www.jetbrains.com/pycharm/"&gt;pycharm&lt;/a&gt;, but unfortunately the community edition of pycharm doesn&amp;rsquo;t support Django &lt;a href="http://www.jetbrains.com/pycharm/features/editions_comparison_matrix.html"&gt;- see this&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Running a Hacker news clone</title><link>https://www.tutysara.net/posts/2013/10/21/running-a-hacker-news-clone/</link><pubDate>Mon, 21 Oct 2013 15:25:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2013/10/21/running-a-hacker-news-clone/</guid><description>&lt;p&gt;I very much like the presentation of &lt;a href="https://news.ycombinator.com/item?id=6576560"&gt;hackernews&lt;/a&gt; when it comes to understanding and making sense of the discussions quickly. It is a lot easier than reading pages of forums to get the main ideas of the discussions since the top comments and active discussions bubble to the top.&lt;/p&gt;
&lt;p&gt;I wanted to run a site for discussing and sharing information that are useful for people working in techparks and the format that immediately clicked in my mind was the hacknews style. I began writing my own &lt;a href="https://github.com/techparknews/hsnews"&gt;clone&lt;/a&gt; based on the work of people from &lt;a href="http://hackerschool.com/"&gt;hackerschool&lt;/a&gt; but it lacked the polish and look to make the people trust and even sign up, I had send invites to few of my friends to try but the turnaround rate was quite low.&lt;/p&gt;</description></item><item><title>Setting up a new VPS server</title><link>https://www.tutysara.net/posts/2013/10/18/setting-up-a-new-vps-server/</link><pubDate>Fri, 18 Oct 2013 11:16:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2013/10/18/setting-up-a-new-vps-server/</guid><description>&lt;p&gt;These are the things I did to setup new VPS instances on Digital Ocean and ChicagoVPS&lt;/p&gt;
&lt;h3 id="update-the-machine"&gt;Update the machine&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="set-locales"&gt;Set locales&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo locale-gen
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo dpkg-reconfigure locales
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="add-user"&gt;add user&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo adduser tutysra
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# give sudo previliges&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo visudo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tutysra &lt;span class="nv"&gt;ALL&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;ALL&lt;span class="o"&gt;)&lt;/span&gt; ALL
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-git"&gt;Install Git&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-sun-java"&gt;Install sun java&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo add-apt-repository ppa:webupd8team/java
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install oracle-java7-installer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-tor-for-screen-scrapping"&gt;Install Tor for screen scrapping&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install tor
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo /etc/init.d/tor start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="make-default-directories"&gt;Make default directories&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir ~/swt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir ~/bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-nx--not-necessary-for-cli-boxes"&gt;Install NX ( not necessary for CLI boxes)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;DEBIAN_FRONTEND&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;noninteractive
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo -E apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo -E apt-get install -y ubuntu-desktop
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install gnome-session-fallback
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget &lt;span class="s1"&gt;&amp;#39;http://64.34.173.142/download/3.5.0/Linux/nxclient_3.5.0-7_amd64.deb&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget &lt;span class="s1"&gt;&amp;#39;http://64.34.173.142/download/3.5.0/Linux/nxnode_3.5.0-9_amd64.deb&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget &lt;span class="s1"&gt;&amp;#39;http://64.34.173.142/download/3.5.0/Linux/FE/nxserver_3.5.0-11_amd64.deb&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo dpkg -i *.deb
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo /usr/NX/bin/nxserver --status
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nano /usr/NX/etc/node.cfg
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Uncomment the “DefaultXSession” line and set it to :&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DefaultXSession&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/etc/X11/Xsession
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="enabledisable-password-authentication-in-ssh"&gt;Enable/Disable password authentication in ssh&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo vi /etc/ssh/sshd_config
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; PasswordAuthentication to &lt;span class="s2"&gt;&amp;#34;yes/no&amp;#34;&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; PermitRootLogin no
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo service ssh restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-screen--tmux"&gt;Install screen &amp;amp; tmux&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install screen
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install tmux
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-curl"&gt;Install curl&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install curl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-emacs-and-customize"&gt;Install emacs and customize&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install software-properties-common &lt;span class="c1"&gt;# installs some python scripts necessary for these operations&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo add-apt-repository ppa:cassou/emacs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install emacs-snapshot-el emacs-snapshot-gtk emacs-snapshot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;TERM&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;xterm-256color
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-lein"&gt;Install lein&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir ~/bin &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; ~/bin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget &lt;span class="s1"&gt;&amp;#39;https://raw.github.com/technomancy/leiningen/stable/bin/lein&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="install-jdk6-for-neo4j"&gt;Install JDK6 for neo4j&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget --no-cookies --header &lt;span class="s2"&gt;&amp;#34;Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com&amp;#34;&lt;/span&gt; http://download.oracle.com/otn-pub/java/jdk/6u41-b02/jdk-6u41-linux-x64.bin 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;JAVA_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/neo4j/swt/jdk1.6/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/neo4j/swt/jdk1.6/bin:&lt;span class="nv"&gt;$PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="configure-swap"&gt;Configure swap&lt;/h3&gt;
&lt;p&gt;My ChicagoVPS runs on OpenVZ and Swap space couldn&amp;rsquo;t be enabled at VM level.&lt;/p&gt;</description></item><item><title>Correlation between INR values of different currencies</title><link>https://www.tutysara.net/posts/2012/10/05/correlation-between-inr-values-of-different-currencies/</link><pubDate>Fri, 05 Oct 2012 11:16:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2012/10/05/correlation-between-inr-values-of-different-currencies/</guid><description>&lt;article comments="1"&gt;
 &lt;title&gt;Correlation between INR values of different currencies&lt;/title&gt;
 &lt;date&gt;2012-09-05 11:31&lt;/date&gt;
 &lt;tags&gt;
 &lt;tag&gt;data&lt;/tag&gt;
 &lt;tag&gt;clojure&lt;/tag&gt;
 &lt;/tags&gt;
&lt;/article&gt;
&lt;summary&gt;
 &lt;p&gt;
 This is an interesting take away example from the class
 which &lt;a href="http://www.s-anand.net/"&gt;Anand&lt;/a&gt; is teaching at
 NIAS.
Here we are trying to correlate between the INR values of various
 currencies like AUD, CNY (Chinese Yen), EUR, GBP (Great Britain
 Pound), JPY, SGD, USD and find the positive or negative
 correlations. The focus is on data collection and transformation. 
 &lt;/p&gt;
&lt;/summary&gt;
&lt;section&gt;
 &lt;p&gt;
 The first part is the identification of a proper source to get the
 data. &lt;a href="http://www.oanda.com"&gt;oanda.com&lt;/a&gt; is one such source
 from which historic currency exchange rates can be obtained.
 &lt;/p&gt;</description></item><item><title>Started blogging from a new place</title><link>https://www.tutysara.net/posts/2012/09/02/started-blogging-from-a-new-place/</link><pubDate>Sun, 02 Sep 2012 16:14:00 +0000</pubDate><guid>https://www.tutysara.net/posts/2012/09/02/started-blogging-from-a-new-place/</guid><description>&lt;summary&gt;
 &lt;p&gt;
 I have been thinking about having a professional looking blog/space for
 some time. I noticed many people I follow on github maintaining a
 neat blog, I see that many of them
 use &lt;a href="https://github.com/mojombo/jekyll"&gt;jekyll&lt;a&gt;/
 &lt;a href="http://octopress.org"&gt;octopress&lt;/a&gt; and use
 &lt;a href="http://pages.github.com/"&gt; github pages&lt;/a&gt; for hosting. I like the concept of static blogging and
 wanted to give it a try.
 &lt;/p&gt;
&lt;/summary&gt;
&lt;section&gt;
 &lt;p&gt;
 I gone through the process and it looks neat and clean, create a
 github repo with your username and drop html pages into it and &lt;a href="http://www.github.com/"&gt; github&lt;/a&gt; takes care of serving them,
 damm simple. Can't wait to write my blog and here comes the first
 posts. I will be tweaking my comments setup with &lt;a href="http://disqus.com/"&gt; disqus&lt;/a&gt; and
 analytics and also my blog engine using this post.
 &lt;/p&gt;</description></item><item><title>About</title><link>https://www.tutysara.net/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/about/</guid><description>&lt;section&gt;
 &lt;p&gt;
 &lt;div class="well"&gt;
I am Saravana, a programmer doing entreprise software by day and
hacking on interesting stuff by night.
I Love to try new things and experiment with various technologies/things that
interests me.
I usually find that my interest keeps changing and centered mostly
around making things easy for me.
 &lt;/div&gt;
&lt;/p&gt;
&lt;/section&gt;</description></item><item><title>Contact</title><link>https://www.tutysara.net/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.tutysara.net/contact/</guid><description>&lt;p&gt;tutysara -&amp;gt; at -&amp;gt; g mail. com&lt;/p&gt;</description></item></channel></rss>