Category Archives: code

LA C++ Meetup: Cinder chat

For the past few months, Corey Porter has organized the LA C++ meetup. We’ve been hosting them at Oblong Industries in downtown LA, and it’s been a nice place to learn about the language and absorb bits of knowledge from experienced coders.

I spoke for a bit about Cinder, it’s basic structure, and went into a bit more detail on how the timeline works. You can look at an edited version of the slide deck. I removed the images of other people’s work (just in case), and instead just provide links to their sites, which you should visit. The slides probably won’t make a ton of sense without someone talking over them to pull it together, but there are code snippets which may be useful to people getting started with Cinder.

Some useful posts on the Cinder forums

The Cinder forums are a great place to learn. Following are some of the posts I find myself going back to for technical reference.

Written Images Cinder Template

written detritus

Written Images is an excellent project in generative bookmaking initiated by Martin Fuchs. He has an open call-for-entries to collect image-making applications. The site copy explains the project’s ambition:

Written Images; a project in contemporary generative print design and art. Its final products will be a book that presents programmed images by various artists. Each print in process will be calculated individually – which makes every single book unique.

I’m making my submissions using Cinder so I can get more comfortable with c++ and the XCode environment. To make my life easier, I added a WrittenImages project template to the excellent TinderBox tool that comes with Cinder. Get the template by either downloading my version of TinderBox (which contains the template), or checking it out on github. You can also look at an example of code generated by the template.

The template sets up your application to receive command-line arguments and handle batch-rendering of files to the provided paths. To use it, open up TinderBox and create a new project. Your settings should be: Target: Basic App, Template: WrittenImages. I think the code inside is pretty self-explanatory for use. To pass arguments to your application in the command-line (Assuming you named your project Sample, which you probably didn’t), do the following:

$ Sample.app/Contents/MacOS/Sample ./more.png ./like.png ./this.png

The reason for the longish path to your application is that the binary is actually in an application bundle. The Sample.app/ is just a directory, and to pass arguments to the application we need to call the executable part directly.

The written images deadline was just extended to July 15, so you still have a chance to make a submission.

Download TinderBox with the WrittenImages template.

Find in maps

abandoned house

I’m starting to look for my next apartment, and I’m sick of doing the copy+paste dance to find out where craigslist postings are actually located. I wanted to be able to highlight an address on the page, hit a shortcut, and be taken to a map of that location.

After a quick google search, I couldn’t find any bookmarklets with the behavior I wanted. As a result, I took a few minute to write my own. The following is a simple bookmarklet that queries for the selected text using google maps. If nothing is highlighted, you will be prompted to enter an address.

Drag the following to your bookmarks bar: Find in maps

You can take a look at the source code for the bookmarklet on github.

git the konami code

git on a 3d cube background.

I’ve been using git for a few months now, and have found it faster and more enjoyable to deal with than svn. Sure, there’s the headache with remembering git revert is not like svn revert (use reset to go back to a point in time, revert to undo a commit—more like English, actually).

In addition to git, there’s github, a good place to host your public code repositories. I’m keeping an AS3 Konami Code project and my AS3 code library on github. You can clone them to your machine or fork them to create your own project on github.

Continue reading