Thursday, December 29, 2005

ToDo

To get ready to publish to the SDL list I need to do the following:

1. Fix apps from pointer experiments.
2. Add loading resource messages to apps that load alot of resources
3. Add screenshots to sample apps on web site
4. Add homepage fixes
5. Add team web page

Wednesday, December 14, 2005

Successful Demo

My personal blog has an entry about a demo I did for my programming class that went very well.

Wednesday, December 07, 2005

Ajax Backlash

The ajax backlash has already started. More comment on slashdot.org.

Tuesday, December 06, 2005

Outage

I apologize for an outage of about 26 hours that ended this morning to both the website and the app server. I lost a switch.

Build 50 added support for resizing the window. Build 51 added support for transparent image backgrounds.

I expect to finish porting Bob Pendelton's demo game next week, and release a new version of NewI\O at that time.

It seems to me that I need to improve the process of loading resources. I need to specify a slot for a resource to go into, and then send a message back the has information about the resource in that slot, information that may be useful to the program on the server.

For example, when an image is loaded I can send back information to the program about attributes of that information, such as its size, etc. This would be a seperate message, so that ap running on the server would not have to wait for the response, unless it chose to do so.

Wednesday, November 02, 2005

Build 49

Build 49 fixes a major bug. I was drawing in more than one thread and occasionally seeing errors. Fixed now. Also API additions. So we are bumping up the version to 0.09. All users of apps.newio.org will need to upgrade. Dreadnought should force you to upgrade anyway.

Friday, October 21, 2005

Mark Andreesen Hates Java

This [slashdot.org] post claims Mark Andreesen hates Java and thinks PHP is the answer. This brings out all of the comments detailing the problems with both Java, and PHP. Naturally I agree with all of the problems I read, and think NewI\O is the real answer.

It seems so obvious to me that the problem with Internet Apps is the web. Get rid of the web and make a system designed to do what you want. How can it be any simpler than that?

NEWI\O STATUS: I am finishing up adding video support and I want to fix the event system, perhaps even add a proper event queue, and then release again, hopefully this week.

After that I want to port Bob Pendelton's demo game Bounce to NewI\O. It is a more involved graphics app demo and would be an excellent and impressive test of NewI\O's capabilities. I do not expect it will be difficult to port.

Then I want to release NewI\O again, probably to the wider SDL mailing list.

Tuesday, September 27, 2005

[ANNOUNCE] NewI\O Alpha 0.07 (Build 043)

In accordance with the release early and release often principle, the NewI\O team is pleased to announce:

NewI\O (Alpha Version 0.07)
http://www.newio.org

What is NewI\O?

NewI\O is a system for running programs on the Internet. Instead of trying to kludge a document browser to run programs, it is an attempt to create something from the ground up to run programs.

The NewI\O system consists of:

1. The NewI\O application browser Dreadnought (http://www.newio.org/dreadnought.html)
2. The NewI\O daemon NIOd (http://www.newio.org/niod.html)
3. The NewI\O library NIO_lib (http://www.newio.org/nio_lib.html)

NewI\O currently supports keyboard and mouse events, colors, drawing primitives, fonts, images, sounds, and music. Video support is in progress.

How it Works

Type in a URL to the browser. An application is started on the server, and I/O is sent back to the browser using a simple bi-directional message scheme.

Resources such as sound or image files are downloaded just like a web browser would handle them. Therefore, the first time it runs, it will
take some time for the download. The resources are cached, so subsequent runs are much faster.

What is new?

Everything. This is the first general public release for this software.

Status

Alpha, very alpha. Major sections, such as security, are still to be implemented.

The NewI\O is system is free software. It is released under the GPL. Libraries are released under the LGPL.

There are a few small applications written for the system, although most of the work to date has been in the lower level plumbing, and not in applications. Therefore the API is very preliminary at this point. Fortunately, it is very easy to modify or add to the API.

There are two reasons game programmers may be interested in this code:

1. Game programmers may be interested in programming for and using this system. Although it will probably never be adequate for the most advanced 3D action games, there are many other types of computer games where a system such as this may be adequate and even advantageous. One of the design goals was to create a system that is very easy to program for, and in my opinion, this has been achieved so far.

2. Game programmers may be interested in the code itself as an example. Since it is designed to be a general purpose client, it uses most all of the features of the SDL and associated programming libraries. It is written in straight C, and is hopefully fairly object oriented so sections could easily be pulled out and used in your own projects.

Acknowledgments:

Sam Lantinga, Ryan C. Gordon and the rest of the SDL team
Bob Pendleton - Font and text routines
Ryan Mcguigan - SDL_prim library

We would be interested in any comments that you have.

The NewI\O Team
September 27, 2005

Saturday, September 17, 2005

Scobelizer on Thin Clients

Scobelizer on MS Office and thin clients. Be sure to read the article this links to.

The thin client guys fire back. Be sure to read the linked articles here and this article, too.

I believe that the more powerful the thin client software is, the more right the thin client folks will be.

Older Thin Client Discussion

I constantly see articles that remind of the need for NewI\O. Here are several:

There is an older discussion of Longhorn being too fat here.

Be sure to read the article it links to here. HTML is as good as dead for apps, which is why I am working on something new that I believe to be far more powerful.

And the article this article links to here. The world does need a simpler Java, and I aim to provide it.

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.