Archive for the ‘Uncategorized’ Category

Is Apple the next Microsoft?

Wednesday, June 11th, 2008

To answer my rhetorical question: maybe. The difference (for now) is that I actually like the products apple makes, so I am not too upset by apple’s somewhat insane approach to locking down the iphone.

This random person is concerned that the reason there is no flash on the iphone is that apple is afraid of losing revenue to AIR apps:

What does this have to do with Adobe Flash and the fact I can’t get it on my iPhone?  Somewhere, I read that the SDK prohibits you from placing an interpreter on the iPhone.  That’s when the light bulb went off.  Flash is an interpreter.  Why would Apple care?…Putting it into Apple’s terms, if they let Flash onto the iPhone, you pay them once for that application, and then you’ll have a backdoor through which any Flash/Flex application can gain entry without having to pass through the Application Store.  It’s a revenue leak of biblical proportions, and one the market would be sure to exploit.

Apple may well be pursuing a Gillette approach with the app store, but I find this unlikely. First, this assumes they are going to sell the iPhone 3G at a loss. They aren’t, the carriers are taking the loss and making the profit on the two year contract (apple gave up the old rev share so the carriers could be sure to make money on that deal).

Second, the Gillette model works like this: sell the razor at a loss, make your profit on blades. In that model if someone else could sell blades that work on your razor it would break your business model. The reason the new activation scheme is much stricter is that unlockers will break the business model of the carriers, not apple. If you walk off with a phone but don’t sign up for service AT&T is out $200 (or whatever the subsidy is).

Apple cares about unlocking not to protect their business (after all, you bought the phone so they got your money already) but to protect the business of the carriers. If the carriers felt the phone was a loser they would do what they could to stop it from selling hurting apple’s sales. 

I don’t know if apple really prevents you from writing an interpreter. But if they do its not because they are afraid of losing revenue from app sales, but because they are worried about people writing VOIP apps that run over 3G–something AT&T is really concerned about (stupidly, in my opinion, but there you are). If you can install a VM on the iphone you can run VOIP past all the safeguards they probably installed. Apple is protecting AT&T and the other carriers. Believe me, they aren’t afraid of all the awesome AIR apps people are going to write. They are afraid of pissing off the carriers.

The iphone is locked down. It always will be. But I don’t think the app store is supposed to be a huge revenue generator for apple. Its supposed to be away to encourage people to buy iphones, which is where apple makes their profit. If you don’t like it, don’t develop for it and don’t use it.

 

Or, even better, write web apps! Web apps will run on iphone, android, winmo, blackberry et al….vendor lock in be damned.

EvilScript: Download it now!

Monday, May 5th, 2008

So I have cleaned up EvilScript, now a full featured downloadable thing. Its actually basically one function, about 30 lines. It allows you to write JS in a “classical” style, if thats your thing. The name “EvilScript” should give you an idea how I feel about the idea, but I spent this evening cleaning this up, so enjoy. Download the minified file here.

Using this is really simple. No support for public/private methods, but this is really just object cloning with inheritance:

var vehicle = {

		_init:function(){
			console.log('vi');
		},

		numwheels:0,

		running:false,

		start:function(){
			this.running = true;
		},

		stop:function(){
			this.running = false;
		},

		isRunning:function(){
			return this.running;
		},

		setWheelNum:function(num){
			this.numwheels = num;
		},

		getWheelNum:function(){
			return this.numwheels;
		}
	};

	var car = {
		extend:vehicle,

		_init:function(fueltype){
			this.fueltype = fueltype;
		},

		fueltype:'',

		getFuelType:function(){
			return this.fueltype;
		}

	};

	var myVehicle = evil.alloc(vehicle);

	var myCar = evil.alloc(car, ['unleaded']);

		log(myVehicle.isRunning());

		myVehicle.start();

		log(myVehicle.isRunning());

		log('Car:‘);
		log(’fuel: ‘+ myCar.getFuelType());
		log(myCar.isRunning());

		myVehicle.start();

		log(myCar.isRunning());

(more…)

Interesting

Wednesday, April 30th, 2008

Why aren’t their any aliens?.

Possibly evil classical inheritance in Javascript

Monday, April 21st, 2008

Instead of doing my work like I should, I have come up with a possibly very evil pattern to implement classical inheritance in Javascript. I’m sure this has been posted somewhere before, or written in a book or something, but I may as well put it out there myself.

The idea is to use object literals like you would use classes, using a clone technique to create new instances based on the classes. That way each “instance” of the class is a separate javascript object, with no dependence on other objects. Goes faster, uses less memory. I added a tiny amount of sugar to allow for extending superclasses, making “static” clones of objects and using a constructor. I don’t vouch for the performance or the non-harmfulness of this pattern.

With this pattern you can actually make a class like this:

	var myClass = {

		memberVar:'',

		_construct:function(args){
			this.memberVar = args.str;
		},

		sayHi:function(str){
			alert(str);
		}

	};

Then you can instantiate this using a pretty simple function I wrote (which I will show later):

	var args = {str:'mystring'};

	//syntax for makeNew:
	//	makeNew(obj myClass, bool static, obj args)

	var myObj = makeNew(myClass, false, args);

	myObj.sayHi('foo'); //result: "foo"

After the jump, extending superclasses:

(more…)

Windows 7

Thursday, February 7th, 2008

Of course, I can’t say anything about the Microsoft deal, which is of course the #1 most popular conversation topic at
Yahoo right now. But, it has got me thinking (again) about that piece of crap operating system they make up in redmond. Now, I know there are a lot of super smart people up in redmond working on windows, so I assume that the crappiness of windows comes from poor design decisions made early on (before things like security and multiple users were considered important for a desktop OS) and the nightmare of maintaining backwards compatibility.

So what is MS to do? It seems based on vista and recent news about SP1 that they have hit a wall with Windows NT, they can’t get the crappy out. So I propose its time to through it out and start over. Now, you can’t do that easily, but if you were here would be the goals of the project:

  • multiuser from the ground up
  • support SMP to take advantage of multi-core processors
  • designed to be secure at the base level
  • preserve a “windows” user interface
  • POSIX compliant
  • backwards compatible
  • run on x86
  • Not be GPL

So, that’s a really big project. But I propose microsoft do what apple did when facing this kind of project–go buy yourself a real operating system. And that operating system is SCO Unix. Now available at a bargain price. You would take SCO Unix, port a bunch of drivers, port the various .net/MIL/WPF stuff over to give it a windows interface. Now you have a secure os that runs on x86, has a windows interface, supports all the design goals but one and does not suck. And the good news about backwards compatible is that with modern, very fast processors (including those that support hypervisor) backwards compatibility can be maintained with a virtual machine, possibly using a very light version of the windows kernel.

Done and done.

Stupid Trolls

Thursday, January 24th, 2008

Valleywag keeps trolling me. I can’t help it, they make up crazy non-true things and its like a traffic accident, I can’t tear my eyes away.

Mobile Widgets!

Tuesday, January 8th, 2008

I love the idea, I love that yahoo is going to be supporting them. But I hate the idea of calling them “midgets.” I get that it is supposed to be cute…but no major company is going to use a word like that!

So

Monday, December 31st, 2007

I am at the office, alone. I somehow thought we had work today, I mean, it is not even a bank holiday. But everyone else seems to have known, because I am the only one here. So I drove down to Santa Clara just for thrills. What do people do down here? Right now I am considering making the geek pilgrimage to 1 Infinite Loop to look at the sign, which is sadly something I have always wanted to do. 

Bye bye mybloglog

Friday, December 28th, 2007

I took off the widget for now, I don’t have the time to make delayed loading work right. Might try again later.

Wonderful

Friday, December 21st, 2007

The mybloglog widget takes 2 seconds to load. I am going to delay it.