<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ravikiranj.net</title><link>http://ravikiranj.net/</link><description>A list of technical articles by Ravikiran J</description><atom:link href="http://ravikiranj.net/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Wed, 14 Jun 2023 18:59:49 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>how to convert struct to map type and vice versa in spark via scala</title><link>http://ravikiranj.net/posts/2023/code/how-to-convert-struct-to-map-type-and-vice-versa-spark-scala/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;Hi all,
I recently faced an interesting challenge of having to convert Spark &lt;a class="reference external" href="https://spark.apache.org/docs/2.4.0/api/scala/index.html#org.apache.spark.sql.types.StructType"&gt;StructType&lt;/a&gt;
to &lt;a class="reference external" href="https://spark.apache.org/docs/2.4.0/api/scala/index.html#org.apache.spark.sql.types.MapType"&gt;MapType&lt;/a&gt; and vice-versa in &lt;a class="reference external" href="https://spark.apache.org/docs/2.4.1/api/scala/index.html#org.apache.spark.sql.Dataset"&gt;Spark Dataset&lt;/a&gt; using Scala.
After spending a good bit of time searching the internet, I could not find a readymade or handy solution to perform this transformation,
so I started digging around and this post describes my findings.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2023/code/how-to-convert-struct-to-map-type-and-vice-versa-spark-scala/"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2023/code/how-to-convert-struct-to-map-type-and-vice-versa-spark-scala/</guid><pubDate>Thu, 08 Jun 2023 20:02:00 GMT</pubDate></item><item><title>how to change monitor input source from command line?</title><link>http://ravikiranj.net/posts/2019/code/how-change-monitor-input-source-command-line/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;Hi all,
I recently faced an interesting conundrum of having to connect a Macbook Pro and an Ubuntu desktop to the same monitor (Dell U3417W).
I had to switch the monitor input source from Mac to Ubuntu and vice-versa frequently and the only way to do so was to physically
press a bunch of buttons on the monitor. This got cumbersome pretty quickly and I wanted to find a niftier solution.
I was already using the same keyboard and mouse to control both using  &lt;a class="reference external" href="https://symless.com/synergy"&gt;synergy&lt;/a&gt;,
so I started digging around and this post describes my findings.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2019/code/how-change-monitor-input-source-command-line/"&gt;Read more…&lt;/a&gt; (2 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2019/code/how-change-monitor-input-source-command-line/</guid><pubDate>Sat, 02 Mar 2019 02:12:19 GMT</pubDate></item><item><title>how to send html messages to hipchat from hubot ?</title><link>http://ravikiranj.net/posts/2015/code/how-to-send-html-messages-to-hipchat-from-hubot/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;Hi all, our Mobile team at TripAdvisor started using &lt;a class="reference external" href="https://www.hipchat.com/"&gt;HipChat&lt;/a&gt; mid last year for internal dev communication and it turned out to be a brilliant
idea. It has simply changed the way we communicate, we no longer have to wait for other teams across the coast or continent to
see an email and respond. 1-on-1 private chats/notifications prompt faster responses from fellow developers. In this post, I'm going to explain a hacky bridge that I built
between XMPP based &lt;a class="reference external" href="https://hubot.github.com/"&gt;hubot&lt;/a&gt; and &lt;a class="reference external" href="https://www.hipchat.com/docs/apiv2"&gt;HipChat v2 API&lt;/a&gt; that allows one to send rich HTML
messages to HipChat via hubot.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2015/code/how-to-send-html-messages-to-hipchat-from-hubot/"&gt;Read more…&lt;/a&gt; (9 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2015/code/how-to-send-html-messages-to-hipchat-from-hubot/</guid><pubDate>Sat, 25 Apr 2015 22:31:40 GMT</pubDate></item><item><title>how to fix the cryptic "Script error." in javascript ?</title><link>http://ravikiranj.net/posts/2014/code/how-fix-cryptic-script-error-javascript/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;This tech post is related to a nagging JavaScript error that I debugged almost a year ago. If you look at any javascript
error report, you will see a cryptic error polluting the reports under the name &lt;em&gt;"Script error."&lt;/em&gt; without any information about
the error. This happens in Firefox, Safari, and Chrome when an exception violates the browser's same-origin policy - i.e.
when the error occurs in a script that's hosted on a domain other than the domain of the current page. This tech post details
how you can fix this error and decrypt the error message.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2014/code/how-fix-cryptic-script-error-javascript/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2014/code/how-fix-cryptic-script-error-javascript/</guid><pubDate>Tue, 14 Oct 2014 00:13:25 GMT</pubDate></item><item><title>how to adjust monitor brightness from command line ?</title><link>http://ravikiranj.net/posts/2013/code/how-adjust-monitor-brightness-command-line/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;Hi all,
It's been an exciting few months for me. I graduated with a Masters from University of North Carolina at Chapel Hill
and moved to Boston in order to work as a Software Engineer at &lt;a class="reference external" href="http://www.tripadvisor.com"&gt;TripAdvisor&lt;/a&gt;. In my first week
at work, I shifted to a standing desk to avoid sitting for long hours. One of the first challenges I faced while working was
how to constantly adjust my monitor brightness so that my eyes don't hurt. I had to lean forward awkwardly (due to the standing
desk) to adjust the brightness manually. So, I started digging on how to build a small tool which would allow me to change the
monitor brightness from command line and this post describes my findings.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2013/code/how-adjust-monitor-brightness-command-line/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2013/code/how-adjust-monitor-brightness-command-line/</guid><pubDate>Thu, 11 Jul 2013 22:36:19 GMT</pubDate></item><item><title>break my work - rsi prevention software</title><link>http://ravikiranj.net/posts/2013/code/break-my-work-rsi-prevention-software/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;em&gt;Break My Work&lt;/em&gt; is a simple Repetitive Strain Injury (RSI) prevention software.
It reminds the user to take periodic breaks while working long hours in front of a computer.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2013/code/break-my-work-rsi-prevention-software/"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2013/code/break-my-work-rsi-prevention-software/</guid><pubDate>Wed, 17 Apr 2013 18:42:42 GMT</pubDate></item><item><title>how to build a twitter sentiment analyzer ?</title><link>http://ravikiranj.net/posts/2012/code/how-build-twitter-sentiment-analyzer/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;span class="update"&gt;UPDATE:&lt;/span&gt; The github repo for &lt;a class="reference external" href="https://github.com/ravikiranj/twitter-sentiment-analyzer"&gt;twitter sentiment analyzer&lt;/a&gt; now contains
updated &lt;a class="reference external" href="https://github.com/ravikiranj/twitter-sentiment-analyzer/blob/master/get_twitter_data.py"&gt;get_twitter_data.py&lt;/a&gt; file compatible with Twitter API v1.1.
It can be tested by placing appropriate oauth credentials in &lt;a class="reference external" href="https://github.com/ravikiranj/twitter-sentiment-analyzer/blob/master/config.json"&gt;config.json&lt;/a&gt;
and running &lt;a class="reference external" href="https://github.com/ravikiranj/twitter-sentiment-analyzer/blob/master/test_twitter_data.py"&gt;test_twitter_data.py&lt;/a&gt;.
You can create a new twitter app at &lt;a class="reference external" href="https://dev.twitter.com/apps"&gt;https://dev.twitter.com/apps&lt;/a&gt; to fetch necessary oauth credentials.&lt;/p&gt;
&lt;p&gt;Hi all, It's been almost a year since I last wrote a technical post. A lot of changes have occurred in my life since then,
from a Frontend engineer at Yahoo!, I've transformed into a full-time graduate student at UNC-Chapel Hill who is moving to
Redmond to do an internship at Microsoft this summer. In my spring semester, I took Data Mining course for which I had to
complete a project as part of the course. After exploring various ideas, I finalized on building a Twitter Sentiment Analyzer.
This project aimed to extract tweets about a particular topic from twitter (recency = 1-7 days) and analyze the opinion of
tweeples (people who use twitter.com) on this topic as positive, negative or neutral. In this post, I will explain you how
you can build such a sentiment analyzer. I will try to explain the concepts without making it sound too technical,
but a good knowledge of machine learning classifiers really helps.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2012/code/how-build-twitter-sentiment-analyzer/"&gt;Read more…&lt;/a&gt; (23 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2012/code/how-build-twitter-sentiment-analyzer/</guid><pubDate>Tue, 08 May 2012 17:27:28 GMT</pubDate></item><item><title>how to implement infinite scrolling using native javascript and yui3 ?</title><link>http://ravikiranj.net/posts/2011/code/how-implement-infinite-scrolling-using-native-javascript-and-yui3/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;Hi all, recently I had an opportunity to solve an interesting problem of implementing "infinite scrolling" or "continuous scrolling" or
"endless scrolling" using native javascript and yui3. While I thought there was an existing solution for this problem, all of the solutions
were pointing to jquery and none were using native javascript/yui3. Hence, I implemented a solution to solve the problem stated using native
javascript and yui3.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2011/code/how-implement-infinite-scrolling-using-native-javascript-and-yui3/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2011/code/how-implement-infinite-scrolling-using-native-javascript-and-yui3/</guid><pubDate>Tue, 28 Jun 2011 15:32:46 GMT</pubDate></item><item><title>how to create a public photo uploader using flickr ?</title><link>http://ravikiranj.net/posts/2011/code/how-create-public-photo-uploader-using-flickr/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;There are many instances where you will need to create a photo uploader on your website so that anyone or a selective audience can upload their photos to a common pool.
In this post, I will explain to you how we can create such a photo uploader using Flickr.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2011/code/how-create-public-photo-uploader-using-flickr/"&gt;Read more…&lt;/a&gt; (9 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2011/code/how-create-public-photo-uploader-using-flickr/</guid><pubDate>Fri, 25 Mar 2011 15:24:30 GMT</pubDate></item><item><title>the awesome power of bookmarklets</title><link>http://ravikiranj.net/posts/2011/code/awesome-power-bookmarklets/</link><dc:creator>Ravikiran Janardhana</dc:creator><description>&lt;div&gt;&lt;p&gt;Bookmarklets are tiny, clever and powerful programs that are written in javascript and are added to your browser as bookmarks (Firefox/Safari/Chrome/Opera) or favorites (Internet Explorer).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ravikiranj.net/posts/2011/code/awesome-power-bookmarklets/"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><guid>http://ravikiranj.net/posts/2011/code/awesome-power-bookmarklets/</guid><pubDate>Tue, 15 Feb 2011 05:18:07 GMT</pubDate></item></channel></rss>