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

<channel>
	<title>Artisan Coder &#187; Programming</title>
	<atom:link href="http://www.artisancoder.com/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.artisancoder.com</link>
	<description>Software development as a craft</description>
	<lastBuildDate>Thu, 15 Dec 2011 10:57:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Misuse of technology, XML case</title>
		<link>http://www.artisancoder.com/2008/07/misuse-of-technology-xml-case/</link>
		<comments>http://www.artisancoder.com/2008/07/misuse-of-technology-xml-case/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 19:16:48 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.ventonegro.org/?p=16</guid>
		<description><![CDATA[I do not have strong feelings about XML, be it for or against it. I don&#8217;t use it much because I use either S-Expressions with Scheme or Lua tables with Lua. I believe XML can be helpful, but people need to know how to use it. I have come across an application of XML to [...]]]></description>
			<content:encoded><![CDATA[<p>I do not have strong feelings about XML, be it for or against it. I don&#8217;t use it much because I use either <a href="http://en.wikipedia.org/wiki/S-expressions" title="S-Expressions">S-Expressions</a> with Scheme or <a href="http://www.lua.org/manual/5.1/manual.html#2.5.7" title="Table Constructors">Lua tables</a> with Lua. I believe XML can be helpful, but people need to know <em>how</em> to use it.</p>
<p>I have come across an application of XML to store an animation, frame by frame, like the animated GIFs of old. Each frame is then an image, stored as an XML element. The bizarre part is that every pixel is stored as an individual element inside the frame:</p>
<pre>
&lt;frame id="Frame001" width="180" height="240"&gt;
  &lt;array type="Int8"&gt;
    &lt;Int8 value="230"/&gt;
    &lt;Int8 value="012"/&gt;
    .
    .
    .
  &lt;/array&gt;
&lt;/frame&gt;
</pre>
<p>I believe this is the most &#8220;by the book&#8221; implementation. But this is far from optimal. When inspecting the files with a text editor (yes, I needed to do that) it was very painful. Besides, the files are huge! Why not be sensible and use <a href="http://en.wikipedia.org/wiki/Base64" title="Base64">Base64</a> encoding for the image part:</p>
<pre>
&lt;frame id="Frame001" width="180" height="240"&gt;
  TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
  IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
  dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
  dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
  .
  .
  .
&lt;/frame&gt;
</pre>
<p>Nobody could inspect the information of previous format anyway, the files gets much smaller, one could edit them by hand (like I did to copy frames between animations). And no, the files are not being compressed because they are part of a build process.</p>
<p>It only remains to be seen why it is done this way. I believe it was a mixture of a non-too-intimate knowledge of the technology and a desire to use it in it &#8220;purest&#8221; form, like those people who <em>must</em> design their programs with all the design patterns known to man. With time they may learn that a sensible dose of pragmatism is very healthy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.artisancoder.com/2008/07/misuse-of-technology-xml-case/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bibliography of Programming Languages Implementation</title>
		<link>http://www.artisancoder.com/2008/07/bibliography-of-programming-languages-implementation/</link>
		<comments>http://www.artisancoder.com/2008/07/bibliography-of-programming-languages-implementation/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 14:54:56 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Scheme]]></category>

		<guid isPermaLink="false">http://www.ventonegro.org/?p=14</guid>
		<description><![CDATA[Doing some research about compilers, interpreters and virtual machines, I have gathered some bibliography from several resources. Here it is, in no particular order: Essentials of Programming Languages, by Daniel P. Friedman, Mitchell Wand and Christopher T. Haynes Programming Language Pragmatics, by Michael L. Scott Smalltalk-80: The Language and Its Implementation, by Adele Goldberg and [...]]]></description>
			<content:encoded><![CDATA[<p>Doing some research about compilers, interpreters and virtual machines, I have gathered some bibliography from several resources. Here it is, in no particular order:</p>
<ul>
<li><a href="http://www.cs.indiana.edu/eopl/" title="Essentials of Programming Languages">Essentials of Programming Languages</a>, by <a href="http://www.cs.indiana.edu/hyplan/dfried.html" title="Daniel P. Friedman">Daniel P. Friedman</a>, <a href="http://www.ccs.neu.edu/home/wand" title="Mitchell Wand">Mitchell Wand</a> and <a href="http://www.cs.indiana.edu/hyplan/chaynes.html" title="Christopher T. Haynes">Christopher T. Haynes</a></li>
<li><a href="http://www.cs.rochester.edu/~scott/pragmatics/" title="Programming Language Pragmatics">Programming Language Pragmatics</a>, by Michael L. Scott</li>
<li><a href="http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html" title="Smalltalk-80: The Language and Its Implementation">Smalltalk-80: The Language and Its Implementation</a>, by Adele Goldberg and David Robson</li>
<li><a href="http://portal.acm.org/citation.cfm?coll=GUIDE&#038;dl=GUIDE&#038;id=525376" title="Writing Compilers and Interpreters: An Applied Approach Using C++">Writing Compilers and Interpreters: An Applied Approach Using C++</a>, by <a href="http://portal.acm.org/author_page.cfm?id=81100175907&#038;coll=GUIDE&#038;dl=GUIDE&#038;trk=0&#038;CFID=35005474&#038;CFTOKEN=42269298" title="Ronald L. Mak">Ronald L. Mak</a></li>
<li><a href="http://www.cs.princeton.edu/~appel/modern/ml/" title="Modern Compiler Implementation in ML">Modern Compiler Implementation in ML</a>, by <a href="http://www.cs.princeton.edu/~appel" title="Andrew W. Appel">Andrew W. Appel</a></li>
<li><a href="http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/LiSP.html" title="Lisp in Small Pieces">Lisp in Small Pieces</a>, by <a href="http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/Queinnec.html" title="Christian Queinnec">Christian Queinnec</a></li>
<li><a href="http://lambda-the-ultimate.org/node/1752" title="An Incremental Approach to Compiler Construction">An Incremental Approach to Compiler Construction</a>, by Abdulaziz Ghuloum</li>
<li><a href="http://compilers.iecc.com/crenshaw/" title="Let's Build a Compiler">Let&#8217;s Build a Compiler</a>, by Jack Crenshaw</li>
<li><a href="http://mitpress.mit.edu/sicp/" title="Structure and Interpretation of Computer Programs">Structure and Interpretation of Computer Programs</a>, by Harold Abelson and Gerald Jay Sussman, with Julie Sussman</li>
<li><a href="http://www.elsevier.com/wps/find/bookdescription.cws_home/677874/description#description" title="Advanced Compiler Design and Implementation">Advanced Compiler Design and Implementation</a>, by Steven Muchnick</li>
<li><a href="http://www.iro.umontreal.ca/~boucherd/mslug/meetings/20041020/minutes-en.html" title="The 90 Minute Scheme to C compiler">The 90 Minute Scheme to C compiler</a>, by Marc Feeley</li>
<li><a href="http://dragonbook.stanford.edu/" title="Compilers: Principles, Techniques, and Tools">Compilers: Principles, Techniques, and Tools</a>, by Aho, Lam, Sethi and Ulman (the &#8220;Dragon Book&#8221;)</li>
<li><a href="http://www.elsevierdirect.com/product.jsp?isbn=155860698x&#038;" title="Engineering a Compiler">Engineering a Compiler</a>, by Keith Cooper and Linda Torczon</li>
<li><a href="http://www.reddit.com/info/63hth/comments/c02pxbp" title="Mike Pall's guide to the Lua source code">Mike Pall&#8217;s guide to the Lua source code</a></li>
<li><a href="http://liinwww.ira.uka.de/csbib/Compiler/Inst.Computersprachen.TUWien?query=Ertl&#038;partial=off&#038;case=on&#038;maxnum=200&#038;sort=year" title="Anton Ertl's papers">Anton Ertl&#8217;s papers</a></li>
<li><a href="https://www.cs.tcd.ie/David.Gregg/pubs.html" title="David Gregg's papers">David Gregg&#8217;s papers</a></li>
<li><a href="http://www.ics.uci.edu/%7Efranz/Site/publications.html" title="Michael Franz's papers">Michael Franz&#8217;s papers</a></li>
<li><a href="http://www.cs.kent.ac.uk/people/staff/rej/gcbook/gcbook.html" title="Garbage Collection: Algorithms for Automatic Dynamic Memory Management">Garbage Collection: Algorithms for Automatic Dynamic Memory Management</a>, by <a href="http://www.cs.kent.ac.uk/people/staff/rej/" title="Richard Jones">Richard Jones</a> and Rafael D Lins</li>
<li><a href="http://www.norvig.com/paip.html" title="Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp">Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp</a>, by <a href="http://www.norvig.com/index.html" title="Peter Norvig">Peter Norvig</a></li>
<li><a href="http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-453.pdf" title="The Art of the Interpreter of, the Modularity Complex (Parts Zero, One, and Two)">The Art of the Interpreter of, the Modularity Complex (Parts Zero, One, and Two)</a>, by Guy Lewis Steele, Jr. and Gerald Jay Sussman</li>
<li><a href="http://library.readscheme.org/page8.html" title="Compiler section on readscheme.org">Compiler section on readscheme.org</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.artisancoder.com/2008/07/bibliography-of-programming-languages-implementation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Poster of programming paradigms</title>
		<link>http://www.artisancoder.com/2008/06/poster-of-programming-paradigms/</link>
		<comments>http://www.artisancoder.com/2008/06/poster-of-programming-paradigms/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 13:10:41 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.ventonegro.org/?p=12</guid>
		<description><![CDATA[Browsing the web today I found an interesting poster about programming paradigms. Interestingly, it puts Java right there with OCaml in the state + closures section, and Java does not have closures. But since there is no OOP in the poster, I assume the author is equaling closures to objects, which according to some is [...]]]></description>
			<content:encoded><![CDATA[<p>Browsing the web today I found an interesting <a href="http://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng107.pdf" title="The Principal Programming Paradigms">poster about programming paradigms</a>. Interestingly, it puts Java right there with OCaml in the state + closures section, and Java <a href="http://javac.info/" title="Closures for the Java Programming Language">does not have closures</a>. But since there is no OOP in the poster, I assume the author is equaling closures to objects, which according to some <a href="http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html" title="RE: What's so cool about Scheme?">is very wise</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.artisancoder.com/2008/06/poster-of-programming-paradigms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

