The Road to Cinder Docs

Cinder Docs homepage

Last week, the latest version of Cinder (v0.9.0) was released. This release is kind of a big deal. At least it is for the creative coding C++ developer community. Over the last year and a half or so, Cinder has been going through a rewrite to enable the use of Modern OpenGL and to pave the way for for supporting future platforms ports, like Android and Linux. This was a massive undertaking and it’s been amazing to witness the steps taken by the Cinder development team in real time. Other features this update includes are the inclusion of GLM for all math functions, the Logging API, EXR support and much more. You can read the release notes here. This release also came with a new Cinder website and a new docs website.

Read More

Adventures in Bey Bey Name Generating

I had the pleasure of working with my wife on a project for the first time this week. It was only about a day’s worth of work, but so far it’s been the most viral thing I’ve ever been a part of. And also had the quickest visitor drop off due to it’s timely nature.

The project was the Bey Bey Name Generator (beybeyname.com). It’s a simple little web app that was inspired by Jay Z and Beyonce giving their new baby the ridiculous name of Blue Ivy. My wife heard this and said to me almost immediately that we should make a website that lets you come up with your own name using the same equation of Color + Plant = Silly Ass baby name.I found some spare time to design and code it and threw it online. It’s crazy how simple the concept and execution was and how people seemed to really dig it.
beybeyname.com screenshot


In the 3 days since we let it loose, it’s generated 27,000+ views, mostly coming from facebook, twitter, the huffington post, and hlntv.com. While it was taking off, I kept my eyes on the live google analytics stuff to see where it was blowing at the time. I suggest anyone that’s launching a site to check that out. It’s actually really cool (if you find graphs and statistics and that sort of thing cool). But my favorite part of the whole thing was when Beavis and Butthead tweeted about it.

I don’t plan on doing any other of these quick little projects anytime soon, but if the moment arrives, I’ve learned that you just have to run with it before it’s old news.

2011 Work in Review

2011 was an interesting year for me professionally. It was my first one where I was employed for all 12 months by The Barbarian Group. There was minimal freelance work and the stuff that I did do was chosen very carefully. This year was devoted to learning a lot of new things. The reasons for that are:

  1. I am primarily a flash developer and there are fewer projects for me to work on
  2. There are so many other exciting things to also learn and I’d hate to pidgeonhole myself into only being able to work on one type of project
  3. Mobile has been exploding and I wanted a piece of it
  4. Learning is funsies. For real. I like to learn knew things and the more I learn, the more I want to learn and the better I get at the things I already know

Let me just explain real quick about the first point. I just want to put it out there that I still love flash. I think that it’s still a viable platform for many things, unfortunately it’s a matter of fact that there’s fewer and fewer projects that require it. That being said, I’m not bitter about it. There’s so many other things that can be done that it just doesn’t matter if you were a flash dev, unless you think it does. I’ve started learning so many other things that have built on my flash knowledge that I’m not really worried that it was a waste of the previous years that I spent using it.

Here’s a summary of the different kind of work I’ve done throughout 2011. Before I continue, I just want to acknowledge all of the awesome people that made a lot of these projects possible and helped me learn a lot of what I learned. TBG has some fine ass developers, designers, producers, strategies, UX people, etc, etc, etc.

At The Barbarian Group, the first few months of the year was spent concentrating on developing a flash app for Kashi, dubbed SevenWhole Grains on a Mission. It was a nice little project that had some fun after effects video transitions and incorporated swfaddress significantly. As a warning, the current version of the project might not work as well as it once did since the site was handed over to another company. It still looks pretty though.
Link: http://www.kashi.com/meet_us/seven_whole_grains
Blog post: http://barbariangroup.com/posts/7827-kashi_seven_whole_grains_on_a_mission

In the spring and early summer decided to take a crack at learning android development and  created my first android app, Gastrodamus. It was an internal project for TBG whose main purpose is to find the nearest food truck in your city based on a truck’s tweets. There is also an iPhone version that this based off of. It was a fun little project and I learned a ton. The Java syntax and ways of doing things helped a lot with some of the processing work I did later on in the year. I’ll admit that it’s not perfect, but I hope to go in and do an update in 2012.
Link: http://gastrodam.us
Blog post: http://barbariangroup.com/posts/8856-gastrodamus_for_android

Throughout the year, I worked on a website for my mom. It’s a wordpress site that was designed and developed by myself in addition to designing her logo. I’ll admit, I haven’t done interface or logo design in a long time, so it was a bit intimidating. It was fun, but not where I want to spend most of my time. Same thing goes for developing front-end and wordpress sites. Actually, the html/css stuff was fine, it’s more just the overall process of building a wordpress site that’s not my cup o’ tea. But I’m glad I was able to help my mom out with her new business.
Link: http://www.ihealthcoach.net/

Early summer included some work for an episode of The GE Show that The Barbarian Group put together throughout the past 2 years. I was psyched to be included in the making of one of these, since they always turn out so awesome. I got to work on a flash-based map and online what-your-parents-shagged-to poster that went with it. This was a nice little piece that included the challenge of dealing with a lot of data without the use of a database what would also load quickly. Hard coded massive arrays was the answer.
Link: http:www.ge.com/thegeshow/visions-of-health/#ch3
Blog post: http://barbariangroup.com/posts/9085-the_ge_show_episode_7_visions_of_health

In late summer right before fashion week in New York, a few weeks were spent working on a fun installation for the Hudson Hotel. It was a flash based installation that was projected on 12 adjacent walls whose content was driven via a tumblr blog.
Blog post: http://barbariangroup.com/posts/9075-fashion_week_at_the_hudson_hotel

During some of my downtime, I helped put together a fun little game based on our IT department at TBG. It was only about a week or two worth of dev time and was put together without any sort of framework. It was old-school style of flash programming.
Link: http://itherogame.com/

In the more recent months I’ve spent a good amount of time working on processing sketches and learning some fundamental creative coding techniques. This is where I plan on spending a lot of my time next year. I put together tumblr blog where I post a lot of stills from my sketches along with any other drawings or anything else I come up with there, not strictly processing stuff.
Link: http://thegrego.tumblr.com/

In my processing learning, I also came up with an idea to learn how spider webs were made. I did a processing version, but then realized that to do what I really wanted to do (which is still in my head and on my todo list), I’d need to do a version in javascript. So I spent some time learning and playing with some javascript canvas tutorials and examples so that I can get a version of my webs online.
Link: http://www.gregkepler.com/work/js/spiderwebs/
Blog post: http://www.thegrego.com/2011/12/06/charlies-web/

Also, in my processing journey, I felt the need to explore some of my genealogy and put together the first of what will hopefully be a series of genealogy-based projects. As I learn to deal with a large amount of data and some beter visualization techniques, I have some high hopes that this will be a really cool, really expansive project in the future.
link: http://gregkepler.com/processing/family_lifespan/
blog post: http://www.thegrego.com/2011/09/25/kepler-family-life-spans/

I also spent some time learning arduino and integrating it into processing. I hope to have some progress on the project that I’m working on in the next month or two.

Stay tuned for my hopes and goals for 2012.

Setting the swf Base Directory in HTML

Have you ever completed a flash project and started testing it online only to realize that the swf is looking for assets either in a different directory than the one you specified? Or that the folder that you have all your media stored is not in a relative directory like it was when working on it locally?

The solution that I mustered up in the past was to create a flashvar called something like “mediafolder” and put that in the embed code. From there, I would go back into my actionscript code and make sure all external media had the passed “mediafolder” variable appended to the beginning of the url for each external asset and then republish my swf.

This always worked well, so I usually plan for this, but my latest project didn’t have that built in. When it came to testing and we realized that the media folder was going to be in a different location than the base swf file and it was supposed to launch soon, it was time to see if there was another alternative to the usual solution. That’s when I discovered the “base” attribute in the swf object embed code.

The “base” attribute is actually an href attribute that specifies a base URL for all relative URLs on a page. Traditionally, you should be able to put it in the head of an html page and have all links on a page link relative to the string specified in the base attribute. For this it’s just specified for the swf, which picks it up when passed as a param and picks up any external asset from that folder by default instead of the folder that the actual swf is in.

Here’s a sample of the swfobject embed code:

 

With the example above, any asset that the main swf is trying to load relative to itself can now be placed in “../project/subfolder” without having to change any actionscript and republishing your swf. This is a tip that has saved me hours of work and would have saved me even more time had I discovered it in the past.

WordPress Stylin’

This post is for those of you that are intimidated by the idea of styling your first WordPress Blog (if there are any). I’m here to say that I’ve survived and this is the outcome.

During college the whole web development thing frustrated me and scared me enough that I vowed that I wouldn’t touch it again. And since I LOVE flash development so much, I figured that it didn’t really matter. The whole cross browser/ cross platform thing pissed me off and flash allowed me to make something and have it look AND behave the same way every time (almost). Over the past year and a half as I’ve gone more into a development centric career, I decided to give it another go and realized that it’s not so scary. After all, I’ve done a lot of things with actionscript that were way harder to code than a simple CSS/HTML site.

After warming up on some small projects and working my way through a CSS book, I got going with WordPress. There were definitely things that really confused me, but I feel like I learned a lot. The following are some of he snags I ran into that will hopefully come in handy for someone else.

Lessons Learned

There’s a difference between wordpress.com and wordpress.org
Wordpress.com will allow you to have a blog that’s hosted through wordpress.com, but has limited support for styling and using plugins, but it’s free. WordPress.org is free too, but you have to have your own web space and access to a MySQL database so that you can install wordpress on your server and upload your custom theme as well as have a place to store all of your content.

Running XAMPP and installing wordpress locally is key
I’ve had XAMPP on my computer for a long time knowing that I should, but never quite understood it’s usefulness, until now. Since WordPress is run in a PHP environment, every page is a PHP file, which you can only view if it’s online or running in some other server-side environment, enter XAMPP. I’m sure that now that I understand XAMPP, I’ll be using it on many more projects in the future.

Plugins can save the day
I’m usually not a big fan of using “cheat codes” (except for using Game Genie back in the day, they let you do some awesome stuff), but when it comes to having something that will help you get your site up and running when you have limited time to do so, they will save you a ton of time. Again, you can’t upload plugins to your wordpress site, but you can upload them when wordpress is installed on your server. I’ve actually come to embrace plugins and pre-built libraries in general. As long as you have an understanding of how the wheel was made, why reinvent it?

There are a ton of much smarter people out there that can help you out with your wordpress questions. Hell, there are people out there that specialize in building wordpress themes. When I got stuck, there were a lot of resources that helped me get through. Here are a few that might help:

Before I end, I wanted to thank for Tristan Bagwandin for helping me get started with this site and provided me with some good links and answered some of my stupid questions.