<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2578578324781066638</id><updated>2012-02-03T14:29:20.064-08:00</updated><category term='WWW::Declarative'/><category term='programming idioms'/><category term='sysadmin'/><category term='Lucene'/><category term='Wt'/><category term='compilers'/><category term='lexicon'/><category term='Color::Declarative'/><category term='malware'/><category term='data parsing'/><category term='OMeta'/><category term='parsing'/><category term='scaling'/><category term='assertion'/><category term='algorithms'/><category term='link dumps'/><category term='PDF::Declarative'/><category term='structured text'/><category term='AI'/><category term='static code analysis'/><category term='spam'/><category term='HTML::TreeBuilder'/><category term='expectation'/><category term='Flex'/><category term='rhetoric'/><category term='closures'/><category term='calculated field'/><category term='wxdtut'/><category term='code generation'/><category term='scripting'/><category term='visualization'/><category term='WWW::Mechanize'/><category term='pattern/macro/template system'/><category term='RDF'/><category term='CSS'/><category term='Javascript'/><category term='UTF-8'/><category term='toolchain'/><category term='UX'/><category term='genetic algorithms'/><category term='job sources'/><category term='graphics'/><category term='best practices'/><category term='math manipulation'/><category term='text analysis'/><category term='Hofstadter'/><category term='philosophy'/><category term='APIs'/><category term='Unicode'/><category term='business processes'/><category term='Windows 7 gadgets'/><category term='todo list manager'/><category term='TeX'/><category term='design'/><category term='actions'/><category term='Hookbox'/><category term='system-level design'/><category term='coffeescript'/><category term='crypto'/><category term='function descriptor'/><category term='Decl'/><category term='Python'/><category term='Depatenting'/><category term='Unix'/><category term='education'/><category term='Email'/><category term='Twilio'/><category term='Wx::DefinedUI'/><category term='UI design'/><category term='perl'/><category term='AppEngine'/><category term='openlogos'/><category term='template'/><category term='Lisp'/><category term='intelligent content'/><category term='coroutines'/><category term='tasks'/><category term='gamification'/><category term='SDL'/><category term='concept'/><category term='Processing'/><category term='system architecture'/><category term='map-reduce'/><category term='SMT'/><category term='graph databases'/><category term='Win32::Word::Declarative'/><category term='declarative'/><category term='dataflow'/><category term='math'/><category term='website components'/><category term='NLP'/><category term='diagramming'/><category term='programming process'/><category term='text-to-speech'/><category term='deployment'/><category term='programming examples'/><category term='music'/><category term='code snippets'/><category term='open source target'/><category term='libraries'/><category term='databases'/><category term='Octave'/><category term='reactive programming'/><category term='Canvas'/><category term='meta'/><category term='infrastructure'/><category term='open government'/><category term='interaction'/><category term='Ruby'/><category term='telephony'/><category term='interactive models'/><category term='TermL'/><category term='target applications'/><category term='transaction patterns'/><category term='programming practice'/><category term='project management'/><category term='sproggler'/><category term='machine learning'/><category term='image processing'/><category term='Mechanical Turk'/><category term='scheduling'/><category term='Parse::Indented'/><category term='code katas'/><category term='data mining'/><category term='SQL'/><category term='finance'/><category term='unit'/><category term='poker'/><category term='CRM114'/><category term='facial recognition'/><category term='syntax'/><category term='Prolog'/><category term='understanding systems'/><category term='boilerplate'/><category term='data journalism'/><category term='binary parsing'/><category term='big data'/><category term='HTTP'/><category term='System::Declarative'/><category term='comparable systems'/><category term='Flash'/><category term='challenges'/><category term='Enron corpus'/><category term='linear algebra'/><category term='DSL'/><category term='openFrameworks'/><category term='macro'/><category term='Wx::Declarative'/><category term='CPAN'/><category term='simulation'/><category term='self-description'/><category term='code understanding'/><category term='threads'/><category term='HTML::Declarative'/><category term='CRAN'/><category term='refactoring'/><category term='aesthetics'/><category term='magic variable'/><category term='Rails'/><category term='semantic web'/><category term='GUI frameworks'/><category term='Web frameworks'/><category term='target domains'/><category term='aside'/><category term='quant'/><category term='UML'/><category term='XML'/><category term='language'/><category term='sentiment analysis'/><category term='state'/><category term='technology trends'/><category term='forensics'/><category term='Mail::Declarative'/><category term='code quality'/><category term='HTML'/><category term='mental models'/><category term='state machines'/><category term='components'/><category term='requirements'/><category term='testing'/><category term='code analysis'/><category term='automation'/><category term='crowdsourcing'/><category term='Despammed'/><category term='OpenMath'/><category term='agent'/><category term='informal logic'/><category term='web design'/><category term='cognate tasks'/><category term='node.js'/><category term='Angry Birds'/><category term='text generation'/><category term='workflow'/><category term='debugging'/><category term='econophysics'/><category term='to do'/><category term='pattern source'/><category term='software maintenance'/><category term='data scraping'/><category term='photo archive'/><category term='C++'/><category term='Padre'/><category term='Startup::Declarative'/><category term='WWW::Publisher'/><category term='Class::Declarative'/><category term='domain'/><category term='layout'/><category term='programming languages'/><category term='file'/><category term='Android'/><category term='natural-language programming'/><category term='symbolic unit'/><category term='HTML5'/><category term='presentations'/><category term='CLI'/><category term='research'/><category term='php'/><category term='patterns'/><category term='checklists'/><category term='programming'/><category term='file manager site'/><category term='metaprogramming'/><category term='games'/><category term='expression'/><category term='mapping'/><category term='reasoning'/><category term='Java'/><category term='NoSQL'/><category term='visual programming'/><category term='software component database'/><category term='mode'/><category term='pattern matching'/><category term='translation organizer'/><category term='semantic programming'/><category term='FARG'/><category term='semantic context'/><category term='abstraction'/><category term='functional programming'/><category term='news scraper'/><category term='3D graphics'/><category term='e-discovery'/><category term='parser'/><category term='assembly language'/><category term='REPL'/><category term='error checking'/><category term='R'/><title type='text'>Semantic programming</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default?start-index=101&amp;max-results=100'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>765</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1829178813811758997</id><published>2012-02-03T13:56:00.000-08:00</published><updated>2012-02-03T13:59:57.025-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source target'/><category scheme='http://www.blogger.com/atom/ns#' term='node.js'/><title type='text'>Open-source target: Bookmarkly</title><content type='html'>A quick node.js &lt;a href="https://github.com/dangrossman/Bookmarkly"&gt;bookmarking site example&lt;/a&gt;, open-sourced by Dan Grossman. [&lt;a href="http://news.ycombinator.com/item?id=3548264"&gt;HNN&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1829178813811758997?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1829178813811758997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/02/open-source-target-bookmarkly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1829178813811758997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1829178813811758997'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/02/open-source-target-bookmarkly.html' title='Open-source target: Bookmarkly'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3470512414545440931</id><published>2012-02-03T13:55:00.000-08:00</published><updated>2012-02-03T13:56:32.071-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>JavaScript fractal viewer</title><content type='html'>&lt;a href="http://jblangston.com/xaos/"&gt;YAJSFW&lt;/a&gt;.  This one's very smooth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3470512414545440931?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3470512414545440931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/02/javascript-fractal-viewer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3470512414545440931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3470512414545440931'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/02/javascript-fractal-viewer.html' title='JavaScript fractal viewer'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4121354052748534514</id><published>2012-02-03T09:39:00.001-08:00</published><updated>2012-02-03T09:59:16.834-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mental models'/><title type='text'>Mental models of software</title><content type='html'>While hacking (just a very little) on the &lt;a href="http://stenoxlation.blogspot.com/search/label/fly"&gt;Fly stenography&lt;/a&gt; tutorial in Python, getting it to run on Windows, I was musing a little bit about &lt;i&gt;just how I do that&lt;/i&gt;.  How do I get from a general description of task ("Make this run on Windows.") to actually making the changes to the code needed to get things running?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Clearly, the initial thing is to build a mental model of the software, then - guided by that model - look at the specific parts of the code that might be problematic.  But what does that mental model look like?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Embarrassingly, I haven't dedicated any time at all to researching the literature in mental models of programming, despite having written a blog called &lt;i&gt;Semantic Programming&lt;/i&gt; for two years.  A good place to start might be with &lt;a href="http://www.cs.cmu.edu/~tlatoza/Maintaining%20Mental%20Models%20-%20A%20Study%20of%20Developer%20Work%20Habits.pdf"&gt;this paper&lt;/a&gt; (CMU and Microsoft Research) and its citations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A brief sketch of the mental model I've built of Fly might be something like this:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The "main" file sets up the UI, then starts the thread; the thread starts the Plover listener and then goes into a standard Pygame loop.&lt;/li&gt;&lt;li&gt;During each turn around the loop, Fly checks up on all the parts of the UI, checks and handles keyboard and mouse events, and redraws the UI appropriately.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;... You know, writing it all down would be impossible.  (Which is why nobody ever does.)  It is literally easier to just poke around in the code for a day, which is essentially the problem with programming.  How do you get from code to a &lt;i&gt;simulated &lt;/i&gt;mental model?  That's probably more important.&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/2578578324781066638-4121354052748534514?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4121354052748534514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/02/mental-models-of-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4121354052748534514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4121354052748534514'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/02/mental-models-of-software.html' title='Mental models of software'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8272883864240912486</id><published>2012-01-31T20:22:00.000-08:00</published><updated>2012-01-31T20:24:08.572-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><title type='text'>Codecademy now accepting lessons from the masses</title><content type='html'>They support lessons in Javascript, Python, and Ruby; &lt;a href="http://techcrunch.com/2012/01/30/codecademy-becomes-a-platform-now-anyone-can-write-programming-tutorials/"&gt;this might not be a bad place&lt;/a&gt; to earn some street cred.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8272883864240912486?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8272883864240912486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/codecademy-now-accepting-lessons-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8272883864240912486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8272883864240912486'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/codecademy-now-accepting-lessons-from.html' title='Codecademy now accepting lessons from the masses'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5923391597108323661</id><published>2012-01-31T20:20:00.001-08:00</published><updated>2012-01-31T20:22:10.747-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming practice'/><title type='text'>Productivity technique</title><content type='html'>So it &lt;a href="http://blog.idonethis.com/post/16736314554/silicon-valleys-productivity-secret"&gt;turns out that a lot of Silicon Valley companies&lt;/a&gt; use a weekly review of tasks accomplished and goals set as a productivity tool.  That's kinda neat and could easily be used in personal projects as well.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd go so far as to say that expression of this type of goal/achievement could be a valuable part of the documentation process for any software.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5923391597108323661?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5923391597108323661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/productivity-technique.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5923391597108323661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5923391597108323661'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/productivity-technique.html' title='Productivity technique'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7154366085240019393</id><published>2012-01-27T12:08:00.000-08:00</published><updated>2012-01-27T12:11:22.051-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='big data'/><title type='text'>Big Data links</title><content type='html'>A few things about big data:&lt;div&gt;&lt;ul&gt;&lt;li&gt;A book on &lt;a href="http://manning.com/marz/"&gt;best practices&lt;/a&gt; by Marz and Ritchie.  You can &lt;a href="http://manning.com/marz/BD_meap_ch01.pdf"&gt;pre-read&lt;/a&gt; it as well.  I'm thinking about it. [&lt;a href="http://news.ycombinator.com/item?id=3444300"&gt;hnn thread&lt;/a&gt;]&lt;/li&gt;&lt;li&gt;The &lt;a href="http://www.datasciencetoolkit.org/about"&gt;data science toolkit&lt;/a&gt;, a specialized Linux VM for download with lots of juicy databases and tools preinstalled and a common API.&lt;/li&gt;&lt;li&gt;Real-time feed processing with &lt;a href="http://www.datasalt.com/2012/01/real-time-feed-processing-with-storm/"&gt;Storm&lt;/a&gt;. Storm abstracts out the queue-workers pattern into an infrastructure component.  Interesting stuff.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7154366085240019393?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7154366085240019393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/big-data-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7154366085240019393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7154366085240019393'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/big-data-links.html' title='Big Data links'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8526217241228873325</id><published>2012-01-26T19:58:00.000-08:00</published><updated>2012-01-26T19:59:48.134-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming practice'/><title type='text'>Bash scripts</title><content type='html'>Interesting article on some techniques for &lt;a href="http://www.davidpashley.com/articles/writing-robust-shell-scripts.html"&gt;writing bash shell scripts&lt;/a&gt;.  I'm wondering if this would be an interesting target for Decl, actually.  Maybe in the deployment domain?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8526217241228873325?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8526217241228873325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/bash-scripts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8526217241228873325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8526217241228873325'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/bash-scripts.html' title='Bash scripts'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-2577174612404048292</id><published>2012-01-26T19:41:00.000-08:00</published><updated>2012-01-26T19:42:42.937-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><title type='text'>Finding resources on the Semantic Web</title><content type='html'>&lt;a href="http://terse-words.blogspot.com/2012/01/get-real-data-from-semantic-web-finding.html"&gt;SparQL and the Semantic Web&lt;/a&gt;, and finding resources using semantic markup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-2577174612404048292?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/2577174612404048292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/finding-resources-on-semantic-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2577174612404048292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2577174612404048292'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/finding-resources-on-semantic-web.html' title='Finding resources on the Semantic Web'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3464472409867847934</id><published>2012-01-26T19:39:00.000-08:00</published><updated>2012-01-26T19:41:18.422-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='econophysics'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><title type='text'>Econophysics</title><content type='html'>Did you know econophysics existed?  I didn't, but now I want to be an econophysicist when I grow up.  It involves the study of large populations of (simulated) actors in an economic framework, like this: &lt;a href="http://www.technologyreview.com/blog/arxiv/27512/"&gt;cartels are an epiphenomenon&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So cool!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3464472409867847934?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3464472409867847934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/econophysics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3464472409867847934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3464472409867847934'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/econophysics.html' title='Econophysics'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4025501130024314509</id><published>2012-01-26T19:36:00.000-08:00</published><updated>2012-01-26T19:37:28.189-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scaling'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Scaling PHP</title><content type='html'>Now that Oracle owns MySQL, MySQL-related articles are at Oracle.  It's weird.  Anyway, here's one about &lt;a href="http://www.oracle.com/technetwork/articles/dsl/white-php-part1-355135.html"&gt;scaling PHP/MySQL applications&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4025501130024314509?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4025501130024314509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/scaling-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4025501130024314509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4025501130024314509'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/scaling-php.html' title='Scaling PHP'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-6848109011455382075</id><published>2012-01-26T18:11:00.000-08:00</published><updated>2012-01-26T18:22:37.359-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='semantic programming'/><category scheme='http://www.blogger.com/atom/ns#' term='programming process'/><title type='text'>A couple of posts about hating programming</title><content type='html'>A post last week, "&lt;a href="http://jonbho.net/2012/01/24/i-want-to-fix-programming/"&gt;I want to fix programming&lt;/a&gt;," suggests that declarative programming (keeping around the "why" of what you're doing instead of the "how") would be a step up from what we're doing, and adds a couple of neat magic keywords that indicate how it might be done.  Color me unconvinced, though, because just saying what you're doing and hoping the compiler is going to get it right might require a little too much from the compiler. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;His specific case is a sort algorithm - he just specifies what he wants from the sort, and the compiler would do the sort.  Well, I still think the answer there is to tell the compiler: "sort this stuff".  Now I don't have to look at his constraints and say, "Well, wait a minute, that's a sort."  If I were talking to a colleague, I wouldn't say, "All the elements of this list should match those in the other, with the constraint that each element in the list is less than the one after it."  I'd say, "We'll sort this list."  Then I'd look up a sort algorithm, and later, down the road, if it turned out that sort was a performance bottleneck, I'd maybe look for a better sort algorithm.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just specifying the constraints is not enough.  You're &lt;i&gt;still&lt;/i&gt; losing information if you don't have a machine-readable set of semantics of what you're doing.  (I say that as though this was already achievable with today's tools, when of course it mostly isn't, but you see my point.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This week, we have a response, "&lt;a href="http://evincarofautumn.blogspot.com/2012/01/yep-programming-is-borked.html"&gt;Yup, programming is borked&lt;/a&gt;," and makes the cogent point that formalization of requirements is the key - and then still goes off the rails with brand-new syntax that's not human language or anything like it.  He's got some interesting ideas, and is looking at authoring systems for non-programmers, which I find pretty fascinating, but I think he's still getting lost somewhere along the way.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I remain convinced that a hierarchical set of semantic views, &lt;i&gt;preserved in the final program&lt;/i&gt;, is the way to go.  Each part of the program not only has formal syntax defining it, but a conceptual framework indicating what it does, why it's done that way, changes that were made along the way, related tests (which can be seen as constraints) or even constraints (which can be seen as tests) - the whole ball of wax is right there and amenable to software manipulation.  Changed requirements can then drill down right to the code that must be changed, and with sufficient sophistication, you could imagine that tools could make suggestions or even rewrite the formal syntax to conform to the requirements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's the goal.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-6848109011455382075?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/6848109011455382075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/couple-of-posts-about-hating.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6848109011455382075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6848109011455382075'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/couple-of-posts-about-hating.html' title='A couple of posts about hating programming'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7379232244281752482</id><published>2012-01-25T19:36:00.000-08:00</published><updated>2012-01-25T19:38:28.027-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='file manager site'/><title type='text'>Task: file upload/download and manipulation center</title><content type='html'>Here's a thought: I keep running into various reasons to have a place where you could upload a file and have various tools run on it.  Given the closure of MegaUpload, just the ability to share files within workgroups would be a useful spinoff of that.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So that's now an official task: write this platform.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7379232244281752482?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7379232244281752482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/task-file-uploaddownload-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7379232244281752482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7379232244281752482'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/task-file-uploaddownload-and.html' title='Task: file upload/download and manipulation center'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5020018669952988718</id><published>2012-01-20T21:25:00.001-08:00</published><updated>2012-01-21T15:38:13.996-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='text analysis'/><title type='text'>Google Code search algorithm</title><content type='html'>This is a &lt;a href="http://swtch.com/~rsc/regexp/regexp4.html"&gt;pretty neat article&lt;/a&gt; by the guy that wrote the search engine for Google Code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5020018669952988718?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5020018669952988718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/google-code-search-algorithm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5020018669952988718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5020018669952988718'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/google-code-search-algorithm.html' title='Google Code search algorithm'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7104629281081576694</id><published>2012-01-19T21:28:00.000-08:00</published><updated>2012-01-19T21:51:03.106-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><title type='text'>Visualizing sorting algorithms with Python and Cairo</title><content type='html'>Here's a nice article about &lt;a href="http://corte.si//posts/code/visualisingsorting/index.html"&gt;visualizing sorting algorithms&lt;/a&gt; [&lt;a href="https://github.com/cortesi/sortvis"&gt;github&lt;/a&gt;] - but I like the fact that the graphics generated are really nice-looking.  They use the &lt;a href="http://cairographics.org/"&gt;Cairo graphics engine&lt;/a&gt;, which I clearly need to examine more closely.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;More recently, the same guy did some &lt;a href="http://corte.si/posts/visualisation/malware/index.html"&gt;visualizations of malware&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7104629281081576694?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7104629281081576694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/visualizing-sorting-algorithms-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7104629281081576694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7104629281081576694'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/visualizing-sorting-algorithms-with.html' title='Visualizing sorting algorithms with Python and Cairo'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4102501727111935448</id><published>2012-01-19T20:33:00.001-08:00</published><updated>2012-01-19T20:34:19.077-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><title type='text'>Conficker</title><content type='html'>Well, now I know when I was laying down these old bookmarks: ReadWriteWeb wrote about the &lt;a href="http://www.readwriteweb.com/archives/its_alive_conficker_wakes_up_and_now_it_has_a_business_model.php"&gt;Conficker&lt;/a&gt; virus in 2009.  I toss this in here because malware is fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4102501727111935448?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4102501727111935448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/conficker.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4102501727111935448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4102501727111935448'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/conficker.html' title='Conficker'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3301976513096014384</id><published>2012-01-19T20:14:00.000-08:00</published><updated>2012-01-19T20:25:56.082-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aesthetics'/><category scheme='http://www.blogger.com/atom/ns#' term='openFrameworks'/><title type='text'>openFrameworks</title><content type='html'>I ran across &lt;a href="http://www.openframeworks.cc/"&gt;openFrameworks&lt;/a&gt; in &lt;a href="http://semantic-programming.blogspot.com/2011/09/real-time-face-substitution.html"&gt;September&lt;/a&gt;; it's the framework used to build that real-time video face mapper.  The framework itself is pretty interesting, and it would be fascinating to write a domain for it in Decl - I'm having the same thoughts about Pygame, actually, the basis for the &lt;a href="http://stenoxlation.blogspot.com/search/label/fly"&gt;Fly steno tutorial&lt;/a&gt; I'm porting to Windows.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, I was just perusing old bookmarks and found a fascinating link to &lt;a href="http://urbanhonking.com/ideasfordozens/2009/04/05/an_aesthetics_reading_list_for/"&gt;aesthetics reading for programmers&lt;/a&gt; that just &lt;i&gt;begs&lt;/i&gt; for followup, and that guy's blog has some newer posts that reference openFrameworks - he's written a &lt;a href="http://urbanhonking.com/ideasfordozens/2011/11/14/announcing-ofxaddons-com-a-directory-of-openframeworks-extensions/"&gt;crawler&lt;/a&gt; for Github that automatically indexes add-ons and catalogs them at &lt;a href="http://ofxaddons.com/"&gt;ofxaddons.com&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There's something like a language for ... creative ... stuff developing there.  I get these glimpses of it.  This is another lead to follow up when I have more time.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3301976513096014384?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3301976513096014384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/openframeworks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3301976513096014384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3301976513096014384'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/openframeworks.html' title='openFrameworks'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1155126498844507747</id><published>2012-01-18T10:50:00.001-08:00</published><updated>2012-01-18T10:50:36.969-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data mining'/><title type='text'>Data mining: similarity</title><content type='html'>Nice little article on &lt;a href="http://bionicspirit.com/blog/2012/01/16/cosine-similarity-euclidean-distance.html"&gt;similarity metrics&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1155126498844507747?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1155126498844507747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/data-mining-similarity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1155126498844507747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1155126498844507747'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/data-mining-similarity.html' title='Data mining: similarity'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7268741156950627801</id><published>2012-01-18T10:49:00.001-08:00</published><updated>2012-01-18T10:49:55.673-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><title type='text'>Twitter influence graph on SOPA</title><content type='html'>&lt;a href="http://fredbenenson.com/blog/2012/01/18/twitter-conversations-about-sopa/"&gt;Nice visualization&lt;/a&gt;.  I'm a sucker for this stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7268741156950627801?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7268741156950627801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/twitter-influence-graph-on-sopa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7268741156950627801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7268741156950627801'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/twitter-influence-graph-on-sopa.html' title='Twitter influence graph on SOPA'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4057488802158373475</id><published>2012-01-17T09:20:00.000-08:00</published><updated>2012-01-17T09:21:16.483-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><title type='text'>Clay: programming language</title><content type='html'>&lt;a href="http://claylabs.com/clay/"&gt;Clay&lt;/a&gt; is a programming language based on C that has lambdas and some other nice modern features. Very attractive-looking, actually.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4057488802158373475?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4057488802158373475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/clay-programming-language.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4057488802158373475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4057488802158373475'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/clay-programming-language.html' title='Clay: programming language'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-934293245433402280</id><published>2012-01-15T08:05:00.000-08:00</published><updated>2012-01-15T10:30:41.924-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data journalism'/><title type='text'>1% map - income percentiles on a map of the US</title><content type='html'>Fantastic &lt;a href="http://www.nytimes.com/interactive/2012/01/15/business/one-percent-map.html"&gt;income analysis&lt;/a&gt; from the NYT.  Oh, and &lt;a href="http://www.nytimes.com/packages/html/newsgraphics/2012/0115-one-percent-occupations/index.html?ref=business"&gt;another&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-934293245433402280?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/934293245433402280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/1-map-income-percentiles-on-map-of-us.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/934293245433402280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/934293245433402280'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/1-map-income-percentiles-on-map-of-us.html' title='1% map - income percentiles on a map of the US'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-6670669466260977028</id><published>2012-01-14T21:28:00.001-08:00</published><updated>2012-01-14T21:34:21.661-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='genetic algorithms'/><title type='text'>AI game design</title><content type='html'>So AI game design is a thing: given a set of possible games defined by the pieces available, board, etc., come up with a "good" set of rules.  What a "good" game is seems ... really human, but some exploration of using AI programming techniques to augment human game design has been done.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a &lt;a href="http://boardgamegeek.com/blogpost/6931/ai-game-design-the-shibumi-challenge"&gt;neat article&lt;/a&gt;.  It's about exploring a very small game set using "Shibumi" equipment (released in October of 2011), which consists of a 4x4 set of holes and three colors of marbles to be played on those holes and stacked on one another to make pyramids.  That totals up to 30 possible positions, which can be empty, white, black, or red (two bits each), so the set of possible board positions is encoded in 60 bits.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Turns out evolution isn't so hot for game design - the universe is too uneven to allow much gradual improvement.  They've been having success with "Monte Carlo tree search", building trees using a semi-random process.  Kind of neat.  They want to compare it with GA in finding new games in this universe.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Their fitness function &lt;i&gt;has&lt;/i&gt; to be playability as judged by a human.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a notion: judge playability by determining how challenging it is to evolve a good player.  Or something.  That is to say, automate both ends of the process.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-6670669466260977028?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/6670669466260977028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/ai-game-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6670669466260977028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6670669466260977028'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/ai-game-design.html' title='AI game design'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7180365111891341921</id><published>2012-01-14T20:27:00.001-08:00</published><updated>2012-01-19T20:55:04.394-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>Self-adaptive honeypots</title><content type='html'>&lt;a href="http://tel.archives-ouvertes.fr/tel-00627981/fr/"&gt;Neat thesis&lt;/a&gt; about a system for self-adapting honeypots that analyze attacker behavior and try to learn more about the attacker.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7180365111891341921?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7180365111891341921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/self-adaptive-honeypots.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7180365111891341921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7180365111891341921'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/self-adaptive-honeypots.html' title='Self-adaptive honeypots'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5379547197970951249</id><published>2012-01-14T20:26:00.001-08:00</published><updated>2012-01-14T20:27:15.495-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming process'/><title type='text'>Analyzing github projects by language</title><content type='html'>&lt;a href="http://corte.si/posts/code/devsurvey/index.html"&gt;Interesting little project&lt;/a&gt; attempting to compare project behavior between languages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5379547197970951249?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5379547197970951249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/analyzing-github-projects-by-language.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5379547197970951249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5379547197970951249'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/analyzing-github-projects-by-language.html' title='Analyzing github projects by language'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-2051839429878848205</id><published>2012-01-14T20:22:00.000-08:00</published><updated>2012-01-14T20:24:00.996-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source target'/><title type='text'>Flashbake</title><content type='html'>A &lt;a href="http://bitbucketlabs.net/flashbake/"&gt;rolling git update&lt;/a&gt; of works in progress, imagined and used by Cory Doctorow.  It autoupdates your current working files to git and marks them with the current weather and some other indicators of what you might have been thinking.  Really neat idea.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-2051839429878848205?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/2051839429878848205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/flashbake.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2051839429878848205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2051839429878848205'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/flashbake.html' title='Flashbake'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-834274443376038904</id><published>2012-01-14T20:20:00.000-08:00</published><updated>2012-01-14T20:22:02.468-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>Chatter about machine learning</title><content type='html'>... well, data management.  However you want to classify it, &lt;a href="https://plus.google.com/103960484917563274650/posts/c6JUYGqEnTZ"&gt;I found it interesting&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-834274443376038904?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/834274443376038904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/chatter-about-machine-learning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/834274443376038904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/834274443376038904'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/chatter-about-machine-learning.html' title='Chatter about machine learning'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7045006955499110007</id><published>2012-01-14T20:19:00.000-08:00</published><updated>2012-01-14T20:20:45.789-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>Rolling your own map widgets</title><content type='html'>Google Maps is going to a usage cap model that means serious money for biggish sites with map embeds.  One enterprising real estate site looked around and realized they could &lt;a href="https://plus.google.com/u/0/118383351194421484817/posts/foj5A1fURGt"&gt;roll their own for less&lt;/a&gt;.  Lots of interesting stuff going on in mapping these days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7045006955499110007?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7045006955499110007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/rolling-your-own-map-widgets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7045006955499110007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7045006955499110007'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/rolling-your-own-map-widgets.html' title='Rolling your own map widgets'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4978125536007447711</id><published>2012-01-13T11:21:00.000-08:00</published><updated>2012-01-13T11:22:10.647-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='boilerplate'/><title type='text'>Twitter Bootstrap generator</title><content type='html'>&lt;a href="http://www.martinbean.co.uk/bootstrap-generator/"&gt;Closer and closer&lt;/a&gt;....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4978125536007447711?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4978125536007447711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/twitter-bootstrap-generator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4978125536007447711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4978125536007447711'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/twitter-bootstrap-generator.html' title='Twitter Bootstrap generator'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7105061084311970315</id><published>2012-01-13T09:07:00.000-08:00</published><updated>2012-01-13T09:08:52.310-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data mining'/><title type='text'>Data analysis of Twitter to determine you want to learn Objective-C</title><content type='html'>I find &lt;a href="https://generalassemb.ly/blog/the-biggest-opportunity-of-2012-learning-objective-c"&gt;this kind of project&lt;/a&gt; fascinating every time: analysis of tweeted jobs to find popular keywords, with nice graphics.  Learn Objective-C in 2012, apparently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7105061084311970315?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7105061084311970315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/data-analysis-of-twitter-to-determine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7105061084311970315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7105061084311970315'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/data-analysis-of-twitter-to-determine.html' title='Data analysis of Twitter to determine you want to learn Objective-C'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3605888952523556686</id><published>2012-01-13T09:06:00.000-08:00</published><updated>2012-01-13T09:07:32.167-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deployment'/><title type='text'>Configuration management tools suck</title><content type='html'>A state-of-the-art look at&lt;a href="http://www.kev009.com/wp/2012/01/configuration-management-software-sucks/"&gt; configuration management&lt;/a&gt;.  And it sucks.  That makes me interested.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3605888952523556686?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3605888952523556686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/configuration-management-tools-suck.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3605888952523556686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3605888952523556686'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/configuration-management-tools-suck.html' title='Configuration management tools suck'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7674428010617469946</id><published>2012-01-13T09:00:00.000-08:00</published><updated>2012-01-13T09:01:26.833-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>OpenTag translation XML formats</title><content type='html'>I need to think harder about declarative formats in XML.  &lt;a href="http://opentag.com/srx.htm"&gt;Here's an example&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7674428010617469946?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7674428010617469946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/opentag-translation-xml-formats.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7674428010617469946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7674428010617469946'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/opentag-translation-xml-formats.html' title='OpenTag translation XML formats'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7633173025205369594</id><published>2012-01-13T08:59:00.001-08:00</published><updated>2012-01-13T09:00:22.011-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='big data'/><category scheme='http://www.blogger.com/atom/ns#' term='Startup::Declarative'/><title type='text'>Feedback models of big data usage</title><content type='html'>&lt;a href="http://radar.oreilly.com/2012/01/the-feedback-economy.html"&gt;Interesting article&lt;/a&gt; at O'Reilly on modeling the use of data in companies.  Feedback being good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7633173025205369594?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7633173025205369594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/feedback-models-of-big-data-usage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7633173025205369594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7633173025205369594'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/feedback-models-of-big-data-usage.html' title='Feedback models of big data usage'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8670457370182137397</id><published>2012-01-13T08:58:00.001-08:00</published><updated>2012-01-13T08:58:50.272-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming practice'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>STUPID, GRASP, and SOLID in PHP</title><content type='html'>Some &lt;a href="http://nikic.github.com/2011/12/27/Dont-be-STUPID-GRASP-SOLID.html"&gt;good advice&lt;/a&gt; on PHP coding and object model maintenance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8670457370182137397?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8670457370182137397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/stupid-grasp-and-solid-in-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8670457370182137397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8670457370182137397'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/stupid-grasp-and-solid-in-php.html' title='STUPID, GRASP, and SOLID in PHP'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-9148818950168515253</id><published>2012-01-13T08:57:00.001-08:00</published><updated>2012-01-19T20:55:15.155-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><title type='text'>Malware deobfuscation</title><content type='html'>I'm always a sucker for this.  A good article &lt;a href="http://pandalabs.pandasecurity.com/deobfuscating-malicious-code-layer-by-layer/"&gt;here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-9148818950168515253?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/9148818950168515253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/malware-deobfuscation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/9148818950168515253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/9148818950168515253'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/malware-deobfuscation.html' title='Malware deobfuscation'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-6307279384672907955</id><published>2012-01-10T19:44:00.001-08:00</published><updated>2012-01-10T19:45:17.210-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Processing'/><category scheme='http://www.blogger.com/atom/ns#' term='interactive models'/><title type='text'>NPZ visualizer</title><content type='html'>A &lt;a href="http://coast.ocean.washington.edu/~neil/NPZvisualizer/"&gt;Processing model&lt;/a&gt; of a neat biological system.  &lt;i&gt;Very cool&lt;/i&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-6307279384672907955?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/6307279384672907955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/npz-visualizer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6307279384672907955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6307279384672907955'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/npz-visualizer.html' title='NPZ visualizer'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4972684113659673291</id><published>2012-01-10T19:25:00.000-08:00</published><updated>2012-01-10T19:26:19.427-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>Infer.NET</title><content type='html'>&lt;a href="http://research.microsoft.com/en-us/projects/infernet/"&gt;ML in .NET&lt;/a&gt;.  Weird.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4972684113659673291?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4972684113659673291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/infernet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4972684113659673291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4972684113659673291'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/infernet.html' title='Infer.NET'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8433043955455031632</id><published>2012-01-10T18:43:00.001-08:00</published><updated>2012-01-10T18:43:37.447-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF::Declarative'/><title type='text'>PDFminer</title><content type='html'>&lt;a href="http://www.unixuser.org/~euske/python/pdfminer/index.html"&gt;PDFminer&lt;/a&gt; is a Python library for extracting information from PDFs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8433043955455031632?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8433043955455031632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/pdfminer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8433043955455031632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8433043955455031632'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/pdfminer.html' title='PDFminer'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3853261172145797661</id><published>2012-01-10T18:27:00.000-08:00</published><updated>2012-01-10T18:28:13.645-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF::Declarative'/><title type='text'>iText PDF API</title><content type='html'>I'd forgotten about this, but it's a pretty slick-looking Java/C# (?) library for working with PDF.  Oughta go into the domain.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3853261172145797661?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3853261172145797661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/itext-pdf-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3853261172145797661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3853261172145797661'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/itext-pdf-api.html' title='iText PDF API'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8056336050440033510</id><published>2012-01-10T16:49:00.000-08:00</published><updated>2012-01-10T17:01:39.942-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='boilerplate'/><title type='text'>Patterns and boilerplate</title><content type='html'>A couple of old ones, and a couple of new ones.  I really think patterns and boilerplate are a key component of the semantic approach, and for some reason they're cropping up in my daily reading today.&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://designingsocialinterfaces.com/patterns.wiki/index.php?title=Main_Page"&gt;Designing social interfaces&lt;/a&gt; - a Wiki with about 100 user interaction patterns; also a book.&lt;/li&gt;&lt;li&gt;&lt;a href="http://ui-patterns.com/"&gt;UI patterns&lt;/a&gt; - I'm pretty sure this has been linked from this blog before.&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/sean-/flask-skeleton"&gt;Flask boilerplate&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://weblog.bocoup.com/introducing-the-backbone-boilerplate"&gt;Backbone.js boilerplate&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://patterntap.com/usersets/"&gt;Pattern tap&lt;/a&gt; - these are more design elements, perhaps.&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.yahoo.com/ypatterns/"&gt;Yahoo! design pattern library, of course&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://patternry.com/patterns/"&gt;Patternry open UI patterns&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8056336050440033510?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8056336050440033510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/patterns-and-boilerplate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8056336050440033510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8056336050440033510'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/patterns-and-boilerplate.html' title='Patterns and boilerplate'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5800108438567043990</id><published>2012-01-10T16:21:00.001-08:00</published><updated>2012-01-10T16:22:37.539-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><title type='text'>Ooooold bookmarks - D</title><content type='html'>The &lt;a href="http://www.d-programming-language.org/index.html"&gt;D programming language&lt;/a&gt; is a replacement for C that &lt;i&gt;isn't&lt;/i&gt; C++.  I have yet to really look hard, but it actually looks pretty nice.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the first of a long list of programming bookmarks from way back that I'm going to serialize onto this blog so I don't lose them.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5800108438567043990?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5800108438567043990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/ooooold-bookmarks-d.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5800108438567043990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5800108438567043990'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/ooooold-bookmarks-d.html' title='Ooooold bookmarks - D'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1439338199392959297</id><published>2012-01-08T15:48:00.001-08:00</published><updated>2012-01-08T15:48:38.667-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mail::Declarative'/><title type='text'>Speaking of mail</title><content type='html'>Nobody seems to be able to manage to provide a &lt;a href="http://news.cnet.com/8301-33200_3-57354466-290/threadsys-gone-but-im-still-searching-for-a-universal-in-box/?tag=mncol"&gt;mail aggregator&lt;/a&gt; and stay in business.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1439338199392959297?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1439338199392959297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/speaking-of-mail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1439338199392959297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1439338199392959297'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/speaking-of-mail.html' title='Speaking of mail'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7221345000906139311</id><published>2012-01-08T15:47:00.001-08:00</published><updated>2012-01-08T15:47:49.993-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mail::Declarative'/><title type='text'>Overview of mbox formats</title><content type='html'>Good overview of &lt;a href="http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/mail-mbox-formats.html"&gt;mbox formats&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7221345000906139311?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7221345000906139311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/overview-of-mbox-formats.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7221345000906139311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7221345000906139311'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/overview-of-mbox-formats.html' title='Overview of mbox formats'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-6138691897844301962</id><published>2012-01-08T15:46:00.001-08:00</published><updated>2012-01-08T15:46:58.701-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>Veneer: modal dialogs in JS</title><content type='html'>Simple little library for &lt;a href="http://adeel.github.com/veneer/#"&gt;modal display dialogs&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-6138691897844301962?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/6138691897844301962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/veneer-modal-dialogs-in-js.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6138691897844301962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6138691897844301962'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/veneer-modal-dialogs-in-js.html' title='Veneer: modal dialogs in JS'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1978829983422560753</id><published>2012-01-08T15:45:00.001-08:00</published><updated>2012-01-08T15:46:06.879-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>Fbootstrapp: Facebook design bootstrap</title><content type='html'>And as long as we're talking about design, &lt;a href="http://ckrack.github.com/fbootstrapp/"&gt;here's a Facebook answer&lt;/a&gt; to the Twitter bootstrap.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1978829983422560753?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1978829983422560753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/fbootstrapp-facebook-design-bootstrap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1978829983422560753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1978829983422560753'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/fbootstrapp-facebook-design-bootstrap.html' title='Fbootstrapp: Facebook design bootstrap'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-2122818904626860079</id><published>2012-01-08T15:44:00.000-08:00</published><updated>2012-01-08T15:45:14.017-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>Excellent post on learning design</title><content type='html'>&lt;a href="http://jamie-davidson.com/2012/01/resources-to-hack-design/"&gt;Here&lt;/a&gt;.  Lots and lots of good resources linked there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-2122818904626860079?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/2122818904626860079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/excellent-post-on-learning-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2122818904626860079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2122818904626860079'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/excellent-post-on-learning-design.html' title='Excellent post on learning design'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3311143275063754314</id><published>2012-01-06T19:47:00.000-08:00</published><updated>2012-01-06T19:50:28.194-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><title type='text'>Social network sleuthing</title><content type='html'>Neat post on how &lt;a href="http://www.orgnet.com/slumlords.html"&gt;social network charting&lt;/a&gt; was used to bust some slumlord fraudsters in Chicago. [&lt;a href="http://news.ycombinator.com/item?id=3434665"&gt;hnn&lt;/a&gt;]  Prompted a post of this &lt;a href="http://i.imgur.com/feJLd.png"&gt;fascinating picture&lt;/a&gt;, which was generated at least in part with &lt;a href="https://github.com/dhotson/springy"&gt;this code&lt;/a&gt;.  Finally also prompted a link to &lt;a href="http://sharesleuth.com/"&gt;sharesleuth.com&lt;/a&gt;, a Mark Cuban project tracking securities fraud.  I do so love reading about detective work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3311143275063754314?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3311143275063754314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/social-network-sleuthing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3311143275063754314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3311143275063754314'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/social-network-sleuthing.html' title='Social network sleuthing'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-6244513522247467359</id><published>2012-01-06T19:46:00.000-08:00</published><updated>2012-01-07T15:04:41.595-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><title type='text'>Database design mistakes</title><content type='html'>Interesting post with &lt;a href="http://thomaslarock.com/2012/01/do-you-make-these-5-database-design-mistakes/"&gt;five common database design mistakes&lt;/a&gt;.  This is the kind of best-practice knowledge that should eventually be boiled down into domains.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-6244513522247467359?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/6244513522247467359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/database-design-mistakes.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6244513522247467359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6244513522247467359'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/database-design-mistakes.html' title='Database design mistakes'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4829181033837967459</id><published>2012-01-06T19:42:00.001-08:00</published><updated>2012-01-06T19:46:13.053-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='translation organizer'/><category scheme='http://www.blogger.com/atom/ns#' term='target applications'/><title type='text'>Target application: translation service provider suite</title><content type='html'>I've wanted to build this for a while - and in the meantime, somebody else did.  &lt;a href="http://www.lsp.net/online-translation-management.html"&gt;Here's the link&lt;/a&gt;.  I need to mine it for features.  Meanwhile I have a possible business partner wanting to build something like this; it's possible it will be Drupal-based and start from &lt;a href="http://openatrium.com/"&gt;Open Atrium&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4829181033837967459?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4829181033837967459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/target-application-translation-service.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4829181033837967459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4829181033837967459'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/target-application-translation-service.html' title='Target application: translation service provider suite'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1591892368238008256</id><published>2012-01-06T19:40:00.000-08:00</published><updated>2012-01-06T19:41:49.375-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software component database'/><category scheme='http://www.blogger.com/atom/ns#' term='open source target'/><title type='text'>Dreadnot for continuous deployment</title><content type='html'>Rackspace just open-sourced their &lt;a href="http://www.rackspace.com/cloud/blog/2012/01/05/rackspace-open-sources-dreadnot/"&gt;continuous deployment tool&lt;/a&gt;.  Interesting move - and it makes me want (again) to start thinking harder about that software component database.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1591892368238008256?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1591892368238008256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/dreadnot-for-continuous-deployment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1591892368238008256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1591892368238008256'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/dreadnot-for-continuous-deployment.html' title='Dreadnot for continuous deployment'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-6191215885083902455</id><published>2012-01-06T19:39:00.001-08:00</published><updated>2012-01-06T19:40:03.840-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>The Oatmeal: How to make your shopping cart suck less</title><content type='html'>The Oatmeal with some excellent &lt;a href="http://theoatmeal.com/comics/shopping_cart"&gt;usability advice&lt;/a&gt; that simultaneously makes you laugh until your solar plexus hurts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-6191215885083902455?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/6191215885083902455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/oatmeal-how-to-make-your-shopping-cart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6191215885083902455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6191215885083902455'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/oatmeal-how-to-make-your-shopping-cart.html' title='The Oatmeal: How to make your shopping cart suck less'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5093301087506331118</id><published>2012-01-06T19:38:00.001-08:00</published><updated>2012-01-06T19:39:00.484-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='education'/><title type='text'>Data on tutoring</title><content type='html'>I happen to think that the education industry is ripe for some upheaval; on that note, here's &lt;a href="http://blog.tutorspree.com/post/15257341578/state-of-tutoring"&gt;Tutorspree&lt;/a&gt; with some interesting data from their 2011 work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5093301087506331118?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5093301087506331118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/data-on-tutoring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5093301087506331118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5093301087506331118'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/data-on-tutoring.html' title='Data on tutoring'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-330629502343487779</id><published>2012-01-06T19:36:00.001-08:00</published><updated>2012-01-06T19:38:07.284-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NLP'/><title type='text'>Government documents as grist for the mill</title><content type='html'>Another fascinating archive of large amounts of messy government text: the &lt;a href="http://www.governmentattic.org/DocumentsDoJ.html"&gt;government attic&lt;/a&gt;.  In particular interesting for their recent posting of (a &lt;i&gt;lot&lt;/i&gt; of) FBI documents pertaining to the security of telephone services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-330629502343487779?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/330629502343487779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/government-documents-as-grist-for-mill.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/330629502343487779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/330629502343487779'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/government-documents-as-grist-for-mill.html' title='Government documents as grist for the mill'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8176104346350080229</id><published>2012-01-06T19:35:00.001-08:00</published><updated>2012-01-06T19:36:07.973-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='target domains'/><title type='text'>Futurist strategy</title><content type='html'>Here's a neat BoingBoing post of all things, presenting more or less "&lt;a href="http://boingboing.net/2012/01/02/sf-vs-sf.html#more-131287"&gt;how to be a futuris&lt;/a&gt;t".  It would be interesting to boil these down into usable tools.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8176104346350080229?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8176104346350080229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/futurist-strategy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8176104346350080229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8176104346350080229'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/futurist-strategy.html' title='Futurist strategy'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1075241479048217306</id><published>2012-01-06T19:33:00.001-08:00</published><updated>2012-01-06T19:34:18.646-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><title type='text'>Decision tables</title><content type='html'>Here's a &lt;a href="http://martinfowler.com/ieeeSoftware/accChange.pdf"&gt;neat old technique&lt;/a&gt; I actually remember reading about long ago - and had forgotten about just as thoroughly as the rest of the industry had forgotten about it.  Decision tables.  A great user-responsive way to define complex logic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1075241479048217306?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1075241479048217306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/decision-tables.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1075241479048217306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1075241479048217306'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/decision-tables.html' title='Decision tables'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-2731961825804153374</id><published>2012-01-06T19:30:00.000-08:00</published><updated>2012-01-06T19:31:33.396-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>Scrollorama</title><content type='html'>A &lt;a href="http://johnpolacek.github.com/scrollorama/"&gt;jQuery plugin&lt;/a&gt; for neat scrolling tricks.  I gotta start figuring this stuff out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-2731961825804153374?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/2731961825804153374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/scrollorama.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2731961825804153374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2731961825804153374'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/scrollorama.html' title='Scrollorama'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4559109380169315297</id><published>2012-01-01T15:57:00.000-08:00</published><updated>2012-01-01T15:58:13.627-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>K-means clustering on pixels in art</title><content type='html'>&lt;a href="http://0xfe.blogspot.com/2011/12/k-means-clustering-and-art.html"&gt;Neat&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4559109380169315297?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4559109380169315297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/k-means-clustering-on-pixels-in-art.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4559109380169315297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4559109380169315297'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2012/01/k-means-clustering-on-pixels-in-art.html' title='K-means clustering on pixels in art'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1732701661606599656</id><published>2011-12-30T16:40:00.000-08:00</published><updated>2011-12-30T16:41:30.302-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='infrastructure'/><title type='text'>Dedicated hosting at a reasonable price</title><content type='html'>I might &lt;a href="https://lostsignalweb.com/services/dedi"&gt;move&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1732701661606599656?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1732701661606599656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/dedicated-hosting-at-reasonable-price.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1732701661606599656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1732701661606599656'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/dedicated-hosting-at-reasonable-price.html' title='Dedicated hosting at a reasonable price'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8059754836844565490</id><published>2011-12-30T16:39:00.000-08:00</published><updated>2011-12-30T16:40:30.460-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology trends'/><title type='text'>Top skills for 2012</title><content type='html'>Just &lt;a href="http://servicesangle.com/blog/2011/12/29/top-10-developer-and-engineering-skills-employers-will-look-for-going-into-2012/"&gt;FYI&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8059754836844565490?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8059754836844565490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/top-skills-for-2012.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8059754836844565490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8059754836844565490'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/top-skills-for-2012.html' title='Top skills for 2012'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4139881159448640524</id><published>2011-12-30T16:37:00.002-08:00</published><updated>2011-12-30T16:39:35.522-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source target'/><category scheme='http://www.blogger.com/atom/ns#' term='crypto'/><title type='text'>Interesting cryptography/number theory library</title><content type='html'>Interesting &lt;a href="http://news.ycombinator.com/item?id=3397812"&gt;post on HNN&lt;/a&gt; recently (as always): a bloke whose uncle spent a lifetime implementing some pretty amazing algorithms just &lt;a href="https://github.com/daoudclarke/wartonlegacy"&gt;open-sourced them&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4139881159448640524?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4139881159448640524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/interesting-cryptographynumber-theory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4139881159448640524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4139881159448640524'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/interesting-cryptographynumber-theory.html' title='Interesting cryptography/number theory library'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-2345457304112360724</id><published>2011-12-30T16:37:00.001-08:00</published><updated>2011-12-30T16:37:42.201-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='telephony'/><category scheme='http://www.blogger.com/atom/ns#' term='Twilio'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Perl and Twilio</title><content type='html'>&lt;a href="http://www.perl.com/pub/2011/12/building-telephony-applications-with-perl-and-twiml.html"&gt;Who knew&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-2345457304112360724?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/2345457304112360724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/perl-and-twilio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2345457304112360724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2345457304112360724'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/perl-and-twilio.html' title='Perl and Twilio'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7314436586807814616</id><published>2011-12-30T16:34:00.001-08:00</published><updated>2011-12-30T16:37:07.355-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Perl documentation in the news</title><content type='html'>OK, so there have been some &lt;a href="http://www.modernperlbooks.com/mt/2011/12/perl-documentation-in-terms-of-tasks.html"&gt;efforts this year&lt;/a&gt; to get Perl looking as up-to-date as it actually is; the problem is that the language has been around so long that typical search results may be a decade old, even though the community has decisively moved on.  Since competing languages haven't even been around, the result is that it looks like it's easier to do modern tasks in, say, Ruby - because that's what you see in relevant results.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My Lego inventory project should do well for this; it's a typical Web scraping database program that will make a good article.  I just have to find out how to cross-post to, say, &lt;a href="http://www.perl.com/"&gt;perl.com&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7314436586807814616?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7314436586807814616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/perl-documentation-in-news.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7314436586807814616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7314436586807814616'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/perl-documentation-in-news.html' title='Perl documentation in the news'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1294861159704666592</id><published>2011-12-30T16:27:00.000-08:00</published><updated>2011-12-30T16:28:48.219-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data mining'/><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>Waffles command-line ML toolset</title><content type='html'>&lt;a href="http://waffles.sourceforge.net/"&gt;Waffles&lt;/a&gt; is a comprehensive set of command-line tools for doing machine learning and data mining.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I really, really need to sit down and do a survey/implementation tool thing.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1294861159704666592?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1294861159704666592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/waffles-command-line-ml-toolset.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1294861159704666592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1294861159704666592'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/waffles-command-line-ml-toolset.html' title='Waffles command-line ML toolset'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3124197228575555724</id><published>2011-12-25T17:34:00.000-08:00</published><updated>2011-12-25T17:35:15.127-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scaling'/><title type='text'>Scaling a blog</title><content type='html'>Another &lt;a href="http://www.maxmasnick.com/guides/bulletproof_your_blog/"&gt;scaling article &lt;/a&gt;- worth reading, tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3124197228575555724?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3124197228575555724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/scaling-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3124197228575555724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3124197228575555724'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/scaling-blog.html' title='Scaling a blog'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5860070665885182225</id><published>2011-12-25T17:28:00.001-08:00</published><updated>2011-12-25T17:30:11.875-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming examples'/><title type='text'>Task: Lego inventory tracker</title><content type='html'>This one's actually underway, a Christmas present for my son.  I'll write it up separately somewhere - perhaps on the Vivtek site itself!  (A blast from the past - I haven't written anything new there since probably 2009; Blogger has been so much more convenient.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5860070665885182225?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5860070665885182225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/task-lego-inventory-tracker.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5860070665885182225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5860070665885182225'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/task-lego-inventory-tracker.html' title='Task: Lego inventory tracker'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8509616456834303328</id><published>2011-12-25T17:24:00.001-08:00</published><updated>2011-12-25T17:30:37.295-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WWW::Declarative'/><category scheme='http://www.blogger.com/atom/ns#' term='WWW::Mechanize'/><category scheme='http://www.blogger.com/atom/ns#' term='NLP'/><category scheme='http://www.blogger.com/atom/ns#' term='programming examples'/><category scheme='http://www.blogger.com/atom/ns#' term='news scraper'/><title type='text'>Task: News scraper/tracker</title><content type='html'>I want to scrape the &lt;a href="http://www.reuters.com/tools/rss"&gt;Reuters news feeds&lt;/a&gt; (later, others) into a database for various analytical purposes [&lt;a href="http://quant-semantics.blogspot.com/2009/11/news.html"&gt;eg&lt;/a&gt;].  That's going to consist of a daemon on my fileserver that checks the feeds on a period basis and loads things into a database.  Then we'll do other analysis on that database.  I'm most interested in linking stories and identifying trends.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yeah, OK, I know this isn't groundbreaking research.  It's new for me, though.  And it will be a good microcosm of scraping tasks for declaratization as well as a valuable component for all kinds of things.  So ... it's a task.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8509616456834303328?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8509616456834303328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/task-news-scrapertracker.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8509616456834303328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8509616456834303328'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/task-news-scrapertracker.html' title='Task: News scraper/tracker'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4222670468631398117</id><published>2011-12-25T17:11:00.001-08:00</published><updated>2011-12-25T17:21:31.253-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quant'/><title type='text'>Trading platforms</title><content type='html'>A couple of trading platforms that were advertised on a blog I follow.  Probably stupid even to think about securities trading this year.  Or next.&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.tdameritrade.com/tradearchitect.html"&gt;Trade Architect&lt;/a&gt; from TD Ameritrade.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.optionshouse.com/tools/"&gt;OptionsHouse&lt;/a&gt; allows you to do simulated trading to start off and has flat trading fees for real trades.  Interesting.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4222670468631398117?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4222670468631398117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/trading-platforms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4222670468631398117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4222670468631398117'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/trading-platforms.html' title='Trading platforms'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7302207115082558403</id><published>2011-12-25T17:10:00.002-08:00</published><updated>2011-12-25T17:17:51.034-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='static code analysis'/><title type='text'>John Carmack on static code analysis</title><content type='html'>&lt;a href="http://altdevblogaday.com/2011/12/24/static-code-analysis/"&gt;Short version&lt;/a&gt;: &lt;i&gt;DO IT&lt;/i&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7302207115082558403?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7302207115082558403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/john-carmack-on-static-code-analysis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7302207115082558403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7302207115082558403'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/john-carmack-on-static-code-analysis.html' title='John Carmack on static code analysis'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1373059473832052888</id><published>2011-12-25T17:10:00.001-08:00</published><updated>2011-12-25T17:10:28.457-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><title type='text'>2011 Visualization Roundup</title><content type='html'>What it says &lt;a href="http://blog.visual.ly/20-great-visualizations-of-2011/"&gt;on the tin&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1373059473832052888?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1373059473832052888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/2011-visualization-roundup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1373059473832052888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1373059473832052888'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/2011-visualization-roundup.html' title='2011 Visualization Roundup'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-6698329411463656463</id><published>2011-12-25T17:09:00.001-08:00</published><updated>2011-12-25T17:09:50.504-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>Markov chains in Chutes and Ladders</title><content type='html'>...  &lt;a href="http://www.r-bloggers.com/basics-on-markov-chain-for-parents/"&gt;Cute&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-6698329411463656463?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/6698329411463656463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/markov-chains-in-chutes-and-ladders.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6698329411463656463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6698329411463656463'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/markov-chains-in-chutes-and-ladders.html' title='Markov chains in Chutes and Ladders'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-2193183834563534770</id><published>2011-12-25T17:05:00.001-08:00</published><updated>2011-12-25T17:09:10.157-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Startup::Declarative'/><title type='text'>How startups succeed</title><content type='html'>&lt;a href="http://www.jasonshen.com/2011/great-by-choice-surprising-lessons-of-how-tech-startups-succeed-over-the-long-term/"&gt;Good article&lt;/a&gt;. tl;dr:&lt;div&gt;&lt;ul&gt;&lt;li&gt;Fire lots of bullets, not cannonballs (MVPs again)&lt;/li&gt;&lt;li&gt;Fanatic devotion to performance goals even when times are hard&lt;/li&gt;&lt;li&gt;Productive paranoia: cash in the bank, reduce risk whenever possible, anticipate killer strikes&lt;/li&gt;&lt;li&gt;Don't bet on luck.  Bet on being good.&lt;/li&gt;&lt;li&gt;Seize opportunity when it arises.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-2193183834563534770?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/2193183834563534770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/how-startups-succeed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2193183834563534770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/2193183834563534770'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/how-startups-succeed.html' title='How startups succeed'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5341623620273269121</id><published>2011-12-25T17:04:00.001-08:00</published><updated>2011-12-25T17:05:04.727-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='APIs'/><category scheme='http://www.blogger.com/atom/ns#' term='Mail::Declarative'/><title type='text'>Context.IO: mail replacement API?</title><content type='html'>&lt;a href="http://blog.programmableweb.com/2011/12/22/solution-for-imap-headaches-out-of-beta/"&gt;Looks neat&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5341623620273269121?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5341623620273269121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/contextio-mail-replacement-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5341623620273269121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5341623620273269121'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/contextio-mail-replacement-api.html' title='Context.IO: mail replacement API?'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-9039435808263765252</id><published>2011-12-25T17:03:00.001-08:00</published><updated>2011-12-25T17:04:17.079-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Startup::Declarative'/><title type='text'>Questions for startups</title><content type='html'>Here's a funny little look at &lt;a href="http://whoapi.com/blog/439/26-questions-you-have-to-answer-correctly-to-get-funding-for-your-startup/"&gt;VC questions&lt;/a&gt; by a Croatian startup.  Toss it into the slushpile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-9039435808263765252?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/9039435808263765252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/questions-for-startups.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/9039435808263765252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/9039435808263765252'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/questions-for-startups.html' title='Questions for startups'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4827519332436041393</id><published>2011-12-25T17:02:00.001-08:00</published><updated>2011-12-25T17:03:10.028-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source target'/><category scheme='http://www.blogger.com/atom/ns#' term='NLP'/><title type='text'>Open source target: IndexTank</title><content type='html'>IndexTank was bought by LinkedIn and is now open source.  It's apparently also used by Reddit.  I need to learn it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4827519332436041393?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4827519332436041393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/open-source-target-indextank.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4827519332436041393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4827519332436041393'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/open-source-target-indextank.html' title='Open source target: IndexTank'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4607459108096944521</id><published>2011-12-25T17:01:00.000-08:00</published><updated>2011-12-25T17:02:05.237-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><title type='text'>20 sites pushing the limits of JS</title><content type='html'>Another cool &lt;a href="http://www.netmagazine.com/features/2011-review-20-sites-pushed-javascript-limit"&gt;JS roundup&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4607459108096944521?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4607459108096944521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/20-sites-pushing-limits-of-js.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4607459108096944521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4607459108096944521'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/20-sites-pushing-limits-of-js.html' title='20 sites pushing the limits of JS'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7112201132822724146</id><published>2011-12-25T16:56:00.000-08:00</published><updated>2011-12-25T17:30:58.678-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming examples'/><title type='text'>DD-WRT</title><content type='html'>... is the open-source firmware for my new router.  I want to do per-MAC bandwidth tracking, and here are some leads.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;From the &lt;a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=51429"&gt;dd-wrt forum&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Refers to &lt;a href="http://code.google.com/p/wrtbwmon/source/browse/wrtbwmon.sh"&gt;Google code here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Possibly &lt;a href="http://infodepot.wikia.com/wiki/Bandwidth_Monitor_for_DD-WRT"&gt;upgraded here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Probably my best bet is to assume a control panel on the local PC (which is the situation I've got) manipulating a remote "sensor head" on the router.  The router doesn't have a huge amount of resources, after all.&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/2578578324781066638-7112201132822724146?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7112201132822724146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/dd-wrt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7112201132822724146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7112201132822724146'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/dd-wrt.html' title='DD-WRT'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7818010627746111906</id><published>2011-12-25T16:55:00.000-08:00</published><updated>2011-12-25T16:56:30.630-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twilio'/><title type='text'>Twilio set to explode</title><content type='html'>I need to be on board.  Patrick usually &lt;a href="http://www.kalzumeus.com/2011/12/19/productizing-twilio-applications/"&gt;knows what he's talking about&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7818010627746111906?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7818010627746111906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/twilio-set-to-explode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7818010627746111906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7818010627746111906'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/twilio-set-to-explode.html' title='Twilio set to explode'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8334923520828994538</id><published>2011-12-25T16:53:00.000-08:00</published><updated>2011-12-25T16:55:44.071-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data mining'/><title type='text'>Data mining without prejudice</title><content type='html'>Interesting &lt;a href="http://web.mit.edu/newsoffice/2011/large-data-sets-algorithm-1216.html?"&gt;article from MIT&lt;/a&gt; about a paywalled &lt;a href="http://www.sciencemag.org/content/334/6062/1518"&gt;article in &lt;i&gt;Science&lt;/i&gt;&lt;/a&gt; about a new technique for data mining developed at MIT, the upshot being apparently that it's doing curve fitting with no preconceived notions of the variables being fit.  Or something.  I need to read it after some sleep.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8334923520828994538?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8334923520828994538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/data-mining-without-prejudice.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8334923520828994538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8334923520828994538'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/data-mining-without-prejudice.html' title='Data mining without prejudice'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-329961294975471763</id><published>2011-12-25T16:50:00.002-08:00</published><updated>2011-12-25T16:52:28.928-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open government'/><title type='text'>Open Government</title><content type='html'>Another post about open gov - "&lt;a href="http://www.informationdiet.com/blog/read/dear-internet-its-no-longer-ok-to-not-know-how-congress-works-"&gt;Dear Internet, it's no longer OK not to know how Congress works&lt;/a&gt;", which is clever, but instead largely about disrupting the system with better political software, which I like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-329961294975471763?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/329961294975471763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/open-government.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/329961294975471763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/329961294975471763'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/open-government.html' title='Open Government'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3354490582396200066</id><published>2011-12-25T16:50:00.001-08:00</published><updated>2011-12-25T16:50:44.127-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><title type='text'>25 Time-saving generators</title><content type='html'>Another &lt;a href="http://www.awcore.com/html/news/14/25-Time-saving-Generators_en"&gt;link-list Webdev&lt;/a&gt; post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3354490582396200066?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3354490582396200066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/25-time-saving-generators.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3354490582396200066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3354490582396200066'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/25-time-saving-generators.html' title='25 Time-saving generators'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-6066203365968455545</id><published>2011-12-25T16:47:00.000-08:00</published><updated>2011-12-25T16:49:55.002-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>HTML too complex?</title><content type='html'>And by HTML, I think the industry now means HTML+CSS+Canvas, as a Flash replacement.  Interesting point here about "&lt;a href="http://polygeek.com/4912_life-of-polygeek_im-too-lazy-to-be-a-html-developer"&gt;I'm too lazy to be a HTML dev&lt;/a&gt;" - which just means the level of abstraction is wrong.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And that's &lt;i&gt;interesting&lt;/i&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-6066203365968455545?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/6066203365968455545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/html-too-complex.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6066203365968455545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6066203365968455545'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/html-too-complex.html' title='HTML too complex?'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-1785796840172479245</id><published>2011-12-17T19:35:00.000-08:00</published><updated>2011-12-17T19:47:20.740-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='todo list manager'/><title type='text'>Task: Write a Blogger to-do list manager</title><content type='html'>I do my thinking aloud here and on other blogs, and one of the perennial problems I have with that is that Blogger has no particular way of dealing with task lists.  (Boy, that sounds stupid, doesn't it?)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Seriously - a blog is a fantastic way of entering tagged text that could be scanned for tasks, progress notifications, and even completion of tasks in a structured way.  Remember how I said Blogger has an API?  Well, how about the following scheme, then?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Introduce a task by prefixing it in the title, like "Task: Write a Blogger to-do list manager".  Then introduce the tag just by making up a tag for it, e.g. "todo list manager".  The tag can now be a miniblog for the task, you see - for free.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Progress reports are just posted using the tag.  Optionally, if you put a percentage in there, you could use it as a completion estimate.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Completion is also flagged in the title, with the word "complete".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. The current to-do list can now be generated automagically with a simple script you run whenever the blog is updated (or periodically, or whatever).  I'd personally write it as a Perl script against the Blogger API run on my local machine.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. If you post any post named "To-do list" or something along those lines, the to-do list can be updated into it (say, at the end, or wherever a given comment appears).  The current to-do list can link back to old to-do lists of historical interest, and you can just post another one whenever you feel it's appropriate.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. The updater can even make sure that the current to-do list post is the one linked from a sidebar highlight.  You could even put your to-do list &lt;i&gt;on&lt;/i&gt; the sidebar (perhaps in an abbreviated form).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So.  I should do this as soon as my vacation starts.  And on that note, I'm going to get back to work to hasten that very day.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-1785796840172479245?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/1785796840172479245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/task-write-blogger-to-do-list-manager.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1785796840172479245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/1785796840172479245'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/task-write-blogger-to-do-list-manager.html' title='Task: Write a Blogger to-do list manager'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5145950377340418344</id><published>2011-12-17T17:38:00.002-08:00</published><updated>2011-12-17T17:39:22.117-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Startup::Declarative'/><title type='text'>Startup escape path</title><content type='html'>&lt;a href="http://swombat.com/2011/12/15/startup-escape-path"&gt;Swombat again&lt;/a&gt;.  Toss it kind of into the "procedural" pile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5145950377340418344?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5145950377340418344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/startup-escape-path.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5145950377340418344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5145950377340418344'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/startup-escape-path.html' title='Startup escape path'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4792148885258837593</id><published>2011-12-17T17:38:00.001-08:00</published><updated>2011-12-17T17:38:39.789-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='big data'/><title type='text'>Big data predictions for 2012</title><content type='html'>&lt;a href="http://radar.oreilly.com/2011/12/5-big-data-predictions-2012.html"&gt;Interesting article&lt;/a&gt;, for which I have time measured in microseconds.  It's more time than I have just to post a link to it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4792148885258837593?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4792148885258837593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/big-data-predictions-for-2012.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4792148885258837593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4792148885258837593'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/big-data-predictions-for-2012.html' title='Big data predictions for 2012'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3849829772440352631</id><published>2011-12-17T17:35:00.002-08:00</published><updated>2011-12-17T17:37:29.596-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software maintenance'/><title type='text'>Google on bug prediction and Microsoft on empirical programming</title><content type='html'>Neat post on HNN about &lt;a href="http://google-engtools.blogspot.com/2011/12/bug-prediction-at-google.html"&gt;bug prediction&lt;/a&gt; at the Goog; answered at &lt;a href="http://news.ycombinator.com/item?id=3354580"&gt;HNN&lt;/a&gt; with a link to Microsoft's publications on &lt;a href="http://research.microsoft.com/en-us/groups/ese/publications.aspx"&gt;empirical programming&lt;/a&gt;, many of which are mouthwatering.  Gotta look at this when I have a minute.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3849829772440352631?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3849829772440352631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/google-on-bug-prediction-and-microsoft.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3849829772440352631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3849829772440352631'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/google-on-bug-prediction-and-microsoft.html' title='Google on bug prediction and Microsoft on empirical programming'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4196255271465832880</id><published>2011-12-17T17:35:00.001-08:00</published><updated>2011-12-17T17:35:36.614-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='APIs'/><title type='text'>Blogger has an API</title><content type='html'>Blogger has an &lt;a href="http://code.google.com/apis/blogger/docs/1.0/developers_guide_python.html"&gt;API&lt;/a&gt;.  Lots of things have APIs, actually.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4196255271465832880?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4196255271465832880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/blogger-has-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4196255271465832880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4196255271465832880'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/blogger-has-api.html' title='Blogger has an API'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-347908899977000345</id><published>2011-12-17T17:34:00.001-08:00</published><updated>2011-12-17T17:35:01.166-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>Research tools in Python</title><content type='html'>Not sure how much of this is directly useful, but don't have time right now to figure it out.  Good for &lt;a href="http://vislab-ccom.unh.edu/~schwehr/Classes/2011/esci895-researchtools/"&gt;statistics&lt;/a&gt;, perhaps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-347908899977000345?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/347908899977000345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/research-tools-in-python.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/347908899977000345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/347908899977000345'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/research-tools-in-python.html' title='Research tools in Python'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4561154532942976987</id><published>2011-12-17T17:32:00.000-08:00</published><updated>2011-12-17T17:33:29.084-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coroutines'/><title type='text'>Coroutines</title><content type='html'>An absolutely thought-provoking presentation on &lt;a href="http://www.dabeaz.com/coroutines/Coroutines.pdf"&gt;co-routines in Python&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4561154532942976987?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4561154532942976987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/coroutines.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4561154532942976987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4561154532942976987'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/coroutines.html' title='Coroutines'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3687496725977128721</id><published>2011-12-17T17:26:00.000-08:00</published><updated>2011-12-17T20:41:31.163-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='to do'/><title type='text'>Things not to forget</title><content type='html'>OK, so as soon as I've finished my current project-that-will-not-die, there are a few things I've been meaning to pay more attention to.  Here is something like a list, roughly in order of age.&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.vivtek.com/projects/paraphrase/"&gt;Paraphrasing tools&lt;/a&gt;. This is something I came up with a couple of years ago that would be a lot easier now that I've spent some time thinking harder about NLP.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vivtek.com/projects/idea3.html"&gt;HVPT word pair trainer&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Depatenting, still, I guess.&lt;/li&gt;&lt;li&gt;Despammed rebirth, possibly based on &lt;a href="http://semantic-programming.blogspot.com/2011/10/crm114.html"&gt;CRM114&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tuxradar.com/practicalphp"&gt;Practical PHP exercises&lt;/a&gt; as kata.&lt;/li&gt;&lt;li&gt;Run back through the big translation project management tasks from last spring in light of &lt;a href="http://semantic-programming.blogspot.com/2011/02/automating-windows.html"&gt;Windows automation&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Code structure examination of OpenLogos, finally.&lt;/li&gt;&lt;li&gt;In general, continue automation of my translation workflow.&lt;/li&gt;&lt;li&gt;The &lt;a href="http://www.heritagehealthprize.com/c/hhp"&gt;Heritage Health Prize&lt;/a&gt;.  Even doing halfway decently on it would be good advertising.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;That ought to keep me out of trouble for a while.  Now I can close some windows.&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/2578578324781066638-3687496725977128721?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3687496725977128721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/things-not-to-forget.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3687496725977128721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3687496725977128721'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/things-not-to-forget.html' title='Things not to forget'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3795504333490665684</id><published>2011-12-17T17:24:00.000-08:00</published><updated>2011-12-17T17:26:22.853-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='target applications'/><title type='text'>Target application: Todoist.com</title><content type='html'>Nice &lt;a href="http://todoist.com/app#project/1454842"&gt;to-do/project manager&lt;/a&gt; application - but so very many of its features are premium!  (Which is smart, sure.  It's just that I've wanted to do a task manager [again] for a long time.  And this one is ripe for analysis.)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a &lt;a href="http://websearch.about.com/od/usefulsite1/tp/to-do-lists.htm"&gt;top-ten list&lt;/a&gt; of Web to-do apps.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3795504333490665684?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3795504333490665684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/target-application-todoistcom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3795504333490665684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3795504333490665684'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/target-application-todoistcom.html' title='Target application: Todoist.com'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-6245348605536191620</id><published>2011-12-14T10:17:00.000-08:00</published><updated>2011-12-14T10:19:07.738-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSL'/><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><title type='text'>Infunl query language for clickpaths</title><content type='html'>This is &lt;a href="https://infunl.com/ql"&gt;really, really neat&lt;/a&gt;.  (&lt;a href="https://infunl.com/"&gt;examples here&lt;/a&gt;) I want to see more of this kind of thing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-6245348605536191620?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/6245348605536191620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/ifunl-query-language-for-clickpaths.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6245348605536191620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/6245348605536191620'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/ifunl-query-language-for-clickpaths.html' title='Infunl query language for clickpaths'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-274258286112806619</id><published>2011-12-13T18:58:00.001-08:00</published><updated>2011-12-13T18:58:33.360-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UI design'/><title type='text'>Sketching UI</title><content type='html'>Interesting article on &lt;a href="http://cran.r-project.org/web/packages/gputools/index.html"&gt;designing UIs&lt;/a&gt; on, you know, paper.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-274258286112806619?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/274258286112806619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/sketching-ui.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/274258286112806619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/274258286112806619'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/sketching-ui.html' title='Sketching UI'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-7710027978555099426</id><published>2011-12-13T18:57:00.001-08:00</published><updated>2011-12-13T18:57:52.272-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='R'/><title type='text'>Running R on the GPU</title><content type='html'>I &lt;a href="http://cran.r-project.org/web/packages/gputools/index.html"&gt;guess&lt;/a&gt;?  (Can you tell I'm in a hurry this week?)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-7710027978555099426?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/7710027978555099426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/running-r-on-gpu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7710027978555099426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/7710027978555099426'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/running-r-on-gpu.html' title='Running R on the GPU'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8928496031120440237</id><published>2011-12-13T18:56:00.000-08:00</published><updated>2011-12-13T18:57:10.235-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NLP'/><title type='text'>Tokenizing the Common Crawl corpus</title><content type='html'>&lt;a href="http://matpalm.com/blog/2011/12/10/common_crawl_visible_text/#disqus_thread"&gt;Interesting&lt;/a&gt; scalable approach.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8928496031120440237?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8928496031120440237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/tokenizing-common-crawl-corpus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8928496031120440237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8928496031120440237'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/tokenizing-common-crawl-corpus.html' title='Tokenizing the Common Crawl corpus'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-8848638761082857406</id><published>2011-12-13T18:55:00.000-08:00</published><updated>2011-12-13T18:56:16.924-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><title type='text'>ATS: programming language du jour</title><content type='html'>&lt;a href="http://www.ats-lang.org/"&gt;ATS&lt;/a&gt;.  Statically typed sysadmin language?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-8848638761082857406?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/8848638761082857406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/ats-programming-language-du-jour.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8848638761082857406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/8848638761082857406'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/ats-programming-language-du-jour.html' title='ATS: programming language du jour'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-902388450207389912</id><published>2011-12-13T18:54:00.001-08:00</published><updated>2011-12-13T18:54:18.289-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF::Declarative'/><title type='text'>PDFMiner</title><content type='html'>Python library for reading &lt;a href="http://www.unixuser.org/~euske/python/pdfminer/index.html"&gt;PDFs&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-902388450207389912?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/902388450207389912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/pdfminer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/902388450207389912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/902388450207389912'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/pdfminer.html' title='PDFMiner'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5810301389196845797</id><published>2011-12-13T18:53:00.001-08:00</published><updated>2011-12-13T18:53:49.437-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='databases'/><title type='text'>Evolutionary database design</title><content type='html'>Heck, I haven't even had time to read &lt;a href="http://martinfowler.com/articles/evodb.html"&gt;this&lt;/a&gt;.  Looks promising, though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5810301389196845797?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5810301389196845797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/evolutionary-database-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5810301389196845797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5810301389196845797'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/evolutionary-database-design.html' title='Evolutionary database design'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-4938307014176062397</id><published>2011-12-13T18:51:00.000-08:00</published><updated>2011-12-13T18:53:11.758-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><category scheme='http://www.blogger.com/atom/ns#' term='code generation'/><title type='text'>Programming in Syn</title><content type='html'>OK, now &lt;i&gt;here&lt;/i&gt; is a macro language to end all macro languages - &lt;a href="http://sifter.org/~simon/journal/20041021.1.h.html"&gt;Syn&lt;/a&gt;.  The point of Syn is to provide a language that just operates on parse trees, and thus compiles to ... anything.  Exactly where the code generation of Decl is aimed.  Fascinating read!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-4938307014176062397?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/4938307014176062397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/programming-in-syn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4938307014176062397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/4938307014176062397'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/programming-in-syn.html' title='Programming in Syn'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-5710471520370758931</id><published>2011-12-11T20:33:00.001-08:00</published><updated>2011-12-11T20:33:42.818-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='genetic algorithms'/><title type='text'>Evolved to Win</title><content type='html'>Ebook about &lt;a href="http://www.lulu.com/product/ebook/evolved-to-win/18719826"&gt;GA evolution of gameplaying algorithms&lt;/a&gt; or strategies.  Interesting stuff!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-5710471520370758931?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/5710471520370758931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/evolved-to-win.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5710471520370758931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/5710471520370758931'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/evolved-to-win.html' title='Evolved to Win'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-157106627549746652</id><published>2011-12-09T17:45:00.000-08:00</published><updated>2011-12-09T17:49:26.467-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='target applications'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Target application: WildChords</title><content type='html'>Neat iPad app that listens to the mic on your iPad to analyze your guitar playing, then runs a game where you have to play particular chords to lead animals out of the zoo.  Like Guitar Hero, except it actually teaches you to play the guitar!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The market cap is stupidly large.  I mean, really stupidly large - do you know how many people want to learn an instrument?  It's applying the &lt;a href="http://lesswrong.com/lw/h3/superstimuli_and_the_collapse_of_western/"&gt;superstimulus&lt;/a&gt; of gamification to allow you to reach a goal &lt;i&gt;you&lt;/i&gt; desire.  So I predict they're going to make money by the boatload.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd like to reverse engineer their signal processing (which they say is patent pending, to which I say boo!) and provide it for open-source games.  That would be neat.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-157106627549746652?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/157106627549746652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/target-application-wildchords.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/157106627549746652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/157106627549746652'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/target-application-wildchords.html' title='Target application: WildChords'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-878174234532648306</id><published>2011-12-09T07:43:00.000-08:00</published><updated>2011-12-09T07:44:44.636-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='toolchain'/><title type='text'>Infographic: What tools developers actually use</title><content type='html'>Neat survey of 500 developers on what tools they use in different categories, presented in &lt;a href="http://www.readwriteweb.com/hack/2011/12/infographic-what-tools-develop.php"&gt;infographic form&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-878174234532648306?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/878174234532648306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/infographic-what-tools-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/878174234532648306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/878174234532648306'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/infographic-what-tools-developers.html' title='Infographic: What tools developers actually use'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2578578324781066638.post-3827547376970114302</id><published>2011-12-07T17:38:00.001-08:00</published><updated>2011-12-07T17:38:44.921-08:00</updated><title type='text'>Tesseract 404 page</title><content type='html'>&lt;a href="http://www.foradian.com/404"&gt;Neat&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2578578324781066638-3827547376970114302?l=semantic-programming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://semantic-programming.blogspot.com/feeds/3827547376970114302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/tesseract-404-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3827547376970114302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2578578324781066638/posts/default/3827547376970114302'/><link rel='alternate' type='text/html' href='http://semantic-programming.blogspot.com/2011/12/tesseract-404-page.html' title='Tesseract 404 page'/><author><name>Michael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://www.vivtek.com/images/me.gif'/></author><thr:total>0</thr:total></entry></feed>
