Jump to page: 1 2 3
Thread overview
dlang.org live examples
Jun 25, 2012
nazriel
Jun 25, 2012
Kevin
Jun 25, 2012
nazriel
Jun 25, 2012
Andrea Fontana
Jun 25, 2012
nazriel
Jun 25, 2012
David Gileadi
Jun 25, 2012
Kevin
Jun 25, 2012
mta`chrono
Jun 25, 2012
nazriel
Jun 26, 2012
mta`chrono
Jun 26, 2012
nazriel
Jun 27, 2012
mta`chrono
Jun 27, 2012
nazriel
Jun 27, 2012
Iain Buclaw
Jun 27, 2012
nazriel
Jun 25, 2012
nazriel
Jun 25, 2012
Robik
Jun 25, 2012
Jesse Phillips
Jun 25, 2012
David Nadlinger
Jun 26, 2012
Jesse Phillips
Jun 26, 2012
nazriel
June 25, 2012
Hi!

I am polishing up this stuff:
http://dlang.dzfl.pl/

It would allow to run examples from http://dlang.org directly in web-browser.
Something like http://dpaste.dzfl.pl, but integrated with dlang website itself.

I would like to ask you about your opinions and advises.

There are couple things I can't make my mind on.

First, should standard input and command line arguments be constant defined in hidden html fields, or should we allow user to pick their own?
It would allow for more freedom and experience but on other-hand it would bloat too much website. Whats your opinion?

Another thing are examples itself. As you may noticed I modified some of em too give some experience in browser, for example, I've added writeln blocks in Power section.
What should we do with 'em? Examples to run properly requires main functions, and loads of examples doesn't have them. Should we adjust those examples or leave them alone? Another thing are examples that doesn't return or display anything.
Like assert(foo !is null); examples. Should we make them throw, add some writelns or leave them alone?

I would love to hear your opinion on those.


Best regards,
Damian 'nazriel' Ziemba
June 25, 2012
On 25/06/12 10:43, nazriel wrote:
> Hi!
>
> I am polishing up this stuff:
> http://dlang.dzfl.pl/
>
> It would allow to run examples from http://dlang.org directly in
> web-browser.
> Something like http://dpaste.dzfl.pl, but integrated with dlang
> website itself.
>
> I would like to ask you about your opinions and advises.
>
> There are couple things I can't make my mind on.
>
> First, should standard input and command line arguments be constant defined in hidden html fields, or should we allow user to pick their own? It would allow for more freedom and experience but on other-hand it would bloat too much website. Whats your opinion?
>
> Another thing are examples itself. As you may noticed I modified some
> of em too give some experience in browser, for example, I've added
> writeln blocks in Power section.
> What should we do with 'em? Examples to run properly requires main
> functions, and loads of examples doesn't have them. Should we adjust
> those examples or leave them alone? Another thing are examples that
> doesn't return or display anything.
> Like assert(foo !is null); examples. Should we make them throw, add
> some writelns or leave them alone?
>
> I would love to hear your opinion on those.
>
>
> Best regards,
> Damian 'nazriel' Ziemba
What I am picturing is having the code samples just like we do now with a little "Try It!" button in the corner.  When you click it it pops up a full version with all of the necessary wrapping and lets you run it and mess around.   For the stdin I would have a little pane that can slide out.  This might be a little more javascript than you were imagining but I could help you with that if you want.

This way you keep it pretty while providing a full-featured environment.  Also, have you considered using the ideone api to save yourself all of the security issues or is there something wrong with what they provide?

I don't think that people are going to run every sample and this is why I think it is better to hide most of the features and I don't think people will mind the small delay that another tab or javascript window takes to open.

Kevin




June 25, 2012
Why don't you split horizontally? Left: source, Right input (not hidden!) + output.

In code there's a typo: "souce" instead of "source"

On Monday, 25 June 2012 at 14:43:34 UTC, nazriel wrote:
> Hi!
>
> I am polishing up this stuff:
> http://dlang.dzfl.pl/
>
> It would allow to run examples from http://dlang.org directly in web-browser.
> Something like http://dpaste.dzfl.pl, but integrated with dlang website itself.
>
> I would like to ask you about your opinions and advises.
>
> There are couple things I can't make my mind on.
>
> First, should standard input and command line arguments be constant defined in hidden html fields, or should we allow user to pick their own?
> It would allow for more freedom and experience but on other-hand it would bloat too much website. Whats your opinion?
>
> Another thing are examples itself. As you may noticed I modified some of em too give some experience in browser, for example, I've added writeln blocks in Power section.
> What should we do with 'em? Examples to run properly requires main functions, and loads of examples doesn't have them. Should we adjust those examples or leave them alone? Another thing are examples that doesn't return or display anything.
> Like assert(foo !is null); examples. Should we make them throw, add some writelns or leave them alone?
>
> I would love to hear your opinion on those.
>
>
> Best regards,
> Damian 'nazriel' Ziemba


June 25, 2012
On Monday, 25 June 2012 at 14:59:35 UTC, Kevin wrote:
> On 25/06/12 10:43, nazriel wrote:
>> Hi!
>>
>> I am polishing up this stuff:
>> http://dlang.dzfl.pl/
>>
>> It would allow to run examples from http://dlang.org directly in
>> web-browser.
>> Something like http://dpaste.dzfl.pl, but integrated with dlang
>> website itself.
>>
>> I would like to ask you about your opinions and advises.
>>
>> There are couple things I can't make my mind on.
>>
>> First, should standard input and command line arguments be constant
>> defined in hidden html fields, or should we allow user to pick their own?
>> It would allow for more freedom and experience but on other-hand it
>> would bloat too much website. Whats your opinion?
>>
>> Another thing are examples itself. As you may noticed I modified some
>> of em too give some experience in browser, for example, I've added
>> writeln blocks in Power section.
>> What should we do with 'em? Examples to run properly requires main
>> functions, and loads of examples doesn't have them. Should we adjust
>> those examples or leave them alone? Another thing are examples that
>> doesn't return or display anything.
>> Like assert(foo !is null); examples. Should we make them throw, add
>> some writelns or leave them alone?
>>
>> I would love to hear your opinion on those.
>>
>>
>> Best regards,
>> Damian 'nazriel' Ziemba
> What I am picturing is having the code samples just like we do now with
> a little "Try It!" button in the corner.  When you click it it pops up a
> full version with all of the necessary wrapping and lets you run it and
> mess around.   For the stdin I would have a little pane that can slide
> out.  This might be a little more javascript than you were imagining but
> I could help you with that if you want.
>
> This way you keep it pretty while providing a full-featured
> environment.  Also, have you considered using the ideone api to save
> yourself all of the security issues or is there something wrong with
> what they provide?
>
> I don't think that people are going to run every sample and this is why
> I think it is better to hide most of the features and I don't think
> people will mind the small delay that another tab or javascript window
> takes to open.
>
> Kevin

Hmm, pop-up approach isn't that bad, but IMHO it isn't too professional approach  in now-days. Popups are also IMHO quite annoying and ugly. But of course thank you for suggestion!

In overall I wanted to keep things simple, as you see, not much changed excluding adding 2 buttons, and line numbers on left-side (which anyways, can be disabled, well, also example itself can be edited :p)

About security, that isn't an issue. Examples uses http://dpaste.dzfl.pl/ API to run them. Dpaste service itself cares about security. Why not use IDEONE? They have really outdated D compiler and I don't have possibility to change anything in it. For example I've added Command Line arguments to http://dpaste.dzlf.pl to allow smooth run of some examples (like word-count) and I can change/add anything at anytime while examples may requires something.
June 25, 2012
On Monday, 25 June 2012 at 15:03:20 UTC, Andrea Fontana wrote:
> Why don't you split horizontally? Left: source, Right input (not hidden!) + output.
>
> In code there's a typo: "souce" instead of "source"
>
> On Monday, 25 June 2012 at 14:43:34 UTC, nazriel wrote:
>> Hi!
>>
>> I am polishing up this stuff:
>> http://dlang.dzfl.pl/
>>
>> It would allow to run examples from http://dlang.org directly in web-browser.
>> Something like http://dpaste.dzfl.pl, but integrated with dlang website itself.
>>
>> I would like to ask you about your opinions and advises.
>>
>> There are couple things I can't make my mind on.
>>
>> First, should standard input and command line arguments be constant defined in hidden html fields, or should we allow user to pick their own?
>> It would allow for more freedom and experience but on other-hand it would bloat too much website. Whats your opinion?
>>
>> Another thing are examples itself. As you may noticed I modified some of em too give some experience in browser, for example, I've added writeln blocks in Power section.
>> What should we do with 'em? Examples to run properly requires main functions, and loads of examples doesn't have them. Should we adjust those examples or leave them alone? Another thing are examples that doesn't return or display anything.
>> Like assert(foo !is null); examples. Should we make them throw, add some writelns or leave them alone?
>>
>> I would love to hear your opinion on those.
>>
>>
>> Best regards,
>> Damian 'nazriel' Ziemba

I wanted to keep as much as possible old look of dlang.org code snippets.
That's why I didn't splited it horizontally.

> In code there's a typo: "souce" instead of "source"
Ach, that's only placeholder to show all kinds of output the applet gives, but still thanks for info. Will fix it
June 25, 2012
On 6/25/12 7:43 AM, nazriel wrote:
> First, should standard input and command line arguments be constant
> defined in hidden html fields, or should we allow user to pick their own?
> It would allow for more freedom and experience but on other-hand it
> would bloat too much website. Whats your opinion?

My opinion is that the fields should be hidden until the code is run for the first time, at which point at least standard input should become visible for altering in subsequent runs.
June 25, 2012
On Mon 25 Jun 2012 12:46:27 EDT, David Gileadi wrote:
> On 6/25/12 7:43 AM, nazriel wrote:
>> First, should standard input and command line arguments be constant
>> defined in hidden html fields, or should we allow user to pick their
>> own?
>> It would allow for more freedom and experience but on other-hand it
>> would bloat too much website. Whats your opinion?
>
> My opinion is that the fields should be hidden until the code is run for the first time, at which point at least standard input should become visible for altering in subsequent runs.

That's essentially what I was getting at.  Show the meaning like we do now and then have an "Edit Me!" button that shows the full sample and standard input/output.  And if the examples are full programs it would be nice to have automated tests so that they are up-to-date with the compiler.
June 25, 2012
Hey,

that's quite cool what you did! how did you do that? do you use fastcgi or cgi? how do you execute your code? inside some chroot environment or some other kind of virtual maschine.

mta`chrono
June 25, 2012
On Monday, 25 June 2012 at 14:43:34 UTC, nazriel wrote:
> Hi!
>
> I am polishing up this stuff:
> http://dlang.dzfl.pl/
>
> It would allow to run examples from http://dlang.org directly in web-browser.
> Something like http://dpaste.dzfl.pl, but integrated with dlang website itself.
>
> I would like to ask you about your opinions and advises.
>
> There are couple things I can't make my mind on.
>
> First, should standard input and command line arguments be constant defined in hidden html fields, or should we allow user to pick their own?
> It would allow for more freedom and experience but on other-hand it would bloat too much website. Whats your opinion?

I think, that we should allow user to specify arguments whenever it is possible and reasonable.


> Another thing are examples itself. As you may noticed I modified some of em too give some experience in browser, for example, I've added writeln blocks in Power section.
> What should we do with 'em? Examples to run properly requires main functions, and loads of examples doesn't have them. Should we adjust those examples or leave them alone? Another thing are examples that doesn't return or display anything.
> Like assert(foo !is null); examples. Should we make them throw, add some writelns or leave them alone?
>
> I would love to hear your opinion on those.

I would go with adjusting them, to make output cleaner. Idea to replace assert(...) with writeln() sounds good.

> Best regards,
> Damian 'nazriel' Ziemba


Overall, stuff you made is quite impressive, keep it going!

Regards, Robik.
June 25, 2012
On Monday, 25 June 2012 at 19:27:13 UTC, mta`chrono wrote:
> Hey,
>
> that's quite cool what you did! how did you do that? do you use fastcgi
> or cgi? how do you execute your code? inside some chroot environment or
> some other kind of virtual maschine.
>
> mta`chrono

When you click Run button on dlang.dzfl.pl, ajax makes POST request to local process.php (can be any scripting language, probably making it js-only could work with some iframes-hacking). Then it requests http://dpaste.dzfl.pl API via POST and it returns JSON with response.

http://dpaste.dzfl.pl service resides on unaffected server, while compiler service resides on 4 (hope to add more mirrors in near future) machines. I've implemented small load balancer in D.

Whole infrastructure is written in D and uses different approaches, containers on linux mirrors and jails on freebsd mirrors.

Each request has limited resources, execution time, IO access etc.

Website itself (http://dpaste.dzfl.pl) is written in PHP, but I am thinking about switching to D in near future (not sure what framework pick up yet, vibe.d, serenity or own implementation).

If you want to know more details, let me know

« First   ‹ Prev
1 2 3