<?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>Martin Ankerl</title> <atom:link href="http://martin.ankerl.com/feed/" rel="self" type="application/rss+xml" /><link>http://martin.ankerl.com</link> <description>Chunky bacon!!</description> <lastBuildDate>Sun, 29 Jan 2012 00:46:30 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Optimized Approximative pow() in C / C++</title><link>http://martin.ankerl.com/2012/01/25/optimized-approximative-pow-in-c-and-cpp/</link> <comments>http://martin.ankerl.com/2012/01/25/optimized-approximative-pow-in-c-and-cpp/#comments</comments> <pubDate>Wed, 25 Jan 2012 19:48:39 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[C++]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[science]]></category><guid isPermaLink="false">http://martin.ankerl.com/?p=894</guid> <description><![CDATA[Mostly thanks to this reddit discussion, I have updated my pow() approximation for C / C++. I have now two different versions: This new code uses the union trick, instead of the weird casting trick I&#8217;ve used before. This means &#8230; <a href="http://martin.ankerl.com/2012/01/25/optimized-approximative-pow-in-c-and-cpp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Mostly thanks to <a href="http://www.reddit.com/r/gamedev/comments/n7na0/fast_approximation_to_mathpow/">this reddit discussion</a>, I have updated my <a href="http://martin.ankerl.com/2007/10/04/optimized-pow-approximation-for-java-and-c-c/">pow() approximation</a> for C / C++. I have now two different versions:</p><pre class="brush: cpp; title: ; notranslate">inline double fastPow(double a, double b) {
  union {
    double d;
    int x[2];
  } u = { a };
  u.x[1] = (int)(b * (u.x[1] - 1072632447) + 1072632447);
  u.x[0] = 0;
  return u.d;
}</pre><p><span id="more-894"></span><br /> <a href="http://martin.ankerl.com/wp-content/uploads/2012/01/pow.png?9d7bd4"><img src="http://martin.ankerl.com/wp-content/uploads/2012/01/pow.png?9d7bd4" alt="" title="This is how a^b looks like, in case you were wondering..." width="240" height="202" class="alignright size-full wp-image-906" /></a>This new code uses the union trick, instead of the weird casting trick I&#8217;ve used before. This means that <tt>-fno-strict-aliasing</tt> is no more  required any more when compiling, and it is also a bit faster because one less temporary variables is needed. When you have a little endian machine, you have to exchange u.x[0] and u.x[1]. On my PC, this version is 4.2 times faster than the much more precise pow().</p><p>Besides that, I also have now a slower approximation that has much less error when the exponent is larger than 1. It makes use <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Exponentiation_by_squaring">exponentiation by squaring</a>, which is exact for the integer part of the exponent, and uses only the exponent&#8217;s fraction for the approximation:</p><pre class="brush: cpp; title: ; notranslate">// should be much more precise with large b
inline double fastPrecisePow(double a, double b) {
  // calculate approximation with fraction of the exponent
  int e = (int) b;
  union {
    double d;
    int x[2];
  } u = { a };
  u.x[1] = (int)((b - e) * (u.x[1] - 1072632447) + 1072632447);
  u.x[0] = 0;

  // exponentiation by squaring with the exponent's integer part
  // double r = u.d makes everything much slower, not sure why
  double r = 1.0;
  while (e) {
    if (e &amp; 1) {
      r *= a;
    }
    a *= a;
    e &gt;&gt;= 1;
  }

  return r * u.d;
}</pre><p>This code is 3.3 times faster than pow(). Writing a microbenchmark is not easy, so <a href="http://pastebin.com/DRvPJL2K">I have posted mine here</a>. <a href="http://pastebin.com/ZW95gEyr">Here is also a Java version of the more accurate pow approximation</a>.</p><p>Any ideas how this could be improved? Please post them!</p><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2012/01/25/optimized-approximative-pow-in-c-and-cpp/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Chunky bacon</title><link>http://martin.ankerl.com/2012/01/15/chunky-bacon/</link> <comments>http://martin.ankerl.com/2012/01/15/chunky-bacon/#comments</comments> <pubDate>Sun, 15 Jan 2012 20:21:11 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[health]]></category> <category><![CDATA[programming]]></category><guid isPermaLink="false">http://martin.ankerl.com/?p=840</guid> <description><![CDATA[Since I blog a mixture of health and programmnig, my old tagline May all your work reduce to O(1) just didn&#8217;t cut it any more. Fortunately I have a found a perfect replacement: Chunky bacon!! This is the perfect combination &#8230; <a href="http://martin.ankerl.com/2012/01/15/chunky-bacon/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Since I blog a mixture of health and programmnig, my old tagline <a href="http://www.reddit.com/r/compsci/comments/lserg/which_algorithm_am_i_looking_for/c2vudcn?context=1">May all your work reduce to O(1)</a> just didn&#8217;t cut it any more. Fortunately I have a found a perfect replacement:<br /><center><em>Chunky bacon!!</em></center><br /> <a href="http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html"><img src="http://martin.ankerl.com/wp-content/uploads/2012/01/chunky-bacon.png?9d7bd4" alt="" title="Chunky bacon. Chunky bacon. Chunky bacon. Chunky bacon. Chunky bacon!" width="300" height="242" class="alignright size-full wp-image-841" /></a>This is the perfect combination of both worlds. Unforunately, only few readers will get that <a href="http://martin.ankerl.com/2012/01/15/low-carb-high-fat-big-video-roundup/">chunky bacon is actually good for your health</a>. Even fewer readers will get that this is actually a <a href="http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html">famous programming reference</a>. Even fewer readers will get that it is actually both&#8230;</p><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2012/01/15/chunky-bacon/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Low Carb High Fat &#8212; Big Video Roundup</title><link>http://martin.ankerl.com/2012/01/15/low-carb-high-fat-big-video-roundup/</link> <comments>http://martin.ankerl.com/2012/01/15/low-carb-high-fat-big-video-roundup/#comments</comments> <pubDate>Sun, 15 Jan 2012 15:08:08 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[health]]></category><guid isPermaLink="false">http://martin.ankerl.com/?p=735</guid> <description><![CDATA[So you want to get healthy, loose weight, or both? Then the Low Carb High Fat diet might be for you, but please judge for yourself. This page is merely an attempt to collect the most important and interesting talks/presentations &#8230; <a href="http://martin.ankerl.com/2012/01/15/low-carb-high-fat-big-video-roundup/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>So you want to get healthy, loose weight, or both? Then the Low Carb High Fat diet might be for you, but please judge for yourself. This page is merely an attempt to collect the most important and interesting talks/presentations about this general topic. In a nutshell, carbohydrates seem to be bad for your body, and fats are good. If you think this is crazy, I invite you to <a href="http://www.youtube.com/watch?v=y1RXvBveht0">do some research on your own</a>. Educate yourself, your body will thank you.</p><p>If you find a video that you think belongs here, please post it here or at the <a href="http://www.reddit.com/r/keto/comments/oi045/low_carb_high_fat_big_video_roundup/">reddit discussion</a>! I will try to keep this page updated.</p><p>Shortlink for this page to send to your friends: <a href="http://j.mp/lchf">http://j.mp/lchf</a></p><h1>Table of Contents</h1><ol><li><a href="#foodrevolution">The Food Revolution &#8211; AHS 2011</a></li><li><a href="#causeofobesity">The Cause of Obesity</a></li><li><a href="#lowcarbexplained">Low Carb Explained</a></li><li><a href="#sugarandstarch">Sugar and Starch</a></li><li><a href="#whyweallgetcancer">Why We All Don&#8217;t Get Cancer &#8212; Sloan-Kettering</a></li><li><a href="#badscience">How Bad Science and Big Business Created the Obesity Epidemic</a></li><li><a href="#whywegetfat">Gary Taubes: Why We Get Fat (Authors@Google)</a></li><li><a href="#lowcarbliving">Low Carb Living</a></li><li><a href="#sugar">Sugar: The Bitter Truth</a></li><li><a href="#fructose">The Trouble with Fructose: a Darwinian Perspective by Robert Lustig, MD</a></li><li><a href="#degeneration">&#8220;Heart Disease and Molecular Degeneration&#8221; by Chris Masterjohn</a></li><li><a href="#saturatedfat">Enjoy Eating Saturated Fats: They’re Good for You. Donald W. Miller, Jr., M.D.</a></li><li><a href="#fathead">Fat Head</a></li><li><a href="#updates">Updates to this page</a></li></ol><p><span id="more-735"></span></p><h2><a name="foodrevolution"></a>The Food Revolution &#8211; AHS 2011</h2><p><a href="http://www.youtube.com/watch?v=FSeSTq-N4U4"><img class="alignleft" title="The Food Revolution - AHS 2011" src="http://img.youtube.com/vi/FSeSTq-N4U4/0.jpg" alt="" width="240" height="180" /></a> Good introduction that explains why carbohydrates are bad for you, and fat is good. Studies show that saturated fat is actually safe and healty, too much carbohydrates can make you fat and sick. <a href="http://www.dietdoctor.com/">Dr. Eenfeldt</a> is from Sweden, and has gathered quite a following for LCHF (Low Carb High Fat). 54 minutes video.</p><h2><a name="causeofobesity"></a>The Cause of Obesity</h2><p><a href="http://www.youtube.com/watch?v=m8dWNbEscOw"><img class="alignright" title="The Cause of Obesity" src="http://img.youtube.com/vi/m8dWNbEscOw/0.jpg" alt="" width="240" height="180" /></a> <a href="http://en.wikipedia.org/wiki/Robert_H._Lustig">Robert H. Lustig</a> is a medical doctor, researcher and expert on obesity, with an interesting example: &#8220;You eat 2000 calories a day, you burn 2000 calories a day, you feel good; normal day. You will not gain or loose weight, you stay the same because you burn what you eat, fine. Now let&#8217;s do a little experiment: Every time you reach for food, I will pump you full of extra insulin. You start your day, and eat just the 2000 calories like before. But now, because of the excess insulin, 500 of these 2000 go straight to bodyfat. You are now 500 calories heavier&#8211;you ate 2000 but you lost 500 to your fat. How many calories do you have left to burn? 1500. But your body wants 2000! What do we call the state when your body has fewer calories than it wants to burn? Starvation. You feel crappy, tired, lazy, don&#8217;t want to exercise, and hungry. So you will go eat the extra 500 to feel better. You go to the doctor and ask: &#8220;Doctor, how come I am so fat?&#8221; and the doctor says: &#8220;I know why you are fat, you are lazy and eat too much.&#8221; That&#8217;s because they are only looking at the outcome, not the cause. The cause was me, injection you with insulin. The outcome was a change in your behavior.&#8221;</p><h2><a name="lowcarbexplained"></a>Low Carb Explained</h2><p><a href="http://www.youtube.com/watch?v=kaquSijXJkQ"><img class="alignleft" title="Low Carb Explained" src="http://img.youtube.com/vi/kaquSijXJkQ/0.jpg" alt="" width="240" height="180" /></a> <a href="http://lowcarbdiets.about.com/od/prediabetesanddiabetes/a/vernoninterview.htm">Dr. Mary Vernon</a>, MD, is one of the world&#8217;s foremost experts on treating obesity and diabetes with low carbohydrate nutrition. &#8220;The job of insulin is to stop fat burning and enhance fat storage&#8221;. So all you have to know is how your body controls insulin, it&#8217;s that easy. Unfortunately, food companies want to sell starch and sugar, because it makes you hungry and eat more. A 32 minutes video.</p><h2><a name="sugarandstarch"></a>Sugar and Starch</h2><p><a href="http://www.youtube.com/watch?v=iCVo8HbDpXI"><img class="alignright" title="Sugar and Starch" src="http://img.youtube.com/vi/iCVo8HbDpXI/0.jpg" alt="" width="240" height="180" /></a> An outtake from the documentary <a href="#fathead">Fat Head</a>. Some interesting quotes from it: &#8220;Sugar and starch are basically the same, because starch is just glucose molecules formed into long chains. The body immediately splits it up; starting in your mouth so in essence you are just eating sugar.&#8221;</p><p>&#8220;People say &#8220;Well, there&#8217;s complex carbohydrates&#8221; which is true, but as soon as it hits the gastrointestinal tract, it breaks down into glucose and basically blood sugar. That&#8217;s why blood sugar rises quickly with bread, potatoes, rice, and all these starchy foods. Even complex carbohydrates run the blood sugar up almost as quickly as sugar.&#8221;</p><p>&#8220;The amount of sugar you have in your blood is a little bit less than <em>one teaspoon</em>. One teaspoon dissolved in your entire blood volume gives you normal blood sugar.</p><p>&#8220;Sugar is actually quite toxic. Insulin has many jobs, but the most critical is to keep the blood sugar in a really narrow range to keep us alive. Everything else is secondary. So a lot of it is put into fat cells. Insulin does not care if you get fat, it just tries to bring your blood sugar down.&#8221;</p><h2><a name="whyweallgetcancer"></a>Why We All Don&#8217;t Get Cancer &#8212; Sloan-Kettering</h2><p><a href="http://www.youtube.com/watch?v=WUlE1VHGA40"><img class="alignleft" title="Why We All Don't Get Cancer -- Sloan-Kettering" src="http://img.youtube.com/vi/WUlE1VHGA40/0.jpg" alt="" width="240" height="180" /></a> <a href="http://www.mskcc.org/news/press/craig-thompson-named-president-msk-center">Craig B. Thompson</a>, President and CEO of Memorial Sloan-Kettering Cancer Center, discusses new ways to think about cancer and how cancer arises in human beings. This is a very interesting talk from February 2011. First he explains how cells function in a multicellular organism, why cells have to be told how much to eat every day, how cancer develops by first causing mutations in the glucose uptake, why once a cell can eat glucose it does not think about dying which enables mutations, etc. &#8220;To truly eliminate cancer, we have to eliminate or better understand what overeating, obesity and diabetes is all about.&#8221;. He posts this question at the end of the talk: Overeating which types of foods increases the risk of cancer?<ol style="list-style-type: upper-alpha"><li>Fats</li><li>Carbohydrates</li><li>Proteins</li></ol><p> It matters a lot where your calories come from. We now have good evidence that if you overeat with fat, you don&#8217;t increase your cancer risk at all. If you overfeed somebody with carbohydrates, you <em>dramatically increase the cancer risk</em>. Protein is halfway in between.</p><h2><a name="badscience"></a>How Bad Science and Big Business Created the Obesity Epidemic</h2><p><a href="http://www.youtube.com/watch?v=3vr-c8GeT34"><img class="alignright" title="How Bad Science and Big Business Created the Obesity Epidemic" src="http://img.youtube.com/vi/3vr-c8GeT34/0.jpg" alt="" width="240" height="180" /></a> David Diamond, Ph.D., of the University of South Florida College of Arts and Sciences shares his personal story about his battle with obesity. Diamond shows how he lost weight and reduced his triglycerides by eating red meat, eggs and butter. <a href="http://www.cas.usf.edu/news/s/169/#VIDEO:%20Bad%20science,%20big%20business%20created%20obesity%20epidemic">You can download the slides here</a>. In over 100 slides he explains how fat people how are good for business, how ridiculous bad the science is on which mainstream guidelines are based, how cholesterol is a huge fraud, how butter consumption does not correlate with heart disease, etc. etc. <a href="http://www.dietdoctor.com/how-bad-science-created-the-obesity-epidemic">According to Dr. Andreas Eenfeldt</a>, he is almost right, except for one thing: Diamond claims that eating high fat do not raise cholesterol, but on average it does. However, it is mainly the good cholesterol, the HDL, that increases which means that your risk of heart disease is a lot lower.</p><h2><a name="whywegetfat"></a>Gary Taubes: Why We Get Fat (Authors@Google)</h2><p> <a href="http://www.youtube.com/watch?v=M6vpFV6Wkl4"><img class="alignleft" title="Gary Taubes: Why We Get Fat" src="http://img.youtube.com/vi/M6vpFV6Wkl4/0.jpg" alt="" width="240" height="180" /></a><a href="http://garytaubes.com/">Gary Taubes</a>, author of <a href="http://www.amazon.com/Why-We-Get-Fat-About/dp/0307272702/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1286334859&#038;sr=1-1">Why We Get Fat: And What to Do About it (2011)</a> and <a href="http://www.amazon.com/Good-Calories-Bad-Controversial-Science/dp/1400033462/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1286302951&#038;sr=1-1">Good Calories, Bad Calories (2007)</a>. He is a scientific journalist who has collected and analyzed a huge amount of studies to find out what actually makes people healthy or sick. Taubes explains why &#8220;calories in calories out&#8221; is a true but useless explanation for weight regulation, why exercise might not make you thin, why practicing energy balance is impossible, and a lot more. Important takeaway lessons are: <a href="http://www.youtube.com/watch?v=M6vpFV6Wkl4&#038;feature=player_detailpage#t=2950s">Lesson #1</a>: Fat is stored as triglycerides in the body&#8217;s fat tissue. It is too big to get out, so your body has to break it up first. <a href="http://www.youtube.com/watch?v=M6vpFV6Wkl4&#038;feature=player_detailpage#t=3049s">Lesson #2</a>: It is insulin that puts fat into your tissue, and it is insulin that suppresses fat mobilization. So if you want to get fat out of your tissue, you have to lower your insulin. <a href="http://www.youtube.com/watch?v=M6vpFV6Wkl4&#038;feature=player_detailpage#t=3200s">Lesson #3</a>: Carbohydrate is driving insulin is driving fat. Fat is the one nutrient that does <em>not</em> stimulate insulin secretion, protein does.</p><p>Gary held a similar lecture at Wallnut Creek Library, and in the last section he answers some <a href="http://www.youtube.com/watch?v=XDtiYahxr5I&#038;feature=BFa&#038;list=PL4427DBF43190B080&#038;lf=autoplay" title="10 of 10 - Gary Taubes at the Walnut Creek Library on 4/2/11 - Rivendell Bicycle Works">very interesting question about cancer research</a>. Insulin seems to be linked with cancer and also has ties with altzheimer&#8217;s disease. Several cancer researcher are on an Atkins diet not because they want to be slim, but because they do not want to get cancer.</p><h2><a name="lowcarbliving"></a>Low Carb Living</h2><p><a href="http://www.youtube.com/watch?v=KkdFkPxxDG8"><img class="alignright" title="Low Carb Living" src="http://img.youtube.com/vi/KkdFkPxxDG8/0.jpg" alt="" width="240" height="180" /></a> <a href="http://www.amazon.com/Art-Science-Low-Carbohydrate-Living/dp/0983490708?tag=">Dr Stephen Phinney</a>, MD, PhD knows more about this than almost anybody. He has researched adaptation to very low carb diets (and exercise) for a long time. Here he shares this knowledge about ketosis, as well as insights from traditional cultures who never ever ate a lot of carbs. He has been staying on a ketogenic diet for more than 6 years, with 25 to 50 grams of carbs a day, which is 5% of his daily calories. He argues that you should consume protein in moderation, because high protein intakes reduces ketosis. Not as much as carbohydrates, but still. 75% to 80% of his daily energy comes from fat.<br /> Many people think of <a href="http://www.atkins.com/">Atkins diet</a> (Interview with Dr Eric Westman: <a href="http://www.youtube.com/watch?v=NpCQJcw3LuI">part 1</a>, <a href="http://www.youtube.com/watch?v=y-6K0qWUaAg">part 2</a>) as a high protein diet, but this is not true: when you look at the induction phase of Atkins, they might eat 1400 calories a day but they might burn 3000 calories a day. So the other half comes from body fat. When you look at what&#8217;s on the person&#8217;s plate, 600 to 800 of the 1400 calories comes from protein, that looks like a high protein diet. But that&#8217;s only what the mouth sees! In reality it is a moderate protein, high fat diet since the other half energy is coming from internal body fat. Once you get to maintainence&#8211;meaning you are not burning any more body fat&#8211;if you keep eating low carb and low fat, you will have to eat a <em>whole</em> lot of protein. (1400 calories of protein are about 1kg / 2.2 pounds of meat). At that level many people would feel sick. It would causes weakness, fatique, and it your body will not get into ketosis which means now you have lost your easy access to fat. To make a sustainable low carb diet, you have to keep protein moderate, carb low; and the only other energy source is fat.</p><h2><a name="sugar"></a>Sugar: The Bitter Truth</h2><p><a href="http://www.youtube.com/watch?v=dBnniua6-oM"><img class="alignleft" title="Sugar: The Bitter Truth" src="http://img.youtube.com/vi/dBnniua6-oM/0.jpg" alt="" width="240" height="180" /></a> <a href="http://en.wikipedia.org/wiki/Robert_H._Lustig">Robert H. Lustig</a>, MD, UCSF Professor of Pediatrics in the Division of Endocrinology, explores the damage caused by sugary foods. He argues that fructose (too much) and fiber (not enough) appear to be cornerstones of the obesity epidemic through their effects on insulin. Very long and detailed video, why mostly about why high fructose corn syrup (or fructose to be more general) is very bad for your body. A 1 hour 29 minutes presentation, with almost 2 million views.</p><h2><a name="fructose"></a>The Trouble with Fructose: a Darwinian Perspective by Robert Lustig, MD</h2><p><a href="http://www.youtube.com/watch?v=zpxm4kmcDww"><img class="alignright" title="The Trouble with Fructose: a Darwinian Perspective by Robert Lustig, MD" src="http://img.youtube.com/vi/zpxm4kmcDww/0.jpg" alt="" width="240" height="180" /></a> Robert Lustig&#8217;s talks about the reason for the obesity epidemic. There is a <a href="http://www.reddit.com/r/keto/comments/jhqj9/the_trouble_with_fructose_a_darwinian_perspective/">reddit discussion</a> about the video, where user <a href="http://www.reddit.com/r/keto/comments/jhqj9/the_trouble_with_fructose_a_darwinian_perspective/c2cce7u">moozilla</a> has extracted <a href="http://martin.ankerl.com/wp-content/uploads/2012/01/trouble_with_fructose_slides.pdf?9d7bd4">the slides</a>.</p><p>The evolutionary explanation is a missmatch between our environment and our biochemistry. When a normal kid eats a cookie, it will get a &#8220;sugar high&#8221;, it has now lots of energy and the body wants to get rid of it. When an obese kid eats a cookie, it does not get the sugar high because their <a href="http://en.wikipedia.org/wiki/Leptin">leptin</a> is not doing what it is supposed do. That is called leptin resistance.</p><p><a href="http://www.youtube.com/watch?v=zpxm4kmcDww&#038;feature=player_detailpage#t=679s">Fructose induces insulin resistance which then induces leptin resistence</a>. Two different paradimes, when you put them together you got a problem. He speculates that this insulin resistance has evolved because it has an evolutionary advantage: Imagine harvest time. All the fruit is lying on the ground just waiting for you. And what comes after that? Winter! Four months of absolutely no food. Polar bears have hibernation, we don&#8217;t; we have the next best thing: seasonal insulin resistance. When fructose comes in and induces the insulin resistance and blocks that leptin, it lets you gorge, put on more adipose tissue, so that you can make it through winter.</p><p>The problem is that nowadays fructose is available any time and everywhere, and it is unopposed by fibre which could mitigate it&#8217;s effect.</p><h2><a name="degeneration"></a>&#8220;Heart Disease and Molecular Degeneration&#8221; by Chris Masterjohn</h2><p><a href="http://www.youtube.com/watch?v=Olr2Y1-LnmQ"><img class="alignleft" title=""Heart Disease and Molecular Degeneration" by Chris Masterjohn" src="http://img.youtube.com/vi/Olr2Y1-LnmQ/0.jpg" alt="" width="240" height="180" /></a></p><p><a href="http://www.slideshare.net/ancestralhealth/ahs-slideschris-masterjohn">Slides are available here</a>. We have a cholesterol war: one side says cholesterol is bad, the other says it isn&#8217;t. Between these two fronts, what is the truth? Chris takes a mixed stance. This is an in depth analyzation of the science behind the claims.</p><p>The abstract states that atherosclerosis is actually an attempt to protect the lining of the blood vessel from toxic waste generated by the degeneration of vulnerable lipids. The key to preventing heart disease according to the new paradigm is preventing the molecular degeneration in the first place.</p><p>So, what to do? Eat your vegetables. Eat omega 3 rich foot. Get antioxidants.</p><h2><a name="saturatedfat"></a>Enjoy Eating Saturated Fats: They&#8217;re Good for You. Donald W. Miller, Jr., M.D.</h2><p><a href="http://www.youtube.com/watch?v=vRe9z32NZHY"><img class="alignright" title="Enjoy Eating Saturated Fats: They're Good for You. Donald W. Miller, Jr., M.D." src="http://img.youtube.com/vi/vRe9z32NZHY/0.jpg" alt="" width="240" height="180" /></a> Dr. Miller is a professor of surgery, cardiothoracic division, Univ. Washington. He starts his talk with the classic assumption: According to the lipid hypothesis, saturated fat causes high blood cholesterol, which causes atherosclerosis which in turn causes coronary heart disease. He follows with an overview and history of fat and health. In his work he has followed the general advice to recommend a low fat diet to his patients and follow the food pyramid. He put them on a very low fat (ornish) diet. To quote Dr. Miller: &#8220;<a href="http://www.youtube.com/watch?v=vRe9z32NZHY&#038;feature=player_detailpage#t=614s">I was wrong</a>&#8220;.</p><p>Omnivores do not develop atherosclerosois when fed cholesterol. In his famous study, <a href="http://en.wikipedia.org/wiki/Ancel_Keys#Seven_Countries_Study">Ancel Keys</a> selected 6 out of 22 countries and ignored the 16 other countries because they did not fall in line with his desired graph. In fact it turns out that people who have the highest saturated fat in their diets have the <em>lowest risk of heart disease</em>. Lots of native tribes eat mostly saturated fat. The mother milk has 45% saturated fat.</p><p>The hunter-gatherer diet: our ancestors conumsed high amounts of animal food, prefered the fattest parts (organs, tongue, bone marrow, brain), and low amount of carbs from blants (seeds, nuts, roots, tubres, bulbs, wild fruits&#8211;no sugars, starches and grains, corn, potatoes, rice, wheat, beans).</p><p>The <a href="http://www.msps.es/en/organizacion/sns/planCalidadSNS/pdf/excelencia/cancer-cardiopatia/CARDIOPATIA/opsc_est3.pdf.pdf">European Cardiovascular Disease Statistics 2005</a> shows an inverse correlation with fat consumption and the rate of heart disease. Multiple other recent studies show how saturated fats are good for you.</p><p>&#8220;Blaming cholesterol for atherosclerosis is like blaming firemen for the fire they are here to put out&#8221;.</p><h2><a name="fathead"></a>Fat Head</h2><p><a href="http://www.youtube.com/watch?v=UVEiYwFvKvU"><img class="alignleft" title="Fat Head" src="http://img.youtube.com/vi/UVEiYwFvKvU/0.jpg" alt="" width="240" height="180" /></a> <a href="http://www.fathead-movie.com/">Fat Head</a> is a documentary by <a href="http://www.tomnaughton.com/">Tom Naughton</a> and analysis of <a href="http://www.youtube.com/watch?v=d7Tv_mihMBA">Super Size Me</a>, how the US dietary guidelines have been created and all the baloney behind it. In my opinion, if you have seen the above videos you do not get any new information from this movie. But it is probably more easily digestable. It contains lots of interviews with nutrition experts who convincingly argue for meat and fat.</p><h2><a name="updates"></a>Updates to this page</h2><p>Whenever I watch a video that adds new, interesting information, I will add it. Please post or send me links if you think I have forgotten an important addition.</p><ul><li>2012/01/28 &#8212; Great video from W. Miller about saturated fats added.<li>2012/01/28 &#8212; Add video &#8220;Heart Disease and Molecular Degeneration&#8221; by Chris Masterjohn which is about colestorl and atherosclerosis.<li>2012/01/28 &#8212; Added link to Gary Taube&#8217;s discussion, talking about cancer and alzheimer<li>2012/01/22 &#8212; Added &#8220;The Trouble with Fructose&#8221;, which has an interesting explanation of why we have insulin resistance.<li>2012/01/18 &#8212; added shortlink <a href="http://j.mp/lchf">http://j.mp/lchf</a>, change intro text a bit<li>2012/01/18 &#8212; Added Table of contents<li>2012/01/17 &#8212; replaced gary taubes&#8217; interview with his full presentation<li>2012/01/16 &#8212; added movie &#8220;fat head&#8221;</ul><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2012/01/15/low-carb-high-fat-big-video-roundup/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Relative Risk for Dummies</title><link>http://martin.ankerl.com/2012/01/06/relative-risk-for-dummies/</link> <comments>http://martin.ankerl.com/2012/01/06/relative-risk-for-dummies/#comments</comments> <pubDate>Fri, 06 Jan 2012 22:53:30 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[health]]></category><guid isPermaLink="false">http://martin.ankerl.com/?p=739</guid> <description><![CDATA[I read a lot of health related studies, and most contain in their conclusion a statistical description of the result. To be able to draw valid conclusions for oneself it is very important to understand what all the numbers mean. &#8230; <a href="http://martin.ankerl.com/2012/01/06/relative-risk-for-dummies/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a href="http://martin.ankerl.com/wp-content/uploads/2012/01/194135_xlarge.jpg?9d7bd4"><img class="alignright size-medium wp-image-765" title="Relative Risk. Picture by Tufts OCW, licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. " src="http://martin.ankerl.com/wp-content/uploads/2012/01/194135_xlarge-300x199.jpg?9d7bd4" alt="" width="300" height="199" /></a>I read a lot of health related studies, and most contain in their conclusion a statistical description of the result. To be able to draw valid conclusions for oneself it is very important to understand what all the numbers mean. I have recently learned all that, so here is an example together with an explanation:</p><blockquote><p>The multivariate relative risk of gout among men in the highest quintile of meat intake, as compared with those in the lowest quintile, was 1.41 (95 percent confidence interval, 1.07 to 1.86; P for trend=0.02)<br /> <em>&#8212; from <a href="http://scholar.google.com/scholar?hl=en&amp;q=purine-rich+foods%2C+dairy+and+protein+intake%2C+and+the+risk+of+gout+in+men">Purine-rich foods, dairy and protein intake, and the risk of gout in men</a>, 2004.</em></p></blockquote><p>A more understandable translation of the above is this:<br /> <span id="more-739"></span></p><blockquote><p>For the <acronym title="quintile: In statistics, a quantile for the case where the sample or population is divided into fifths">20%</acronym> who eat the most meat, the probability of getting gout is 1.41 times (41%) higher than the probability for the 20% who eat the least meat. (The number of participants in the study is large enough to say that with 95% probability the populational (real) mean relative risk is between 1.07 and 1.86, with 1.41 being the best estimate within the range. There is a <acronym title="P for trend=0.02">2% probability</acronym> that the whole claim is baloney and all this just happened by chance.)</p></blockquote><p>As <a href="http://www.reddit.com/r/statistics/comments/o5u66/risk_analysis_what_do_the_numbers_mean/c3ep88r?context=1">posted by jt512</a>: The information in the parentheses is indeed important. 1.41 is the best &#8220;point estimate&#8221; of the relative risk, given the data. However, the estimate is subject to statistical uncertainty. The 95% confidence interval (CI) quantifies that uncertainty. It is an interval estimate of the relative risk, in the sense that there is a 95% chance that the true relative risk is in the interval.</p><p><a href="http://martin.ankerl.com/wp-content/uploads/2012/01/Margarinefilling.png?9d7bd4"><img class="alignleft  wp-image-767" title="Confidence Interval: a factory assembly line fills margarine cups to a desired 250g +/- 5g. Picture under public domain." src="http://martin.ankerl.com/wp-content/uploads/2012/01/Margarinefilling-300x190.png?9d7bd4" alt="" width="180" height="114" /></a>Wide confidence intervals imply that the point estimate is highly imprecise, or uncertain. The given CI, 1.07–1.86, is quite wide. The lower bound is barely above a relative risk of 1, which would mean no effect of meat intake on risk of gout, and the upper bound is close to 2, which would mean that the risk in the highest quintile is double that in the lowest.</p><p>Finally, the P for trend shows that the data are weakly statistically significantly consistent with a linear trend in relative risk across quintiles. Statistically significant, because the p-value is less than 0.05; weakly, because it isn&#8217;t much lower than 0.05. You should look at the point estimates of the relative risks for each quintile and decide for yourself whether there appears to be a linear trend from quintile to quintile. Lack of a linear trend would tend to undermine a causal role for meat in the development of gout.</p><p>Voilá, now <a title="A Low-Carbohydrate, Ketogenic Diet versus a Low-Fat Diet To Treat Obesity and Hyperlipidemia" href="http://annals.ba0.biz/content/140/10/769.full" target="_blank">go</a> <a title="Low-carbohydrate ketogenic diet and the combination of  orlistat with a low-fat diet lead to comparable improvements in weight and blood lipids, but LCKD more beneficial for  blood pressure" href="http://prdupl02.ynet.co.il/ForumFiles_2/28284340.pdf" target="_blank">and</a> <a title="Green Tea Consumption and Mortality Due to Cardiovascular Disease, Cancer, and All Causes in Japan" href="http://www.jhsph.edu/bin/e/v/10_3_06.pdf" target="_blank">read</a> <a title="Nut consumption and body weight" href="http://www.ajcn.org/content/78/3/647S.full" target="_blank">some</a> <a title="Is there a role for carbohydrate restriction in the treatment and prevention of cancer?" href="http://www.nutritionandmetabolism.com/content/pdf/1743-7075-8-75.pdf" target="_blank">papers</a>!</p><p>Sources: <a href="http://en.wikipedia.org/wiki/Relative_risk">Wikipedia Relative risk</a>, <a href="http://forum.wordreference.com/showthread.php?t=1082076">Forum post &#8220;P for trend&#8221;</a>, <a href="http://en.wikipedia.org/wiki/Confidence_interval#Examples">Wikipedia Confidence interval</a>, my <a href="http://www.reddit.com/r/statistics/comments/o5u66/risk_analysis_what_do_the_numbers_mean/">reddit question</a>.</p><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2012/01/06/relative-risk-for-dummies/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Health &amp; Software Engineering</title><link>http://martin.ankerl.com/2012/01/04/health-software-engineering/</link> <comments>http://martin.ankerl.com/2012/01/04/health-software-engineering/#comments</comments> <pubDate>Wed, 04 Jan 2012 21:25:18 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[health]]></category><guid isPermaLink="false">http://martin.ankerl.com/?p=725</guid> <description><![CDATA[One of my main interest apart from software development is health, mainly nutrition but also exercise. I will try to systematically collect my findings and write a health related blog post from time to time. Keep in mind that I &#8230; <a href="http://martin.ankerl.com/2012/01/04/health-software-engineering/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a href="http://martin.ankerl.com/wp-content/uploads/2012/01/leekspin.gif?9d7bd4"><img src="http://martin.ankerl.com/wp-content/uploads/2012/01/leekspin.gif?9d7bd4" alt="" title="leekspin" width="352" height="240" class="alignright size-full wp-image-727" /></a>One of my main interest apart from software development is health, mainly nutrition but also exercise. I will try to systematically collect my findings and write a health related blog post from time to time.</p><p>Keep in mind that I usually have no idea what I am talking about, I have not any medical background. I just try to collect and organize evidence that I am finding.</p><p>So, from now on expect some posts about stuff that might make you healthy, loose weight, gain weight, live longer, or die instantly <img src="http://martin.ankerl.com/wp-includes/images/smilies/icon_wink.gif?9d7bd4" alt=';)' class='wp-smiley' /></p><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2012/01/04/health-software-engineering/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Quickly Solving the &#8220;Instagram Engineering Challenge: The Unshredder&#8221;</title><link>http://martin.ankerl.com/2011/11/15/solving-the-instagram-challenge-quickly/</link> <comments>http://martin.ankerl.com/2011/11/15/solving-the-instagram-challenge-quickly/#comments</comments> <pubDate>Tue, 15 Nov 2011 20:39:47 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[coding]]></category> <category><![CDATA[ruby]]></category><guid isPermaLink="false">http://martin.ankerl.com/?p=676</guid> <description><![CDATA[Today I have read about the Instagram Engineering Challenge: The Unshredder, and decided to give it a try. The task is simple to explain: Create a program that can unshred this image (do not try the challenge on this image, &#8230; <a href="http://martin.ankerl.com/2011/11/15/solving-the-instagram-challenge-quickly/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Today I have read about the <a href="http://instagram-engineering.tumblr.com/post/12651721845/instagram-engineering-challenge-the-unshredder">Instagram Engineering Challenge: The Unshredder</a>, and decided to give it a try. The task is simple to explain: Create a program that can unshred this image (do not try the challenge on this image, try the <a href="http://instagram-static.s3.amazonaws.com/images/TokyoPanoramaShredded.png">original PNG source</a> instead!):<br /><center><a href="http://martin.ankerl.com/wp-content/uploads/2011/11/TokyoPanoramaShredded.jpg?9d7bd4"><img src="http://martin.ankerl.com/wp-content/uploads/2011/11/TokyoPanoramaShredded.jpg?9d7bd4" alt="" title="TokyoPanoramaShredded" width="640" height="359" class="alignnone size-full wp-image-683" /></a><br /></center></p><p>I have <a href="http://derstandard.at/plink/1319182777697?sap=2&#038;_pid=23674915#pid23674915">postet here</a> that I think I can solve it in 2 hours, and got some downvotes for that; so I have decided to really give it a try. Long story short, it took me about 2 hours and 35 minutes.</p><p>Before I started developing, I made some quick assumptions to simplify things:</p><ul><li>I want to code it in Ruby, this is the language where I am most productive.</li><li>I can assume the size of the stripes is well known, and I have hardcoded this size.</li><li>The image can be converted to RAW with an external tool, and written into RAW.</li></ul><div>While coding I timed myself, and created a little timeline of my trials and errors. Since I wanted to finish as quickly as possible, the code is very ugly: no tests, some hardcoded constants, etc.</p><p><span id="more-676"></span></p><h1>Code</h1><p>Without further ado, I give you the code:</p></div><pre class="brush: ruby; title: ; notranslate"># 0:08 - how to read binary files...
# 0:14 - index RGB values
# 0:21 - difference calculation seems to privide a reasonable number
# 0:25 - create all pairings of each row (too slow: need to use logic for all slices)
# 0:30 - create all pairings
# 0:31 - sorted pairings
# 0:35 - copy and number image to mspaint to verify
# 0:36 - bugfix, wrong slice row calculation
# 0:48 - getting stuck with combining pairs
# 1:03 - recombining
# 1:14 - thinking about how to ensure not to combine invalid groups (duplicates!)
# 1:33 - got first reasonable order. Hopefully the correct order!!
# 1:47 - wrote first image, wrong order
# 1:53 - got an almost correct image! one slice was aligned wrong.
# 1:58 - no luck with grayscale
# 2:28 - damn black-white skyscraper!
# 2:29 - SUCCESSSS!!!!!!
#
# time not measured: I thought about the problem about 5 minutes before starting hacking.
# So my time is probably about 2:34.
class Img
	attr_reader :w, :h, :slices
	def initialize
		# unpack as 8bit unsigned chars
		@d = IO.binread(&quot;TokyoPanoramaShredded.raw&quot;).unpack(&quot;C*&quot;)
		@w = 640
		@h = 359
		@slices = 20
		@sw = @w / @slices
	end

	def write(sorted)
		data = @d.dup
		source_slice = 0
		sorted.each do |target_slice|
			# copy one slice
			@sw.times do |w|
				@h.times do |h|
					target_idx = idx(w + @sw * source_slice, h)
					source_idx = idx(w + @sw * target_slice, h)
					data[target_idx] = @d[source_idx]
					data[target_idx+1] = @d[source_idx+1]
					data[target_idx+2] = @d[source_idx+2]
				end
			end
			source_slice += 1
		end

		File.open(&quot;out.raw&quot;, &quot;wb&quot;) do |f|
			f.write data.pack(&quot;C*&quot;)
		end
	end

	def idx(x, y)
		(y * @w + x) * 3
	end

	# top left is 0, 0
	def rgb(x, y)
		i = idx(x, y)
		[@d[i], @d[i+1], @d[i+2]]
	end	

	# calculate sum of difference between r, g, b of two columns
	def difference(x1, x2)
		diff = 0
		@h.times do |y|
			# find best in range. This is required because otherwise the black syscraper fucks things up.
			lower = y - 15
			lower = 0 if (lower &lt; 0)

			upper = y + 15
			upper = @h-1 if upper &gt;= @h

			best = 1e100
			lower.upto(upper) do |r|
				v = 0
				rgb1 = rgb(x1, r)
				rgb2 = rgb(x2, r)

				d = rgb1[0] - rgb2[0]
				v += d*d
				d = rgb1[1] - rgb2[1]
				v += d*d
				d = rgb1[2] - rgb2[2]
				v += d*d

				best = v if (v &lt; best)
			end
			diff += best
		end
		diff
	end

	def slice_start_idx(s)
		@sw * s
	end

	def slice_end_idx(s)
		@sw * s + @sw - 1
	end
end

# calculate
img = Img.new

# create ALL pairings.
slices = 20
pairs = []
slices.times do |s1|
	slices.times do |s2|
		next if s1 == s2

		pairs.push [img.difference(img.slice_end_idx(s1), img.slice_start_idx(s2)), [s1, s2] ]
	end
end

def add_to_group(combined, new_group)
	# create array of fixed numbers
	taken_numbers = {}
	taken_left = {}
	taken_right = {}
	combined.each do |group|
		group[1..-2].each do |x|
			taken_numbers[x] = true
		end
		taken_left[group.last] = true
		taken_right[group.first] = true
	end

	was_found = false
	combined.each do |group|
		next if was_found
		if (group.last == new_group.first)
			# insert at back
			was_found = true
			new_group.delete_at(0)
			if taken_numbers[new_group.last] || taken_left[new_group.last] || new_group.last == group.first
				return
			end
			new_group.each do |x|
				group.push x
			end
		elsif (group.first == new_group.last)
			# insert at front
			was_found = true
			new_group.pop
			if taken_numbers[new_group.first] || taken_right[new_group.first] || new_group.first == group.last
				return
			end
			new_group.reverse.each do |x|
				group.insert(0, x)
			end
		end
	end
	if !was_found
		cf = combined.flatten
		new_group.each do |x|
			was_found = was_found || cf.index(x)
		end
		if !was_found
			combined.push new_group
		end
	end
end

# sort, lowest first
pairs.sort!

# create combinations.
# combined has an array of all correspondences.
combined = []
pairs.each do |diff, new_group|

	# insert new group
	add_to_group(combined, new_group)

	# try to recombine everything, until nothing changes any more
	was_recombined = true
	while was_recombined
		new_combined = []
		combined.each do |group|
			add_to_group(new_combined, group)
		end
		was_recombined = combined.size != new_combined.size
		combined = new_combined
	end

	if (combined.size == 1 &amp;&amp; combined[0].size == img.slices)
		# we got everything! Write output image.
		img.write(combined[0])
		exit
	end
end</pre><h1>Result</h1><p>Here is the result I got with this code:<br /><center><img src="http://martin.ankerl.com/wp-content/uploads/2011/11/ordered.jpg?9d7bd4" alt="" title="ordered" width="640" height="359" class="alignnone size-full wp-image-678" /></center></p><h1>Algorithm</h1><p>In hindsight, the algorithm combines two ideas: <a href="http://nlp.stanford.edu/IR-book/html/htmledition/hierarchical-agglomerative-clustering-1.html">Hierarchical Agglomerative Clustering</a>, and a <del datetime="2011-11-15T21:19:11+00:00">quick and dirty</del> novel distance-metric that defines how &#8220;good&#8221; a pairing is.</p><p>The hierarchical agglomerative clustering is a bit difficult to code, because there are a lot of corner cases when you are allowed to combine pairings and when not. I am not sure if my code is correctly, this should be recoded without time pressure.</p><p>The first version of the distance metric was very simple: calculate the sum of the quadratic differences between the two neighboring pixels when two slices are put together. Unfortunately this does not work for the slices with skyscraper that has black-white stripes: here lots of pixels are white on the left side, but black on the right side since the building is just slightly tilt. After realizing this problem, the solution is simple: for each pixel, find the best matching pixel of the other slice within a certain range. Through trial and error I have chosen +-15 pixels, and finally got the correct image.</ol><p>Happy hacking,<br /> Martin</p><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2011/11/15/solving-the-instagram-challenge-quickly/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Here is a quick list of application&#8230;</title><link>http://martin.ankerl.com/2011/10/13/here-is-a-quick-list-of-application/</link> <comments>http://martin.ankerl.com/2011/10/13/here-is-a-quick-list-of-application/#comments</comments> <pubDate>Thu, 13 Oct 2011 08:15:01 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[Google+]]></category><guid isPermaLink="false">http://martin.ankerl.com/2011/10/13/here-is-a-quick-list-of-application</guid> <description><![CDATA[Here is a quick list of applications I regulary use just in case my computer crashes and I have to reinstall everything so I don&#8217;t have to find everything again. Windows apps Chrome Dev Channel http://j.mp/pW0aZu 7zip http://j.mp/oBK5yM Microsoft Security &#8230; <a href="http://martin.ankerl.com/2011/10/13/here-is-a-quick-list-of-application/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Here is a quick list of applications I regulary use just in case my computer crashes and I have to reinstall everything so I don&#8217;t have to find everything again.</p><h2>Windows apps</h2><ul><li><span style="direction: ltr;">Chrome Dev Channel </span><a style="direction: ltr;" href="http://j.mp/pW0aZu">http://j.mp/pW0aZu</a></li><li><span style="direction: ltr;">7zip </span><a style="direction: ltr;" href="http://j.mp/oBK5yM">http://j.mp/oBK5yM</a></li><li><span style="direction: ltr;">Microsoft Security Essentials </span><a style="direction: ltr;" href="http://j.mp/pdih4x">http://j.mp/pdih4x</a></li><li><span style="direction: ltr;">CCleaner </span><a style="direction: ltr;" href="http://j.mp/p26rkb">http://j.mp/p26rkb</a></li><li><span style="direction: ltr;">Dropbox </span><a style="direction: ltr;" href="http://j.mp/nhJUVJ">http://j.mp/nhJUVJ</a></li><li><span style="direction: ltr;">KeePass2 </span><a style="direction: ltr;" href="http://j.mp/r4RB1K">http://j.mp/r4RB1K</a></li><li><span style="direction: ltr;">Winamp Lite </span><a style="direction: ltr;" href="http://j.mp/pHbbsj">http://j.mp/pHbbsj</a></li><li><span style="direction: ltr;">FM4 Stream </span><a style="direction: ltr;" href="http://j.mp/nTRnso">http://j.mp/nTRnso</a></li><li><span style="direction: ltr;">Gimp </span><a style="direction: ltr;" href="http://j.mp/n5g2MT">http://j.mp/n5g2MT</a></li><li><span style="direction: ltr;">PDF-XChange Viewer </span><a style="direction: ltr;" href="http://j.mp/nLPMye">http://j.mp/nLPMye</a></li><li><span style="direction: ltr;">µTorrent </span><a style="direction: ltr;" href="http://j.mp/oazCkl">http://j.mp/oazCkl</a></li><li><span style="direction: ltr;"> KChmViewer </span><a style="direction: ltr;" href="http://j.mp/q1yX8h">http://j.mp/q1yX8h</a></li><li><span style="direction: ltr;">Bitcoin </span><a style="direction: ltr;" href="http://j.mp/qajVpT">http://j.mp/qajVpT</a></li></ul><h2>Chrome Extensions</h2><ul><li><span style="direction: ltr;">Smart zoom </span><a style="direction: ltr;" href="http://j.mp/pFDAJf">http://j.mp/pFDAJf</a></li><li><span style="direction: ltr;">SmoothScroll </span><a style="direction: ltr;" href="http://j.mp/pGhUYd">http://j.mp/pGhUYd</a></li><li><span style="direction: ltr;">Adblock Plus </span><a style="direction: ltr;" href="http://j.mp/rhSxgC">http://j.mp/rhSxgC</a></li><li><span style="direction: ltr;">ChromeIPass </span><a style="direction: ltr;" href="http://j.mp/pnZsW9">http://j.mp/pnZsW9</a></li><li><span style="direction: ltr;">bitly </span><a style="direction: ltr;" href="http://j.mp/no0PH9">http://j.mp/no0PH9</a></li><li><span style="direction: ltr;">Personal Blocklist </span><a style="direction: ltr;" href="http://j.mp/raRJds">http://j.mp/raRJds</a></li><li><span style="direction: ltr;">reddit companion </span><a style="direction: ltr;" href="http://j.mp/nmvPgN">http://j.mp/nmvPgN</a></li></ul><h2>Development Helpers</h2><ul><li><span style="direction: ltr;">yEd </span><a style="direction: ltr;" href="http://j.mp/ntxx2G">http://j.mp/ntxx2G</a></li><li><span style="direction: ltr;">Notepad++ </span><a style="direction: ltr;" href="http://j.mp/ooVqGH">http://j.mp/ooVqGH</a></li><li><span style="direction: ltr;">Font: Envy Code R </span><a style="direction: ltr;" href="http://j.mp/qq3csi">http://j.mp/qq3csi</a></li><li><span style="direction: ltr;">MetalScroll </span><a style="direction: ltr;" href="http://j.mp/nPOifw*">http://j.mp/nPOifw</a></li><li><span style="direction: ltr;">TortoiseSVN </span><a style="direction: ltr;" href="http://j.mp/pdwONz">http://j.mp/pdwONz</a></li><li><span style="direction: ltr;">CMake </span><a style="direction: ltr;" href="http://j.mp/rcBg0K">http://j.mp/rcBg0K</a></li><li><span style="direction: ltr;">Ruby </span><a style="direction: ltr;" href="http://j.mp/n02USt">http://j.mp/n02USt</a></li><li><span style="direction: ltr;">AutoHotkey </span><a style="direction: ltr;" href="http://j.mp/qyOLve">http://j.mp/qyOLve</a></li></ul><h2>Android</h2><ul><li><span style="direction: ltr;">KeePassDroid </span><a style="direction: ltr;" href="http://j.mp/pZg2Sw">http://j.mp/pZg2Sw</a></li><li><span style="direction: ltr;">SpeedView </span><a style="direction: ltr;" href="http://j.mp/q1N2iZ">http://j.mp/q1N2iZ</a></li><li><span style="direction: ltr;">Barcode Scanner </span><a style="direction: ltr;" href="http://j.mp/pHPWlh">http://j.mp/pHPWlh</a></li><li><span style="direction: ltr;">SMS Backup </span><a style="direction: ltr;" href="http://j.mp/oalNzH">http://j.mp/oalNzH</a></li><li><span style="direction: ltr;">Dialer One </span><a style="direction: ltr;" href="http://j.mp/qxs3y7">http://j.mp/qxs3y7</a></li><li><span style="direction: ltr;">RealCalc </span><a style="direction: ltr;" href="http://j.mp/qGWt3e">http://j.mp/qGWt3e</a></li><li><span style="direction: ltr;">Opera Mobile </span><a style="direction: ltr;" href="http://j.mp/nzcgzq">http://j.mp/nzcgzq</a></li><li><span style="direction: ltr;">Maverick </span><a style="direction: ltr;" href="http://j.mp/p8n2Dq">http://j.mp/p8n2Dq</a></li><li><span style="direction: ltr;">SwiftKey X Keyboard </span><a style="direction: ltr;" href="http://j.mp/puH0Yg">http://j.mp/puH0Yg</a></li><li><span style="direction: ltr;">ezPDF Reader </span><a style="direction: ltr;" href="http://j.mp/pSHqzd">http://j.mp/pSHqzd</a></li><li><span style="direction: ltr;">Google+ </span><a style="direction: ltr;" href="http://j.mp/q8CpLd">http://j.mp/q8CpLd</a></li><li><span style="direction: ltr;">Backgrounds HD Wallpapers </span><a style="direction: ltr;" href="http://j.mp/qUIi1a">http://j.mp/qUIi1a</a></li><li><span style="direction: ltr;">Jorte </span><a style="direction: ltr;" href="http://j.mp/ngE9Am">http://j.mp/ngE9Am</a></li><li><span style="direction: ltr;">QuickPic </span><a style="direction: ltr;" href="http://j.mp/nk1nh8">http://j.mp/nk1nh8</a></li><li><span style="direction: ltr;">Single N-Back </span><a style="direction: ltr;" href="http://j.mp/qAyVgZ">http://j.mp/qAyVgZ</a></li><li><a style="direction: ltr;" href="http://wetter.com">wetter.com</a><a style="direction: ltr;" href="http://j.mp/oSeLAT">http://j.mp/oSeLAT</a></li></ul><div class="g-crossposting-backlink"><a href="https://plus.google.com/101871575253544122749/posts/fTuJyCEq1Te" target="_blank">This was posted on Google+…</a></div><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2011/10/13/here-is-a-quick-list-of-application/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Single N-Back</title><link>http://martin.ankerl.com/2011/09/30/single-n-back/</link> <comments>http://martin.ankerl.com/2011/09/30/single-n-back/#comments</comments> <pubDate>Fri, 30 Sep 2011 13:28:33 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[android]]></category> <category><![CDATA[coding]]></category><guid isPermaLink="false">http://martin.ankerl.com/?p=638</guid> <description><![CDATA[I have just created my first Android app. It is a simple game, called Single N-Back. It has been shown in multiple studies that this game can improve your fluid intelligence. You can get it here: market://details?id=com.ankerl.singlenback https://market.android.com/details?id=com.ankerl.singlenback Or just &#8230; <a href="http://martin.ankerl.com/2011/09/30/single-n-back/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><a href="https://market.android.com/details?id=com.ankerl.singlenback" style="float:right;"><img src="http://martin.ankerl.com/wp-content/uploads/2011/09/werbegrafik.png?9d7bd4" alt="" title="flying brain logo" width="180" height="120" class="alignnone size-full wp-image-639" /></a></p><p>I have just created my first Android app. It is a simple game, called <i>Single N-Back</i>. It has been shown in multiple studies that this game can improve your <a href="http://en.wikipedia.org/wiki/Fluid_and_crystallized_intelligence">fluid intelligence</a>.</p><p>You can get it here:</p><ul><li><a href="market://details?id=com.ankerl.singlenback">market://details?id=com.ankerl.singlenback</a><li><a href="https://market.android.com/details?id=com.ankerl.singlenback">https://market.android.com/details?id=com.ankerl.singlenback</a><li>Or just scan this QR code:<br /><center><a href="http://martin.ankerl.com/wp-content/uploads/2011/09/qr-marketlink.png?9d7bd4"><img src="http://martin.ankerl.com/wp-content/uploads/2011/09/qr-marketlink.png?9d7bd4" alt="" title="qr-marketlink" width="164" height="164" class="alignnone size-full wp-image-639" /></a></center></ul><p><span id="more-638"></span></p><h1>Game Rules</h1><p>The game rules are very simple:<br /> You are shown a sequence of numbers and your task is to click the button if you see the current number matches the one from N steps earlier in the sequence.</p><p>For example, in 2-Back, when you get the sequence</p><p>5, 3, 0, 4, 2, 8, <strong>9</strong>, 1, <strong>9</strong></p><p>you should press the button because the currently showen numer 9 is the same as the number shown 2 steps back.</p><p>You start with 2-Back, and if more than 80% is correct, you can unlock the next N-back level.</p><h1>Screenshot</h1><p>Here are some screenshots of the extremely <del>ugly</del> clean user interface:</p><p><center><br /> <a href="http://martin.ankerl.com/wp-content/uploads/2011/09/device-2011-09-30-143120.png?9d7bd4"><img src="http://martin.ankerl.com/wp-content/uploads/2011/09/device-2011-09-30-143120-180x300.png?9d7bd4" alt="" title="device-2011-09-30-143120" width="180" height="300" class="alignnone size-medium wp-image-643" /></a> <a href="http://martin.ankerl.com/wp-content/uploads/2011/09/device-2011-09-30-143151.png?9d7bd4"><img src="http://martin.ankerl.com/wp-content/uploads/2011/09/device-2011-09-30-143151-180x300.png?9d7bd4" alt="" title="device-2011-09-30-143151" width="180" height="300" class="alignnone size-medium wp-image-644" /></a> <a href="http://martin.ankerl.com/wp-content/uploads/2011/09/device-2011-09-30-143336.png?9d7bd4"><img src="http://martin.ankerl.com/wp-content/uploads/2011/09/device-2011-09-30-143336-180x300.png?9d7bd4" alt="" title="device-2011-09-30-143336" width="180" height="300" class="alignnone size-medium wp-image-645" /></a><br /></center></p><h1>References</h1><p>Since I have not made this test up by myself, here are some papers that explain the validity that that kind of game actually improves fluid intelligence:</p><ul><li><a href="http://scholar.google.at/scholar?cluster=15156915677789202137&#038;hl=de&#038;as_sdt=0,5">The relationship between n-back performance and matrix reasoning&#8211;implications for training and transfer</a>. SM Jaeggi, B Studer-Luethi, M Buschkuehl, YF Su… 2010<li><a href="http://scholar.google.at/scholar?cluster=1456919652319304150&#038;hl=de&#038;as_sdt=0&#038;sciodt=0">Short-and long-term benefits of cognitive training</a>, SM Jaeggi, M Buschkuehl &#8211; Proceedings of the …, 2011<li><a href="http://www.gwern.net/DNB%20FAQ">Dual N-Back FAQ</a></ul><p>Have fun!</p><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2011/09/30/single-n-back/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Download Bitcoin Logos</title><link>http://martin.ankerl.com/2011/06/13/download-bitcoin-logos/</link> <comments>http://martin.ankerl.com/2011/06/13/download-bitcoin-logos/#comments</comments> <pubDate>Mon, 13 Jun 2011 08:05:38 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://martin.ankerl.com/?p=607</guid> <description><![CDATA[I have recently joined the bitcoin network, and generated PNG images from these excellent bitcoin vector graphics. I have extracted all relevant images, and converted each one into a PNG with transparancy, and in 60, 90, 300, and 600 DPI. &#8230; <a href="http://martin.ankerl.com/2011/06/13/download-bitcoin-logos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>I have recently joined the <a href="http://bitcoin.org/">bitcoin</a> network, and generated PNG images from <a href="http://forum.bitcoin.org/?topic=1756.0">these excellent bitcoin vector graphics</a>. I have extracted all relevant images, and converted each one into a PNG with transparancy, and in 60, 90, 300, and 600 DPI. All PNGs are recompressed with <a href="http://optipng.sourceforge.net/">optipng -o9</a> to be as small as possible.</p><p>Download</p><ul><li><a href="http://martin.ankerl.com/wp-content/uploads/2011/06/bitcoin_graphics_png.zip?9d7bd4">bitcoin_graphics_png.zip</a> 494 KB</ul><p>The zip file contains these images in 60, 90, 300, and 600 DPI:<br /> <span id="more-607"></span></p><ol><li><img src="http://martin.ankerl.com/wp-content/uploads/2011/06/bitcoin_144x144.png?9d7bd4" alt="" title="bitcoin_144x144" width="144" height="144" class="aligncenter size-full wp-image-608" /><li><img src="http://martin.ankerl.com/wp-content/uploads/2011/06/bitcoin_accept_bright_145x44.png?9d7bd4" alt="" title="bitcoin_accept_bright_145x44" width="145" height="44" class="aligncenter size-full wp-image-610" /><li><img src="http://martin.ankerl.com/wp-content/uploads/2011/06/bitcoin_accept_dark_145x44.png?9d7bd4" alt="" title="bitcoin_accept_dark_145x44" width="145" height="44" class="aligncenter size-full wp-image-612" /><li><img src="http://martin.ankerl.com/wp-content/uploads/2011/06/bitcoin_accept_rect_button_168x64.png?9d7bd4" alt="" title="bitcoin_accept_rect_button_168x64" width="168" height="64" class="aligncenter size-full wp-image-613" /><li><img src="http://martin.ankerl.com/wp-content/uploads/2011/06/bitcoin_accept_round_button_168x64.png?9d7bd4" alt="" title="bitcoin_accept_round_button_168x64" width="168" height="64" class="aligncenter size-full wp-image-614" /><li><img src="http://martin.ankerl.com/wp-content/uploads/2011/06/bitcoin_bright_306x64.png?9d7bd4" alt="" title="bitcoin_bright_306x64" width="306" height="64" class="aligncenter size-full wp-image-615" /><li><img src="http://martin.ankerl.com/wp-content/uploads/2011/06/bitcoin_dark_306x64.png?9d7bd4" alt="" title="bitcoin_dark_306x64" width="306" height="64" class="aligncenter size-full wp-image-616" /><li><img src="http://martin.ankerl.com/wp-content/uploads/2011/06/bitcoin-box-60x60.png?9d7bd4" alt="" title="bitcoin-box-60x60" width="60" height="60" class="aligncenter size-full wp-image-617" /></ol><p>This work is in the <a href="http://creativecommons.org/licenses/publicdomain/">Public Domain</a>.</p><p>If you like this, feel free to donate a few coins to <a href="http://blockexplorer.com/address/16fcc4ui1pxW14JteSLZNpaBQ3D45YJ4qc" title="16fcc4ui1pxW14JteSLZNpaBQ3D45YJ4qc">16fcc4ui1pxW14JteSLZNpaBQ3D45YJ4qc </a></p><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2011/06/13/download-bitcoin-logos/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Smallest working QR Code</title><link>http://martin.ankerl.com/2011/06/06/smallest-working-qr-code/</link> <comments>http://martin.ankerl.com/2011/06/06/smallest-working-qr-code/#comments</comments> <pubDate>Mon, 06 Jun 2011 15:57:14 +0000</pubDate> <dc:creator>martinus</dc:creator> <category><![CDATA[Uncategorized]]></category><guid isPermaLink="false">http://martin.ankerl.com/?p=580</guid> <description><![CDATA[I&#8217;ve been playing a bit with QR code generators, and tried to generated a very small one for this homepage. This is the result: The file is 21&#215;21 pixels, and has just 178 165 bytes. It works with my cellphone &#8230; <a href="http://martin.ankerl.com/2011/06/06/smallest-working-qr-code/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>I&#8217;ve been playing a bit with QR code generators, and tried to generated a very small one for this homepage. This is the result:<br /><center><img src="http://martin.ankerl.com/wp-content/uploads/2011/06/martinankerl-small.png?9d7bd4" width="21" height="21" /></center></p><p>The file is 21&#215;21 pixels, and has just <strike>178</strike> 165 bytes. It works with my cellphone from a distance of about 7cm, and gets you to <a href="http://martin.ankerl.com/">http://martin.ankerl.com/</a>.</p><p>How did I create it?</p><ul><li>Create very short URL to the link you want to create the QR code for. I&#8217;ve used <a href="http://j.mp/">j.mp</a> with the customize link feature, and played a bit with special characters like <tt>_</tt> until I got a working link.<li>Create a QR code for this link, with low error code correction. <a href="http://www.racoindustries.com/barcodegenerator/2d/qr-code.aspx">This generator</a> has this option.<li>Open the file with your favourite image editor, cut off the border, resize it by factor 1/4 with resample to get a QR code where each black dot is one pixel wide.<li>Save as .png, without any additional information.<li>use <a href="http://www.irfanview.com/plugins.htm">IrfanView&#8217;s PNGOUT</a>, and afterwards <a href="http://optipng.sourceforge.net/">optipng</a> -o9 to recompress the picture.</ul><p>Can you make a smaller QR code with working weblink?</p><p>Have fun!</p><div style='clear:both'></div>]]></content:encoded> <wfw:commentRss>http://martin.ankerl.com/2011/06/06/smallest-working-qr-code/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching using disk: basic
Object Caching 1199/1336 objects using disk: basic

Served from: martin.ankerl.com @ 2012-02-04 07:59:35 -->
