Hey everyone,

I have exceptional news - I am doing a startup together with James Halliday!

I met James on FreeNode several years ago and it turned out that we had very similar ideas about doing great hacking. So we teamed up as equal co-founders to do a startup. We're on different continents but we use IRC, GitHub and WeDoist to get stuff done!

Check out an early demo of our software:

StackVM brings virtual machines to the web. Join #stackvm on FreeNode to discuss!

The startup we're doing is called StackVM. StackVM makes virtual machines much more accessible over the web, makes them easier to use, and makes them embeddable in webpages (like putting a virtual machine in a blog post). This is just the first step that we're starting with. Next we're making networking between them very easy, just drag and drop to create any virtual network topology you wish, with firewalls, switches, etc. (fun for hacking competitions and learning networking). Then we're making what we call "vmcasts" - much like a screencasts, except the computation is recorded, meaning that at any point you can break into the playing vmcast and change the course of computation (and return back to it later).

Our plan is to host the virtual machines and our awesome software for you, so that you don't have to worry about anything. We'll make sure it all works! At the moment we're actually already at our third major iteration of the software.

Here are a few use cases:

  • Suppose you're selling software and you want your users to try it before they buy it. Perfect use of StackVM - put your software in the virtual machine and embed it on your products page. The potential customers can try your software before they buy it right from your website!
  • Suppose you're an application developer and have written a program that should work cross-platform. You can easily rent 10 virtual machines with Linux, Windows, MacOS, and other operating systems and test your software. Just drag and drop it into the virtual machines, and you can test your software!
  • Suppose you want to teach someone how to work in Perl in a series of blog posts (like I do), you can embed the terminal with a vmcast in your blog post, and everyone can follow your tutorial, and also try out the examples interactively, in a real shell!
  • You can build a virtual honeypot network and have hackers break into it, then analyse how they did breakins. Or, you can build a huge network and learn routing and networking concepts!
  • Suppose you want to share your work with a group of people. You can easily do it in stackvm! Just send the other people link to your VM and they can connect to it with any web browser. They'll be able to see what you're doing, comment on your work, and if you allow fix your bugs (think pair programming!)

Hosting virtual machines requires a lot of infrastructure, so we plan to start collecting revenue as soon as possible with affordable paid user accounts. We're not going to do the common nonsense among startups of first building up the project for years and only then trying to figure out how to make it profitable. We're going to offer virtual machines together with an awesome interface and features to them as a monthly paid service from the day we launch. We're also going to have an open API to our software, so that you can build on top of it or customize it (for example script virtual machines to do something specific).

We're also testing out the idea of complete openness with this startup. It's going to be 100% open-source and 100% idea-open, meaning that anyone can read what we're up to, and run our code if they want to run stackvm on their own. So far we have shared all the code on github (my stackvm repo, James's stackvm repo) and documented most of the ideas and experiments on stackvm github wiki.

We're applying for YC funding later this year so that we can focus on hacking and not paperwork.

Now a little bit about the tech we use at StackVM. I won't go into much details right now because many of the future posts will detail the tech at StackVM.

At the moment StackVM is in its 3rd major iteration already and is almost entirely built on node.js. Since we're doing everything open-source, we've written a bunch of reusable node.js modules:

  • dnode - Simple asynchronous remote method invocation for node.js.
  • node-bufferlist - Abstraction of node.js's buffers and monadic binary parsing.
  • node-rfb - Implements the client-side of the RFB protocol that VNC uses.
  • node-png - Produces PNG images from RGB or RGBA values.
  • node-jpeg - Produces JPEG images from RGB or RGBA values.
  • node-video - Records Theora/Ogg videos from RGB values.
  • node-base64 - Encodes binary data to base64 to send across websockets and ajax.
  • node-jsmin - Minify JavaScript on the server side, before sending it to the browser.
  • node-bufferdiff - A module to compare two buffers quickly.

I'll keep everyone updated on the progress and technical insight into our development. If you're not yet subscribed to my posts, please do it - catonmat rss feed. Going to make this happen!

And if you wish to talk about our software, come join #stackvm on FreeNode!

Comments

July 21, 2010, 12:16

Big deal !!!

You're in the business now, it strangely looks like the new service of the Debuggable Team announcing transloadit.com, they do use node.js and offers :

- Resize images
- Encode videos
- Extract thumbnails
- Store in S3

http://debuggable.com/blog

GOOD LUCK !!

July 21, 2010, 21:03

Uh, how in the world does this sound like it's doing the same thing as transloadit.com ?

"If you have a web (or mobile) application that needs file uploading you should consider integrating transloadit."

vs

"The startup we're doing is called StackVM. StackVM makes virtual machines much more accessible over the web, makes them easier to use, and makes them embeddable in webpages (like putting a virtual machine in a blog post). "

July 22, 2010, 05:36

You're write ... I missed the main feature, and only focus on the node.js tools :(

July 22, 2010, 05:37

Sorry: right not write :(

July 21, 2010, 12:27

Awesome idea! The possibilities where this could be used are just endless.
Good Luck, can't wait to try this out!

gallypette Permalink
July 21, 2010, 12:38

This is pretty amazing !

July 21, 2010, 13:27

Nice! I always wondered why the Ubuntu guys wouldn't do it! I wouldn't have had to download 700 Mb of the ISO to try it out. Awesome, awesome!

dude Permalink
July 21, 2010, 13:38

interesting, but you seem to be a windows user and so unfortunately have lost a lot of credibility...

July 21, 2010, 13:44

[i removed my rude comment]

saurabh Permalink
July 21, 2010, 15:14

Pete your reply was in bad taste. You are a professional now. You will get stupid criticism. Ignore it.

July 22, 2010, 10:52

Alright. I just got very angry at that person.

March 21, 2011, 06:47

feline rage!

July 21, 2010, 17:11

Compose yourself, Pete. I have been reading your blog almost since you started it and I do not doubt your knowledge about Windows, Linux, or computing in general. But your critiques would not always be as knowledgeable. So grow a thicker skin, ignore rubbish comments, and focus on StackVM. Your real friends are waiting to test it.

July 22, 2010, 10:52

Thanks. :)

July 23, 2010, 23:01

Great idea! Really nice you're actually both implementing it. Keep the good work and amaze the world!

But why such rude response? Sure, false or excessive modesty is bad, but crowing (even "justified") does not look better, at all.

It's obvious that praises are not and won't be the only things you'll hear from people. There is no need to take just unpleasant words personally or seriously. Add some humor to it, write witty (Right, I have to close my blog now.), possibly absurd (Did I have any credibility before?) response and readers will judge correctly what-is-going-on in 99,99% of cases. Remember, self distance is crucial.

I said _just_ unpleasant words as oppose to occasionally unpleasant words being part of constructive criticism - there is no need to not take them seriously. Why? There is always someone more skilled than you in particular area of subject (and exceptions are really exceptional here, so they prove the rule). Unfortunately many more-skilled-people tend to express too many haughtiness and too less knowledge in their constructive criticism (you presented kind of an "autoexample" here, I am sure that it was really exceptional in your case though). Do not repeat this mistake ever, fun attitude will always help you.

And watch out, do not stuck in development process. ;)

July 24, 2010, 10:20

Hey, thanks for the tips on how to respond to such comments. I'll edit my original comment because it was really rude. :)

July 21, 2010, 14:18

@dude: with the words above you just revealed that you're an idiot...

July 21, 2010, 13:42

It is really cool...

lynn Permalink
July 21, 2010, 14:11

Excellent idea!!

July 22, 2010, 10:52

Thank you!

July 21, 2010, 14:16

Peter, very nice idea and I am very much sure that this gonna rock. Wish you all the best.

July 22, 2010, 10:52

Thanks Jadu!

Tufed Wardte Permalink
July 21, 2010, 14:38

This is awesome. I see you guys being bought by Google or Amazon in the future. Great idea!

July 22, 2010, 10:53

Absolutely!

Rajat Permalink
July 21, 2010, 14:45

This is an excellent idea...if executed well as it looks like it will...it will rock

July 22, 2010, 10:53

We'll work exhaustively to execute it well.

July 21, 2010, 14:57

Great work, will stay tuned with the developments :) This is seriously awesome. and three cheers for open sourcing it, I'm sure that makes the most sense and goes well with the general purpose of the software itself (sharing and collaboration) :-)

Btw, If the VM freezes, guess what you call it? STUCKVM !!!! ;)

July 22, 2010, 09:14

Haha. StuckVM!

July 21, 2010, 15:25

Doesn't Microsoft already do this with their online labs?

July 21, 2010, 15:43

Yeah, check out Microsoft Virtual Labs. Limited to IE, but same gist.

July 22, 2010, 09:15

Thanks. I didn't know about MS Virtual Labs.

Our advantage is that we are not limited to IE. To use stackvm you don't need flash, any plugins or the latest browser. We're making it work everywhere!

July 23, 2010, 14:23

I am impressed by your use of NodeJS, a tech I wish I had more time to explore. Interested to see where this goes.

July 21, 2010, 16:02

I'm a little confused by the deployment model (that you host the VM for people to interact with). This seems like it would be a great piece of software to install on an existing computer I have running, but I wouldn't want to move to a new computer just to share items.

I'd love to have this for collaborating on development though. Even better if the pieces like the terminal were actual text (I'm not sure what you've done right now), so that they were responsive and easy to interact with. (I've always found things like VNC a bit frustratingly sluggish.)

July 22, 2010, 09:25

Thanks for the comment.

I am an avid virtual machine user and find stackvm fascinating. Having loads of VMs available to you through the browser will allow me to implement never before seen ideas!

But other people could use StackVM, for example, to test their web apps, to make sure they work on Windows, Linux and MacOS.

Same for small windows app developers who want to make sure their apps work in Win2000, WinXP, Win Vista, Win 7, etc.

Or organizations could deploy their client applications within VMs and let clients access them through StackVM.

There are many use cases!

August 28, 2010, 15:37

> Or organizations could deploy their client
> applications within VMs and let clients
> access them through StackVM.

The ability to display a streaming application using browser-only tools is fantastic -- bigger than huge; look at all the effort companies like Microsoft and IBM/Lotus are dumping into webified versions of their major applications. Throw out OWA and iNotes, just use the native apps streamed to the browser window.

If companies could offer streaming versions of their apps to their employees without requirements for plug-ins or extensive configuration, that would be a huge win. Right now the major player in this space is Citrix, and if you don't have their client or a recent Java, you're out of luck.

July 21, 2010, 16:38

I have been waiting for opening windows xp in vm's browser and 80's music video.

July 22, 2010, 10:55

I did a followup video on that. StackVM running within StackVM:

http://www.youtube.com/watch?v=EKFjJ9m_P8Y

July 21, 2010, 16:41

How feasible would it be to get the following features from your virtual machines?
* Ability to make a "save state" of RAM and load it to return to a previous state
* Ability to save a "recording" of input, which you can send to another user, and they can use it to watch exactly what you did

I'm thinking in terms of designing tool-assisted speedruns for games (see http://tasvideos.org/)

July 22, 2010, 09:27

This is what we have planned building!

I don't know how feasible it is. I'll know more when I start hacking on it!

July 21, 2010, 17:02

Good Luck! And do not forget to hire a good marketing and PR executive. :-)

July 21, 2010, 18:54

Awesome idea!!
Keep up the good work!! :)

tomesco Permalink
July 21, 2010, 19:26

good luck, I would recommend you reading "Crossing the Chasm" by Geoffrey Moore

Tom Permalink
July 21, 2010, 19:58

Does it scale?

July 22, 2010, 08:00

and if so, how?

July 22, 2010, 09:28

It scales super easily! Just get new computers for new VMs!

July 21, 2010, 22:10

Very cool idea.

I like to use a VM that matches the production server when developing. I host these VMs locally so that editing files (through shared folders) and testing my application is VERY fast. If you are hosting the VM somewhere on the internet (read: not locally), wont there be a notable lag when interacting with the system (specifically file system, but also other services like apache, etc)?

July 22, 2010, 09:30

There is going to be some lag, depending on how far our datacenters are from you, and how good your internet connection is.

But we plan to get a good geographical coverage.

elias baixas Permalink
July 22, 2010, 07:33

this is very cool stuff, I will subscribe as soon as there's something available.

thanks also for OSS'ing it, will having RFB implemented in javascript will open lots of other possibilities.

July 22, 2010, 09:35

Good job guys. I would love to see this workout soon. My best wishes to you.

July 22, 2010, 10:45

Here is some publicity you need

July 22, 2010, 10:59

Awesome! Thanks for writing this up!

diego Permalink
July 22, 2010, 11:45

the idea is similar to the one presented here:
http://www.oszoo.org/wiki/index.php/Main_Page
here http://floz.v2.cs.unibo.it:8880/ you can load a os image of your choice, the emphasis of this project, though, is teaching

July 23, 2010, 21:51

Wow, this is super awesome. Especially the OS-Zoo. We'll be able to make super interesting demos and mashups with all those OS images!

I did not have java to run VM on floz.v2 site, James had java but he couldn't get it running. He had an error in the applet. :(

February 26, 2011, 22:07

OSZoo was interesting. Slow. Couldn't watch the boot process, which as an sr lvl sa in a fortune 500 company I _have_ to see :), and after it finally came up, it died on remote side connection close after about 2-3 minutes.

July 22, 2010, 12:24

Good luck!
@dude: obvious Troll is obvious

July 22, 2010, 13:25

Hey dude,
So i've been very slowly working on a terminal caster since december, not sure if I should feel discouraged by people telling me "Oh! thats what I saw on catonmat too, whats so new?"

What would be your take in this situation, how would you react?

Anyhow, our stuff is not related to VMs but our main goal is facilitating group communication, access to machines over web. And we're convinced that we're doing better than existing ones, but anyhow, feeling weird now :|

Abhishek

ideamonk Permalink
July 22, 2010, 14:40

ah! k I'm feeling okay now :) just a quick thoughtless reaction :)

July 23, 2010, 21:52

Alright. :)

July 22, 2010, 13:43

This is neat. I would strongly encourage you to avoid the mistake made by many people in your position and go and find customers for this NOW, at least to talk to them.

This will allow you to:

1. Verify that customers exist
2. Better understand their needs
3. Better understand how to price this when it is eventually ready

DO NOT wait until you launch, you should be having a constant conversation with your likely customers throughout your development process.

I elaborate on this approach in this reddit comment:

http://www.reddit.com/r/programming/comments/94hab/is_mba_important_for_a_programmer_to_start_a_tech/c0be4h0

July 24, 2010, 11:11

Thanks for the comment. I actually started doing this already, reached out to several people already who showed an early interest in using it in their business, and offered them to work closely with me to build what they really need!

namus Permalink
July 22, 2010, 18:25

I like to work on white screen, black slightly big fonts. Or when I am reading a gutenberg text, some deeper color to soothe my eyes. What I mean is that people like to fiddle with these terminal settings (often with worse taste than mine).

Are your linux terminals going to allow them? And, can I have many terminals (linux) on with different working directory?

July 23, 2010, 21:54

I guess you can then just tune your terminals to use larger fonts!

Or actually just zoom in via browser zoom option! -- I didn't demonstrate this in demo but it's awesome and it works!

July 23, 2010, 00:01

looks awesome guys! nice job!

Shyam Permalink
July 23, 2010, 03:36

This seems a great idea. I have worked a bit on VMs. They sometimes end up being extemely slow and what you would be adding will only make the VM more heavier.

But to have such a vision and work towards it would be an awesome experience for both of you. All The Best to StackVM !!

July 23, 2010, 21:54

Thank you!

Sohil Permalink
July 26, 2010, 06:29

Awesome square !! Really cool.

July 28, 2010, 02:36

some robotic cats, some proper cats... all meowing at things in browsers

Prashanth Permalink
July 29, 2010, 20:11

Peter,

This is a great !!. I have been following your blog for quite some time now. I have two questions -

1. Is it going to be free for all users ? .
2. In the source code(github) I saw only js files. Is there no server component ?. Or am I missing something ?.

All the best to Stack VM!! I am dying to try this out.

July 30, 2010, 14:42

1. This is going to be a commercial product. You'll be able to try it out for some time for free but then you'll have to subscribe.

2. The server is written in js! It's node.js that we're using for server side!

Prashanth Permalink
August 03, 2010, 01:36

Server is written in js !!!!...u r simply superb !!!

Fla Permalink
July 30, 2010, 18:21

This is awsome! Can't wait to try it.

August 02, 2010, 17:08

This is indeed a great idea! And with no doubt, you will succeed extremely well in this endeavor! All the best for making it awesome!

August 05, 2010, 05:31

its really great work! Good luck!:)

August 16, 2010, 14:59

Thanks everyone!

studentz Permalink
August 23, 2010, 17:45

very promising. keep the hard work and you will see the results sooner than you expect.
my q Are you using node.js as a layer of ngix ?
thanks

Adam Prescott Permalink
October 21, 2010, 13:47

MMMMMM, a botnet embedded on a Page.... j/k :D

It's a great idea but these VMs will really need locking down so they don't get hijacked and will need a separate firewall.

I'll defo be signing up for an Invite :D

November 23, 2010, 19:31

Why just VM ? People should be able to cast their PC's screen to the website.

Any new update of your startup would be nice =)

December 03, 2011, 00:59

What are the requirements to work in the browser that screens?

November 27, 2014, 12:17

thanks for sharing. Merry christmas songs | New year's.

December 17, 2014, 08:15

well, this was a kind of new info for me. Thanks for sharing.
happy new year 2015
happy new year 2015 wishes
happy new year 2015 images
digg.

Leave a new comment

(why do I need your e-mail?)

(Your twitter name, if you have one. (I'm @pkrumins, btw.))

Type the word "sandbox_226": (just to make sure you're a human)

Please preview the comment before submitting to make sure it's OK.

Advertisements