Monday, December 17, 2007

Multi-core ahead of programmers

Source: NY Times

Faster Chips Are Leaving Programmers in Their Dust
Published: December 17, 2007
Newer computer chips with multiple processors require dauntingly complex software and programmers are having a hard time keeping up.

Off the cuff I'd think that living systems have the answer as anything with a brain is massively parallel.

One more quote from the article:

...He envisions modern chips that will increasingly resemble musical orchestras. Rather than having tiled arrays of identical processors, the microprocessor of the future will include many different computing cores, each built to solve a specific type of problem. A.M.D. has already announced its intent to blend both graphics and traditional processing units onto a single piece of silicon....

Whatever the answer it reasonable to me that whomever gets it right will lead the computer world and everyone else will be forced to follow.

Saturday, December 15, 2007

Balance and pregnancy

Source: NY Times

Why Pregnant Women Don’t Tip Over
Published: December 12, 2007
Researchers have found evidence that evolution produced a stronger and more flexible lower spine for women.

Monday, December 03, 2007

Bigger tropics from global warming

(click on post title to go to article)
Source: National Geographic

Climate Change Pushing Tropics Farther, Faster
Richard A. Lovett
for National Geographic News
December 3, 2007

Over the past 25 years the tropics have expanded by as much as 300 miles (500 kilometers) north and south—evidence of climate change in action, a new study says....

Tuesday, November 06, 2007

Class Viewer D?

Continuing to think about the next thing for Class Viewer I am coming now to the idea of variations on the theme, where now I'm wondering about a Class Viewer D, where "D" is for Development. The main thing new there would be that along with being able to go to javadocs when you click on a method, you'd be able to open the source code if it is available in your classpath and go directly to that method in the code in a programmer's text editor.

Thing about this idea is that it seems to me that it'd be rather easy to program though now I'd need to bundle a text editor but there are open source ones available, and if they do not allow being opened with a call to a line number, then I'd just add that feature.

That has me thinking then about plug-ins for Class Viewer where I set things up where additional features can be done by other developers as I think about a lightweight development suite around my little program. But that is more the dreaming stuff, as knowing me it's quite possible I'll still be muttering about these things a year from now.

Oh yeah, I'm still pondering the Class Viewer Enterprise variation as well, where Class Viewer is a gateway to any company's codebase, where the opening second screen which is all whitespace now would have some kind of branded welcome and maybe news where it could be on an intranet or the Internet.

I am currently looking a having some ideas really nailed down by June 2008, but may do something sooner if I could get some kind of partnership with funding going.

Without that I think the odds are increasing that Class Viewer D might move forward sometime in Fall 2008, with rapid development, so I'd have something out that fall, but with me there is no telling if I'll change my mind later or not.

Thursday, October 11, 2007

Fractal digital watermarking

I was thinking about my DMESE idea earlier today while on the bus, and it occurred to me that the concept would allow Original Equipment Manufactured media, which I'll call OEM media from here on out, to be designed to be hard to forge, as digital media equipment would encrypt copies they make only for OEM's that asked for it, so that a person could, for instance, copy their own videos that they made without the copies being forced to be encrypted.

That would put pressure on illegal copiers to counterfeit the OEM's to fool the equipment--or simply get it convinced that they were not copies of OEM media at all.

So digital watermarking would be necessary on data stored on the OEM disks so that, for instance, your DVD drive knew it was dealing with copyrighted material even if other signs said it was not.

And thinking about digital watermarking as the bus rode on got me to considering a fractal based watermarking scheme in the red color zone, where fractal images would be embedded in the red frequency range in such a way that they would be invisible to the human eye (so no you would not see this red thing on your screen).

I thought fractals because mathematically a fractal image could have an infinite number of components while practically there would be a finite but very large number of fractals embedded in the red zone which, for instance, a DVD drive could detect so it would know it had an OEM disk.

It would be very difficult though for a counterfeiter to remove ALL the fractals, and the presence of fractals in the red zone would indicate an OEM media.

So manufacturers would just make equipment that detected fractals in the red zone, which would tell the equipment it was dealing with an OEM, and then some other detail, like holograms on the disk itself would tell it that it had a valid copy, forcing counterfeiters to counterfeit everything or not fool the machine.

Then there could be a continual battle, like with currency, to keep counterfeiters from succeeding with making passable copies of OEM media, while it would be very hard for them to try to simply erase the digital watermark, as every single OEM could have a different fractal watermarking in the red zone, and equipment would assume any fractal in the red zone meant it had an OEM.

Thoughts I had while musing on the subject on the bus this morning.

James Harris

Sunday, September 30, 2007

People, process and products

Source: NY Times

The Unsung Heroes Who Move Products Forward

Published: September 30, 2007
The success of Apple, Intel, Google and scores of other technology companies has as much or more to do with their process innovations as the products.

Goes to the old debate about how entertainment figures draw so much attention while modern innovators rarely do as well, and maybe part of it is just visibility.

Like the opinion article linked to above mentions, these are people in the background building products which are what people see.

But it is so much bigger than computers, as who are the innovators figuring out the latest cars or airplanes, or making televisions flat or I wonder, how many people around the world know the key inventors of the television set?

Go way back and who figured out how to make glass? Or my own personal favorite when considering this question, how many people know what person or persons developed the spoon?

James Harris

Friday, August 10, 2007

Class Viewer for C?

I have been thinking for a while about what to do next with the Class Viewer project and I keep thinking that an enterprise version is a logical step and it occurred to me that other languages would be a nice step as well, like for C++.

An enterprise Class Viewer could be a gateway to a software development company's javadocs, offering a nice middle level app between them and users as well as their own developers.

And other languages would bring the ease and functionality of Class Viewer to other domains.

But there has to be a need and a market where I'm not going to do the work without knowing if either exists so I put the idea thinking that a natural funding source for venture capital would be Google as they put their apps out there for free already.

But I'm not going to contact them so I just throw the idea on my blog. Maybe something will happen.

James Harris

Saturday, May 26, 2007

My idea for managed copy

With "managed copy" in the news lately it seems a good time to mention again my idea for allowing end users to make personal copies:

Digital Media: Copy protection

REALLY simple idea which involves having end user's own machine encrypt copies to itself, so that it can read its backup copies made of DVD's but other people cannot--without a key that can be passed by flash drive--and also it burns onto its copies identifying information.

My idea includes allowing users to use a flash drive to pass a key to their other systems or to friends for maximum flexibility, with the knowledge that the copy they pass tells who they are, and also cannot itself be copied.

To me that idea solves all the problems involved with protecting digital media from casual copying, though criminals may of course go that extra mile in trying to make copies for money, there would be an end to the very casual copying where usually law abiding citizens consider it to be like speeding on the highways and would do it as a matter of habit.

Today it is like everybody does it, there is no onus on it, and it is very easy.

With this idea, a friend could get angry with you if you pressed for a copy, since it would contain information about them and possibly leave them open for prosecution, so what kind of friend would you be in pressing for one?

Knowing that yeah, you can give your friend a copy but if that ever gets to the FBI, they have your digital signature all over the thing, which your friend cannot use without a flash drive for them to get the key anyway, and they cannot copy it again themselves, would take most casual copiers out of the equation, leaving only the die-hards.

I am an idea person so I know how hard it is to get attention for even great ideas, so rather than go through the pain and misery of trying to copyright that idea, and market it, I have given it away open source.

It is a free idea. It is free!!!

Does not mean anyone will use it though as hey, I know, no matter what most people think, mostly we have a dumb world. I know because I have had lots of ideas.

Easy solutions are routinely ignored if people do not like the source.

Brilliance is mostly a burden and a source of frustration today, as hey, people really do not like you for coming up with simple solutions, as it makes them feel stupid.

James Harris

Saturday, April 21, 2007

Javadocs, deep linking and quick reference

My Class Viewer project gives two key things with javadocs:

1. A handy way to keep up with all of them using an xml file, which I call packagedirectory.xml, where you can put in public javadocs as well as your own, and then, you can just forget about worrying where they are!

(Note the xml file can be edited easily in a text editor.)

2. Deep linking into javadocs to the method, where if you don't know the exact method you can do searches using a single char or as much of a string as you want with any piece you might think is in the method as I made the search as flexible as I could.

Understanding deep linking is just about seeing it done once, and you can see an example in my previous post, but the gist of it is that you get taken to your method in the javadocs, so no more scrolling down searching!

But these features have been available from my project for over three years now.

Ok, yeah, there was a long period with a minor bug where when a method had multiple arguments the URL would have an extra space in it, so you'd get taken to the top of the javadocs page---which is a gracious failure---but I finally fixed the code.

The problem still remains though with Microsoft's Internet Explorer, last time I checked, which is yet another good reason to get Firefox!

Oh and did I mention that once you put your javadocs location in packagedirectory.xml you need never worry about where your javadocs are again? Yes I did, but that is such a huge feature, and there are other solutions out there like javadoc online but there you do not get deep linking and what about your own projects and your own javadocs?

Why not let the computer keep up with all that detail, which you can do with Class Viewer?

James Harris

Saturday, April 14, 2007

Gateway to javadocs

I have been wondering if there might be a market for a custom Class Viewer for a software development company where Class Viewer is used as a gateway for that company's javadocs.

So, when first opened instead of the "No Warranty" message on the left and a blank window on the right it might have the primary packages for that company's code on the left and possibly news on the right.

To me it has always been a middleware app which bridges the gap from Sun Microsystem's excellent javadocs format to casual searching and quick reference.

And that was on purpose as when I was working as a Java developer for a major corporation, I would at times find myself wandering around through javadocs trying to get answers to highly specific questions, like, I'd be looking for a method in the String class that I knew took chars but I couldn't quite remember the name, which is why I use that as an example for my Class Viewer screenshot.

Covering all the bases Class Viewer returns ALL public methods that have the character string "char" in them:

char charAt(int)
boolean contains(CharSequence)
boolean contentEquals(CharSequence)
static String copyValueOf(char[],int,int)
static String copyValueOf(char[])
void getChars(int,int,char[],int)
String replace(CharSequence,CharSequence)
String replace(char,char)
CharSequence subSequence(int,int)
char[] toCharArray()
static String valueOf(char[])
static String valueOf(char)
static String valueOf(char[],int,int)

And, of course, that's not hard to do, but what else let's you do it?

I've actually been tempted to try and contact Sun Microsystems to see if they wouldn't put some custom Class Viewer up on their site versus only directly giving you javadocs when you go to the reference links, as I spent enough time years back wandering around on their site trying to find things, while now if, say, you want to know how to replace one char with another, you can search out "char" on Class Viewer like above, and just double-click on String replace(char,char) and Class Viewer will deep link you into the javadocs wherever you tell it, and right now mine gives me:,%20char)

And the ability to be taken directly to the method in javadocs is just a neat feature that is part of the Sun Microsystem underlying design, which should be exploited, as once you get used to it, it feels so tedious to scroll down looking for a method, and also like such a waste since the machinery is there for a more efficient process.

In any event, just kicking some ideas around, and I've just not felt confident enough about success to actually approach anyone, and like, what would I charge for custom work? But hey, it's open source so if that's a good idea, it's not like some other programmer couldn't do it, or companies just do it themselves.

James Harris

Sunday, March 25, 2007

Beyond the three year mark

As my Class Viewer project quietly moved beyond the three year mark I started wondering more about how I see things now, especially going forward, versus what I thought might happen over three years ago when I was eagerly applying for a project at SourceForge. And I realized that my perspectives now were a lot about how I see the Internet itself differently.

And that picture is still changing like the Internet itself, where mostly I find myself doing a wait-and-see.

Other project ideas are lurking in my mind but most of them have to do with finding content, like one project idea I posted here a while back having to do with trying to figure out a way to get a good directory of web links where a computer manages, hiring and firing people to find links and judge them.

But I can't get beyond just initial thinking because part of me sees it as kind of a strange problem. Today there is so much information out there, but I find it so hard to find what I think is the really good stuff.

And I still don't quite know why. I have my ideas but until the situation makes sense to me, I'm not going to invest a lot of time and effort that might be wasted.

Looking back on the multi-year efforts that created the little app that is doing whatever it's doing as I'm not sure, I am more impressed than I was then with how much effort, time and single-minded purposefulness it takes.

I think I helped add to the good content that is out there and it's a nice feeling. But I feel more and more like it's so hard to rise above the thicket that you have to worry about that as much as coming up with a good idea.

The signal to noise ratio of the Internet is just so high. So much effort is not about having a good idea, but just about being seen.

James Harris

Tuesday, February 20, 2007

Consider Satellite Radio

Big news today was about a proposed merger between the two main Satellite Radio providers who claim they need it to survive, and I just started thinking about their situation and wondered, why don't they have channels with advertising?

Simple idea, and it goes to a business model that works--cable television.

There are pay channels and there are channels that offer advertising.


But these people think they are smart and believe that the benefit they offer customers is NO advertising, so they'd rather die than consider that the benefit they offer customers is the ability to get what they want anywhere.

If they offer channels that have ads they can have people listening who have basic subscriptions, who are using them because they can get a digital signal anywhere in the country (thinking about the US).

So yeah, why can't they just listen to the radio then?

Because hey, I've traveled across this country several times and you have to keep switching stations. Duh.

Millions of dollars at stake. The survival of companies and lots of people's jobs on the line and thinking in the box--following a business model that is currently working for the cable industry--doesn't occur to people you'd think would want to win.

But problem solving can be about obvious, when obvious is invisible to people who have not been trained how to think.

And in the real world, entire countries can die for stupid reasons because people were too "smart" to figure out simple solutions, so a couple of dinky companies?

Barely worth talking about, and believe me, at the rate they are going, they both will die---with the answer to their problems staring them in the face.

James Harris

Thursday, February 15, 2007

More on copy protection

I made a post a little while back about a simple way to do copy protection that has minimal impact on end users, but that was a long post that might be confusing, so I thought I'd do a short post that talks about it succinctly, with another aspect to the idea that occurred to me.

The idea is, when a person makes a copy say of a bought DVD, their copy is encrypted with a code generated by their personal machine, so that their machine can read the copy, but no other person's machine can--unless given a key which can be passed by a flash drive.

Additionally I realized that on their home network their personal machine can automatically pass the key so that they can read their own copies on their own network without using a flash drive.

So what's the point of the idea then?

Well, their own machine is encrypting--not the manufacturer of the DVD--so the end user can make as many copies as they want for personal use, but no one else can use those copies, without the key, but even with the key, the copies are carrying a lot of information about the person who made the copies and I think that with a two step process you would end a lot of casual copying, and when people know they are putting their own stamp on copies, you probably would shut down even more.

I like the idea as with it, I could make as many personal copies I want without worrying about dumb copy protection blocking me from copying DVD's I purchased, and wouldn't get bugged by people asking me to make them copies when they'd know that they'd need a flash drive as well, and there would be this digital fingerprint saying I made the copy.

It's a no-brainer good idea, but hey, I'm just some guy on a blog and there are people letting millions of dollars go out the door because they don't listen to people like me, so here is where it might stay.

But it just goes to show you, those people aren't as smart as they think they are.

And oh yeah, the idea is free. It's open source as in I am not asking for money for it. I'm just tossing it out there to the world because I know the world better than you do.

This idea may just sit here on my sites indefinitely because at the end of the day, people like throwing money away versus thinking outside the box--for real--versus claiming they do.

James Harris

Saturday, February 10, 2007

Comments on Intellisense(TM)

Back when I was a professional programmer I used Microsoft Visual Studio for C and C++ programming working for one corporation and when I moved on to another and ended up also moving to Java programming I just assumed I'd be using an IDE and did so for a while with the Java IDE's that were available at my company, but found the experience to be not as smooth as with Visual Studio. Soon other developers told me that no one was really using the IDE's with Java and that most just used the command line, and I did so and found things were a lot easier and I got a lot more done.

But that was a while back and I know that today Eclipse and NetBeans offer very different experiences, so if I were still professionally programming, who knows? Maybe I'd be off the command line and happily again using an IDE like at the start of my professional career as a developer.

However, there is one feature that always annoyed me--auto-completion--and I have to wonder if there are others like me, who would also either find ways to turn it off, or just kind of grit your teeth when the IDE starts suggesting methods. Way back there were times I'd type really fast to try and beat the thing!

In some ways my Class Viewer program which is a highly specialized app deliberately is a throwback to just using the command line and using something other than auto-completion for quick reference.

In any event, I'm looking for comments on auto-completion, wondering if others find it kind of annoying, and also wondering more generally about how quick reference is done by other developers.

One of my personal favorite things about Class Viewer is that if I'm having trouble remembering a particular method but know what its argument is or what it returns I can just type that into a search field and get every method that has even a piece of that string in it, which is why the screen shot for project shows finding all methods in the String class that have "char" in them:

Class Viewer Screenshot

So again, I'm also wondering how developers solve that problem as I don't see how auto-completion does it, but I'm biased of course towards my own solution.

If I get no comments at all, don't worry, it won't hurt my feelings. This blog doesn't get a lot of traffic.

James Harris

Monday, January 29, 2007

Digital media: Copy protection

For various reasons I was musing earlier today about how you might stop casual copying of DVD's between friends, or at least make it more difficult and I came up with a simple idea.

The idea would be to encrypt copies made from the end user's machine, while leaving the originally manufactured DVD--from here on out the OEM DVD--with minimal changes, where the end user could use a flash drive to give the code de-crypting their copy to their other entertainment devices.

The encryption would come from the serial number of their video card, the serial number of their connected monitor, and the total operating time the two are connected together, so the code would change continually with time, so no two copies would have the same code.

When playing an OEM DVD the system would behave like normal, but if a copy is made, the copy would be an encrypted one where the users own machine would automatically decrypt its own copies, but for anyone else to decrypt, a flash drive would need to be used carrying the decryption code.

The decryption would occur fully at the monitor, with possibly partial decryption at the video card, so one problem with this idea is it needs smarter monitors.

Using the flash drive to give the code would be a one-time operation on the user's own equipment meaning that they would only have to give the decryption code once, for their own copies, even though each encrypted disk would vary with its personal encryption based on the time stamp.

So end users could still give copies to friends--with a flash drive and the code--so what's the point?

The copies would be encrypted with the copying user's video card and monitor serial numbers along with a time and date stamp. And now it's a two step process: DVD and flash drive.

If an open standard were used industry wide between video card manufacturers, monitor manufacturers, and DVD manufacturers, there would be a closed loop blocking normal users from breaking the system--they'd have to go to bootleggers versus their friends.

They could still make personal copies, but would know that if those copies were given away, the information about who made the copy would be encrypted with them.

Manufacturers would stamp their own DVD's with a manufacturer's code, which of course could be copied by bootleggers, but it'd be a deliberate action with no denial about the purpose. DVD's not coded with a manufacturer's code wouldn't play on industry standard systems.

DVD copies could be copied again, with a continual coding stamp, or no more copies might be made from friend copies.

The idea here is open source in that I don't care who uses it for what purposes and it is completely open as I don't care about commercial uses. But hey, it's just something I thought up this morning while thinking about people casually handing out copies of DVD's.

It could be used with other digital media if it's a good idea. I have other ideas along this line that could be used to completely close the loop which involve the continually changing code found by the operating connection time between devices.

Are these ideas useful? I don't know. They seem simple enough, but there'd have to be a lot of coordination between manufacturers of the various devices, while end users wouldn't see any change if they didn't copy, and minimal changes if they did--once USB ports are standard on entertainment devices so using the flash card isn't a big deal.

And just knowing that you're putting your stamp on your copies could end quite a bit of casual copying and handing off to friends or just about anybody.

Sure there would be people who would just go for the OEM DVD's and make copies from those, but those are the dedicated people anyway.

James Harris