I’m Raul Torres, Creator of Everblog, This Is How I Made the Application

I’ve been wanting to do a blog post on how I created Everblog.  This will be a high level overview, I’ll elaborate on some points in other blog posts.  Let’s get started!

My Machine

I use an Amazon EC2 Windows instance for most of my work.  I use the Large instance, which costs $0.460 an hour, which isn’t too bad.  Most of the real costs comes from hard drive space, which is $0.10 per GB-month.  I end up spending $10 – $20 depending on how much development I do during the month.  The VM has about 8 Gb of RAM and an Intel Xeon E5507 @ 2.27GHz processor.  Not super beefy, but that’s a bit under the specs of my work laptop.  I’m still on the fence if using a cloud instance to work is worth it in the long term.  An equivalent laptop would be  $300 – $500, but I’d have to carry that with me all the time. I think the ability to use any thin client (even my iPad) offsets some of the costs, however needing a connection to your box to get work done can be a bother sometimes.

Software / Tools

I use MRemoteNG to log into the Amazon EC2 instance.  MRemoteNG is a great tool to manage logging into multiple machines.  I’ve got Visual Studio 2010 installed with ReSharper.  I’ve heard many developers mention that if you are not using ReSharper you are doing your clients a disservice.  After using it for over a year at work I completely agree.  It really has changed the way I code.  If you’ve never used it and are a .Net developer you should check it out.  I am using Git as my source control.  I’ve opted to use BitBucket over GitHub because of the private repos.  Eventually I’d like to make Everblog open source, but I’ll stick with my private repo for now.  I was using Trello to organize my tasks, but that fell to the wayside.  I need to get that up to date again.  I also use CodeSmith Insight to do some error reporting.  It’s super helpful and should be part of all .Net developers tool set.  Since I don’t have a QA team I can prioritize what bugs to fix based on “user input” (as in my users have found the bug) rather than wondering what works and what doesn’t.

Hosting / Deployment

I use AppHarbor to host this site and Everblog.  I’ve always been very interested in cloud computing.  I did some preliminary research to Azure and EC2 and didn’t like the price models to host a site. Paying hourly for the smallest instance on both providers seemed a bit high.  I may need to revisit this based on some updates that Azure has released, but I have yet to hear a success story  about Azure from any of my peers.  I decided to go with AppHarbor because they give you one free thread for each project.  This makes it is ideal to make a quick prototype and having running in little to no time.  Adding an additional thread is about the same amount of hosting on an Azure or EC2 instance (the last time I looked at it).
I have two applications for each project, a development and production instance. The code is all from the same repo.  I have auto deploys on for dev, and have to actively deploy for prod.  App Harbor will also run any unit tests you have and won’t deploy the build if they fail.  It’s not as robust as TeamCity, but it gets the job done.  I don’t have any regression tests yet.  One of my goals this year is to learn more about Selenium and WebDriver.  There are a few things I’d like to improve on for this set up, like being able to deploy a certain branch and a better testing strategy.

Kninect

I am a big Nine Inch Nails fan.  One of my favorite concerts was the 2008 Lighs in the Sky tour.  There were loads of awesome special effects during the tour, most of them had Trent Reznor interacting with a large digital display.  Here’s a clip of the tour.

I am also a big fan of the Kinect, so I decided why not combine the two!!  Check out my video demo of Kninect.

kninect

This is my first time writing an XNA game and the first time programing for the Kinect, so I’ve learned a lot.

Some of the things I need to look into the get a better understanding of game development are:

  • Properly loading assets for your game
  • Are there any design patterns for the “Game Loop”? It seems gross sticking so much code in one place
  • Keeping context in your game loop.  How do you manage menus and navigation and other non name stuff.
  • How can you tweak the Kinect to behave better.  It seems a bit jumpy.
  • How to manage timing better.  It seems like some of my sound effects and screen updates don’t happen at steady intervals.

I have the source code up at my BitBucket account.  The code is a mess.  It started as a test to display images and then I keep adding more and more.  I need to clean that up pretty soon.

If you have any comments or questions shoot me an email or find me on Twitter.

I don’t have an ETA for the next set of updates.  Since this is a side project thing it will be on and off.  If you are a developer feel free to branch what I’ve got.  I’ll gladly accept pull requests too!

Time Magazine App

I read Time Magazine every now and then. time I was super excited that they introduced an iPad App. I have been rather unhappy with the UX for most of the articles. Here are some of my issues with an infographic.

  • Why can’t you zoom in and out of the infograph?
  • Why can you only use 2/3 of the page to view the infograph?
  • Why doesn’t this app have Retina support?

Random Idea: Kinect and Microsoft Glass Game

The screen would have a layer of fog obstructing your view.  Your phone can see through it and lead you on your way.

It’s like the Wii U, just different set of technologies.  http://www.youtube.com/watch?v=09apkk58Ju8Imagine playing an Alan Wake style rail shooter like this.  Your phone is the flash light.  Your other hand is the gun.

kinect

StatsD

One of the initiatives where I work is to keep stats on our applications.

We’ve been using StatsD and Graphite.  Here’s an example of one of the graphs we are generating.  This graph tracks how long it takes to execute a set of updates to the AdWords API.  So far we are tracking

  • Operations we are sending to Google based on what section of the Api we are hitting
  • How long it takes to execute all of our operations based on what section of the Api we are hitting

statsd

Everblog.us Updates

I’ve made a bunch of updates to Everblog.us. If your not familiar with the site, it is my entry into the 2012 Evernote DevCup. I had a bunch of goals for the project, here are random bunch:

 

* Get familiar with open Auth and DotNetOpenAuth
* Try a full Dev and Prod deploy with AppHarbor
* Mess around with the Evernote API
* See what Twitter Bootstrap is all about
* Actually use GIT

I’ve learned a lot during this project and I’ll try to post some of the cool things I leaned.

New Blog

Hey Everyone!!

Since I have been working more on my side project, Everblog.us.  I’ve decided to start using it as my primary blog!  I’ll be posting things about my side projects, as well as web developer and movie stuff.

I am active on Twitter, so check me out.  My Twitter name is @uz88

 

Backbone Reader – First steps

I’ve been diving more into JavaScript, so I decided to take Backbone for a spin.  I don’t know how much I like it.  I’ve put together a simple app that pulls a few items from a single RSS feed and displays them every 5 seconds.

The goal is to make a “ticker” style display for a tablet.

Check out the first instance here : http://codeosaurus.com/BackboneReader/01.html

This is the first iteration.  I’ll be adding a bunch of stuff later, such as:

  • Pull from Google Rss
  • Better UI
  • Better sorting
  • Config display speed
  • Continuous refresh of feeds
  • loop back to start
  • Play / pause control

The whole point of this project is to learn more JavaScript and see what some of the fuss about server side MVC is all about.

Grow Some Backbone

I’ve been looking into Backbone a bit. A great getting started tutorial was recommended to me by my boss.

Check out the tutorial here.

I’ll run through it and put together some notes on what I learned.  One of the first things I noticed was that Backbone didn’t have any templates for views.  It looks I should use Underscore for templating.

Obviously I don’t know anything about Underscore, So I’ll add that to the pile of stuff I need to learn.

I am thinking of making a simple app that pulls from Google’s feed API and do a scrolling news ticker thing.  I’ll make a tutorial and post the code when I get through with it.

The Lean Startup Challenge

Meta Achievement Homepage

App Sumo recently came out with a sweet deal that offers a lot of great tools to give your start up a major boost.  One of my side projects is bigger in scope than most, so any help (especially if it’s cost effective) is great!

Meta Achievement – The Elevator Pitch

Achievements have become popular and are popping up all over the net. Video game consoles and sites like The Sixty One, Gowalla, and Four Square award achievements, but each of them are isolated from one another.  I want to have a site where I can see what my friends have done.

Starting Lean

I like coding and coming up with ideas.  I don’t like setting up servers and worrying about infrastructure problems.  I did some initial research and picked the Google App engine to be the platform for my project.  It seems like the easiest (and leanest) way to get up and running in the shortest amount of time possible.  I’ve been using a few great frameworks to get this going quickly.  I’ve used Django (which is part of the app engine) and Blueprint Css for the layout.  I’ll be using jQuery for a few drag and drop behaviors throughout the site.

Getting Leaner

A few of the things in the indie bundle peaked my interest and I plan on using them soon once I get a solid prototype up and running.

Postmark

I don’t like server setup, especially email servers.  Postmark looks like it will be great to send out invites to my app and keep users in the loop.

Ask Your Target Market

I’ll be the first to say that this is a site for me, but if I had a nickel every time I’ve heard someone tell me “Achievement Unlocked” in a conversation I’d have enough for a few nice lunches.  That fact aside, I think that Ask Your Target Market can give me some good insight to what features I should add and who would get the most out of my site.

Geckoboard

The UI looks sexy and I like data and stats.  Getting set up with Geckoboard is a no brainer.

Kiss Metrics

More data collecting!!  Anything to keep track of how users go through your is a great way to improve the UX on your site.  I am interested in seeing what Kiss Metrics has to offer.

Books, Mentors and More!!

The most valuable part of the bundle (IMHO) is all the books and resource sites that come along with it.  Also, the possibility to get some mentoring is very awesome.

Is it Fun?

I think achievements are fun to unlock.  What’s not fun is when no one else is around to share them.  One of the big things I want to do is stack achievements, which is what the name of the site is based on.  I’d like the community to create individual achievements for platforms, and create cross-platform goals.  A great example of this would be “King of the world – Become a Mayor in FourSqure and a Leader in Gowalla at the same time”.  There are loads of cool little achievements you could do to add up to an epic giant achievement.

Goals and Road Map

As of right now I have a simple interface to create and claim achievements.  I’d like to have a simple (but solid) API so you can reward an achievement to someone who visits your website.  I am motivated to get this project done, but since it is a side project most of the work on it gets done past midnight, so progress has been slow.

I’d like to keep the site as open and free as possible.  Anyone can add, edit and give out achievements.  I think that there may be individuals who would like to lock down an achievement for editing, so there may be an option for some type of pro level / freemium plans in the future.

My primary goal for the project so far has been learn about Python and MVC principles in another language (my background is in C#).  If I can get enough interest in the website I’d love to put more time into it.  I think it’s an awesome idea and fills a void that hasn’t really been addressed by any site out there.

If you think this is a site you’d like to visit please vote for me in the Lean Startup Challenge.  This article is a very late entry, so if you don’t have a chance to vote and are still interested in progress on my project or have any suggestions post a comment or send me an email!

Special thanks to the App Sumo crew for getting this deal and contest up and running.