Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Codepad.org, a pastebin that executes code (codepad.org)
143 points by sah on March 4, 2008 | hide | past | favorite | 57 comments


I could see this being incredibly useful, there has been tons of code pasting, but it will make things a lot cleaner and simpler being able to check out fully functioning code while discussing the problem with someone.

Now all it needs is an embeddable widget and this would take over coding blogs and forums.


Very, very nice. Love it. I agree with paulgb, this is something I never thought I would ever find useful, but I can already see myself sharing code snippets with others.

I might be getting greedy, but how about syntax highlighting? Although CodePad is really cool. Bravo! Keep up the great work...


Codepad have syntax highligthing. At least for ruby http://codepad.org/i30lM3MM


There are several pastebins with syntax highlighting: http://rafb.net/paste http://pastie.caboo.se http://pastebin.com/


Suggestion: Since it's intended for code you should explicitly declare a monospaced font for the textarea. Safari uses a sans serif by default.


Will do. Thanks for pointing this out.


Very cool stuff. How are you keeping the backend secure?

You should put up a page of the most popular code samples :) And of course, let people vote them up and down.


The basic strategy is to run untrusted code (including compilers) under ptrace to disallow a bunch of system calls. It's also chroot jailed, and subject to resource limits and a timeout. There are more details at http://codepad.org/about

Popular code samples are a good idea! I'll add that to the to-do list.


Ah, thanks -- the about link is not so obvious with a really wide screen browser.

Since I think every single person is going to try to do something naughty to your system, a list of the most creative attempts to hack it would be cool too.


Not a bad research idea.


"... Codepad.org, a pastebin that executes code ..."

Very nice. Tried "import this" & "hello world in c". There is a poll over on arclanguage that asks if users want this type of functionality (hosted arc repl). I was surprised that more didn't want this type of feature to hack with Arc ~ "A hosted repl" : http://arclanguage.org/item?id=4070


Really cool. I thought of something related yesterday, which would be a place where people could submit code to get comments and feedback from the community about how they would have coded something differently. It would be useful for both newbies, business people, experienced programmers, web programmers, and people who've known COBOL for 20 years and want to learn about new languages. And, for each program, someone could submit code that does the same thing in a different language, especially web languages. This is really awesome and would facilitate this very easily! A good way to learn the proper way to do something, especially with web languages that may change every major version, is by asking questions of experts in an IRC chat, and then watch them argue amongst each other about the best way to implement something. This would solve that problem by letting people browse, search, or reference a particular post or example or add on to it. I'm thinking of a wiki/social news/forum/code execution app.


the individual components of what you're talking about basically exist:

http://refactormycode.com/ - comments on people's code, discussions about refactoring

http://rosettacode.org/ - common pieces of code implemented in different languages


Cool. This is one of those things I didn't know I needed, but give it a week and I won't be able to live without it ;).


Welcome to hacker news.

Hope you stick around :-)


This is sweet. So useful for getting help with code or showing someone how to do something.


I somewhat implemented this idea before (but just with Ruby, so obviously a much smaller project.) At the time, one of my biggest to-dos was AJAX support, to allow two people (i.e. a teacher and student) to play with a piece of code together as if they were on the same machine, with either person being able to hit "re-run" at any time and both seeing the updated output. Then I started getting into the details of trying to create a shared interactive debugger, and it started to get out of my range of ability ;).

One suggestion for this, though, copied from something I did in my little project: provide another field (optional, perhaps hidden by default) for batch STDIN, so it doesn't crash on the sample here (a simple Ruby call to gets): http://codepad.org/xz0E5olm


Lua would be a nice and easy addition. in particular WoW uses it for its UI mods


How about some JavaScript support. Here's I'll help:

    document.write(eval(inputString));
Of course that lacks any sort of security measures...


This reminds me a bit of that site Utility Mill, but, of course, that one is for long-term versioned Python code.

Nice work.


No lisp? No arc? ;)

Seriously, that's really cool. I want to break it now.


It has scheme! (PLT, too, so I guess arc would be easy to add.)


Why not include a prettier editor?

http://www.cdolivet.net/editarea/

Or maybe open an API so that other people can extend it?


Timeout is working: http://codepad.org/nQQKVWfa



Darn, my code snippet to call system("rm -rf /") was met with some nonsense about forking disallowed.


Well, you could always skip forking: http://codepad.org/BThbEnMn


So was mine with while(fork()); :)

Seriously, very very cool app!


I tried to write an infinite loop in C, but couldn't remember what I had to include. FAIL.




you're doing it wrong

http://codepad.org/0COPIsn9


http://codepad.org/H2wMdxsA

Didn't know this one about python. Thanks kilowatt.

By the way I can't "paste and run": Error 500 Internal Server Error. Looks like the site is popular as it gets (well deserved).




Will there be any PHP support?


If there were it would mean the end of codepad.org. Think of the security implications of allowing anyone to run PHP on their server.


Think of the security implications of allowing anyone to run any language on their server. It doesn't matter if it's PHP, Ruby, or C++, since they all allow shell and filesystem access, unbounded recursion, and all the other goodies that make sandboxing interesting.

The trick would be to run PHP as a command-line scripting language, just like the others.


Afaik, the only (reasonably common) languages with good sandboxes are Tcl and Java. Like they said above, they're the ones building the sandbox, not the language.


Lua has excellent support for building sandboxes for untrusted user code.


Interesting - but what do you mean 'building' sandboxes?


i'm not exactly sure what he's talking about, but there's 2 things Lua has here. one is that the language is functional, so you can replace, alter, or remove the dangerous functions. the other is that you can specify the variable 'environment' of a function with a table (Lua's hash.) so you can construct its environment in an 'opt-in' basis and know for sure everything you're allowing the function to do is safe. and of course these things would be meaningless if built-in functions didn't behave like user functions


Upmodded and done for Lua.


You can map down a few languages to JVM executable bytecode, can't you?


In what way does Java provide sandboxing of untrusted code?


Untrusted Java web start applications and Java applets can't do anything that could harm the real operating system. We had to buy and keep on renewing an expensive code-signing cert so our app could save a local file. Every once in a while, a security researcher claims to have gotten untrusted bytecode to run outside the boundaries of the sandbox.


Oh just quit it. You and I both know that PHP can be made to run safely in this type of environment.


I would be more worried about C... which this already runs (apparently securely)


Here here! why isn't there any PHP support?


PHP is one of the most requested languages. Support is on the way, probably sometime in the next couple weeks.


a timer might be nice for comparing algorithms and languages


I agree. Especially if you're solving and comparing projecteuler.net problems/solutions :)


Really cool. Well done!


Awesome. Future suggestion (for python), add in some external modules like scipy. Then it would be possible to send examples of some of the more obscure modules. Really nice app.


c/c++ is broken. Doesn't support this:

int x = 4; x++; printf("x: %d\n",x);

How can you say you support c/c++ when you don't support ++?



Upvoted!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: