<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>codelog</title><generator>Tumblr (3.0; @codelog)</generator><link>http://codelog.tumblr.com/</link><item><title>Badass JavaScript: BicaVM: A JVM Implementation in JavaScript</title><description>&lt;a href="http://badassjs.com/post/12648021003/bicavm-a-jvm-implementation-in-javascript"&gt;Badass JavaScript: BicaVM: A JVM Implementation in JavaScript&lt;/a&gt;: &lt;p&gt;&lt;a href="http://badassjs.com/post/12648021003/bicavm-a-jvm-implementation-in-javascript" class="tumblr_blog"&gt;badassjs&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;img height="170" src="http://media.tumblr.com/tumblr_luicosD8fh1qbis4g.png" align="left"/&gt;Writing compilers/transpilers in JavaScript is all the rage right now. It started with CoffeeScript and Objective-J, and quickly expanded to tons of existing and new languages, some of which are now listed on the &lt;a href="http://altjs.org/" target="_blank"&gt;AltJS&lt;/a&gt; website. We’ve also seen projects like &lt;a href="https://github.com/kripken/emscripten/" target="_blank"&gt;Emscripten&lt;/a&gt;, which takes LLVM…&lt;/p&gt;&lt;/blockquote&gt;</description><link>http://codelog.tumblr.com/post/12658960032</link><guid>http://codelog.tumblr.com/post/12658960032</guid><pubDate>Fri, 11 Nov 2011 17:36:27 -0500</pubDate></item><item><title>FaceOSC is a tool for prototyping face-based interaction. It’s...</title><description>&lt;iframe src="http://player.vimeo.com/video/26098366" width="400" height="250" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;FaceOSC is a tool for prototyping face-based interaction. It’s built on non-commercial open source FaceTracker code from Jason Saragih. FaceOSC comes as an example app with the ofxFaceTracker addon for openFrameworks. You can download an OSX binary at &lt;a href="https://github.com/downloads/kylemcdonald/ofxFaceTracker/FaceOSC.zip"&gt;github.com/​downloads/​kylemcdonald/​ofxFaceTracker/​FaceOSC.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;by &lt;a title="@kcimc" href="http://twitter.com/#!/kcimc"&gt;@kcimc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;OSCulator is an excellent program for routing OSC and MIDI. Download it at &lt;a href="http://www.osculator.net/"&gt;osculator.net/​&lt;/a&gt; Some of the “face gestures” (or metrics) are more stable than others. Lighting can also have a huge influence on the stability of your values: even lighting from the front coupled with a dark background can give the best results.&lt;/p&gt;
&lt;p&gt;via &lt;a href="http://niklaslindstrom.tumblr.com/post/7341806167"&gt;niklaslindstrom&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/9231532909</link><guid>http://codelog.tumblr.com/post/9231532909</guid><pubDate>Sun, 21 Aug 2011 20:58:14 -0400</pubDate><category>Facetracking</category><category>open source</category><category>FaceOSC</category><category>software</category><category>tool</category><category>github</category></item><item><title>FutureTask</title><description>&lt;p&gt;&lt;a target="_blank" href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/FutureTask.html"&gt;Class FutureTask&amp;lt;V&amp;gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8220;A cancellable asynchronous computation. This class provides a base implementation of Future, with methods to start and cancel a computation, query to see if the computation is complete, and retrieve the result of the computation. The result can only be retrieved when the computation has completed; the get method will block if the computation has not yet completed. Once the computation has completed, the computation cannot be restarted or cancelled.&amp;#8221;&lt;/p&gt;
&lt;p&gt;via &lt;a target="_blank" href="http://stackoverflow.com/questions/541487/java-implements-runnable-vs-extends-thread"&gt;stackoverflow.com/questions/541487/java-implements-runnable-vs-extends-thread&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/9231237756</link><guid>http://codelog.tumblr.com/post/9231237756</guid><pubDate>Sun, 21 Aug 2011 20:51:34 -0400</pubDate></item><item><title>Things Every Programmer Should Know</title><description>&lt;a href="http://www.javacodegeeks.com/2010/12/things-every-programmer-should-know.html"&gt;Things Every Programmer Should Know&lt;/a&gt;: &lt;p&gt;via, &lt;a target="_blank" href="http://www.javacodegeeks.com"&gt;Java Code Geeks&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/8721456527</link><guid>http://codelog.tumblr.com/post/8721456527</guid><pubDate>Wed, 10 Aug 2011 00:27:13 -0400</pubDate></item><item><title>paperjs/paper.js - GitHub</title><description>&lt;a href="https://github.com/paperjs/paper.js"&gt;paperjs/paper.js - GitHub&lt;/a&gt;: &lt;p&gt;&lt;span&gt;
&lt;p&gt;“The Swiss Army Knife of Vector Graphics Scripting – Scriptographer ported to JavaScript and the browser, using HTML5 Canvas” &lt;a target="_blank" href="http://paperjs.org/"&gt;paperjs.org&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/6968574148</link><guid>http://codelog.tumblr.com/post/6968574148</guid><pubDate>Mon, 27 Jun 2011 04:06:44 -0400</pubDate></item><item><title>Capsule: Realtime web app framework for Backbone, Socket.io and Node.js</title><description>&lt;a href="http://github.com/andyet/capsule"&gt;Capsule: Realtime web app framework for Backbone, Socket.io and Node.js&lt;/a&gt;: &lt;p&gt;&lt;a href="http://thechangelog.com/post/4963233763/capsule-realtime-web-app-framework-for-backbone-socket-i"&gt;thechangelog&lt;/a&gt;: The adoption of &lt;a href="http://thechangelog.com/post/1306791328/backbone-give-your-js-app-some-backbone-with-models-view"&gt;Backbone.js&lt;/a&gt; seems to be heating up. Last week we brought you &lt;a href="http://thechangelog.com/post/4719798357/capt-command-line-tool-for-creating-backbone-js-applicat"&gt;Capt&lt;/a&gt;, a command line tool for creating Backbone projects. This week, we introduce &lt;a href="http://github.com/andyet/capsule"&gt;Capsule&lt;/a&gt; from &lt;a href="http://thechangelog.com/post/3028809528/happy-js-form-ishappy-lightweight-extensible-form-valida"&gt;Happy.js&lt;/a&gt; creator &lt;a href="http://twitter.com/HenrikJoreteg"&gt;Henrik Joreteg&lt;/a&gt;. Capsule aims to let you share view and model code across client and server, with realtime view updates powered by &lt;a href="http://thechangelog.com/post/927103350/episode-0-3-1-websockets"&gt;Socket.io&lt;/a&gt;. Capsule extends &lt;code&gt;Backbone.Model&lt;/code&gt; and &lt;code&gt;Backbone.View&lt;/code&gt; with &lt;code&gt;Capsule.Model&lt;/code&gt; and &lt;code&gt;Capsule.View&lt;/code&gt; respectively:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;exports.AppModel = Capsule.Model.extend({
  type: 'app',
  initialize: function (spec) {
    this.register();
    this.addChildCollection('members', exports.Members);
    this.addChildModel('activityLog', exports.ActivityLogPage);
  }
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check the &lt;a href="http://github.com/andyet/capsule#README"&gt;README&lt;/a&gt; for server and client-side setups and other usage.&lt;/p&gt;
&lt;h4&gt;Caveats and contributing&lt;/h4&gt;
&lt;p&gt;It should be noted that Capsule currently assumes you want to use &lt;a href="http://icanhaz.js/"&gt;ICanHaz.js&lt;/a&gt; and Mustache as your templating layer. If you have other tastes, perhaps you could &lt;a href="http://github.com/andyet/capsule"&gt;fork the project&lt;/a&gt; and contribute?&lt;/p&gt;
&lt;p&gt;[&lt;a href="http://github.com/andyet/capsule"&gt;Source on GitHub&lt;/a&gt;]&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/4974818645</link><guid>http://codelog.tumblr.com/post/4974818645</guid><pubDate>Tue, 26 Apr 2011 22:56:50 -0400</pubDate></item><item><title>processing and the octane renderer
“We always wanted to...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lihvtfpm051qzcndpo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://vimeo.com/groups/creativeapps/videos/21271604"&gt;processing and the octane renderer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;“We always wanted to render our projects created with processing.” says Michael Mühlhaus. This &lt;a target="_blank" href="http://vimeo.com/groups/creativeapps/videos/21271604"&gt;vimeo video&lt;/a&gt; shows the new library for processing I have written therefore. With this easy to use library it is possible to export a processing sketch in the wavefront *.obj format with materials (*.mtl) and groups. &lt;a target="_blank" href="http://muehlseife.blogspot.com/2011/03/processing-obj-exporter-octane-render.html"&gt;more info&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/4039414973</link><guid>http://codelog.tumblr.com/post/4039414973</guid><pubDate>Wed, 23 Mar 2011 01:12:51 -0400</pubDate><category>processing</category><category>octane</category><category>renderer</category><category>3d</category></item><item><title>Akshell
Create web apps in JavaScript right from your browser....</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lifzc3EmEG1qzcndpo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://www.akshell.com/"&gt;&lt;strong&gt;Akshell&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span&gt;Create web apps in JavaScript right from your browser. Online IDE, Git Console, relational database.&lt;/span&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/4018069348</link><guid>http://codelog.tumblr.com/post/4018069348</guid><pubDate>Tue, 22 Mar 2011 00:33:39 -0400</pubDate></item><item><title>PhiloGL
A WebGL Framework for Data Visualization, Creative...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_liebxsnRS11qzcndpo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://senchalabs.github.com/philogl/"&gt;&lt;strong&gt;PhiloGL&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A WebGL Framework for Data Visualization, Creative Coding and Game Development. &lt;/p&gt;</description><link>http://codelog.tumblr.com/post/3999068267</link><guid>http://codelog.tumblr.com/post/3999068267</guid><pubDate>Mon, 21 Mar 2011 03:10:40 -0400</pubDate><category>webgl</category><category>opengl</category><category>javascript</category><category>shader</category></item><item><title>Lightnode: Lighttpd inspired server for Node.js </title><description>&lt;a href="http://github.com/ngspinners/lightnode"&gt;Lightnode: Lighttpd inspired server for Node.js &lt;/a&gt;: &lt;p&gt;&lt;a href="http://thechangelog.com/post/3528124717/lightnode-lighttpd-server-node-js" class="tumblr_blog"&gt;thechangelog&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;If you’re looking for an easy way to serve static files, handle vhosts, and compose sites from multiple Node.js applications, be sure and check out &lt;a href="http://github.com/ngspinners/lightnode"&gt;Lightnode&lt;/a&gt; from &lt;a href="http://twitter.com/timlind"&gt;Tim Lind&lt;/a&gt;. Lightnode aims to offer the power of Node.js with the simplicity of Lighttpd or Apache and includes:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Robust static file serving&lt;/li&gt;
&lt;li&gt;VHost support&lt;/li&gt;
&lt;li&gt;Caching&lt;/li&gt;
&lt;li&gt;Server delegation&lt;/li&gt;
&lt;li&gt;Server subclassing&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Here’s a &lt;a href="https://github.com/ngspinners/lightnode/blob/master/examples/delegation/serve-host-with-api.js"&gt;quick example&lt;/a&gt; at server delegation, in this case handling API requests separately:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;var http = require('http')
var lightnode = require('../lightnode')


// 1 - create and start the node ip server
var server = new http.Server(); server.listen(8081)

// 2 - create the file server for the root directory
var website = new lightnode.FileServer('/home/web/www.ngspinners.com')

// before any requests come in

// the delegateRequest function should just return the lightnode.HttpServer object that must emit (handle) the request, or a function to execute as the request listener.
website.delegateRequest = function(req, resp) {

  // 3 - requests starting with path '/api' are sent to the api server

  if (req.url.indexOf('/api') == 0)
    return apiHandler

  // 4 - serve all other requests with this file server object

  else
    return website

}

// when a request comes to the ip server
server.addListener('request', function(req, resp) {

  // pass all requests to the file server
  website.receiveRequest(req, resp)

})


// this is run when the given request must be handled by the API
function apiHandler(req, resp) {
  // I'm a hello world API
  var message = 'hello, world.'
  resp.writeHead(200, {
    'content-type': 'text/plain',
    'content-length': message.length
  })
  resp.write(message)
  resp.end()
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;For further reading, check out &lt;a href="https://github.com/ngspinners/lightnode/tree/master/examples"&gt;more examples&lt;/a&gt; over on GitHub.&lt;/p&gt;

&lt;p&gt;[&lt;a href="http://github.com/ngspinners/lightnode"&gt;Source on GitHub&lt;/a&gt;]&lt;/p&gt;&lt;/blockquote&gt;</description><link>http://codelog.tumblr.com/post/3535570693</link><guid>http://codelog.tumblr.com/post/3535570693</guid><pubDate>Sat, 26 Feb 2011 21:28:45 -0500</pubDate></item><item><title>Native Client SDK via Google Code (for chromium)
&amp;#8220;Native Client is an open source technology...</title><description>&lt;p&gt;&lt;a href="http://code.google.com/chrome/nativeclient/"&gt;Native Client SDK&lt;/a&gt; via &lt;a href="http://code.google.com/chrome/nativeclient/"&gt;Google Code&lt;/a&gt; (for chromium)&lt;/p&gt;
&lt;p&gt;&amp;#8220;Native Client is an open source technology that allows you to build web applications that seamlessly execute native compiled code inside the browser. Now, in addition to JavaScript, you can write new web apps in C and C++ as well as migrate existing desktop apps to a more flexible and open web platform. Native Client allows your web app to run native code modules that render 2D and 3D graphics, play audio, respond to mouse and keyboard events, run on multiple threads, and access memory directly—all without requiring users to install a plugin. Because Native Client runs within its own sandboxed execution space and validates executable modules against a special set of rules designed to protect the resources on the user&amp;#8217;s system, it offers the safety of traditional web apps in addition to its native performance benefits.&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://code.google.com/p/nativeclient-sdk/"&gt;nativeclient-sdk&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/3399993282</link><guid>http://codelog.tumblr.com/post/3399993282</guid><pubDate>Sun, 20 Feb 2011 04:27:09 -0500</pubDate><category>google</category><category>chrome</category><category>c++</category><category>native</category><category>web</category><category>application</category><category>graphics</category></item><item><title>Interactive Parametrics – Workshop by Marius Watz w/ Studio Mode...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lgwercelHQ1qzcndpo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://workshop.evolutionzone.com/2011/02/18/interactive-parametrics-workshop-w-studio-mode-and-makerbot-2/"&gt;Interactive Parametrics – Workshop by Marius Watz w/ Studio Mode and MakerBot&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/3395910978</link><guid>http://codelog.tumblr.com/post/3395910978</guid><pubDate>Sat, 19 Feb 2011 23:21:12 -0500</pubDate><category>parametrics</category><category>interactive</category><category>workshop</category><category>processing</category><category>people:mariusWatz</category></item><item><title>via datavis: Big Hairy Projects: Trends &amp; Successes in...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lgh394if8P1qa6ke2o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;via &lt;a href="http://datavis.tumblr.com/post/3293487823"&gt;datavis&lt;/a&gt;: &lt;a href="http://www.jamasoftware.com/news-resources/state_rm_2011.php"&gt;Big Hairy Projects: Trends &amp; Successes in Project Development&lt;/a&gt;, jamasoftware.com&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/3302360725</link><guid>http://codelog.tumblr.com/post/3302360725</guid><pubDate>Mon, 14 Feb 2011 21:35:01 -0500</pubDate></item><item><title>Fluid Simulation for Dummies</title><description>&lt;a href="http://mikeash.com/pyblog/fluid-simulation-for-dummies.html"&gt;Fluid Simulation for Dummies&lt;/a&gt;: &lt;p&gt;via mikeash.com, a quick fluid dynamics walkthrough including c source code.&lt;/p&gt;
&lt;p&gt;and more fluid dynamics links:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://mmack.wordpress.com/2010/11/01/adventures-in-fluid-simulation/"&gt;adventures in fluid dynamics&lt;/a&gt;&lt;br/&gt;&lt;a target="_blank" href="http://prideout.net/blog/?p=58"&gt;simple fluid simulation&lt;/a&gt;&lt;br/&gt;&lt;a target="_blank" href="http://prideout.net/blog/?p=66"&gt;3d eulerian grid&lt;/a&gt;&lt;br/&gt;&lt;a target="_blank" href="http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/GDC03.pdf"&gt;fluid dynamics for games, pdf format&lt;/a&gt;&lt;br/&gt;&lt;a target="_blank" href="http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/ns.pdf"&gt;jos stam’s stable fluids paper&lt;/a&gt;&lt;br/&gt;&lt;a target="_blank" href="http://www.colinbraley.com/Pubs/FluidSimColinBraley.pdf"&gt;fluid simulation, colin braley, pdf format&lt;/a&gt;&lt;br/&gt;&lt;a target="_blank" href="http://physbam.stanford.edu/~fedkiw/"&gt;ron fedkiw&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/3290873421</link><guid>http://codelog.tumblr.com/post/3290873421</guid><pubDate>Mon, 14 Feb 2011 07:01:00 -0500</pubDate></item><item><title>webbit: Evented HTTP, WebSocket server for Java and Clojure</title><description>&lt;a href="http://github.com/joewalnes/webbit"&gt;webbit: Evented HTTP, WebSocket server for Java and Clojure&lt;/a&gt;: &lt;p&gt;&lt;a href="http://thechangelog.com/post/3240101762/webbit-a-java-event-based-websocket-and-http-server" class="tumblr_blog"&gt;thechangelog&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://thechangelog.com/post/2502699802/cool-io-cool-event-driven-programming-for-ruby"&gt;Evented HTTP web apps&lt;/a&gt; are &lt;a href="http://nodejs.org"&gt;hot&lt;/a&gt;. &lt;a href="http://twitter.com/#!/joewalnes"&gt;Joe Walnes&lt;/a&gt; has created a Java spin on the idea with &lt;a href="http://github.com/joewalnes/webbit"&gt;Webbit&lt;/a&gt;. Webbit makes it super simple to create a &lt;a href="http://thechangelog.com/post/927103350/episode-0-3-1-websockets"&gt;WebSocket&lt;/a&gt; server in just a few lines of Java:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public class HelloWebSockets implements WebSocketHandler {

  int connectionCount;

  public void onOpen(WebSocketConnection connection) {
    connection.send("Hello! There are " + connectionCount + " other connections active");
    connectionCount++;
  }

  public void onClose(WebSocketConnection connection) {
    connectionCount--;
  }

  public void onMessage(WebSocketConnection connection, String message) {
    connection.send(message.toUpperCase()); // echo back message in upper case
  }

  public static void main(String args) {
    WebServer webServer = WebServers.createWebServer(8080)
      .add("/hellowebsocket", new HelloWebSockets())
      .add(new StaticFileHandler("/web"))
      .start();
    System.out.println("Server running at " + webServer.getUri());
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Webbit isn’t just for Java folk. &lt;a href="http://blog.jayfields.com/"&gt;Jay Fields&lt;/a&gt; has a &lt;a href="http://blog.jayfields.com/2011/02/clojure-web-socket-introduction.html"&gt;post&lt;/a&gt; demonstrating using Webbit in Clojure:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(ns server
  (:require [clojure.contrib.json :as json]
            [clojure.string :as s])
  (:import [webbit WebServer WebServers WebSocketHandler]
           [webbit.handler StaticFileHandler]))

(defn on-message [connection json-message]
  (let [message (-&gt; json-message json/read-json (get-in [:data :message]))]
    (.send connection (json/json-str {:type "upcased" :message (s/upper-case message) }))))

(doto (WebServers/createWebServer 8080)
  (.add "/websocket"
        (proxy [WebSocketHandler] []
          (onOpen [c] (println "opened" c))
          (onClose [c] (println "closed" c))
          (onMessage [c j] (on-message c j))))

  (.add (StaticFileHandler. "."))
  (.start))

(println "server up")
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Check out the &lt;a href="http://github.com/joewalnes/webbit#readme"&gt;Webbit Readme&lt;/a&gt; or the &lt;a href="https://github.com/joewalnes/webbit/tree/master/src/sample/java"&gt;samples folder&lt;/a&gt; for more information. We’ll definitely be &lt;a href="https://github.com/joewalnes/webbit/watchers"&gt;watching Webbit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;[&lt;a href="http://github.com/joewalnes/webbit"&gt;Source on GitHub&lt;/a&gt;]&lt;/p&gt;&lt;/blockquote&gt;</description><link>http://codelog.tumblr.com/post/3243742928</link><guid>http://codelog.tumblr.com/post/3243742928</guid><pubDate>Fri, 11 Feb 2011 21:18:20 -0500</pubDate></item><item><title>Control
by Charlie Roberts. “Control lets users define...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lgacnsHpCH1qzcndpo1_400.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;strong&gt;&lt;a target="_blank" href="http://charlie-roberts.com/Control/"&gt;Control&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;by &lt;a target="_blank" href="http://charlie-roberts.com/"&gt;Charlie Roberts&lt;/a&gt;. “Control lets users define their own custom OSC and MIDI interface for iOS devices. It is free and will be open-sourced in the near future.”&lt;/p&gt;
&lt;p&gt;Control can be javascript-ed, see the &lt;a target="_blank" href="http://www.charlie-roberts.com/Control/interfaces/sequencer.js"&gt;sequencer.js&lt;/a&gt; example.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://createdigitalmusic.com/2011/01/music-control-meets-web-code-goodness-app-for-ios-soon-oscmidi-everywhere/"&gt;createdigitalmusic&lt;/a&gt; review, via &lt;a target="_blank" href="http://www.mat.ucsb.edu/"&gt;mat.ucsb.edu&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/3177707252</link><guid>http://codelog.tumblr.com/post/3177707252</guid><pubDate>Tue, 08 Feb 2011 01:28:40 -0500</pubDate><category>midi</category><category>osc</category><category>ios</category><category>app</category><category>iphone</category><category>communication</category><category>ipad</category></item><item><title>Fulldome Processing Template
by Brian Steen. “If you would...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lg5h85plbC1qzcndpo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://www.brian-steen.com/blog/?p=356"&gt;&lt;strong&gt;Fulldome Processing Template&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;by &lt;a href="http://www.brian-steen.com/blog"&gt;Brian Steen&lt;/a&gt;. “If you would like to code for a Fulldome production, you need everything to be fisheye distorted. One can achieve that with processing, using cubemaps and reflecting it onto a sphere. One can test it with a salad bowl too.” download project as &lt;a target="_blank" href="http://www.brian-steen.com/fhp/fulldome/FullDomeTemplate.zip"&gt;.zip&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/3123788114</link><guid>http://codelog.tumblr.com/post/3123788114</guid><pubDate>Sat, 05 Feb 2011 10:19:16 -0500</pubDate><category>processing</category><category>dome</category><category>projection</category><category>cubemap</category><category>template</category><category>code</category><category>download</category></item><item><title>Neo4j Graph Database</title><description>&lt;a href="http://github.com/neo4j/graphdb"&gt;Neo4j Graph Database&lt;/a&gt;: &lt;p&gt;&lt;a href="http://thechangelog.com/post/3040399603/graphdb-neo4j-graph-database"&gt;thechangelog&lt;/a&gt;: &lt;a href="http://github.com/neo4j/graphdb"&gt;Neo4j&lt;/a&gt;, the popular NoSQL database (praised in our infamous &lt;a href="http://thechangelog.com/post/457259567/episode-0-1-8-nosql-smackdown"&gt;NoSQL Smackdown&lt;/a&gt; by the &lt;a href="http://twitter.com/#!/werner"&gt;CTO of Amazon&lt;/a&gt; no less) has moved its main source to GitHub. For readers new to graph databases, here’s a brief &lt;a href="http://www.youtube.com/watch?v=2ElGO1P8v0c&amp;feature=player_embedded"&gt;video introduction&lt;/a&gt;. For more on Neo4j, be sure and check out the &lt;a href="http://wiki.neo4j.org/content/Getting_Started_Guide"&gt;Getting Started Guides&lt;/a&gt; with introductions for &lt;a href="http://wiki.neo4j.org/content/Getting_Started_With_Java"&gt;Java&lt;/a&gt;, &lt;a href="http://wiki.neo4j.org/content/Getting_Started_With_Python"&gt;Python&lt;/a&gt;, and &lt;a href="http://wiki.neo4j.org/content/Getting_Started_With_Ruby"&gt;Ruby&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;[&lt;a href="http://github.com/neo4j/graphdb"&gt;Source on GitHub&lt;/a&gt;] [&lt;a href="http://neo4j.org/"&gt;Home Page&lt;/a&gt;]&lt;/p&gt;
&lt;p&gt;“Neo4j is a graph database, a fully transactional database that stores data structured as graphs. A graph is a flexible data structure that allows for a more agile and rapid style of development. &lt;/p&gt;
&lt;p&gt;You can think of Neo4j as a high-performance graph engine with all the features of a mature and robust database. The programmer works with an object-oriented, flexible network structure rather than with strict and static tables — yet enjoys all the benefits of a fully transactional, enterprise-strength database.” &lt;em&gt;neo4j.org&lt;/em&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/3043900797</link><guid>http://codelog.tumblr.com/post/3043900797</guid><pubDate>Tue, 01 Feb 2011 00:07:18 -0500</pubDate><category>database</category><category>nosql</category><category>network</category><category>graph</category><category>java</category><category>github</category></item><item><title>"Digital technology is programmed. This makes it biased toward those with the capacity to write the..."</title><description>“Digital technology is programmed. This makes it biased toward those with the capacity to write the code. In a digital age, we must learn how to make the software, or risk becoming the software. It is not too difficult or too late to learn the code behind the things we use—or at least to understand that there is code behind their interfaces. Otherwise, we are at the mercy of those who do the programming, the people paying them, or even the technology itself.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;strong&gt;Rushkoff, Douglas&lt;/strong&gt;. &lt;em&gt;Program or Be Programmed: Ten Commands for a Digital Age&lt;/em&gt;. New York: OR Books, 2010. (via &lt;a href="http://carvalhais.tumblr.com/"&gt;carvalhais&lt;/a&gt;)&lt;/em&gt;</description><link>http://codelog.tumblr.com/post/3032366626</link><guid>http://codelog.tumblr.com/post/3032366626</guid><pubDate>Mon, 31 Jan 2011 12:01:34 -0500</pubDate></item><item><title>The Changelog - Open Source moves fast. Keep up.: Top ten reasons why I won't use your open source project</title><description>&lt;p&gt;via the &lt;a target="_blank" href="http://thechangelog.com/post/3032074343/top-ten-reasons-why-i-wont-use-your-open-source-project"&gt;changelog&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Apologies for the loaded headline. It’s a hat tip to the &lt;a href="http://mashable.com/2009/01/06/twitter-follow-fail/"&gt;Twitter how-to articles&lt;/a&gt;that taught us the benefits of setting our avatars, writing a witty bios, setting a location, engaging your audience, and oh yeah, adding value. As a team that digs through a mountain of open source projects each week, so that you don’t have to, we’ve learned some concrete ways to build a community around your codez. Here’s our top ten list of things you can do to promote your Open Source project, or ten reasons I don’t fork your project.&lt;/p&gt;
&lt;p&gt;1. You don’t have a friggin’ Readme&lt;!-- more --&gt;&lt;/p&gt;
&lt;p&gt;For a lot of projects, especially those hosted on &lt;a href="http://github.com/"&gt;GitHub&lt;/a&gt;, the Readme is often the first look someone has at your project. &lt;a href="http://twitter.com/mojombo"&gt;Tom Preston-Warner&lt;/a&gt; says the Readme is so important that &lt;a href="http://tom.preston-werner.com/2010/08/23/readme-driven-development.html"&gt;you should write it first&lt;/a&gt;. I’ve started doing this for recent projects and have found it focuses my thinking and helps me communicate project goals to others. GitHub’s support for &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt;, &lt;a href="http://www.textism.com/tools/textile/"&gt;Textile&lt;/a&gt;,&lt;a href="http://rdoc.sourceforge.net/"&gt;RDoc&lt;/a&gt;, and &lt;a href="https://github.com/github/markup"&gt;others&lt;/a&gt; means rich formatted Readme files that can contain links, tables, and code snippets.&lt;/p&gt;
&lt;p&gt;So what makes a good Readme? Here are some critical items you should consider:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Description&lt;/strong&gt; - I’m surprised at how many times I land on a project page that is obviously popular (because Twitter told me so) but I have no idea why because the project owners don’t tell me plainly what the project is or why I should care.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Installation instructions&lt;/strong&gt; - Tell me where to get the bits and how to install them&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Where to get help&lt;/strong&gt; - Link to the docs, mailing list, wiki, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contribution guidelines&lt;/strong&gt; - Tell me how I can help out including wanted features and code standards&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contributor list&lt;/strong&gt; - List the humans behind the project&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Credits, Inspiration, Alternatives&lt;/strong&gt; - Tell me if this is a fork of or otherwise inspired by another project. I won’t think you’re a douche when I find out later.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;2. You don’t include tests, specs, features, examples&lt;/p&gt;
&lt;p&gt;A project without tests is harder to trust, contribute to, and looks more like a hobbyish hack. More than that, though, tests cut down on support requests. I don’t have to ask you or Google, &lt;a href="http://railstips.org/blog/archives/2010/10/14/stop-googling/"&gt;I can look at the codez&lt;/a&gt;. An &lt;a href="https://github.com/visionmedia/express/tree/master/examples/"&gt;examples folder with scenario-based code&lt;/a&gt; show me rather than telling me.&lt;/p&gt;
&lt;p&gt;3. You have no project home page&lt;/p&gt;
&lt;p&gt;As good as GitHub’s project pages are, they suck for SEO and branding. Create an &lt;a href="http://www.modernizr.com/"&gt;attention-getting&lt;/a&gt; &lt;a href="http://applitude.org/"&gt;project home page&lt;/a&gt;. The &lt;a href="http://pages.github.com/"&gt;GitHub Pages&lt;/a&gt; feature makes it dead simple to &lt;a href="http://mustache.github.com/"&gt;create simple project home page&lt;/a&gt; complete with&lt;a href="https://github.com/blog/315-cname-support-for-github-pages"&gt;custom domain support&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;4. You need design help&lt;/p&gt;
&lt;p&gt;If you’re not blessed with pixel-fu, find a designer who is and pay, trade, or barter with them to give your project an attractive brand and style. Stay away from contests and other &lt;a href="http://99designs.com/"&gt;“crowd sourcing”&lt;/a&gt; sites. &lt;a href="http://www.no-spec.com/"&gt;Say no to spec work&lt;/a&gt; because you wouldn’t want to code a project for someone in hopes your code would be “selected.”&lt;/p&gt;
&lt;p&gt;5. You don’t have a domain name&lt;/p&gt;
&lt;p&gt;A nice looking home page is nice, but why not shell out ten bucks and make it easier for folks to find it? If the &lt;a href="http://www.modernizr.com/"&gt;.com&lt;/a&gt; is not available for you project name, try a service like &lt;a href="http://domai.nr/"&gt;Domai.nr&lt;/a&gt; to find a creative alternative. We used Domai.nr to find the &lt;a href="http://lg.gd/"&gt;lg.gd&lt;/a&gt; short domain for our ‘logged links’.&lt;/p&gt;
&lt;p&gt;6. You don’t have a Twitter Account&lt;/p&gt;
&lt;p&gt;You’re probably already using Twitter to spread the word about your projects, but have you considered a dedicated project account? &lt;a href="http://twitter.com/sferik"&gt;Erik Michaels-Ober&lt;/a&gt;creatively snagged the @&lt;a href="http://twitter.com/gem"&gt;gem&lt;/a&gt; username for the Ruby Twitter Gem, from which we post updates and answer support questions. @&lt;a href="http://twitter.com/modernizr"&gt;modernizr&lt;/a&gt;, @&lt;a href="http://twitter.com/mongodb"&gt;mongodb&lt;/a&gt;, and @&lt;a href="http://twitter.com/octokit"&gt;octokit&lt;/a&gt; are other examples. Even if you’re not the project owner, perhaps you could create an unofficial account to help evangelize the project, like&lt;a href="http://twitter.com/#!/trevorburnham"&gt;Trevor Burnham&lt;/a&gt; did with @&lt;a href="http://twitter.com/coffeescript"&gt;CoffeeScript&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;7. Your licensing is unclear&lt;/p&gt;
&lt;p&gt;Just because code is published online doesn’t mean it’s free for the taking in the public domain. For me to use your code, I need to know the stipulations for doing so. Make it easy for me to know the terms under which I can use it by including a &lt;a href="https://github.com/jnunemaker/twitter/blob/master/LICENSE.mkd"&gt;LICENSE&lt;/a&gt; file or section in the Readme.&lt;/p&gt;
&lt;p&gt;8. You don’t reach out to me&lt;/p&gt;
&lt;p&gt;Twitter lets you follow people in your niche easily, but perhaps the greater power is the ability to follow a topic. Search for and follow the hashtags related to your project. Find people asking questions or expressing frustration with problems that your project aims to solve. &lt;a href="http://twitter.com/chriseppstein"&gt;Chris Eppstein&lt;/a&gt; and I often reach out to people with &lt;a href="http://twitter.com/#!/search/%23css3"&gt;#CSS3&lt;/a&gt; questions and extol the benefits of &lt;a href="http://beta.compass-style.org/reference/compass/css3/"&gt;Compass’ CSS3 module&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If your project is large enough, consider &lt;a href="http://irchelp.org/irchelp/changuide.html"&gt;creating your own IRC channel&lt;/a&gt;.&lt;a href="irc://irc.freenode.net/node.js"&gt;#node.js&lt;/a&gt; and &lt;a href="irc://irc.freenode.net/redis"&gt;#redis&lt;/a&gt;, are great examples of active, project-focused channels.&lt;/p&gt;
&lt;p&gt;9. You don’t speak about your project at conferences and meetups&lt;/p&gt;
&lt;p&gt;Nothing gives the illusion of expertise like a six inch elevated stage and a lanyard. If you want to grab the attention of potential users and contributors,&lt;a href="http://reddirtrubyconf.com/call-for-proposals"&gt;submit a talk&lt;/a&gt; to conferences or meetups in your technology community. If you don’t get accepted, go anyway and organize a &lt;a href="http://en.oreilly.com/rails2010/public/cfp/100"&gt;birds-of-a-feather session&lt;/a&gt;where you can meet personally with users, answer questions, and get feedback.&lt;/p&gt;
&lt;p&gt;10. You didn’t submit it to The Changelog&lt;/p&gt;
&lt;p&gt;If you want to tell the world about your new open source code hotness, one of the best venues is this blog. We strive to stay on the bleeding edge of open source, but we can’t find everything. Want to announce your new project? Ping us on &lt;a href="http://twitter.com/changelogshow"&gt;Twitter&lt;/a&gt; or &lt;a href="mailto:submit@thechangelog.com"&gt;drop us an email&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Your turn&lt;/p&gt;
&lt;p&gt;Now it’s your turn. We’d like to know what makes you follow and participate in on open source project. Tell us &lt;a href="http://news.ycombinator.com/item?id=2162078"&gt;on Hacker News.&lt;/a&gt;&lt;/p&gt;</description><link>http://codelog.tumblr.com/post/3032352730</link><guid>http://codelog.tumblr.com/post/3032352730</guid><pubDate>Mon, 31 Jan 2011 12:00:00 -0500</pubDate><category>code</category><category>project</category><category>opensource</category><category>howto</category></item></channel></rss>
