Sunday, July 17, 2005

Preliminary Report is In

I have completed my library that implements a dual threaded client server messaging system. At my work behind the slow firewall I was getting about 8 transactions per second. With this new library I am getting 800. It is even faster than I expected. Very exciting.

In fact, to do 20,000 messages (10,000 in each direction) takes about 21 seconds on my home machine. To do it through the slow firewall connection at work it take about 25 seconds. There is hardly a difference. It is amazing. I am thinking that you will hardly be able to tell that you are running an application across the network.

I can not wait to finish integrating it with my application browser and see what it looks like visually.

Apple Abandoning Java?

From this Slashdot article it appears that Apple is abandoning Java. It does not look to me like the future is Java.

Tuesday, June 28, 2005

Remember this Acronym: DOIP

DOIP is Display Over Internet Protocol. See this link. This is what I am doing, except that my version also allows you to access your own data, which seems to be the big complaint against DOIP.

Sunday, June 26, 2005

TCP -> UDP

I convereted my application from TCP to UDP. I went from 25 transactions per second to 33 transactions per second at the local wireless cafe. Nice but perhaps not worth the hassle of using UDP. I have hopes for a more significant speed boost when I use dual (or triple) threaded one-way communication channels.

Wednesday, June 08, 2005

Dreadnought Browser Status

Using the Fastevents and Net2 libraries added no noticable performance increase, so it appears those were dead ends. It did make me think of a new architecture, though. I am going to try using 2 channels, 1 from the app to the browser (basically the channel I already have), and also a new channel from the browser to the app. The second channel will send event info to the app, including keyboard, mouse, window resize etc. This will be maintained as a state by the library, so when the app needs the info it is a local call. Also, I am going to see if I can get rid of confirmation return messages. Again the purpose here is to increase speed.

Sunday, June 05, 2005

Java Funny

This was pretty funny.

Sunday, May 29, 2005

Open Tech 2005

Cool, a new conference to apply to: Open Tech 2005, in London.

I believe I will finish my speed improvements and then apply to be a presenter. You only get one chance to make a first impression. Deadline June 25th.

Also the INTETAIN Conference in Italy might be good. Deadline July 18th.

Monday, May 23, 2005

First Sun, Now Apple

Now rumours that Apple is interested in DOIP and the platform will be QuickTime...interesting.

Also, what is this that Sun is doing on June 1st?

For years I have wondered why the computer industry has not figured out how to run applications across the Internet very well. I think they are starting to get it now.

I probably should get NewI\O out there for it to have any chance at doing something. For the first time, I feel the window of opportunity closing...

Wednesday, May 18, 2005

Competitors and NewI\O

All of the competitors to the NewI\O system are sort of, semi-competitors, because nothing exists that is exactly like it. If it already existed, then I would just use it, becuase, I myself am a customer, and want to program for and use it. However, since nothing like it exists, I was forced to make it myself.

Sun Microsystems has one sort of, semi-competitor to NewI/O in Java. This is a competitor in the sense that it is portrayed as a nework application system. It is not a competitor in the sence that it works totally differently from NewI\O. Java downloads virtual code and runs it on the local computer, and so is not really even a network application at all. NewI\O runs applications on a server and displays the result in a browser (similar to a thin client): totally different technologies.

I bring this up because Sun just bought out a company that is another sort of, semi-competitor: Tarantella. This technology is similar in that it runs apps on the server, and displays them on a client, but what is different about this from NewI\O is that it is desktop sharing applciation, like X-Windows or Citrix. In this case my application is different in that it has nothing to do with desktops. My system simply shares an application and leaves your desktop alone.

It also occurs to me that there is one really big difference in strategies between me, and all of these companies. The competitors are all looking at what businesses need, and are trying to develop products for them. I, on the other hand, am looking at what an individual needs, and trying to create something to meet that need. While they are looking at specific business solutions, I seek to set an Internet standard.

For this reason ease of use is critical for me. The above applications are not for the masses. A home computer user is not going to be setting up Tarantella to run some program on the Internet somewhere. It is for this reason that I chose a browser interface. Users are already familiar with it. I can see users easily typing in or even just clicking on a URL to run an application.

I believe that I am shooting higher, and will be able to easily penetrate the business market, if I succeed in setting an Internet standard, so in a way, I am doing an end around on all of these other sort of, semi-competitors.

Dreadnought Browser Status

I am still not satisfied with the performance of the Dreadnought browser, so I have decided to use Bob Pendleton's Fest Event and NET2 libraries which can be found here. This will put networking in its own thread, and also allow me to go from two loops to just one. So far it does not seem too difficult to bolt them on. I have already added them in to the project with clean compiles, but the Dreadnought browser is now broken, until I fix some structural issues like combining the network queue and the event queue, and re-writing parts of my NewRPC protocol.

Alas, this means that documenting the other parts of the system, such as niod and nio_lib will have to wait.

And there are tons of API changes and additions I want to make. And then when that is all done, I really want to start using it myself to write some apps.

The problem is, there are just too many good things to do.

OpenOffice 2.0 Criticized on Use of Java

Here is another article about the controvery about using Java.

Wednesday, May 11, 2005

Browser Source Code Released

I just posted the source code for the Dreadnought browser publically for the first time. You can get it here. There is already a linux binary available. WARNING: This is VERY alpha.

Monday, May 09, 2005

REST Based Web Apps

I saw this on Miguel de Icaza's web log. It just re-inforces my contention that the web is not the place for Internet applications. We need something purpose built for applications. The I told you so is pretty funny, too.

Wednesday, April 27, 2005

DOIP (Display Over IP)

Jonathan of Sun Microsystems had an interesting take on something that he called "Display over IP" (or DOIP). This is more often called "thin client". What it is is basically running your applications on a server, and then dispaying on your machine.

Sun's solution that he talks about is based on a very powerful technology called X-Windows. X-windows has been around for a long time in the unix world. It is standard on most unix distributions as it is the default desktop for unix. It is available has an extra from Apple for Mac OS X, and from third parties for the Windows platforms. While it is wonderful on unix, it is clunky and ugly on OS X, and Windows because, unlike unix, it is not the default desktop for these platforms.

X Windows uses a powerful communication method called Remote Procedure Calls (RPC). It is basically a way for a computer to make a call to a program routine on another computer across the network.

Besides being ugly on some platforms, X-Windows also has trouble doing modern things well. For example, while it displays well, it does not handle music at all. It was designed for display only, not sound.

Now a web browser (or Internet Document Browser (IDB)) can also act as a thin client. For example, you can use it as an e-mail program to check your e-mail, or you can use it as an editor, to build web sites, as I am doing right this moment.

The big problem with a web browser is that it was not designed to be a thin client. It was designed to display documents. Because of this, it is pretty clunky as a thin client. It uses HTML and various other technologies (java script, etc) to try to do the job of a thin client.
It works, but I believe that it does not work well.

My idea is simple: make a browser that uses RPC. Viola! An Internet Application Browser (IAB).

Also, what is different about my idea, and what Jonathan is talking about, is that he is talking about small islands of thin clients. With Sun's solution you have to choose thin or thick clients. You can not have a thin client that can also run local applications and vice versa. You have to pick one or the other for all of your apps.

With my solutions you can run thin client applications on your regular thick (regular) PC or Mac. This may at first seem to go against the thoery of thin clients, but the afvantage is choice. You can phase out your local applications over time, as your internet applications become useful.

Here are some discussion on the above referenced essay: 1, 2, and
3.

Rejected Again

I just heard from the 6th International Free Software Forum. They turned down my proposal for a talk.

The answer was rather interesting though. It seems you can go online and see how they rated your proposal. I had three people rate my project.

The first thing they do is rate themselves on the subject that you are proposing. Reviewers #1 and #3 rated themselves "not experts, but comfortable with subject". They both rated my project 4 of 5 in relavence. I am a little puzzled by this score. Not sure why my free software would not be 100% relavent to a free software conference, but anyway. One rated my proposal a 5 and one a 4 (out of 5) for technical quality. They also check you out by poking around on the web and one rated me a 5 and one rated me a 4 for experience (by that I presume subject matter expert). Lastly both gave my project a weak acceptance (yes, but not strong yes) recommendation.

However one reviewer rated himself an expert on my topic, so presumably he would know better than the others, who are not experts. He gave my proposal a 5 for relavence, a 5 for technical quality, gave me a 5 for expereince, and gave my project a strong acceptance rating. Top marks all the way across.

It makes me feel good that the guy who knew the most about the subject, wanted to see it the most.

There is a bias toward existing (and more accurately famous) projects at these conferences, because they have to sell tickets to them to pay for the hall, etc. So actually I am encouraged that I got as far as I did with this, especially since there was virtually nothing on the web for NewI\O at the time of the submission.

It would have been nice to make a big splash at a conference to debut it, but I can not wait until next year to try again, so I will go back to the original plan and annouce it on various technical mailing lists.

Some might think it strange that I post my rejections on here, but they do not deter me. For some reason my mind tells me, "Don't worry, someday they will wish they had NewI\O on the agenda". This could be confidence or this could possibly be mental illness. My whole motivation to continue is to find out which it is. Heheh. :)

Problems with .NET

Here is a somewhat recent article about problems with Microsoft's .NET platform:

http://www.ddj.com/documents/s=9211/ddj050201dnn/

Here is some discussion on this article.

I post this not to put any other developers or organizations down, but rather I believe that they are problems with all current solutions, and that no one has gotten internet applications right, yet. It is for this reason that I am working on NewI\O.

Monday, April 18, 2005

John Carmack Destroys Java!

In his March 27th blog entry John Carmack (of Doom game fame), discusses coding games for cell phones. In it he really clobbers Java. I quote:

"The biggest problem is that Java is really slow."

and

"Write-once-run-anywhere. Ha. Hahahahaha."

In my opinion the latter is really the biggest problem. The whole reason for Java's existance is the latter.

Java as a network application environment has basically 2 parts:

1. Download portable byte code

and

2. Run portable byte code.

The first part is the network part and of course downloading is very simple, and this part works flawlessly, but in my opinion does not get you where you want to go.

The second part is the problem. Since Java can not control the execution environment (every computer is different) it fails in its mission to run everywhere. This is what John is talking about.

At work I have to have 5 different versions of Java installed on my PC, because each application was developed for a different version of Java, and (apparently) they can not run on a different version of Java. This does not even include trying to run on a computer with a totally different operating system, such as a Linux computer.

My New I/O system is simpler: run the application on a host (where you can control the environment), and display on the client. Since it is much simpler to display then to run a program, you you will be able to "write once, display anywhere", and in the case of New I/O it will really work.

Chris

P.S. Here is some more Java controvery.

FISL 6.0

My strategy for New I/O is to create an open source platform and attract developers who are better coders than me to the project. If the platform were then to achieve wide-spread use, then there would be a great oportunity to form a company to commercialize it by selling support, enhancements, applications, etc.

To that end I have applied at various Free Software Conferences, in an attempt to garner publicity for my project. One of them was FISL 6.0, the 6th International Free Software Forum, June 1-4, 2005, in Porto Alegre/RS, Brazil. I had not heard from them in some time, so I was not hopeful, but tonight I got this e-mail:

Hello Chris Nystrom,

We're in the last step in fisl6.0's lecture selection process. We had a
high number of submitted proposals, all of high quality and,
unfortunatelly, we cannot accept them all in our program.

We inform you that your lecture proposal for fisl6.0, with title
"newio - an internet application environment",
have not entered this year program yet, but there's still a
possibility of it being accepted, depending on other factors.

Therefore, we ask you to wait: as soon as we can, we
will notify you of the final result.

Feel free to contact us to solve any doubts you may have by e-mail:
temario@softwarelivre.org

Regards,

--
fisl6.0 Program Committee
temario@softwarelivre.org


Cool! I am still in the running! This would really be a big boost to my project to get some exposure like this.

Chris

"Web services may collapse under its own weight"

On March 4th, 2005 Jonathan Schwartz, president of Sun Microsystems wrote:
I'm beginning to feel that all the disparate web service specs and fragmented standards activities are way out of control. Want proof? Ask one of your IT folks to define web services. Ask two others. They won't match. We asked folks around the room - it was pretty grim. It's either got to be simplified, or radically rethought.

He is right. I vote for radically rethought.

Web services are basically services (applications) provided across the internet using the web infrastructure. This is a flawed idea from the beginning, because this infrastructure was not designed to do this. I am not saying that it can not be done, or will not work. What I am saying is that it is sub-optimal. The proof is that no one would design it this way, if the web had not already been in existance.

That is why I like my New I/O system. It is simple. Very simple. You may think that it is a negative calling something simple, like calling something simple minded for example, but it is not. In the computer field, as in good writing, simplicity is elegance.

A couple of other points. He is also right about C/C++. It is very much still alive, which is why I am basing my system on it. Also, he is right about Java, although, I think it is because the alternatives are limited, and Sun was disproportionally influencial during the internet era, rather than because it is the best possible solution.

Chris

New I\O

Ok, so I have this idea for a new internet service. Basically, it is a network application browser, designed specifically to run programs, instead of display documents, like a web browser.

I work for Oracle, the world's #2 software company. So anyway, I send e-mail to Larry Ellison and the entire chain of management a presentation, pitching it as a way to pass up Microsoft to become the #1 software company. Here is a link to the presentation:

http://www.newio.org/~cnystrom/Dreadnought.ppt

So do I get a response? Even a polite thanks, but no thanks? No! I almost get fired! I get a letter of reprimand. You would think that companies would want people coming up with ideas to take the company to the next level, but alas, I am too far down the totem pole to be able to give ideas.

The funny thing is, in the compay handbook, under a section titled "Open Door Policy" it says that if any employees have any ideas for _Senior_ (emphasis mine) management to go ahead and send it in.

Ironic, huh?

Chris