Monday, February 22, 2010

iPad & Flash

I know Steve has mentioned his voiced reasons - and I'm not going to say what I think of Flash itself except to say that, like all technologies, there are advantages and disadvantages.

Several people are saying that the decision to not support the Flash on the iPad is to protect the App Store. I've this heard from several places.

But I'm not sure it holds up as an argument.

Two thoughts:

1. There are apps developed for straight html web sites already - html 5 will only extend the reach.

2. Additionally, unless I remember wrongly, native apps weren't there at the release of the iphone - web apps were initially touted as the initial approach.

Monday, December 14, 2009

SVN, Keyboards and mad, mad projects (z80!)

"This client is too old to work with working copy" --- some recent OS upgrade seems to have wiped my upgraded Subversion and replaced with 1.4.4 :-( Oh well, it's a quick fix to install new one. Must have only happened over the last few weeks...

I'm sure you've seen this keyboard before http://www.thinkgeek.com/computing/keyboards-mice/9836/. I like the look of it, although since I don't look at my keyboard whilst typing think it would be a bit wasted. Very pretty though. I wonder what the key action is like?

Anyway, been working on the Robot a few weeks ago and my game project last week. Although when say 'game project', actually I was continuing an asm to C/C++ converter I was writing on holiday and decided to spend a few hours on last week. To check the integrity of the data-set, I decided to write a machine code output ... effectively creating an assembler ... for Z80. Yeah, I know. I must be mad. Not finished yet, but other things need doing.

Anyway this week it's back onto the data importer for LWC, after I've checked-in the work I've been doing over the last few days into our Subversion server. Hence the hitting the Subversion client problem...

I've also got some work to do for another project which really needs to be finished before next week if I'm going to meet promised goals... going to be a busy week.

Anyway, blogging about it isn't going to get anything done...

Friday, November 13, 2009

Real world vs. software ... Real world wins :-)

The good thing about software is that, generally, you can get things working pretty well.

However, sometimes it doesn't always work first time. In my experience, this happens even more when you are dealing with the 'real world' more than usual, like in a Robot. Since I don't have a full mathematical model (or, in fact, any mathematical model) for the Robot work I'm doing, I have to use my mental model, known principles (e.g. DC motor drive, torque, skidding, etc.) and testing. But that leads to some head scratching when things don't work as they should.

Case in point: I have a problem where the robot thinks it moves so far in a straight line but actually moves some amount less. I think this is probably because the torque on acceleration is too high leading to some wheel spinning. It certainly appears to the be most likely cause.

So, since I can't control the motor current, I'm going to ramp up the motor terminal voltage using a technique called PWM (pulse width modulation). As long as the ramp up is slow enough it should help a lot.

No quite as simple as it would appear because the code needs to integrated with position adjustment (keeps it running in a straight line) and speed adjustment (keeps it running at a certain speed). But not too hard.

So ... I have a software switch (#define) to turn on and off the code that does the all new PWM based voltage ramp up and down.

Guess what? With the new ramp ON it appears to move a random distance not in a straight line. This is worst than the (skidding) original :(

Oh well, time for more tests and head scratching (also know as mental model adjustment).

Sunday, October 18, 2009

Random bits of interest...

Human readable markup http://en.wikipedia.org/wiki/YAML ... strangely it's a lot like the LWC2 format!

Should everything be addressed by a http verb and noun? Probably not but ... http://tomayko.com/writings/rest-to-my-wife - the big about all resources being addressed by a URI/URL is interesting I think.

128-bit pointers?

We are going (slowly) on the desktop and laptop over to 64-bit machines with 64-bit pointers. Of course, there are still lots of people/organisations using 32bitXP - but let's ignore them.

Would anyone want 128bit pointers?

What if we want memory mapped hard disk systems? Not just memory mapped files but entire hard disks mapped to the byte (byte addressable effectively) by pointers.

At the moment single hard disks for computers are up to the terabyte range (10^12 or 1000^4). Some organisations are using petabyte sized data sets (10^15 or 1000^5).

A 64 bit pointer can address 2^64 = 1.8 * 10^19 = 1.8e19 = 18*1000^6 = 18 exabytes.

1 hard disk today is 1TB ... only a 18,000,000 difference-not much! 25 years ago I was using 1KB RAM, today 2GB ... (assuming storage technologies continue to advance).

A set of disk drives for a large data set (several petabyte) is only 1,000 times as big to 18 exabytes

Not realistic? Someone said that Google was using 100 exabytes of data storage in 2007. That's bigger than a 64-bit pointer. They are not the only people talking about exabyte amounts of data...

Of course, do they need to byte address all of this? But remember, already many operating systems allow you to access files as memory mapped files.

The real world:

ZFS is a 128-bit file system. However, it only allows for 16EiB in a single file and file system. ext4 and NTFS support volumes up to 1 exabyte in size. HFS+ supports up to 8EiB file systems and file size.

Friday, October 02, 2009

Oh, please not DRM

As a user I dislike 'DRM' for software - it gets in my way. Even having to have a disk in the drive to play a game is a pain. What about if I don't have DVD/CD drive attached all the time?. However, as a small indie developer zero copy protection means lower or no sales.

But you don't want to spend a lot of time on anti-features like DRM because they don't add value to the people who might buy stuff. And might risk alienating the people who pay (also called 'your customers'). Or remove what customers might see as features*

So what are the alternatives?

Here's a couple of ideas:
  • Simple emailed registration keys with a trail period... an example: http://boutell.livejournal.com/1098150.html. Key here is to make things quick, painless. The trail period means people can see it's not rubbish - but also gives friends the ability to try it. Demo versions are not as good unless they contain enough for people to really try it. Be warned - most demos fail to balance this well in my experience.
  • Enable extra features with Internet. The idea here is basically the thing works without server checking - but there are bonus features for registered users that activate, e.g. high score tables, upgrade patches for registered users, maybe extra quests, ability to show off their character on some website, real-time chat, shared game experiences, etc. These are mostly game style stuff but can be also applied to application level software by enabling some free service - remember to mention this is time limited free bonus material either way ... don't want people getting upset when the servers go dead sometime in 5 years (I heard some games companies make you prove you purchased in order to post on the forums ... not convinced this is such a great idea - see 'invisible stuff' below).
  • Steam's model of easy downloads - http://en.wikipedia.org/wiki/Steam_(content_delivery). It's not without it's problems, but a lot of users put up with it because it's benefits outweigh the negatives, at least for those users. Windows only. And you can't pretend it isn't DRM but some users love it.
  • On-line - maybe this it way it will go, ultimately. It could be considered an extreme form of extra features. Think World of Warcraft for paying users. But what happens when the servers go dark? It will be sad when all these applications and games go away. Additionally, not everyone has internet 24/7. Even the rich are on planes sometimes.

Other invisible stuff that helps purchases happen:
  • Forums - that you participate in...
  • Emails - make sure you email a reply to any question. You'd be surprised how many companies who I've emailed with a simple problem or bug report who either never reply or send a snotty response back. Guess what that does to the possibility of registration? A lot of people send a question to test the water.
  • Easy & fast payment method with lots of options and let people know ahead of time what to expect (server page with registration, instant email, email within 24 hours, etc.)

Some other recent references:
A Jeff Vogel post with some interesting comments ... http://jeff-vogel.blogspot.com/2009/09/some-kind-words-about-drm-for-once.html

Alternatively this made me cringe because I think it won't help for this game. But maybe I just don't understand...

Note from above
* Like: loading on multiple machines they use, move from one machine to another, using/playing on the move, taking around to a mates to play, playing at a party with no Internet, using the application in 20 years time (yeah, I've seen that), stops working when the technology they are using it on slightly changes (e.g. no DVD/CD drive), used in an emulator in 5 years time, giving your copy to a friend as a present, etc, etc...

Tuesday, September 22, 2009

Some night's just don't go well

I was looking forward to a good evening's programming. I was dreaming about this bit of code last night, so I think I've already written it once (in my head at least).

However, no coding has happened so far.
  • Initially, I was looking up .pyc run problems. No problem - we will use .py.
  • Tried LWC2 ... no weather station = quit. Stu pointed me in the right direction.
  • The build Stu sent doesn't have a key component - or I'm going mad. Probably the latter.
  • Whilst this was happening I needed to move the directory structure around for the importer - which involved subversion. Somehow, against all odds, I've messed it up. How? No idea - I use subversion a lot. I think the simplest solution is backing up the directory then restoring from hourly backup (Thank you Time Machine).
Anyhow, if I don't stop blogging (I needed to vent), I won't get anything done this evening.

Tuesday, August 25, 2009

Grand Central Dispatch

The main topic of discussion today between myself and Stu is a new Snow Leopard Mac OS X 10.6 technology called Grand Central Dispatch. The technical brief gives an interesting glimpse, with enough information to get you excited but not enough actually tell you what you need to know to write program.

Of all the features of the new operating system this feature, I think, will be the most discussed by geeky programmers this week. Sure OpenCL is nice, but we've talked about that. More 64-bit is wonderful. Accessibility is cool. But for programmers, multi-threading is a pain that needs sorting out, preferably before the next generation of multi-core chips arrive.

I know there are many solutions and others (Microsoft, Sun...) are producing 'new' solutions. It's an interesting thing to watch and be able to play with. Pity Snow Leopard is Intel only ... maybe a reason to upgrade. Where are those low power quad core laptop chips?

Friday, August 21, 2009

Monochrome Monitors

Whilst I'm not sure I've seen any scientific evidence that monochrome monitors, like amber or green, help with eye strain versus a modern colour monitor, they did tend to be sharper than the same generation/similar cost versions of CRT colour monitors. Today's colour LCD monitors are pretty good for sharpness, of course, so it's less of an issue. And people do love colour - take syntax highlighting in text editors for code.

However, I think there is something special and 'cool' about those old monochrome displays. And I'm sure that's recognised today in a certain class of application. Take for instance the MacOSX Terminal application that has several colour sets built-in, including a pretty class green terminal one, and it allows you to set your own colours. In fact, nearly all command line interfaces, serial and Telnet terminal applications allow you to set colours - and apart from a very few specific instances, these are monochrome applications.

I'm currently making a couple of command line applications and my current command window? Full screen, black background and wonderful amber text. Ahh, bask in that orange glow. More productive? I think so, even if the effect is due to some happiness factor.

And if the happiness fades? Well, there's always green text...

Saturday, June 27, 2009

Micromouse 2009

A good day with a bunch of schools competing and some really good runs in the maze solvers and time trails.
Newer›  ‹Older