Slashdot: News for Nerds


Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Today, I am an inventor in two countries!

Yaztromo (655250) writes | more than 5 years ago

Patents 3

Rewind back to 2000. While everyone was taking a breather after Y2K turned out to be a relative non-event (thanks to hard work from the technical community everywhere), I was coming up with ideas. Ideas for things. Things that would do stuff.

Rewind back to 2000. While everyone was taking a breather after Y2K turned out to be a relative non-event (thanks to hard work from the technical community everywhere), I was coming up with ideas. Ideas for things. Things that would do stuff.

Some of these things caught the attention of my then-employer (a company often associated with the words "big" and "blue"), and the slow wheels started grinding them towards some patents. Two of them in particular made their way through the internal grinder, and became actual applications: "Executing Native Code in Place of Non-Native Code", and "Dynamic Generation of Program Execution Trace Files in a Standard Markup Language".

Then that company gave me the boot.

Over the years since, I've kept an eye on my ideas through online databases. Both were filed in both Canada and the US, with the US applications appearing to be "links" to the Canadian patents. I'd look in on the CIPO database here in Canada every few months, generally to see the only "progress" being that my former employer had paid some yearly renewal fee.

This changed briefly back in 2006, when ""Dynamic Generation of Program Execution Trace Files..." was listed in CIPO's database as "dead". You win some, you lose some.

Ever since, nothing has changed...until I decided on a lark to take a peek today, to find:


So I decided to do a quick search of Google's Patent Database to see if it shows up there too, only to find an unexpected entry instead: I have been an inventor on a patent since 2007, and didn't know it. The one that was marked as dead in Canada turned out to have been issued in the US. So not only was I surprised today to find out that one of my inventions was just issued a Canadian patent, but that another one was granted a US patent nearly two years ago.

Regardless of what I might think about software patents, this is still a pretty happy day. Both of the ideas patented in these two patents are in use in the wild (and presumably without a license from IBM), and I personally hope it stays that way. I have no say over how my old employer uses these patents (I technically didn't have any say in them applying for these patents either), but it feels pretty good to have these two added feathers in my cap today. It's been a very long wait, and I had long ago given up on anything ever being granted, so this has been a rather pleasant surprise for me.


cancel ×


That is pretty cool (1)

Degrees (220395) | more than 5 years ago | (#28049145)

I noticed that Oracle referred to one of yours as a stepping stone for one of theirs. That's cool, that your work influenced them.

I tried to follow the code-substitution patent, but I didn't get beyond the first five pages. Sorry.

Re:That is pretty cool (1)

Yaztromo (655250) | more than 5 years ago | (#28057243)

From my experience on the way the citations work, it isn't so much that someone sat down to invent something and read over a big pile of patents to get ideas, and then invent something -- it's more that once you invent something, the patent lawyers get someone to search patent databases for anything even vaguely similar to their patent, and add it as a citation. So while it is kinda cool (and thanks for pointing it out -- I hadn't noticed!), I'm willing to bet that the inventors in this case probably never saw any of my work.

As for the code "substitution" patent, it is dense, isn't it? Algorithmically, I can break it down to the following:

  1. Non-native code tries to load a native library of routines that are needed for execution.
    • If the library is loaded, a flag is set. Otherwise, it's left unset.
  2. Whenever a critical method is called in the non-native code, it checks the state of the flag:
    • If it is set, the natively compiled version of the method is called
    • If it is unset, a non-native equivalent is called instead

In Java, this would look something like this (sorry for the lack of indentation, I can't seem to get /. to accept it):
public class PatentDemo {
private flag = false;
static {
try {
flag = true;
} catch (Throwable t) {}

public native void methodThatDoesSomethingNatively();

public void methodThatDoesSomethingInJava() {
// The stuff we need to do

public void methodThatDoesSomething() {
if (flag) methodThatDoesSomethingNatively();
else methodThatDoesSomethingInJava();

What does this buy you? The big benefit here is that for computationally lengthy/expensive methods, you can drop in a native library to speed up computation, however, if it's missing (because you want to run on a platform where it hasn't been compiled, for example), you'll still be able to complete the work -- it will just potentially take longer.

There are downsides, of course -- you effectively have to implement the same method twice if you want to make use of it. Still, I've noticed that since this patent was filed way-back-when, there are projects that are making use of this idea.

(And if anyone wants to make claims on its obviousness -- well, I can't entirely disagree. Please remember that the patenting decision was one of my employer at the time -- I just had a nifty idea that I showed off to my manager at the time, and the organization went through the patent route from there)

So that's all there is to that. It's surprising how much legal description can come out of such a small idea!


Re:That is pretty cool (1)

Degrees (220395) | more than 5 years ago | (#28084915)

Thank you for the explanation. That does make it easy to understand. I can certainly see the idea.

Check for New Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account