<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Observations from Uppsala &#187; general research</title>
	<atom:link href="http://jakob.engbloms.se/archives/category/general-research/feed" rel="self" type="application/rss+xml" />
	<link>http://jakob.engbloms.se</link>
	<description>Computer Technology: Simulation, Virtualization, Virtual Platforms, Embedded, Multicore and Multiprocessing (by Jakob Engblom)</description>
	<lastBuildDate>Sun, 29 Jan 2012 19:45:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<image>
    <title>Observations from Uppsala</title>
    <url>http://jakob.engbloms.se/favicon.png</url>
    <link>http://jakob.engbloms.se</link>
    <width>32</width>
    <height>32</height>
    <description>Observations from Uppsala - http://jakob.engbloms.se</description>
    </image>		<item>
		<title>It&#8217;s the Problem, Stupid</title>
		<link>http://jakob.engbloms.se/archives/1441?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1441#comments</comments>
		<pubDate>Tue, 28 Jun 2011 20:28:14 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[business issues]]></category>
		<category><![CDATA[general research]]></category>
		<category><![CDATA[Bill Clinton]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[problem]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1441</guid>
		<description><![CDATA[For some reason, in the past few weeks I have talked to more than a few PhD students and researchers about various ideas. It is striking how often fundamentally very smart people have a problem in articulating just why what they are doing is useful, relevant, and potentially commercially interesting. Of course, we all know [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2009/02/opinion.png"><img class="alignleft size-full wp-image-654" title="opinion" src="http://jakob.engbloms.se/wp-content/uploads/2009/02/opinion.png" alt="" width="91" height="69" /></a>For some reason, in the past few weeks I have talked to more than a few PhD students and researchers about various ideas. It is striking how often fundamentally very smart people have a problem in articulating just why what they are doing is useful, relevant, and potentially commercially interesting. Of course, we all know that this is hard, and all PhD students get some kind of training in presentation and selling their ideas. It is also unfair to expect a fresh graduate student to be able to put on a show like a Simon Peyton-Jones.</p>
<p>However, this did get me thinking some about the articulation of problems.</p>
<p><span id="more-1441"></span>Reflecting over my experience from almost a decade in industry following my decade in the university, one thing that does stand out is a certain shift of focus in how I think about products and solutions. When I was an undergrad and grad student, the natural focus was on the solution. How did it work? Now, I tend to look for the problem. What can it do, why is it relevant?</p>
<p>To go back to the experiences that prompted this post: If someone cannot give me a good description of the problem they are trying to solve with their work, I have a hard time motivating myself to listen.</p>
<p>To be fair, there is usually a real and relevant problem behind most research. It is just that it might be implicit in the mind of the researcher, rather than explicit and part of the design and planning process. I sometimes find myself having to ask a series of fairly tough questions to try to pry out the problem from underneath the layers of assumptions about problem domains and what&#8217;s important.This can make people uncomfortable, but I hope that it is all for the best in the end.</p>
<p>Bringing out the problem into the open and making it explicit makes it much easier to discuss about it and consider the direction and potential value of research. Is the problem relevant for one or one million people? Is there some other problem that can be solved with the same methods, with a small shift in focus? Making the problem explicit can be very powerful as a methodology.</p>
<p>It is amazing just how  much time I and my colleagues have spent over the past years trying to  pin down the problems that we want to attack with the Simics product. When you have a product to sell and you depend on selling it, articulating the problem does become very important. The value of a solution to a customer comes from solving problems, nothing else.</p>
<p>There is one more trick to problem formulation that needs to be considered and that I think can really help anyone formulate their problem statement. When a business grows, you have to add a bigger sales force. To make new sales people productive as soon as possible, the marketing and product people have to be able to articulate just which types of accounts (companies) and which types of projects and people inside the companies to look for.  Equally (or even more) important is making it very easy to understand when to walk away from a discussion, since there is no match between the customer problems and your solution, and therefore no chance of closing a deal. Thinking about a solution or product in this light does make a difference.</p>
<p>The question I think any researcher should ask themselves before presenting their work is: how can I explain it in such a way that someone in the audience can explain to a third person what it is all about? Which problems are being considered &#8211; and which problems are <em>not </em>being considered? Can someone in the audience pick up on what I say and carry on to a third party &#8211; who might be that perfect contact I need in order to further my career as a researcher?</p>
<p>That is the true definition of knowing your problem, I think.</p>
<p>To paraphrase Bill Clinton, <a href="http://en.wikipedia.org/wiki/It%27s_the_economy,_stupid">it&#8217;s the problem, stupid</a>.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1441"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1441" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1441" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1441/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>From Academy to Industry: Coverity</title>
		<link>http://jakob.engbloms.se/archives/1106?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1106#comments</comments>
		<pubDate>Fri, 19 Mar 2010 19:17:43 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[business issues]]></category>
		<category><![CDATA[general research]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Communications of the ACM]]></category>
		<category><![CDATA[Coverity]]></category>
		<category><![CDATA[Polyspace]]></category>
		<category><![CDATA[static analysis]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1106</guid>
		<description><![CDATA[In the February 2010 issue of the Communications of the ACM there is an article by the team behind the Coverity static analysis tool describing how they went from a research project to a commercial tool. It is quite interesting, and I recognize many of the effects that real customers have on a tool from [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2009/10/butterfly.png"><img class="alignleft size-full wp-image-982" title="butterfly" src="http://jakob.engbloms.se/wp-content/uploads/2009/10/butterfly.png" alt="" width="90" height="91" /></a>In the <a href="http://cacm.acm.org/">February 2010 issue of the Communications of the ACM </a>there is an <a href="http://mags.acm.org/communications/201002/?pg=68&amp;pm=2">article </a>by the team behind the <a href="http://www.coverity.com/">Coverity static analysis tool </a>describing how they went from a research project to a commercial tool. It is quite interesting, and I recognize many of the effects that real customers have on a tool from my own experience at IAR and Virtutech (<a href="http://www.windriver.com/news/press/pr.html?ID=7841">now part of Wind River</a>).</p>
<p><span id="more-1106"></span>Basically, the article describes the changes in mindset that a development team goes through as they progress from research to enthusiastic early adopters to normal users. The large population of normal users want useful results, not necessarily a deep understanding for how a tool works. In my experience, this leads to &#8220;ah, why didn&#8217;t we see that&#8221; moments as big (and in hindsight, obvious) flaws in the product and its user interface are revealed.</p>
<p>It also leads to &#8220;aich, why do we have users&#8221; moments when users want something that just is not feasible, sensible, or even sane. There is a nice quote from the article that really made me laugh:</p>
<blockquote><p>Users really want the same result from run to run. Even if they changed their code base. Even if they upgraded the tool. Their model of error messages? Compiler warnings. Classic determinism states: the same input + same function = same result. What users want: different input (modified code base) + different function (tool version) = same result. As a result, we find upgrades to be a constant headache. Analysis changes can easily cause the set of defects found to shift&#8230;</p></blockquote>
<p>There are so many similar requests made by users of technically advanced tools&#8230; and finding ways to get around them is part of the real fun of technical marketing. Reconciling impossible requirements with the technically feasible in some way that meets customer expectations is a very nice challenge to go through.</p>
<p>In this case, the fundamental issue is that the Coverity tool is an approximation, not an exact tool. Small fluctuations in input or the tool itself can change the set of issues flagged in a body of code. If a tool tried to be exact, its runtime complexity would explode. Even going some distance in that direction like the <a href="http://www.polyspace.com">Polyspace Verifier </a>(now part of the Mathworks) drastically increases the runtime. For more on static analysis in practice, I recommend a <a href="http://se.wrs.yahoo.com/_ylt=A03uv8vuzKNLwkQA6GkTOAx.;_ylu=X3oDMTByNGxmazk4BHNlYwNzcgRwb3MDMQRjb2xvA2lyZAR2dGlkAw--/SIG=1298vp9dr/EXP=1269112430/**http%3a//www.ep.liu.se/ea/trcis/2008/003/trcis08003.pdf">MSc Thesis from Linköping</a>.</p>
<p>The article is a good read for anyone interested in either static checking as a technology, or in how to commercialize good research.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1106"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1106" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1106" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1106/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Toast to Abstraction Layers</title>
		<link>http://jakob.engbloms.se/archives/888?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/888#comments</comments>
		<pubDate>Thu, 13 Aug 2009 19:41:47 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[computer simulation technology]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[general research]]></category>
		<category><![CDATA[virtual machines]]></category>
		<category><![CDATA[virtual platforms]]></category>
		<category><![CDATA[abstraction]]></category>
		<category><![CDATA[abstraction levels]]></category>
		<category><![CDATA[DAC 2009]]></category>
		<category><![CDATA[information hiding]]></category>
		<category><![CDATA[TheToasterProject]]></category>
		<category><![CDATA[Thomas Thwaites]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=888</guid>
		<description><![CDATA[I just found &#8220;The Toaster Project&#8220;, a Royal College of Art project where Thomas Twaites built a simple toaster from scratch. Really from scratch, going all they way back to iron ore and raw petroleum. In the process, he had to smelt ore, create plastic from petroleum, etc. It is a very interesting observation about [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-890" style="margin: 10px 5px;" title="toaster" src="http://jakob.engbloms.se/wp-content/uploads/2009/08/toaster.png" alt="toaster" width="81" height="87" />I just found &#8220;<a href="http://www.thomasthwaites.com/thomas/toaster/page2.htm">The Toaster Project</a>&#8220;, a Royal College of Art project where <a href="http://www.thomasthwaites.com/">Thomas Twaites </a>built a simple toaster from scratch. Really from scratch, going all they way back to iron ore and raw petroleum. In the process, he had to smelt ore, create plastic from petroleum, etc. It is a very interesting observation about the immense industrial complexity behind the very simple everyday items of our lives. I also think it has something to tell us computer scientists about abstraction.</p>
<p><span id="more-888"></span>What Thomas is showing is just how efficiently today&#8217;s economy manages to hide complexity from consumers (users). That toaster is just there on the shelf at a very low cost. If you take it apart, you will note that it is made from plastic which has been moulded to shape, and various bits and pieces of steel and copper wires. At that level, you feel that you could almost build it yourself. However, that is just the tip of the iceberg. What the toaster project reveals is the next level of abstraction and information hiding going on: that copper wire contains an enormously complex process in its making. From ore extraction, energy production to fuel the process, copper foundries, factories converting raw copper into wires, and a huge logistical machine to move things around.</p>
<p>In essence, we have a very nice example of information hiding and abstraction. As a user of the toaster, I do not need to understand how it works, and I do definitely not have any idea of the huge chain of suppliers leading up to its presence on my breakfast table.</p>
<p>That&#8217;s where are going with computers, but it is going to take time. Today, most users are fairly well shielded from how computers really work. Until they break down, at least. As programmers, we are less lucky. In practice, most good programmers end up understanding at least the basics of assembly language and the memory hierarchy of the machine.</p>
<p>What is hidden today is mostly the innards of the silicon. I have no real idea of how a processor works at the level of transistors and electrons. I don&#8217;t have to care about that, while any computer user fifty years ago probably had a decent understanding of the electronics. If nothing else, that was how you investigated hardware faults and actually built computers in a factory. Before integrated circuits, the electronic bits were much more exposed.</p>
<p>I think the current trend towards virtualization in the IT space and virtual platforms in the system design space is showing that the abstraction stack we are using in computing is getting deeper and more opaque. It takes some getting used to, but in the end, we have to realize that most computer programmers will be like the toaster user. All they want is a virtual toaster that toasts virtual bread in a way that lets them do their job.That is: write software that really does not care that much about the particulars of the hardware it is running on.</p>
<p>For the designer of a toaster (or even worse, the manufacturer of copper wire or the oil producer for the raw materials for the plastics), this takes some getting used to. We have to accept that in many cases, a simple abstraction is sufficient to help programmers get moving. There is no need for perfect timing accuracy or all the details of bus transactions. As long as what comes out is sufficiently similar to toast (a virtual toaster spitting out candy would be a bad abstraction), most users are happy.</p>
<p>Brian Bailey touched on this in a blog post following DAC, called &#8220;<a href="http://www.chipdesignmag.com/bailey/2009/07/30/accuracy-does-not-imply-accuracy/">Accuracy does not imply accuracy</a>&#8220;. Same idea as the toaster: you have to accept less detail, more abstraction, to get somewhere useful. Not everyone needs to go back to basics&#8230; and doing so tends to be counter productive in the end.</p>
<p>It is late now, but I think I will have toast and jam for breakfast tomorrow. Writing this got me hungry.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/888"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/888" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/888" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/888/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IBM JRD Now Costs 1500 USD per Year</title>
		<link>http://jakob.engbloms.se/archives/716?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/716#comments</comments>
		<pubDate>Sun, 05 Apr 2009 10:47:16 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[business issues]]></category>
		<category><![CDATA[general research]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Journal of Research and Development]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=716</guid>
		<description><![CDATA[For the longest time, the IBM Journal of Research and development, and its entire archive, was online at IBM and for free to access. This publication was, I assume, seen as a way to publicize IBM systems and their research efforts. But now, it has unexplicable gone to a for-pay format. It costs 1500 USD/year [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-654" style="margin-left: 10px; margin-right: 10px;" title="opinion" src="http://jakob.engbloms.se/wp-content/uploads/2009/02/opinion.png" alt="opinion" width="91" height="69" />For the longest time, the IBM Journal of Research and development, and its entire archive, was online at IBM and for free to access. This publication was, I assume, seen as a way to publicize IBM systems and their research efforts. But now, it has unexplicable gone to a for-pay format. <a href="http://www.research.ibm.com/journal/subscription-letter.pdf">It costs 1500 USD/year to access it</a>, which is pretty steep I think. Compare with sources like the Microprocessor Report, or regular IEEE or ACM memberships. I think this is a really dumb move, and I will miss reading their often quite interesting articles. Who will pay to read only about IBM systems and research?;</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/716"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/716" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/716" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/716/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

