

Codepad.org, a pastebin that executes code - sah
http://codepad.org/

======
wastedbrains
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.

------
raju
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...

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

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

~~~
sah
Will do. Thanks for pointing this out.

------
slackerIII
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.

~~~
sah
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.

~~~
slackerIII
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.

~~~
michaelneale
Not a bad research idea.

------
bootload
_"... 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>

------
vlad
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.

~~~
staticshock
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

------
paulgb
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 ;).

------
mixmax
Welcome to hacker news.

Hope you stick around :-)

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

~~~
derefr
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>

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

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

    
    
        document.write(eval(inputString));
    

Of course that lacks any sort of security measures...

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

Nice work.

------
ghiotion
No lisp? No arc? ;)

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

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

------
andreyf
Why not include a prettier editor?

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

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

------
johnrob
Timeout is working: <http://codepad.org/nQQKVWfa>

~~~
cnu
Yeah. <http://codepad.org/GH5l8Dgl> :)

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

~~~
sah
Well, you could always skip forking: <http://codepad.org/BThbEnMn>

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

~~~
sah
Nothing: <http://codepad.org/t74Brroa>

------
alus
<http://codepad.org/pclJNMvg>

~~~
kilowatt
you're doing it wrong

<http://codepad.org/0COPIsn9>

~~~
albertcardona
<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).

------
simianstyle
Will there be any PHP support?

~~~
christefano
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.

~~~
davidw
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.

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

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

~~~
tokipin
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

~~~
jamongkad
Upmodded and done for Lua.

------
tokipin
a timer might be nice for comparing algorithms and languages

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

------
jsmcgd
Really cool. Well done!

------
newt0311
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.

------
miratom
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 ++?

~~~
sah
You're doing it wrong:

C: <http://codepad.org/6vIUD7fk>

C++: <http://codepad.org/QEuJE8LX>

------
rms
Upvoted!

