The Wave of the Future, Google Wave

Google showed off their new Wave system at Google I/O this year. The thing is pretty amazing. It’s email, IM, chat room, twitter, collaboration software all rolled up into one piece of software.

Developer APIs will be available that allow you extend it with new functionality. APIs will also be available to allow you to embed it into your application or web page.

You can sign up to play with their sandbox server here.

iStat iPhone App for server monitoring

I’ve been using the iStatPro dashboard widget on my Mac forever to monitor CPU, Hard Drive, Temperature, etc. iStat is a new application for the iPhone/iPod Touch that allows you to view iStatPro like information about your iPhone. The really cool feature is that you can monitor your Mac remotely on the iPhone with this app. You simply run the free iStat Server for Mac OS X and you’ll be able to point iStat at your Mac.

Of even more interest to me is that you can also monitor Linux and Solaris servers using it you install the iStat Server for Linux & Solaris on your server.

I’ve set this up on my server and it works great! NOTE: You’ll need either a dedicated server or a virtual private server to do this.

The app is currently only $1.99 on the iTunes App Store.

Great post on distributed key-value stores

If you’re interested in distributed key-value stores here is a great post on what is out there:
Anti-RDBMS: A list of distributed key-value stores

Link to live blog of the new Kindle 2 launch event

http://news.cnet.com/8301-17938_105-10159334-1.html?part=rss&subj=news&tag=2547-1_3-0-20

Check out stackoverflow.com

Quite simply stackoverflow.com is a question and answer site for programmers.

From the about page:

Stack Overflow is a programming Q & A site that’s free. Free to ask questions, free to answer questions, free to read, free to index, built with plain old HTML, no fake rot13 text on the home page, no scammy google-cloaking tactics, no salespeople, no JavaScript windows dropping down in front of the answer asking for $12.95 to go away. You can register if you want to collect karma and win valuable flair that will appear next to your name, but otherwise, it’s just free. And fast. Very, very fast.

We don’t run Stack Overflow. You do. Stack Overflow is collaboratively built and maintained by your fellow programmers. Once the system learns to trust you, you’ll be able to edit anything, much like Wikipedia. With your help, we can build good answers to every imaginable programming question together. No matter what programming language you use, or what operating system you call home — better programming is our goal.

Stack Overflow is as frictionless and painless to use as we could make it. We believe finding the right answer to your programming questions should be as easy as falling into the pit of success. And maybe even a little fun along the way.

I coulda had a Google V8


So I’ve been playing with Google’s new V8 JavaScript engine that was released along with Google‘s Chrome browser. V8′s big claim to fame is that it compiles JavaScript code to machine language instead of interpreting it. This gives a nice speed improvement over other JavaScript engines.

I was interested in V8 for use in a scripted server application that I’ve been kicking around for a while. The idea is basically to create a core C++ app that exposes database and communication functionality to JavaScript. You then implement your business logic in JavaScript and rarely have to touch C++ code. You can add C++ code in the form of shared libraries that the server dynamically links so if you do need C++ code you don’t have to touch the core server.

It seemed like V8 would be a great choice for this application until I started getting into it. The problem is that V8 was created with Chrome in mind. Chrome uses separate processes for each browser tab so each tab has it’s own instance of the V8 engine. The V8 engine was designed so that there can only be one instance of the engine per process. In other words, the V8 engine is a singleton. The engine can only be executing a single script at any given time. If you want to create an application with multiple worker threads then you have to use a V8 Locker object to serialize your script execution. If you don’t then the scripts running in different threads will step on each other since they are accessing static member variables within V8. This makes using V8 in my server less desirable because it isn’t going to scale very well.

V8 does have the ability to create multiple contexts that will allow you to have isolated script environments but still only one script can execute at a time. There also appears to be a way to time slice script execution on multiple contexts. I haven’t played with this feature yet but I still don’t think it would address the scalability issue.

V8 would be ideal for a server application that uses worker processes instead of worker threads. I’m not sure I want to go down that path considering the complexity required.

I’m not knocking V8 in any way. It’s an awesome piece of work and the price is great!

I’ll post my V8 test code in a future article.

WordPress Update in Progress

The blog could go down for a while…Please stand by…

Update complete…carry on…

Link to a good Cocoa Touch getting started tutorial

Here’s a link to a nice little “getting started” tutorial on the Cocoa Is My Girlfriend blog.

Cocoa Touch Tutorial: iPhone Application Example

What do they mean by “Released Software”?

Ok, I took the statement by Apple about dropping the NDA to mean we just wouldn’t be able to talk about features in iPhone SDK and OS beta releases. You know, the new stuff they are adding and don’t want anyone else to rip off.

I’m seeing other blog posts out there suggesting that it means only people that have apps up on the App Store being able to talk about what they’ve created. That just doesn’t make sense to me.

Apple dropping the iPhone NDA!

See it here.

To Our Developers

We have decided to drop the non-disclosure agreement (NDA) for released iPhone software.

We put the NDA in place because the iPhone OS includes many Apple inventions and innovations that we would like to protect, so that others don’t steal our work. It has happened before. While we have filed for hundreds of patents on iPhone technology, the NDA added yet another level of protection. We put it in place as one more way to help protect the iPhone from being ripped off by others.

However, the NDA has created too much of a burden on developers, authors and others interested in helping further the iPhone’s success, so we are dropping it for released software. Developers will receive a new agreement without an NDA covering released software within a week or so. Please note that unreleased software and features will remain under NDA until they are released.

Thanks to everyone who provided us constructive feedback on this matter.

So we can now talk about release software. I take this to mean we cannot discuss new stuff in the betas.