<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Cessen's Ramblings</title>
<link>https://blog.cessen.com</link>
<description>Nathan Vegdahl's blog of random ramblings.</description>
<item>
<title>Hash Design and Goodhart's Law</title>
<link>https://blog.cessen.com/post/2024_07_10_hash_design_and_goodharts_law</link>
<pubDate>10 Jul 2024 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2024_07_10_hash_design_and_goodharts_law</guid>
<description>
&lt;p&gt;&lt;a href=&quot;https://github.com/aappleby/smhasher&quot;&gt;SMHasher&lt;/a&gt; is a popular test suite created by Austin Appleby for testing hash functions for weaknesses and speed.  There is also a more up-to-date &lt;a href=&quot;https://github.com/rurban/smhasher&quot;&gt;fork&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;SMHasher is widely used in the design and vetting of non-cryptographic hash functions, and non-cryptographic hash functions often advertise that they pass the entire SMHasher test suite as a signal of hash quality.&lt;/p&gt;
&lt;p&gt;This is a problem for hashes with large output sizes, and in this post we&#x27;re going to explore why that is.&lt;/p&gt;
&lt;p&gt;In the process of exploring that, we&#x27;re also going to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a 128-bit hash function that cleanly passes SMHasher, while nevertheless having issues that are obvious from analysis.&lt;/li&gt;
&lt;li&gt;Identify a common issue with most currently published large-output non-cryptographic hashes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please note that this entire post is about hashes intended for use in &lt;em&gt;non-adversarial conditions&lt;/em&gt;.  Hashes that need to withstand attacks have additional considerations, and I&#x27;m not qualified to discuss that.&lt;sup class=&quot;footnote_ref&quot;&gt;&lt;a href=&quot;/post/2024_07_10_hash_design_and_goodharts_law#footnote_1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2024_07_10_hash_design_and_goodharts_law&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Major version numbers may not be sacred, but backwards compatibility is.</title>
<link>https://blog.cessen.com/post/2022_07_09_major_version_numbers_may_not_be_sacred</link>
<pubDate>09 Jul 2022 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2022_07_09_major_version_numbers_may_not_be_sacred</guid>
<description>
&lt;p&gt;Tom Preston-Werner, the creator of the &lt;a href=&quot;https://semver.org&quot;&gt;SemVer&lt;/a&gt; version numbering standard, published an article a little bit ago titled &lt;a href=&quot;https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html&quot;&gt;Major Version Numbers are Not Sacred&lt;/a&gt;.  The article is worth a read, but the basic argument (as best I can summarize it) is that we shouldn&#x27;t be afraid of incrementing the major version number of our SemVer-adhering software projects to indicate breaking changes.&lt;/p&gt;
&lt;p&gt;On the one hand, I agree with him: if SemVer is to be meaningful, then we obviously need to ensure that we increment the major version number any time we release a breaking change.  Even if the breaking change isn&#x27;t a big, sexy, marketable change.  Even if it&#x27;s just a change to a corner of the API that few, if any, people use.  You still need to increment the major version number to indicate the backwards compatibility break.  If you don&#x27;t, then you&#x27;re simply not adhering to SemVer.  And there&#x27;s nothing specifically &lt;em&gt;wrong&lt;/em&gt; about not adhering to SemVer, but you shouldn&#x27;t then claim to be adhering.&lt;/p&gt;
&lt;p&gt;On the other hand, he then goes on to argue (if I understand him correctly) that we should therefore be willing to increment the major version number willy-nilly.  And I very much disagree with him there.  It is specifically &lt;em&gt;because&lt;/em&gt; SemVer ties API breakage to the major version number that SemVer-adhering projects should be hesitant about major version bumps.  Not because the version number matters, but because &lt;em&gt;backwards compatibility&lt;/em&gt; matters.&lt;/p&gt;
&lt;p&gt;Of course, if your project is experimental, still in alpha, just for fun, etc. then this obviously doesn&#x27;t apply.  But for serious projects out of alpha/beta that are intended for real use, backwards compatibility matters &lt;em&gt;a lot&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2022_07_09_major_version_numbers_may_not_be_sacred&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Foreign Language Dictionaries</title>
<link>https://blog.cessen.com/post/2020_07_27_foreign_language_dictionaries</link>
<pubDate>27 Jul 2020 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2020_07_27_foreign_language_dictionaries</guid>
<description>
&lt;p&gt;In this post I&#x27;m going to make the case that foreign language dictionaries (e.g. Japanese-English dictionaries) are actually thesauruses, not dictionaries, and that this has important implications for how you use them when learning a language.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2020_07_27_foreign_language_dictionaries&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Ropey: Things I Would Do Differently</title>
<link>https://blog.cessen.com/post/2020_04_03_ropey_things_i_would_do_differently</link>
<pubDate>03 Apr 2020 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2020_04_03_ropey_things_i_would_do_differently</guid>
<description>
&lt;p&gt;&lt;a href=&quot;https://crates.io/crates/ropey&quot;&gt;Ropey&lt;/a&gt; is a utf8 text rope library for Rust that I wrote and maintain.  Initially I created it just for use in my own text editor &lt;a href=&quot;https://github.com/cessen/led&quot;&gt;Led&lt;/a&gt;, but early on I decided to split it out into a separate library since it seemed generally useful.  Last year I finally released Ropey 1.0, and since then I&#x27;ve had time to reflect on some of the design decisions I made, and what I do and don&#x27;t like about Ropey.&lt;/p&gt;
&lt;p&gt;To be clear, I don&#x27;t expect to create a Ropey 2.0.  At least, not any time soon.  And even if I do, I will still maintain the 1.x release indefinitely.  I strongly believe that stability is important for published code that you want others to use, and rapid-fire releasing new major versions with breaking changes is a great way to undermine that.&lt;/p&gt;
&lt;p&gt;With that said, here are the things I would go back and change if I could.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2020_04_03_ropey_things_i_would_do_differently&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Rust Community Norms for Unsafe Code</title>
<link>https://blog.cessen.com/post/2019_01_09_rust_community_norms_for_unsafe_code</link>
<pubDate>09 Jan 2019 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2019_01_09_rust_community_norms_for_unsafe_code</guid>
<description>
&lt;p&gt;I recently released &lt;a href=&quot;https://crates.io/crates/ropey&quot;&gt;Ropey 1.0&lt;/a&gt;, a text rope library for Rust.  Ropey uses unsafe code internally, and its use of unsafe unsurprisingly came up in the &lt;a href=&quot;https://www.reddit.com/r/rust/comments/accvq7/ropey_10_an_editable_text_buffer_for_rust/&quot;&gt;1.0 release thread on Reddit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The ensuing discussion (especially thanks to Shnatsel) helped me significantly reduce the amount of unsafe code in Ropey with minimal (though not non-existent) performance degradation.  But the whole thing nevertheless got me thinking about unsafe code and community norms around it, and I figured writing some of those thoughts down might be useful.&lt;/p&gt;
&lt;p&gt;My hope is this post will be part of a community-wide discussion, and I would love for others (likely smarter than me) to write their thoughts on this topic as well.  This post is simply my take on it.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2019_01_09_rust_community_norms_for_unsafe_code&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Rust 2019 - It's the Little Things</title>
<link>https://blog.cessen.com/post/2018_12_12_rust_2019_its_the_little_things</link>
<pubDate>12 Dec 2018 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2018_12_12_rust_2019_its_the_little_things</guid>
<description>
&lt;p&gt;(This post is in response to &lt;a href=&quot;https://blog.rust-lang.org/2018/12/06/call-for-rust-2019-roadmap-blogposts.html&quot;&gt;this call for posts&lt;/a&gt; on the Rust blog.  Also, this post focuses on Rust as a language, because I feel like the crates ecosystem is something that will naturally grow and mature over time as more people use Rust for more use-cases.  Also, in most respects I agree strongly with &lt;a href=&quot;https://www.jonathanturner.org/2018/12/the-fallow-year.html&quot;&gt;Jonathan Turner&#x27;s Rust 2019 post&lt;/a&gt;, which has a similar flavor to this one.)&lt;/p&gt;
&lt;p&gt;This might be an uncommon opinion—especially among those motivated enough to write a Rust 2019 post—but I actually think Rust is pretty much at a good place now.  For the kinds of things that I want to do (e.g. &lt;a href=&quot;https://psychopath.io&quot;&gt;my path tracer&lt;/a&gt;), there isn&#x27;t much that Rust is lacking as a language.  There are some fiddly things like &amp;quot;placement new&amp;quot; that could be useful, but nothing really major.  And of course, well-designed new features are always welcome, they just don&#x27;t seem particularly critical to me at this point.&lt;/p&gt;
&lt;p&gt;In other words, I&#x27;m pretty much satisfied.  Mission accomplished, as far as I&#x27;m concerned.  I think the rest is just polish.  Just the little things.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2018_12_12_rust_2019_its_the_little_things&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Optimal Anki Settings - Take 2</title>
<link>https://blog.cessen.com/post/2018_10_11_optimal_anki_settings_take_2</link>
<pubDate>11 Oct 2018 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2018_10_11_optimal_anki_settings_take_2</guid>
<description>
&lt;p&gt;I discovered a significant error in the simulations I ran in the &lt;a href=&quot;https://blog.cessen.com/post/2018_10_04_optimal_anki_settings&quot;&gt;previous post&lt;/a&gt;.  So I&#x27;d like to present the corrected simulations, and also explain more deeply the assumptions and known weaknesses even in these fixed simulations.  I also made the charts easier to use.  However, I won&#x27;t re-explain the background, so please see the previous post for that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary for those who don&#x27;t want to read the whole thing:&lt;/strong&gt; Using an interval modifier near 140% is probably a reasonable default for language learning with Anki.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2018_10_11_optimal_anki_settings_take_2&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Optimal Anki Settings</title>
<link>https://blog.cessen.com/post/2018_10_04_optimal_anki_settings</link>
<pubDate>04 Oct 2018 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2018_10_04_optimal_anki_settings</guid>
<description>
&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; I found a major problem with the below simulations, which I have fixed in a &lt;a href=&quot;https://blog.cessen.com/post/2018_10_11_optimal_anki_settings_take_2&quot;&gt;follow up post&lt;/a&gt;.  Please DO NOT use the graphs or settings advice below.  Instead see the follow up post.&lt;/p&gt;
&lt;p&gt;(&lt;em&gt;If you&#x27;re already familiar with all this background and just want to see the results, skip down to the Results section.&lt;/em&gt;)&lt;/p&gt;
&lt;p&gt;Something I haven&#x27;t talked about on this blog yet is that I&#x27;m learning Japanese.&lt;/p&gt;
&lt;p&gt;One of the tools that many people use to aid in learning a new language is an application called &lt;a href=&quot;https://apps.ankiweb.net/&quot;&gt;Anki&lt;/a&gt;.  It&#x27;s a flashcard application with automated review scheduling based on &lt;a href=&quot;https://en.wikipedia.org/wiki/Spaced_repetition&quot;&gt;spaced repetition&lt;/a&gt;.  You can make flash cards in Anki for just about anything, but in the context of language learning it&#x27;s really useful for moving vocabulary, grammar, etc. into your long-term memory.  As I understand it, it shouldn&#x27;t be your primary study method, but it can accelerate your language learning when used as a supplement to e.g. immersion/&lt;a href=&quot;https://en.wikipedia.org/wiki/Input_hypothesis&quot;&gt;input-based&lt;/a&gt; approaches.&lt;/p&gt;
&lt;p&gt;One of the resources I&#x27;ve found useful in figuring out how to even approach learning Japanese has been the YouTube channel &lt;a href=&quot;https://www.youtube.com/user/MATTvsJapan/&quot;&gt;Matt vs Japan&lt;/a&gt;, and he recently &lt;a href=&quot;https://youtu.be/uurlmW96GOg&quot;&gt;posted a video&lt;/a&gt; suggesting a different approach to configuring Anki&#x27;s spaced repetition settings.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2018_10_04_optimal_anki_settings&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Politics and Open Source Communities</title>
<link>https://blog.cessen.com/post/2018_09_18_politics_and_open_source_communities</link>
<pubDate>18 Sep 2018 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2018_09_18_politics_and_open_source_communities</guid>
<description>
&lt;p&gt;Bryan Lunduke posted a video earlier this year entitled &amp;quot;&lt;a href=&quot;https://archive.org/details/youtube-s087Ca9JnYw&quot;&gt;Divisive Politics are destroying Open Source&lt;/a&gt;&amp;quot;.  I only just now came across it, and it sparked both thoughts and feelings for me.  My thoughts are not, I think, terribly complex, but I would nevertheless like to take a moment to write them out.  In particular, as an avid &lt;a href=&quot;https://www.rust-lang.org&quot;&gt;Rust&lt;/a&gt; programmer, I&#x27;d like to give my perspective on the Rust community, since Bryan briefly touched on that.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2018_09_18_politics_and_open_source_communities&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>A New Kind of Editor</title>
<link>https://blog.cessen.com/post/2018_01_31_a_new_kind_of_editor</link>
<pubDate>31 Jan 2018 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2018_01_31_a_new_kind_of_editor</guid>
<description>
&lt;p&gt;My first post in four years!  And, interestingly, on a similar topic as my last post.&lt;/p&gt;
&lt;p&gt;Zed, the editor I raved about in my last post, is now essentially abandoned and unmaintained by its author.  This is understandable given the direction his career has taken, but is also a bit unfortunate given its innovative approach to editing.&lt;/p&gt;
&lt;p&gt;I&#x27;ve since been bouncing around using some other editors, including &lt;a href=&quot;https://atom.io&quot;&gt;Atom&lt;/a&gt;, &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;VS Code&lt;/a&gt;, and most recently &lt;a href=&quot;https://www.sublimetext.com/&quot;&gt;Sublime Text 3&lt;/a&gt;.  In all three cases I&#x27;ve configured them to function as similarly to Zed as possible, but it&#x27;s never been &lt;em&gt;quite&lt;/em&gt; right.  Under the hood, all three editors still assume an &amp;quot;open dirty buffer&amp;quot; model of document management, and this leaks out from time to time.&lt;/p&gt;
&lt;p&gt;Despite the shortcomings, I&#x27;ve been mostly okay with this state of affairs.  But there are nevertheless some things that annoy me:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Both Atom and VS Code are built on top of web technology.  I don&#x27;t like my editors taking up hundreds of megabytes of RAM with only a couple of text files open.  That&#x27;s just silly.  And in Atom&#x27;s case, it has chuggy performance to boot.&lt;/li&gt;
&lt;li&gt;Sublime Text isn&#x27;t open source.  I don&#x27;t mind paying for software (and happily did in Sublime Text&#x27;s case), but I always feel nervous about committing my workflow to software that doesn&#x27;t belong to a larger community.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Because of these annoyances, a few years ago I developed an interest in writing my own editor.  This sounds completely silly, and it pretty much is.  Nevertheless, the journey of creating my own editor has been really interesting, and I&#x27;ve learned a lot of cool things.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2018_01_31_a_new_kind_of_editor&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Zed: a Code Editor</title>
<link>https://blog.cessen.com/post/2014_10_27_zed_a_code_editor</link>
<pubDate>27 Oct 2014 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2014_10_27_zed_a_code_editor</guid>
<description>
&lt;p&gt;&lt;em&gt;(Update 2024-01-27: &lt;a href=&quot;https://github.com/zedapp/zed/&quot;&gt;Zed&lt;/a&gt; is now defunct, unfortunately.  And to make things even more confusing, &lt;a href=&quot;https://zed.dev&quot;&gt;a completely unrelated editor project&lt;/a&gt; has taken its name.  That other editor has very little, if anything, in common with the Zed editor I talk about in this post.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I like to write code.  And like many such people, I am constantly in search of the perfect code editor.  Of course, such a tool does not actually exist.  But nevertheless, from time to time I like to try new editors that seem to present something new and interesting, to see if I can improve my code editing experience.&lt;/p&gt;
&lt;p&gt;Most recently, over the last year or so, I&#x27;ve been playing with editors built on top of web technology.  Specifically, I&#x27;ve been playing with &lt;a href=&quot;http://lighttable.com&quot;&gt;Light Table&lt;/a&gt;, &lt;a href=&quot;http://brackets.io&quot;&gt;Brackets&lt;/a&gt;, &lt;a href=&quot;http://atom.io&quot;&gt;Atom&lt;/a&gt;, and &lt;a href=&quot;https://github.com/zedapp/zed/&quot;&gt;Zed&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I started off with Light Table—which is a really cool and innovative project, and I certainly recommend checking it out—but I pretty quickly migrated to Brackets (which is a bit more conventional) for most of my coding.&lt;/p&gt;
&lt;p&gt;Brackets is a really cool editor, with an obvious focus on UX concerns.  The editor itself looks beautiful, and I appreciated how it eschewed tabs in favor of a simple vertical list of open documents.  Despite Brackets being targeted at web development, I primarily used it for C++ coding.  And it worked wonderfully.  The only real complaints I had about it at the time were that its scrolling and editing were a bit laggy, and it didn&#x27;t support split views.  (Incidentally, it now supports split view.)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2014_10_27_zed_a_code_editor&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Psychopath Renderer Website</title>
<link>https://blog.cessen.com/post/2014_06_25_psychopath_renderer_website</link>
<pubDate>25 Jun 2014 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2014_06_25_psychopath_renderer_website</guid>
<description>
&lt;p&gt;I&#x27;ve created a blog/website for my 3d renderer: &lt;a href=&quot;http://psychopath.io&quot;&gt;http://psychopath.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Woo hoo!&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Ray Reordering and Breadth-First Ray Tracing</title>
<link>https://blog.cessen.com/post/2014_02_14_ray_reordering_and_breadth_first_ray_tracing</link>
<pubDate>14 Feb 2014 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2014_02_14_ray_reordering_and_breadth_first_ray_tracing</guid>
<description>
&lt;p&gt;As I mentioned in my post about random number generation, I&#x27;ve been working on an experimental 3d renderer named &amp;quot;Psychopath&amp;quot;.&lt;/p&gt;
&lt;p&gt;I haven&#x27;t posted much about it, but I would like to change that.  Psychopath is easily the largest one-man personal project I&#x27;ve ever undertaken, and it&#x27;s something I regularly get excited and obsessed about, disappearing into my own little programming world, often not eating for extended periods because I don&#x27;t want to stop working on it.&lt;/p&gt;
&lt;p&gt;So I&#x27;m going to start by writing about a core aspect of Psychopath that makes it different from most renderers I&#x27;ve seen out there: ray reordering.&lt;/p&gt;
&lt;p&gt;Psychopath is what is commonly referred to as a &amp;quot;path tracer&amp;quot;, which means (in over-simplified terms) that it is based on tracing rays of light through the scene, bouncing all over the place.&lt;/p&gt;
&lt;p&gt;The traditional way to do this kind of ray tracing is to trace one ray through the scene at a time.  This has the advantage that you only have to store one ray at a time in memory, and also has the advantage of a large body of research to draw from for making it as fast as possible.  It has the disadvantage, however, of accessing the scene in a very incoherent way.&lt;/p&gt;
&lt;p&gt;There are a couple of alternative ways of doing ray tracing, both of which are based around the idea of handling many rays at once, and both of which have many variations (some of which blur the distinction between the two).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2014_02_14_ray_reordering_and_breadth_first_ray_tracing&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Pseudo-Random Number Generators</title>
<link>https://blog.cessen.com/post/2012_06_26_pseudo_random_number_generation</link>
<pubDate>26 Jun 2012 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2012_06_26_pseudo_random_number_generation</guid>
<description>
&lt;p&gt;Holy crap it&#x27;s been a long time since I&#x27;ve blogged here.  And you know what?  I&#x27;m fine with that.  I&#x27;ll blog when I actually have something I want to share.  Like now, for example.&lt;/p&gt;
&lt;p&gt;So, I&#x27;ve been pecking away at a 3d renderer that I&#x27;ve dubbed &amp;quot;Psychopath&amp;quot;.  I&#x27;ve put it up on GitHub: &lt;a href=&quot;https://github.com/cessen/psychopath_cpp&quot;&gt;https://github.com/cessen/psychopath_cpp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Anyway, I&#x27;m discovering all sorts of nifty little things as I&#x27;m working on this, many of which are handy and general-purpose.  The latest one is a simple pseudo-random number generator that is quite robust.&lt;/p&gt;
&lt;p&gt;For most simulation applications (advanced 3d rendering can be considered such) the included random functions in e.g. most C or C++ standard libraries are insufficient.  Moreover, it is important to be able to guarantee that the RNG you are using is consistent across platforms and satisfies specific properties of randomness.  Therefore it is generally a good idea, in these applications, to include a custom RNG implementation and use that.&lt;/p&gt;
&lt;p&gt;The go-to RNG for such purposes these days is the Mersenne Twister, and as such that is the RNG I&#x27;ve been using in Psychopath up to this point.  But the code for it is quite complex.  And as it turns out, there are other RNG&#x27;s out there that are pretty much just as good, but have far simpler code.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2012_06_26_pseudo_random_number_generation&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Middle Schools In Seattle</title>
<link>https://blog.cessen.com/post/2011_10_09_middle_schools_in_seattle</link>
<pubDate>09 Oct 2011 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2011_10_09_middle_schools_in_seattle</guid>
<description>
&lt;p&gt;I have been helping one of Tiffany’s daughters with her math homework recently.  She’s currently learning about ratios.  It is no wonder to me that she needs help.  Not because she isn’t bright.  In fact, she is very bright and has a natural knack for math, I would say.  Rather, &lt;em&gt;the text book is horrendous&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I am pretty decent at math, and I deal with ratios all the time in computer graphics and animation.  But this text book confuses &lt;em&gt;me&lt;/em&gt;.  And I &lt;em&gt;already know&lt;/em&gt; the topics it is covering.  How on earth is someone new to the material supposed to find it helpful?  And from what I hear, the teachers are extremely hit-or-miss.&lt;/p&gt;
&lt;p&gt;Good god.  This makes me really angry.  The only kids that are going to learn this math are the kids that go off and learn it from completely separate sources.  And at that point, what is the point of the school system?  It seems like all it’s doing then is taking up valuable time that the kids could otherwise spend &lt;em&gt;actually&lt;/em&gt; learning things.  And how are kids supposed to develop a love of learning if this is their experience of it?  It is sabotaging these kid’s lives.&lt;/p&gt;
&lt;p&gt;Public schools need to be better than this.  Why aren’t we funding them well, again?  Why are we throwing them bone scraps?  How do we stop this?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2011_10_09_middle_schools_in_seattle&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>DRCS For Content Creation</title>
<link>https://blog.cessen.com/post/2011_05_26_drcs_for_content_creation</link>
<pubDate>26 May 2011 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2011_05_26_drcs_for_content_creation</guid>
<description>
&lt;p&gt;I love &lt;a href=&quot;http://en.wikipedia.org/wiki/Distributed_revision_control&quot;&gt;distributed revision control&lt;/a&gt; systems (DRCS).  &lt;a href=&quot;http://git-scm.com/&quot;&gt;Git&lt;/a&gt;, &lt;a href=&quot;http://mercurial.selenic.com/&quot;&gt;Mercurial&lt;/a&gt;, &lt;a href =&quot;http://bazaar.canonical.com/&quot;&gt;Bazaar&lt;/a&gt;... fantastic things.  And I use DRCS&#x27;s all the time for code.  They have a lot of benefits over centralized models.&lt;/p&gt;
&lt;p&gt;Unfortunately, they are not quite so nice for content creation.  And there are two main reasons for this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Media files are often large.  A whole project of media files is typically huge.  And a bunch of revisions of a project of media files is enormous.  And that enormity takes a freakin&#x27; huge time to transfer over a network.  All of the DRCS&#x27;s that I am aware of force you to get a copy of the entire repo (excepting for Git, but the result of a partial clone is a repo that can&#x27;t push/pull).  This is pretty much a deal breaker.&lt;/li&gt;
&lt;li&gt;Changes to media files cannot be merged.  In a distributed system this is particularly problematic.  Most RCS&#x27;s that are used for media (e.g. Perforce) have locking systems to prevent more than one person from editing a file at the same time, which prevents conflicts.  This is not possible with DRCS&#x27;s due to their nature, which makes the ability to merge changes critical.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2011_05_26_drcs_for_content_creation&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Kapow</title>
<link>https://blog.cessen.com/post/2011_01_24_kapow</link>
<pubDate>24 Jan 2011 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2011_01_24_kapow</guid>
<description>
&lt;p&gt;I just recently ran across this nifty little application:
&lt;a href=&quot;http://gottcode.org/kapow/&quot;&gt;http://gottcode.org/kapow/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&#x27;s a simple app for keeping track of your hours while doing tasks.  I&#x27;m finding it invaluable for my freelance work.  It lets you keep track of multiple projects and tasks at once, and is super simple and easy to use.  And it&#x27;s open source and cross-platform.  Woo hoo!&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>This Is Me</title>
<link>https://blog.cessen.com/post/2010_12_14_this_is_me</link>
<pubDate>14 Dec 2010 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2010_12_14_this_is_me</guid>
<description>
&lt;img src=&quot;http://jensorensen.com/wp-content/uploads/2012/12/gifts10.jpg&quot; width=500 alt=&quot;http://jensorensen.com/wp-content/uploads/2012/12/gifts10.jpg&quot; /&gt;
&lt;p&gt;Actually, that&#x27;s me on both sides.  I have a terrible time thinking of gifts to get people.  I assume other people are like me, and I draw a blank.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Going Freelance</title>
<link>https://blog.cessen.com/post/2010_07_06_going_freelance</link>
<pubDate>06 Jul 2010 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2010_07_06_going_freelance</guid>
<description>
&lt;p&gt;Project Durian is almost over.  I&#x27;m coming back to the USA on the 20th of July (this month).  Yay! :-D&lt;/p&gt;
&lt;p&gt;I&#x27;ve been planning for a while to go freelance after Durian, and I&#x27;m looking forward to seeing how it goes.  I&#x27;ve already been putting my feelers out looking for possible work.  But I&#x27;d like to ask that anyone who reads this blog keep an ear out for work that might suit my abilities.  This being my first time going freelance, it&#x27;s a bit scary.&lt;/p&gt;
&lt;p&gt;I&#x27;ll be putting together an updated demo reel as soon as I return to the USA.  But for now, here is my 2008 reel:&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/I2fpDXfbIIw&amp;amp;hl=en_US&amp;amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/I2fpDXfbIIw&amp;amp;hl=en_US&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;I am especially skilled in rigging and animation, but I am also well versed in modeling, lighting, and rendering.  I am happy to do all kinds of work, from full-fledged character animation to visualization to logo animation.  No job is too mighty nor too humble.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2010_07_06_going_freelance&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>A Note About Pigeons</title>
<link>https://blog.cessen.com/post/2010_06_07_a_note_about_pigeons</link>
<pubDate>07 Jun 2010 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2010_06_07_a_note_about_pigeons</guid>
<description>
&lt;p&gt;I&#x27;ve discovered a strange phenomenon here in Europe: people hate pigeons.  They call them &amp;quot;rats with wings&amp;quot; (of course demonizing rats is also problematic), and I see people kicking at them and shoing them away.  It was particularly distressing seeing a boy perhaps 8 years old trying to kick pigeons.  (To be fair, most people ignore them rather than kick them, but still.)&lt;/p&gt;
&lt;p&gt;Does this distain for pigeons also exist in the USA?  I have not encountered it there.&lt;/p&gt;
&lt;p&gt;This negativity towards pigeons has only distressed me more as I have gotten to know a few.  I go out to the dock and feed several species of birds on a daily basis now, and it is easily the best part of my day.  With the exception of the crows and herens, I&#x27;ve had at least one bird from each species eat directly from my hand at some point.  It&#x27;s really an amazing feeling.&lt;/p&gt;
&lt;p&gt;But the pigeons have become particularly friendly, and a few of them will happily perch on me as I feed them.  Two of them will even let me pet them, as long as I&#x27;m careful (their feathers are so soft!).  One of them even perched on my head today for a brief moment.  It&#x27;s an extraordinary experience, having these birds trust you like that.  Feeling their feet gripping on you, walking on you.  The weight of their bodies.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2010_06_07_a_note_about_pigeons&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Axe Cop</title>
<link>https://blog.cessen.com/post/2010_05_22_axe_cop</link>
<pubDate>22 May 2010 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2010_05_22_axe_cop</guid>
<description>
&lt;p&gt;I am a huge fan of non-sequiturs in humor.  And therefore, I adore this web comic: &lt;a href=&quot;http://axecop.com&quot;&gt;Axe Cop&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It is written by a 5 year old, and illustrated by his 29 year old brother.  The result is full of so much hilarity and awesomeness that you just have to go and read it.&lt;/p&gt;
&lt;p&gt;In retrospect, I think every creative team should have at least one 5 year old kid on it.  Adults get way to caught up in what &amp;quot;makes sense&amp;quot;.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Durian DVD Pre-Sale Started!</title>
<link>https://blog.cessen.com/post/2009_07_30_durian_dvd_pre_sale_started</link>
<pubDate>30 Jul 2009 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2009_07_30_durian_dvd_pre_sale_started</guid>
<description>
&lt;p&gt;Exciting news!  The &lt;a href=&quot;http://durian.blender.org&quot;&gt;Durian DVD pre-sale campaign&lt;/a&gt; has started!&lt;/p&gt;
&lt;p&gt;You can pre-order the DVD here: &lt;a href=&quot;http://www.blender3d.org/e-shop/product_info_n.php?products_id=120&quot;&gt;Durian Open Movie DVD&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And if you order before September 15th you get your name in the credits of the movie! :-)&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>104 Degrees Fahrenheit</title>
<link>https://blog.cessen.com/post/2009_07_29_104_degrees_fahrenheit</link>
<pubDate>29 Jul 2009 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2009_07_29_104_degrees_fahrenheit</guid>
<description>
&lt;p&gt;And 30% humidity.&lt;/p&gt;
&lt;p&gt;I hate the weather this week.  I could really go for some cold, clouds, and rain right about now.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Sita Sings the Blues</title>
<link>https://blog.cessen.com/post/2009_07_04_sita_sings_the_blues</link>
<pubDate>04 Jul 2009 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2009_07_04_sita_sings_the_blues</guid>
<description>
&lt;p&gt;I recently ran across a feature-length animated movie entitled &amp;quot;Sita Sings the Blues&amp;quot;.  One of the most surprising things about it is that it&#x27;s released for free under the Creative Commons share-alike license.  You can download it here:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.sitasingstheblues.com&quot;&gt;http://www.sitasingstheblues.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to support it financially, you can also donate or buy the DVD.&lt;/p&gt;
&lt;p&gt;It&#x27;s a pretty fun treatment of the story of Sita, from the Indian epic &amp;quot;Ramayana&amp;quot;.&lt;/p&gt;
&lt;p&gt;What&#x27;s most interesting to me about all of this is that originally Nina Paley, the artist behind the movie, wanted to release it through more traditional channels.  But due to her experiences with licensing issues (involving music from the 1920&#x27;s that she used heavily in the film), she became a &lt;a href=&quot;http://en.wikipedia.org/wiki/Free_Culture_movement&quot;&gt;Free Culture&lt;/a&gt; advocate.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Out of Gas</title>
<link>https://blog.cessen.com/post/2009_07_01_out_of_gas</link>
<pubDate>01 Jul 2009 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2009_07_01_out_of_gas</guid>
<description>
&lt;p&gt;Aaron and I visited Smurf and Sarah in Pullman last weekend.  We had a great time catching up and doing all sorts of things.  We went to see Pixar&#x27;s &amp;quot;Up&amp;quot;, which was pretty fun.&lt;/p&gt;
&lt;p&gt;But as with all visits, it came to an end.  Aaron and I packed up the car, hugged the natives goodbye, and drove off over the horizon.&lt;/p&gt;
&lt;p&gt;Then we were pulled over by a cop.  We hadn&#x27;t noticed that the speed limit had changed, and thus were speeding.  It was blazing hot, and we had to wait in the car for what seemed like forever while the policeman went and logged some variety of information.&lt;/p&gt;
&lt;p&gt;Fortunately the policeman was understanding.  We were strangers to this town, after all.  And he gave us some directions we already had.&lt;/p&gt;
&lt;p&gt;So off we went yet again.  Aaron and I had a grand time talking about all manner of things, but particularly how I&#x27;ve actually become very judgmental of people based on appearance (it turns out that if you dress &amp;quot;nicely&amp;quot; or &amp;quot;trendy&amp;quot;, then I&#x27;m far more likely to write you off as someone not worth knowing; but if you dress strangely or simply haven&#x27;t put particular effort into your appearance, then I&#x27;m more likely to want to get to know you).&lt;/p&gt;
&lt;p&gt;In any case, while we were talking we ended up on the down-side of a hill.  Aaron then discovered something quite strange.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2009_07_01_out_of_gas&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Project Durian</title>
<link>https://blog.cessen.com/post/2009_06_20_project_durian</link>
<pubDate>20 Jun 2009 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2009_06_20_project_durian</guid>
<description>
&lt;p&gt;I got onto &lt;a href=&quot;http://durian.blender.org&quot;&gt;Project Durian&lt;/a&gt;!  Wootz!&lt;/p&gt;
&lt;p&gt;I&#x27;ll be leaving for Amsterdam probably late September/early October.  The project is slated to last 6-9 months, depending on funding.&lt;/p&gt;
&lt;p&gt;This really looks like it&#x27;s going to be another awesome project.  And in terms of artistic goals it definitely jives with me.&lt;/p&gt;
&lt;p&gt;Also, yet again the team is made up of such extraordinary talent that it really humbles me.  And anyone who knows me will tell you that I&#x27;m not easily humbled. ;-)&lt;/p&gt;
&lt;p&gt;I hope I can live up to the expectations of the project!&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>MyPaint 0.6 Released!</title>
<link>https://blog.cessen.com/post/2009_01_31_mypaint_0_6_release</link>
<pubDate>31 Jan 2009 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2009_01_31_mypaint_0_6_release</guid>
<description>
&lt;p&gt;I&#x27;d like to take a moment once again to highlight the software &lt;a href=&quot;http://mypaint.intilinux.com&quot;&gt;MyPaint&lt;/a&gt;.  It has continued development at a slow but steady pace since the &lt;a href=&quot;http://blog.cessen.com/?p=25&quot;&gt;last time I mentioned it&lt;/a&gt;, and has &lt;a href=&quot;http://mypaint.intilinux.com/?p=31&quot;&gt;just hit version 0.6&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The biggest new feature in 0.6 is layers.  They&#x27;re entirely hotkey driven, which may seem strange, but it actually works really well.  The hotkeys are well chosen (for example, PageUp/PageDown to switch layers), and the layers concept is kept extremely simple.&lt;/p&gt;
&lt;p&gt;Support for layers implies adding support for a file format that can store layers.  MyPaint has gone with the &lt;a href=&quot;http://create.freedesktop.org/wiki/index.php/OpenRaster&quot;&gt;OpenRaster&lt;/a&gt; format, which seems pretty nice.  It&#x27;s basically an archive of XML and various binary files (such as PNG files).&lt;/p&gt;
&lt;p&gt;Aside from layers there have been some improvements in the undo and saving features.  Undo is now blazing fast, just like one would expect it to be.  And there are more options for saving, the best one being the scratch-save feature.&lt;/p&gt;
&lt;p&gt;Scratch-save saves the current painting to a unique file.  Each subsequent scratch-save creates a new unique file.  This is great for saving stages of your paintings as you go, or just quickly saving backup files in case something horrible happens.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2009_01_31_mypaint_0_6_release&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Peach Over, Coming Home</title>
<link>https://blog.cessen.com/post/2008_04_15_peach_over_coming_home</link>
<pubDate>15 Apr 2008 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2008_04_15_peach_over_coming_home</guid>
<description>
&lt;p&gt;As I&#x27;m writing this blog entry I am sitting on the couch at the Blender Institute, acutely aware that I will never be able to revisit this part of my life again.  Peach was a truly remarkable experience, even if I can&#x27;t remember half of it.&lt;/p&gt;
&lt;p&gt;At the beginning of the project I had high hopes, and was aware of a larger context in which the project was happening.  I talked of new business models, and how the media industry was changing right under our noses... and how the big boys were going to have to change with it, or get out.  I talked about how media production is becoming more local, and how media distribution is becoming more direct.&lt;br /&gt;
But during the actual production of Peach I forgot all about that stuff.  We were just making a short animated film.  It completely slipped my mind that this project was related to those things at all.&lt;/p&gt;
&lt;p&gt;Now that the fog of production is clearing, these thoughts are sifting back through my mind.  And although Big Buck Bunny certainly won&#x27;t spark any sort of instantaneous change -- or indeed, any change at all just on its own -- it&#x27;s nice to know that I&#x27;ve helped create something that is a part of this change, even if it&#x27;s only a small part.&lt;/p&gt;
&lt;p&gt;On a slightly different subject, the premiere of Peach was pretty awesome.  We got a standing ovation from the audience.  It was enthralling.  Although I must confess that I&#x27;m holding out to see the results of the online release.  The premiere consisted largely of people that were already interested in and supportive of the project, so even though they were strangers, the ovation had a tinge of that parents-at-a-school-play feel.  They were there to be supportive in the first place, so the ovation means less.  But it was still an amazing feeling, and it did still mean &lt;em&gt;something&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2008_04_15_peach_over_coming_home&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>The Movie Is Shipped!</title>
<link>https://blog.cessen.com/post/2008_04_03_the_movie_is_shipped</link>
<pubDate>03 Apr 2008 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2008_04_03_the_movie_is_shipped</guid>
<description>
&lt;p&gt;Big Buck Bunny is finally on its way to be printed to film (in Norway no less!), but the road there was more than a little bumpy, as outlined by Ton &lt;a href=&quot;http://peach.blender.org/index.php/woosh-the-deadline-passed-or-how-everything-that-can-go-wrong-does/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I wasn&#x27;t there for most of it, because unlike the heroes that stayed up all night, I was sleeping.  But it was crazy last-minute stuff.  I wonder if all movie productions go this way; in almost all the movie projects I&#x27;ve taken part in, things were pushed right up to the last minute.&lt;/p&gt;
&lt;p&gt;Anyhoo, now I can finally breath again, and take a break while working on the DVD.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>A Complete Audio/Video Pipeline On Linux</title>
<link>https://blog.cessen.com/post/2008_04_01_a_complete_audio_video_pipeline_on_linux</link>
<pubDate>01 Apr 2008 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2008_04_01_a_complete_audio_video_pipeline_on_linux</guid>
<description>
&lt;p&gt;I accomplished something exciting tonight.  At least, exciting for me.  You see, one of the very last things that was keeping Windows on my computer was the lack of good audio and video tools for Linux.  Being a film maker at heart, there&#x27;s no way I could abandon the tools that let me make movies.&lt;/p&gt;
&lt;p&gt;Tonight, I finally patched together an entire audio/video pipeline that takes me all the way from video capture and audio recording, to video editing and audio mastering.  Not that I did this all in one night.  I&#x27;ve been looking for these tools for a long time, and slowly collecting software and taking note of what works and what doesn&#x27;t.  But tonight the last piece of the puzzle fell in place.&lt;/p&gt;
&lt;p&gt;The tools I&#x27;ve assembled are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.kinodv.org&quot;&gt;Kino&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://audacity.sourceforge.net&quot;&gt;Audacity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.blender.org&quot;&gt;Blender&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ardour.org&quot;&gt;Ardour&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://xjadeo.sourceforge.net&quot;&gt;xjadeo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jackaudio.org&quot;&gt;JACK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ffmpeg.mplayerhq.hu&quot;&gt;ffmpeg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I don&#x27;t want to bore you too much with the details, but here&#x27;s a quick run-down of what role each of these play:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2008_04_01_a_complete_audio_video_pipeline_on_linux&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Free Hugs</title>
<link>https://blog.cessen.com/post/2008_03_30_free_hugs</link>
<pubDate>30 Mar 2008 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2008_03_30_free_hugs</guid>
<description>
&lt;p&gt;I was invited the other day by Frank (a programmer on the &lt;a href=&quot;http://apricot.blender.org&quot;&gt;Apricot&lt;/a&gt; Team) to attend a Free Hugs gathering at a crowded square in Amsterdam.&lt;/p&gt;
&lt;p&gt;For those of you who aren&#x27;t familiar with Free Hugs, watch this video: &lt;a href=&quot;http://www.youtube.com/watch?v=vr3x_RRJdd4&quot;&gt;Free Hugs Campaign&lt;/a&gt;
In short, you stand around holding signs with &amp;quot;Free Hugs&amp;quot; written on them, and let people hug you (and hug back, of course).&lt;/p&gt;
&lt;p&gt;Needless to say, I couldn&#x27;t possibly refuse to go along.  And I&#x27;m glad I did.  It was quite an experience, in more ways than I anticipated.&lt;/p&gt;
&lt;p&gt;There was of course the great fun of it, and the elated feelings from human contact.  But it was surprisingly moving at times.  There were some people that I could barely communicate with due to language barriers, but we connected through hugs.  And it didn&#x27;t matter who it was.  All ages.  All races.  All classes.  All genders.  It was very hippie and awesome.&lt;/p&gt;
&lt;p&gt;Even people that didn&#x27;t hug would often let slip a betrayingly genuine smile across their face.&lt;/p&gt;
&lt;p&gt;It was also fun having people take pictures of us.  I&#x27;m not a big fan of posed pictures, but having people take pictures of us standing out there with &amp;quot;Free Hugs&amp;quot; signs, and giving hugs to complete strangers, seems very representative of the way I&#x27;d like to be remembered.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2008_03_30_free_hugs&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>The Devil Is In The Details</title>
<link>https://blog.cessen.com/post/2008_03_29_the_devil_is_in_the_details</link>
<pubDate>29 Mar 2008 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2008_03_29_the_devil_is_in_the_details</guid>
<description>
&lt;p&gt;First off, it seems people are starting to find my blog from track-backs on the Project Peach website.  After noticing this, it suddenly brought into sharp focus that I&#x27;ve slipped in my intent to keep my blog relatively impersonal.  &lt;em&gt;Especially&lt;/em&gt; entries I made during the more stressful parts of Peach, which are particularly inappropriate if Blender users start reading this blog.&lt;/p&gt;
&lt;p&gt;So with that in mind I&#x27;ve cleaned up the blog a little.&lt;/p&gt;
&lt;p&gt;Anyhoo, all that unpleasantness aside, Project Peach is rapidly coming to a close, with only two or three days left of actual production.  After that we&#x27;ll start work on the DVD.  For my part, I&#x27;ll be working on documenting how to use the character rigs.  I&#x27;m not entirely sure what format or formats I&#x27;ll use for that, but I&#x27;d like to make it at least mildly entertaining, even for people who have no idea what a &amp;quot;rig&amp;quot; is.
The nice thing about working on the DVD is that it will be notably less stressful than these last parts of production.&lt;/p&gt;
&lt;p&gt;As I mentioned in a previous entry, the movie was essentially finished a week or more ago, and since then we&#x27;ve just been working on improving the details.  Turns out that this is actually really stressful.  You don&#x27;t exactly get a satisfied feeling from discussing for twelve thousand and two hours which moment a character&#x27;s left pinky finger should twitch.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2008_03_29_the_devil_is_in_the_details&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>A First Time For Everything</title>
<link>https://blog.cessen.com/post/2008_03_25_a_first_time_for_everything</link>
<pubDate>25 Mar 2008 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2008_03_25_a_first_time_for_everything</guid>
<description>
&lt;p&gt;Today, for the first time in my life, I saw something that I helped create projected onto the silver screen of a full-fledged movie theater.  From honest-to-god 35mm film, no less.&lt;/p&gt;
&lt;p&gt;In retrospect it really isn&#x27;t such a big deal, but it &lt;em&gt;was&lt;/em&gt; pretty cool.&lt;/p&gt;
&lt;p&gt;I&#x27;m looking forward to seeing the whole short animation at the premier.  Especially in a theater that actually has people in it.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Project Euler</title>
<link>https://blog.cessen.com/post/2008_03_24_project_euler</link>
<pubDate>24 Mar 2008 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2008_03_24_project_euler</guid>
<description>
&lt;p&gt;First some good news about Project Peach: the movie is done!  It&#x27;s finished!  If we wanted to, we could release it right now.  However, we are taking the time we have left to go back and improve the parts we are least happy with.  Even with this extra time, there&#x27;s going to be plenty of things in the movie that we&#x27;ll cringe at, but I suspect a typical audience won&#x27;t notice them (or at least won&#x27;t care about them).&lt;/p&gt;
&lt;p&gt;Second -- and this is the primary point of this post -- I discovered an awesome website the other day: &lt;a href=&quot;http://projecteuler.net&quot;&gt;http://projecteuler.net&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;They have a whole bunch of math problems geared toward being solved by computer.  I&#x27;m finding it to be quite fun.&lt;/p&gt;
&lt;p&gt;The really cool thing about it is that the emphasis isn&#x27;t just on getting the right answers (although you do have to do that too), but also on finding the most elegant and efficient ways to compute the answer.  In effect, it&#x27;s about figuring out and deriving math concepts.  And I find that a lot of fun.&lt;/p&gt;
&lt;p&gt;Interestingly, I think this is actually a really good example of one of the reasons reason I rarely enjoyed math classes.  In most math classes (at least that I took) they give you the formulas, and just wanted you to use them to find the answers.  For me, that&#x27;s extraordinarily boring.  For me the fun part is figuring out those formulas and concepts myself.  Perhaps that&#x27;s a slow way to learn math, but it&#x27;s a hell of a lot more fun that having it spoon-fed to you.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2008_03_24_project_euler&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Rewards Punish</title>
<link>https://blog.cessen.com/post/2008_01_13_rewards_punish</link>
<pubDate>13 Jan 2008 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2008_01_13_rewards_punish</guid>
<description>
&lt;p&gt;I ran across this old New York Times article recently: &lt;a href=&quot;http://www.alfiekohn.org/managing/fbrftb.htm&quot;&gt;For Best Results, Forget the Bonus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The article in general is interesting to me, but in particular I wonder how this applies to the most predominant schooling paradigms in use today.  How many rely on reward systems?&lt;/p&gt;
&lt;p&gt;For example, grades -- even if they serve a rating/gauging purpose -- also double as a reward system, even if only unintentionally.  And in many (most?) cases, students are made acutely aware of the grading system.  The goal quickly becomes getting a good grade rather than learning something.  And even if the two are linked (i.e. learning something leads to good grades), making the grades the focus -- or even just something the students are aware of at all -- could very well be harmful.&lt;/p&gt;
&lt;p&gt;I even wonder how much parents fall into this reward trap. What is their primary concern?  What is the first thing that comes to their mind?  Their child getting a good grade and passing the class, or their child learning something?  Their child doing well in school, or their child progressing as an informed and intelligent human being?  And how, then, does that translate into how they then try to motivate their child?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2008_01_13_rewards_punish&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Dumbing Up</title>
<link>https://blog.cessen.com/post/2007_12_06_dumbing_up</link>
<pubDate>06 Dec 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_12_06_dumbing_up</guid>
<description>
&lt;p&gt;In my off hours from Peach, and when not working on my personal animation project, I&#x27;ve been reading up on various programming topics (most recently I&#x27;ve been looking into unit testing), and today I ended up browsing my way to this page: &lt;a href=&quot;http://c2.com/cgi/wiki?SystemMetaphor&quot;&gt;http://c2.com/cgi/wiki?SystemMetaphor&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As cool as the &amp;quot;system metaphor&amp;quot; idea is, the thing that I found specifically interesting was a single comment on the page: &amp;quot;don&#x27;t dumb-down to simplify... dumb-up&amp;quot;&lt;/p&gt;
&lt;p&gt;This struck me as a particularly insightful statement.  Not so much due to its warning to avoid dumbing things down, but rather because it acknowledges the existence and value of dumbing things &lt;em&gt;up&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Reading that comment made me pause for a moment, because it expressed so simply a truth that I think I&#x27;ve been vaguely aware of for a long time: often times you actually gain rather than lose meaning and insight when you translate something into simpler terms.&lt;/p&gt;
&lt;p&gt;It also seems to me that, conversely, you can smart things &lt;em&gt;down&lt;/em&gt;, resulting in a net loss of meaning and insight.&lt;/p&gt;
&lt;p&gt;Of course, dumbing &lt;em&gt;down&lt;/em&gt; and smarting &lt;em&gt;up&lt;/em&gt; are also truths of our world.  But the phrase &amp;quot;dumbing down&amp;quot; is so pervasive as to indicate (perhaps) that our view of simplification as a culture is largely negative—that we have this idea that translating something into simpler terms is for stupid people.  And that is, quite frankly, patently absurd.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Bazaar: Revision Control Awesomeness</title>
<link>https://blog.cessen.com/post/2007_11_26_bazaar_revision_control_awesomeness</link>
<pubDate>26 Nov 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_11_26_bazaar_revision_control_awesomeness</guid>
<description>
&lt;p&gt;On the weekends and during off-hours from Peach I&#x27;ve been pecking away at a personal animation project of mine.  It isn&#x27;t even at the 3D stage yet—I&#x27;m still writing the story and doing character design—but still, I&#x27;m a revision control junky, and I want my files versioned.  So versioned they will be.&lt;/p&gt;
&lt;p&gt;My first reaction was to use Subversion, but I would need to set up a server for that.  Making an online server for a small personal project (that might not even get off the ground) seemed like overkill, but on the other hand, making a local server on my laptop would tie my project to my laptop which seemed equally silly.&lt;/p&gt;
&lt;p&gt;So what was a poor soul like me to do?&lt;/p&gt;
&lt;p&gt;I decided that it was time to look for alternatives.  I had heard of a few other revision control systems, namely: Git (used for the Linux kernel), Arch (the GNU solution), Mercurial, and Bazaar.  So I decided to check them out.&lt;/p&gt;
&lt;p&gt;The thing that all these systems have in common is that they are all decentralized revision control systems, meaning that they don&#x27;t use a centralized server (at least not by default) to store revisions.  It&#x27;s sort of a peer-to-peer approach to revision control.  Instead of having a central repository, each person working on a project gets their own local copy of the entire revision tree (called a &amp;quot;clone&amp;quot; or &amp;quot;branch&amp;quot;).  This is handy because it means you can use revision control locally, committing to your own local copy of the repository.  The primary means of combining changes then becomes merging branches rather than committing to a repository.  It took me a bit to wrap my head around this, as I&#x27;m used to the commit paradigm, but it really makes a lot of sense.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2007_11_26_bazaar_revision_control_awesomeness&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>A Couple Of Awesome Programs</title>
<link>https://blog.cessen.com/post/2007_11_21_a_couple_of_awesome_programs</link>
<pubDate>21 Nov 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_11_21_a_couple_of_awesome_programs</guid>
<description>
&lt;p&gt;For you artists out there, I&#x27;ve run across a couple of really nifty programs.  Actually, I ran across them a while ago, and have been using them for some time now.  But I&#x27;m just now getting around to writing about them.&lt;/p&gt;
&lt;p&gt;The first one is called &lt;a href=&quot;http://people.ee.ethz.ch/~mrenold/mypaint/&quot;&gt;MyPaint&lt;/a&gt;.  It&#x27;s a small paint program written in Python and C.  In some respects it is quite primitive (it doesn&#x27;t support layers, for instance), but in other ways it&#x27;s extraordinarily advanced (its brush system is insane).  However, the thing I like best about it is that it has an infinite canvas, meaning that if you run out of room you can simply scroll over and keep painting.&lt;/p&gt;
&lt;p&gt;I use MyPaint as a digital sketchbook.  You can assign any brush/color combo to the number keys on the keyboard, so I simply assign a black pencil brush to 1 and a white paint brush (eraser) to 2, and then sketch away.  I like to close all the windows except the drawing area and then maximize it so that I have the maximum drawing area.  Then I can just sketch to my hearts content without ever running out of room thanks to the infinite canvas.&lt;/p&gt;
&lt;p&gt;I don&#x27;t recommend mypaint as a full-fledged paint program, but as a simple sketch program I have found nothing that beats it.  Seriously.  I mean it.  This is the ultimate sketch program.  Ever.  The only thing that could make it better would be if it recognized the back end of my stylus as an eraser (unfortunately it treats it the same as the tip).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2007_11_21_a_couple_of_awesome_programs&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Amsterdam And Project Peach</title>
<link>https://blog.cessen.com/post/2007_10_06_amsterdam_and_project_peach</link>
<pubDate>06 Oct 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_10_06_amsterdam_and_project_peach</guid>
<description>
&lt;p&gt;So here I am, sitting in the kitchen at the studio with my laptop after the first week of project Peach, sipping at some orange juice.  And I&#x27;m thinking this: holy shit, this is going to be awesome.&lt;/p&gt;
&lt;p&gt;The apartment I&#x27;m staying in is large.  Very large.  Which is something I didn&#x27;t expect.  It even has a proper dining room, for goodness&#x27; sake.  Admittedly, I&#x27;m sharing it with three other people.  But that&#x27;s awesome, because I think the size of the apartment would be intimidating otherwise.  Moreover, I really like the guys I&#x27;m sharing it with.  We even sat down and watched &amp;quot;Be Somebody Or Be Somebody&#x27;s Fool&amp;quot; one night.  We had a blast.  I hope to introduce them to UHF at some point.&lt;/p&gt;
&lt;p&gt;The apartment is about 3 kilometers from the studio, which makes for both a nice walk and a nice bike ride.  Speaking of which, everyone bikes in Amsterdam.  I hadn&#x27;t ridden a bike in quite some time, so the first couple of trips were a little interesting.  But I&#x27;m starting to get my biking feet back.  It&#x27;s nice that they have dedicated bike lanes everywhere here—they even have a tiny concrete divider to separate them from the road.&lt;/p&gt;
&lt;p&gt;The first week of Project Peach was a workshop led by &lt;a href=&quot;http://www.arnokroner.com&quot;&gt;Arno Kroner&lt;/a&gt;.  He gave us a crash course in story development, visual story telling, and animation production.  For many of us it was mostly review, but it was still very valuable.  He went over a lot of stuff that had gotten lost in the recesses of my mind, so it was valuable and important to dig them up to the forefront again.  The team also now has a common vocabulary to communicate with, which is good.  And just in general I think the workshop has prepared us to be more organized and efficient than we might have been otherwise.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2007_10_06_amsterdam_and_project_peach&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>A Fundamental Problem</title>
<link>https://blog.cessen.com/post/2007_08_02_a_fundamental_problem</link>
<pubDate>02 Aug 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_08_02_a_fundamental_problem</guid>
<description>
&lt;p&gt;I ran across a &lt;a href=&quot;http://lessig.org/blog/2007/06/required_reading_the_next_10_y_1.html&quot;&gt;blog entry&lt;/a&gt; from Lawrence Lessig today, the basic gist of which is that our government is—at the moment—quite incapable of objectively tackling any issue in which large money holders have a vested interest.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Project Peach DVD Pre-sales Started</title>
<link>https://blog.cessen.com/post/2007_08_01_project_peach_dvd_pre_sales_started</link>
<pubDate>01 Aug 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_08_01_project_peach_dvd_pre_sales_started</guid>
<description>
&lt;p&gt;For any of you who would like to have a copy of the Project Peach movie (whatever it turns out being) and who would like to fund the project, you can now &lt;a href=&quot;http://peach.blender.org/index.php/peach-dvd-pre-sale-campaign-started/&quot;&gt;pre-order DVD&#x27;s&lt;/a&gt; for it.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>More On Project Peach: A New Business Model</title>
<link>https://blog.cessen.com/post/2007_07_26_more_on_project_peach_a_new_business_model</link>
<pubDate>26 Jul 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_07_26_more_on_project_peach_a_new_business_model</guid>
<description>
&lt;p&gt;My entry about being &lt;a href=&quot;http://blog.cessen.com/?p=18&quot;&gt;accepted onto Project Peach&lt;/a&gt; was short, so I&#x27;d like to take a bit to expound on my reasons for excitement.  (This is also a convenient excuse to put off a little longer writing a paper for one of my classes.)&lt;/p&gt;
&lt;p&gt;When I decided to submit my portfolio to Peach for review, it was with some reservations.  To be blunt, I don&#x27;t think my portfolio is that good (professionally, anyway).  So I was surprised when I receive an e-mail informing me that my mission—should I choose to accept it—was to jump aboard Project Peach, and embark on a journey of craziness.  Obviously, I was excited.&lt;/p&gt;
&lt;p&gt;My excitement was (and is) three-fold:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;I have an awesome job, working with awesome people!&lt;/li&gt;
	&lt;li&gt;I get to live in Europe for six months!&lt;/li&gt;
	&lt;li&gt;I get to take part in one of the first attempts at a new business model for media production!&lt;/li&gt;
&lt;/ol&gt;
Contrary to what some people might expect, I am most excited about that last bit.  For that reason, and because it should be obvious why I&#x27;m excited about the first two (unless you dislike Europe, which I&#x27;m pretty sure is grounds for declaring a person legally insane), I will spend the rest of this entry explaining why I am excited about this new business model.

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2007_07_26_more_on_project_peach_a_new_business_model&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Accepted To Project Peach!</title>
<link>https://blog.cessen.com/post/2007_07_06_accepted_to_project_peach</link>
<pubDate>06 Jul 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_07_06_accepted_to_project_peach</guid>
<description>
&lt;p&gt;I&#x27;m part of the &lt;a href=&quot;http://www.blender.org/blenderorg/blender-foundation/2007-plans/peach-open-movie/&quot;&gt;Project Peach&lt;/a&gt; team!  Wootz!&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>TED Talks: How We Live Our Lives</title>
<link>https://blog.cessen.com/post/2007_04_22_ted_talks_how_we_live_our_lives</link>
<pubDate>22 Apr 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_04_22_ted_talks_how_we_live_our_lives</guid>
<description>
&lt;p&gt;Here&#x27;s a couple of TED Talks that both relate to how we live our lives.  One is about &lt;a href=&quot;http://www.ted.com/index.php/talks/view/id/73&quot;&gt;slowing down&lt;/a&gt;, the other is about &lt;a href=&quot;http://www.ted.com/index.php/talks/view/id/71&quot;&gt;living your life to better the world&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;They&#x27;re both excellent.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Jennifer Lin Improvises</title>
<link>https://blog.cessen.com/post/2007_04_21_jennifer_lin_improvises</link>
<pubDate>21 Apr 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_04_21_jennifer_lin_improvises</guid>
<description>
&lt;p&gt;For those who are interested, there&#x27;s a &lt;a href=&quot;http://www.ted.com/index.php/talks/view/id/46&quot;&gt;TED Talk from Jennifer Lin&lt;/a&gt;, the pianist prodigy.  In it she plays a few pieces of music, and speaks briefly about music composition.&lt;/p&gt;
&lt;p&gt;I particularly like here improvised piece.  The other pieces were more complicated, but the one she improvised seemed much more poignant.&lt;/p&gt;
&lt;p&gt;It was also interesting to hear her talk about music composition.  She compares music composition to drawing, where you make an initial sketch and then polish it from there.  It was a neat comparison, and it made me think of something that I probably wouldn&#x27;t have otherwise.  The thing is, I tend to like the initial sketches that artists do more than the finished works.  There&#x27;s more energy and personality to them, and they are simply more visually interesting and appealing to me.  Their imperfections are an asset rather than a detriment.&lt;/p&gt;
&lt;p&gt;I wonder if the same isn&#x27;t true with music.  If the unpolished compositions and improvisations simply have more life to them, and although polishing brings color and clarity, it also sucks something important out of the music?&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Stop And Smell The Roses</title>
<link>https://blog.cessen.com/post/2007_04_18_stop_and_smell_the_roses</link>
<pubDate>18 Apr 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_04_18_stop_and_smell_the_roses</guid>
<description>
&lt;p&gt;&lt;a href=&quot;http://www.washingtonpost.com/wp-dyn/content/article/2007/04/04/AR2007040401721.html?hpid=artslot&quot;&gt;This&lt;/a&gt; is quite possibly one of the most powerful things I&#x27;ve read in a long time.&lt;/p&gt;
&lt;p&gt;I&#x27;m not a huge fan of classical music as a genre, mind you (although I can still enjoy it in the right context).  But the article still spoke to me.  Particularly because I feel like I&#x27;m falling more and more into that unfortunate American rhythm of life (or lack thereof) that makes you feel like you oughtn&#x27;t do things like stop and listen to/watch a street performer.  I need reminders every once in a while to actively fight that.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
<item>
<title>Natural Docs</title>
<link>https://blog.cessen.com/post/2007_03_31_natural_docs</link>
<pubDate>31 Mar 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_03_31_natural_docs</guid>
<description>
&lt;p&gt;I&#x27;ve been intending for quite some time to buckle down and learn &lt;a href=&quot;http://www.doxygen.org&quot;&gt;Doxygen&lt;/a&gt;, due both to its usefulness in maintaining large programming projects (which I&#x27;m increasingly becoming involved with) and its widespread use within the open source community.&lt;/p&gt;
&lt;p&gt;For those of you who aren&#x27;t familiar with it, the idea behind Doxygen is that you write code documentation in your source code files using a specific format, and then Doxygen will process the source files and automatically generate developer documentation.  It&#x27;s really quite nifty.&lt;/p&gt;
&lt;p&gt;So the other day I decided, &amp;quot;Hey, I should learn Doxygen.&amp;quot;  Of course, being me, I couldn&#x27;t just go and learn Doxygen with blinders on. No, I had to take a look at the alternatives out there first.  And as it so happens, there are quite a few.  However, none of them really perked my interest except for one: &lt;a href=&quot;http://www.naturaldocs.org&quot;&gt;Natural Docs&lt;/a&gt;.  Which I will now discuss.&lt;/p&gt;
&lt;p&gt;The main difference between Natural Docs and Doxygen is that Natural Docs places a heavy emphasis on making the documentation readable in the source files, not just the generated documentation.  That&#x27;s not to say that the Doxygen syntax is particularly obtuse or anything.  It&#x27;s not.  But Natural Docs is just so... natural.  It&#x27;s so intuitive that it&#x27;s almost scary.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cessen.com/post/2007_03_31_natural_docs&quot;&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description>
</item>
<item>
<title>Human Computation... Plus Fun Games!</title>
<link>https://blog.cessen.com/post/2007_02_12_human_computation_plus_fun_games</link>
<pubDate>12 Feb 2007 00:00:00 GMT</pubDate>
<guid isPermaLink="true">https://blog.cessen.com/post/2007_02_12_human_computation_plus_fun_games</guid>
<description>
&lt;p&gt;Google has recently started bringing in people to speak on various tech subjects.  They are recording the talks and putting them up on Google Video.  These talks are known as &amp;quot;Google Tech Talks&amp;quot;.&lt;/p&gt;
&lt;p&gt;If you&#x27;re a geek at all, many of these tech talks are quite interesting.  But I found one in particular that I absolutely adore.  It&#x27;s a presentation given by Luis Von Ahn about &amp;quot;Human Computation&amp;quot;, or utilizing people on a massive scale to solve conceptually simple problems that computers can&#x27;t.&lt;/p&gt;
&lt;p&gt;You can watch the video &lt;a href=&quot;http://video.google.nl/videoplay?docid=-8246463980976635143&amp;q=google+tech+talks&quot;&gt;here&lt;/a&gt;.  It&#x27;s both informative and quite entertaining.&lt;/p&gt;
&lt;p&gt;The basic idea is to turn these problems into fun online games.  The two games that are out so far are &lt;a href=&quot;http://www.espgame.org&quot;&gt;The ESP Game&lt;/a&gt; and &lt;a href=&quot;http://www.peekaboom.org&quot;&gt;Peekaboom&lt;/a&gt;.  Both are quite fun, but the best part is that by playing them you are doing something genuinely useful!&lt;/p&gt;
&lt;p&gt;UPDATE:&lt;/p&gt;
&lt;p&gt;They have a new game out now, called &lt;a href=&quot;http://www.peekaboom.org/phetch/&quot;&gt;Phetch&lt;/a&gt;.  Apparently it&#x27;s still in beta, but it&#x27;s very fun as it is.&lt;/p&gt;
&lt;ol class=&quot;footnotes&quot;&gt;
&lt;/ol&gt;

</description>
</item>
</channel>
</rss>
