Posts Tagged ‘Programming’

iPad Test App…

Wednesday, March 10th, 2010

I’m writing this on the iPad Simulator. Very nice!

But the iPhone admin interface seems to require iPhone OS. Oh noes — bad version checking!

Snow Leopard and Software Pricing

Tuesday, March 9th, 2010

I just paid for software! Specifically, the Snow Leopard update. After installing it, I have ~20 gigs more space free! Plus, I got stickerz:

The $40 CAD price point was just about right for me to not consider it a “real” purchase. Conversely, I pirated some effing fantastic software today because it was at a $100 price point which I thought a bit much (though if I had it to spare it would be worth every penny). Partly I figured I could pay up when it started generating income for me.

Both would, essentially, have been fully deductible* because they were business acquisitions. The second application gave me a little “Please don’t pirate!” popup when I mis-clicked, which I circumvented. Similarly, I could have got Snow Leopard for free but didn’t. I was looking at the torrent description, which mentioned the price of a legit copy, and I ran to the Apple retailer around the corner and just bought it:

  1. It was faster than downloading, and
  2. I’m terrified of being thrown out of the Garden of the Apple by the mighty ban-hammer of Thor Steve.

I thought I’d mention the fact that I paid though, and go into just a tiny bit of my psychology — I assume our readers are at least somewhat interested in the software purchase decision.

* Check with a real accountant.

Drupal Success!

Friday, March 5th, 2010

Hey, y’all — I just got Drupal running locally, all the way from GD down to clean urls. None of that happens by default on OS X. It all involves what Jill calls “typing into the black box” (ie, the CLI):

I’m proud of myself because this takes a fair bit of understanding of the DAMP stack (eg, Entropy PHP, which you can use to easily get GD, still tries to use the deprecated /tmp/mysql.sock and breaks apachectl).

Now I just have to translate and communicate the same to our LAMP stack host so I can deploy, or get Coach Jimmy to give me root on his colobox :)

Ready, Set, Crack!

Friday, March 5th, 2010

Via BB, Assassin’s Creed 2’s supposedly “uncrackable” DRM (Digital Rights Management) was broken in less than 24 hours.

DRM is bad business, for a bunch of reasons. When I was working for Unnamed Giant Game Conglomerate they wanted us to cripple our games for future generations by making them unarchivable add digital locks to our games to briefly stop piracy.

“Briefly”, yes. The theory was if we could hold off the pirates for just a month — just one — then most of them would give up and buy the game.

So we added a week to our already-horrible schedule (at the cost of actual features) to cripple lock-down the product.

We uploaded the gold master to the disc printer, and my brother sent me a link to download a cracked version that afternoon.

BUSINESS FAIL

Cross Browser Support Stats

Tuesday, March 2nd, 2010

Again from FC, here are the browser share breakdowns and deltas from Jan ‘010:

  • Chrome: 5.61%, up 0.39% from January
  • IE: 61.58%, down 0.54%
  • Firefox: 24.23%, down 0.2%
  • Safari: 4.45%, down 0.08%
  • Opera: 2.35%, down 0.03%

Any analysis of the deltas, as FC does in its article, amounts to a lack of understanding of basic stats — they’re probably just analyzing noise and sampling error.

Something that often goes unmentioned is that IE’s users are broken into roughly-equal subsegments. First, there are the people who don’t care about updating their browsers (including users who suffer under the heel of lax administrators). Second, the people really into IE (they exist, and include some of the best engineers I know) and people who are forced to use IE by an institution that updates it correctly.

In short: the browser market actually looks more like this (rough numbers pulled straight from my brainhole):

  • IE6: 30%
  • IE7/8: 30%
  • Other, standards compliant: 40%*

* Although the current Opera can’t do the new rounded-border CSS stuff — which I suppose isn’t really a standard, just useful).

Since, as I’ve mentioned before, IE8 isn’t terrible with its standards compliance one can target those standards and blanket most of the users who care about Internet stuff (ie, the market you’re trying to reach with web apps). The rest you can just ignore, like Google (which is phasing out IE6 support starting yesterday).

And: Chrome on Windows is better than Chrome on Mac because the tabs have an infinitely-tall catchment for the mouse (they’re positioned at the top of the screen when the window is maximized). OS X reserves this space for itself, so Chrome’s tabs on that platform are just as hard to target as everyone else’s.

SIN Site Update

Thursday, February 25th, 2010

I changed the “under construction” image to one of my old extended-exposure photos with altered brightness, contrast, and an overlayed elliptical-gradient alpha mask. Here it is with the original for comparison:

Simple!

Not so simple: layering divs with different alphas and background images :(

I was thinking of just doing this for browser compatibility:

<!--[if IE]><meta http-equiv=”Refresh” content=”0; url=http://www.firefox.com/”><![endif]-->

Which uses IE-only “conditional comments” to redirect Internet Explorer users to the Firefox download site — kapow!

But I’ve decided not to be a jerk: IE 8 renders correctly, and I’m just going to pretend earlier versions don’t exist, like Google.

How Google Works

Thursday, February 25th, 2010

Via BB from a couple of days ago: this Wired article on how Google works.

You need three things for a genetic algorithm: a problem, a set of recombinable solutions, and a scoring-breeding mechanism.

This, for example, is all you need to make a relatively-small field-programmable gate array understand simple speech.

Google’s “signals” are it’s recombinable solutions, and its users — essentially everyone on the Internet — are its breeding and scoring system. The problem? Understanding language — AI-completeness itself.

If I was a Googlon my 20% time would be devoted to random generation, mutation, testing, and breeding, of new signals.

Perhaps Google really is SkyNet — no foolin’!

Quick! Someone ask it how the net amount of entropy in the universe can be massively decreased? (thx, Don)

Cracking Berries, Windows, and Necks

Tuesday, February 23rd, 2010

I’m ramping up on both Android and Berry development for SIN. It’s pretty horrible.

First, the Android emulator takes effing forever to start. At first I thought my Spotlight hangs were back. But, no, Usenet sez, no — the pithiest answer:

continue waiting !

Apparently it’s faster on Linux and faster still if you tell it to emulate a smaller memory card. It’s taken a half-hour so far. WTF is Google doing!?

So, that’s pretty terrible. Also, Berries don’t have an OSX development environment — just Windows — so I’m forced to work through the Linux hacks for doing Berry dev on unix-like systems.

If you’re not keeping track, that means I, and other mobile developers, need three machines:

  1. MacBook for iPhone/iPad
  2. Windows for Windows Mobile/Blackberry
  3. Linux for Android/Blackberry

Even with the new tax credit that’s a lot of hardware. I can get around lots of this with some virtual machines, but what if I want to hire a designer or artist? Are they just out of luck until I can load them up with software, laptops, or rent physical office space? Gross.

All-in, I’d almost rather stay an Apple-only shop because of this, but I’m pushing through because I am on the scent of a Berry contract, and it would be nice to be able to pitch Android as well.

Windows Mobile can burn in the fires of Hades. Do any phones actually use that platform?

CSS3 AT-AT

Tuesday, February 23rd, 2010

Via Mike, check out this pure CSS3 AT-AT walker (requires a Webkit browser like Safari or Chrome), and here’s how it’s done.

I haven’t read the latter link yet, but it strikes me that if you mixed in some javascript you could make games with this.

Rapper’s Delight

Wednesday, February 17th, 2010

One of my buddies from way back in the day, Mike Lin, recently launched B-Rhymes, a half/oblique/slant rhyme dictionary, to much acclaim. On Monday it hit metafilter and was picked up by nerdcore hip hop superstar MC Frontalot on his Twitter feed:

A slanted rhyme dictionary that makes your rap writing lots easier (but won’t help you w/ musical theater writing): http://www.b-rhymes.com/

Mike used to work for local a company that uses software to do genetic research (his academic background is in both Computer Science and Chemistry), and the B-Rhymes dictionary is a cross-pollination of DNA sequence alignment algorithms, linguistics, and cloud computing.

I’ve been privy to Mike’s behind-the-scenes development cycle and I chatted with him to get the facts straight for this article. I guess that means this is our site’s first interview!

Here’s the chat log, edited and tagged:

Jack: What flavor of algorithms does B-Rhymes use? DNA sequencing or something? What’s the buzz word?

Michael: It’s loosely inspired by DNA sequence alignment algorithms, where different nucleotides lining up get different scores because the rates of mutations from one nucleotide to another aren’t random.

Jack: And you built the database using Amazon’s cloud?

Michael: Yeah, everything is pre-calculated using an Amazon high compute node.

Jack: The dictionary was generated using a genetic algorithm?

Michael: No, this is the opposite — It’s an algorithm applied to genetics :P

Jack: So what’s this about mutations?

Michael: Oh. The point of aligning DNA like this is to determine how likely it is that these two sequences have a common ancestor. So trying to find the same gene in people as, say, mice. It’ll be different because of mutation, but similar because they have common ancestry.

Jack: So you’re looking for similar things with sounds in words?

Michael: Yeah, instead of nucleotides you have phonemes, sounds, and instead of likelihood of mutation, you have likelihood of those two sounds rhyming.

Jack: That’s why it’s kind of rough? It’s more like a list of words that might rhyme?

Michael: Sort of. It just rates consonance. Sometimes that’s not enough. The big fix I need to do is make it skip words where the last consonant doesn’t rhyme, but the rest does, so it gets a high score, but people say it doesn’t rhyme.

Jack: You used the Amazon cloud to run these algorithms on the whole dictionary?

Michael: Yeah, so 40k x 40k. That’s how many words are in the dictionary.

Jack: Each word compared to each word, gotcha.

Michael: It took about a day on Amazon versus 10 days the last time I did it on my laptop.

Jack: It’d be cool to allow people to star-rank matches. So you preserve the algorithmic rankings, but allow a search on what people think are better.

Michael: Yeah, that’d take some work to scale though.

Jack: Then the more people use the app the better it’d get.

Michael: It’s really fast right now because the web server doesn’t have to do much.

Jack: Also you’d probably need to make it regional — Aussies will rhyme things differently than Canadians.

Michael: Yeah, take accents into account. It’d be interesting to find an algorithm for different accents. If it’s a direct mapping you wouldn’t have to write too much code.

Jack: Why “B-Rhymes” — does that have a meaning?

Michael: Like, B-list celebrities.

Jack: Oh, I gotcha.

Michael: It’s short, but some people don’t seem to get it… :P

Jack: I was thinking it might relate to rhyme schemes being given as ABAB, eg. Like, “secondary rhymes”.

Michael: Hahah. People seem to think it means Busta-Rhymes.

Mike’s working on an iPhone App that’s coming along nicely (the mobile version of the site is here). You can follow Mike’s progress on the B-Rhymes blog here and on his personal blog here (Mike’s also a member of MPF’s audience).

This is a really sweet project; I’m looking forward to seeing how it develops and what kind of stuff Mike gets up to in future! Very exciting. :)