<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CE4NSX0_fCp7ImA9WhRUFUk.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273</id><updated>2012-01-25T20:56:38.344-05:00</updated><category term="toolkit" /><category term="suite" /><category term="timhutton" /><category term="ai" /><category term="clojure" /><category term="erlang" /><category term="lipids" /><category term="elizabethwarren" /><category term="datamining" /><category term="ghostinshell" /><category term="gwt" /><category term="elizabeth warren" /><category term="war" /><category term="linesofsource" /><category term="opensocial" /><category term="iphone" /><category term="octanemech" /><category term="intelligence" /><category term="haskell" /><category term="grep" /><category term="thoughts" /><category term="gits" /><category term="javap" /><category term="ast" /><category term="missoni" /><category term="performance" /><category term="eclipse" /><category term="moron" /><category term="wikileaks" /><category term="nupic" /><category term="scheme" /><category term="scala" /><category term="cellularautomata" /><category term="molecules" /><category term="aspie" /><category term="java" /><category term="heap" /><category term="camera" /><category term="engineering" /><category term="toolchain" /><category term="jdk" /><category term="lohan" /><category term="artificialintelligence" /><category term="nks" /><category term="unittesting" /><category term="india" /><category term="lambda" /><category term="django" /><category term="game" /><category term="foxnews" /><category term="obama" /><category term="programd" /><category term="software" /><category term="libertarian" /><category term="dexter" /><category term="asperger's" /><category term="insurance" /><category term="death note" /><category term="power" /><category term="rna" /><category term="decompile" /><category term="j2ee" /><category term="hotspot" /><category term="computing" /><category term="compiler" /><category term="google" /><category term="openjdk" /><category term="numenta" /><category term="weka" /><category term="dragon tattoo" /><category term="benchmark" /><category term="tax cuts" /><category term="trolling" /><category term="alanturing" /><category term="wolfram" /><category term="find" /><category term="opengl" /><category term="mob" /><category term="python" /><category term="aiml" /><category term="artificialchemistry" /><category term="lexer" /><category term="libya" /><category term="declarative" /><category term="bots" /><category term="linux" /><category term="math" /><category term="speed" /><category term="research" /><category term="cygwin" /><category term="programming" /><category term="politics" /><category term="osama" /><category term="lisp" /><category term="googlecode" /><category term="jvm" /><category term="book" /><category term="probiotic" /><category term="dna" /><category term="turing" /><category term="cher" /><category term="euler" /><category term="servers" /><category term="botlist" /><category term="unix" /><category term="healthcare" /><category term="search" /><category term="religion" /><category term="idiot america" /><category term="alife" /><category term="gcc" /><category term="anime" /><category term="jruby" /><category term="parser" /><category term="data" /><category term="profiling" /><title>Berlin Brown and Software Development</title><subtitle type="html">A Blog about Software Development.  Software development is the act of developing a software product.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://berlinbrowndev.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>253</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/BerlinBrownAndSoftwareDevelopment" /><feedburner:info uri="berlinbrownandsoftwaredevelopment" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkMMRHk9fip7ImA9WhRVEEs.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-6533544275924240339</id><published>2012-01-08T18:14:00.001-05:00</published><updated>2012-01-08T18:14:45.766-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T18:14:45.766-05:00</app:edited><title>I am Zit Pomney and I am running for President</title><content type="html">I am Zit Pomney and I am running for President. &amp;nbsp;I have a vision for America. &amp;nbsp;I want to bring jobs to this country. &amp;nbsp;I know I am the front runner but I am a tough boy, I can take the attacks from the other candidates. &amp;nbsp;I will get America back to work. &amp;nbsp;I will work hard for America. &amp;nbsp;America is a great place with great people. &amp;nbsp;And we need to balance our budget&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;"I love how the current candidates don't actually say anything of substance 99.9% of the time. &amp;nbsp;So I have created my fictional characters, meet Zit Pomney"&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-6533544275924240339?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/K4pfyaPBlqTfsF8A2Lf_JMvjTLA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K4pfyaPBlqTfsF8A2Lf_JMvjTLA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/K4pfyaPBlqTfsF8A2Lf_JMvjTLA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K4pfyaPBlqTfsF8A2Lf_JMvjTLA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/g2ziHQ-C6KI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/6533544275924240339/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=6533544275924240339" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/6533544275924240339?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/6533544275924240339?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/g2ziHQ-C6KI/i-am-zit-pomney-and-i-am-running-for.html" title="I am Zit Pomney and I am running for President" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2012/01/i-am-zit-pomney-and-i-am-running-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIGRX0yfyp7ImA9WhRVEEs.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-1572941593068776707</id><published>2012-01-08T13:36:00.002-05:00</published><updated>2012-01-08T18:15:24.397-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T18:15:24.397-05:00</app:edited><title>Ron Paul can't win or can he?</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i.imgur.com/V7RJp.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://i.imgur.com/V7RJp.jpg" width="260" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i.imgur.com/V7RJp.jpg"&gt;http://i.imgur.com/V7RJp.jpg&lt;/a&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
"One of Ron Paul's top people was just talking about this...&lt;br /&gt;
Most candidates win the White House based on their viability. You see this with Romney and Obama.&lt;br /&gt;
Ron Paul will win based on his ideas.&lt;br /&gt;
... You can vote for Obama or Romney because you think they can win, solely on the basis that they can win. You can vote the party line... solely on the basis of that person being a Democrat or Republican.&lt;br /&gt;
But you vote for Ron Paul because you like his ideas. And his ideas aren't half bad."&lt;br /&gt;
&lt;br /&gt;
"Why is the media avoiding Paul? Avoiding is the wrong word. Completely tearing apart the guy every chance they get and cozying up to other candidates.&lt;br /&gt;
On Bush 2, he clearly seemed unqualified. He didn't have a long history in Texas. Before that, his businesses seemed to be tied to his family legacy. And in office, we ended up with perpetual war based on false information. Oh yea, and we were attacked.&lt;br /&gt;
With Obama, he only had 4 years of experience in Senate and no real big agenda except for Obamacare and a message of change. And in office, we are seeing some of the worst economic times, especially for the middle-class. ...&lt;br /&gt;
What does the media expect could happen if Ron Paul were in office? We get invaded by Iran?&lt;br /&gt;
The only thing that makes sense is that Ron Paul will dismantle the sleazy private/public relationship that has existed for several decades.&lt;br /&gt;
That or they are just really scared of real changes but don't really understand why they are scared."&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-1572941593068776707?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CRNRIW6xmWVpcXwbf21q40khffg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CRNRIW6xmWVpcXwbf21q40khffg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CRNRIW6xmWVpcXwbf21q40khffg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CRNRIW6xmWVpcXwbf21q40khffg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/Pz7ZOV55s18" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/1572941593068776707/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=1572941593068776707" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1572941593068776707?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1572941593068776707?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/Pz7ZOV55s18/ron-paul-cant-win-or-can-he.html" title="Ron Paul can't win or can he?" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2012/01/ron-paul-cant-win-or-can-he.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4MQno9eyp7ImA9WhRWGUw.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-1575559551655680857</id><published>2012-01-06T23:35:00.001-05:00</published><updated>2012-01-06T23:36:23.463-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T23:36:23.463-05:00</app:edited><title>Thirty second review of top modern TV shows</title><content type="html">This is a short review of about a dozen top TV shows that have appeared in the last decade or so. &amp;nbsp; I advise you purchase the DVD TV sets and watch them based on your own schedule.&lt;br /&gt;
&lt;br /&gt;
These aren't sorted in any particular order but the better shows will normally appear at the top.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;The Wire (10/10)&lt;/b&gt; - (Urban gang land violence) So far the best TV show I have seen. &amp;nbsp;It was getting predictable and dry towards the end of the series but I don't think there is any better show that feels "real". &amp;nbsp;It is dark and gritty and highly watchable.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Dexter (9.9/10)&lt;/b&gt; - (Almost comical look at a serial killer do-gooder) Dexter is the show about the serial killer that also happens to be a blood splatter analyst in the police department. &amp;nbsp;Normally he finds another bad guy or serial killer and does away with him. &amp;nbsp;It is also a dark series with lots of gore and sometimes it can be serious. &amp;nbsp;But I tend to find some of it comical. &amp;nbsp;The Wire is not comical at all, Dexter can be. &amp;nbsp;It is comical in its sense of irony. &amp;nbsp;The top serial killer just happens to work for the police. &amp;nbsp;And it is a really good show, probably one of the best ever created.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Breaking Bad (9.5/10)&lt;/b&gt; - (Chemist turned drug dealer) - Breaking Bad is the more serious version of Weeds. &amp;nbsp;Walter White, the main character, is an&amp;nbsp;obsessive, neurotic, family-loving middle-aged smart guy that is using his genius to sell drugs. &amp;nbsp;He gets away with it most of the time, the other time everyone is out to kill him or screw him over. &amp;nbsp;It is good maybe a little bit too stylized. &amp;nbsp;There are too many moments of someone or something just sitting out in the dessert and we are supposed to appreciate the moment.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The Mentalist (9.1/10)&lt;/b&gt; - (Really observant showman solves crimes) - You may disagree but I think this is the most complex show I have watched. &amp;nbsp;Each episode is like a puzzle you have to figure. &amp;nbsp;It is a smart program if you are into smart programs. &amp;nbsp;Some of the characters are a bit dry and the later episodes are becoming too easy to figure out.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The Shield (9.3/10)&lt;/b&gt; - (Bad but also Good cops try to get away mayhem) - If you google "The Shield", some consider it the "Cops version of the Wire" or the "White version of the Wire". &amp;nbsp;That is basically what it is, a different look at urban warfare through the eyes of the cops. &amp;nbsp;And also appears on network TV so it is less gritty than the Wire.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Star Trek TNG&lt;/b&gt; (10/10) - Still the best sci-fi TV series out there.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Numb3rs&lt;/b&gt; - (8.5/10) - Standard TV fare, predictable &amp;nbsp;crime drama where they throw in math problems in solving the crime.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-1575559551655680857?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zGUJmb9nz9Pd751f3rHIUoFuKZk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zGUJmb9nz9Pd751f3rHIUoFuKZk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zGUJmb9nz9Pd751f3rHIUoFuKZk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zGUJmb9nz9Pd751f3rHIUoFuKZk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/wpbaUqrheOY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/1575559551655680857/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=1575559551655680857" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1575559551655680857?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1575559551655680857?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/wpbaUqrheOY/thirty-second-review-of-top-modern-tv.html" title="Thirty second review of top modern TV shows" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2012/01/thirty-second-review-of-top-modern-tv.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQDQ344eCp7ImA9WhRWGEo.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-1736629821022020812</id><published>2012-01-06T13:23:00.001-05:00</published><updated>2012-01-06T13:26:12.030-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T13:26:12.030-05:00</app:edited><title>Python matplotlib plotting setup for cygwin</title><content type="html">Matplotlib&amp;nbsp;is a popular python library for generating plot graphics. &amp;nbsp; It works with cygwin win32 but some non-intuitive steps are required.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Install cygwin:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
CYGWIN_NT-5.1 1.7.9(0.237/5/3) 2011-03-29 10:10 i686 Cygwin&lt;br /&gt;
I am using cygwin with setup 2.7.3&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Install python through cygwin:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This document describes installing python and matplot with cygwin. &amp;nbsp;For most windows users and cygwin users, normally you would use the external python executable. &amp;nbsp;I tend to prefer all of my script oriented applications running through cygwin including python.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Python 2.6.5 (r265:79063, Jun 12 2010, 17:07:01)&lt;br /&gt;
[GCC 4.3.4 20090804 (release) 1] on cygwin&lt;br /&gt;
&lt;br /&gt;
In the cygwin setup.exe installer, install:&lt;br /&gt;
&lt;br /&gt;
The freetype libs, python-gtk, python-tk, libpng&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Download matplotlib from sourceforge:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I am using the latest version&amp;nbsp;matplotlib-1.1.0 as of 1/2012.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Issues with standard python install and cygwin:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The typical 'python setup.py install' will not work with cygwin. &amp;nbsp;You need to modify a configuration file and run some other additional commands.&lt;br /&gt;
&lt;br /&gt;
In the root directory of the expanded matplotlib directory, edit the&amp;nbsp;setup.cfg.template configuration file.&lt;br /&gt;
&lt;br /&gt;
Around line 70 in the file is a commented line, uncomment the line such that you have:&lt;br /&gt;
&lt;br /&gt;
tkagg = False&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Run install and watch it fail&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
Try running 'python setup.py install'&lt;br /&gt;
&lt;br /&gt;
It should fail with an error like the following:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background-color: white; font-size: 12px; max-width: 80em; padding-left: 0.7em; white-space: pre-wrap;"&gt;&lt;i&gt;2 [main] python 2796 C:\cygwin\bin\python.exe: *** fatal error - unable to remap C:\cygwin\bin\cyggfortran-3.dll to same address as parent: 0x18660000 != 0x69780000
Stack trace:&lt;/i&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Run the rebase command OUTSIDE OF THE TYPICAL CYGWIN ENV&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
Exit cygwin and close all cygwin instances including the one you are working with. &amp;nbsp;You won't be using the typical &amp;nbsp;cygwin prompt for the next command.&lt;br /&gt;
&lt;br /&gt;
In windows explorer, open the cmd.exe or windows command&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will need to run rebaseall. &amp;nbsp;First, shut down any long running processes like sshd, close all Cygwin prompts and so on.&lt;br /&gt;
&lt;br /&gt;
Type the following commands:&lt;br /&gt;
&lt;br /&gt;
cd \cygwin\bin&lt;br /&gt;
ash&lt;br /&gt;
PATH=. rebaseall -v&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
And you should get several lines of output.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Run install and watch it succeed&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
Try running 'python setup.py install' command again in the matplotlib directory&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Running Example Program:&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-weight: bold;"&gt;
# python&lt;/div&gt;
Python 2.6.5 (r265:79063, Jun 12 2010, 17:07:01)&lt;br /&gt;
[GCC 4.3.4 20090804 (release) 1] on cygwin&lt;br /&gt;
Type "help", "copyright", "credits" or "license" for more information.&lt;br /&gt;
import matplotlib.pyplot as pyplot&lt;br /&gt;
pyplot.pie([1,2,3])&lt;br /&gt;
pyplot.show()&lt;br /&gt;
&lt;div style="display: inline !important;"&gt;
pyplot.savefig('f.png')&lt;/div&gt;
pyplot.savefig('x.png')&lt;br /&gt;
pyplot.savefig('x.eps')&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-1736629821022020812?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4a8q2TWEz-dowsGZJB-KpTCKGpE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4a8q2TWEz-dowsGZJB-KpTCKGpE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4a8q2TWEz-dowsGZJB-KpTCKGpE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4a8q2TWEz-dowsGZJB-KpTCKGpE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/pq_WvfQO6cI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/1736629821022020812/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=1736629821022020812" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1736629821022020812?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1736629821022020812?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/pq_WvfQO6cI/python-matplotlib-plotting-setup-for.html" title="Python matplotlib plotting setup for cygwin" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2012/01/python-matplotlib-plotting-setup-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YCRX46cCp7ImA9WhRWFEU.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-5421016473232883014</id><published>2012-01-02T00:12:00.004-05:00</published><updated>2012-01-02T00:12:44.018-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-02T00:12:44.018-05:00</app:edited><title>2012 Campaign, help from political science community</title><content type="html">&lt;br /&gt;
&lt;div style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: small; margin-bottom: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
After this race is over, I wish a fair politic science group could look at the media's handling of this race.&lt;/div&gt;
&lt;div style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: small; margin-bottom: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Here are some BIG missteps in how the media handled this race:&lt;/div&gt;
&lt;ul style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: small; list-style-image: initial; list-style-position: outside; margin-bottom: 10px; margin-left: 2em; margin-right: 2em; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Sarah Palin, why prop her up at all?&lt;/li&gt;
&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Rick Perry enters the race and within two weeks, he is a front runner&lt;/li&gt;
&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Herman Cain, once again, why prop him up?&lt;/li&gt;
&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;And then Newt's rise&lt;/li&gt;
&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Look at the criticism against Ron Paul.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: small; margin-bottom: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
Someone could just look at the timing and wording of discussion on the candidates. It is obvious they have their favorites.&lt;/div&gt;
&lt;div style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: small; margin-bottom: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
...&lt;/div&gt;
&lt;div style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: small; margin-bottom: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
CNN and Fox didn't campaign for Ron Paul 24/7 like they did with other candidates. But they did have Ron Paul on their programs. Ron Paul had to defend his own platform. But CNN, Fox did the campaigning for the other candidates.&lt;/div&gt;
&lt;div style="background-color: white; font-family: verdana, arial, helvetica, sans-serif; font-size: small; margin-bottom: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;
And it is easy to spot, just look at the amount of coverage, wording and discussion.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-5421016473232883014?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Yi5dDyt8nZ58JZtJVywhHc7i5so/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Yi5dDyt8nZ58JZtJVywhHc7i5so/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Yi5dDyt8nZ58JZtJVywhHc7i5so/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Yi5dDyt8nZ58JZtJVywhHc7i5so/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/CNjSn_-kc5Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/5421016473232883014/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=5421016473232883014" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/5421016473232883014?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/5421016473232883014?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/CNjSn_-kc5Q/2012-campaign-help-from-political.html" title="2012 Campaign, help from political science community" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2012/01/2012-campaign-help-from-political.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDRn07fCp7ImA9WhRWE08.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-5896231014067362833</id><published>2011-12-31T04:04:00.003-05:00</published><updated>2011-12-31T04:09:37.304-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T04:09:37.304-05:00</app:edited><title>DNA seen through the eyes of a coder, my take</title><content type="html">Several years ago in 2008, a programmer researched DNA and &amp;nbsp;how the cell works. He gave a software related analogy on how it operates. &amp;nbsp;It was a great overview of the process with the biology language translated for engineers. &amp;nbsp;I constantly thought about the article and wanted to add my own spin on it. &amp;nbsp;The author didn't really do anything wrong, and it really is a great article,&amp;nbsp;but I personally wish he would have given a one paragraph software analogy. &amp;nbsp;(With the core content, I am not a scientist so I can't really refute his research).&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://ds9a.nl/amazing-dna/"&gt;http://ds9a.nl/amazing-dna/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
I enjoyed the last view paragraphs at the end,&amp;nbsp;"Now, DNA is not like a computer programming language. It really isn't. But there are some whopping analogies. We can view each cell as a CPU, running its own kernel. Each cell has a copy of the entire kernel, but choses to activate only the relevant parts. Which modules or drivers it loads, so to speak.&amp;nbsp;If a cell needs to do something, it whips up the right piece of the genome and transcribes it into RNA. The RNA is then translated into a sequence of amino acids, which together make up a protein the DNA coded for."&lt;br /&gt;
&lt;br /&gt;
I would analogize the DNA processing of the cell like so,&amp;nbsp;DNA is a special type of hardware device and storage software. &amp;nbsp;Imagine it is like a &lt;b&gt;VMWare like virtual machine&lt;/b&gt;. &amp;nbsp;&amp;nbsp;Not only does it store important information about the cell, key blueprint information about how the cell should function. &amp;nbsp;But DNA also has special software for &lt;b&gt;dynamically running other applications&lt;/b&gt;. &amp;nbsp;VMWare virtual machine has persistent information contained within its image file. &amp;nbsp;But, the VMWare player can also execute the machine.&lt;br /&gt;
&lt;br /&gt;
The DNA virtual machine has the cron task launcher and only one cron job configured. &amp;nbsp;The cron job program launches special software that makes a "web-service call to some remote server". The web-service message might be similar to mRNA and the content is based on core DNA data stored on the virtual machine. &amp;nbsp; I used the analogy of a remote web-service call because DNA can't leave the nucleus so information and functions are sent remotely. &amp;nbsp;During transcription, RNA is copied from DNA. &amp;nbsp;Eventually, proteins are created. &amp;nbsp;RNA has message information for which protein to create.&lt;br /&gt;
&lt;br /&gt;
So, during the lifecycle of the cell, cron jobs are running every 5 minutes. &amp;nbsp;The cron job task launches an application reading information from DNA, then launches a web-service call. &amp;nbsp;At the back-end server, the data from the web-service call (mRNA) is used with data from the server-side (tRNA). &amp;nbsp;Some additional routines get kicked off on the back-end and&amp;nbsp;eventually&amp;nbsp;proteins are created. &amp;nbsp;Proteins are also molecular chains that can be used as a structural component for the cell or used to for other cell tasks. &amp;nbsp;There are sixty thousand different proteins in the human body [1].&lt;br /&gt;
&lt;br /&gt;
(Note: 5 mins is an arbitrary time period for my analogy, a cell can live several months or decades). &lt;br /&gt;
&lt;br /&gt;
[1] The Machinery of Life – Goodsell - 1993&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-nMyrgye0nlw/Tv7QQ2nGhfI/AAAAAAAAAnk/fVcN4PwLnwU/s1600/jmol_image_dna.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-nMyrgye0nlw/Tv7QQ2nGhfI/AAAAAAAAAnk/fVcN4PwLnwU/s400/jmol_image_dna.png" width="315" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-5896231014067362833?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7R_IIp_ybgN3R3xlIz7PyVnxav4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7R_IIp_ybgN3R3xlIz7PyVnxav4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7R_IIp_ybgN3R3xlIz7PyVnxav4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7R_IIp_ybgN3R3xlIz7PyVnxav4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/vsHdTiUAW-s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/5896231014067362833/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=5896231014067362833" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/5896231014067362833?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/5896231014067362833?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/vsHdTiUAW-s/dna-seen-through-eyes-of-coder-my-take.html" title="DNA seen through the eyes of a coder, my take" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-nMyrgye0nlw/Tv7QQ2nGhfI/AAAAAAAAAnk/fVcN4PwLnwU/s72-c/jmol_image_dna.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/12/dna-seen-through-eyes-of-coder-my-take.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YERHgzfSp7ImA9WhRWEU4.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-8517125747457146558</id><published>2011-12-26T19:56:00.001-05:00</published><updated>2011-12-29T00:05:05.685-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T00:05:05.685-05:00</app:edited><title>Lorenz Attractor 3D View</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-J_LmDsWIJGo/TvkXIG-tycI/AAAAAAAAAnY/YStJ71TZwZM/s1600/LorenzImageFromJava.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="542" src="http://2.bp.blogspot.com/-J_LmDsWIJGo/TvkXIG-tycI/AAAAAAAAAnY/YStJ71TZwZM/s640/LorenzImageFromJava.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://upload.wikimedia.org/wikipedia/en/math/a/e/b/aeb53d5ef06eba4ab271069851413897.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://upload.wikimedia.org/wikipedia/en/math/a/e/b/aeb53d5ef06eba4ab271069851413897.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://upload.wikimedia.org/wikipedia/en/math/7/4/f/74fe0bb652d9a426a1f601424c7c33b2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://upload.wikimedia.org/wikipedia/en/math/7/4/f/74fe0bb652d9a426a1f601424c7c33b2.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://upload.wikimedia.org/wikipedia/en/math/a/1/9/a197663f502ba9703ca12b39669a69f7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://upload.wikimedia.org/wikipedia/en/math/a/1/9/a197663f502ba9703ca12b39669a69f7.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;Resources:&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
[1]&amp;nbsp;&lt;a href="http://jvmnotebook.googlecode.com/svn/trunk/blog/java/Lorenz"&gt;http://jvmnotebook.googlecode.com/svn/trunk/blog/java/Lorenz&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[2]&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Lorenz_attractor"&gt;http://en.wikipedia.org/wiki/Lorenz_attractor&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
[3]&amp;nbsp;&lt;a href="http://berlinbrown.github.com/newpages/applet2/applet2.html"&gt;http://berlinbrown.github.com/newpages/applet2/applet2.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[4]&amp;nbsp;&lt;a href="http://berlinbrown.github.com/"&gt;http://berlinbrown.github.com/&lt;/a&gt;&amp;nbsp;- Github projects&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;span style="text-align: justify;"&gt;Human life faces the same alternatives that confront all other forms of life—of adapting itself to the conditions under which it must live or becoming extinct. You have an advantage over the sagebrush in that you can move from your city or state or country to another, but after all that is not much of an advantage. For though you may improve your situation slightly you will still find that in any civilized country the main elements of your problem are the same.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-8517125747457146558?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sGRkCp8cjmQU3LV_kLYHgKJLuwg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sGRkCp8cjmQU3LV_kLYHgKJLuwg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sGRkCp8cjmQU3LV_kLYHgKJLuwg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sGRkCp8cjmQU3LV_kLYHgKJLuwg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/OkBGS26sJlY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/8517125747457146558/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=8517125747457146558" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/8517125747457146558?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/8517125747457146558?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/OkBGS26sJlY/lorenz-attractor-3d-view.html" title="Lorenz Attractor 3D View" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-J_LmDsWIJGo/TvkXIG-tycI/AAAAAAAAAnY/YStJ71TZwZM/s72-c/LorenzImageFromJava.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/12/lorenz-attractor-3d-view.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4BSH4_fCp7ImA9WhRWE0w.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-8848938894116082026</id><published>2011-12-23T20:05:00.002-05:00</published><updated>2011-12-31T00:55:59.044-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T00:55:59.044-05:00</app:edited><title>Ron Paul is the most racist candidate in 2012 by far</title><content type="html">&lt;a href="http://www.youtube.com/watch?v=eMQmInReYlI" style="background-color: white; color: purple; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;http://www.youtube.com/watch?v=eMQmInReYlI&lt;/a&gt;&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;Summary of his remarks.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;Repeal drug laws and it will be a tremendous improvement for blacks snared in an injust system.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;Systems that are impartial will have no special punishments or rewards for people. Right no no one can deny blacks are punished by our justice system. That has to stop. Blacks are 14% of drug users, yet are 36% of those arrested for drugs.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;We must get black men out of prison. The war on drugs is responsible for this. It cost $400 billion since the 1970s fighting drugs. Prohibition is a failure. Drug addiction is a disease and should be treated medically.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;Death penalty is wrong, unjust, and racist. The rich never get it, the poor and minorities are far more likely to get the death penalty.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;Rosa Parks is one of his heros for engaging in peaceful civil disobedience against injust laws.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;Ron Paul has gotten the most black votes of any Republican candidate because he is against injustice.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;He will issue a presidential pardon to EVERYONE, black, white and otherwise convicted of non-violent drug "crimes".&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;Libertarianism is about the individual, not the color of their skin. Paul is the anti-racist because he is the ONLY candidate that will protect people against vicious drug laws.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white; font-family: Georgia, 'Times New Roman', Times, serif; font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Georgia, 'Times New Roman', Times, serif;"&gt;&lt;span style="font-size: 15px;"&gt;Edit: In recent news Kelly Clarkson supports Ron Paul for 2012. &amp;nbsp;And not a bad song: Stronger.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-8848938894116082026?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_jqWVnshDx8AFPFgzeXjbXdRZaA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_jqWVnshDx8AFPFgzeXjbXdRZaA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_jqWVnshDx8AFPFgzeXjbXdRZaA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_jqWVnshDx8AFPFgzeXjbXdRZaA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/f5ibco4hy04" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/8848938894116082026/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=8848938894116082026" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/8848938894116082026?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/8848938894116082026?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/f5ibco4hy04/ron-paul-is-most-racist-candidate-in.html" title="Ron Paul is the most racist candidate in 2012 by far" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/12/ron-paul-is-most-racist-candidate-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YGSHs9fyp7ImA9WhRWEU4.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-320413978904836825</id><published>2011-12-21T16:04:00.000-05:00</published><updated>2011-12-29T00:05:29.567-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T00:05:29.567-05:00</app:edited><title>A Physics Example in Java: A Projectile Fired from a Cannon, 2D Particle Kinematics</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Here is an example program that shows how to implement kinematic equations for projectile motion using Java and the Swing 2D graphics libraries.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-z-VFwSi3sCM/TvJH3GiS-vI/AAAAAAAAAm8/g3EGbXhc4LY/s1600/a1.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-z-VFwSi3sCM/TvJH3GiS-vI/AAAAAAAAAm8/g3EGbXhc4LY/s1600/a1.gif" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Equation used to plot projectile path along the X and Y axis&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div&gt;
The Java code for these equations are simple, here is the current implementation of the doSimulation routine. The routine calculates the X and Y positions of the projectile over time.&amp;nbsp; The project only consists of two classes, the class for rendering the simulation and initializing the application.&amp;nbsp; The other class contains logic for calculating the X and Y positions.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-JZdNHcPI-ng/TvJLBgUAeTI/AAAAAAAAAnE/b7jqwxgAEyE/s1600/java_code_path.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="422" src="http://4.bp.blogspot.com/-JZdNHcPI-ng/TvJLBgUAeTI/AAAAAAAAAnE/b7jqwxgAEyE/s640/java_code_path.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Java code, DoSimulation routine, see s.i and s.k for the X/Y positions&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-P1XBGx-2MmI/TvJL7j7toiI/AAAAAAAAAnM/9HlcCBCpnc4/s1600/physics_cannon_draw.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-P1XBGx-2MmI/TvJL7j7toiI/AAAAAAAAAnM/9HlcCBCpnc4/s640/physics_cannon_draw.png" width="616" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Java 2D Cannon Physics Simulation&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;Java Source&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://jvmnotebook.googlecode.com/svn/trunk/blog/java/SimpleCannonPhysicsJava"&gt;https://jvmnotebook.googlecode.com/svn/trunk/blog/java/SimpleCannonPhysicsJava&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Based on code from: physics for game developers, David Bourg&lt;br /&gt;
&lt;br /&gt;----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0.75em; margin-top: 0.75em; text-align: justify;"&gt;
So today we see man a highly evolved creature who not only acts but thinks and feels. All these thoughts, feelings and emotions are interrelated.&lt;/div&gt;
&lt;div style="margin-bottom: 0.75em; margin-top: 0.75em; text-align: justify;"&gt;
The body and the mind of man are so closely bound together that whatever affects one affects the other. An instantaneous change of mind instantly changes the muscles of the face. A violent thought instantly brings violent bodily movements.&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-320413978904836825?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GMxCkio_Tb1DJICGEThzuu6plkU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GMxCkio_Tb1DJICGEThzuu6plkU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GMxCkio_Tb1DJICGEThzuu6plkU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GMxCkio_Tb1DJICGEThzuu6plkU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/Bh4kBqH-oMs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/320413978904836825/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=320413978904836825" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/320413978904836825?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/320413978904836825?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/Bh4kBqH-oMs/physics-example-in-java-projectile.html" title="A Physics Example in Java: A Projectile Fired from a Cannon, 2D Particle Kinematics" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-z-VFwSi3sCM/TvJH3GiS-vI/AAAAAAAAAm8/g3EGbXhc4LY/s72-c/a1.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/12/physics-example-in-java-projectile.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UBQnY7eCp7ImA9WhRWEU4.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-5526630717349287581</id><published>2011-12-18T21:55:00.001-05:00</published><updated>2011-12-29T00:07:33.800-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T00:07:33.800-05:00</app:edited><title>Random Code Post of the Day (procedural haskell, parse file)</title><content type="html">This is a random code post of the day, with haskell, read a log file, search for a term and then write when the term is found to another file.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ZLQyWHzuh7U/Tu6nFbkgRII/AAAAAAAAAms/wxMmssQVTvs/s1600/run_parse_log.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="564" src="http://3.bp.blogspot.com/-ZLQyWHzuh7U/Tu6nFbkgRII/AAAAAAAAAms/wxMmssQVTvs/s640/run_parse_log.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Haskell Source, open a file and search for a term&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;Source&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href="https://jvmnotebook.googlecode.com/svn/trunk/blog/haskell/RandomParseFile"&gt;https://jvmnotebook.googlecode.com/svn/trunk/blog/haskell/RandomParseFile&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;----&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="text-align: justify; text-indent: 16px;"&gt;It was a cloudy, sultry afternoon; the seamen were lazily lounging about the decks, or vacantly gazing over into the lead-coloured waters. Queequeg and I were mildly employed weaving what is called a sword-mat, for an additional lashing to our boat. So still and subdued and yet somehow preluding was all the scene, and such an incantation of reverie lurked in the air, that each silent sailor seemed resolved into his own invisible self.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-5526630717349287581?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/d--Vca7JvrKgQ0_9_Nb-xk5V_oQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d--Vca7JvrKgQ0_9_Nb-xk5V_oQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/d--Vca7JvrKgQ0_9_Nb-xk5V_oQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/d--Vca7JvrKgQ0_9_Nb-xk5V_oQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/cojgMCIMjDk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/5526630717349287581/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=5526630717349287581" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/5526630717349287581?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/5526630717349287581?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/cojgMCIMjDk/random-code-post-of-date-procedural.html" title="Random Code Post of the Day (procedural haskell, parse file)" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ZLQyWHzuh7U/Tu6nFbkgRII/AAAAAAAAAms/wxMmssQVTvs/s72-c/run_parse_log.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/12/random-code-post-of-date-procedural.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QNQXg9fip7ImA9WhRWEU4.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-1744645678766752671</id><published>2011-12-16T10:33:00.000-05:00</published><updated>2011-12-29T00:09:50.666-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T00:09:50.666-05:00</app:edited><title>Implementing Example One from the Machine Learning Class in Java</title><content type="html">At the end of 2011, Stanford offered a free online machine learning course. &amp;nbsp;The course covered many aspects of machine learning including linear regression, neural networks, super vector machines, and anomaly detection.&lt;br /&gt;
&lt;br /&gt;
Octave is an open software platform for numerical applications that is compatible with Matlab. &amp;nbsp;Octave was the &amp;nbsp; tool of choice for the machine learning class, all of the programming exercises required that you submit Octave source.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Overview of example one:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The first example in the course is to implement one variable linear regression. &amp;nbsp;The regression in linear regression is a regression towards a mean or moving closer towards a mean.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-o7s5srlwbfU/TuthSDrIkgI/AAAAAAAAAl0/C9NkQ0UH_Ho/s1600/eq1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-o7s5srlwbfU/TuthSDrIkgI/AAAAAAAAAl0/C9NkQ0UH_Ho/s1600/eq1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-JrM11e0gK2Q/TuthBeX33AI/AAAAAAAAAls/7CUgnEC83M4/s1600/gradient_descent_matlab.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-JrM11e0gK2Q/TuthBeX33AI/AAAAAAAAAls/7CUgnEC83M4/s1600/gradient_descent_matlab.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Partial Approach for Gradient Descent with Octave&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-yzEAHbaSEdA/TuthezHMLQI/AAAAAAAAAl8/Dg3rJGL1VYo/s1600/b1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-yzEAHbaSEdA/TuthezHMLQI/AAAAAAAAAl8/Dg3rJGL1VYo/s1600/b1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ay4b_PaABFU/TuthteUQMHI/AAAAAAAAAmE/299koRPM1E0/s1600/c1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ay4b_PaABFU/TuthteUQMHI/AAAAAAAAAmE/299koRPM1E0/s1600/c1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
In the example, data points are read from a file and after running the example from Octave, this plot is generated.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-M0YnTDZypRA/TutjXz9OidI/AAAAAAAAAmM/OVce8eORtt4/s1600/plot_linear_line1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="388" src="http://3.bp.blogspot.com/-M0YnTDZypRA/TutjXz9OidI/AAAAAAAAAmM/OVce8eORtt4/s640/plot_linear_line1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Overview of example one in Java:&lt;/b&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
The Java implementation as you might expect is more verbose than the Octave equivalent. &amp;nbsp;Java doesn't include a matrix library in the standard toolkit so it took 5-10 lines more code to implement basic matrix multiplication as opposed to the seamless multiplication in Octave.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-bDdCkx_bx6I/TutkI5rgF1I/AAAAAAAAAmU/DaVMn7-I01M/s1600/java_octave_example1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="484" src="http://1.bp.blogspot.com/-bDdCkx_bx6I/TutkI5rgF1I/AAAAAAAAAmU/DaVMn7-I01M/s640/java_octave_example1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-va0G9LIpuhs/TutkeolY6BI/AAAAAAAAAmc/JaITo4dQFUE/s1600/java_example_screen_ml2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="572" src="http://3.bp.blogspot.com/-va0G9LIpuhs/TutkeolY6BI/AAAAAAAAAmc/JaITo4dQFUE/s640/java_example_screen_ml2.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Java Swing Example of MlClass Ex1, regression line and data points&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;Resources&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.gnu.org/software/octave/"&gt;http://www.gnu.org/software/octave/&lt;/a&gt;
&lt;br /&gt;
&lt;a href="http://www.ml-class.org/course/class/index"&gt;http://www.ml-class.org/course/class/index&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Note: &amp;nbsp;I tried not to provide a full matlab implementation from the machine learning course as that wouldn't be fair to the students. &amp;nbsp;Plus the implementation is in Java and really ideal for the actual course.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Source&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://jvmnotebook.googlecode.com/svn/trunk/blog/java/ConvertMachineLearningToJava/"&gt;http://jvmnotebook.googlecode.com/svn/trunk/blog/java/ConvertMachineLearningToJava/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Contact&lt;/b&gt;&lt;br /&gt;
berlin dot brown at gmail.com&lt;br /&gt;
&lt;br /&gt;
"&lt;span style="text-align: justify; text-indent: 16px;"&gt;In the tumultuous business of cutting-in and attending to a whale, there is much running backwards and forwards among the crew. Now hands are wanted here, and then again hands are wanted there. There is no staying in any one place; for at one and the same time everything has to be done everywhere. It is much the same with him who endeavors the description of the scene.&lt;/span&gt;&lt;span style="text-align: justify; text-indent: 16px;"&gt;&amp;nbsp;"&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-1744645678766752671?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/e_KwAj4Le4w944MzcA43XtHGG2U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e_KwAj4Le4w944MzcA43XtHGG2U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/e_KwAj4Le4w944MzcA43XtHGG2U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e_KwAj4Le4w944MzcA43XtHGG2U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/CSrlvROgjdU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/1744645678766752671/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=1744645678766752671" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1744645678766752671?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1744645678766752671?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/CSrlvROgjdU/implementing-example-one-from-machine.html" title="Implementing Example One from the Machine Learning Class in Java" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-o7s5srlwbfU/TuthSDrIkgI/AAAAAAAAAl0/C9NkQ0UH_Ho/s72-c/eq1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/12/implementing-example-one-from-machine.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MESXo5eSp7ImA9WhRWEU4.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-7560695303768919696</id><published>2011-12-14T16:46:00.000-05:00</published><updated>2011-12-29T00:10:08.421-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T00:10:08.421-05:00</app:edited><title>Quick LaTeX Equation Examples for use by programmers on windows, convert to PNG</title><content type="html">LaTeX/TeX is a complex documenting system that is mostly used in a academic setting but can also be used by anyone to convey information. &amp;nbsp;It is a complete system but a massive system that has been in development for decades so it isn't something that you skim over and become fluent in. &amp;nbsp;But I did want to provide some full setup scripts so you can add write an equation and add an image of that equation or pseudo code to your blog or word documents.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Install Cygwin and tetex&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
You can install all of the tex software through cygwin. &amp;nbsp;Use the cygwin easy click through install wizard. &amp;nbsp;Select all of the Publishing/tetex* &amp;nbsp;applications.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-5xL6K0wPmKM/TukRCJhlIXI/AAAAAAAAAkk/xmtp_WNeZf4/s1600/install_cygwin_tex.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="452" src="http://2.bp.blogspot.com/-5xL6K0wPmKM/TukRCJhlIXI/AAAAAAAAAkk/xmtp_WNeZf4/s640/install_cygwin_tex.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;1.1 Install of tetex through Cygwin setup&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Install Cygwin, make and gcc and vim&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
gcc and make aren't required for tetext but I use a make script to run tex. &amp;nbsp;Install gcc and make through the cygwin installer.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Download my make script and example tex files&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://jvmnotebook.googlecode.com/svn/trunk/blog/LatexEquations/src/"&gt;http://jvmnotebook.googlecode.com/svn/trunk/blog/LatexEquations/src/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
There are several makefiles on the Internet for running tex files into tex and then converting them into some output. &amp;nbsp;Download the Makefile that I have in my link and you can simply type 'make' in a directory that has a collection of tex files. &lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-7Fvxw8gdGN8/TukSaes6J8I/AAAAAAAAAks/k1zBvhQ50Bg/s1600/screen_at_make.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-7Fvxw8gdGN8/TukSaes6J8I/AAAAAAAAAks/k1zBvhQ50Bg/s1600/screen_at_make.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;1.2 At directory, see makefile, launch cygwin and run 'make' at a directory with tex files&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;b&gt;Write a simple equation and convert to PNG&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
You will need to follow a three step process to in order to add an equation or pseudo image to your blog; write the equation in vim, execute the provided makefile, run the dvigif command. &amp;nbsp;Enter this equation using vim.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--z05uDS9xzo/TukUSPIhW0I/AAAAAAAAAk0/CZyN52Qc59Q/s1600/equation_tex.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/--z05uDS9xzo/TukUSPIhW0I/AAAAAAAAAk0/CZyN52Qc59Q/s1600/equation_tex.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;1.3 Equation in vim&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-NBPALudB-0s/TukU5vsYemI/AAAAAAAAAk8/Hq_vivV070E/s1600/make_command_with_dvi.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-NBPALudB-0s/TukU5vsYemI/AAAAAAAAAk8/Hq_vivV070E/s1600/make_command_with_dvi.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;1.4 Running 'make' and then dvigif command&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
dvigif --png -T'6.6in,7in' b.dvi&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-PTwvMLK8Hcc/TukV4e89DDI/AAAAAAAAAlE/dD9fnnTCy5I/s1600/z1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-PTwvMLK8Hcc/TukV4e89DDI/AAAAAAAAAlE/dD9fnnTCy5I/s1600/z1.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;1.5 PNG image output after running make build on tex &amp;nbsp;files and the dvigif command&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-GGLKxqUVghY/TukWddvbGtI/AAAAAAAAAlM/8eQV5XmHDIk/s1600/equation_more1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="443" src="http://1.bp.blogspot.com/-GGLKxqUVghY/TukWddvbGtI/AAAAAAAAAlM/8eQV5XmHDIk/s640/equation_more1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;1.6.a Tex source with various equations and pseudo code&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-IRS05aGMaVo/TukW2WpHD7I/AAAAAAAAAlU/1i4Qnnm13t0/s1600/a1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-IRS05aGMaVo/TukW2WpHD7I/AAAAAAAAAlU/1i4Qnnm13t0/s640/a1.png" width="602" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;1.6.b Output PNG image from tex source defined in figure 1.6.a&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-gYsqcLr2KIc/TukXlJZ6b9I/AAAAAAAAAlc/lGZi_wLtelU/s1600/screenshot_src_tex2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="442" src="http://1.bp.blogspot.com/-gYsqcLr2KIc/TukXlJZ6b9I/AAAAAAAAAlc/lGZi_wLtelU/s640/screenshot_src_tex2.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;1.7 Source with pseudo code&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ej2aq_gqAtY/TukX1ee-h4I/AAAAAAAAAlk/lLgdfHuI-ks/s1600/b1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-ej2aq_gqAtY/TukX1ee-h4I/AAAAAAAAAlk/lLgdfHuI-ks/s400/b1.png" width="376" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;1.7.b Output from pseudo code&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Additional Resources&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
[1]. Example Source -&amp;nbsp;&lt;a href="http://jvmnotebook.googlecode.com/svn/trunk/blog/LatexEquations/src/"&gt;http://jvmnotebook.googlecode.com/svn/trunk/blog/LatexEquations/src/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[2].&amp;nbsp;&lt;a href="http://en.wikibooks.org/wiki/LaTeX/Algorithms_and_Pseudocode"&gt;http://en.wikibooks.org/wiki/LaTeX/Algorithms_and_Pseudocode&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[3].&amp;nbsp;&lt;a href="http://www.cs.uiuc.edu/~jeffe/teaching/algorithms/"&gt;http://www.cs.uiuc.edu/~jeffe/teaching/algorithms/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Environment&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Tested with:&lt;br /&gt;
&lt;br /&gt;
WindowsXP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CYGWIN_NT-5.1 1.7.9(0.237/5/3) 2011-03-29 10:10 i686 Cygwin&lt;br /&gt;
&lt;br /&gt;
TeX 3.141592 (Web2C 7.5.4)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;span style="text-align: justify;"&gt;"The extreme Cerebral differs from other types chiefly in the fact that while his head is unusually large compared to the body, his alimentive, thoracic, muscular and bony systems are smaller and less developed than the average. The latter fact is due to the same law which causes the Alimentive to have a large body and a small head. Nature is a wonderful efficiency engineer. She provides only as much space as is required for the functioning of any particular organ, giving extra space only to those departments that need it."&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-7560695303768919696?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9R89ymlB-mpOObORrm66oxSDO_c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9R89ymlB-mpOObORrm66oxSDO_c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9R89ymlB-mpOObORrm66oxSDO_c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9R89ymlB-mpOObORrm66oxSDO_c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/sWX4-Fen3gM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/7560695303768919696/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=7560695303768919696" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/7560695303768919696?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/7560695303768919696?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/sWX4-Fen3gM/quick-latex-equation-examples-for-use.html" title="Quick LaTeX Equation Examples for use by programmers on windows, convert to PNG" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-5xL6K0wPmKM/TukRCJhlIXI/AAAAAAAAAkk/xmtp_WNeZf4/s72-c/install_cygwin_tex.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/12/quick-latex-equation-examples-for-use.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YBQ3Y5eCp7ImA9WhRWEU4.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-2285961192725638667</id><published>2011-11-14T18:16:00.001-05:00</published><updated>2011-12-29T00:05:52.820-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T00:05:52.820-05:00</app:edited><title>OpenJDK Java8 Lambda Syntax</title><content type="html">This document provides some working examples of the future OpenJDK 8 lambda syntax. &amp;nbsp; There was a lot of discussion whether the language changes would get included in the Java7 or Java8 so it looks like we will see the changes in Java8 slated for release in 2013.&lt;br /&gt;
&lt;br /&gt;
The lambda conversion uses a target SAM type or single abstract method. &lt;br /&gt;
&lt;br /&gt;
You can see the conversion in this example:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; interface F {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; void f();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; final F func = () -&amp;gt; System.out.println("Test");&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("Function Object : " + func);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; func.f();&lt;br /&gt;
...&lt;br /&gt;
The variable type on the left is an interface of type 'F' with a single method 'f'.&lt;br /&gt;
&lt;br /&gt;
It seems that the Java lambda implementation provides a slightly more expressive syntax for code blocks&amp;nbsp;that you would normally see in an anonymous inner class. &amp;nbsp;These sections of &amp;nbsp;code are&amp;nbsp;synonymous.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; final int ii = i;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; final int res6 = ((Fx)( (final int y) -&amp;gt; y + ii )).f(10); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("[6] Output from recent lambda call index="+i+" : " + res6);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; final int ii = i;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // @line70, anon inner class call&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; final Fx fxx = new Fx() {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public int f(int y) { return y + ii; } &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; final int res6 = fxx.f(10); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println("[7] Output from anonymous inner call index="+i+" : " + res6);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-vsn395fASQU/TsGkGmzo7iI/AAAAAAAAAkY/lkVARBfQTys/s1600/screenshot_example_lambda_java8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="578" src="http://3.bp.blogspot.com/-vsn395fASQU/TsGkGmzo7iI/AAAAAAAAAkY/lkVARBfQTys/s640/screenshot_example_lambda_java8.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Resources:&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
The Lambda team provided a binary build of Javac and Java for Windows and Linux. &lt;br /&gt;
&lt;br /&gt;
[1]&amp;nbsp;&lt;a href="http://jdk8.java.net/lambda/"&gt;http://jdk8.java.net/lambda/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ ./java.bat&lt;br /&gt;
openjdk version "1.8.0-ea"&lt;br /&gt;
OpenJDK Runtime Environment (build 1.8.0-ea-b1314)&lt;br /&gt;
OpenJDK Client VM (build 23.0-b04, mixed mode)&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://github.com/berlinbrown/BuildingOpenJDKCookbook"&gt;https://github.com/berlinbrown/BuildingOpenJDKCookbook&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://github.com/berlinbrown/BuildingOpenJDKCookbook/blob/master/BuildingJDK8/ExampleLambdaProject/LambdaJava8Test.java"&gt;BuildingJDK8/ExampleLambdaProject/LambdaJava8Test.java&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://hg.openjdk.java.net/lambda/lambda/"&gt;http://hg.openjdk.java.net/lambda/lambda/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://mail.openjdk.java.net/pipermail/lambda-dev/attachments/20100122/3764c21a/attachment.txt"&gt;http://mail.openjdk.java.net/pipermail/lambda-dev/attachments/20100122/3764c21a/attachment.txt&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;span style="text-align: justify;"&gt;The Thoracic system may be compared to a great freight system, with each of its tributaries&lt;/span&gt;&lt;span class="pagenum" style="font-size: smaller; left: 92%; position: absolute; text-align: right;"&gt;&lt;a href="" id="Page_218" name="Page_218"&gt;[Pg 218]&lt;/a&gt;&lt;/span&gt;&lt;span style="text-align: justify;"&gt;—from the main trunk arteries down to the tiniest blood vessels—starting from the heart and carrying its cargo of blood to every part of the body by means of the power furnished by the lungs.&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-2285961192725638667?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UwO-BEFiKKXF-tciVisVjBJ26F4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UwO-BEFiKKXF-tciVisVjBJ26F4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UwO-BEFiKKXF-tciVisVjBJ26F4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UwO-BEFiKKXF-tciVisVjBJ26F4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/G-3VdMyyJbQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/2285961192725638667/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=2285961192725638667" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/2285961192725638667?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/2285961192725638667?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/G-3VdMyyJbQ/openjdk-java8-lambda-syntax.html" title="OpenJDK Java8 Lambda Syntax" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-vsn395fASQU/TsGkGmzo7iI/AAAAAAAAAkY/lkVARBfQTys/s72-c/screenshot_example_lambda_java8.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/11/openjdk-java8-lambda-syntax.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcCRXk7fyp7ImA9WhRTFkQ.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-5818959100710038604</id><published>2011-11-07T15:31:00.000-05:00</published><updated>2011-11-07T15:34:24.707-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T15:34:24.707-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="parser" /><category scheme="http://www.blogger.com/atom/ns#" term="lexer" /><category scheme="http://www.blogger.com/atom/ns#" term="compiler" /><category scheme="http://www.blogger.com/atom/ns#" term="ast" /><category scheme="http://www.blogger.com/atom/ns#" term="openjdk" /><category scheme="http://www.blogger.com/atom/ns#" term="jvm" /><title>Implementing a Parser and Simple Compiler for the Java Virtual Machine</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;1. Overview&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; This document covers the implementation of a simple recursive-descent parser for an infix adder language with a lexer, parser, and compiler. &amp;nbsp;The language is implemented with Java and compiles to Java Virtual Machine (JVM) bytecode. &amp;nbsp;The first implementation of the compiler is different from other implementations because it is fully implemented in one class without third party parser generator libraries. &amp;nbsp;The implementation of the language only uses the Java standard libraries. &amp;nbsp;The code for the parser does not use a parser generator so it only contains pure Java standard libraries and no references to third-party libraries.&lt;br /&gt;
&lt;br /&gt;
I wanted to discuss this particular example it helps for you to understand the nature of programming languages and their implementation. &amp;nbsp;Don't be scared about the parsing input token routines in them. &amp;nbsp;They help as a tool to the developer. &amp;nbsp;This a basic implementation but at least I provided a JVM compiler. &amp;nbsp;Actually code generator from the AST to JVM byte code.&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ppBOm4Mp7oY/Tny3bIlzjvI/AAAAAAAAAjk/K-LsNwtiUHk/s1600/output_from_language.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="119" src="http://2.bp.blogspot.com/-ppBOm4Mp7oY/Tny3bIlzjvI/AAAAAAAAAjk/K-LsNwtiUHk/s400/output_from_language.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 1 : Mini adder language input (6 tokens are visible)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span class="Apple-style-span"&gt;&amp;nbsp; The language program in the snippet above consists of a SYMBOL name token, an assignment token, NUMBER value the PLUS token and another NUMBER token. &amp;nbsp;The result of the add operation is stored in &amp;nbsp;global memory. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;2. Lexical Analysis&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; The lexical analysis consists of reading the character tokens from the input stream and then converting those &amp;nbsp; ASCII characters into tokens that are used by our language.&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-LEliLzgJpOE/Tnub2pJaK1I/AAAAAAAAAjI/izkanWg9O8U/s1600/screenshot_lexer_code.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-LEliLzgJpOE/Tnub2pJaK1I/AAAAAAAAAjI/izkanWg9O8U/s400/screenshot_lexer_code.png" width="318" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 2: Source code for lexer method, convert input ASCII characters into our language token types&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&amp;nbsp; If you look at the code snippet above, the lexer method mostly consists of a large case statement that checks for a particular character and then creates a wrapper token object for that character. Once the token object is created, we add start to add the token node to the abstract syntax tree.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;3. Lexer and Simple Parser with ANTLR&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
The parser example code uses only the Java standard libraries. &amp;nbsp; Most developers that write domain specific languages or other programming languages may use a parser generator. &amp;nbsp;ANTLR is a parser generator system written in Java that can output parser code in Java programming language or Python. &amp;nbsp;You provide a grammar and ANTLR generates the code that you can use for the lexer and parser. &amp;nbsp;In our case, are going to create a simple grammar and then two classes are created, the lexer and parser.&lt;br /&gt;
&lt;br /&gt;
When then feed the input tokens to our ANTLR code generated code.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-QyFrjHrsXwc/Trf1GNWbX5I/AAAAAAAAAkA/cWc6AuuYl_w/s1600/example_antlr_grammar.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://3.bp.blogspot.com/-QyFrjHrsXwc/Trf1GNWbX5I/AAAAAAAAAkA/cWc6AuuYl_w/s400/example_antlr_grammar.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-iGEJJ5JIdpM/Trf18qM1tgI/AAAAAAAAAkQ/NJjS05pJIQc/s1600/example_image_with_code_usage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://2.bp.blogspot.com/-iGEJJ5JIdpM/Trf18qM1tgI/AAAAAAAAAkQ/NJjS05pJIQc/s640/example_image_with_code_usage.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;4. Parser Implementation and Abstract Syntax Tree (AST)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; The parser implementation converts and analyzes the tokens and coverts the tokens to an abstract syntax tree. &amp;nbsp;Once we build the AST, then we can traverse the tree and perform operations at each node.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xuQyZTp8a7o/Tnx8iVQ5AtI/AAAAAAAAAjc/Cm7mtY2O65E/s1600/ast_parser_ll_lookahead.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="248" src="http://2.bp.blogspot.com/-xuQyZTp8a7o/Tnx8iVQ5AtI/AAAAAAAAAjc/Cm7mtY2O65E/s400/ast_parser_ll_lookahead.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 3.1 : Lookahead parsing (LL(2)) and look for match errors&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&amp;nbsp; We used look ahead two parsing. &amp;nbsp; Match method.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-m39-dJ3NYH8/TnzrEFp_1-I/AAAAAAAAAjw/qG8hB_GZOdk/s1600/building_the_ast.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="162" src="http://2.bp.blogspot.com/-m39-dJ3NYH8/TnzrEFp_1-I/AAAAAAAAAjw/qG8hB_GZOdk/s400/building_the_ast.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 3.2 : Output from Abstract Syntax Tree&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-2k3ivvHpVZA/Tnui04YB_0I/AAAAAAAAAjQ/j_Y9P6c_FkA/s1600/ast_builder_assignment.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="496" src="http://2.bp.blogspot.com/-2k3ivvHpVZA/Tnui04YB_0I/AAAAAAAAAjQ/j_Y9P6c_FkA/s640/ast_builder_assignment.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 3: &amp;nbsp;Building the AST&lt;br /&gt;
&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;4.1 Mini Language Functionality: Adding, Global Memory, Printing&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-EzUHHqrD2Ds/TnujOOSulEI/AAAAAAAAAjY/rIxzuaqznvs/s1600/screenshot_parser_visitor.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-EzUHHqrD2Ds/TnujOOSulEI/AAAAAAAAAjY/rIxzuaqznvs/s1600/screenshot_parser_visitor.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 4: &amp;nbsp;Visitor implementation, visit the AST expression nodes. &amp;nbsp;Perform 'add' operation&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;5. Java Bytecode&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large; font-weight: bold;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span class="Apple-style-span"&gt;The Java bytecode consists of &amp;nbsp;the magic number CAFEBABE. &amp;nbsp;After that comes the constant pool data. &amp;nbsp;After the constant pool data comes the data buffer which consists of the code block.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;5.1 Java Tools : Javap&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-p7m4v6F9V04/TnyqE3XcWNI/AAAAAAAAAjg/EOVkJHux5vQ/s1600/javap_output.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-p7m4v6F9V04/TnyqE3XcWNI/AAAAAAAAAjg/EOVkJHux5vQ/s640/javap_output.png" width="628" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 5 : Output from Javap Disassemble/Decompile on a Java Class&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;5.2 The Constant Pool&lt;/b&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &lt;/b&gt;The constant pool is a collection of constants that are referenced by ID in the data buffer or code section.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;5.3 The Data Buffer and Code Section Attributes&lt;/b&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
The data buffer code section contains the code.&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;b&gt;5.4 Analyzing the OpenJDK Java Source&lt;/b&gt;&lt;/div&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jw6Vm_3QOTs/TnzjgfWgBTI/AAAAAAAAAjo/Vx7hMBRh3ZM/s1600/screenshot_classwriter_open_jdk.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-jw6Vm_3QOTs/TnzjgfWgBTI/AAAAAAAAAjo/Vx7hMBRh3ZM/s640/screenshot_classwriter_open_jdk.png" width="523" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 6 : OpenJDK Java Source ClassWriter.java, writes Java bytecode to file/stream&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;6. Mini Compiler Implementation (writing to JVM bytecode)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&amp;nbsp; When thinking about the Java programming language, think of it as a wrapper for generating Java bytecode. &amp;nbsp;You don't necessarily need a mainstream programming language. &amp;nbsp;You do need to format the bytecode input into a class file and feed that into the Java virtual machine.&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Ji6ti-eY-1U/Tnzknfp9ptI/AAAAAAAAAjs/Se74FF8_M5Y/s1600/adding_to_constant_pool.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="238" src="http://4.bp.blogspot.com/-Ji6ti-eY-1U/Tnzknfp9ptI/AAAAAAAAAjs/Se74FF8_M5Y/s640/adding_to_constant_pool.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 7 : Mini adder compiler, adding constants to constant pool. Matches Javap output (see comments)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;7. Conclusion&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
This document covers the implementation of a compiler, a very basic compiler for the JVM. &amp;nbsp;We looked at the lexer, the parser, the AST, JVM bytecode and compiler.&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;A. Resources&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;B. Source Code&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="https://github.com/berlinbrown/ImperativeStaticCompiledLangOneFile"&gt;https://github.com/berlinbrown/ImperativeStaticCompiledLangOneFile - Github Source, see CompiledLangOneFile.java)&lt;/a&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;C. Building the OpenJDK Java Compiler&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;D. Tools&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.antlr.org/"&gt;http://www.antlr.org/&lt;/a&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;E. Disclaimer&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
For this document, I included snapshot images of the source instead of the actual source because I plan on converting this document to other formats. &amp;nbsp;I wanted to keep some of the syntax highlighting from my IDE.&lt;br /&gt;
&lt;br /&gt;
-- Berlin Brown on 9/22/2011&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-5818959100710038604?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7BwmSoY6AYToqjaDFUh2byA-J80/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7BwmSoY6AYToqjaDFUh2byA-J80/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7BwmSoY6AYToqjaDFUh2byA-J80/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7BwmSoY6AYToqjaDFUh2byA-J80/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/6UTTfPaouns" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/5818959100710038604/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=5818959100710038604" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/5818959100710038604?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/5818959100710038604?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/6UTTfPaouns/implementing-parser-and-simple-compiler.html" title="Implementing a Parser and Simple Compiler for the Java Virtual Machine" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ppBOm4Mp7oY/Tny3bIlzjvI/AAAAAAAAAjk/K-LsNwtiUHk/s72-c/output_from_language.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/11/implementing-parser-and-simple-compiler.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cEQHc9fyp7ImA9WhdVF08.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-843028510525884530</id><published>2011-09-11T10:39:00.000-04:00</published><updated>2011-09-22T15:50:01.967-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-22T15:50:01.967-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lisp" /><category scheme="http://www.blogger.com/atom/ns#" term="india" /><category scheme="http://www.blogger.com/atom/ns#" term="euler" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Exploring Common Lisp: Project Euler Number 8 in Common Lisp (Neophyte Version)</title><content type="html">There isn't really much I can add about this example.  The goal is to find the largest product of any consecutive digits given a 1000 digit number.  I implemented the first approach that came to mind; I went with a large loop to iterate through the 1000 digits and then an inner loop to extract that digits we are going to use in our calculation.  The key built-in lisp functions are "loop" and "reduce".  If you are not used to a lisp programming language, a C version of this solution is provided.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style="color: firebrick;"&gt;;;&lt;/span&gt;&lt;span style="color: firebrick;"&gt;
&lt;/span&gt;&lt;span style="color: firebrick;"&gt;;; &lt;/span&gt;&lt;span style="color: firebrick;"&gt;euler8.lisp (modify to find the "correct" solution)&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style="color: firebrick;"&gt;;; &lt;/span&gt;&lt;span style="color: firebrick;"&gt;Find the greatest product of five &lt;/span&gt;&lt;span style="color: firebrick;"&gt;;; &lt;/span&gt;&lt;span style="color: firebrick;"&gt;consecutive digits in the 1000-digit number&lt;/span&gt;&lt;span style="color: firebrick;"&gt;;;&lt;/span&gt;&lt;span style="color: firebrick;"&gt;
&lt;/span&gt;&lt;span style="color: firebrick;"&gt;;; &lt;/span&gt;&lt;span style="color: firebrick;"&gt;[1] http://www.unixuser.org/~euske/doc/cl/loop.html&lt;/span&gt;
(&lt;span style="color: #a020f0;"&gt;defparameter&lt;/span&gt; &lt;span style="color: darkgoldenrod;"&gt;*large-num*&lt;/span&gt; 
&lt;span style="color: rosybrown;"&gt;"73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843"&lt;/span&gt;)

(&lt;span style="color: #a020f0;"&gt;defun&lt;/span&gt; &lt;span style="color: blue;"&gt;find-great-product&lt;/span&gt; ()
  &lt;span style="color: rosybrown;"&gt;"Use reduce to find the product of a list of 5 digits out of the
 larger 1000 digit number"&lt;/span&gt;
  (&lt;span style="color: #a020f0;"&gt;let&lt;/span&gt; ((n (length *large-num*)) (m 0))
    (&lt;span style="color: #a020f0;"&gt;loop&lt;/span&gt; for i from 0 to (- n 5)
          for x = (&lt;span style="color: #a020f0;"&gt;let&lt;/span&gt; ((vals (&lt;span style="color: #a020f0;"&gt;loop&lt;/span&gt; for z from i to (+ i 4)
                                    for b = (digit-char-p (char *large-num* z))
                                    collect (&lt;span style="color: #a020f0;"&gt;if&lt;/span&gt; b b 1))))
                    (reduce #'* vals))
          do (&lt;span style="color: #a020f0;"&gt;when&lt;/span&gt; (&amp;gt; x m) (setf m x)))
    m))
(&lt;span style="color: #a020f0;"&gt;defun&lt;/span&gt; &lt;span style="color: blue;"&gt;main&lt;/span&gt; ()
  (format t &lt;span style="color: rosybrown;"&gt;"Start~%"&lt;/span&gt;)
  (print (find-great-product))
  (format t &lt;span style="color: rosybrown;"&gt;"Done~%"&lt;/span&gt;))
(main)&lt;/pre&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-843028510525884530?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kyhEfn4GHBM7o2sgLI0k9pjxHrM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kyhEfn4GHBM7o2sgLI0k9pjxHrM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kyhEfn4GHBM7o2sgLI0k9pjxHrM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kyhEfn4GHBM7o2sgLI0k9pjxHrM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/GH_Iqry7ZCE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/843028510525884530/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=843028510525884530" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/843028510525884530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/843028510525884530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/GH_Iqry7ZCE/project-euler-number-8-in-common-lisp.html" title="Exploring Common Lisp: Project Euler Number 8 in Common Lisp (Neophyte Version)" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2008/05/project-euler-number-8-in-common-lisp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAGRH45fSp7ImA9WhdVEEw.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-3952344187800629803</id><published>2011-09-10T02:39:00.001-04:00</published><updated>2011-09-14T11:22:05.025-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-14T11:22:05.025-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="timhutton" /><category scheme="http://www.blogger.com/atom/ns#" term="ai" /><category scheme="http://www.blogger.com/atom/ns#" term="artificialintelligence" /><category scheme="http://www.blogger.com/atom/ns#" term="probiotic" /><category scheme="http://www.blogger.com/atom/ns#" term="molecules" /><category scheme="http://www.blogger.com/atom/ns#" term="alife" /><category scheme="http://www.blogger.com/atom/ns#" term="india" /><category scheme="http://www.blogger.com/atom/ns#" term="artificialchemistry" /><category scheme="http://www.blogger.com/atom/ns#" term="lipids" /><category scheme="http://www.blogger.com/atom/ns#" term="dna" /><category scheme="http://www.blogger.com/atom/ns#" term="rna" /><title>Revisiting Self Replicating Molecules in an Artificial Chemistry  Automaton</title><content type="html">&lt;b&gt;Introduction&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; This blog entry describes an artificial chemistry simulation implemented through a cellular automaton.  We show that basic rules can be used to produce complex behavior through simulated artificial chemical reactions.  The chemical simulation exists on a fixed size two dimensional grid of cells. &amp;nbsp;Each active cell is represented by an&amp;nbsp;artificial&amp;nbsp;atom element, these atoms may collide with other atoms to produce a chemical reaction. &amp;nbsp;Strong chemical bonds will form if the chemical reaction is allowed by system. &amp;nbsp;Clusters of strong bonded atoms form molecule strings. &amp;nbsp; We show that self replicating molecule string patterns emerge from the artificial simulation. &amp;nbsp;This analysis is based on Timothy Hutton's artificial chemistry model from Squirm3. &amp;nbsp;It it is a basic model but a necessary step for analyzing and recreating similar natural systems. &amp;nbsp;Self-replication and self-organization&amp;nbsp;is fundamental to all biological life. &amp;nbsp;Engineers use scientific knowledge to solve real-world problems. &amp;nbsp;Scientists study and&amp;nbsp;experiment&amp;nbsp;with nature and the Universe in order to add their research to the scientific&amp;nbsp;knowledge base. &amp;nbsp;This small&amp;nbsp;experiment&amp;nbsp;attempts to simulate real chemical reactions using simple artificial physics.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; Chemical reactions occur when two atom cells collide. &amp;nbsp;In the simulated physical environment, this occurs when an atom cell sits next to another atom cell. &amp;nbsp;The chemical reaction rules are tested between the two atoms, if the rules allow the reaction then a bond forms.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TpWJ3iUN0jE/TmsALylGWJI/AAAAAAAAAio/yG32IG9mc0U/s1600/reactions_output.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-TpWJ3iUN0jE/TmsALylGWJI/AAAAAAAAAio/yG32IG9mc0U/s1600/reactions_output.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 1: Chemical Reactions over time&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&amp;nbsp; &amp;nbsp;The atom cell has a type of 'a', 'b', 'c', 'd', 'e', 'f'. &amp;nbsp;Each atom has a state of '0'-'8'. &amp;nbsp;Three chemical reactions typically occurred&amp;nbsp;but eight were allowed. &amp;nbsp;During a chemical reaction, x3 for atom one and y6 for atom two with an output x2. &amp;nbsp;X and Y are variable substitutions for the atoms,&amp;nbsp;'a', 'b', 'c', 'd', 'e', 'f'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-UfHJPsDG5VI/TmsDlJNrsZI/AAAAAAAAAis/VIzrHkJBN7U/s1600/screenshot_1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="474" src="http://1.bp.blogspot.com/-UfHJPsDG5VI/TmsDlJNrsZI/AAAAAAAAAis/VIzrHkJBN7U/s640/screenshot_1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 2 : Squirm 3 Artificial Chemistry Java Application. &amp;nbsp;Clumps of bonded atoms represent molecules.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-3De_bwFXO0o/TmsDy7E1iyI/AAAAAAAAAiw/OPMQKy9u1AM/s1600/plot_bond_count.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/-3De_bwFXO0o/TmsDy7E1iyI/AAAAAAAAAiw/OPMQKy9u1AM/s640/plot_bond_count.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 3 : Number of Bonds vs No Bond. &amp;nbsp;Over time, the bonded atoms will fill the screen. &amp;nbsp; Some atoms that don't have bonds still persist but with less frequency&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-yCnP8caRqeg/TmsESX2QoKI/AAAAAAAAAi0/eQyt3jy6_iQ/s1600/bond_nums_output.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-yCnP8caRqeg/TmsESX2QoKI/AAAAAAAAAi0/eQyt3jy6_iQ/s1600/bond_nums_output.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 4 : Total bonds over time&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;System Description&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The simulation consists of a 2D grid, fifty cells in height and fifty cells in width. &amp;nbsp;A cell grid is inactive or active, the active grid cell may contain an atom element represented by a&amp;nbsp;&amp;nbsp;'a', 'b', 'c', 'd', 'e', 'f' type and a 0-8 state, &amp;nbsp;e8 represents atom cell type 'e' with state 8. &amp;nbsp;Molecules consist of clumps of atoms. &amp;nbsp;We only use the atom type to chain molecule strings,&amp;nbsp;&lt;b&gt;cfab&lt;/b&gt;&amp;nbsp;is a common molecule that self replicates in the simulation.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-L3OqcTFDUrU/TmzE_qsiNPI/AAAAAAAAAjE/YHXtMsySTfg/s1600/screenshot_reactions.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-L3OqcTFDUrU/TmzE_qsiNPI/AAAAAAAAAjE/YHXtMsySTfg/s1600/screenshot_reactions.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="font-size: 13px; text-align: center;"&gt;Establishing a chemical reaction, example reaction cell1=e8 + cell2=e0 creates cells e0 and e4 and a bond may form&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
After thousands of iterations, common patterns emerge on the grid. &amp;nbsp;Common bonded atoms (molecules) survive through out the simulation. &lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-KqQPtghamOU/TmsEegy3cVI/AAAAAAAAAi4/nVgRTz7kOSU/s1600/plot_atom_state_line.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/-KqQPtghamOU/TmsEegy3cVI/AAAAAAAAAi4/nVgRTz7kOSU/s640/plot_atom_state_line.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 5 : Common Atoms and Atom State. &amp;nbsp;Common atom states fill the cell universe.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-C5RruH2yTEk/TmsEsMEkyTI/AAAAAAAAAi8/Ip1sxHkYp0o/s1600/plot_simple_bonds.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/-C5RruH2yTEk/TmsEsMEkyTI/AAAAAAAAAi8/Ip1sxHkYp0o/s640/plot_simple_bonds.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 6 : Most Common Bonds&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-glxgxfVAen4/TmsE5O6uTVI/AAAAAAAAAjA/6OBaUL0CqAY/s1600/plot_reactions.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/-glxgxfVAen4/TmsE5O6uTVI/AAAAAAAAAjA/6OBaUL0CqAY/s640/plot_reactions.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Figure 7 : Common Reactions&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;Source Code&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://github.com/berlinbrown/Squirm3ArtificialChemistry"&gt;https://github.com/berlinbrown/Squirm3ArtificialChemistry&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;References&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
[1]&amp;nbsp;Evolvable Self-Replicating Molecules in an Artificial Chemistry Tim J. Hutton, Fall 2002, Vol. 8, No. 4, Pages 341-356 Posted Online March 11, 2006. (doi:10.1162/106454602321202417) at 2002 Massachusetts Institute of Technology&lt;br /&gt;
&lt;br /&gt;
Date: 9/10/2011 -- Berlin Brown&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-3952344187800629803?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2kj65C9EpGMos_MJ0UwwtKVQbVs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2kj65C9EpGMos_MJ0UwwtKVQbVs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2kj65C9EpGMos_MJ0UwwtKVQbVs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2kj65C9EpGMos_MJ0UwwtKVQbVs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/ClZgDyvB5LI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/3952344187800629803/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=3952344187800629803" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/3952344187800629803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/3952344187800629803?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/ClZgDyvB5LI/revisiting-self-replicating-molecules.html" title="Revisiting Self Replicating Molecules in an Artificial Chemistry  Automaton" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-TpWJ3iUN0jE/TmsALylGWJI/AAAAAAAAAio/yG32IG9mc0U/s72-c/reactions_output.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/09/revisiting-self-replicating-molecules.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUGQXk8fCp7ImA9WhRWFEU.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-16402490638769688</id><published>2011-07-04T15:43:00.004-04:00</published><updated>2012-01-01T23:57:00.774-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-01T23:57:00.774-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="profiling" /><title>Quick notes on Java profiling API</title><content type="html">&lt;a href="http://2.bp.blogspot.com/-uEVH7WE63Hk/ThmhFGDmvHI/AAAAAAAAAhQ/Cc4jv_JfePU/s1600/andy_image_dj.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5627706318273297522" src="http://2.bp.blogspot.com/-uEVH7WE63Hk/ThmhFGDmvHI/AAAAAAAAAhQ/Cc4jv_JfePU/s400/andy_image_dj.jpg" style="cursor: hand; cursor: pointer; display: block; height: 267px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Java Profilers normally change the bytecode of methods in classes as they are loaded by the JVM.  &lt;br /&gt;
&lt;br /&gt;
See the instrument API.  Also see the tijmp as an example memory profiler.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://download.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html"&gt;http://download.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://khelekore.org/jmp/tijmp/"&gt;http://khelekore.org/jmp/tijmp/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;span style="text-align: justify;"&gt;Because the Alimentive and Cerebral systems are farthest removed from each other, evolutionally, a large brain and a large stomach are a very unusual combination. Such an individual would be a combination of the Alimentive and Cerebral types and would have the Alimentive's fat body with a large highbrow head of the Cerebral. The&lt;/span&gt;&lt;span class="pagenum" style="font-size: smaller; left: 92%; position: absolute; text-align: right;"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=6469693320219923273" id="Page_224" name="Page_224"&gt;[Pg 224]&lt;/a&gt;&lt;/span&gt;&lt;span style="text-align: justify;"&gt;&amp;nbsp;possession of these two highly developed but opposite kinds of systems places their owner constantly in the predicament of deciding between the big meal he wants and the small one he knows he should have for good brain work.&lt;/span&gt;&lt;br /&gt;
&lt;span style="text-align: justify;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="text-align: justify;"&gt;&lt;span style="text-align: -webkit-auto;"&gt;-- Ron Paul 2012&lt;/span&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-16402490638769688?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QYHyt2Vafkn4C4xseqqjvNDoFMI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QYHyt2Vafkn4C4xseqqjvNDoFMI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QYHyt2Vafkn4C4xseqqjvNDoFMI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QYHyt2Vafkn4C4xseqqjvNDoFMI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/dtUbSCRAJLY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/16402490638769688/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=16402490638769688" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/16402490638769688?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/16402490638769688?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/dtUbSCRAJLY/quick-notes-on-java-profiling-api.html" title="Quick notes on Java profiling API" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-uEVH7WE63Hk/ThmhFGDmvHI/AAAAAAAAAhQ/Cc4jv_JfePU/s72-c/andy_image_dj.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/07/quick-notes-on-java-profiling-api.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYBSH49eip7ImA9WhZaE0Q.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-1866204104103985038</id><published>2011-06-29T20:01:00.001-04:00</published><updated>2011-06-29T20:02:39.062-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-29T20:02:39.062-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gwt" /><category scheme="http://www.blogger.com/atom/ns#" term="googlecode" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>GTUG Atlanta, GWT and HTML5</title><content type="html">I went to the GTUG Google Technology Atlanta group yesterday.  It was a good crowd of about 30 people.  The GWT demos focused on Local Storage, Canvas, Audio, Video and some other topics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-1866204104103985038?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EGAlz4ReuYxAs5Z4rBzgXVve2eY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EGAlz4ReuYxAs5Z4rBzgXVve2eY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EGAlz4ReuYxAs5Z4rBzgXVve2eY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EGAlz4ReuYxAs5Z4rBzgXVve2eY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/oBvYoKcRVog" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/1866204104103985038/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=1866204104103985038" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1866204104103985038?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1866204104103985038?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/oBvYoKcRVog/gtug-atlanta-gwt-and-html5.html" title="GTUG Atlanta, GWT and HTML5" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/06/gtug-atlanta-gwt-and-html5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEGR3Y8eSp7ImA9WhdVEEw.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-7862853030627668286</id><published>2011-06-08T10:05:00.001-04:00</published><updated>2011-09-14T11:20:26.871-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-14T11:20:26.871-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="turing" /><category scheme="http://www.blogger.com/atom/ns#" term="math" /><category scheme="http://www.blogger.com/atom/ns#" term="alanturing" /><category scheme="http://www.blogger.com/atom/ns#" term="computing" /><title>General Programming: Learning and using a programming language</title><content type="html">This is an expert from a slashdot post on programming languages:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-style: italic;"&gt;"We only make programming difficult because we suck at writing. The vast majority of programmers aren't fluent, and don't even have a desire to be fluent. They don't read other people's code. They don't recognise or use idioms. They don't think *in the programming language*. Most code sucks because we have the fluency equivalent of 3 year olds trying to write a novel."&lt;br /&gt;&lt;br /&gt;"In language acquisition there is a hypothesis called the "Input Hypothesis". It states that *all* language acquisition comes from "comprehensible input". That is, if you hear or read language that you can understand based on what you already know and from context, you will acquire it. Explanation does not help you acquire language. I believe the same is true of programming. We should be immersing students in good code. We should be burying them in idiom after idiom after idiom, allowing them to acquire the ability to program without explanation."&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
-- &lt;a href="http://ask.slashdot.org/comments.pl?sid=2198700&amp;amp;cid=36293622"&gt;http://ask.slashdot.org/comments.pl?sid=2198700&amp;amp;cid=36293622&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-7862853030627668286?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FOni3eQAyHVDdYa1nW2f9Pit8G4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FOni3eQAyHVDdYa1nW2f9Pit8G4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FOni3eQAyHVDdYa1nW2f9Pit8G4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FOni3eQAyHVDdYa1nW2f9Pit8G4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/0WDY2tK6e3k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/7862853030627668286/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=7862853030627668286" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/7862853030627668286?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/7862853030627668286?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/0WDY2tK6e3k/general-programming-learning-and-using.html" title="General Programming: Learning and using a programming language" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/06/general-programming-learning-and-using.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4FQX0-fip7ImA9WhdVEEw.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-2306283625637305256</id><published>2011-05-21T16:48:00.006-04:00</published><updated>2011-09-14T11:25:10.356-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-14T11:25:10.356-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ai" /><category scheme="http://www.blogger.com/atom/ns#" term="missoni" /><category scheme="http://www.blogger.com/atom/ns#" term="turing" /><category scheme="http://www.blogger.com/atom/ns#" term="alanturing" /><title>Thoughts on early computing history, addendum</title><content type="html">1928 - The Entscheidungsproblem decision problem was proposed by David Hilbert  &lt;br /&gt;
1936 - Church publishes &lt;span style="font-style: italic;"&gt;"An Unsolvable Problem of Elementary Number Theory"&lt;/span&gt;, Church's Thesis [1].  It is a paper on untyped lambda calculus. American Journal of Mathematics, Volume 58, No. 2. (Apr., 1936)&lt;br /&gt;
1936 - Alan Turning publishes a paper on an abstract machine , &lt;span style="font-style: italic;"&gt;On Computable Numbers, with an Application to the Entscheidungsproblem' Proceedings of the London Mathematical Society, Series 2, 42 (1936-37)&lt;/span&gt;.  He proposed the concept of the stored-program. &lt;br /&gt;
1937+ - John von Neumann gains knowledge from Alan Turing's papers but Turing was not directly related to the development of ENIAC.&lt;br /&gt;
1943 - 1946 - Creation of ENIAC (Electronic Numerical Integrator And Computer) &lt;br /&gt;
1944 - John von Neumann became involved with ENIAC &lt;br /&gt;
1949-1960 - Early stored computers were created, some of the based on von Neumann architecture.&lt;br /&gt;
1952 - The IBM 701 was announced.  The 701 was a stored-program computer.&lt;br /&gt;
1954 - IBM 704 introduced&lt;br /&gt;
1954 - FORTRAN and LISP developed for the IBM 704&lt;br /&gt;
1970 - Forth developed.  Forth inspired the Java virtual machine.&lt;br /&gt;
1973 - C programming language appeared.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-2306283625637305256?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6ymNgkrxySZrVwxUVQB7NJj-gp4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6ymNgkrxySZrVwxUVQB7NJj-gp4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6ymNgkrxySZrVwxUVQB7NJj-gp4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6ymNgkrxySZrVwxUVQB7NJj-gp4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/XSwYZBLkTiA" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/2306283625637305256?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/2306283625637305256?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/XSwYZBLkTiA/thoughts-on-early-computing-history_21.html" title="Thoughts on early computing history, addendum" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/05/thoughts-on-early-computing-history_21.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUNRXs5eyp7ImA9WhZVEEw.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-4581224212667558339</id><published>2011-05-21T11:52:00.014-04:00</published><updated>2011-05-21T17:11:34.523-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-21T17:11:34.523-04:00</app:edited><title>Thoughts on early computing history</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-6xX01Y3VopI/TdfgDB9mY7I/AAAAAAAAAhE/shOgMlHLZic/s1600/Alan_Turing_photo.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 400px;" src="http://4.bp.blogspot.com/-6xX01Y3VopI/TdfgDB9mY7I/AAAAAAAAAhE/shOgMlHLZic/s400/Alan_Turing_photo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5609198203584275378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When you look back at the major milestones in computing history, we moved quickly.  We went from abstract models of computing to stored-program computers in a &lt;br /&gt;decade or less.  It was truly amazing.&lt;br /&gt;&lt;br /&gt;1903 - Alonzo Church was born in Washington, D.C. (USA)&lt;br /&gt;1928 - The Entscheidungsproblem decision problem was proposed by David Hilbert  &lt;br /&gt;1936 - Church publishes &lt;span style="font-style:italic;"&gt;"An Unsolvable Problem of Elementary Number Theory"&lt;/span&gt;, Church's Thesis [1].  It is a paper on untyped lambda calculus. American Journal of Mathematics, Volume 58, No. 2. (Apr., 1936)&lt;br /&gt;1936 - Alan Turning publishes a paper on an abstract machine , &lt;span style="font-style:italic;"&gt;On Computable Numbers, with an Application to the Entscheidungsproblem' Proceedings of the London Mathematical Society, Series 2, 42 (1936-37)&lt;/span&gt;.  He proposed the concept of the stored-program. &lt;br /&gt;1936 - 1938 - Alan Turing studies under Alonzo Church&lt;br /&gt;1937 - John von Neumann recommends Alan Turing for Fellowship at Princeton.&lt;br /&gt;1938 - Alan Turing receives Ph.D from Princeton&lt;br /&gt;1946 - Alan Turing presents a paper on the stored-program computer (Automatic Computing Engine).&lt;br /&gt;1937+ - John von Neumann gains knowledge from Alan Turing's papers but Turing was not directly related to the development of ENIAC.&lt;br /&gt;1943 - 1946 - Creation of ENIAC (Electronic Numerical Integrator And Computer).  Note: ENIAC was not a stored-program computer.&lt;br /&gt;1944 - John von Neumann became involved with ENIAC &lt;br /&gt;1945 - John von Neumann publishes paper on Electronic Discreet Variable Computer (EDVAC)&lt;br /&gt;1948 - Manchester Mark I developed at Manchester University, first stored-program computer&lt;br /&gt;1949-1960 - Early stored computers were created, some of the based on von Neumann architecture.&lt;br /&gt;1938 - Donald Knuth was born&lt;br /&gt;1957 - Donald Knuth had access to a computer. &lt;span style="font-style:italic;"&gt; "I saw my first computer in 1957, which is pretty late in the history game as far as computers are concerned.  There were about 2000 programmers in the entire world"&lt;/span&gt;&lt;br /&gt;1963 - Donald Knuth began work on the &lt;span style="font-style:italic;"&gt;Art of Computer Programming&lt;/span&gt;.&lt;br /&gt;1973 - C programming language appeared.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: I presented milestones but some of these events were not directly related.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Image of Alan Turing: "It is believed that the use of this image may qualify as fair use under United States copyright law. Other use of this image, on Wikipedia or elsewhere, may be copyright infringement"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[1] "INTRODUCTION Alonzo Church: Life and Work"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-4581224212667558339?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FVpdASzb_KitWFchrBhyJZTnQaM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FVpdASzb_KitWFchrBhyJZTnQaM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FVpdASzb_KitWFchrBhyJZTnQaM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FVpdASzb_KitWFchrBhyJZTnQaM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/xupPi7FRH3Y" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/4581224212667558339?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/4581224212667558339?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/xupPi7FRH3Y/thoughts-on-early-computing-history.html" title="Thoughts on early computing history" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-6xX01Y3VopI/TdfgDB9mY7I/AAAAAAAAAhE/shOgMlHLZic/s72-c/Alan_Turing_photo.jpg" height="72" width="72" /><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/05/thoughts-on-early-computing-history.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUHRXo5eip7ImA9WhRWFEU.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-1983338719080019591</id><published>2011-05-07T20:48:00.011-04:00</published><updated>2012-01-01T23:57:14.422-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-01T23:57:14.422-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ai" /><category scheme="http://www.blogger.com/atom/ns#" term="thoughts" /><category scheme="http://www.blogger.com/atom/ns#" term="research" /><category scheme="http://www.blogger.com/atom/ns#" term="software" /><category scheme="http://www.blogger.com/atom/ns#" term="intelligence" /><title>Thoughts on Artificial Life, AI and AI reboot</title><content type="html">&lt;a href="http://www.technologyreview.com/computing/37525/?p1=A3&amp;amp;a=f"&gt;"Unthinking Machines Artificial intelligence needs a reboot, say experts."&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
There are some issues with a top-down approach to automatic artificial complex behavior.  The problem with modeling the brain or the brain's neural network is that you are just looking at the end result of millions of years of evolution. We should understand how the human brain became relevant and came to be and then we will find that other animals also have brains and exhibit complex behaviors. Simple animals have smaller brains but we can look how those systems evolved over time. You could go that route, completely model and understand the brain but you will still end up with issues. You will have a broken, less than accurate copy of the brain but then you still are missing other components of the human body. The heart, the nervous system, the lungs, millions of years of evolution. Scientists look at the brain and say, "Hey, that is pretty cool, let's model that". I say, "Hey the earth's biosphere is pretty cool. How did I and the rest of the other intelligent animals get there, let's model that". They are looking at intelligence. But what is intelligence? Why are humans more intelligent than monkeys? Or Crows? Or Dolphins? In reality, they aren't THAT much more intelligent. And even if humans are a lot more intelligent, a lot of other animals have the same hardware. So if we understand the system that created...animals and their hardware, I think that would be more interesting than look at just one animal "brain" and trying to copy that. What parts do you model/copy? No matter how accurate you model the brain, scientists will always play catch up trying to understand the interesting parts of the human brain. And then after 20 years of copying the brain's functionality, we still may have to copy other aspects of the human body that give the brain life. &lt;br /&gt;
&lt;br /&gt;
We need a true bottom up approach that looks at biologically inspired entities if we truly want to understand emergent phenomena.  Examine the the microbiology level and chemical reactions and move up. A truly bottom-up approach that looks at the biology of basic organisms and models basic organisms, starting from bacteria to cells is the way to go. And of top of the biology, I would look at inorganic matter and how that relates to organic matter. And then I would look at the evolution of these biologically inspired systems. You could play experiments, where did organic matter come from on earth? We should understand DNA, RNA, mRNA, cells, single celled organisms, water, on and on. Even those basic components are kind of interesting. Combine DNA, cells and other matter together and you have a complex entity.  Understanding the reasons for those components and how they interact is the way to go. Evolve systems that generate those interactions. I would model simple creatures, evolve those creatures and then create an environment for those creatures to exist, have them interact and then evolve a system that has some form of brain..or multiple brains. &lt;br /&gt;
&lt;br /&gt;
Even the term "artificial intelligence" leads people in the wrong direction and needs a reboot. I like "autonomous artificial adaptability". We want creatures that adapt to the world around them and do so at their own direction. The concept of intelligence implies "human brain intelligence". Humans are more intelligent than pigs. But pigs are WAY more intelligent than trees. That leap in adaptability is interesting and worth looking at. Think about it this way, the unintelligent parts of the human body are fascinating. And who is to say that there are creatures in the universe that are infinitely more intelligent than humans? We have one brain, is it possible that a creature could have a million brains that all operate independently of one another. We only use a small capacity of our brains. Is it possible a creature could use 100% of their brain capacity.  Bacteria and plant life are not normally considered intelligent but they do adapt to the earth's changes conditions.  Human beings are far more interesting than bacteria but that doesn't necessarily mean that replicating human brain intelligence doesn't have to be the ultimate goal for strong AI.   &lt;br /&gt;
&lt;br /&gt;
At the heart of strong AI will be computational biology, whether the artificially evolved creature has something similar to a brain or neuron cells is irrelevant to the problem, you can still create adaptable, seemingly intelligent creatures with artificial biology through a controlled artificial environment. That is why I think the AI field is missing, the focus has always been the brain. Even if you create an artificial brain that is similar to the human brain, you have the problem of replicating the signal processing mechanisms of the eyes and ears. You have an issue with creating pain receptors and other bits of information that are fed into the brain. Even if you can feed the right bits to the brain, you will hit the next philosophical question, what is this autonomous creature supposed to do? Everything that a person does is ultimately tied to their evolutionary inspired purpose. You eat because you are hungry, the human is hungry. You create societies to make it easier to survive for other humans. All of the adaptability of the human brain and the human are kind of tied to its evolutionary purpose. What will be the goal of this artificial brain? You still have the same problem with a biologically inspired, evolutionary inspired artificial systems but you can control the evolutionary constraints. Maybe the creature doesn't need a brain? But that is OK, it still may have interesting properties that encourage its survival. The computer science AI research community has tunnel vision as it relates to AI, "the human brain, the brain, the brain". If you stop and think, "what is the brain? what is a human?". We are really a collection of cells and bacteria, all wrapped in a nice protective package. Most of the individual cells in the human body are interesting on their own, the brain cells are not that much more interesting than the skin cells or blood cells or anything else.  &lt;br /&gt;
&lt;br /&gt;
With most software engineering and even most AI research, the developer is required to program the behavior into the system. The developer is careful to program a response to all known inputs. Even if you model the brain and create a close enough model of the brain, the puppet master will still have a problem of programming and training inputs that only this particular brain can respond to. You have reached the zenith of AI but now you have hit a wall trying to train and feed information to the brain. You are essentially programming the brain with known inputs. With a good biologically inspired model that evolves behavior and operates autonomously and completely independent of the "creator", you don't program any behavior (as much as you can). If you run the system 20, 100 years, we may not know what type of behavior emerges. These systems should have a start button but no kill switch. Killing the system means you start all over and completely new behavior emerges.  In theory, The brain model and the bottom-up biological model are similar, you expect emergent behavior.  Evolutionary design creates more emergent behavior than starting at the brain and watching what happens next.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\[&lt;br /&gt;
\begin{align}&lt;br /&gt;
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}&lt;br /&gt;
{\partial t} &amp;amp; = \frac{4\pi}{c}\vec{\mathbf{j}} \\&lt;br /&gt;
\nabla \cdot \vec{\mathbf{E}} &amp;amp; = 4 \pi \rho \\&lt;br /&gt;
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} &amp;amp; = \vec{\mathbf{0}} \\&lt;br /&gt;
\nabla \cdot \vec{\mathbf{B}} &amp;amp; = 0&lt;br /&gt;
\end{align}&lt;br /&gt;
\]&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Resources&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
[1] &lt;a href="http://en.wikipedia.org/wiki/Avida"&gt;http://en.wikipedia.org/wiki/Avida&lt;/a&gt; - Artificial life software platform&lt;br /&gt;
&lt;br /&gt;
[2] &lt;a href="http://en.wikipedia.org/wiki/Artificial_life"&gt;http://en.wikipedia.org/wiki/Artificial_life &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[3] &lt;a href="http://en.wikipedia.org/wiki/Christopher_Langton"&gt;http://en.wikipedia.org/wiki/Christopher_Langton&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[4] &lt;a href="http://code.google.com/p/ainotebook/downloads/detail?name=bottom-alife-demo.zip"&gt;googlecode/bottom-alife-demo.zip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
-- Ron Paul 2012&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-1983338719080019591?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/U1paJRYG8ts9g0_Yn4oD_dXriyg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U1paJRYG8ts9g0_Yn4oD_dXriyg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/U1paJRYG8ts9g0_Yn4oD_dXriyg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U1paJRYG8ts9g0_Yn4oD_dXriyg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/iDO_y_s82Tg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/1983338719080019591/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=1983338719080019591" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1983338719080019591?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/1983338719080019591?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/iDO_y_s82Tg/thoughts-on-artificial-life-ai-and-ai.html" title="Thoughts on Artificial Life, AI and AI reboot" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/05/thoughts-on-artificial-life-ai-and-ai.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYCRH89fyp7ImA9WhZXE00.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-4631253420627268139</id><published>2011-05-01T22:51:00.002-04:00</published><updated>2011-05-01T23:49:25.167-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-01T23:49:25.167-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="osama" /><title>Confirmed Sources, Osama bin Laden is dead</title><content type="html">It has just been reported, Osama bin Laden is dead.  Now, I can stop looking for him.&lt;br /&gt;&lt;br /&gt;"Justice has been done" -- Obama&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-4631253420627268139?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/88kYh3G6F-T3gXlX84tffBUOWZs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/88kYh3G6F-T3gXlX84tffBUOWZs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/88kYh3G6F-T3gXlX84tffBUOWZs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/88kYh3G6F-T3gXlX84tffBUOWZs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/KXvzw_BicRw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/4631253420627268139/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=4631253420627268139" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/4631253420627268139?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/4631253420627268139?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/KXvzw_BicRw/confirmed-sources-osama-bin-laden-is.html" title="Confirmed Sources, Osama bin Laden is dead" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/05/confirmed-sources-osama-bin-laden-is.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEHRnkyfCp7ImA9WhdVEEw.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-410085919186352421</id><published>2011-05-01T22:11:00.006-04:00</published><updated>2011-09-14T11:20:37.794-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-14T11:20:37.794-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="unittesting" /><category scheme="http://www.blogger.com/atom/ns#" term="religion" /><title>Unit Testing / Extreme Programming</title><content type="html">Unit Testing advocates use language that you hear from religious advocates.&lt;br /&gt;
&lt;br /&gt;
"You can't write software without unit tests".  "You must unit test your code". &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;That sounds a lot like:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-style: italic;"&gt;"You will go to hell if you sin".  "If you don't accept Jesus as your lord and savior, you will go to hell".&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Where does that leave us?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You can write software without unit tests.  A lot of software has and will be written without unit tests.  No human will go to hell for not accepting Jesus as their lord savior.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Same question, where does that leave us?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I may have advocated the use of unit tests.  I think the concept is beneficial.  BUT there are a couple of issues.  Developers not writing unit tests is a big one (I was thinking about creating a spreadsheet, software from github and sourceforge, projects that have unit tests and those that don't).  Why don't developers write unit tests?  Because they don't have to.  That is the main reason.  You need a compiler to compile code for languages that need to be compiled.  You need some runtime.  You need to your code.  But you aren't required to write unit tests in order to execute your code.&lt;br /&gt;
&lt;br /&gt;
So, maybe we need some form of system that checks for unit tests before allowing your code to run.  In my mind, I kind of feel that unit tests are an extra compilation step or runtime step.  Maybe if that sort of system was in place, we might see developers wanting to write more unit tests.  I also want more information from the unit tests.  It is great to know if the test passed or failed but I would like to see similar possible inputs fed into the unit testing systems and the output (possibly with a visual graph).  QuickCheck and ScalaCheck are example tools that automate unit testing.&lt;br /&gt;
&lt;br /&gt;
And like with most with religious practices, sometimes the underlying message is important but the message is delivered improperly.&lt;br /&gt;
&lt;br /&gt;
If I say: &lt;span style="font-style: italic;"&gt;"Write unit tests or else"&lt;/span&gt;. If developers don't see a need or want to write unit tests, they won't.  So telling developers to write unit tests doesn't really hold weight.&lt;br /&gt;
&lt;br /&gt;
Now, I would like to hear, &lt;span style="font-style: italic;"&gt;"Write unit tests in order to isolate this piece of code and test reasonable inputs and check the output of the tests.  This is a core class in our library and we must validate the possible inputs and expected outputs.  It will be interesting to look at this particular module, visualize the possible inputs from the calling client code and see what happens.  Plus, isolating this particular component and testing it takes less time than running the entire system as a whole"&lt;/span&gt;.  That blurb won't make for a very good headline at an extreme programming conference but I think it is gets the point across, more so than, "Write unit tests or else".  But my overly verbose blurb on unit testing still doesn't force developers to write unit tests.  Even those that are well versed on testing will not write unit tests when under some critical deadline.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;In Summary&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I think the concept behind unit tests is beneficial but I still feel that implementation systems behind unit testing are still lacking.  This is one possible reason that developers don't always write them (jUnit is one example of a system that lacks).&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Response to critics of this post?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I have noticed if you step on any person's religion, critics tend to come at you from all directions.  I don't mean to step on the unit testing religion.  I am not advocating to stop writing unit tests.  But I do want to point out that software is written without them.  Maybe if we create a platform that forces the developer to write unit tests as part of some compilation or build step, then developers will start thinking about the practice.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-style: italic;"&gt;How do you know that developers aren't writing unit tests?&lt;/span&gt;  If it is possible not to write unit tests, then it is possible that developers won't write them.  Also, I tend to want to include the edge cases of software development when talking about unit tests.  Are people writing unit tests for embedded software development?  Linux device driver development?  Any Linux software development? Complex J2EE server environments?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-410085919186352421?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8X-7f6x7PNvZht-zxX9-aVJGxoY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8X-7f6x7PNvZht-zxX9-aVJGxoY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8X-7f6x7PNvZht-zxX9-aVJGxoY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8X-7f6x7PNvZht-zxX9-aVJGxoY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/Ar7IMdFEqHU" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/410085919186352421?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/410085919186352421?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/Ar7IMdFEqHU/unit-testing-extreme-programming.html" title="Unit Testing / Extreme Programming" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/05/unit-testing-extreme-programming.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UDQH87eyp7ImA9WhZQFU8.&quot;"><id>tag:blogger.com,1999:blog-6469693320219923273.post-833329627235382376</id><published>2011-04-22T23:22:00.003-04:00</published><updated>2011-04-22T23:27:51.103-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-22T23:27:51.103-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lohan" /><title>Non-technical and more: Lindsay Lohan was sent to jail recently</title><content type="html">Lindsay Lohan was sent to jail briefly and then posted bond.  She was detained after the judge sentenced her to 120 days of jail.  But she posted bond and is supposed to return in early May.&lt;br /&gt;&lt;br /&gt;How many days will she actually spend in jail? 120?  2?  No this blog was not hijacked.  I find this interesting because I want to see how many ways Lohan and her attorneys can circumvent the real law so that she doesn't go to jail.&lt;br /&gt;&lt;br /&gt;Some people actually go to jail and are detained for periods of time longer than their actual sentencing.  Lohan may go to jail for a fraction of her actual 120 days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6469693320219923273-833329627235382376?l=berlinbrowndev.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/biM7A3Yy2OQiXn49IMDHU08Ucq4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/biM7A3Yy2OQiXn49IMDHU08Ucq4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/biM7A3Yy2OQiXn49IMDHU08Ucq4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/biM7A3Yy2OQiXn49IMDHU08Ucq4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/BerlinBrownAndSoftwareDevelopment/~4/9Nx2OioJJWc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://berlinbrowndev.blogspot.com/feeds/833329627235382376/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6469693320219923273&amp;postID=833329627235382376" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/833329627235382376?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6469693320219923273/posts/default/833329627235382376?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/BerlinBrownAndSoftwareDevelopment/~3/9Nx2OioJJWc/non-technical-and-more-lindsay-lohan.html" title="Non-technical and more: Lindsay Lohan was sent to jail recently" /><author><name>Berlin Brown</name><uri>https://profiles.google.com/106721302704615680699</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-LJenpITcd6E/AAAAAAAAAAI/AAAAAAAAAg0/C32c_pGbCTc/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://berlinbrowndev.blogspot.com/2011/04/non-technical-and-more-lindsay-lohan.html</feedburner:origLink></entry></feed>

