SimianLogic http://simianlogic3d.com/blog flex, game development, web tinkering, and the startup lifestyle Wed, 09 Jul 2008 05:03:42 +0000 http://wordpress.org/?v=2.0.2 en Boulder Blast http://simianlogic3d.com/blog/2008/07/08/boulder-blast/ http://simianlogic3d.com/blog/2008/07/08/boulder-blast/#comments Wed, 09 Jul 2008 05:03:42 +0000 SimianLogic games playable http://simianlogic3d.com/blog/2008/07/08/boulder-blast/ Boulder BlastMy newest game launched this time last month on Shockwave. It’s a sort of ballistic match-three game. A boulder sits on a central pedestal, which you can pull back and fire at other boulders on the playing field. Wherever your boulder lands, it wipes out all connected boulders of the same color. Just to spice it up a little, some of the boulders are two-toned (meaning a chain can pass from one color to the neighboring color). There are three “power-boulders” which affect the pieces around them: a magma boulder rotates periodically and destroys all boulders in the same row/column when it’s hit; a bomb boulder destroys all pieces within a certain radius; a “spirit” boulder destroys all pieces of a certain color. By aiming tactically, the player can further grab three more “meta-powerups” that affect the game mechanic: the aim powerup allows the player to eschew the slingshot mechanic and instead simply click on their desired target; the freeze powerup prevents any new boulders from dropping; the match powerup grants you a bonus for successfully targeting a specific color of boulder instead of flinging wildly. The game marks a number of first for me as a game developer:

It’s my first game for hire. There are definitely some pros and cons to doing it that way. The money is guaranteed whether the game is a hit or not (though it’s unlikely you’ll make a second one if your first game is a total flop…), but there are a couple of caveats. At the end of the day, you’re making a product for someone else–which means the client has the final say on things like art and sound approval. I actually thought this was going to be a bigger headache than it was. Shockwave came to me with a loose concept, but my producer gave me almost total freedom to go in whatever direction I chose.

It’s my first game with “art.” I’m not an artist, and I don’t pretend to be. The end result is that most of my games take on a procedural style with very little in the way of tangible assets. Procedural is great for my own stuff, but for a contract game the polish needs to be amped up a level. To that end, I actually subcontracted out the art assets. Though a headache at times, I’ll definitely do it again for games that warrant it. I’m very good at visualizing exactly what I want, but sometimes communicating that to an artist is a bit of a challenge. I think the end results speak for themselves, though.

It’s my first game with outsourced sound. Unlike art, I’m not totally incompetent at sound design. It just takes me awhile to sift through sound libraries and pick the right sounds. In the interest of speeding things along, I opted to have someone else do the sound for me. I compiled an asset list (though I manged to forget a few, of course) and had a third party do a “sound pull” based on my descriptions of what I needed. The cost was fairly trivial (especially considering I was going to purchase the sounds anyway), but I’ve got mixed feelings on the results. For most of the sounds, I know–if presented with four variations of each of the sounds–I probably would’ve chosen a different one. On the other hand, it may’ve taken me an hour to find the four candidates and choose the “perfect” one. In the end, I got sound effects that fit well enough and saved me hours of toil. I’m a bit of a perfectionist, so I don’t know if I would do the same again (unless under time pressure).

It’s my first exclusive game. Now that the game is out, the exclusivity is actually bothering me more than I thought it would. There are a couple of sites around that I’d consider “portfolio” sites (like my own site, Kongregate, and even Newgrounds) that I would love to upload the game to–not for any chance at winning contests, but more just to gather all my games in one place. That means I’m proud of the game, of course. If it was a steaming pile, I’d be perfectly happy to count my loot while no one ever played it. Aside from those sites, though, exclusivity is a bit of a relief as far as the work-load goes. I’ve done over 15 versions of Filler for various portals (with more coming still!), so there’s a sense that the work never ends. Aside from any bugfixes that need to be done, there’s a definite sense that Boulder Blast is “done.”

It’s my first game with a deadline. The release date for this game was penciled in even as I began prototyping it, which is an altogether different way of working on things. Like most of these “firsts,” I’m sort of torn on whether that’s a good thing or not. I’ve definitely still got the college many-class mentality, and I thrive when I’ve got tons of projects going at once. Knowing that a deadline is looming is great for generating focus, but it also makes the game feel like “work.” I’m much happier (albeit slower) when I can jump from project to project at my whim and go at my own pace. I might be interested in seeing if it’s possible to do a contract game without a work schedule in place (i.e. a “We want this, email us when it’s done” contract). All payment would obviously be presented at time of delivery instead of staggered payments throughout the build process, but I think that would do wonders for taking that “work” aspect and redirecting it back towards “fun hobby that happens to be lucrative.”

Summing up. Between Filler and Boulder Blast, I really feel like I’ve gotten an MBA over the last six months. Filler taught me loads about marketing, negotiations, and the economics of flash games–while Boulder Blast was all about resource management. I’ve got a lot of ideas somewhere in between sketch-on-a-napkin and full-on prototype, but for now I’m thinking I need to take a little time off from game development, put a little dev time into some of my languishing web projects, and get caught up on “fun stuff” like movies and (playing) games.

]]>
http://simianlogic3d.com/blog/2008/07/08/boulder-blast/feed/
Not Dead, Just Been Playing Mass Effect http://simianlogic3d.com/blog/2008/07/07/not-dead-just-been-playing-mass-effect/ http://simianlogic3d.com/blog/2008/07/07/not-dead-just-been-playing-mass-effect/#comments Tue, 08 Jul 2008 00:38:11 +0000 SimianLogic uncategorized http://simianlogic3d.com/blog/2008/07/07/not-dead-just-been-playing-mass-effect/ Not a lot of activity in the last month, but I think July’s going to be a little crazy. My latest game, Boulder Blast, launched June 10th. I did a whole post-mortem on the game, but I’ve had a few hurdles to jump through before it was cleared by Shockwave’s legal department (nothing nasty–just had to dot my i’s and cross my t’s). I’ll refresh that a little and get that out ASAP. Later this month will mark the 6-month anniversary of Filler’s release, so I thought it would be cool to do another “progress report” post. There are a couple of cool things going on at work that are probably worthy of a post.

People are already starting to ask me what I’m working on next, but so far the answer has been “nothing.” That’s not strictly true, of course, but nothing major. After Boulder Blast, I decided to reward myself with a little time off to finally sit down and play Mass Effect. I just finished it last night, so I may write up some of my thoughts on it a little later and post those. Besides Mass Effect, I’ve been slowly tinkering away at a couple of more abstract prototypes. I think there’s an activity in some of them, but if Nibblets taught me anything it’s that a novel idea doesn’t necessarily make for a fun game. I make keep them locked in the idea vault or I may just post the prototypes and do a little post on why I don’t think they’d succeed. While prototyping out various ideas for Flash games (to go along with the half-dozen or so that I’ve more or less spec’d out in my head), I’ve also just installed Visual C# and all the various add-ons needed to build games for the Xbox 360. As a first project, I’m going to port Filler over to XNA and toss in some multi-player goodness. If I get around to getting an iPhone, I’d probably do the same.

I’ve also taken up micro-blogging, as evinced by both a new Twitter account and a new Tumblr blog to document my ongoing love affair with food. If that wasn’t enough, I’ve registered a few more domain names in the last couple of months and I’m currently building a prototype of a to-do-list/mind-mapping application which might come in handy for managing all of that stuff that’s going on. Well, actually, managing that stuff isn’t so rough. It’s mainly so I can force myself to schedule rewards such as “play Mass Effect” instead of working on hobby projects with all of my spare time.

Stay tuned…

]]>
http://simianlogic3d.com/blog/2008/07/07/not-dead-just-been-playing-mass-effect/feed/
The Day I Almost Bought a PS3… or, the Tale of an Incompetent Best Buy Manager http://simianlogic3d.com/blog/2008/06/01/the-day-i-almost-bought-a-ps3-or-the-tale-of-an-incompetent-best-buy-manager/ http://simianlogic3d.com/blog/2008/06/01/the-day-i-almost-bought-a-ps3-or-the-tale-of-an-incompetent-best-buy-manager/#comments Mon, 02 Jun 2008 00:50:17 +0000 SimianLogic uncategorized http://simianlogic3d.com/blog/2008/06/01/the-day-i-almost-bought-a-ps3-or-the-tale-of-an-incompetent-best-buy-manager/ Rory BreakerAs Rory Breaker, the villain of Lock, Stock, and Two Smoking Barrels said, “If the milk turns sour, I ain’t the kind of [cat] to drink it.”

I saw over on SlickDeals that WalMart has a promotion running on PS3s that gives you a $100 gift certificate along with the purchase of a 40 GB PS3 at $399. Obviously, you can’t use the $100 on the PS3 itself, but so many peripherals are needed along with a system purchase that it might as well be $100 off. The posting on the deal said Best Buy was matching it, and I try to avoid WalMart on the weekend if I can avoid it (I’m not a huge fan of insane crowds).

Just to make sure, I called up the closest Best Buy, got a manager on the phone, and asked if they were honoring the $100 gift card deal. They were. In the 45 minutes it took me to drive down there, pick out a few peripherals ($80 for an HDMI cable, $60 on an extra controller, $60 each for two games, $25 each for two Blu-Ray movies, and $40 for the non-Blu-Ray-but-recently-released season 3 of Rescue Me), they received an email from corporate that WalMart was out of stock, so they no longer had to honor the deal. When I got to the checkout counter, he told me there was no way he could give me the $100 off coupon.

I reminded them that I’d just called less than an hour before, but the idiot manager said there was nothing he could do. He fed me some crap about a guy trying to buy six of them just a few minutes earlier, which really had nothing to do with the transaction I was trying to make. So I called his bluff: Match the deal or lose the sale. He didn’t bite, so I told him that was a terrible way to do business, slapped my $750 worth ($650 with $100 off) of merchandise down on the counter, and walked out of the store. On the way back to my car, I called my best friend–who’d worked at Best Buy for four years. He said that the store managers are practically omnipotent when it comes to honoring or not honoring specials, so the guy could’ve cut me some slack.
The crux of the matter here is that I don’t even really want a PS3. I know I’ll get one eventually just for the Blu-Ray player (to complement my 1080p TV), but I’m willing to wait until it’s a good buy. Today, for a short window, it was a good buy. The fact that I called in before going down there should’ve been enough to ensure me that deal. Any manager worth his salt would’ve taken a look at all the gear in my hands, done some basic math in his head, and come to the conclusion that this was a borderline case and the sales outweighed the lost dough on the gift card (not to mention all the future Blu-Ray sales that it might equate to). I don’t know what the margins are on those things, but I’d assume the total was more than $100 (I’ve heard anywhere from 10% to 30% margins for retail sales, but it’s especially high on things like peripherals and media sales). Instead of making a short-term profit on all the junk I was going to buy and creating a positive brand experience (”Hey, Best Buy is nice!”), the manager virtually ensured that I will NEVER buy that stuff from Best Buy and created a negative brand experience (”Even if you call in, you can’t trust what Best Buy says–they’re a bunch of lying crooks.”).

I’m not angry–just slightly annoyed that I wasted an hour driving down there and back for nothing.

]]>
http://simianlogic3d.com/blog/2008/06/01/the-day-i-almost-bought-a-ps3-or-the-tale-of-an-incompetent-best-buy-manager/feed/
Grill… check. Electric bicycle? Maybe http://simianlogic3d.com/blog/2008/05/28/grill-check-electric-bicycle-maybe/ http://simianlogic3d.com/blog/2008/05/28/grill-check-electric-bicycle-maybe/#comments Thu, 29 May 2008 00:20:49 +0000 SimianLogic biking personal personal finance grilling http://simianlogic3d.com/blog/2008/05/28/grill-check-electric-bicycle-maybe/ Big Green EggIn my mind, practically all the reasons you’d want to own a house instead of rent an apartment lie in the back yard: a grill, a small garden, and space for a dog to run around during the day. With it being Memorial Day weekend, I couldn’t wait any longer to knock item #1 off my list. I’m from Atlanta, birthplace of the Big Green Egg–and my dad has had one for probably 10 years now. They’re expensive, but they pretty much blow all the other grills I’ve seen out of the water. I was lucky to find a BGE store locally (the aptly named Eggs by the Bay). The BGE corporate website listed a few distributors that were closer to my new house in Redwood City, but for me it was worth it to drive a little further to give a sale to a small business. The extra driving was rewarded, incidentally. The owner had the large Egg I wanted, but but not the large-sized table for it. He was nice enough to loan me a nest (basically metal legs for the grill) until he could get the table in–plus a few days to allow me to paint and lacquer the new table. I sincerely doubt that any large specialty retailer would’ve been willing to do the same. The Eggs by the Bay store is actually having a sale later in the summer for gently used demo eggs (basically used for their one-day barbecue festival), but forgoing any grilling for an entire month+ just to save $100 or so wasn’t quite worth it for me. Besides, my economic stimulus check was burning a hole in my pocket (though that only covered about half of it…).

Though I keep telling myself not to make frivolous purchases, this is a product I’m so familiar with that it’s a necessary luxury. While I don’t like gas grills at all, I probably could’ve made do for the first summer with just a little Weber for $100 or so. Those tiny little grills are best suited for hamburgers and hotdogs, though, and having a real cooker out back sort of opens up the arsenal of what I can grill. At least that’s what I’ll be telling myself all summer long. I did a Boston Butt on it the night we got it home, then hotdogs + burgers + corn for a crowd of around twenty on Memorial Day.
With around $1300 worth of grill/table sitting on my back patio now, though, talking myself into my next big purchase is going to be an even tougher sell. When I first moved to California and started my new job, my apartment was 4 miles from my office. I hadn’t ridden a bike since I was around eight years old, so four miles seemed pretty intimidating at the time. In the end, though, I talked myself out of an electric (it was ONLY 4 miles…), grabbed a cheapo off of craigs list, and dove right in. It was such a success that I upgraded bikes in a few weeks and continued biking in to work a few times a week… until I busted my ankle back in January. The ankle was just getting healed enough to ride in again (okay, it was probably good enough about a month before that) for me to bike in to work one last time before moving. I’ve done some weekend biking since we moved, but the commute (now 9 miles, with a few fairly steep grades) is just a little too intimidating. Even at four miles, I’d come in drenched in sweat. If only there were a way to take that 9 mile one-way commute and shrink it down…

The first thing I did was check out CalTrain. The Redwood City station is around 3 miles from the house, and the San Antonio station is around three miles from the office. Six miles each way isn’t so bad–especially with an 18 minute break in between. Solid plan, then… but wait. Though the two stations are only two stops apart, they cross zones… which means it’s a $4 ticket each way. So instead of an 18-mile round trip by car (just under one gallon of gas at around $4) which takes around 15 minutes each way, the commute is now a multi-leg affair which costs twice as much, takes around three times as long, and makes me a slave to the Caltrain schedules. I’m a big fan of public transportation, but clearly this wasn’t the solution in my particular case.

bionXAnd that’s where all my prior research into electric bikes really came in handy. Having already invested $600 or so into a bike and getting very comfy with it, I wasn’t super-keen on buying a second bike just for commuting. My girlfriend and I go on weekend bike rides when possible, so I wanted to be able to use the bike as a normal bike without having 50 lbs of electronics all over it. After re-reading all the stuff I read when I first decided NOT to buy an electric, I think I’ve settled on the bionX kit, which a local eBike evangelist sells through his shop just a little ways down the bay. It’s pricey (~$1500 for the PL350), but it’s incredibly light (~15 lbs.) and has regenerative breaking. When looking at the stats on these things, I have to pretty much throw all the distance metrics out the window. I’m pretty sure they do their “performance” testing with guys who are 5′8 and 150 lbs riding a performance bike with slick tires on flat terraion, while I’m closer to 6′3 and 235 lbs riding a not-aerodynamic cruising bike with fat tires on hilly terrain. They claim 28 miles on the greatest assistance level, but I’d be thrilled with half that (I could always recharge at work if I had to). The bionX kit also has a regenerative training feature, which means you can actually crank the friction up and recharge the battery while getting a better workout. This seems ideal for commuting–I can crank up the pedal-assist as high as it will go for the commute TO work, which will hopefully keep me mostly stink-free (if not, I’m going to bug the gym down the street for a shower-only membership). After work, I can not only pedal unassisted the whole way home… I can actually crank up the difficulty to make it as much of a workout as I want. The best thing about it, basically, is how many options you have. I used to average around 10 mph based on my own output, so if this thing can effectively double that I should be able to get to work in about the same amount of time I was doing before.
I guess it’s pretty obvious that I’ve already sold myself on getting one. My inner financier will probably be successful in holding my inner gadget-nerd off for another month or so, though, just so I can really decide if I’m buying it because I really want to bike to work or if the purchase of the Big Green Egg has kicked off some sort of crazy high-dollar spending spree.

]]>
http://simianlogic3d.com/blog/2008/05/28/grill-check-electric-bicycle-maybe/feed/
Notes from Interplay http://simianlogic3d.com/blog/2008/05/23/notes-from-interplay/ http://simianlogic3d.com/blog/2008/05/23/notes-from-interplay/#comments Sat, 24 May 2008 02:09:02 +0000 SimianLogic games web tinkering http://simianlogic3d.com/blog/2008/05/23/notes-from-interplay/ I went up to the little Interplay conference yesterday, so I thought I’d post a few notes.

The Future of Social Gaming
This panel had guys from Kongregate and Meebo (two companies I actually like) and guys from SGN and Xynga (companies I’m not sold on yet).  Of the last two, they get a fair amount of Facebook traffic (some of which is organic and some of which they’ve merely bought).  From what I heard, the two hate each other… but both of them had their diplomatic hats on and mentioned that creating a genre (social games) was more important than any one company.

I found one thing the Xynga guy said pretty funny: “Every couple of months, the networks ratchet it up and make it harder to be viral.”  In my mind, what he’s basically saying is that every couple of months the networks make it harder to spam users.  If the content is good, and it really stands on its own, you don’t need spam for it to go viral.  That he’s bemoaning the anti-spam filters lead me to believe that they’re a little lacking in substance.  By building a single, large game channel, though, they’re essentially cutting Facebook out of the regulation picture.  Once their install base is high enough, they can actually just spam within their current users to drive eyeballs to their new apps.

10 Ways to Monetize Social Applications
I didn’t notice on the agenda that this was a “sponsored panel.”  It could’ve been called “10 Ways to integrate OfferPal into your Facebook Application.”  They quoted some pretty obscene eCPMs (>$200), before later revealing that was only from the actual “complete an offer” page that 5% of the users visited.  I have no doubt that this sort of thing works for teenagers (or anyone without a credit card), but these things are the sleeziest types of offers in my opinion.  Unless I was designing an application purely to make a buck, I don’t think I could stomach their system from a user-experience point of view (and I’ve actually got a couple of ideas that would work perfectly for it).  The funniest thing about their presentation was how many people got up and left right in the middle of it (as soon as it became apparent that it was a sales pitch)–it was really like rats fleeing a sinking ship.

The State of Social Games
This was one of the more interesting talks, in that at least Developer Analytics had some data to share.  After crunching a number of applications, they boiled pageviews per daily active user into some pretty interesting numbers:

  • Messaging Apps (Wall, Poke, etc) generate 3 page views per DAU
  • Dating Apps generate 20 page views per DAU
  • Social Gaming Apps generate 50 page views per DA

They basically saw only a handful of monetization channels for social games: digital goods, virtual currency, microtransactions, and CPA type offers.  They estimated that a successful app in today’s market generates around $40 per 1,000 DAU per month.

Funding the Social Gaming Sphere
This was a panel of three venture capitalists (Accel, Lightspeed, Hit Forge).  The moderator was a bit of a pain, but there was some interesting info.  One of them mentioned that current apps are seeing about $0.50 per DAU per month (right in line with Developer Analytics’ estimates).  The biggest way to make money, they suggested, was to let the guys who can spend $1000/month spend that much and let the guys who can’t afford $0.25/month play for free.  In America, though, gamers have been VERY resistant to letting players pay for a competitive advantage–essentially limiting the market to purely cosmetic items (i.e. Pimp My Avatar).  They also made a noteworthy distinction that Social Games are not just multiplayer games.  With multiplayer games, you are willing to play with anyone.  With social games, part of the fun is derived from playing with people you actually have relationships with.

Jeremy Liew of Lightspeed mentioned that they look at applications that see a total of around 100 million minutes of engagement per month.  I don’t have any actual stats on Filler’s average playtime, but I’d peg it conservatively at 5 minutes.  It’s well into its long tail by now, and averaging around 10,000 views a day.  Doing some basic math, 10k views/day * 30 days * 5 minutes per user… that’s about 1.5 million minutes of engagement per month.  Flash games and social games are different in that flash doesn’t serve up multiple page views (or create meaningful interactions between friends… yet), but I think it’s worthwhile to compare the two.  There has been huge inflation in sponsorship costs over the last year or so (basically since MochiAds hit), but the money tossed around for flash games is still nowhere near what some of these social apps are getting.  I see the difference in the two, but I don’t see the difference as being THAT huge–both are essentially diversions.  I think the money for flash games will continue to rise while the money paid for social apps will decline over the next year or two.

They also mentioned a few criteria for apps (or really, the developers behind the apps) who might get venture funding:

  1. Applications that are user content-driven (and therefore inherently more viral)
  2. Applications developed by someone with a portfolio of hits
  3. Applications which hit a stable niche (i.e. Poker) and own that niche

The question that they didn’t really answer, though, is why any of these applications need venture capital at all.  Most of the apps have next-to-nil production budgets, and those that become hits are likely profitable already.  Without any sort of cash burn to deal with, I don’t really see the need to give up part of your company for VC money–unless, perhaps, you want to quit your day job and do app development full time (I doubt a VC would invest in someone who wanted to keep doing development on nights & weekends).

Building a Successful Business
The founder of PlayFish gave a great talk on how they’ve been so successful so far.  I hadn’t heard of them, but after seeing their apps and hearing about their processes, I think these guys are going to make a mint.  Essentially their core value proposition is that they want to elevate the overall quality of Social Games to a level on par with a Nintendo DS or Wii title.  He gave five bullet points on how to build a successful business:

  1. Think Like a CFO (i.e. you should plan with the bottom line in mind, not what’s necessarily the most “creative”).  This will allow you to manage risk and learn how to manufacture hits over time.
  2. Create Great Product.  By this, he meant be the #1 or #2 in your competitive field, as this will create exponentially higher value in the long run.  I agree with his sentiment, but I’m not entirely sure it works for Flash Games (where there’s a new #1 or #2 every week).
  3. Kill Product.  Learn to pull the plug when something isn’t going the right way, and never look at that as a failure.  Make bold decisions if necessary and don’t look back.
  4. Build Platform.  Develop and document your tools and processes.  Not only will this improve efficiency, you’ll actually have an artifact repository that creates “enterprise value” (i.e. something that can be sold to someone else).
  5. Budgets Increase.  Plan ahead that the budgets will always increase.

Advertising and Marketing on Social Games
This was a panel on in-game advertising featuring DoubleFusion (I think… I was grabbing a Coke when they said the first guy’s name), OfferPal, NeoEdge, EA, and MochiMedia.  Perhaps because I was already so familiar with the space, I didn’t take much away from this panel.  The NeoEdge guy spoke most of the time, but the lady from OfferPal jumped in as often as possible to reiterate her sales pitch (”We have FIVE PhDs working to make you money!”).  Everyone on the panel was fairly subdued, but she looked a little out of place.  Not to sound sexist, but she would’ve fit in better as one of those hosts on QVC or some other home shopping network–just a little too overdressed and just a little too eager to sell you something.

Microtransactions and Virtual Goods
I didn’t really learn anything from this one, but it was interesting to hear the guys from Friends For Sale and Packrat talk about various problems they’ve had to deal with in regards to cheating, inflation, etc…  The panel moderator made very sure to explain the concept of monetary faucets and sinks SEVERAL times (though I’m sure the crowd was probably familiar with the idea already).
All in all, the conference started out kind of slow but ended with a few nuggets of information.  A friend of mine who’s interested in entering the space has been to a few of these things in the last couple of months and said most of the info has already been mentioned at other conferences.  Their was an open bar afterwards, so I at least got to feel like my $100 was well spent.

]]>
http://simianlogic3d.com/blog/2008/05/23/notes-from-interplay/feed/
SearchMonkey: First Impressions http://simianlogic3d.com/blog/2008/05/15/search-monkey-first-impressions/ http://simianlogic3d.com/blog/2008/05/15/search-monkey-first-impressions/#comments Fri, 16 May 2008 05:05:09 +0000 SimianLogic web tinkering search monkey http://simianlogic3d.com/blog/2008/05/15/search-monkey-first-impressions/ Lottery Button Enhanced Search Results

I went to the Yahoo! SearchMonkey (one word apparently) launch party/developer presentation thing tonight (a friend of mine works there and told me that there’d be free t-shirts, food, and beer involved… SOLD!). After I got back, I whipped up the little example above just to test the system out. All it does is scrape the Lottery Button, figure out how many tickets have been issued today, and supplement the search results with that data. Other than the fact that no one actually searches for it and that no one claims any tickets, the tech works pretty well… for me.

The biggest problem I have with the current SearchMonkey implementation is that it seems to be awesome for large, well-known publishers and utterly useless for small websites. Each SearchMonkey application has to be added manually by the end-user, which means that unless you search across a single website’s pages many many times (and see the “enhanced search results button”), you’re likely never going to feel the need to add that application. Worse, this will actually drive business away from the little guys in favor of the big guys.

Imagine Bob, who sells widgets. Bob was one of the first people to sell widgets, so he comes up first in the search results. A month or two after Bob’s shop started selling these widgets, Amazon also started to sell them. Bob’s page still comes up first in the Yahoo! search results, but now Amazon is second. Bob has almost no traffic (compared to Amazon, anyway), so no one ever bothered to add his SearchMonkey application (assuming the struggling small business Bob operates is even aware that it exists, and that he has enough time to build an application). Amazon, on the other hand, is an early adopter. Their search result, though second in the listings, shows a photo of the widget, used and new prices, a 4-star rating, and a user review–along with links to similar products. Which links is the average consumer going to click on?

Until the distribution model for SearchMonkey applications goes automatic (meaning site owners can verify that they do in fact own the site and automagically make people’s search results add their applications), I’m afraid it’s going to be bad news for the little guys.

]]>
http://simianlogic3d.com/blog/2008/05/15/search-monkey-first-impressions/feed/
Hello robots, come on in! http://simianlogic3d.com/blog/2008/05/15/hello-robots-come-on-in/ http://simianlogic3d.com/blog/2008/05/15/hello-robots-come-on-in/#comments Thu, 15 May 2008 19:22:58 +0000 SimianLogic web tinkering http://simianlogic3d.com/blog/2008/05/15/hello-robots-come-on-in/ I was poking around with Google’s webmaster toolkit today, and I came to the somewhat shocking realization that not a single one of my blog posts is in the Google index.  Whaaaaat?  I’d assumed that WordPress in general would be fairly SEO friendly, but such is not the case.  I’ve done robots.txt files and sitemaps for other little side projects in the last year or so, but this site has been around so long that it never even crossed my mind to get on the search engine bandwagon.  After digging around for approximately half a second, I “found” a pretty sweet plugin to auto-generate a sitemap.  I use Yahoo!’s one-click install of WP (still rocking version 2.0.2), so I had to dig around a little for a legacy version of the plugin.  While I’m a huge fan of the all-online interface for web-hosting (using Y! for 7 or 8-odd years now is one of the things that makes Heroku so appealing to me), but one thing it doesn’t allow you to do is fun stuff like CHMOD (the sitemap generator needs the sitemap.xml file to be at 777).  After looking around a bit further, I found Cyberduck… which also fairly rocks–and made doing the quick CHMOD a cinch.

I’d be a little more excited about my “discoveries” if I wasn’t fairly sure that the rest of the world has known about them for years.  Such is life–but hopefully I should start to see a little more Google traffic (already ~50% of my traffic) to pages other than the blog’s home page.  Next up on the list–create an actual home page.

]]>
http://simianlogic3d.com/blog/2008/05/15/hello-robots-come-on-in/feed/
Quick Flex Hack: Turn a LinkBar into a ToggleButtonBar http://simianlogic3d.com/blog/2008/05/09/quick-hack-to-turn-a-link-bar-into-a-toggle-button-bar/ http://simianlogic3d.com/blog/2008/05/09/quick-hack-to-turn-a-link-bar-into-a-toggle-button-bar/#comments Fri, 09 May 2008 19:42:18 +0000 SimianLogic flex http://simianlogic3d.com/blog/2008/05/09/quick-hack-to-turn-a-link-bar-into-a-toggle-button-bar/ I love how Flex’s (talking Flex 2 here, we haven’t jumped to Flex 3 yet at the day-job) LinkBar looks, but I’m not a big fan of view stacks. I wanted to use one just as you would normally use a ToggleButtonBar, but by default the LinkBar only grays out the “selected” item if its dataProvider is actually a ViewStack. Solution: subclass it and toss in a little hack that gets the results we want. Without further adieu, here’s the code to turn a link bar into a toggle bar:

package {

import mx.controls.*;
import mx.events.*;

public class ToggleLinkBar extends LinkBar {

public function ToggleLinkBar() {
super();
addEventListener(ItemClickEvent.ITEM_CLICK,changeToggle);
}

private function changeToggle(e:ItemClickEvent):void {
for(var i:int = 0; i < numChildren; i++) {
Button(getChildAt(i)).enabled = (selectedIndex != i);
}
}
}
}

Works like a charm!

]]>
http://simianlogic3d.com/blog/2008/05/09/quick-hack-to-turn-a-link-bar-into-a-toggle-button-bar/feed/
Meet the StockMoose http://simianlogic3d.com/blog/2008/05/06/meet-the-stockmoose/ http://simianlogic3d.com/blog/2008/05/06/meet-the-stockmoose/#comments Tue, 06 May 2008 20:35:05 +0000 SimianLogic work web tinkering heroku http://simianlogic3d.com/blog/2008/05/06/meet-the-stockmoose/ Stock MooseAnother day, another kooky web idea. This time, it’s the Stock Moose. We’ve had a lot of debate at work on how to gather data, how to present that data, and how to make that collection/presentation process engaging enough that someone might actually enjoy doing it just for the sake of doing it (rather than tying it to some future promise of “Oh, we’ll give you an edge on the trading room floor”). Back when the college football season was in full swing, Yahoo! introduced what they called the Team Ranker. The concept is incredibly simple: pick two teams out of a hat and display them both (with perhaps a few bits of useful info such as a win-loss record or… a stock chart). The user simply has to click on the one they think is better. Period.

Whichever team (or in this case, stock) has the best win percent is rated as #1, and the rest are sorted accordingly. The system was far too simple to game, at least for football. What this usually meant is that earlier in the day (when the East Coast is awake and voting) highly ranked teams in the SEC and other eastern conferences dominated the rankings. When it got later in the afternoon, teams with East Coast fan bases slipped in the rankings while PAC-10 teams rose into the top spots. This is unavoidable for something like football, where fans are fiercely loyal to their own teams over all others–but is the same true for stocks?

Would users on the East coast sway the list towards East-coast stalwarts like Coke and Home Depot while the West coast might favor silicon valley darlings over all others? It’s hard to say–especially considering that I limited the field to the Nasdaq 100, which is primarily dominated by tech stocks.

The beauty of today’s technology, though, is that these debates don’t have to remain purely academic. The Stock Moose is thin. It’s very, very thin. But rather than spend a few hours swapping emails back and forth with my bosses on whether or not something like that would even work, tools like Heroku make it possible to just go build it. I spent a grand total of around four hours kicking that thing out, and probably half of that time was spent trying to decide on a name for it (and then trying to explain to my girlfriend why I needed her to draw me a moose with a tie). The other half was spent cooking up the round-robin logic, which is probably way too complicated. Building something like this within our own code base–or even hosting it on our own servers without asking permission–would be unthinkable.

If we ultimately decide it’s a failure (which most little web projects are), what’s the cost? There’s always a chance, though, that something so simple (and arguably, so ugly) might go viral. If that happens–and that’s a big IF–what do we get? A little free advertising. If it doesn’t happen, we’ve still profited: we can now cross something else off our list and move towards a more targeted product.

Besides, Stock Moose has a nice ring to it.

]]>
http://simianlogic3d.com/blog/2008/05/06/meet-the-stockmoose/feed/
Insoshi, Meet Heroku http://simianlogic3d.com/blog/2008/04/30/insoshi-meet-heroku/ http://simianlogic3d.com/blog/2008/04/30/insoshi-meet-heroku/#comments Thu, 01 May 2008 01:36:34 +0000 SimianLogic ruby on rails web tinkering heroku insoshi http://simianlogic3d.com/blog/2008/04/30/insoshi-meet-heroku/ inoshi logoWhen I read about insoshi on Mashable and TechCrunch this morning, it got my mind buzzing… and immediately my thoughts turned to another Y Combinator startup–Heroku. I’ve been using Heroku for quite awhile now, and both my fondness for Ruby on Rails and my disdain (so far) for Google’s Big Table make it my prototyping engine of choice for the time being. The integration is not perfect by any stretch of the imagination, but here’s a quick and dirty way to get an insoshi install running on Heroku (assuming you have an acccount):

First Steps

  1. Download the insoshi tarball
  2. Create a new heroku app
  3. Import the insoshi tarball (how convenient is it that the heroku app importer wants a tarball!)
  4. Run rake db:migrate (this will run a ton of migrations… once complete you can press escape to close the little popup)
  5. Run rake install (this will create the default preferences file and the default forum.

Hiccup #1The session variable in Heroku is enormous… so jamming it into the pageviews table causes the app to choke. Solution: well, we’ll just toss out that data for now. I’ll try to come up with a more elegant solution later, but for now the goal is simply getting the app to run. The stack trace points you to Line #30 of app/controllers/application.rb, where the page_view is inserted. Comment out Line #32 (“:session => session,”) and save. If you refresh the app, you should now get a totally blank screen.

Hiccup #2

There seems to be some sort of conflict between the Heroku toolbar and the css of the stock insoshi install. Luckily, this is fixable. Go into your config directory and create a new file, “heroku.yml”. Add two variables and save the file:

toolbar_collaborators: false
toolbar_public: false

Refresh the app again and you will now see the blank install of insoshi! We’re not quite out of the woods yet, though.

Blank Insoshi Install

Hiccup #3

Log in to your default account. The email address will be “admin@example.com” and the password will be “admin”. Insoshi will immediately prompt you to change these away from the defaults.

Welcome Admin!

Welcome Admin!

Changing anything on the profile-edit page and pressing submit will take you straight to another rails crash… but this one is a little misleading. Your edits actually went through fine, it’s the redirect that’s crashing. There’s a SQL call on Line #310 of app/models/person.rb that needs to be modified to be compatible. What was originally:

sql = %(SELECT connections.*, COUNT(contact_id) FROM `connections`
WHERE ((person_id = ? OR person_id = ?)
AND status=?)
GROUP BY contact_id
HAVING count(contact_id) = 2)

Should be changed to:

sql = %(SELECT contact_id, COUNT(contact_id) FROM connections
WHERE ((person_id = ? OR person_id = ?)
AND status=?)
GROUP BY contact_id
HAVING count(contact_id) = 2)

Note that actually TWO changes have been made. First change “connections.*” to “contact_id”. Second, get rid of the goofy ` characters surrounding the word connections in the FROM clause. Refresh the page and you should now be good to go on viewing user pages. You may need to kick your Heroku app to get it to restart (I usually just change a single character in the config/routes.rb file and save for lack of a reset button).

Hiccup #4

This one’s a little obscure. Sign out of your account and click on the “People” tab. Click on the one user (”admin”), and rails will complain once more. I haven’t quite figured out WHY this one is breaking, but I did trace it back and toss in a workaround. The error occurs on Line #42 of app/views/people/show.html.erb. If you call Connection.connected?(SOME_PERSON, nil) in the Heroku console, the app will correctly return false. Though you are not logged in, the current_user variable is actually set to “false” as well. Calling Connection.connected?(SOME_PERSON, false) causes it to choke, which is why Rails is throwing errors. Rather than trace backwards further to see why the app was setting current_user to false, I took the shortcut: I installed an <% if logged_in? %> block surrounding that block of code… Voila! Did I mention this was a quick & dirty install?

As far as I can tell, that’s it! You should now have a working install of insoshi to go play around with. The session logging is a little broken, but it’s really all you need to start tinkering.

]]>
http://simianlogic3d.com/blog/2008/04/30/insoshi-meet-heroku/feed/