<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>I’m Tejus Parikh and this is my blog about programming, startups, and other technology related topics.

The vast majority of the posts are about Java or Ruby code, with a few about startups or gadgets thrown in for color.

You can learn more about me on Github and my personal homepage.</description><title>Tejus's Programming and startup blog</title><generator>Tumblr (3.0; @tejustechblog)</generator><link>http://tech.tejusparikh.com/</link><item><title>Merging Multiple Git Repos into One</title><description>&lt;p&gt;In order to make life easier for our development team, we recently undertook the task of merging all of our separate application repositories into one, all inclusive repo. Logically, the previous structure looked like:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m4mxeuIc5t1qagzx4.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;What we wanted was this structure:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m4mxodwcWj1qagzx4.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;Ideally, we&amp;#8217;d find some way to preserve the histories of the files on trunk. We made the decision not to preserve the branches. This was not a big deal. The nature of the multi-repo approach meant that all branches were useless, if anyone bothered to branch at all.&lt;/p&gt;

&lt;p&gt;Unifying these repos while preserving the history of the files on the respective trunks was pretty straight forward with some &lt;code&gt;git&lt;/code&gt; magic and elbow grease.&lt;/p&gt;

&lt;h4&gt;Step 1: Create the Repo&lt;/h4&gt;

&lt;p class="embed_gist"&gt;&lt;a href="http://gist.github.com/2794261" target="_blank"&gt;&lt;a href="http://gist.github.com/2794261" target="_blank"&gt;http://gist.github.com/2794261&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;Step 2: Import Existing Code&lt;/h4&gt;

&lt;p&gt;You&amp;#8217;ll need to do the following two steps for each of the repositories you want to combine into the monolithic one.&lt;/p&gt;

&lt;p class="embed_gist"&gt;&lt;a href="http://gist.github.com/2794271" target="_blank"&gt;&lt;a href="http://gist.github.com/2794271" target="_blank"&gt;http://gist.github.com/2794271&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These commands add the existing repository as a remote for your monolithic repo, then fetch the changes into that repo. The merge command takes whats in the existing repo and puts it on the &lt;code&gt;master&lt;/code&gt; branch of monolithic repo.&lt;/p&gt;

&lt;p&gt;While fetching the each additional remote, you will receive warnings about the lack of common commits. This is okay. The files do not have a shared history.&lt;/p&gt;

&lt;h4&gt;Step 3: Copy the merged files into the correct subdirectory&lt;/h4&gt;

&lt;p&gt;This is the bit that requires some elbow grease.  When you merge the remote repo, the merged repo is going to have all the directories at the top level. Most likely you&amp;#8217;ll want these in a sub directory. I used &lt;code&gt;Finder&lt;/code&gt; to move the files I wanted.&lt;/p&gt;

&lt;p&gt;After the files were in the correct subdirectory, I used the following git commands to properly add the changes so that the history won&amp;#8217;t be lost.&lt;/p&gt;

&lt;p class="embed_gist"&gt;&lt;a href="http://gist.github.com/2794712" target="_blank"&gt;&lt;a href="http://gist.github.com/2794712" target="_blank"&gt;http://gist.github.com/2794712&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The important line is &lt;code&gt;git add -u&lt;/code&gt; which will mark all the removed files as renames when used in conjunction with &lt;code&gt;git add &amp;lt;subdir_name&amp;gt;&lt;/code&gt;. This is the trick to maintaining history.&lt;/p&gt;

&lt;h4&gt;All done&lt;/h4&gt;

&lt;p&gt;You&amp;#8217;ll need to repeat steps 2 and 3 for each of the repos you want to merge. Once you&amp;#8217;ve finished, you should have one complete monolithic repo. Happy branching!&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/23806008499</link><guid>http://tech.tejusparikh.com/post/23806008499</guid><pubDate>Sat, 26 May 2012 13:29:43 -0400</pubDate></item><item><title>One Repo to Rule them All?</title><description>&lt;p&gt;For the longest time our projects were setup in a mostly canonical maven way. Each module was separated into multiple sub modules. Each top level module got its own source-control repository.&lt;/p&gt;

&lt;p&gt;The initial idea was each module was its own thing and our lives would be easier if we could version each project independently.&lt;/p&gt;

&lt;p&gt;Reality did not match up with that thought. Our features and functionality grew along with the pace of our major releases. The once separated modules became developed concurrently as they call communicated with each other. To manage the maven tree, we have to either use SNAPSHOT everywhere or version everything. Each of those solutions have problems.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve never had to manage this much source code changing this fast, so I could use some advice. I think the best solution would be to merge all the individual repositories into one repo. In my head, these are the pro&amp;#8217;s and con&amp;#8217;s I can think of:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Pro:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;All source code is managed globally across all projects, allowing for coherent feature branching&lt;/li&gt;
&lt;li&gt;With a guaranteed source tree layout, we can write tools to manage maven that will work for all developers&lt;/li&gt;
&lt;li&gt;A developer can get back to the state of any arbitrary build. This could be crucial for rebuilding production artifacts for a damaged system&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Con:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;We can no longer tie specific modules to specific dependencies. Changing a core library will effect everything.&lt;/li&gt;
&lt;li&gt;We lose some access control. We may not want contractors working on core code, but only the Web front end.&lt;/li&gt;
&lt;li&gt;Similar to above, but developers will be forced to check out everything. With the wrong VCS, downloading branches and tags could be very expensive.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;What I&amp;#8217;d like to know is what else am I not thinking of? Has anyone else had some experience they&amp;#8217;d like to share? Please leave a comment or send a tweet &lt;a href="http://twitter.com/vi_jedi" target="_blank"&gt;@vi_jedi&lt;/a&gt;.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/23521576501</link><guid>http://tech.tejusparikh.com/post/23521576501</guid><pubDate>Mon, 21 May 2012 22:28:37 -0400</pubDate><category>programming</category><category>vcs</category><category>question</category></item><item><title>Techcruch Talks about Scribit</title><description>&lt;a href="http://techcrunch.com/2012/04/18/scribit-launch/"&gt;Techcruch Talks about Scribit&lt;/a&gt;: &lt;p&gt;Anthony Ha from Techcrunch interviewed our President Joe Fiveash about &lt;a href="http://www.scribit.com" target="_blank"&gt;Scribit&lt;/a&gt;.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/21347016060</link><guid>http://tech.tejusparikh.com/post/21347016060</guid><pubDate>Wed, 18 Apr 2012 18:53:06 -0400</pubDate></item><item><title>JQuery Line Ellipsis</title><description>&lt;p&gt;I&amp;#8217;ve been using the &lt;a href="https://github.com/sakura-sky/jquery-ellipsis" target="_blank"&gt;jQuery Ellipsis&lt;/a&gt; plugin on a few projects. However, on my latest one, I had the need to truncate text not on fixed heights, but a set number of lines.&lt;/p&gt;

&lt;p&gt;I modified the plugin to do just that and threw it up on &lt;a href="https://github.com/vijedi/Line-Ellipsis" target="_blank"&gt;github&lt;/a&gt;. The Line Ellipsis plugin is still a work in progress, since detecting the size of a line is very unreliable. If you try it out and have problems, open a GitHub ticket. Or better yet, create a pull request.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/21126179315</link><guid>http://tech.tejusparikh.com/post/21126179315</guid><pubDate>Sat, 14 Apr 2012 23:39:56 -0400</pubDate></item><item><title>Testing Like the TSA</title><description>&lt;a href="http://37signals.com/svn/posts/3159-testing-like-the-tsa"&gt;Testing Like the TSA&lt;/a&gt;: &lt;p&gt;David’s post perfectly describes my frustration with TDD, especially in long lived and complex projects.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/20912341765</link><guid>http://tech.tejusparikh.com/post/20912341765</guid><pubDate>Wed, 11 Apr 2012 14:12:47 -0400</pubDate><category>tdd</category><category>ruby on rails</category><category>software development</category></item><item><title>Introducing Scribit</title><description>&lt;p&gt;If you haven&amp;#8217;t seen me in a while, its been because I&amp;#8217;ve been so heads down in work. We&amp;#8217;ve been pushing really hard over the last few weeks building out our new product &lt;a href="http://www.scribit.com" target="_blank"&gt;Scribit&lt;/a&gt;. Scribit is a subscription service that gives any website access to high quality content from some of the top publishing brands.&lt;/p&gt;

&lt;p&gt;A business has to sell something to make money. Content helps convince people that what you are selling is what they need to buy.&lt;/p&gt;

&lt;p&gt;Lets say that you run a store selling craft beer. You want to tell people something about the beers that you offer. Before Scribit, you really only had two choices. The first is to write all that content yourself. Tasting beer is fun, writing about is a little less fun, but either way it takes a lot of time.&lt;/p&gt;

&lt;p&gt;Of course, there are lots of sites that have good beer reviews. However they are all ad supported. Linking to one of those sites carries the risk that your visitor will see the ad for your competitor down the street and visit her shop instead.&lt;/p&gt;

&lt;p&gt;Scribit allows you to take that content and put it on your site legally. If you&amp;#8217;ve got Scribit, all you have to do is search for &amp;#8220;craft beer.&amp;#8221;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m22ie8UdmE1qagzx4.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;Once you&amp;#8217;ve found an article you like, it&amp;#8217;s a matter of deciding where on your site it appears and which social networks you want to publish to.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m22ivoBz9S1qagzx4.png" alt=""/&gt;&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s it. The article is now in my &lt;a href="http://twitter.com/#!/vi_jedi/status/188315747691405313" target="_blank"&gt;twitter feed&lt;/a&gt; and  &lt;a href="http://scrb.me/fy" target="_blank"&gt;on my site&lt;/a&gt;. It&amp;#8217;s that easy.&lt;/p&gt;

&lt;p&gt;We&amp;#8217;ve put Scribit through the paces in a private beta period and now &lt;a href="http://www.scribit.com/app/signup" target="_blank"&gt;we&amp;#8217;re opening it up&lt;/a&gt; for everyone. All new Scribit accounts start with a 30-day free trial. I also have a few complimentary subscriptions that I can hand out. DM me for details.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/20599464739</link><guid>http://tech.tejusparikh.com/post/20599464739</guid><pubDate>Fri, 06 Apr 2012 14:01:18 -0400</pubDate></item><item><title>SXSW: Recap</title><description>&lt;p&gt;SXSW has come and gone. Unlike all the live bloggers and active tweeters, I dropped into a social media hole and decided to just lump all my posts together from the safety and comfort of my Atlanta home.&lt;/p&gt;

&lt;p&gt;A hot topic during the conference was the quality of the conference itself. From the reactions of people that had gone in the past, I was expecting something magical and compelling. In many ways, I was underwhelmed.&lt;/p&gt;

&lt;p&gt;The panels were incredibly hit or miss. I had maybe two that I found very interesting, two more that were compelling, most were mediocre, and a few that were only memorable for being awful.&lt;/p&gt;

&lt;p&gt;The entire event had the air of a &lt;a href="http://en.wikipedia.org/wiki/Potemkin_village" target="_blank"&gt;Potemkin Village&lt;/a&gt;. All the special buildings and events put together by brands like American Express, Chevrolet, CNN, Turner, Nokia and Microsoft seemed to be erected to hide the lack of real substance in this year&amp;#8217;s event. It&amp;#8217;s not the brand&amp;#8217;s fault. I think they are trying just has hard as anyone else to engage with their audiences. It seems that it&amp;#8217;s more the matter of getting too large too fast.&lt;/p&gt;

&lt;p&gt;The question of whether I would go again is remarkably complicated. Over the course of four days, I only had one great session and went to only one great party.&lt;/p&gt;

&lt;p&gt;The biggest bright spot was all the interesting people I met. The joy of attending a cross-functional social conference is that you meet individuals who you wouldn&amp;#8217;t normally come across. I talked to advertising reps, programmers, marketers, entrepreneurs, writers, financiers, social media managers and many more over the course of the event. That just doesn&amp;#8217;t happen in the common industry focused events.&lt;/p&gt;

&lt;p&gt;I felt pretty confident that I wouldn&amp;#8217;t be back next year up until I got to the gate for the flight back to Atlanta. Out of the blue, someone recognized me from twitter. With him was some guy I randomly met in a restaurant nearly two years ago. Near us was a common colleague with a few of her friends, one of whom happened to sit next to me on the flight. Three reconnections and a new friend in what is normally a mundane event.&lt;/p&gt;

&lt;p&gt;Looking back, that happened a lot over the course of the weekend. I think I&amp;#8217;ll be back.&lt;/p&gt;

&lt;p&gt;As for the panels (in quasi chronological order):
&lt;a href="http://tech.tejusparikh.com/post/19121722444/sxsw-panel-on-pitching-startups-to-agencies-and-brands" target="_blank"&gt;Pitching Startups to Brands&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19264349647/sxsw-the-f1-talk" target="_blank"&gt;F1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19264716212/sxsw-story-telling-for-entrepreneurs" target="_blank"&gt;Story Telling for Entrepreneurs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19265847281/sxsw-interesting-companies-that-had-beer" target="_blank"&gt;Interesting Companies that Had Beer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19266225485/sxsw-html-5-apis" target="_blank"&gt;HTML 5 API&amp;#8217;s&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19267206863/sxsw-real-time-data-changes-consumption-habits" target="_blank"&gt;Real Time Data Changes Consumption Habits&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19269003479/sxsw-fast-css" target="_blank"&gt;Fast CSS&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19269253999/sxsw-the-power-of-computation" target="_blank"&gt;Power of Computation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19270139678/sxsw-kafka-didnt-have-tumblr" target="_blank"&gt;Kafka Didn&amp;#8217;t Have Tumblr&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19271483699/sxsw-the-secrets-of-scaling-two-sided-markets" target="_blank"&gt;The Secrets of Scaling Two Sided Markets&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.tejusparikh.com/post/19272295716/sxsw-data-visualization-for-change" target="_blank"&gt;Data Visualization for Change&lt;/a&gt;&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19274584516</link><guid>http://tech.tejusparikh.com/post/19274584516</guid><pubDate>Tue, 13 Mar 2012 23:32:00 -0400</pubDate></item><item><title>SXSW: Data Visualization for Change</title><description>&lt;p&gt;The amount of data available almost as an inverse relation to how actionable that information is. Proper representation is key for creating change.&lt;/p&gt;

&lt;p&gt;The first panelist spoke to this topic and presented his workflow on how he creates visualization for large data sets. His best slide was one that showed all the iterations that went into his visualization for &lt;a href="http://oecdbetterlifeindex.org/" target="_blank"&gt;OECD&amp;#8217;s life index&lt;/a&gt;. Responding to feed back is crucial for creating a representation that makes sense. In the interactive world, working with end user feed back is just as critical.&lt;/p&gt;

&lt;p&gt;One fact they discovered through the usage of the form was people weren&amp;#8217;t weighting each indicator as randomly as they had hoped. This reduced the effectiveness of the message the OECD is attempting to promote. A future revision is planned to account for this.&lt;/p&gt;

&lt;p&gt;The second presenter was completely unprepared, showed a video, had technical difficulties and talked for far to long. It seemed like the appropriate time to call it a conference and head on out.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19272295716</link><guid>http://tech.tejusparikh.com/post/19272295716</guid><pubDate>Tue, 13 Mar 2012 22:50:50 -0400</pubDate></item><item><title>SXSW: The Secrets of Scaling Two Sided Markets</title><description>&lt;p&gt;This was by far my favorite talk.&lt;/p&gt;

&lt;p&gt;Two sided markets are everywhere. Two examples are bank cards and merchants, and content producers and content consumers. However, there are not any good frameworks for evaluating the optimal growth strategy for markets that exhibit this behavior.&lt;/p&gt;

&lt;p&gt;The presenters set out to create an applicable model. The first step was analyzing the types of variables that would go into this model. Since they were approaching the problem of expanding a payments network, they chose to focus on merchants and card holders.&lt;/p&gt;

&lt;p&gt;They settled on a few key metrics, such as cost of acquisition for a card holder, the cost of acquisition for a merchant, and the number of each side that would have to exposed to the service before converting to use the service. They modeled the transactional behavior of card holders and merchants with two &lt;a href="http://en.wikipedia.org/wiki/Power_law" target="_blank"&gt;power law graphs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;They decided to explore a few different strategies using this model over the course of a set number of rounds. The first three were one sided, focusing entirely on either consumers, low-volume merchants, or high-volume merchants. They also tried a few mixed strategies, alternating between consumers and low-volume merchants, or consumers and high-volume merchants.&lt;/p&gt;

&lt;p&gt;With their example input, focusing on consumers was the correct course of action. However since the inputs are variable, one could run extra simulations to find the breaking point, or adjust it for real world feedback, such as a different acquisition cost.&lt;/p&gt;

&lt;p&gt;Since so much of building a market is guestimation, it would be wonderful to have access to a configurable model such as this. If they make the code available, I will definitely be adding some &lt;a href="http://www.r-project.org/" target="_blank"&gt;R&lt;/a&gt; skill and playing with it.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19271483699</link><guid>http://tech.tejusparikh.com/post/19271483699</guid><pubDate>Tue, 13 Mar 2012 22:37:07 -0400</pubDate></item><item><title>SXSW: Kafka Didn't Have Tumblr</title><description>&lt;p&gt;I decided to drop into an arty session since it was near where I found parking. The topic was how the digital world is shaping how designers present things in the physical world an it&amp;#8217;s implications.&lt;/p&gt;

&lt;p&gt;The panel included a few artists that use art to question morality. These people generally annoy me and this session was no different. The single dumbest comment was what to the speaker was the very profound question of &amp;#8220;if a google street view car sees something awful happening, will it stop?&amp;#8221; Even she had the remarkable insight that cars have drivers. I get that the (Panopticon)[http://en.wikipedia.org/wiki/Panopticon] is a chilling concept, but the core of it is that some judgmental being is watching. I think this analogy breaks down with the sheer amount of image data being produced.&lt;/p&gt;

&lt;p&gt;Other than the panopticists, the rest of the panel was entertaining, if not interesting. One presenter made a compelling comparison between the commercial imagery during the space race and what we see today. Those images look dated today precisely because they captured te public imagination at the time.&lt;/p&gt;

&lt;p&gt;One presenter built his presentation around a sign that read &amp;#8220;this restaurant is now close.&amp;#8221; he was fascinated by a set of small musical segments that when played in shuffle mode created new music. I believe his concept is called a &amp;#8220;composer.&amp;#8221;&lt;/p&gt;

&lt;p&gt;The final presenter and the organizer of the panel was the best. He brought into question how much of traditional philosophy and thought is applicable in this constantly connected environment. He related what is happening in the sharing-internet to what the scientist are doing at CERN with the LHC. Like &lt;a href="http://lolcats.icanhascheezburger.com/" target="_blank"&gt;pictures of cats&lt;/a&gt; or &lt;a href="http://selleckwaterfallsandwich.tumblr.com/" target="_blank"&gt;Tom Selleck with a waterfall and a sandwhich&lt;/a&gt; finding the Higgs Boson does not have any practical application today. However, that does not mean finding the Higgs Boson has no value. Likewise, this whole social sharing, micro-blogging, silly picture culture of today may seem pointless, but it may lead to a more compelling or interesting future.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19270139678</link><guid>http://tech.tejusparikh.com/post/19270139678</guid><pubDate>Tue, 13 Mar 2012 22:15:21 -0400</pubDate></item><item><title>SXSW: The Power of Computation</title><description>&lt;p&gt;&lt;a href="http://www.stephenwolfram.com/" target="_blank"&gt;Stephen Wolfram&lt;/a&gt; gave a talk on this topic. It ended up as a demo of &lt;a href="http://www.wolframalpha.com/" target="_blank"&gt;Wolfram Alpha&lt;/a&gt;. Wolfram Alpha is cool, but I&amp;#8217;ve scene it before. I felt this was a missed opportunity to talk about some of the greater purpose behind the product.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19269253999</link><guid>http://tech.tejusparikh.com/post/19269253999</guid><pubDate>Tue, 13 Mar 2012 22:01:24 -0400</pubDate></item><item><title>SXSW: Fast CSS </title><description>&lt;p&gt;This was easily the nerdiest talk I attended. The core of the talk was a very developer level view of a modern CSS rendering engine.&lt;/p&gt;

&lt;p&gt;I can&amp;#8217;t find the slides from the talk, but the basic idea is that there are multiple stages to rendering CSS. Each of those stages could be optimized or skipped depending on the change.&lt;/p&gt;

&lt;p&gt;For instance, if one is doing multiple actions on a single element, the browser engine will batch those operations to avoid multiple refreshes. Writing a property, followed by an immediate read will cause that operations buffer to be flushed, resulting in sub optimal performance.&lt;/p&gt;

&lt;p&gt;A few other items I learned in the talk were that most browsers only refresh at 60Hz, since that&amp;#8217;s the refresh rate of most computer monitors. There is no reason to waste extra CPU cycles if they will only result in an unseen change. Also, most browsers read selectors right to left. Therefore for optimal performance, you would want a match to be as specific as possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: David Baron resent me the link to &lt;a href="http://dbaron.org/talks/2012-03-11-sxsw/slide-1.xhtml" target="_blank"&gt;his talk&lt;/a&gt;&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19269003479</link><guid>http://tech.tejusparikh.com/post/19269003479</guid><pubDate>Tue, 13 Mar 2012 21:57:00 -0400</pubDate></item><item><title>SXSW: Real-Time Data Changes Consumption Habits</title><description>&lt;p&gt;This session covered how access to real-time data changes consumption patterns. I know this is true, since where people check into Foursquare can change who I call to bring me back lunch.&lt;/p&gt;

&lt;p&gt;This was an open conversation and it seemed that the talkative attendees of the session were weighted towards the healthcare industry. Many were seeking to use realtime data to drive better preventive health. One individual would like to reward individuals for attending the gym. However, the information from the gyms is only available once a week, so the effectiveness of the program is reduced.&lt;/p&gt;

&lt;p&gt;A few others were working on applications that tracked user behavior through smart phones. They had much more success in changing their users behaviors towards positive outcomes. For instance, knowing how many calories one consumed caused users to reduce their calorie load.&lt;/p&gt;

&lt;p&gt;There were a few cognitive scientists in the room. One of which raised the point that immediate feedback loops have been shown to improve performance but not learning. So if one were given a simple task, that person would get better at with immediate feedback. However, after some period of time of not doing the task, that person would revert to the mean. In contrast, delayed loops have been shown to increase the mean.&lt;/p&gt;

&lt;p&gt;The final core component of the discussion was feedback fatigue. While many in the room agreed too many notifications created insensitivity, there was a healthy discussion about whether automatically configurable or user-configurable options were desired. Most of the non-programmers in the room would have preferred that the system figured out that it should not contact them.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19267206863</link><guid>http://tech.tejusparikh.com/post/19267206863</guid><pubDate>Tue, 13 Mar 2012 21:30:07 -0400</pubDate></item><item><title>SXSW: HTML 5 API's</title><description>&lt;p&gt;This talk was not that memorable. I had initially forgotten that I had attended (thank you Foursquare).&lt;/p&gt;

&lt;p&gt;This was a basic overview of some of the new api&amp;#8217;s available. The only thing really new for me was the number of storage options available.&lt;/p&gt;

&lt;p&gt;This talk had a tagline saying that HTML5 will change web design, but the speaker never covered how.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19266225485</link><guid>http://tech.tejusparikh.com/post/19266225485</guid><pubDate>Tue, 13 Mar 2012 21:15:18 -0400</pubDate></item><item><title>SXSW: Interesting Companies that Had Beer</title><description>&lt;p&gt;SXSW is full of companies looking to give beer away in exchange for them showing you their wares.&lt;/p&gt;

&lt;p&gt;The coolest product I saw at SXSW was this little robotic ball that you could control with your iOS device. It could move in all directions, change colors and looked like a great novelty item. I hope that it&amp;#8217;s saliva proof, as it would make an excellent dog tormentor.&lt;/p&gt;

&lt;p&gt;An interesting company was NewsIT. They are attempting to prove some structure and verification around user generated news. On interesting idea is analyzing tweets for correlation. If a large ratio of  tweets have similar content, one can say with some certainty  that the content is true. They also had iReport-like functionality, plus gamification. Uploaders might like that, but I think most will continue to upload to iReport since it is a bigger, well known brand&lt;/p&gt;

&lt;p&gt;I wandered over to the Nokia center where they were pretty heavily pushing their new phone. I found it illuminating that none of their displays or comparisons had any iOS devices within site. They had clearly set their eyes on Blackberry and Android. The phone itself was nice, but I don&amp;#8217;t find very much compelling about the non-iOS mobile space.&lt;/p&gt;

&lt;p&gt;I have to throw a special shout out to the blog SXSW Fail, who &amp;#8220;kidnapped&amp;#8221; @jeremyporter, @rkischuk and I on the way to a party by putting us on a trolley bus and giving us beer. The fact that they don&amp;#8217;t have a microsite is what I would consider a SXSW Fail.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19265847281</link><guid>http://tech.tejusparikh.com/post/19265847281</guid><pubDate>Tue, 13 Mar 2012 21:09:38 -0400</pubDate></item><item><title>SXSW: Story Telling for Entrepreneurs </title><description>&lt;p&gt;I spend most of my time writing code. Sometimes, because I&amp;#8217;m so deep in the weeds, I find it hard to explain what I&amp;#8217;m doing eloquently and succinctly. I was looking forward to this session in hopes that I could pick up a few tips.&lt;/p&gt;

&lt;p&gt;The session started well enough with a clip from an interview with Howard Shultz. It was a great demonstration of a good story. Then the presenter spoke. Then he showed another clip of Howard Shultz, then a graph on how stories are constructed, then another clip, then the same graph. Since telling disorganized and boring stories that are a far too long was not my goal, I decided to leave this session early.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19264716212</link><guid>http://tech.tejusparikh.com/post/19264716212</guid><pubDate>Tue, 13 Mar 2012 20:52:31 -0400</pubDate></item><item><title>SXSW: The F1 Talk</title><description>&lt;p&gt;My first SXSW session foreshadowed the rest of the SXSW experience.&lt;/p&gt;

&lt;p&gt;The description for the talk was full of technical details and allusions to concepts like KERS, tires, and material science. I really like Le Mans prototypes and F1, not only because they can turn right and drive in the rain, because they push the technology envelope.&lt;/p&gt;

&lt;p&gt;Half the talk was about the new &lt;a href="http://circuitoftheamericas.com/" target="_blank"&gt;Circuit of the Americas&lt;/a&gt;. This would have been okay by me if he talked about the design inspirations for the track, but much of this segment was about how many fans could fit, the amenities, and the number of luxury boxes.&lt;/p&gt;

&lt;p&gt;He included a few tidbits about technology, along with a few good pictures of McLaren factory, which just looks awesome. Before this talk, I had not realized how much teams like Williams and McLaren rely on their technology consulting arms and that Ferrari has McLaren analyze some of its data.&lt;/p&gt;

&lt;p&gt;Still, I felt I would have been better served watching an hour of the BBC&amp;#8217;s pre-race coverage than attending this talk.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19264349647</link><guid>http://tech.tejusparikh.com/post/19264349647</guid><pubDate>Tue, 13 Mar 2012 20:46:59 -0400</pubDate><category>sxsw</category></item><item><title>SXSW: Panel on pitching startups to agencies and brands</title><description>&lt;p&gt;Somebody complained that I&amp;#8217;m not filling up the Internet with more junk about sxsw. So to rectify that, these were my thoughts on the session.&lt;/p&gt;

&lt;p&gt;The panelists were the leader of tech stars NY, a signage startup and an agency.&lt;/p&gt;

&lt;p&gt;One interfering fact was the high percentage of media or advertising startups coming through tech stars. It almost makes you wonder if there are two guys in a coffee house in NY trying desperately to build a SASS Internet security company, but getting no traction with investors because they don&amp;#8217;t sell ads or clothes.&lt;/p&gt;

&lt;p&gt;The rest of the panel was straightforward. Pitching to brands and agencies effectively is to find a champion for your startup within the organization, explain how the collaboration can help them, and help them explain to the organization why they should do it.&lt;/p&gt;

&lt;p&gt;Finding responsive organizations is a matter of looking around and seeing who is having events in your space or launching campaigns similar to what you provide.&lt;/p&gt;

&lt;p&gt;The organization&amp;#8217;s biggest fear is that they will end up looking stupid, so try to avoid going out of business while the campaign is ongoing. The risk to them is further mitigated by demonstrating measurable short term results, instead of relying on a future &amp;#8220;cool&amp;#8221; halo (ie &amp;#8220;you could be first brand on the next twitter&amp;#8221;).&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/19121722444</link><guid>http://tech.tejusparikh.com/post/19121722444</guid><pubDate>Sun, 11 Mar 2012 11:56:00 -0400</pubDate></item><item><title>Achieving Hackmode</title><description>&lt;p&gt;If you know programmers, you know that they get into &lt;a href="http://catb.org/jargon/html/H/hack-mode.html" target="_blank"&gt;hack mode&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lately I&amp;#8217;ve been trying to figure out why I can lose whole afternoons doing CSS, Javascript, or Ruby, but can&amp;#8217;t seem to work up that level of concentration in Java.&lt;/p&gt;

&lt;p&gt;After some observations, I think the difference comes down to the tools. When I&amp;#8217;m working in those ligher weight languages, I&amp;#8217;m normally using &lt;a href="http://www.sublimetext.com/" target="_blank"&gt;Sublime Text&lt;/a&gt;. It&amp;#8217;s not a super powerful tool, but it has syntax highlighting, some very basic completion, and it&amp;#8217;s super fast. Key-presses are instantaneous, files open before you can blink, all the dialogs are there almost before one hits the keystrokes before it&amp;#8217;s open.&lt;/p&gt;

&lt;p&gt;With Java, you can&amp;#8217;t use something like Sublime. The language is designed to help programmers be correct at compilation, which means that it&amp;#8217;s possible (and almost required) for your tools to tell you a lot. When programming Java, I use &lt;a href="http://www.jetbrains.com/idea/" target="_blank"&gt;Intellij&lt;/a&gt;. In almost every way, Intellij is wonderful. The refactorings are major time savers and the introspections help keep the code clean and point out stupid bugs before I run the code.&lt;/p&gt;

&lt;p&gt;All that knowledge comes at a cost. Every action, from keypresses, to dialogs, autocomplete, and opening files has a cost. Almost every action the program requires analysis and this introduces lag.&lt;/p&gt;

&lt;p&gt;Lag in any interactive processes triggers the &amp;#8220;this is not real&amp;#8221; brainwave. Once that connection is broken, focus is lost, other thoughts creep in, and hack mode is lost.&lt;/p&gt;

&lt;p&gt;I think this is why many programmers find themselves more useful in dynamic languages. Once can make the Java toolset as streamlined and process efficient as a Ruby one, but lag in the Java tools ruin the experience.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/18362179650</link><guid>http://tech.tejusparikh.com/post/18362179650</guid><pubDate>Sun, 26 Feb 2012 22:46:15 -0500</pubDate></item><item><title>Access Denied Error when using XHR PUT and DELETE</title><description>&lt;p&gt;Late one night, I was attempting to wire up a delete button on a Rails app using XHR.  However, every time I attempted to make the XHR call, I saw &lt;code&gt;AccessDenied&lt;/code&gt; in the server log and my session was un authenticated. Since it was late, I remapped it to a different URL and moved on.&lt;/p&gt;

&lt;p&gt;However, the fact that this did not work still bothered me and when I revisited it after a good night&amp;#8217;s sleep, the answer was quite obvious. My Ajax setup (copied from many Rails projects ago) looked like:&lt;/p&gt;

&lt;p class="embed_gist"&gt;&lt;a href="http://gist.github.com/1769263" target="_blank"&gt;&lt;a href="http://gist.github.com/1769263" target="_blank"&gt;http://gist.github.com/1769263&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was only setting the &lt;code&gt;X-CSRF-Token&lt;/code&gt; on a &lt;code&gt;POST&lt;/code&gt;. Therefore, when the server received the &lt;code&gt;DELETE&lt;/code&gt; verb, it killed the session, thinking that something was afoul.&lt;/p&gt;

&lt;p&gt;Changing that line to:&lt;/p&gt;

&lt;p class="embed_gist"&gt;&lt;a href="http://gist.github.com/1769443" target="_blank"&gt;&lt;a href="http://gist.github.com/1769443" target="_blank"&gt;http://gist.github.com/1769443&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;fixed the issue in the correct way.&lt;/p&gt;</description><link>http://tech.tejusparikh.com/post/17262580378</link><guid>http://tech.tejusparikh.com/post/17262580378</guid><pubDate>Wed, 08 Feb 2012 08:22:41 -0500</pubDate><category>ruby</category><category>ruby on rails</category><category>security</category></item></channel></rss>

