![]() |
CodeRun - Programming on the Run
Ok, I dont know about yall but when I have an idea I have to site down and write some code to see if it works. I know most of you probably take your laptops with you when you travel, and probably have your compilers and everything with you on said laptop.
I don't know if this would benefit anyone but me, because I don't take my laptop with my everywhere I go, including family vacations, where I have most of my ideas. So here is my idea: CodeRun is a piece of software/website that allows you to program in a language you choose, and then you are able to compile it via a web service, or through the website, and it is compiled on the server, and the compiled code is then downloaded onto the users computer, as a exe, allowing you to debug and everything. All the debugging would be done on the server and then the errors and everything would be displayed back to the user My friends and I have thought of some different ways to do this. Here is one, The first one is a piece of software like a small text editor that you download it connects to a web service on our server, and you can code and compile and everything else. The second thought is just a website like a pastebin, where you put your in, press compile it compiles on the server downloads the compiled code to the users computer. The last idea was to have a file upload where you upload your code files, where you can do them in notepad or something upload them to the server, and it compiles them there, and then downloads code to users computer. I have had some questions like, since it will be compiled on the server wouldnt that allow people who might hack into the server be able to see people's code. The answer is no, everything a user compiles will be put into a their own Temp folder while their are connected, and when the connection is terminated that folder will be deleted. I don't know if this would benefit anyone but me and my friends, but just in case we have started a sourceforge.net project and are workign on it. So tell me what you think, and if you think it would be useful. Also, we cant figure out how to use FTP with sourceforge, we can connect to shell.sf.net but when we are waiting for welcome message it times out and we are disconnected So if you can help me there it'd be great. |
So if you don't take your computer on vacation, are you going to bust the day up to traipse over to the local library, or what?
Suppose you're working on a real program, many lines of code. Will you send a diff to the server, or have to send the whole humongous file over a connection? Is your intended audience the pro without a computer, or just the restless hobbyist who is missing being online while out of pocket? |
It would be for anyone, anywhere. Most hotels now have computers you can use, if you are close to family or staying at a relatives, Im sure they would have a computer.
I dont know if people would make a huge project, but I guess I could, I was thinking of it being used for small stuff, but who knows. |
You know, I think this is a pretty cool idea. While I generally bring my laptop with me when I go places for more than just the day, some people don't. It would also be useful for those who don't have a laptop, as well as possibly distributed programming projects.
I don't think compiling the code on the server will be a big deal. Providing the server is run on an OS for which the compiler in question is available, you can have that compiler, and invoke it through, say, CGI. Languages like C, C++, C#, and Java have freely available compilers for multiple platforms, so this part is entirely doable. Of course, you'll need appropriate permissions on the server, but this goes without saying. The big challenge, though, will be designing the interface to provide all the tools that a programmer might be accustomed to. Things like code completion (such as the 'intellisense' in Microsoft IDEs), syntax highlighting, font and tab stop customization, and organization of source files into projects/workspaces/whatever will probably require the bulk of the work. Anyways, like I said, it's a unique and cool idea. Best of luck with it. Hopefully it doesn't die at 'we got a sourceforge page'. ;) |
There's a lot of backend logistics to work out too. You'll likely want to allow users to develop for a specific platform (with compiled languages at least), so you'll need at least a Windows and a Linux server. You might look into hosting various VMs though; I believe Microsoft's Virtual Server 2005 has a web interface for the VM (it's called the Virtual Machine Remote Console (VMRC); we use it at work, and it's pretty sweet. Pretty sure it requires IE for the client, but you basically get the VM desktop in your IE window). Using VMs would also make it slightly harder for someone to wreck your box, but you'd still have to be very careful with that (which you have to be anyways).
There'd also be legal issues to work out. If it's on your machine, do you get any rights to the work? If someone creates a virus on your machine, are you responsible for it? If your machine is hacked and someone's project is stolen, are you responsible? If (when?) you get to this stage, definitely consult a lawyer. |
It might be advantageous to start with 'portable' VM-based code, like .NET or Java. This way, you can compile the source without being too concerned about the user's OS. Of course, restricting the user's OS selection works too, so it will depend in part on your language familiarity, and that of your coding partners.
Quote:
As such, you run the risk of timing out, and deleting the user's code. Imagine the poor guy who gets up to make some coffee, and comes back to find his code's deleted off the server. An alternate approach would be to give each user a directory (as you mentioned), and encrypt the contents. Access to the page could use SHTTP if you have security concerns, but in all fairness, you need to keep in mind that it might not be warranted. |
Interesting project...
On my last trip out-of-state, I took two laptops and a palm pilot. :) I also SSHed to my home network and had access to most of what I needed to get my "coding fix" while away. Normally, if I have some idea that can't wait for me to get my hands on a compiler. I write it down, chart it out, design the interface on paper... optimize and streamline it... by then I would be behind a compiler. The approach you take to accomplish this has a potential for reuse in other areas as well... library creation, document conversion, animated GIF creation, an automated newbie hand holder, etc. Good idea man. Keep us posted on the progress. |
We got our servers today, and we are currently setting them up, working on the interface and everything as I type. We have thought about it where, a user can register with us, and they can save their code on our servers, and also have a guest account, but let them know that their code could be deleted. We still thinking about how to go about this. We all have full time jobs, so we are doign it during our freetime, but I will keep you posted, and thanks for the feedback. Jimbo, we will look into those VM's you mentioned for multi platform development. Thanks
|
I wanted to procrastinate a bit, so I took a stab at this earlier just tinkering around... basically, how you mention in your second potential method. The user copy-pastes their code into a text box and they hit compile... and then the binary is available for download or error messages are displayed along with the source code (each line is numbered, so the user can reference it when reading the error messages from the compiler).
It is extremely basic and I have no intention of modifying it beyond the proof of concept phase. The main problem, in addition to security, is that the binaries will only work under Linux (or whatever architecture your server is). So you will definitely need some sort of server virtualization to accomodate the different flavors and environments and all of the different parameters you expect your users to request. |
Check this out, http://www.codeide.com/
|
| All times are GMT -5. The time now is 2:47 AM. |
Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC