Get a cause.

I definitely think that we should have a cause. “CAUSE”? From “The Macintosh Way” by Guy Kawasaki, does the following: C – atalyzes selfless actions Ideally we want to inspire people to help each other. Our products will make a positive difference to someone’s life and they should want to spread the good word. A … Continue reading “Get a cause.”

I definitely think that we should have a cause.

“CAUSE”? From “The Macintosh Way” by Guy Kawasaki, does the following:

C – atalyzes selfless actions
Ideally we want to inspire people to help each other. Our products will make a positive difference to someone’s life and they should want to spread the good word.

A – dds to people’s lives
I want us to have solved a problem, scratched an itch and caused some relief in someone’s life. Someone out there has a longing for exactly the problems we intend to resolve.

U – nleashes big effects
We want people to talk about this stuff. We’re motivated. We think it’s fab. Everyone we’ve talked to has expressed delight. I think that’s a good sign.

S – eparates and polarizes people
I love people who have opinions. I love them even more when we can argue vehemently about these opinions and then immediately laugh. In the scale of things, this stuff doesn’t matter. We need to keep sight of the things that really matter.

E – mbodies a vision
If it’s not a vision, it’s not worth doing. You have to stand for something! You have to put your money where your mouth is. You have to be willing to risk all because in the end, you’ll regret wasting your life doing something that you didn’t love.

Another minor Og 0.26.0 bug

This one in og/manager.rb. Took me an age to track it down. I had an array of Og managed objects, and I was calling array.include?( foo ) where foo blatantly wasn’t in the array, and it was still returning true. As it turns out, the Og manager overrides the ‘==’ method, and does it badly. … Continue reading “Another minor Og 0.26.0 bug”

This one in og/manager.rb. Took me an age to track it down. I had an array of Og managed objects, and I was calling array.include?( foo ) where foo blatantly wasn’t in the array, and it was still returning true. As it turns out, the Og manager overrides the ‘==’ method, and does it badly. Here’s the fix. It should (with luck) get rolled in to the 0.27.0 release next week.

The DON’T DO THIS!!! comment is a little scary.

--- manager.rb  2006-01-13 22:49:03.000000000 +1100
+++ /tmp/manager.rb     2006-01-13 22:48:53.000000000 +1100
@@ -104,7 +104,11 @@
     # DON'T DO THIS!!!
     klass.module_eval %{
       def ==(other)
-        other ? @#{klass.primary_key.symbol} == other.#{klass.primary_key.symbol} : false
+               if( other.instance_of?(#{klass}) && @#{klass.primary_key.symbol} == other.#{klass.primary_key.symbol} )
+                       true
+               else
+                       false
+               end
       end
     } 

What’s in a name?

When we were coming up for a name for our company, MJ and I went back and forth on all sorts of different ideas. Eventually, infurious just came out of the blue. It’s a bit like that scene from 10 things I hate about you: Chastity: I know you can be overwhelmed. You can be … Continue reading “What’s in a name?”

When we were coming up for a name for our company, MJ and I went back and forth on all sorts of different ideas. Eventually, infurious just came out of the blue. It’s a bit like that scene from 10 things I hate about you:

Chastity: I know you can be overwhelmed. You can be underwhelmed. But can you ever just be whelmed?
Bianca: I think you can in Europe.

MJ was being infuriated by something (or someone). And then offhandedly he said “What about infurious?” The fact that’s it not a real English word didn’t put us off (I’ve only worked for one company that used real words for its name).

If you’re inflexible, it means you’re not flexible. If you’re inflammable, it means you’re very flammable. So which of these is the right one for infurious? I think both.

What’s the secret with the Macbook Pro and battery life?

There’s something up in Cupertino. Nowhere on the Apple site do we have any indication of the battery life of the MacBook Pro and none of the usual gadget and Mac sites have filed any sort of reports which means the dutiful BlackShirts have been sitting with the demo units and making sure any Mac … Continue reading “What’s the secret with the Macbook Pro and battery life?”

There’s something up in Cupertino.

Nowhere on the Apple site do we have any indication of the battery life of the MacBook Pro and none of the usual gadget and Mac sites have filed any sort of reports which means the dutiful BlackShirts have been sitting with the demo units and making sure any Mac geeks touching them don’t get a look-in. The BlackShirts are very attentive. Behold the Uniform of the Keepers of Technology Secrets.

Uniform of the JackBooted Guardians of Technology

But what’s the secret? Is it going to be less than the reported 5.5 hours (about 3 hours real world usage) of the 15″ G4? Is it going to be more? Is it embarrassing enough that the Macbook Pro is four times as fast but if the battery lasts twice as long too, that would just be awful!

Mission Statement

To build software that allows Apple to be used as a serious alternative to Wintel for any business. Any minute now, I’m going to get fired by Jay Mohr and MJ is going to turn into Cuba Gooding, Jr. Related posts: Wintel declines except for developers Money for nothing and chicks for free Top 10 … Continue reading “Mission Statement”

To build software that allows Apple to be used as a serious alternative to Wintel for any business.

Any minute now, I’m going to get fired by Jay Mohr and MJ is going to turn into Cuba Gooding, Jr.

Are you sure you want to be a software business owner?

A Micro-ISV is essentially what we’re trying to be. Joel has some excellent points. Number One. Don’t start a business if you can’t explain what pain it solves, for whom, and why your product will eliminate this pain, and how the customer will pay to solve this pain. Number Two. Don’t start a business by … Continue reading “Are you sure you want to be a software business owner?”

A Micro-ISV is essentially what we’re trying to be. Joel has some excellent points.

Number One. Don’t start a business
if you can’t explain what pain it solves, for whom, and
 why your product will eliminate this pain, and how the
 customer will pay to solve this pain.

Number Two. Don’t start a business 
by yourself. I know, there are lots of successful 
one-person startups, but there are even more failed 
one-person startups.

Number Three. Don’t expect much 
at first. People never know how much money they’re 
going to make in the first month when their product 
goes on sale.

This sort of thing would give most people nightmares.

Spare parts for sale…

I have a spare kidney, spare lung and I can probably do without bits of my liver. The lung may have some passive smoking damage but no more than could be expected in this day and age. The liver on the other hand is in mint condition considering I grew up and live in Ireland. … Continue reading “Spare parts for sale…”

I have a spare kidney, spare lung and I can probably do without bits of my liver. The lung may have some passive smoking damage but no more than could be expected in this day and age. The liver on the other hand is in mint condition considering I grew up and live in Ireland.

Reasonable bids accepted. Make cheques payable to “MJ’s MacBook Pro Fund”.

Apple @ MacWorld SF 2006

Apple released two new hardware products and two new software products yesterday. I want to buy now. iLife’06 – of course I want to buy it. I’m not stupid! I have kids! I want the motion menus and I want the photocasting. I want to add podcasts to my .Mac account and I want to … Continue reading “Apple @ MacWorld SF 2006”

Apple released two new hardware products and two new software products yesterday.

I want to buy now.

iLife’06 – of course I want to buy it. I’m not stupid! I have kids! I want the motion menus and I want the photocasting. I want to add podcasts to my .Mac account and I want to share the minutiae of my personal life with my family and friends. Of course I do. It’s not going to help me play the guitar any better….but I’m sure the guys in Cupertino are working on that.

iWork’06 – we’re going to buy this, oh yes. We’ve already moved to doing all documentation in Pages and though I do presentations infrequently enough to probably get away with a slideshow of pre-crafted JPEGs. Where’s the pesky spreadsheet module then? Was it bargained away in return for 5 more years shackled by Excel?

iMac – I like the iMac and now it’s twice as fast…for nothing extra. Neat. I wouldn’t buy one for me. It was already a fast machine. Now it’s…uh…faster.

MacBook Pro – well, this is where the lust sets in. I have a 1.67 GHz Powerbook which is about 5 months old. All of the apps I use are already native Intel. And this baby would be 4 times as fast as my current machine? I could switch tomorrow….all I need is the money. More on that later.

Apple seems to have worked around the clock seeing how many people they could annoy at once. Rather than updating the two product lines which haven’t seen much in the way of updates (iBook and Mac mini), they update the two lines which were recently already updated.

Can’t criticise though. They’re selling more Macs every quarter than they EVER have and I predict this quarter is going to be bumper. They obviously know what they are doing.

Bug in Og 0.26.0

Og 0.26.0 has a bug whereby schema_inheritance doesn’t work if you have more than one class inherit from the base class, and you are using the :evolve_schema => true in your Og.setup. Here is a patch which fixes that. I’ve submitted the patch to the Nitro team, but it won’t get rolled in until it … Continue reading “Bug in Og 0.26.0”

Og 0.26.0 has a bug whereby schema_inheritance doesn’t work if you have more than one class inherit from the base class, and you are using the :evolve_schema => true in your Og.setup.

Here is a patch which fixes that. I’ve submitted the patch to the Nitro team, but it won’t get rolled in until it has been thoroughly tested. Meanwhile, here it is in case you need it, in patch format.

diff -rN -u sql.rb /tmp/sql.rb 
--- sql.rb      2006-01-09 14:58:34.000000000 +1100
+++ /tmp/sql.rb 2006-01-09 14:57:35.000000000 +1100
@@ -595,8 +595,13 @@
       # holds the class name.
       fields << "ogtype VARCHAR(30)"
   
-      for desc in klass.descendents
-        properties.update(desc.properties)
+      # loop through superclasses up the inheritance chain, to ensure we don't miss any properties
+      superklass = klass.superclass
+      while (superklass.ancestors.include? SchemaInheritanceBase) do
+            for desc in superklass.descendents
+              properties.update(desc.properties)
+            end
+            superklass = superklass.superclass
       end
     end