Tuesday, December 12, 2006

[ANNOUNCE] NewI\O (Alpha Version 0.11 Build 062)

The NewI\O team is pleased to announce the latest release:

NewI\O (Alpha Version 0.11 Build 062)

"Saving the world from web programming."

What is NewI\O?

NewI\O is a system for running programs on the Internet.

What is new?

This release adds the performance improvements developed for the
Dallas demo. It includes batch messages and interthread queues. Also
two new games are included.

Where can I get it?

You can get individual parts of the system from the download links on
the web site or you can get the whole thing at:



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


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


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

We would be interested in any comments that you have.

The NewI\O Team
December 12, 2006

Monday, December 11, 2006

New Wiki

Thanks to GNU Zoo NewI\O has a new wiki. You can find it at:


Friday, December 08, 2006

Midas Networks Donates Server

Midas Networks donated a hosted server for use by the project. This is greatly appreciated. This server will be the primary application server for NewI\O.

Huge Success!

I travelled up to Dallas with my friends Darron and Jason (road trip!) and we presented NewI\O to 42 people. The setup was plain, but initmate. There were even 2 labrador retrievers running around, including one chocolate lab puppy that was a doll.

It was the largest crowd that I ever have had a chance to present to. Most everyone got it. I think we definetly had the wow factor. I believe that I picked up 2 new developers for the project. A major success.

Monday, November 27, 2006

NewIO Merchandise!

You can now purchase NewIO merchandise at CafePress.

Monday, November 20, 2006

Curt Finch, CEO of Journyx Endorses NewIO

"The web is accelerating towards applications with SaaS, AJAX and SOA, but clearly the web browser is somewhat of a hack. AJAX in fact is an obvious hack to make web applications be more 'application-ish'. Journyx eagerly anticipates the day when we can solve peoples' time accounting problems with this technology."

Curt Finch, CEO of Journyx

Sunday, November 19, 2006

Web 3.0

There was an article on Slashdot about Web 3.0, supposedly the marriage of the web and artificial intelligence, blah, blah blah. Most of the comments were about the silly "web 3.0" term.

But there was this very inciteful comment by Alex Hard:

If we ever want a good web, the current mentality must be disposed of..

The web today is built on transferring documents and everything else is a hack on that...we need something more unified, easier to code...something that will put the client and server side together in an intuitive way, not the AJAX crap flying around ATM...

He is exactly correct, and totally captures the reasoning behind my NewIO project.

Another commenter, MunkeyLife wrote:

I agree. I would love to see a stateful, strongly typed web architecture. Basically a streaming application. What a nightmare it is today to write a large/complex system with a scripting language like Javascript and this XmlHttpRequest hack job. People have done some interesting things to abstract this stuff away from us, but I'm still not satisfied.

Again, I agree 100%.

Saturday, November 18, 2006

Another Laptop Stolen with Data

Slashdot has another story of a laptop being stolen that contains sensitive data. This of course underlines why it is important to leave the data on the server.

Friday, October 13, 2006

CACTUS Meeting Report

The October CACTUS Newsletter has a review of my September presentation. It is real nice to see NewI\O described in someone else's words. Here is the relavent section:

September Meeting Report

by Lindsay Haisley

Our presentor and guest this evening was Chris Nystrom, a system administrator for Oracle. After a few asides about how Oracle is undertaking a "huge Linux migration", he got down to a discussion of his own project, NewI\O.

Chris has tackled the problem of Rich Internet Applications head-on. While many people are still working with and trying to perfect web-based application frameworks, he's basically tackling the problem with a new TCP/IP technology altogether. As Chris says on his NewI\O website, "NewI\O has nothing to do with the World Wide Web".

Think of accessing a server shell with telnet, or a dumb terminal, and then educate the client/server pair to the 21st century to understand the event-driven programming model over the Internet, and you have a very rough approximation of NewI\O. Applications run on a server which users access with a special client, similar to a
browser. The NewI\O client processes not just text input, but mouse events, screen resizes, key presses, etc. and generates event messages which it sends to the server application, which processes client events and sends its responses back to the client for display. Audio I/O, control of peripherals, etc. is handled on the client side to address latency issues. The division of labor between the client and server is still an issue under development. Event driven programming can be quite complex, with multiple event queues, downloadable resources and the like.

The API will be simple, with a library (written in C) which can easily be wrapped for use by other languages, and conversion of existing applications written in C will be easy by design.

Will NewI\O be an expensive, proprietary system? No! It's Open Source, and will remain so. Chris made some effort to get Oracle to back the project and sent a white paper on it to a number of management types at Oracle, including The Oracle Himself, Larry Ellison. All he got for his troubles was a reprimand for jumping the chain of command and it became obvious that Oracle wasn't interested. Pity! IBM has gotten solidly behind the Open Source concept and a number of FOSS projects such as EVMS, to which they've contributed greatly. Some companies just don't get it yet.

Chris ended his presentation with a live demo. While the apps he demonstrated were quite simple in themselves, they served as an exciting proof of concept for NewI\O. This one looks to me like an Idea Who's Time Has Come!

Wednesday, October 11, 2006

Build 55 Relelased

I pushed out a new version of the Dreadnought Application browser today (build 55). It includes fixes for playing movies and music. Also nio_lib updated and the jukebox application is fixed.

Tuesday, September 19, 2006

The Future of Rich Internet Applications

An article on the future of rich Internet applications pretty much captures the current state of the art of the technical problem that NewI\O is intended to solve. Some of the comments seem like I wrote them.

Thursday, September 14, 2006

Speaking Engagements

I will be speaking this Thursday, September 21st at CACTUS, and also Decepber 7th at the Dallas/Ft Worth Unix User Group meeting.

Monday, August 28, 2006

Google Office

Google has apparently shared its plans for an office suite. I think it validates the concept, but still do not think ajax is the right tool for this. See entry below where I tried using the spreadsheet. It was crap. On the other hand in time it will get so established that it will not matter anymore.

Friday, July 28, 2006

NewI\O Hosting Site

Google just set up a hosting site for open source projects. I created one for NewI\O just to check it out. You can access it here:


Open Source Fest

Here is a shot of me giving my lecture at the impressive facility at the Advanced Technology Center of the San Antonio Community College. What you can not see, is that only 7 people showed up! So that was quite a big disappointment.

However, it was not a total loss. Two of the seven who attended were college computer science professors and one was their star protege. They brought up the possibility of pointing exceptional students to assist with this real live project rather than some make work student project. This I thought was a great idea, and I encouraged them as much as possible to do this. The students are probably already better computer programmers than I (remember, I was a history major), and further, as they progress in their studies, they will only get better. So this is an excellent opportunity if it works. I will need to follow up on it.

My good friend Darron, who was my college roommate, came along on the trip with me which made it alot of fun. He was very helpful to me, and he came up with the idea to put out the (many) handouts we did not use to see if anyone wanted to take them to others. The college profs took a big stack to hand to students. Darron also provided some important feedback to my presentation which should improve my performance next time.

Lastly, we both had an excellent dinner at Outback Steakhouse.

Open Source Fest Remarks

The following are the remarks I made in San Antonio for the Open Source Fest.


Wow. Nice crowd here tonight. So far I have only presented NewI\O to smaller user groups.

I suppose I should start out by telling you who I am and why I am up here. I am Chris Nystrom. I work as a System Admin for Oracle Corporation. I am really happy to be with you here tonight to brief you on my personal project, which is NewI\O. I recently spoke to the San Antonio Linux User Group, so I wanted to add something new to the presentation, so I decided to tell 2 stories. The first is "How Richard Stallman Got Me Started".

Story 1: How Richard Stallman Got Me Started

About 1990 or so I was a big DOS PC guy. My computer at that time was a Tandy 1000, which at the time was hailed as the computer that should have been the IBM PCjr. I still remember the excitement when Windows 3.0 came out. What a breakthrough!

But as cool as things were, we kept hearing rumors of something bigger, and cooler, and that was the Internet, and the main computer for the Internet was a Unix workstation. At that time, a PC was a toy computer compared to a workstation, but nowadays the line is blurred and is really quite gone.

Anyway, by then I had already given up BASIC programming for C programming. However, I did not have access to the Internet or access to a Unix workstation, but I was interested. So one day, I picked up a copy of one of the Unix magazines like Unix Review or something, and on the cover was Richard Stallman, and of course, the article was all about free software, and the Free Software Foundation (FSF), in particular.

At that time, I had a friend named Hanan who was in junior high school, and he decided one day to call up Richard and ask if the FSF had any opportunities for young people, and RMS said, "Sure, come on up." Since my friend was too young to drive, naturally, I offered to take him.

So we show up off the street and walk into the FSF offices. Noah Friedman, who was the sysadmin at the time, set us up with accounts, and they parked us in front of internet connected Unix workstations, and they basically ignored us after that. We did our best to stay out of the way. But that day, and the follow on days, we learned a lot about Unix, and about the Internet.

Looking back, I am still amazed that they gave us guys off the street full access to the computers and network. But you have to understand, back then free software was part of a larger vision of open access to computers. The vision was to give everyone free access to computers, and the complaint was that you could not give free access to computers, because the software was proprietary. You had to protect it, so the solution was to create free software.

That vision changed shortly after we got there. They had one or more users log into the FSF computer and delete important files, and so RMS had to get a secret password. This was quite traumatic to RMS, and one day he was in tears about it, saying that his life's work was ruined, etc. My friend and I were in the office at the time, as they were all discussing it. As usual, we were trying to stay invisible, but we were shooting messages back and forth, saying, "Can you believe this? Do you think he will really leave the FSF?", etc. I remember it was such a big event that it made the NY Times. But apparently RMS got over it, as he is still with the FSF today.

And through the generosity of RMS and the FSF this History major was able to use the skills that I gained to make a good living and provide for my family. For that I will always be grateful.

Story 2: Oracle and NewI\O

There are many stories of how techs have had ideas that they wanted to freely give to their employers, but their employers were not interested, the most famous of which perhaps is the story about how Steve Jobs and Steve Wozniak offered their Apple computer to both HP and Atari and were turned down. I have my own story along this line with NewI\O, and I tell it not because I have any bitterness towards my employer, but rather because I find it amusing and interesting, and I hope you do, too.

In the mid 90s I was big fan of the internet and I was a programmer, so naturally I wanted to write internet programs. At that time, the one true answer for internet programs was Java, so I took Sun's java programming classes, and then started coding. I was working on a game called JavaTrek! But no matter what I did, I could never get the screen to paint when I wanted it to. So I got frustrated and gave up. A couple years later, I tried my same code on a newer version of Java and it worked fine, so it must have been an early Java bug. But anyway, in the meantime, I gradually became aware of other things about the Java system that I did not like, which I will share in a minute.

Over the years, other methods of creating internet applications arose, but nothing really inspired me, and instead, I started imagining in my mind the way it ought to be, the system that I would really like to use.

If you recall the Internet prior to the WWW, or even computers prior to the Internet, there was (and still is) a standard I\O. This was a text based interface. You could dial into or telnet into remote computers and since everything was text based, you could use programs on that computer with no problem, even if your computer was a totally different make and model. Everything was standard. What I envisioned was to split the program logic from the display, and connect them via a network layer and create a New Standard I\O (which I call NewI\O) that took advantage of more modern concepts such as pointing devices, graphics and sound, and networking, but still standardized for all platforms. This is similar to how X works.

Then about late 2001, during the tech bust I lost my job, which is a scary thing if you have a wife and kids, but about 4 months later I was able to land a job with Oracle. So I wanted to learn more about my new company so I read one of the many books about the Leader of Oracle Larry Ellison, and I learned that he is tired of being #2. Larry badly wants to be #1. And it occurred to me that I knew how he could do it. The answer was simple: paradigm shift. (This reminds me of that Star Trek episode where the the Enterprise is crashing down to the planet surface, and the problem is explained to Q, and Q said the answer is simple: change the gravity constant!). Simple! Change the Paradigm! If you are the company ahead of the change, expecting the change, driving the change, then you can easily be #1.

Further, there was no need to come up with something. The paradigm had already changed and that was the internet, but in my mind, no one had (or has) really taken advantage of the change yet. Oracle was sort of right when it tried to advocate the network computer, but it got burned because that was the wrong system to take advantage of the change. The right system, in my opinion, was what I had been dreaming about for a number of years, and that was my own NewI\O.

So at Oracle, in the employee handbook, under a section entitled "Open Door Policy" it states that if any employees had any ideas for senior (and it specifically states senior) managers, that they should send it on in. Secondly at Oracle, there is an employees data base that is hierarchical you can look up yourself, and it also lists your manager, and you can keep clicking up the chain, and I learned there was about 7 people between Larry and I. So I created a nice presentation (which is still available on the NewI\O website). I called it Project Dreadnought, named after the battleship that was such a paradigm shift, that all battleships were classified as dreadnoughts, or not dreadnoughts. And I sent it to everyone in my management chain up to Larry. What do you think happened?

Well what happened is I learned something. I learned that Employee handbooks are for employees, but not for managers. I never did hear from Larry, but I heard from my manager right away. So anyway, for suggesting a method we might become #1 I got a letter of reprimand. They said it was not necessarily for having an idea, it was for sending it to all of the managers at the same time. They said I should have gone to one manager at a time up the chain of command.

So I said, Great! I will do that then! Sign me up for the first manager! Then they said, sorry we know that that is what the letter we just handed you says to do, but you can not do that either. We are just not interested.

I was afraid of that. The problem is that I am on the system admin side of Oracle. There are no developers anywhere around where I work. I was hoping to lob it over the fence to where someone might be interested, but apparently that did not work.

So anyway, now days I just keep my mouth shut and do my job. But on my own time, I keep working on my project: NewI\O.

Inspirational Transition to Tech Discussion

This is why I am here tonight for Open Source Fest. There is one common denominator for all open source projects. Do you know what it is? Have they told you yet? All open source projects are recruiting. Did Linus create Linux? No he inspired and coordinated a community to help him build it. That is why Open Source is so great. We can all help and contribute to create something great that we can all then freely use. We can all participate in this process, whether you are a coder than can help build, or a user that can help test, or a writer that can help document. You, too, can help build the future.

So what I will be showing you tonight, is not a finished product. It is the kernel of an idea. When Linux was first announced it did not have a filesystem, it did not have X, it did not have networking, but people on the minix mailing list could picture in their minds how great it would be when these things were all added, and since it was open source, they could be added by anyone. In the same way, I need you to extrapolate on the possibilities of my approach with NewI\O. I hope to show you enough tonight to inspire you to participate. In short I am here tonight to recruit you to join the NewI\O community.

I can not pay you anything, but someday when you can list on your resume that you were a core developer for NewI\O you are going to get a very good job!

I will have a discussion on the reasons and vision for the project, as well as a technical discussion of how it works currently, and lastly I will demo the system.

Monday, July 17, 2006

'LIVE" Era is Coming

Despite platform problems, internet based applications are on their way, even from Microsoft, ready or not.

Thursday, July 13, 2006

Flash 2

I read this article and I just get confused. When would you use Flex / Flash, and when would you use Ajax, or Java?

Open Source Fest

I will be speaking on NewI\O at the Open Source Fest in San Antonio tonight. If you are in the area, please stop by and check it out.

Back Button Problems

Here is an example of part of the problem with web based applications and programming them. I do not want to have to deal with this.

The Web is a page-by-page medium. The backward and forward buttons on your browser's toolbar direct the browser from page to page. When Macromedia's Flash became all of the rage, developers and users started to see how Rich Internet Applications (RIAs) break this metaphor. You might click around a few sites, land on a Flash-based Web site, then click around in it for a few minutes. One click of the Back button and the ride is over. Rather than going one step backward within the Flash site, you completely lose your place.

Thursday, June 08, 2006

Google Spreadsheet

Information Week reviews Google Spreadsheet. I agree with the limitations that they discuss about Google Spreadsheet. I think this just goes to show the limitations of the web and Ajax for application development. You can be sure that they would have overcome these limitations if they could have, and they might yet, but you can see that web development is not near as easy as developing for the local client.

I think this demonstrates the potential of my NewI\O concept. Since my system was developed from the ground up to run applications, NewI\O spreadsheet would not have near the limitations that an Ajax version of a spreadsheet would.

I would like to disagree with the last comment, about it not making sense to share spreadsheet data. The #1 person you want to share data with is yourself. I want an internet spreadsheet so I can access my spreadsheet data and manipulate it anywhere I have access to a computer that is connected to the net.

Saturday, June 03, 2006

First Post!

This is the first post I have seen mentioning NewI\O that I did not start. Cool. It is nice getting the idea into the technical thought pool.

Actually Google Search turns up even earlier posts...

Threat to Humanity

I spoke recently at the Austin Linux User Group about NewI\O. They were very impressed with the concept and the speed of the apps demonstrated. However, one person said that while he was impressed with the technology, he thought that there was a real danger in it, and in fact that it was bad for humanity. I thought it was a real compliment that none of the other members present thought the remark hyperbole.

The danger he saw was that if a good system existed for running applications on the server, that governments and large corporations would keep the applications and data on the server, thus denying power to the masses.

I believe that this is a valid concern, but I believe any application that denies the users ability to download the data will be at a competitive disadvantage to another app that does allow the user to have the data.

Sunday, May 21, 2006

Using Cairo For Rendering

I have figured out how to use SDL with cairo, so pretty much the last major technical hurdle has been solved. You can see some documentation on there here. Now it is just improve, improve, improve. Fun stuff.

Monday, May 15, 2006

Solved SCP Issues

I have solved my scp issues and am finishing up integrating scp code into the Dreadnought Browser.

After this I should be able to start work on a MS Windows port so that I can demonstrate the cross platform nature of the concept, and also make it more accessible.

Web Services Not Living Up to the Hype

Here is a good article about how web services has not lived up to the hype:


Sunday, May 14, 2006

Messages Over SSH Subsystem Done!

I completed the low level transport on the access controlled encrypted channel, a big accomplishment. Now working on the built in scp file transfer, and am running into some little problems.

Thursday, April 27, 2006

ToDo List

I have a customer who is interested in a Windows port. Here is the todo list:

1. Convert pthreads to SDL threads - done.
2. Use libSSH2 for portable, low level, secure message transport and file transfer - in progress.
3. Finish MS Windows version.

After that I intend to

4. Finish the text editor example program.
5. Publish new version.

Friday, March 24, 2006

Saturday, February 04, 2006


I have been invited to discuss and demo NewI\O to the large and prestigous Silicon Valley Linux User Group on August 2nd. I feel like I am getting a little momentum now.

Thursday, January 19, 2006

Resource Information

When a program loads a resource like a font, or an image, the client should send a message back to the program with a data structure that contains information about that resource that might be useful to the program running. The program can wait for the return message, or not, depending on the needs of the program.

Currently NewI\O does not do this, but that is the plan.

Friday, January 13, 2006

Island Hopping Campaign

Do you know the strategy the U.S. used during World War 2 against the Japanese? The Japanese had many well fortified islands, and it would have taken a long time to take out each one. So instead what the U.S. did was to skip some islands and just take on certain ones. The islands left in the rear would be isolated and then wither and die on thier own.

Pointer events are difficult in a network context, because it is very difficult to make the delay not noticable to the user. Using TCP_NODELAY to disable Nagel's Algorithm, and UDP do not seem to make a significant difference.

On the other hand, the mouse is a relative newcomer in popular computing. Computers were used for years and years very productivly without a mouse. I am thinking of taking out, or at least de-emphasizing the mouse, and just pressing on in other areas. I can always re-visit the issue later when and if I have more resources than I do now. This way I will not get bogged down in one technical area.