Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Site updated at 2012-09-27 16:48:37 UTC

  • Loading branch information...
commit 2223e9e8bc933df22b96fb6a06903d1a2f29d095 1 parent b2e8ea6
David Fendrich authored

Showing 242 changed files with 15,920 additions and 0 deletions. Show diff stats Hide diff stats

  1. +250 0 404.html
  2. +1 0  CNAME
  3. BIN  apple-touch-icon-114x114-precomposed.png
  4. BIN  apple-touch-icon-144x144-precomposed.png
  5. BIN  apple-touch-icon-57x57-precomposed.png
  6. BIN  apple-touch-icon-72x72-precomposed.png
  7. BIN  apple-touch-icon-precomposed.png
  8. BIN  apple-touch-icon-precomposed.psd
  9. BIN  apple-touch-icon.png
  10. BIN  assets/jwplayer/glow/controlbar/background.png
  11. BIN  assets/jwplayer/glow/controlbar/blankButton.png
  12. BIN  assets/jwplayer/glow/controlbar/divider.png
  13. BIN  assets/jwplayer/glow/controlbar/fullscreenButton.png
  14. BIN  assets/jwplayer/glow/controlbar/fullscreenButtonOver.png
  15. BIN  assets/jwplayer/glow/controlbar/muteButton.png
  16. BIN  assets/jwplayer/glow/controlbar/muteButtonOver.png
  17. BIN  assets/jwplayer/glow/controlbar/normalscreenButton.png
  18. BIN  assets/jwplayer/glow/controlbar/normalscreenButtonOver.png
  19. BIN  assets/jwplayer/glow/controlbar/pauseButton.png
  20. BIN  assets/jwplayer/glow/controlbar/pauseButtonOver.png
  21. BIN  assets/jwplayer/glow/controlbar/playButton.png
  22. BIN  assets/jwplayer/glow/controlbar/playButtonOver.png
  23. BIN  assets/jwplayer/glow/controlbar/timeSliderBuffer.png
  24. BIN  assets/jwplayer/glow/controlbar/timeSliderCapLeft.png
  25. BIN  assets/jwplayer/glow/controlbar/timeSliderCapRight.png
  26. BIN  assets/jwplayer/glow/controlbar/timeSliderProgress.png
  27. BIN  assets/jwplayer/glow/controlbar/timeSliderRail.png
  28. BIN  assets/jwplayer/glow/controlbar/unmuteButton.png
  29. BIN  assets/jwplayer/glow/controlbar/unmuteButtonOver.png
  30. BIN  assets/jwplayer/glow/display/background.png
  31. BIN  assets/jwplayer/glow/display/bufferIcon.png
  32. BIN  assets/jwplayer/glow/display/muteIcon.png
  33. BIN  assets/jwplayer/glow/display/playIcon.png
  34. BIN  assets/jwplayer/glow/dock/button.png
  35. +115 0 assets/jwplayer/glow/glow.xml
  36. BIN  assets/jwplayer/glow/playlist/item.png
  37. BIN  assets/jwplayer/glow/playlist/itemOver.png
  38. BIN  assets/jwplayer/glow/playlist/sliderCapBottom.png
  39. BIN  assets/jwplayer/glow/playlist/sliderCapTop.png
  40. BIN  assets/jwplayer/glow/playlist/sliderRail.png
  41. BIN  assets/jwplayer/glow/playlist/sliderThumb.png
  42. BIN  assets/jwplayer/glow/sharing/embedIcon.png
  43. BIN  assets/jwplayer/glow/sharing/embedScreen.png
  44. BIN  assets/jwplayer/glow/sharing/shareIcon.png
  45. BIN  assets/jwplayer/glow/sharing/shareScreen.png
  46. BIN  assets/jwplayer/player.swf
  47. +428 0 atom.xml
  48. +288 0 blog/2007/08/30/seed-ai/index.html
  49. +282 0 blog/2007/09/05/1250-press-return/index.html
  50. +282 0 blog/2007/09/06/coincidence/index.html
  51. +282 0 blog/2007/09/07/optimal-iq-test/index.html
  52. +282 0 blog/2007/12/12/deceptively-simple-game/index.html
  53. +290 0 blog/2007/12/21/why-planning-is-hard/index.html
  54. +295 0 blog/2010/04/14/confident-optimization-using-gates/index.html
  55. +282 0 blog/2010/04/27/gates-in-practice/index.html
  56. +340 0 blog/2010/05/05/solving-sudoku-with-genetic-algorithms/index.html
  57. +305 0 blog/2010/06/16/digital-immortality-true-ai-and/index.html
  58. +295 0 blog/2010/08/19/milliblogging-essae-in-7-tweets/index.html
  59. +345 0 blog/2010/08/27/rescuing-hosed-system-using-only-bash/index.html
  60. +282 0 blog/2010/12/28/compression-prediction-and-artificial/index.html
  61. +340 0 blog/2011/11/10/guerilla-my-attempt-to-build-strong-ai/index.html
  62. +316 0 blog/2012/09/27/octopress-and-github-as-blogging-platform/index.html
  63. +444 0 blog/archives/index.html
  64. +100 0 blog/categories/agi/atom.xml
  65. +258 0 blog/categories/agi/index.html
  66. +54 0 blog/categories/ai-agi-hutter/atom.xml
  67. +241 0 blog/categories/ai-agi-hutter/index.html
  68. +212 0 blog/categories/ai/atom.xml
  69. +300 0 blog/categories/ai/index.html
  70. +54 0 blog/categories/anissimov/atom.xml
  71. +241 0 blog/categories/anissimov/index.html
  72. +94 0 blog/categories/bash/atom.xml
  73. +241 0 blog/categories/bash/index.html
  74. +27 0 blog/categories/big-o/atom.xml
  75. +241 0 blog/categories/big-o/index.html
  76. +94 0 blog/categories/busybox/atom.xml
  77. +241 0 blog/categories/busybox/index.html
  78. +50 0 blog/categories/compression/atom.xml
  79. +258 0 blog/categories/compression/index.html
  80. +50 0 blog/categories/cyc/atom.xml
  81. +255 0 blog/categories/cyc/index.html
  82. +89 0 blog/categories/encyclopedia/atom.xml
  83. +241 0 blog/categories/encyclopedia/index.html
  84. +100 0 blog/categories/ga/atom.xml
  85. +255 0 blog/categories/ga/index.html
  86. +55 0 blog/categories/gates/atom.xml
  87. +255 0 blog/categories/gates/index.html
  88. +54 0 blog/categories/goertzel/atom.xml
  89. +241 0 blog/categories/goertzel/index.html
  90. +89 0 blog/categories/guerilla/atom.xml
  91. +241 0 blog/categories/guerilla/index.html
  92. +54 0 blog/categories/hodgepodge/atom.xml
  93. +241 0 blog/categories/hodgepodge/index.html
  94. +27 0 blog/categories/hutter/atom.xml
  95. +241 0 blog/categories/hutter/index.html
  96. +73 0 blog/categories/intelligence/atom.xml
  97. +269 0 blog/categories/intelligence/index.html
  98. +27 0 blog/categories/kolmogorov/atom.xml
  99. +241 0 blog/categories/kolmogorov/index.html
  100. +27 0 blog/categories/lablog/atom.xml
  101. +241 0 blog/categories/lablog/index.html
  102. +39 0 blog/categories/lecture/atom.xml
  103. +241 0 blog/categories/lecture/index.html
  104. +27 0 blog/categories/levin/atom.xml
  105. +241 0 blog/categories/levin/index.html
  106. +94 0 blog/categories/linux/atom.xml
  107. +241 0 blog/categories/linux/index.html
  108. +39 0 blog/categories/mdl/atom.xml
  109. +241 0 blog/categories/mdl/index.html
  110. +44 0 blog/categories/microblogging/atom.xml
  111. +241 0 blog/categories/microblogging/index.html
  112. +44 0 blog/categories/milliblogging/atom.xml
  113. +241 0 blog/categories/milliblogging/index.html
  114. +27 0 blog/categories/mindpixel/atom.xml
  115. +241 0 blog/categories/mindpixel/index.html
  116. +27 0 blog/categories/multiverse/atom.xml
  117. +241 0 blog/categories/multiverse/index.html
  118. +54 0 blog/categories/novamente/atom.xml
  119. +241 0 blog/categories/novamente/index.html
  120. +27 0 blog/categories/open-mind-common-sense/atom.xml
  121. +241 0 blog/categories/open-mind-common-sense/index.html
  122. +54 0 blog/categories/opencog/atom.xml
  123. +241 0 blog/categories/opencog/index.html
  124. +100 0 blog/categories/optopus/atom.xml
  125. +255 0 blog/categories/optopus/index.html
  126. +39 0 blog/categories/pattern-recognition/atom.xml
  127. +241 0 blog/categories/pattern-recognition/index.html
  128. +73 0 blog/categories/planning/atom.xml
  129. +269 0 blog/categories/planning/index.html
Sorry, we could not display the entire diff because it was too big.
250 404.html
... ... @@ -0,0 +1,250 @@
  1 +
  2 +<!DOCTYPE html>
  3 +<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
  4 +<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
  5 +<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
  6 +<head>
  7 + <meta charset="utf-8">
  8 + <title>IFHO</title>
  9 + <meta name="author" content="David Fendrich">
  10 +
  11 +
  12 + <meta name="description" content="Page not found Sorry about that! Unfortunately the page you were looking for could not be found. It might have been removed, lost or never existed. &hellip;">
  13 +
  14 +
  15 + <!-- http://t.co/dKP3o1e -->
  16 + <meta name="HandheldFriendly" content="True">
  17 + <meta name="MobileOptimized" content="320">
  18 + <meta name="viewport" content="width=device-width, initial-scale=1">
  19 +
  20 +
  21 + <link rel="canonical" href="http://gurgeh.github.com/404.html">
  22 + <link href="/favicon.ico" rel="icon">
  23 + <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
  24 + <script src="/javascripts/modernizr-2.0.js"></script>
  25 + <script src="/javascripts/ender.js"></script>
  26 + <script src="/javascripts/octopress.js" type="text/javascript"></script>
  27 + <link href="/atom.xml" rel="alternate" title="IFHO" type="application/atom+xml">
  28 + <link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
  29 +
  30 +<!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
  31 +<link href="http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
  32 +<link href="http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
  33 +
  34 +
  35 +
  36 +
  37 +</head>
  38 +
  39 +
  40 +<body >
  41 + <header role="banner"><hgroup>
  42 + <div id="logo">
  43 + <!-- <div id="logoLeft">{</div><div id="logText"><img src="/images/SimpsonDavid.png" width="36" height="36"></div><div id="logoRight">}</div>
  44 + <div class="clear"></div>-->
  45 + </div>
  46 + <h1><a href="/">IFHO</a></h1>
  47 +
  48 + <h2>In Fendrich's Humble Opinion</h2>
  49 +
  50 + <div class="clear"></div>
  51 +</hgroup>
  52 +
  53 +
  54 +</header>
  55 + <nav role="navigation"><ul class="subscription" data-subscription="rss">
  56 + <li><a href="/atom.xml" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
  57 +
  58 +</ul>
  59 +
  60 +<form action="http://google.com/search" method="get">
  61 + <fieldset role="search">
  62 + <input type="hidden" name="q" value="site:gurgeh.github.com" />
  63 + <input class="search" type="text" name="q" results="0" placeholder="Search"/>
  64 + </fieldset>
  65 +</form>
  66 +
  67 +<ul class="main-navigation">
  68 + <li><a href="/">Blog</a></li>
  69 + <li><a href="/blog/archives">Archives</a></li>
  70 +</ul>
  71 +
  72 +</nav>
  73 + <div id="main">
  74 + <div id="content">
  75 + <div>
  76 +<article role="article">
  77 +
  78 + <header>
  79 + <h1 class="entry-title">Page not found</h1>
  80 + <p class="meta">Sorry about that!</p>
  81 +</header>
  82 +
  83 +<p>
  84 + Unfortunately the page you were looking for could not be found. It might have
  85 + been removed, lost or never existed. You could try and find it using the
  86 + <script>
  87 + var arrURL = document.URL.split("/");
  88 + var arrParams = arrURL[3].split("?");
  89 + var searchParam = arrParams[0].substr(0, arrParams[0].lastIndexOf("."));
  90 +
  91 + document.write('<a href="http://google.com/search?q=site:gurgeh.github.com ' + searchParam + '">search</a>')
  92 + </script>
  93 + <noscript><a href="http://google.com/search?q=site%3Agurgeh.github.com">search</a></noscript>
  94 + box (top right corner), browse the
  95 + <a href="/blog/archives">archives</a> or go to the
  96 + <a href="/">frontpage</a>.
  97 +</p>
  98 +
  99 +
  100 + <footer>
  101 +
  102 +
  103 + <div class="sharing">
  104 +
  105 + <a href="http://twitter.com/share" class="twitter-share-button" data-url="http://gurgeh.github.com/404.html" data-via="fnedrik" data-counturl="http://gurgeh.github.com/404.html" >Tweet</a>
  106 +
  107 +
  108 +
  109 +</div>
  110 +
  111 +
  112 + </footer>
  113 +
  114 +</article>
  115 +
  116 +</div>
  117 +
  118 +<aside class="sidebar">
  119 +
  120 + <section>
  121 + <h1>Recent Posts</h1>
  122 + <ul id="recent_posts">
  123 +
  124 + <li class="post">
  125 + <a href="/blog/2012/09/27/octopress-and-github-as-blogging-platform/">Octopress and Github as a blogging platform</a>
  126 + </li>
  127 +
  128 + <li class="post">
  129 + <a href="/blog/2011/11/10/guerilla-my-attempt-to-build-strong-ai/">Guerilla - my attempt to build a strong AI</a>
  130 + </li>
  131 +
  132 + <li class="post">
  133 + <a href="/blog/2010/12/28/compression-prediction-and-artificial/">Compression, prediction and artificial intelligence</a>
  134 + </li>
  135 +
  136 + <li class="post">
  137 + <a href="/blog/2010/08/27/rescuing-hosed-system-using-only-bash/">Rescuing a hosed system using only Bash</a>
  138 + </li>
  139 +
  140 + <li class="post">
  141 + <a href="/blog/2010/08/19/milliblogging-essae-in-7-tweets/">Milliblogging - An essay in 7 tweets</a>
  142 + </li>
  143 +
  144 + </ul>
  145 +</section>
  146 +
  147 +<section>
  148 + <h1>GitHub Repos</h1>
  149 + <ul id="gh_repos">
  150 + <li class="loading">Status updating...</li>
  151 + </ul>
  152 +
  153 + <a href="https://github.com/gurgeh">@gurgeh</a> on GitHub
  154 +
  155 + <script type="text/javascript">
  156 + $.domReady(function(){
  157 + if (!window.jXHR){
  158 + var jxhr = document.createElement('script');
  159 + jxhr.type = 'text/javascript';
  160 + jxhr.src = '/javascripts/libs/jXHR.js';
  161 + var s = document.getElementsByTagName('script')[0];
  162 + s.parentNode.insertBefore(jxhr, s);
  163 + }
  164 +
  165 + github.showRepos({
  166 + user: 'gurgeh',
  167 + count: 5,
  168 + skip_forks: true,
  169 + target: '#gh_repos'
  170 + });
  171 + });
  172 + </script>
  173 + <script src="/javascripts/github.js" type="text/javascript"> </script>
  174 +</section>
  175 +
  176 +
  177 +<section>
  178 + <h1>Latest Tweets</h1>
  179 + <ul id="tweets">
  180 + <li class="loading">Status updating...</li>
  181 + </ul>
  182 + <script type="text/javascript">
  183 + $.domReady(function(){
  184 + getTwitterFeed("fnedrik", 4, false);
  185 + });
  186 + </script>
  187 + <script src="/javascripts/twitter.js" type="text/javascript"> </script>
  188 +
  189 + <a href="http://twitter.com/fnedrik" class="twitter-follow-button" data-show-count="false">Follow @fnedrik</a>
  190 +
  191 +</section>
  192 +
  193 +
  194 +
  195 +
  196 +
  197 +
  198 +</aside>
  199 +
  200 +
  201 + </div>
  202 + </div>
  203 + <footer role="contentinfo"><p>
  204 + Copyright &copy; 2012 - David Fendrich -
  205 + <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
  206 +</p>
  207 +
  208 +</footer>
  209 +
  210 +
  211 +<script type="text/javascript">
  212 + var disqus_shortname = 'ifho';
  213 +
  214 +
  215 + var disqus_script = 'count.js';
  216 +
  217 + (function () {
  218 + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
  219 + dsq.src = 'http://' + disqus_shortname + '.disqus.com/' + disqus_script;
  220 + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  221 + }());
  222 +</script>
  223 +
  224 +
  225 +
  226 +
  227 +
  228 +
  229 +
  230 + <script type="text/javascript">
  231 + (function(){
  232 + var twitterWidgets = document.createElement('script');
  233 + twitterWidgets.type = 'text/javascript';
  234 + twitterWidgets.async = true;
  235 + twitterWidgets.src = 'http://platform.twitter.com/widgets.js';
  236 + document.getElementsByTagName('head')[0].appendChild(twitterWidgets);
  237 + })();
  238 + </script>
  239 +
  240 +
  241 +
  242 +
  243 +<a title="Real Time Analytics" href="http://getclicky.com/100529738"><img alt="Real Time Analytics" src="//static.getclicky.com/media/links/badge.gif" border="0" /></a>
  244 +<script src="//static.getclicky.com/js" type="text/javascript"></script>
  245 +<script type="text/javascript">try{ clicky.init(100529738); }catch(e){}</script>
  246 +<noscript><p><img alt="Clicky" width="1" height="1" src="//in.getclicky.com/100529738ns.gif" /></p></noscript>
  247 +
  248 +
  249 +</body>
  250 +</html>
1  CNAME
... ... @@ -0,0 +1 @@
  1 +fendrich.se
BIN  apple-touch-icon-114x114-precomposed.png
0  apple-touch-icon-114x114-precomposed.png
BIN  apple-touch-icon-144x144-precomposed.png
0  apple-touch-icon-144x144-precomposed.png
BIN  apple-touch-icon-57x57-precomposed.png
0  apple-touch-icon-57x57-precomposed.png
BIN  apple-touch-icon-72x72-precomposed.png
0  apple-touch-icon-72x72-precomposed.png
0  apple-touch-icon-precomposed.png
BIN  apple-touch-icon-precomposed.png
BIN  apple-touch-icon-precomposed.psd
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
0  apple-touch-icon-precomposed.psd
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
BIN  apple-touch-icon.png
0  apple-touch-icon.png
BIN  assets/jwplayer/glow/controlbar/background.png
0  assets/jwplayer/glow/controlbar/background.png
BIN  assets/jwplayer/glow/controlbar/blankButton.png
0  assets/jwplayer/glow/controlbar/blankButton.png
BIN  assets/jwplayer/glow/controlbar/divider.png
0  assets/jwplayer/glow/controlbar/divider.png
BIN  assets/jwplayer/glow/controlbar/fullscreenButton.png
0  assets/jwplayer/glow/controlbar/fullscreenButton.png
BIN  assets/jwplayer/glow/controlbar/fullscreenButtonOver.png
0  assets/jwplayer/glow/controlbar/fullscreenButtonOver.png
0  assets/jwplayer/glow/controlbar/muteButton.png
BIN  assets/jwplayer/glow/controlbar/muteButton.png
0  assets/jwplayer/glow/controlbar/muteButtonOver.png
BIN  assets/jwplayer/glow/controlbar/muteButtonOver.png
BIN  assets/jwplayer/glow/controlbar/normalscreenButton.png
0  assets/jwplayer/glow/controlbar/normalscreenButton.png
0  assets/jwplayer/glow/controlbar/normalscreenButtonOver.png
BIN  assets/jwplayer/glow/controlbar/normalscreenButtonOver.png
BIN  assets/jwplayer/glow/controlbar/pauseButton.png
0  assets/jwplayer/glow/controlbar/pauseButton.png
BIN  assets/jwplayer/glow/controlbar/pauseButtonOver.png
0  assets/jwplayer/glow/controlbar/pauseButtonOver.png
BIN  assets/jwplayer/glow/controlbar/playButton.png
0  assets/jwplayer/glow/controlbar/playButton.png
BIN  assets/jwplayer/glow/controlbar/playButtonOver.png
0  assets/jwplayer/glow/controlbar/playButtonOver.png
BIN  assets/jwplayer/glow/controlbar/timeSliderBuffer.png
0  assets/jwplayer/glow/controlbar/timeSliderBuffer.png
0  assets/jwplayer/glow/controlbar/timeSliderCapLeft.png
BIN  assets/jwplayer/glow/controlbar/timeSliderCapLeft.png
0  assets/jwplayer/glow/controlbar/timeSliderCapRight.png
BIN  assets/jwplayer/glow/controlbar/timeSliderCapRight.png
0  assets/jwplayer/glow/controlbar/timeSliderProgress.png
BIN  assets/jwplayer/glow/controlbar/timeSliderProgress.png
0  assets/jwplayer/glow/controlbar/timeSliderRail.png
BIN  assets/jwplayer/glow/controlbar/timeSliderRail.png
0  assets/jwplayer/glow/controlbar/unmuteButton.png
BIN  assets/jwplayer/glow/controlbar/unmuteButton.png
0  assets/jwplayer/glow/controlbar/unmuteButtonOver.png
BIN  assets/jwplayer/glow/controlbar/unmuteButtonOver.png
0  assets/jwplayer/glow/display/background.png
BIN  assets/jwplayer/glow/display/background.png
0  assets/jwplayer/glow/display/bufferIcon.png
BIN  assets/jwplayer/glow/display/bufferIcon.png
BIN  assets/jwplayer/glow/display/muteIcon.png
0  assets/jwplayer/glow/display/muteIcon.png
BIN  assets/jwplayer/glow/display/playIcon.png
0  assets/jwplayer/glow/display/playIcon.png
BIN  assets/jwplayer/glow/dock/button.png
0  assets/jwplayer/glow/dock/button.png
115 assets/jwplayer/glow/glow.xml
... ... @@ -0,0 +1,115 @@
  1 +<?xml version="1.0"?>
  2 +<skin version="1.1" name="Glow" author="LongTail Video">
  3 +
  4 + <settings>
  5 + <setting name="backcolor" value="0x000000" />
  6 + <setting name="frontcolor" value="0xeeeeee" />
  7 + <setting name="lightcolor" value="0xeeeeee" />
  8 + <setting name="screencolor" value="0x000000" />
  9 + </settings>
  10 +
  11 + <components>
  12 + <component name="controlbar">
  13 + <settings>
  14 + <setting name="margin" value="0" />
  15 + <setting name="fontsize" value="11" />
  16 + <setting name="fontcolor" value="0xEEEEEE" />
  17 + <setting name="buttoncolor" value="0xEEEEEE" />
  18 + </settings>
  19 +
  20 + <layout>
  21 + <group position="left">
  22 + <button name="play" />
  23 + <text name="elapsed" />
  24 + </group>
  25 + <group position="center">
  26 + <slider name="time" />
  27 + </group>
  28 + <group position="right">
  29 + <text name="duration" />
  30 + <button name="blank" />
  31 + <button name="mute" />
  32 + <button name="fullscreen" />
  33 + </group>
  34 + </layout>
  35 +
  36 + <elements>
  37 + <element name="background" src="background.png" />
  38 + <element name="capLeft" src="divider.png" />
  39 + <element name="capRight" src="divider.png" />
  40 + <element name="divider" src="divider.png" />
  41 + <element name="blankButton" src="blankButton.png" />
  42 + <element name="fullscreenButton" src="fullscreenButton.png" />
  43 + <element name="fullscreenButtonOver" src="fullscreenButtonOver.png" />
  44 + <element name="muteButton" src="muteButton.png" />
  45 + <element name="muteButtonOver" src="muteButtonOver.png" />
  46 + <element name="pauseButton" src="pauseButton.png" />
  47 + <element name="pauseButtonOver" src="pauseButtonOver.png" />
  48 + <element name="playButton" src="playButton.png" />
  49 + <element name="playButtonOver" src="playButtonOver.png" />
  50 + <element name="timeSliderBuffer" src="timeSliderBuffer.png" />
  51 + <element name="timeSliderCapLeft" src="timeSliderCapLeft.png" />
  52 + <element name="timeSliderCapRight" src="timeSliderCapRight.png" />
  53 + <element name="timeSliderProgress" src="timeSliderProgress.png" />
  54 + <element name="timeSliderRail" src="timeSliderRail.png" />
  55 + <element name="normalscreenButton" src="normalscreenButton.png" />
  56 + <element name="normalscreenButtonOver" src="normalscreenButtonOver.png" />
  57 + <element name="unmuteButton" src="unmuteButton.png" />
  58 + <element name="unmuteButtonOver" src="unmuteButtonOver.png" />
  59 + <element name="volumeSliderRail" src="divider.png" />
  60 + <element name="volumeSliderProgress" src="divider.png" />
  61 + </elements>
  62 + </component>
  63 +
  64 + <component name="display">
  65 + <settings>
  66 + <setting name="bufferinterval" value="250" />
  67 + <setting name="bufferrotation" value="90" />
  68 + </settings>
  69 + <elements>
  70 + <element name="background" src="background.png" />
  71 + <element name="playIcon" src="playIcon.png" />
  72 + <element name="muteIcon" src="muteIcon.png" />
  73 + <element name="errorIcon" src="bufferIcon.png" />
  74 + <element name="bufferIcon" src="bufferIcon.png" />
  75 + </elements>
  76 + </component>
  77 +
  78 + <component name="dock">
  79 + <settings>
  80 + <setting name="fontcolor" value="0xFFFFFF" />
  81 + </settings>
  82 + <elements>
  83 + <element name="button" src="button.png" />
  84 + </elements>
  85 + </component>
  86 +
  87 + <component name="playlist">
  88 + <settings>
  89 + <setting name="fontcolor" value="0xEEEEEE" />
  90 + <setting name="overcolor" value="0xFFFFFF" />
  91 + <setting name="activecolor" value="0xFFFFFF" />
  92 + <setting name="backgroundcolor" value="0x333333" />
  93 + </settings>
  94 + <elements>
  95 + <element name="item" src="item.png" />
  96 + <element name="itemOver" src="itemOver.png" />
  97 + <element name="sliderCapBottom" src="sliderCapBottom.png" />
  98 + <element name="sliderCapTop" src="sliderCapTop.png" />
  99 + <element name="sliderRail" src="sliderRail.png" />
  100 + <element name="sliderThumb" src="sliderThumb.png" />
  101 + </elements>
  102 + </component>
  103 +
  104 + <component name="sharing">
  105 + <elements>
  106 + <element name="embedIcon" src="embedIcon.png" />
  107 + <element name="embedScreen" src="embedScreen.png" />
  108 + <element name="shareIcon" src="shareIcon.png" />
  109 + <element name="shareScreen" src="shareScreen.png" />
  110 + </elements>
  111 + </component>
  112 +
  113 + </components>
  114 +
  115 +</skin>
0  assets/jwplayer/glow/playlist/item.png
BIN  assets/jwplayer/glow/playlist/item.png
BIN  assets/jwplayer/glow/playlist/itemOver.png
0  assets/jwplayer/glow/playlist/itemOver.png
0  assets/jwplayer/glow/playlist/sliderCapBottom.png
BIN  assets/jwplayer/glow/playlist/sliderCapBottom.png
BIN  assets/jwplayer/glow/playlist/sliderCapTop.png
0  assets/jwplayer/glow/playlist/sliderCapTop.png
BIN  assets/jwplayer/glow/playlist/sliderRail.png
0  assets/jwplayer/glow/playlist/sliderRail.png
BIN  assets/jwplayer/glow/playlist/sliderThumb.png
0  assets/jwplayer/glow/playlist/sliderThumb.png
0  assets/jwplayer/glow/sharing/embedIcon.png
BIN  assets/jwplayer/glow/sharing/embedIcon.png
BIN  assets/jwplayer/glow/sharing/embedScreen.png
0  assets/jwplayer/glow/sharing/embedScreen.png
0  assets/jwplayer/glow/sharing/shareIcon.png
BIN  assets/jwplayer/glow/sharing/shareIcon.png
BIN  assets/jwplayer/glow/sharing/shareScreen.png
0  assets/jwplayer/glow/sharing/shareScreen.png
BIN  assets/jwplayer/player.swf
Binary file not shown
0  assets/jwplayer/player.swf
Sorry, we could not display the changes to this file because there were too many other changes to display.
428 atom.xml
428 additions, 0 deletions not shown
288 blog/2007/08/30/seed-ai/index.html
... ... @@ -0,0 +1,288 @@
  1 +
  2 +<!DOCTYPE html>
  3 +<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
  4 +<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
  5 +<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
  6 +<head>
  7 + <meta charset="utf-8">
  8 + <title>Seed AI - IFHO</title>
  9 + <meta name="author" content="David Fendrich">
  10 +
  11 +
  12 + <meta name="description" content="Le grand assumptionThe assumption of seed AI is this: If we can make a program intelligent enough, a &#8220;seed&#8221; of intelligence, we can also &hellip;">
  13 +
  14 +
  15 + <!-- http://t.co/dKP3o1e -->
  16 + <meta name="HandheldFriendly" content="True">
  17 + <meta name="MobileOptimized" content="320">
  18 + <meta name="viewport" content="width=device-width, initial-scale=1">
  19 +
  20 +
  21 + <link rel="canonical" href="http://gurgeh.github.com/blog/2007/08/30/seed-ai/">
  22 + <link href="/favicon.ico" rel="icon">
  23 + <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
  24 + <script src="/javascripts/modernizr-2.0.js"></script>
  25 + <script src="/javascripts/ender.js"></script>
  26 + <script src="/javascripts/octopress.js" type="text/javascript"></script>
  27 + <link href="/atom.xml" rel="alternate" title="IFHO" type="application/atom+xml">
  28 + <link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
  29 +
  30 +<!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
  31 +<link href="http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
  32 +<link href="http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
  33 +
  34 +
  35 +
  36 +
  37 +</head>
  38 +
  39 +
  40 +<body >
  41 + <header role="banner"><hgroup>
  42 + <div id="logo">
  43 + <!-- <div id="logoLeft">{</div><div id="logText"><img src="/images/SimpsonDavid.png" width="36" height="36"></div><div id="logoRight">}</div>
  44 + <div class="clear"></div>-->
  45 + </div>
  46 + <h1><a href="/">IFHO</a></h1>
  47 +
  48 + <h2>In Fendrich's Humble Opinion</h2>
  49 +
  50 + <div class="clear"></div>
  51 +</hgroup>
  52 +
  53 +
  54 +</header>
  55 + <nav role="navigation"><ul class="subscription" data-subscription="rss">
  56 + <li><a href="/atom.xml" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
  57 +
  58 +</ul>
  59 +
  60 +<form action="http://google.com/search" method="get">
  61 + <fieldset role="search">
  62 + <input type="hidden" name="q" value="site:gurgeh.github.com" />
  63 + <input class="search" type="text" name="q" results="0" placeholder="Search"/>
  64 + </fieldset>
  65 +</form>
  66 +
  67 +<ul class="main-navigation">
  68 + <li><a href="/">Blog</a></li>
  69 + <li><a href="/blog/archives">Archives</a></li>
  70 +</ul>
  71 +
  72 +</nav>
  73 + <div id="main">
  74 + <div id="content">
  75 + <div>
  76 +<article class="hentry" role="article">
  77 +
  78 + <header>
  79 +
  80 +
  81 + <h1 class="entry-title">Seed AI</h1>
  82 +
  83 +
  84 +
  85 + <p class="meta">
  86 +
  87 +
  88 +
  89 +
  90 +
  91 +
  92 +
  93 +
  94 +
  95 +
  96 +
  97 +
  98 +<time datetime="2007-08-30T00:00:00+02:00" pubdate data-updated="true">Aug 30<span>th</span>, 2007</time>
  99 +
  100 + </p>
  101 +
  102 + </header>
  103 +
  104 +
  105 +<div class="entry-content"><div class='post'>
  106 +<span style="font-size:130%;">Le grand assumption<br /><br /></span>The assumption of <a href="http://en.wikipedia.org/wiki/Seed_AI">seed AI</a> is this: <blockquote>If we can make a program intelligent enough, a &#8220;seed&#8221; of intelligence, we can also make it gradually improve itself.</blockquote>If intelligence can be expressed as a short formula (think Maxwell&#8217;s equations or E = mc<sup>2</sup>), we might not need to make a seed. We will simply have to find that formula. In general, the <a href="http://en.wikipedia.org/wiki/No-free-lunch_theorem">No-Free-Lunch theorem</a> implies that there must always be scope for improvement, but there are nevertheless some promising paths that I will post about some other time.<br /><br />Related to seed AI is the point where an AI can read and make sense of human text, such as Wikipedia, Principia Mathematica, etc. If we can reach that goal, an AI would quickly acquire superhuman cross-disciplinary knowledge, which in turn would help it to digest ever more advanced text. To get there, a program has to have plenty of common sense that we all take for granted. <a href="http://en.wikipedia.org/wiki/Cyc">Cyc</a> is an ambitious, long-running, project that tries to collect all this &#8220;common sense&#8221;.<br /><br />A superintelligent AI would be incredibly useful. Useful beyond your wildest fantasies. <sing>.<br /><br />A more intelligent program is likely harder to improve, but at the same time a more intelligent program is better at improving, so we can have reasonable hope for the improvement process to continue indefinitely (or perhaps converge to a single point - the formula for intelligence), although it is hard to guess what the improvement curve will look like. Will the difficulty increase much faster than the capacity? No one knows. It is tempting to make an analogy with humans and note how hard it is for us to rewire the brain to make us fundamentally more intelligent. For most programs this is probably very different. A program is made to be modified, it is software and not, as our brains, firmware or wetware.<br /><br />If we want to talk about improving programs, <span style="font-weight: bold;">we have to define what it means to improve one&#8217;s intelligence, and thus what it means to be intelligent</span>. We want intelligent systems to be useful. Useful intelligence is, just as science, about <span style="font-style: italic;">prediction, planning and pattern recognition</span>. These are all so intertwined as to be more or less the same thing.<br /><br /><span style="font-size:130%;">Prediction<br /><br /></span>Given certain input we want to predict what the outcome might be. It is nice if this prediction involves not only the most likely outcome, but also estimates of the probabilities of all the possible outcomes. Even better is if the predictor gives an indication for how certain it is about the probabilities.<br /><br />If I roll a regular dice, I am fairly sure that the probability of a 3 showing up is about 16.7%, of course the dice might be damaged or otherwise unfair, or perhaps I miscalculated 1 / 6 or misunderstand the laws of probability, etc. Neverthless, I am fairly certain. On the other hand, I estimate the probability of Sweden beating Brazil the next time they meet in soccer to about 10%, but I am fairly uncertain about that figure. Thus I should be cautious about acting on it, for example not taking bets. I am, however, quite certain that I am uncertain about my last probability estimation. It is probably not very useful to continue this recursion further, neither for me nor for a program, so I&#8217;ll be quite satisfied if my AI knows certainties concerning probabilities, but not certainties about certainties.<br /><br />Two classic examples where prediction is useful are weather forecasts and the stock market.<br /><br /><br /><span style="font-size:130%;">Planning</span><br /><br />Prediction is closely related to planning. One way of formalizing planning is to make an enormous tree, where each choice I can make is a branching point and every consequence along with it&#8217;s probability is also a branching point. In a complex world most of my millions of choices/actions will not have any bearing on me reaching a specific goal, so the tree gets unfeasibly large. The first step is to quickly <span style="font-weight: bold;font-size:100%;" >predict</span><span style="font-size:100%;"> which paths might actually have a significance towards me reaching my goal, thus pruning the tree. Then I have to </span><span style="font-weight: bold;font-size:100%;" >predict</span><span style="font-size:100%;"> what the consequences of my actions are likely to be, making a model of the outside world. Now I have a tree where I can start searching for a solution, in other words make a plan<br /><br />A classic example of a planning problem is <a href="http://en.wikipedia.org/wiki/Towers_of_Hanoi">Towers of Hanoi</a>. It is trivially easy to make a program that solves Towers of Hanoi, but it is harder to construct a general AI that, given the rules to the game, solves it in general. You cannot just exhaustively search your decision tree, because Towers of Hanoi with 30 discs requires 2^30 - 1= 1073741823 moves to complete. This means that the depth of the tree is 10^9 and, given at least two paths on each level, 2^(10^9) nodes. That amounts to more than a 1 followed by 300 million zeroes - a ridiculously large number. The planner must reason about the effects of the rules and <span style="font-style: italic;">recognize the pattern</span> for moving the discs.<br /><br /><br /><span style="font-size:130%;">Pattern recognition<br /></span><br />Recognizing patterns is, among other things, the useful property of being able to spot that given <span style="font-style: italic;">this</span>, <span style="font-style: italic;">that</span> follows more/less frequently. A neat way of deciding if you have spotted a pattern is to invoke <a href="http://en.wikipedia.org/wiki/Minimum_description_length">Minimum Description Length</a> or MDL. 10101010101010&#8230; can be described with the exact digits, or as a repeating pattern of 10s or as alternating 1 and 0. Which one is chosen depends on what language you have chosen to express your pattern in. For longer patterns it makes less and less difference what language you chose. The same reasoning applies to, for example, a picture. If we have a completely black 1000 x 1000 pixel square with a white 500 pixel (in diameter) circle in the middle , then that description is much shorter than actually encoding the image pixel for pixel. We have recognized a pattern.<br /><br />Notice the close relationship between pattern recognition and compression.<br /><br /><span style="font-size:130%;">Intelligence test<br /></span><br />Constructing a true intelligence test, that can be executed reasonably fast, would be very useful in the research of general AI. You have to be careful when designing such a test, because if it is too simple you will end up with an AI that is specialized on solving exactly your test and nothing else.<br /><br />If we had such a test, a fairly simple, but very interesting, experiment could be made.<br /></span></sing><ol><li><span style="font-size:100%;">Start with a program that produces random output. The seed!</span></li><li><span style="font-size:100%;">Measure its intelligence. This producer of random noise is now your first and most intelligent program.</span></li><li><span style="font-size:100%;">Interpret the currently best program&#8217;s output as new programs and measure the intelligence of these programs, give this intelligence as feedback to the generating program.</span></li><li><span style="font-size:100%;">Whenever a program that is more intelligent than the previous most intelligent program is found, use it as the new generator to search for even more intelligent programs.</span></li></ol><span style="font-size:100%;">You might need to add some precautions so that you do not enter an evolutionary dead end, for example by letting different promising generators run in parallell, but the above points are the basic gist of it. This will let you find out how much more time it takes for each successively more intelligent program to construct an even more intelligent program. If you are very, very, lucky and have constructed your intelligence test very well, this might even suffice as the Seed.<br /><br />In coming posts I will describe what the mathematically perfect predictor looks like and what the mathematically perfect planner looks like. They are, at least on the surface, surprisingly dissimilar.<br /></span></div>
  107 +<h2>Comments</h2>
  108 +<div class='comments'>
  109 +<div class='comment'>
  110 +<div class='author'>cognomad</div>
  111 +<div class='content'>
  112 +Thanks for the comment on my knol, David!<BR/>You&#39;re right, it sounds very similar on a high level, &amp; I am sure there are many people who&#39;d agree with the definition. But I don&#39;t know of anyone who used it to derive a universal, low-level, quantitative criterion to select inputs &amp; algorithms. The key is to start from the beginning: raw sensory inputs, &amp; &quot;test&quot; their predictive value, in the process discovering more &amp; more complex patterns. That&#39;s what scalability is all about, if you can&#39;t evaluate pixels, it&#39;ll be super-exponentially more difficult to start from more complex data. That&#39;s why I think Cyc, NLP, &amp; high-level approaches in general are hopeless for AGI.<BR/>I am sorry, but your &quot;Intelligence test&quot; idea, besides it being entirely hypothetical &amp; presumably externally administered, has it exactly backwards. Just like many Algorithmic Learning approaches, you want to generate patterns &amp; algorithms, instead of discovering them in a real world. Quite simply, we predict from experience, these patterns &amp; algorithms will have *no* predictive value beyond mere chance, unless they&#39;re derived from the experience. Notice that the difference between patterns &amp; algorithms is strictly in their origin: the former are discovered &amp; the later are &quot;invented&quot;.</div>
  113 +</div>
  114 +</div>
  115 +</div>
  116 +
  117 +
  118 + <footer>
  119 + <p class="meta">
  120 +
  121 +
  122 +
  123 +<span class="byline author vcard">Posted by <span class="fn">David Fendrich</span></span>
  124 +
  125 +
  126 +
  127 +
  128 +
  129 +
  130 +
  131 +
  132 +
  133 +
  134 +
  135 +
  136 +
  137 +<time datetime="2007-08-30T00:00:00+02:00" pubdate data-updated="true">Aug 30<span>th</span>, 2007</time>
  138 +
  139 +
  140 +<span class="categories">
  141 +
  142 + <a class='category' href='/blog/categories/cyc/'>Cyc</a>, <a class='category' href='/blog/categories/mdl/'>MDL</a>, <a class='category' href='/blog/categories/towers-of-hanoi/'>Towers of Hanoi</a>, <a class='category' href='/blog/categories/compression/'>compression</a>, <a class='category' href='/blog/categories/intelligence/'>intelligence</a>, <a class='category' href='/blog/categories/lecture/'>lecture</a>, <a class='category' href='/blog/categories/pattern-recognition/'>pattern recognition</a>, <a class='category' href='/blog/categories/planning/'>planning</a>, <a class='category' href='/blog/categories/prediction/'>prediction</a>, <a class='category' href='/blog/categories/seed-ai/'>seed AI</a>
  143 +
  144 +</span>
  145 +
  146 +
  147 + </p>
  148 +
  149 + <div class="sharing">
  150 +
  151 + <a href="http://twitter.com/share" class="twitter-share-button" data-url="http://gurgeh.github.com/blog/2007/08/30/seed-ai/" data-via="fnedrik" data-counturl="http://gurgeh.github.com/blog/2007/08/30/seed-ai/" >Tweet</a>
  152 +
  153 +
  154 +
  155 +</div>
  156 +
  157 +
  158 + <p class="meta">
  159 +
  160 +
  161 + <a class="basic-alignment right articlenav" href="/blog/2007/09/05/1250-press-return/" title="Next Post: 12:50, press Return">12:50, press Return &raquo;</a>
  162 +
  163 + </p>
  164 + </footer>
  165 +</article>
  166 +
  167 +</div>
  168 +
  169 +<aside class="sidebar">
  170 +
  171 + <section>
  172 + <h1>Recent Posts</h1>
  173 + <ul id="recent_posts">
  174 +
  175 + <li class="post">
  176 + <a href="/blog/2012/09/27/octopress-and-github-as-blogging-platform/">Octopress and Github as a blogging platform</a>
  177 + </li>
  178 +
  179 + <li class="post">
  180 + <a href="/blog/2011/11/10/guerilla-my-attempt-to-build-strong-ai/">Guerilla - my attempt to build a strong AI</a>
  181 + </li>
  182 +
  183 + <li class="post">
  184 + <a href="/blog/2010/12/28/compression-prediction-and-artificial/">Compression, prediction and artificial intelligence</a>
  185 + </li>
  186 +
  187 + <li class="post">
  188 + <a href="/blog/2010/08/27/rescuing-hosed-system-using-only-bash/">Rescuing a hosed system using only Bash</a>
  189 + </li>
  190 +
  191 + <li class="post">
  192 + <a href="/blog/2010/08/19/milliblogging-essae-in-7-tweets/">Milliblogging - An essay in 7 tweets</a>
  193 + </li>
  194 +
  195 + </ul>
  196 +</section>
  197 +
  198 +<section>
  199 + <h1>GitHub Repos</h1>
  200 + <ul id="gh_repos">
  201 + <li class="loading">Status updating...</li>
  202 + </ul>
  203 +
  204 + <a href="https://github.com/gurgeh">@gurgeh</a> on GitHub
  205 +
  206 + <script type="text/javascript">
  207 + $.domReady(function(){
  208 + if (!window.jXHR){
  209 + var jxhr = document.createElement('script');
  210 + jxhr.type = 'text/javascript';
  211 + jxhr.src = '/javascripts/libs/jXHR.js';
  212 + var s = document.getElementsByTagName('script')[0];
  213 + s.parentNode.insertBefore(jxhr, s);
  214 + }
  215 +
  216 + github.showRepos({
  217 + user: 'gurgeh',
  218 + count: 5,
  219 + skip_forks: true,
  220 + target: '#gh_repos'
  221 + });
  222 + });
  223 + </script>
  224 + <script src="/javascripts/github.js" type="text/javascript"> </script>
  225 +</section>
  226 +
  227 +
  228 +<section>
  229 + <h1>Latest Tweets</h1>
  230 + <ul id="tweets">
  231 + <li class="loading">Status updating...</li>
  232 + </ul>
  233 + <script type="text/javascript">
  234 + $.domReady(function(){
  235 + getTwitterFeed("fnedrik", 4, false);
  236 + });
  237 + </script>
  238 + <script src="/javascripts/twitter.js" type="text/javascript"> </script>
  239 +
  240 + <a href="http://twitter.com/fnedrik" class="twitter-follow-button" data-show-count="false">Follow @fnedrik</a>
  241 +
  242 +</section>
  243 +
  244 +
  245 +
  246 +
  247 +
  248 +
  249 +</aside>
  250 +
  251 +
  252 + </div>
  253 + </div>
  254 + <footer role="contentinfo"><p>
  255 + Copyright &copy; 2012 - David Fendrich -
  256 + <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
  257 +</p>
  258 +
  259 +</footer>
  260 +
  261 +
  262 +
  263 +
  264 +
  265 +
  266 +
  267 +
  268 + <script type="text/javascript">
  269 + (function(){
  270 + var twitterWidgets = document.createElement('script');
  271 + twitterWidgets.type = 'text/javascript';
  272 + twitterWidgets.async = true;
  273 + twitterWidgets.src = 'http://platform.twitter.com/widgets.js';
  274 + document.getElementsByTagName('head')[0].appendChild(twitterWidgets);
  275 + })();
  276 + </script>
  277 +
  278 +
  279 +
  280 +
  281 +<a title="Real Time Analytics" href="http://getclicky.com/100529738"><img alt="Real Time Analytics" src="//static.getclicky.com/media/links/badge.gif" border="0" /></a>
  282 +<script src="//static.getclicky.com/js" type="text/javascript"></script>
  283 +<script type="text/javascript">try{ clicky.init(100529738); }catch(e){}</script>
  284 +<noscript><p><img alt="Clicky" width="1" height="1" src="//in.getclicky.com/100529738ns.gif" /></p></noscript>
  285 +
  286 +
  287 +</body>
  288 +</html>
282 blog/2007/09/05/1250-press-return/index.html
... ... @@ -0,0 +1,282 @@
  1 +
  2 +<!DOCTYPE html>
  3 +<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
  4 +<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
  5 +<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
  6 +<head>
  7 + <meta charset="utf-8">
  8 + <title>12:50, press Return - IFHO</title>
  9 + <meta name="author" content="David Fendrich">
  10 +
  11 +
  12 + <meta name="description" content="The deed is done.I and my friend Nils made a &#8220;sprint&#8221; last night, where we finished the first version of our seed AI.First we made a &hellip;">
  13 +
  14 +
  15 + <!-- http://t.co/dKP3o1e -->
  16 + <meta name="HandheldFriendly" content="True">
  17 + <meta name="MobileOptimized" content="320">
  18 + <meta name="viewport" content="width=device-width, initial-scale=1">
  19 +
  20 +
  21 + <link rel="canonical" href="http://gurgeh.github.com/blog/2007/09/05/1250-press-return/">
  22 + <link href="/favicon.ico" rel="icon">
  23 + <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
  24 + <script src="/javascripts/modernizr-2.0.js"></script>
  25 + <script src="/javascripts/ender.js"></script>
  26 + <script src="/javascripts/octopress.js" type="text/javascript"></script>
  27 + <link href="/atom.xml" rel="alternate" title="IFHO" type="application/atom+xml">
  28 + <link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
  29 +
  30 +<!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
  31 +<link href="http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
  32 +<link href="http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
  33 +
  34 +
  35 +
  36 +
  37 +</head>
  38 +
  39 +
  40 +<body >
  41 + <header role="banner"><hgroup>
  42 + <div id="logo">
  43 + <!-- <div id="logoLeft">{</div><div id="logText"><img src="/images/SimpsonDavid.png" width="36" height="36"></div><div id="logoRight">}</div>
  44 + <div class="clear"></div>-->
  45 + </div>
  46 + <h1><a href="/">IFHO</a></h1>
  47 +
  48 + <h2>In Fendrich's Humble Opinion</h2>
  49 +
  50 + <div class="clear"></div>
  51 +</hgroup>
  52 +
  53 +
  54 +</header>
  55 + <nav role="navigation"><ul class="subscription" data-subscription="rss">
  56 + <li><a href="/atom.xml" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
  57 +
  58 +</ul>
  59 +
  60 +<form action="http://google.com/search" method="get">
  61 + <fieldset role="search">
  62 + <input type="hidden" name="q" value="site:gurgeh.github.com" />
  63 + <input class="search" type="text" name="q" results="0" placeholder="Search"/>
  64 + </fieldset>
  65 +</form>
  66 +
  67 +<ul class="main-navigation">
  68 + <li><a href="/">Blog</a></li>
  69 + <li><a href="/blog/archives">Archives</a></li>
  70 +</ul>
  71 +
  72 +</nav>
  73 + <div id="main">
  74 + <div id="content">
  75 + <div>
  76 +<article class="hentry" role="article">
  77 +
  78 + <header>
  79 +
  80 +
  81 + <h1 class="entry-title">12:50, Press Return</h1>
  82 +
  83 +
  84 +
  85 + <p class="meta">
  86 +
  87 +
  88 +
  89 +
  90 +
  91 +
  92 +
  93 +
  94 +
  95 +
  96 +
  97 +
  98 +<time datetime="2007-09-05T00:00:00+02:00" pubdate data-updated="true">Sep 5<span>th</span>, 2007</time>
  99 +
  100 + </p>
  101 +
  102 + </header>
  103 +
  104 +
  105 +<div class="entry-content"><div class='post'>
  106 +The deed is done.<br /><br />I and my friend Nils made a &#8220;sprint&#8221; last night, where we finished the first version of our seed AI.<br /><br />First we made a simple IQ-function that tests how well a program (a Program Generator or <span style="font-style: italic;">PG</span>) can generate new programs (<span style="font-style: italic;">leaves</span>) from feedback of how close a leaf is to what we want.<br /><br />A PG that receives the best IQ so far gets a chance to generate new PG&#8217;s, in effect it becomes a Program Generator Generator. We call this state a <span style="font-style: italic;">Challenger</span>. When a Challenger generates a new PG with the best IQ so far, it has verified that not only does it have good IQ, but it can produce other programs with good IQ, and is thus promoted to the status of <span style="font-style: italic;">Master </span>(and the smart PG gets to be Challenger).<span style="font-style: italic;"><br /></span><br />The programs are generated and run in a circular buffer under a virtual machine, where all sequences of integers are valid programs and no operators can throw exceptions. Such a VM is much slower than machine code, but the process gets faster than if it were running on bare bones x86, because on an x86 (or other architecture) most bytes are meaningless and will throw exceptions, which are slow to process. A PG that is good enough (for example a human) to understand how to write code without generating (many) exceptions, would theoretically run faster on x86, but our current primitive PGs will benefit from a virtual environment.<span style="font-style: italic;"><br /><br /></span>Anyway, we wrote the code, pressed Enter (the title is a reference to the nice movie Pi), and voíla, our random generating seed started finding more intelligent programs than itself - Challengers. After a while, Nils calls it 15 seconds, a Challenger managed to become Master and after a longer while the Master produced a Challenger that later became the third generation Master. Spectacular!<br /><br />Now we just need a better IQ test and a way to inspect the generated programs! Well, we also need tons and tons of hardware. This is the sort of task that could happily use up Google&#8217;s entire computer armada for a year and still benefit from more. Hmm.. perhaps if I ask them nicely..</div>
  107 +</div>
  108 +
  109 +
  110 + <footer>
  111 + <p class="meta">
  112 +
  113 +
  114 +
  115 +<span class="byline author vcard">Posted by <span class="fn">David Fendrich</span></span>
  116 +
  117 +
  118 +
  119 +
  120 +
  121 +
  122 +
  123 +
  124 +
  125 +
  126 +
  127 +
  128 +
  129 +<time datetime="2007-09-05T00:00:00+02:00" pubdate data-updated="true">Sep 5<span>th</span>, 2007</time>
  130 +
  131 +
  132 +<span class="categories">
  133 +
  134 + <a class='category' href='/blog/categories/lablog/'>lablog</a>, <a class='category' href='/blog/categories/seed-ai/'>seed AI</a>
  135 +
  136 +</span>
  137 +
  138 +
  139 + </p>
  140 +
  141 + <div class="sharing">
  142 +
  143 + <a href="http://twitter.com/share" class="twitter-share-button" data-url="http://gurgeh.github.com/blog/2007/09/05/1250-press-return/" data-via="fnedrik" data-counturl="http://gurgeh.github.com/blog/2007/09/05/1250-press-return/" >Tweet</a>
  144 +
  145 +
  146 +
  147 +</div>
  148 +
  149 +
  150 + <p class="meta">
  151 +
  152 + <a class="basic-alignment left articlenav" href="/blog/2007/08/30/seed-ai/" title="Previous Post: Seed AI">&laquo; Seed AI</a>
  153 +
  154 +
  155 + <a class="basic-alignment right articlenav" href="/blog/2007/09/06/coincidence/" title="Next Post: Coincidence?">Coincidence? &raquo;</a>
  156 +
  157 + </p>
  158 + </footer>
  159 +</article>
  160 +
  161 +</div>
  162 +
  163 +<aside class="sidebar">
  164 +
  165 + <section>
  166 + <h1>Recent Posts</h1>
  167 + <ul id="recent_posts">
  168 +
  169 + <li class="post">
  170 + <a href="/blog/2012/09/27/octopress-and-github-as-blogging-platform/">Octopress and Github as a blogging platform</a>
  171 + </li>
  172 +
  173 + <li class="post">
  174 + <a href="/blog/2011/11/10/guerilla-my-attempt-to-build-strong-ai/">Guerilla - my attempt to build a strong AI</a>
  175 + </li>
  176 +
  177 + <li class="post">
  178 + <a href="/blog/2010/12/28/compression-prediction-and-artificial/">Compression, prediction and artificial intelligence</a>
  179 + </li>
  180 +
  181 + <li class="post">
  182 + <a href="/blog/2010/08/27/rescuing-hosed-system-using-only-bash/">Rescuing a hosed system using only Bash</a>
  183 + </li>
  184 +
  185 + <li class="post">
  186 + <a href="/blog/2010/08/19/milliblogging-essae-in-7-tweets/">Milliblogging - An essay in 7 tweets</a>
  187 + </li>
  188 +
  189 + </ul>
  190 +</section>
  191 +
  192 +<section>
  193 + <h1>GitHub Repos</h1>
  194 + <ul id="gh_repos">
  195 + <li class="loading">Status updating...</li>
  196 + </ul>
  197 +
  198 + <a href="https://github.com/gurgeh">@gurgeh</a> on GitHub
  199 +
  200 + <script type="text/javascript">
  201 + $.domReady(function(){
  202 + if (!window.jXHR){
  203 + var jxhr = document.createElement('script');
  204 + jxhr.type = 'text/javascript';
  205 + jxhr.src = '/javascripts/libs/jXHR.js';
  206 + var s = document.getElementsByTagName('script')[0];
  207 + s.parentNode.insertBefore(jxhr, s);
  208 + }
  209 +
  210 + github.showRepos({
  211 + user: 'gurgeh',
  212 + count: 5,
  213 + skip_forks: true,
  214 + target: '#gh_repos'
  215 + });
  216 + });
  217 + </script>
  218 + <script src="/javascripts/github.js" type="text/javascript"> </script>
  219 +</section>
  220 +
  221 +
  222 +<section>
  223 + <h1>Latest Tweets</h1>
  224 + <ul id="tweets">
  225 + <li class="loading">Status updating...</li>
  226 + </ul>
  227 + <script type="text/javascript">
  228 + $.domReady(function(){
  229 + getTwitterFeed("fnedrik", 4, false);