Uncategorized

SVN commit error: could not execute proppatch

A coworker recently had a strange error, where he could commit, and update files, but could not commit a modified file. This was in the Cornerstone mac client.

After trying everything that made sense, and rechecking everything, it was found that the comments were messing things up. They had some special characters like the registered trademark symbol, and that was throwing it off.

The worst bugs happen from the simplest things, it seems.

Uncategorized

Comments (0)

Permalink

Modding the Gaggia

I’ve got a decent Italian beginner espresso machine called the Gaggia Classic. It makes decent espresso, but not great.

In order to make it deliver quality shots, some modifications must be made to the machine. I’ve done the simplest, so far, which is to change the steam nozzle. Next on my list is a pressure valve and preheater. This will allow me to adjust the valve to make sure the shots are pouring around 9bar. The preheater will also heat the water before it enters the boiler, ensuring less temperature drop as I’m pouring.

The biggest modification necessary is a PID, which basically takes over the old analog thermostat, and replaces it with a microprocessor constantly checking whether or not to turn on the boiler to reach the desired temperature. I will probably make this with an Arduino, so I can add some nice features like automatically turning on the machine at a certain time every day.

Quite a bit of fun I stumbled onto there.

Uncategorized

Comments (0)

Permalink

Goals for Boggs

I’ve made a couple of goals for the game boggs.

  • First was just to complete it and market it as best as possible.
  • Second was to get at least 1 million drinks drank
  • Third is to get 100k game plays

I have completed it, and am trying to get the word out. I submitted it to flashgamedistribution.com and to Newgrounds.com, Kongregate.com, and MindJolt.com

I’ve posted comments on woot to try and get their ‘Flash in the Brainpan’, and avclub.com to get on their ‘Sawbuck Gamer’ feature articles. I couldn’t find who to directly mail for them though, so I just commented on the latest feature. My guesses are that I probably won’t get featured in any of those articles.

I’ve also sent an email to indiegames.com, and will try to get on some indie game sites.

An average game the user drinks about 30 beers so far, so to get to 1 million beers i need about 30k hits. Once I surpass that, my next goal will be 100k hits.

Uncategorized

Comments (0)

Permalink

Boggs

My latest game, Boggs has been released into the wild.

It can be played at
http://www.ryanluce.com/games/boggs
http://www.kongregate.com/games/p0wn/boggs

http://www.newgrounds.com/portal/view/540052

Enjoy :)

Uncategorized

Comments (0)

Permalink

Trailer for my upcoming game: Boggs

Uncategorized

Comments (0)

Permalink

Extending FlashPunk

While making my next game, I’ve extended the functionality of FlashPunk a little bit. This requires modification to the core framework to work, because some variables are private and not protected. Either way, thought someone might find it useful.

Rotated Spritemap – An animated rotated spritemap, allows for animations to be pre rotated, and caches the bitmap for memory conservation.

Autotiled Backdrop – Takes a spritemap and randomly tiles the backdrop with it’s sprites.

These are both raw, and fairly untested, so use at your own risk. They are helpful though, and I think anyone wanting to use them could get them to work following the instructions. I will continue to update these and hopefully they will make it into a future version of FlashPunk

Uncategorized

Comments (0)

Permalink

Woes of poor usability.

Usability is a increasingly large factor in today’s apps and websites. Being able to get the information when you want it is something rather new. Not 10 years ago the thought of browsing the internet, having a world of information, while walking around town on a 4″ color display was unthinkable.

The iPhone really revolutionized this concept by combining phone technology with superb usability. I depend on my iPhone for plenty of things, finding good restaurants, playing games, and whatever miscellaneous things I may come across.

Case in point, today I went to the post office to pick up a package. The tracking number is in ebay, so I browsed to it while at the my local post office. Ebay has a special site just for iphone, which makes it nice to browse on a smaller display. It does not, however, show the tracking number like normal ebay does. In fact, there is no way I could find this info. I downloaded the eBay application, thinking maybe it would be in there. Nope. I opened Opera mini, and the page didn’t render properly. There was no way for me to find the tracking number. Very poor usability, and very frustrating.

That is all for now, just a tidbit I was thinking of.

Never before

Uncategorized

Comments (0)

Permalink

Building bikes

I learned an immense amount about bikes this weekend. I found on bikesdirect.com a pretty cheap single speed bike(mercier kilo tt) and ordered it. I also ordered some new wheels from ebay and new handlebars and seat.

For such a simple machine as a bike, so much care and precision must go into each part. I completely built the bike from the ground up, which was a lot of fun and only took a couple of hours.

Uncategorized

Comments (0)

Permalink

Actionscript Design Patterns: the Singleton

I've been wanting to write down some of the stuff that's in my head for awhile. One of the main things I've wanted to do were some tutorials.  For the most part, I've encountered two types of Flash developers at agencies.

  • Those who know design patterns, but don't want to share the information, and frequently use them to write poor code.
  • Those who are not familiar with design patterns, thought they've heard the buzz word and sometimes ignorantly criticize it.

I'd like to start off with one of the most basic patterns out there, which is also one of the most commonly used.

The singleton is simply an object, or class, that is solely limited to one instance. This same instance can be viewed by any class or object that wants to use its methods, and view it's public properties.

This comes in handy when you want to share data with multiple classes, for instance the current score on a game you're making. Without the singleton you'd have to put the score in some sort of loosely typed global object, where anything can access it and change it's values. Generally, I like to keep my code locked down, so I know which classes are accessing each other. I also like to keep as few dependencies as possible.

Let's take a look at a simple game singleton class, in Actionscript 2.0 first, then Actionscript 3.0:

Actionscript:
  1. class GameSingleton
  2. {
  3.     //the _instance variable is a static variable that holds the single instance
  4.     //of GameSingleton
  5.     static private var _instance:GameSingleton;
  6.    
  7.     //the score variable will only be available through getter/setters
  8.     private var _score:Number;
  9.    
  10.         //I use a private constructor so that only GameSingleton itself can create an instance
  11.     private function GameSingleton()
  12.     {
  13.        
  14.     }
  15.    
  16. /*
  17. * I use a static getter to retrieve the
  18. *_instance variable to whom ever needs it
  19. */
  20. static public function get instance():GameSingleton
  21.     {
  22.         //if this is the first time the instance
  23.         //is requested, make a new one and store it
  24.         if (!_instance)
  25.             _instance = new GameSingleton();
  26.            
  27.         return _instance;
  28.     }
  29.    
  30.     public function get score():Number
  31.     {
  32.         return _score;
  33.     }
  34.    
  35.     public function set score(val:Number):Void
  36.     {
  37.         _score = val;
  38.     }
  39.    
  40. }

Now here's the AS3 version:

Actionscript:
  1. package 
  2. {
  3.     /**
  4.      * ...
  5.      * @author Ryan Luce
  6.      *
  7.      * Actionscript 3 sample singleton.
  8.      */
  9.     public class GameSingleton
  10.     {
  11.        
  12.         static private var _instance:GameSingleton;
  13.        
  14.         private var _score:int = 0;
  15.        
  16.         public function GameSingleton()
  17.         {
  18.            
  19.         }
  20.    
  21.          /*
  22.           * I use a static getter to retrieve the
  23.           * _instance variable to whom ever needs it
  24.           */       
  25. public static function get instance():GameSingleton
  26.         {
  27.             //if this is the first time the instance
  28.                         //is requested, make a new one and store it
  29.                         if (!_instance)
  30.                 _instance = new GameSingleton();
  31.                
  32.             return _instance;
  33.         }
  34.        
  35.         public function get score():uint
  36.         {
  37.             return _score;
  38.         }
  39.        
  40.         public function set score(val:int):void
  41.         {
  42.             _score = val;
  43.         }
  44.     }
  45.  
  46. }

As you can see both are very similar. They both have the same implementation and use, here is an example of how I would use this in a game:

Actionscript:
  1. private function shotLanded():void
  2.     {
  3.     //more typically, in the constructor of any particular class,
  4.     //you would declare an instance
  5.     //such as: private var
  6.     // _gameSingleton:GameSingleton = GameSingleton.instance
  7.    
  8.         GameSingleton.instance.score += 1;
  9.     }

Singletons are used in a variety of cases, and can really help just about any flash app you are doing. They help control your data by enclosing all variable in one single instance of a class, and allowing and class in your application to access that single instance. Throw away your _global as2 reference, and use Singleotns instead! Create less dependencies by allowing data to be shared in one, none connected instance.

Uncategorized

Comments (0)

Permalink

Searching Craigslist with Google

I frequently like to search craigslist with google instead of cl's built in search engine.

I daydream about getting a rad old, dependable car and driving across the country. I like looking at the pictures and prices of these cars, and I typically search all of craigslist to find this(rather than be limited to one of craigslist's subsections).

To setup a basic query you'd type this into the google search box:

site:craigslist.org inurl:cto amc eagle

What I'm doing there is I'm searching all of craigslist, if I wanted just to search new york I'd put

site:newyork.craigslist.org

instead of

site:craigslist.org

The inurl:cto is craigslists url modifier for automobiles sold by owner.

When browsing craigslist you will see these 3 letter modifiers in the browser's address bar.

If, for instance, you wanted to search bikes, you would goto craigslist, search bikes and see something like this url:

http://newyork.craigslist.org/search/bik?query=cinelli&catAbbreviation=bik

So what you'd do is you'd modify the query to be:

site:craigslist.org inurl:bik cinelli

In the side bar on google you can choose 'more search tools' or similar verbage. From here you want to only limit posts that were made in the past week or two weeks, so you don't see old craigslist posts that have most likely expired. Also you can sort by date, which helps if you run the same query several times a week.

Finally, one more advanced option is choosing only the years you want shown. If you are only into Broncos made from 1964-1974 you would set your query up as follows:
site:craigslist.org inurl:cto bronco 1964..1974

As you can see, the (year)..(year) syntax only allows for those years to be shown.

If you were looking for a bike for a shorter person, you may want to do something like this:

site:craigslist.org inurl:bik 42..47

These methods aren't fool proof, and you may not always get the results you want, but it is a good starting point and I hope it helps someone find something great!

Uncategorized

Comments (1)

Permalink