<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Research</title>
	
	<link>http://lexfridman.com/blogs/research</link>
	<description>Notes on papers, ideas, technologies in computer science and beyond. New blog post every Saturday and Tuesday.</description>
	<lastBuildDate>Fri, 04 May 2012 03:39:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/lexsresearch" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="lexsresearch" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Some Tips on How to Use Google Search</title>
		<link>http://lexfridman.com/blogs/research/2012/05/03/some-tips-on-how-to-use-google-search/</link>
		<comments>http://lexfridman.com/blogs/research/2012/05/03/some-tips-on-how-to-use-google-search/#comments</comments>
		<pubDate>Fri, 04 May 2012 03:39:10 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/?p=269</guid>
		<description><![CDATA[Here are some tips that I often use in searching for information on Google, and after talking to my dad a month or so ago, I realized that these are not obvious things, but they do make my life a &#8230; <a href="http://lexfridman.com/blogs/research/2012/05/03/some-tips-on-how-to-use-google-search/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here are some tips that I often use in searching for information on Google, and after talking to my dad a month or so ago, I realized that these are not obvious things, but they do make my life a bit easier.</p>
<h2>Search by Year</h2>
<p>This is probably the biggest one for me, because for a lot of the information I search for, the date of the content is proportional to its value to me. It&#8217;s an undeniable fact that not only the content, but the presentation of the content online gets noticeably better year to year. So, put a year or a range of years into your query like this:</p>
<pre>2010..2012</pre>
<h2>Exact Phrase</h2>
<p>Use quotes! If you use quotes around a phrase, Google will put more emphasis on the exact phrase and not just on the individual keywords that make up the phrase. So, again, use quotes:</p>
<pre>"African swallow"</pre>
<h2>File Type</h2>
<p>Sometimes I&#8217;m looking for pdf&#8217;s or mp3&#8242;s or some abscure file format, and that where the &#8220;filetype&#8221; label works its magic:</p>
<pre>filetype:pdf</pre>
<h2>Other Powerful Stuff I Never Use</h2>
<p>There are a few query operators that I always loved the <strong>idea</strong> of, but never find myself actually using. Here are some examples off the top of my head&#8230;</p>
<p>Search for terms in the title tag of the page. Basically, this is for when you know that a page you really want might have this term or phrase in its title:</p>
<pre>intitle:"African swallow"</pre>
<p>You can exclude terms from a search via the &#8211; operator, but somehow I always end up doing manual pruning of results vs explicit exclusion in the query:</p>
<pre>"African swallow" -"Monty Python"</pre>
<h2>Be Yourself</h2>
<p>All that said, I think that Google has been very effective at guessing at the intention of the regular user. So while you should try to help Google out, also don&#8217;t try to be clever. Try to think like an average somewhat-tech-inclined Joe Blow would because that is who Google is optimizing its search engine for.</p>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2012/05/03/some-tips-on-how-to-use-google-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Include Full BibTeX Entry Inside Text</title>
		<link>http://lexfridman.com/blogs/research/2012/01/28/include-full-bibtex-entry-inside-text/</link>
		<comments>http://lexfridman.com/blogs/research/2012/01/28/include-full-bibtex-entry-inside-text/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 21:27:43 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bibtex]]></category>
		<category><![CDATA[latex]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/?p=252</guid>
		<description><![CDATA[This isn&#8217;t rocket science, but you can insert BibTeX entries as you go, instead of (dumping all the references at the end in a &#8220;References&#8221; section. It&#8217;s useful when writing many chaotic pages of notes as you crawl through dozens &#8230; <a href="http://lexfridman.com/blogs/research/2012/01/28/include-full-bibtex-entry-inside-text/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This isn&#8217;t rocket science, but you can insert BibTeX entries as you go, instead of (dumping all the references at the end in a &#8220;References&#8221; section. It&#8217;s useful when writing many chaotic pages of notes as you crawl through dozens of publications on a particular topic you&#8217;re researching, or when making a slide presentation in <a href="http://en.wikipedia.org/wiki/Beamer_%28LaTeX%29">Beamer</a>.</p>
<pre class="brush: latex; title: ; notranslate">
\usepackage{bibentry}

\begin{document}

% don't show the full list of references
\nobibliography*

% include the bibtex file
\bibliography{database}

% reference individual bibtex entry 'bla'
\bibentry{bla}

% define the style of the bibentry citation
\bibliographystyle{style}

\end{document}
</pre>
<p>Another way is to use the <code>biblatex</code> package. Note, that at least in Ubuntu, you need to <code>biblatex</code> doesn&#8217;t come even with the full install of <code>texlive-all</code> and needs to be added seperately in the repository as a package of the same name.</p>
<pre class="brush: latex; title: ; notranslate">
% 'style' can be defined as options to this command
\usepackage{biblatex}

% \jobname is the name of this file
\addbibresource{\jobname.bib}

\begin{document}

% full bibliography section if you like
\printbibliography

% 'bla' is the bibtex entry label
\fullcite{bla}

\end{document}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2012/01/28/include-full-bibtex-entry-inside-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backward Compatibility in C++ Libraries</title>
		<link>http://lexfridman.com/blogs/research/2012/01/19/backward-compatibility-in-c-libraries/</link>
		<comments>http://lexfridman.com/blogs/research/2012/01/19/backward-compatibility-in-c-libraries/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 04:30:55 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[backward compatibility]]></category>
		<category><![CDATA[boost]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/?p=247</guid>
		<description><![CDATA[Backward compatibility is an important design goal of a software system that says that a new version of the software should play nice with the old version. As an example, Microsoft Windows has done a remarkably good job (in my opinion) &#8230; <a href="http://lexfridman.com/blogs/research/2012/01/19/backward-compatibility-in-c-libraries/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://lexfridman.com/blogs/research/files/2012/01/windows_95.jpg"><img class="alignleft size-medium wp-image-248" title="windows_95" src="http://lexfridman.com/blogs/research/files/2012/01/windows_95-300x227.jpg" alt="" width="300" height="227" /></a></p>
<p><a href="http://en.wikipedia.org/wiki/Backward_compatibility">Backward compatibility</a> is an important design goal of a software system that says that a new version of the software should play nice with the old version. As an example, Microsoft Windows has done a remarkably good job (in my opinion) of achieving backward compatibility over the years, while seemingly not planning ahead to any reasonable degree. Yes, that&#8217;s a compliment disguised as a criticism, or visa versa.</p>
<p>It seems that developing standards for a technology help make backward compatibility much easier to achieve in the future. This is probably due to the fact that getting a bunch of intelligent egos to agree on a standard requires a lot of discussion of the future, in the process helping clear out the cloud of uncertainty that is the cutting edge of tomorrow.</p>
<p>That&#8217;s why it&#8217;s always surprising to me when a well-established C++ library officially breaks backward compatibility as in <a href="http://www.boost.org/doc/libs/1_46_1/libs/filesystem/v3/doc/reference.html#path-deprecated-functions">this latest example from Boost</a>. It&#8217;s certainly easier to fix a design flaw by starting over. Whether this is the right approach for the long term success of a project is another question. In this case, I just smile, nod, and go back to update the old code to the new API.</p>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2012/01/19/backward-compatibility-in-c-libraries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WampServer vs XAMPP</title>
		<link>http://lexfridman.com/blogs/research/2011/09/11/wampserver-vs-xampp/</link>
		<comments>http://lexfridman.com/blogs/research/2011/09/11/wampserver-vs-xampp/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 19:50:33 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[wamp]]></category>
		<category><![CDATA[wampserver]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/2011/09/11/wampserver-vs-xampp/</guid>
		<description><![CDATA[This is not an Earth shattering post. Moreover, it’s not an objective one, that is, it is based on my experience and my experience only. WAMP is a bundle of Apache, MySql, and PHP (though often also Perl and/or Python) &#8230; <a href="http://lexfridman.com/blogs/research/2011/09/11/wampserver-vs-xampp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="background-image: none; border-right-width: 0px; margin: 0px 10px 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="wamp-server-easy-configuration-menu" border="0" alt="wamp-server-easy-configuration-menu" align="left" src="http://lexfridman.com/blogs/research/files/2011/09/wamp-server-easy-configuration-menu.png" width="228" height="301">This is not an Earth shattering post. Moreover, it’s not an objective one, that is, it is based on my experience and my experience only.</p>
<p><a href="http://en.wikipedia.org/wiki/WAMP">WAMP</a> is a bundle of <strong>A</strong>pache, <strong>M</strong>ySql, and <strong>P</strong>HP (though often also Perl and/or Python) for Windows. These are the things you need to run a dynamic website (in my case, for development and testing) on your computer in Windows. The idea is that a WAMP bundle makes the process of downloading, installing, and configuring the individual components easy and quick.</p>
<p>The two most popular WAMP tools are <a href="http://www.apachefriends.org/en/xampp.html">XAMPP</a> and <a href="http://www.wampserver.com/">WampServer</a>. I used XAMPP for a couple years, but it started disconnecting me from the internet recently for some unknown reason (that is probably my fault). I tried to fix it, and couldn’t especially given the conditions under which the problem arose were hard to pin down precisely.</p>
<p>So I installed WampServer instead last week, and I have to say that the basic task of turning everything on and off, tweaking configuring, enabling modules, changing versions of individual components, etc is a lot easier in WampServer. By “easier” I mean it’s more intuitive. The little menu that pops up from WampServer icon in the taskbar has all the options you need and none you don’t.</p>
<p>There may be people out there that have had a different experience, but I know I myself was wondering whether grass is greener on the other side, and in this case it was!</p>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2011/09/11/wampserver-vs-xampp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sorting a Sorted List in C++</title>
		<link>http://lexfridman.com/blogs/research/2011/07/04/sorting-a-sorted-list-in-c/</link>
		<comments>http://lexfridman.com/blogs/research/2011/07/04/sorting-a-sorted-list-in-c/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 19:14:04 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[stl]]></category>
		<category><![CDATA[vector]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/?p=218</guid>
		<description><![CDATA[It came to my attention that I didn&#8217;t know how well STL sorting algorithms performed on a vector of values that are already sorted. One would hope it would be close to \(O(n)\). This page does a comparison of various &#8230; <a href="http://lexfridman.com/blogs/research/2011/07/04/sorting-a-sorted-list-in-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It came to my attention that I didn&#8217;t know how well STL sorting algorithms performed on a vector of values that are already sorted. One would hope it would be close to \(O(n)\). <a href="http://warp.povusers.org/SortComparison/integers.html">This page</a> does a comparison of various algorithms on vectors that are sorted to varying degrees. However, I&#8217;m interested in the case when the vector is fully sorted. A simple \(O(n)\) would remove the need to run the sorting algorithm on a list that&#8217;s already sorted. It makes perfect sense that the STL implementation of <code>std::sort</code> does not perform this check. I confirmed this fact by running the following simple test:</p>
<pre class="brush: cpp; title: ; notranslate">
    for(int s=0; s&lt;=10; s++) {
        const int n = 1000 * 1000 * 10 * s;
        vector&lt;int&gt; v(n);
        iota(v.begin(), v.end(), 0);
        std::sort(v.begin(), v.end());
        std::is_sorted(v.begin(), v.end());
    }
</pre>
<p>The results with no optimization turned on:</p>
<p><a href="http://lexfridman.com/blogs/research/files/2011/07/sort-vs-is_sorted.png"><img class="alignnone size-large wp-image-225" title="C++ STL sort vs is_sorted" src="http://lexfridman.com/blogs/research/files/2011/07/sort-vs-is_sorted-1024x599.png" alt="" width="640" height="374" /></a></p>
<p>The results with -O2 optimization:</p>
<p><a href="http://lexfridman.com/blogs/research/files/2011/07/sort-vs-is_sorted1.png"><img class="alignnone size-large wp-image-227" title="sort-vs-is_sorted" src="http://lexfridman.com/blogs/research/files/2011/07/sort-vs-is_sorted1-1024x599.png" alt="" width="640" height="374" /></a></p>
<p><strong>Conclusion:</strong> if you expect that the list might be sorted more often than not, run <code>std::is_sorted</code> on it first.</p>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2011/07/04/sorting-a-sorted-list-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auto Save Files in Emacs</title>
		<link>http://lexfridman.com/blogs/research/2011/06/26/auto-save-files-in-emacs/</link>
		<comments>http://lexfridman.com/blogs/research/2011/06/26/auto-save-files-in-emacs/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 02:41:29 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[auto-save]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[saving]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/?p=206</guid>
		<description><![CDATA[I&#8217;m resolving to make more frequent and regular posts on this &#8220;research&#8221; blog that&#8217;s so far has been just a place where I write down some basic tips and tricks that have to do with tools I use in programming &#8230; <a href="http://lexfridman.com/blogs/research/2011/06/26/auto-save-files-in-emacs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 16px; font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px;">I&#8217;m resolving to make more frequent and regular posts on this &#8220;research&#8221; blog that&#8217;s so far has been just a place where I write down some basic tips and tricks that have to do with tools I use in programming (which is just one part of my research life). I&#8217;m not sure it&#8217;s ever going to be more than that. I take an enormous amounts of notes offline, but never quite make the effort to convert those notes into a form that I&#8217;m comfortable making public.</span></p>
<p>Anyway, to the topic of the post&#8230; <a title="Auto-Save Files in Emacs" href="http://www.gnu.org/software/libtool/manual/emacs/Auto-Save-Files.html">auto-save functionality in Emacs</a>. By default, Emacs auto-saves a buffer with changes in it to the same directory as the file opened in the buffer, but adds a character such as # or ~ to the beginning or end.</p>
<p>This auto-savin&#8217; can be turned off with:</p>
<pre class="brush: plain; title: ; notranslate">
(setq make-backup-files nil)
</pre>
<p>But today I turned it back on, and decided, since I use SVN anyway for versioning, that I will auto-save into the same file. This is achieved with the following:</p>
<pre class="brush: plain; title: ; notranslate">
(setq auto-save-visited-file-name t)
</pre>
<p>Also, I turned up the rate at which Emacs auto-saves the files.</p>
<pre class="brush: plain; title: ; notranslate">
(setq auto-save-interval 20) ; twenty keystrokes
(setq auto-save-timeout 10) ; ten idle seconds
</pre>
<p>Some useful links:</p>
<ul>
<li><a title="StackOverflow: Controlling when emacs makes backup files" href="http://stackoverflow.com/questions/4702845/how-do-i-control-when-emacs-makes-backup-files">SO: controlling when emacs makes backup files</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2011/06/26/auto-save-files-in-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software for Recording FLV Video Stream</title>
		<link>http://lexfridman.com/blogs/research/2011/06/04/software-for-recording-flv-video-stream/</link>
		<comments>http://lexfridman.com/blogs/research/2011/06/04/software-for-recording-flv-video-stream/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 23:26:03 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[jaksta]]></category>
		<category><![CDATA[orbit downloader]]></category>
		<category><![CDATA[replay media catcher]]></category>
		<category><![CDATA[rtmp]]></category>
		<category><![CDATA[video streaming]]></category>
		<category><![CDATA[wm recorder]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/2011/06/04/software-for-recording-flv-video-stream/</guid>
		<description><![CDATA[Live streaming FLV events are usually delivered via RTMP protocol. There are several tools that can capture these streams and others. Here is the list of the ones you should look into. Ones I’ve used and liked Jaksta Replay Media &#8230; <a href="http://lexfridman.com/blogs/research/2011/06/04/software-for-recording-flv-video-stream/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Live streaming FLV events are usually delivered via <a href="http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol">RTMP</a> protocol. There are several tools that can capture these streams and others. Here is the list of the ones you should look into.</p>
<ul>
<li>Ones I’ve used and liked</li>
<ul>
<li><a href="http://www.jaksta.com/">Jaksta</a></li>
<li><a href="http://applian.com/download-videos/">Replay Media Catcher</a></li>
<li><a href="http://www.wmrecorder.com/">WM Recorder</a></li>
</ul>
<li>Ones I haven’t used but heard are great</li>
<ul>
<li><a href="http://www.orbitdownloader.com/">Orbit Downloader</a></li>
</ul>
</ul>
<p>This is useful for recording live video streams of lectures or other events. I’m not sure what the legality of recording streams are. So I would consider it on a case by case basis, and contact the owners of the stream when in doubt.</p>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2011/06/04/software-for-recording-flv-video-stream/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Software Engineering is Not Communism</title>
		<link>http://lexfridman.com/blogs/research/2011/05/20/open-source-software-engineering-is-not-communism/</link>
		<comments>http://lexfridman.com/blogs/research/2011/05/20/open-source-software-engineering-is-not-communism/#comments</comments>
		<pubDate>Fri, 20 May 2011 13:31:34 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[code churn]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/?p=192</guid>
		<description><![CDATA[I&#8217;ve worked on a number of software engineering projects over the years that involve a group of 3-5 developers. I&#8217;ve also contributed to large open source projects of 20+ developers. The figure to the left is taken from a post &#8230; <a href="http://lexfridman.com/blogs/research/2011/05/20/open-source-software-engineering-is-not-communism/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://lexfridman.com/blogs/research/files/2011/05/open-source-software-engineering-pyramid.png"><img class="alignleft size-medium wp-image-193" title="open-source-software-engineering-pyramid" src="http://lexfridman.com/blogs/research/files/2011/05/open-source-software-engineering-pyramid-300x174.png" alt="" width="300" height="174" /></a>I&#8217;ve worked on a number of software engineering projects over the years that involve a group of 3-5 developers. I&#8217;ve also contributed to large open source projects of 20+ developers.</p>
<p>The figure to the left is taken from a post by the Qt guys on <a title="Open Governance Roles and Responsibilities" href="http://labs.qt.nokia.com/2011/05/20/open-governance-roles-and-responsibilities/">open governance roles</a>.</p>
<p>In my experience, the roles of developers should be structured precisely as the figure suggests: hierarchically. Despite the view of open source projects as being built &#8220;by the people&#8221;, the flat model simply does not work in a world populated by human beings (with egos and opinions). It&#8217;s the difference between representative democracy and pure democracy. The overwhelming number of design decisions and designer opinions can bring a project to a halt.</p>
<p>Structuring the developers in a pyramid may very well produce a worse (less maintainable, less general, more coupled, etc) design, but it <strong>will</strong> produce one, in a reasonable amount of time. Sometimes cold code churn is more important than the philosophical soundness of the design. The pyramid encourages code churn, and discourages stale mates over controversial design decisions.</p>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2011/05/20/open-source-software-engineering-is-not-communism/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>LaTeX and Google Docs</title>
		<link>http://lexfridman.com/blogs/research/2011/05/14/latex-and-google-docs/</link>
		<comments>http://lexfridman.com/blogs/research/2011/05/14/latex-and-google-docs/#comments</comments>
		<pubDate>Sat, 14 May 2011 14:24:48 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[google docs]]></category>
		<category><![CDATA[google web toolkit]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[latexlab]]></category>
		<category><![CDATA[mathjax]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/2011/05/14/latex-and-google-docs/</guid>
		<description><![CDATA[I came across a project called latexlab which seeks to develop a web-based LaTeX editor by utilizing the Google docs base editor and Google Web Toolkit. I played around with it for about 30 minutes and am very impressed. You &#8230; <a href="http://lexfridman.com/blogs/research/2011/05/14/latex-and-google-docs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://docs.latexlab.org/"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="google-docs-plus-latex" border="0" alt="google-docs-plus-latex" src="http://lexfridman.com/blogs/research/files/2011/05/google-docs-plus-latex.jpg" width="640" height="183"></a></p>
<p>I came across a project called <a href="http://docs.latexlab.org/">latexlab</a> which seeks to develop a web-based <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> editor by utilizing the <a href="http://code.google.com/p/gdbe/">Google docs base editor</a> and <a href="http://code.google.com/webtoolkit/overview.html">Google Web Toolkit</a>.</p>
<p>I played around with it for about 30 minutes and am very impressed. You can compile the LaTeX source using the cloud or locally. Of course, I imagine there are huge challenges that the developers have to overcome. As it stands now, the many offline LaTeX development environment are far superior for those willing to withstand the semi-steep learning curve and a bit of hacking.</p>
<p>The bottom line is that <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> does not garner much interest from the part of the developer community that likes the simple web-based (e.g. Google docs) editors. I think this project (or ones like it) will help standardize the writing of academic articles with extensive math content on the web. <a href="http://www.mathjax.org/">MathJax</a> is another project which is making the inclusion of LaTeX equations in webpages easy and beautiful.</p>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2011/05/14/latex-and-google-docs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 11.04 Unity Gets in the Way of the User</title>
		<link>http://lexfridman.com/blogs/research/2011/05/03/ubuntu-11-04-unity-gets-in-the-way-of-the-user/</link>
		<comments>http://lexfridman.com/blogs/research/2011/05/03/ubuntu-11-04-unity-gets-in-the-way-of-the-user/#comments</comments>
		<pubDate>Tue, 03 May 2011 11:46:15 +0000</pubDate>
		<dc:creator>Lex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[microsoft office]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://lexfridman.com/blogs/research/2011/05/03/ubuntu-11-04-unity-gets-in-the-way-of-the-user/</guid>
		<description><![CDATA[Ubuntu has released a new version (11.04) of its Linux operating system. Instead of going with Gnome 3, it went with Unity as the default desktop environment. I’ve now used both Unity and Gnome 3, and it continues to confuse &#8230; <a href="http://lexfridman.com/blogs/research/2011/05/03/ubuntu-11-04-unity-gets-in-the-way-of-the-user/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://lexfridman.com/blogs/research/files/2011/05/ubuntu-unity.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="ubuntu-unity" border="0" alt="ubuntu-unity" align="left" src="http://lexfridman.com/blogs/research/files/2011/05/ubuntu-unity_thumb.png" width="324" height="182"></a>Ubuntu has released a new version (11.04) of its Linux operating system. Instead of going with <a href="http://www.gnome3.org/">Gnome 3</a>, it went with <a href="http://en.wikipedia.org/wiki/Unity_(desktop_environment)">Unity</a> as the default desktop environment.</p>
<p>I’ve now used both Unity and Gnome 3, and it continues to confuse me who the target user is for these interfaces. If it’s meant to be easy, natural, and sexy like Mac OS X (which I don’t like by the way), I believe it fails to achieve that. It’s not at all easy nor natural, though it is sexier than previous versions (Gnome 2).</p>
<p>I have to echo the negative early reviews of many Linux users that Unity simply gets in the way. Some problems I have are:</p>
<ul>
<li>It’s unclear how to access apps and utils that are not immediately available through the dock or app search.</li>
<li>Lack of configurability</li>
<li>Launcher hide behavior is counter-intuitive. I understand it, but it’s not natural and I can’t configure it, but even if I could, I want the default behavior to be natural. This is exactly what was upsetting to me about Ubuntu 10.10 when the window management buttons moved from top right to top left. I understood that, but it was <strong>unnatural</strong>.</li>
</ul>
<p>The bottom line for me is that Ubuntu is trying to dumb down the Linux interface instead of making it more powerful. A perfect example of how to change drastically for the better is the improvement of Microsoft Office 2007 over 2003 with the addition of the ribbon. To me, the ribbon had an annoyingly large learning curve but in many ways it was worth it. The interface was simplified and made more powerful and it didn’t <strong>get in the way of the user</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lexfridman.com/blogs/research/2011/05/03/ubuntu-11-04-unity-gets-in-the-way-of-the-user/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

