Sunday, January 31, 2010

Patents, copyrights and reverse-engineering laws - confusing at best

First, some notes people have written recently on trouble they've had with Software Patents:

In the US: Proposal: An Independent Inventor Defense Against Software Patents

In the EU: Saxon Diaries - Patents: an Open Letter to my MP

Next, some counter-intuitive and confusing info I found on IP protection, reverse-engineering and infringement:

Related to the Windows-vs-Samba server issue (From http://www.advogato.org/article/302.html):

4) follow the interoperability / rev-eng guidelines. in the EU, as mentioned above, the laws are that you can only rev-eng for interoperability only, where info is not available by any other means [i assume that this excludes microsoft's NT source code license - available at $1m per year - because it is a read-only license...]
So, as I was saying, Reverse Engg is illegal for most things unless:
1) The Patent has expired
2) It is software and you are rev-engging it for “inter-op” and your rev-engg was “legal” – definitely a gray area
3) Freedom of Speech – again a big loop hole

Legality of reverse engineering (From http://en.wikipedia.org/wiki/Reverse_engineering#Legality)
In the United States and many other countries, even if an artifact or process is protected by trade secrets, reverse-engineering the artifact or process is often lawful as long as it is obtained legitimately. Patents, on the other hand, need a public disclosure of an invention, and therefore, patented items do not necessarily have to be reverse-engineered to be studied. One common motivation of reverse engineers is to determine whether a competitor's product contains patent infringements or copyright infringements.

Reverse engineering software or hardware systems which is done for the purposes of interoperability (for example, to support undocumented file formats or undocumented hardware peripherals) is mostly believed to be legal, though patent owners often contest this and attempt to stifle any reverse engineering of their products for any reason.

For the curious and if you have a lot of time on your hands (I don't):

Reprieve from the rains (a.k.a hiking in Sierra Azul Open Space Preserve)

Sierra Azul Open Space Preserve is a pretty nice place to go hiking without having to do too much driving. It's just a few miles off 85 South. Adjacent to Almaden Quicksilver County Park. I did the Woods trail (back and forth - 2.7m one way).

Not too crowded unlike the trails in and around Portola valley. Just a few cyclists and a few horse riders. Speaking of horse riders - this rainy season is probably the best time to go there. All the horsesh** on the trails gets washed off and the flies and smells don't linger on, making it enjoyable for hikers.

You have to drive for 6 miles on Hicks Road. I wonder why they named it like that.


View Larger Map

Saturday, January 30, 2010

This month in Sci-Fi

Accelerando (Singularity) by Charles Stross:
Charles Stross has made a complete hash of what would've been a fantastic novel on the Singularity. You are subjected to such copious amounts of techno-babble that would put even a Gartner or Forrester analyst on a Redbull+coffee over dose to shame. IP network protocol stack, Java Ring etc etc and so much of such page after page of noise that I didn't bother to read all pages. If only he had stuck to the stars powering giant AIs and brown dwarves..it would've been a nice novel.

It left such a bad after taste that I had to run to the second hand bookstore to buy some "old fashioned" Greg Bear, Gregory Benford novels.

Ironically his first novel - Singularity Sky was far better.

Other novels that I read in the recent past:
Vernor Vinge - A deepness in the sky. Not very original. But an OK read.

Peter F Hamilton - The reality dysfunction. Another first part of very likely a long and laborious Hamilton series. Hasn't anyone told him that it's ok to write shorter, slick novels?

Clarke and Baxter - Time's eye. Two great minds worked together to bring us this very interesting alternative history, sci-fi book. Seemed interesting enough. I might eventually read the rest of the series.

Until next time...cheers!

Friday, January 29, 2010

I thought my Gmail Chat said "You are invincible"....I did a double take and then realized it said "invisible".

Thursday, January 28, 2010

"Quantum Entanglement" is the phenomenon where you bump into someone on your way to the restroom. For the rest of the week your restroom visits uncannily synchronize with each others'.

Wednesday, January 27, 2010

Comp Sci: The Big O complexity of software is calculated by measuring how loud the engineer screams "Oh dear lord!!" when he is reviewing said software's source code.

Asterix (Comic) - singularly responsible for making a generation of kids to mis-spell "Asterisk" as "Asteriks".

Car's left indicator broken. Had to drive to work by making only right turns. I am 2 hrs late to work.

Had Chinese for lunch today. Fortune cookie said - "Medium iron. Wash colors separately". So, I left work early to do my laundry.

Somehow I wonder if He meant - "Let there be free energy: and there was peace" and not a word about light per se.

Thursday, January 21, 2010

R.I.P Sun (via James Gosling)

R.I.P Sun - James Gosling's blog.

Sunday, January 17, 2010

Drongo


Drongo, originally uploaded by SRJP.

Pic taken by my dad - Dr. Jayaprakash.

Monday, January 11, 2010

Black Kite


Black kite, originally uploaded by SRJP.

Pic taken by my dad - Dr. Jayaprakash.

Lark


Lark, originally uploaded by SRJP.

Pic taken by my dad - Dr. Jayaprakash.

Kestrel


kestrel, originally uploaded by SRJP.

Pic taken by my dad - Dr. Jayaprakash.

Blue Jay


Blue jay, originally uploaded by SRJP.

Pic taken by my dad - Dr. Jayaprakash.

Kestrel


kestrel, originally uploaded by SRJP.

Pic taken by my dad - Dr. Jayaprakash.

Thursday, January 07, 2010

You can tell that technology has reached an inflection point when..

You can tell that technology has reached an inflection point when - you hear people watch TV on their computer, check email on their phone, talk to their friends using their Xbox and type faster than they can write...

Tuesday, January 05, 2010

SQLite talk - SELECT * FROM SQLite_internals

I haven't used SQLite but I've used and still like H2Database a lot. SQLite is the grand daddy of embedded/in-process databases. Just look at its user base - almost all the smartphone products, Mac, Adobe, aviation, automation...

This talk by its author Richard Hipp is entertaining and informative - Hipp: SELECT * FROM SQLite_internals.

What amused me was when he said SQLite is robust against malloc() failures and there's a setting that avoids calling malloc(). So SQLite manages memory on its own because (without a real memory manager - *ahem* like Garbage Collectors) memory becomes fragmented and then malloc() fails which is not a good thing when running aviation systems.
[Update: Jan 6, 2010 - So SQLite manages memory on its own because the Operating System's memory manager most often does not work well for long running applications, which I had written about earlier too - in support of *ahem* Mark-Compact or Mark-Relocate Garbage Collectors]

It supports Full text search, R-Trees, Thread-safe - pretty cool stuff for a 750KB binary.

The eternal triangle - CPU, RAM and Disk

Scale up or Scale out?

"Normal" applications on which average engineers like you and me get to work on, now have a great variety of architectural choices. Massive Scale-out software architectures have trickled down from Google, Yahoo, Amazon, LinkedIn, Facebook ..<seemingly endless list>... to easily accessible projects under Apache and the like. Hardware has also seen its share of impressive growth. What with super-duper multi-Core CPUs to a million Ops/sec Solid State Drives; Scale-up does not seem like a bad idea at all.

NoSQL is very tempting to us engineers. Why not drink the NoSQL Kool-aid eh? However, there have been many times when I've found myself wondering with a NoSQL hangover and a boat load of challenges that they don't tell you about when you use these kinds of systems.... Do we really need to Scale-up when Scaling-out with good old Disks and CPUs is much much [sic] simpler and cheaper? After all, Intel's SSDs can do 1m ops/sec and there's already 128 hardware Threaded CPUs in the pipeline. In another year or so there will very likely be 100+ Cores. Azul Systems and Sun's Niagara chips have at least in my living memory always had such many-Core systems.

I'm not the only one with these doubts. Scaling-out for average apps just seems like an excuse for bad design. Look at all these bright people playing around with SSDs and big RAM configurations:


Until next time..