text:
Open the browser to http://codegolf.stackexchange.com
Your job is to open a browser window of the default browser to http://codegolf.stackexchange.com.
Your code must open the browser itself, and cannot rely on an open one.
This is code-golf, so the shortest answer in bytes wins.

Moderator note: A large number of answers to this challenge use the URLs http://ppcg.lol or http://ppcg.ga. These URLs did direct to https://codegolf.stackexchange.com at the time, but have since expired. By this meta discussion, they have been allowed to stay, with the note that they are currently invalid.

Are URL shorteners allowed?

@isaacg I'm assuming "yes", since the OP used ppcg.lol themselves in a now deleted answer.

@issacg Yes, it is allowed.

Is it allowed to run JavaScript in the default browser to open a window?

@Mwr247 No, it is not.

You should add clarifications/restrictions to the question itself, since comments are not guaranteed to stick around forever.

This question has received 20 votes (according to my reputation tab) that add up to 2. There must be a lot of controversy.

Your spec is minimal, which led to alot of uncertainty over what is allowed to accomplish the task. Additionally, some probably consider it a trivial task. Still, you're in the positive ;)

Are you banning the language JavaScript?

@wizzwizz4 No, the restriction is to prevent running code in an already-open browser, which is a loophole that would trivialize the challenge. A better rule would be that the code must work without any browser processes open.

I am voting to close as unclear because there have been too many answers trying to exploit the only partially-closed loophole of running code in a browser process. The extremely minimal spec leaves too much room for abuse.

I'm assuming buying an even smaller domain to use is a loophole?

@Quill Nope, because other people can use it too. Feel free to do it!

Dear close-voters: there is a lot of controversy over this question. According to reputation changes, I have receive >20 down votes. However, there is a positive difference of 13 with means the community is generally acceptant of question.

Solution in one byte: .

@CrazyPython That's not entirely true. According to our BDFL, Jeff Attwood, downvotes are rare. Right now it's at -21/+34. And a positive score is not an argument in favor of leaving a question open, for example this challenge.

See vim's gx command. Works with the cursor over the text ppcg.lol in normal mode. Not sure how many byte that would count as.

@PaulGaborit in what language?

Notice just as many reopen votes ad close votes before it was closed.

@EasterlyIrk One visible byte (with some invisible bytes) in comment language used here.

http://ppcg.ga/ should be active soonish.

@CrazyPython Note that everyone with enough rep to close vote has enough rep to view the upvote/downvote totals. http://codegolf.stackexchange.com/help/privileges

Please note that ppcg.ga no longer works, and URL-shorteners are a loophole now, though allowed for this challenge. https://codegolf.meta.stackexchange.com/a/11971/34718

I'm voting to close this question as off-topic because the URL-shortener (ppcg.ga) used in most of the answers no longer works. This means old answers have been invalidated, and new ones using the same thing wouldn't work.

It seems that none of the shortened links work anymore…

 GNU Emacs, 29 27 14 33 bytes
(eww"codegolf.stackexchange.com")

The previous answer with a URL shortener was:
(eww"ppcg.ga") ;; 14 bytes

However:

Much like ppcg.lol, ppcg.ga has been unregistered, invalidating this answer. But unlike last time, there is no replacement short url.  (@lyxal)

EWW is a browser inside Emacs. The browse-web function is an alias for eww, and so that makes eww the default browser in Emacs:

Your job is to open a browser window of the default browser to http://codegolf.stackexchange.com.

Thanks  to  @CoolestVeto, @Jonathan Leech-Pepin and @zyabin101.

Can you use www.ppcg.lol instead of http://ppcg.lol?

@TimmyD No, at first I tried with "www" but the protocol must be supplied (the behavior is different for example with "mailto://"). For user interaction, there is "browse-url-at-point" which prepends "http", but this is longer of course.

You shouldn't need the //, I don't think. (I don't use emacs, but it's generally accepted without the //)

Arguably this could be shortened to (eww"ppcg.lol") sinceeww is now the default browser for Emacs itself.  (browse-web is an alias for eww in the menu bar)

@JonathanLeech-Pepin I didn't know, many thanks.

ಠ_ಠ PPCG is not something to "ewwww" that, that's code review :P

Apparently there is http://ppcg.ga. It may save you a byte.

It says URL shorteners aren't allowed..

You can use something like t.ly/-E-J instead

Oration, 41 bytes
Not winning, but sure was fun.  As of right now, I'm only 1 bytee behind python!
I need webbrowser
Now open "http:ppcg.ga"

Explanation:
I need compiles to import $1 with webbrowser being the module.
Now runs the following command from the module as module.command with the arguments of anything following.
So this compiles to:
#!/usr/bin/env python3
import webbrowser
webbrowser.open("http:ppcg.ga")

I do end up needing the http: part though, and it can't be shortened.

This conversation has been moved to chat.

I'm almost certain that you can replace "http://ppcg.lol" with "http:ppcg.lol". I'm uncertain whether you can remove the space between open and "http:...", but try it?

@Quill Is that from a url shortener, or did you just decide to buy ppcg.lol (and how do we know you won't use your powers for evil?)

@PyRulez I decided to buy the domain, and all the subdomains and main domains are direct DNS level redirects, if you don't believe me, you can use a packet analyser like Charles or even chrome's chrome://net-internals to see there's no malicious data being sent.

@Quill I meant how do we know you won't Rick roll us all at some future point?

@PyRulez I actually use the shortcut, that would suck for me

@Quill that depends on how much you like Rick...

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Batch, 17 bytes
Saved 3 bytes thanks to Mego.
start www.ppcg.ga

This will open in your default browser if you run it from the windows command line.
I think it'll work in Powershell too, but I'm not sure.

You can use start instead of explorer.

You can use start www.ppcg.lol instead to implicitly have Windows parse it as HTTP. Works in both CMD and PowerShell.

Also works in Wine on Linux and OSX

It gets 1 byte shorter in PowerShell

@Matt Nice! I should really learn more PowerShell.

Why do you need the www.?

@Blender Because otherwise it tries to find a local program called pccg with the .lol file extension and run it.

What url shortener did you use?

@pyrulez Whichever one everyone else was using.

@PyRulez It's not a URL shortener, technically. Quill bought that domain a while back and set up a DNS redirect.

@MDXF When I made the comment, it was referring to ppcg.lol, which was indeed purchased by Quill.

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

PowerShell, 17 16 Bytes
saps www.ppcg.lol

Using an even shorter domain provided by Milo.
saps www.ppcg.ga

While start is a known alias for Start-Process there is another one for saps. You can see this from Get-Alias. It follows the convention for similar Start- and Stop- cmdlets.

As those URLs no longer exist the only way to make this work is to use the horribly inefficient 36 characters for
saps http:codegolf.stackexchange.com
At least we can drop the slashes no problem

Terminal (OSX), 20 18 17 bytes
open http:ppcg.ga

Saved 2 thanks to CoolestVeto

open is an OSX utility, not a bash one; this would be more appropriately called "OSX command line".

@Skyler Is this incorrect then? http://ss64.com/bash/open.html

the first line: "Open a file in its default application, using virtual terminal (VT)." If you try to run that on unix, it will tell you "Couldn't get a file descriptor referring to the console", because it's trying to open in a terminal, not in a browser.

You can get rid of //.

You can save another byte: open http:ppcg.ga

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

MATLAB, 28 25 bytes
web www.ppcg.lol -browser

www is shorter than http:// and ensures that the address is processed as a URL
This is shorter using the implicit function call (which casts inputs as strings) rather than the explicit version web('www.ppcg.lol', '-browser').
If you are on a OS X, this can be simplified to web ppcg.lol -browser as MATLAB will automatically append an http:// (21 bytes)

Alternatives:

On windows this can be shortened to (19 bytes)
!start www.ppcg.lol

On OS X (21 bytes)
!open http://ppcg.lol

The following would work in a deployed MATLAB application (16 bytes)
web www.ppcg.lol

If the built-in browser could be used this could be reduced even further as http is implied (12 bytes)
web ppcg.lol

OS X is redundant because the built-in open command does the same.

@CrazyPython That's precisely what ! does in MATLAB, it's the equivalent of system(command). I had it as more of a demonstration of other alternatives that could be executed from within MATLAB. Is that OK?

Do you need the www.?

@CoolestVeto Sometimes you do sometimes you do not. When using the external browser you do, however the internal browser you do not. If you do not specify it, no browser window will open. If you can get it to work, I'm more than happy to change it!

@CoolestVeto So I dug a little more and it looks like the www is unnecessary only on OS X

@Suever that should be fine as long as you mark it OS X only.

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

AutoHotKey, 16 bytes
Run www.ppcg.lol

Unfortunately, not everybody has shudder Google Chrome shudder set as their default browser (or installed at all!).

Not everyone has AHK either...both facts are very shudder worthy

I was shuddering because I had to type... never mind.

The challenge spec requires opening PPCG in the default browser, which may or may not be Chrome.

@Dennis fixed...actually saved me some bytes

Great! Can't you drop the www.?

Unfortunately not :(

Do you need the space between Run, and www.?

You don't need the comma

Its an either/or comma or space. This also makes it the shortest competing entry so far.

@wizzwizz4 ಠ__ಠ

@wizzwizz4 What's wrong with Google Chrome?

@DmitryKudriavtsev What isn't? :-)

@wizzwizz4 I use it daily, have no problems with it

@DmitryKudriavtsev Let's not start a browser war. (I always win them, whether that's by having a good case or by still standing there talking 6-8 weeks after everybody else left!)

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Python, 52 48 47 45 44 bytes
Shamelessly borrowing that shortened link.
from webbrowser import*;open("http:ppcg.ga")

Thanks to CrazyPython for -4 bytes, and Sp3000 for a further one.
Edit: shaved 2 more off thanks to CoolestVeto
Edit: thanks to MD XF for registering ppcg.ga and saving another byte

The former change leaves it exactly the same length. As for the http://, if you leave that out it tries to open a local file called "ppcg.lol", which doesn't exist.

You don't need //.

Thanks! I wonder why that works?

You can also do this with just command line options python -m webbrowser -t http:ppcg.lol which I think counts as 30 chars

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Java 7, 151 bytes
class P{public static void main(String[]a)throws Exception{java.awt.Desktop.getDesktop().browse(new java.net.URI("http:codegolf.stackexchange.com"));}}

Java is not the best language for golfing...
Here's the same program in a more readable format:
class P {
    public static void main (String[] a) throws Exception {
        java.awt.Desktop.getDesktop().browse(new java.net.URI("http:codegolf.stackexchange.com"));
    }
}

Saved 2 bytes by removing // in the URI/L, and another byte by switching to .ga from .lol (indirectly thanks to @Milo)

Use interface for shorter code

@Mego I could do that, but then it would be Java 8. This is a Java 7 answer. But thanks for the tip!

[tag:code-golf] specifies that functions are sufficient, you do not have to write a full program. So void f(){ .... } would be enough.

Can static blocks throw exceptions? If yes, use one.

Bash, 24 22 bytes
xdg-open http:ppcg.lol

Not as short as some others. firefox ppcg.lol is shorter, but it doesn't meet question spec.

xdg-open www.ppcg.lol works for me as well.

@digital_trauma interesting, it didn't for me. It looked for www.ppcg.lol on the file system. Ubuntu 15.10.

Weird. Ubuntu 14.04 for me.  xdg-utils 1.0.

You shouldn't need the //.

@CoolestVeto Correct.  xdg-open http:ppcg.lol also works for me.

@CoolestVeto @Digital_Trauma that works for me. Still can't get the www. version to work. xdg-open --version returns xdg-open 1.1.0 rc3 but interestingly when I try to pass www.ppcg.lol I  get an error message about gvfs-open. How do I find out which version of xdg-utils I have?

Why do you need the xdg-?

@OldBunny2800 I'm using bash on Ubuntu 15.10 - open doesn't work while xdg-open does. See this answer. http://codegolf.stackexchange.com/a/76611/49161 If it is run in the Virtual Terminal on OS X it does work, though I don't have a mac so I can't verify.

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Pylongolf, 11 bytes
"ppcg.lol"p

Pushes ppcg.lol into the stack then p opens it.

Will that open it as a local file, or as a website address?

And did you just add the changes that allowed this to work?

@wizzwizz4 As an address.
Yes, so this does not compete with others, just for fun.

Lemme guess, freenom?

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Java 8, 115 112 bytes
interface P{static void main(String[]a)throws Exception{java.awt.Desktop.getDesktop().browse(new java.net.URI("http:ppcg.ga"));}}

Java is not the best language for golfing...
Here's the same program in a more readable format:
interface P {
    static void main (String[] a) throws Exception {
        java.awt.Desktop.getDesktop().browse(new java.net.URI("http:ppcg.ga"));
    }
}

Saved 2 bytes by removing // (thanks @CoolestVeto), and another byte by switching to .ga from .lol (indirect thanks to @Milo)

You can remove the //.

Isn't it supposed to be java.net?

cant you replace interface with class?

@MCMastery Yes. However, with an interface, you can save 3 bytes because even though interface is longer than class, you save more bytes because the public modifier is implied.

@Ryan Whoops. Fail. Yes, you're right. Thanks!

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

JavaScript, 34 bytes
require('open')('http://ppcg.lol')

Uses Node.js

Do you need //?

If node.js supports ES6: require`open``http://ppcg.lol`; (added ; to avoid tripping the formatting)

Alternatively, does it require a protocol? eg require('open')('//ppcg.lol') to save 5 bytes

@Martijn Shh...

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Applescript, 28 bytes

3 bytes saved thanks to @CoolestVeto.

open location"http:ppcg.lol"

how dare a high-rep user not format their header correctly D:

@cat actually, I've never been called out on this before - I've always operated on the assumption that bytes is the default for codegolf (and is even explicitly specified in this question), so explicitly respecifying in answers is just redundant information.  Do you know of a meta post about this?

Well, first and foremost, my comment was messing around -- I only changed it for consistency with all the other answers, and it's really insignificant but it bothered me. I'm pretty sure there's no meta post on formatting specifically, and that this format came from the Leaderboard Stack Snippets, but I'm almost certain there's a meta post for Defaults for Scoring Code Golf that says it's bytes unless otherwise specified.

@cat Yep, I don't think its a big deal either way - I'm certainly not planning on rolling back your edit :).  Scoring by bytes by default is in the code-golf tag wiki

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Mathematica, 28 bytes
SystemOpen@"http://ppcg.lol"

That would be 16 bytes in Mthmtca.

Do you need //?

@CoolestVeto I think I do.

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Actionscript 3, 117 bytes
package{import flash.display.Sprite;public class A extends Sprite{function A(){navigateToUrl("ppcg.lol","_blank")}}}

Like Java, this is not a great golfing language.  Here's the code with formatting:
package
{
    import flash.display.Sprite;

    public class A extends Sprite
    {
        function A()
        {
            navigateToUrl("ppcg.lol", "_blank")
        }
    }
}

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Perl 5, 66 57 76 bytes
Should work everywhere, but needs that import :(
8 bytes saved with @msh210 comment.
use Browser::Open open_browser;open_browser"http:codegolf.stackexchange.com"

Also, for funsies :
Perl 5 (Windows), 34 48 bytes
system "start http://codegolf.stackexchange.com"

Perl 5 (Unix), 31 49 bytes
system "xdg-open http:codegolf.stackexchange.com"

use -M instead of use to shave a coupla bytes. (Untested.) Also, I'm guessing you don't need the parens or the www.. (Also untested.)

@msh210 Can't seem to get the -M switch to work apparently on my Mac... (?), but indeed the www as well as the // can be removed. Thanks !

Rebol 2,  16 15  bytes
browse"ppcg.ga"

if you accept an error before opening the page on Linux, no error on Windows
20 bytes  without an error
browse http:ppcg.lol

Alternative to the first one (although with the same score): browse #ppcg.lol

now with shorter url.(

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

R, 26 bytes
shell.exec("www.ppcg.lol")
I don't know of any shorter way to do this in R.

Duplicate of this. Simply wrapping another answer in a system/fork/whatever call is a trivial modification.

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Factor, 38 36 26 29 bytes
[ "http:t.ly/-E-J" open-url ]

I didn't know one could golf-off the // in the protocol.

I think you can remove the space between the end-quote and run-process, and you can wholly drop //.

@CoolestVeto Thanks! I didn't know the // could be left off. As for the space between " and run-process, dropping that would require a word named "run-process to be present in the current vocabulary search path

@CoolestVeto Factor's like Forth -- highly whitespace dependent

Duplicate of this. Simply wrapping another answer in a system/fork/whatever call is a trivial modification.

@Mego Okay, well, not that it really matters but I did come up with this without seeing that one. But, there is really no other way to run The default browser without xdg-open in languages which are not equipped with special functions for browsing the web. A C or ASM answer would surely also have to do system("xdg-open...")

@Mego A C or ASM answer on Windows would also just be wrapping the Batch answer: system("start...")

@cat Correct. Such an answer would also be a duplicate.

@Mego But it's not the same language so how can it be a duplicate? If I just reimplement someone else's sorting algorithm in my very different, much more / less verbose language, is that also a duplicate?

@cat There is a significant difference between re-implementing an algorithm in a different language and wrapping another submission in a system/fork/exec call.

Marking this answer as non-competing does not exempt it from being invalid as per this policy

@Mego I didn't know Factor actually had a builtin for this

Red, 40 bytes
browse http://codegolf.stackexchange.com

(Don't) Try it online!
ppcg.ga no longer works, so needed to include the full domain name. But its funny that Red has its own URL data type!

38 bytes

VBScript, 57 bytes
I used to have lots of fun creating tiny programs in VBScript, back in 2010.
I've remembered this language and used the code on: https://stackoverflow.com/a/13401872/2729937
It still works on Windows 7, at least.
set S=CreateObject("WScript.Shell")
S.run("www.ppcg.ga")

This is a bit different from the usual start www.ppcg.lol, in the sense that it executes the www.ppcg.ga directly, with an implicit start.
An alternative way would be "cmd.exe /C start www.ppcg.ga".

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Common Lisp,  31 bytes
(ext:shell "open http:ppcg.ga")

Note: This worked at the time of writing.  The domain ppcg.ga has since expired, making this answer no longer valid.

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

RFO-BASIC, 22 bytes
BROWSE "http:ppcg.lol"

Read about RFO-BASIC at laughton.com.

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

VBA, 84 bytes
Sub Main()
ThisWorkbook.FollowHyperlink("http://codegolf.stackexchange.com")
End Sub

You can get this down to 62 bytes by converting this to an immediate window function as ThisWorkbook.FollowHyperlink"http://codegolf.stackexchange.com, and you should also probably change the language to be Excel VBA, as this explicitly uses the Excel.Workbook object

Zsh on MacOS, 19 bytes
open http:t.ly/-E-J

Try it online!    (t.ly is a URL shortener).

05AB1E, 16 bytes
The features used here postdate the challenge, but that's fine. Code:
’…Ò ™³.ÐÏg.´¢’.E

You can try the string online here. This basically evaluates to this batch answer.
Uses the CP1252 encoding.

How do you count the bytes? Depending which program I use for counting I get from 21 to 34 bytes.

@sqlab 05AB1E uses the CP1252 encoding.

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Ruby, 22 20 19 bytes  (on OS X)
`open http:ppcg.ga`

Simple.
Thanks to Daniel for 2 bytes off.

You can save 2 characters by using backticks instead of %x. open http:ppcg.lol

@DanielEvans Great, thanks.  That saves 2 bytes.

"'open' is not recognized as an internal or external command,
operable program or batch file."

@DewiMorgan OS X only.

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

C#, 33 bytes
Process.Start("http://ppcg.lol");

Opens the default browser to the web address

Nope... Replace \\ via //.

not a c# program, just a single line

Also this needs the System.Diagnostics namespace to be added in or Process to be fully qualified to work.

This is not a c# program.

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

PHP (OSX), 33 bytes
<?php exec("open http:ppcg.lol");

PHP (Windows), 34 bytes
<?php exec("start http:ppcg.lol");

"'open' is not recognized as an internal or external command, operable program or batch file."

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

VB.NET, 32 30 bytes
Process.Start("http:ppcg.lol")

+10 for Sub Main(), and +7 for End Sub, which you need in order to run this at least in a VB.NET console program, also you would need to import System.Diagnostics.

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

C++, 61 Bytes
#include <cstdlib>
main(){system("xdg-open http:ppcg.lol");}

Just a rip off of the bash solution using system, and it only works on systems using the freedesktop tools. Also shortened by using the short link some kindly provided, otherwise it would be much longer.

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Game Maker Studio, 26 bytes
url_open('http://ppcg.ga')

This is not a complete program. Anyway, have +1 for using GameMaker Studio xDDDDDD

@LuisMasuelli Yes it is. No need to use a script or anything - there is a way to run "creation code" in the room settings, which is usually how you would run any GML code for this site. But thanks ;)

U're right. There's actually no way of posting a complete program since most of the execution is not done by explicit code but GMS internal lifecycle.

@LuisMasuelli Yes, that's why I usually only use the GML code script in the objects and room creation code, none of the drag-and-drop anymore.

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Windows Batch, 17 bytes
start www.gfa1.tk

You should include the language for this. Also, this is a trivial improvement upon an existing answer, and thus it should have been a comment rather than a separate answer.

ppgc.ga is working now.

Please note that the URL http://gfa1.tk longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Python, 44 bytes
from webbrowser import*;open('http:ppcg.ga')

URL from this comment
Edit: ppcg.ga seems to become more popular now (but it WAS available when I posted this answer).
Ungolfed:
from webbrowser import * # Loads everything in the webbrowser module
open("http://ppcg.ga/") # Opens default browser to http://ppcg.ga/

Python, 44 bytes
from webbrowser import*;open('http:gfa1.tk')

URL from this answer
Ungolfed:
from webbrowser import * # Loads everything in the webbrowser module
open("http://gfa1.tk/") # Opens default browser to http://gfa1.tk/

Python, 45 bytes
from webbrowser import*;open('http:ppcg.lol')

Ungolfed:
from webbrowser import * # Loads everything in the webbrowser module
open('http://ppcg.lol/') # Opens default browser to http://ppcg.lol/

Take that, ppcg.lol! (1 byte shorter)
Note: I added a separate answer leading to ppcg.lol, 'cause I've noticed the other sites doesn't work for me in Internet explorer 11, and I saw other users having this problem too.
Both are non-non-competing (read that right?)

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Perl 6, 45 bytes
Requires the Browser::Open module.
use Browser::Open;open_browser 'http:ppcg.ga'

Do you really need that one whitespace? I can't test this right now.

Yes, Perl 6 has strict whitespace requirements.

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Lua, 30 Bytes
os.execute'start http:ppcg.ga'

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Cheddar, 65 bytes
cheddar.internal(cheddar.uid).require("open").c("http://ppcg.ga")

Accesses cheddar internals and then calls upon open package and calls it with string to PPCG. Make sure you have open npm package installed

Shouldn't this be Cheddar+Open if it requires another package?

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Vyxal 7 bytes
`∨¤ β`E

Try it Online!
The short dictionary is a neat hidden feature, compressing the codegolf link to β

Dyalog APL, 20 19 bytes
-1 byte thanks to MD XF
]Open http://ppcg.ga

Uses the User Command ]Open, which is installed with Dyalog.

Needs you the //?

@CoolestVeto Yes, otherwise you get an error: * Command Execution Failed: File not found

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

C# (Full Class) 89 bytes
class P{static void Main(string[]a){System.Diagnostics.Process.Start("http://ppcg.ga");}}

Not sure that it's possible to write a full class (with the System.Diagnostics reference) any shorter.
Inside main method only without references, 32 bytes:
Process.Start("http://ppcg.ga");

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

NodeJS, 53 bytes
require('child_process').exec('open http://ppcg.lol')

Works on mac.

Duplicate of this

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Python, 43 41 40 bytes
import os
os.system("open http:ppcg.ga")

-2 bytes thanks to @Quill.
-1 byte thanks to @MDXF.

Duplicate of this

@mego how is it a duplicate - It's not even the same language!

@proudhaskeller See my comments on this answer

@mego on the nominations for moderator you said yo believe in hands-off moderation. I don't see how this is reflected here.

@proudhaskeller By hands-off moderation, I mean letting the community do all the moderation work that it can, rather than stepping in with mod powers. As I am neither a moderator nor using moderation powers/privileges, this is still hands-off moderation. If you wish to discuss my views on moderation further, I would encourage you to do so with me in the chatroom created specifically for that purpose.

@Mego I opened a discussion in meta about this issue

@ZachGates, you can remove turn http:// into http: and it should have the same effect

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Nim, 47 bytes
import browsers
openDefaultBrowser"www.ppcg.ga"

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

Python, 40 bytes
__import__('webbrowser').open('ppcg.ga')

Shorter version of everything else.

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

VBScript, 47 bytes
CreateObject("WScript.Shell").Run"http:ppcg.gq"

URL, 58 bytes
[InternetShortcut]
URL=https://codegolf.stackexchange.com

In Windows create a file "url.URL", with a code editor put the code.

Welcome to the site! As it isn't clear whether this works or not, could you provide either instructions for running this, or a link to an online testing environment such as TryItOnline!, so that others can verify your answer?

R, 28 bytes
browseURL("http://ppcg.lol")

(in utils package)

Please note that the URL http://ppcg.lol no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

SX, 38 bytes
的 webbrowser im**;o&('http:ppcg.ga')

Save this shell script as SXexec.sh to your SX directory:
#!/bin/sh
N=$1.py;python Main.py $1;wine SXCompiler.exe $N;rm $N;python $N.py;rm $N.py

The script features tidying up after execution. To execute the above script, you need to have Wine and Python. Usage is like this:
SXexec.sh file

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

C (gcc), 49 38 37 bytes
main(){system("start http:ppcg.ga");}

It's for Windows.

Please note that the URL http://ppcg.ga no longer works, and it is recommended you update your answer to a URL that does work, ideally http://codegolf.stackexchange.com. For more information, see the note in the challenge, or this meta discussion

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
A Tiny Explorer
You are an explorer, mapping an unknown world. Your ship is carried on the wind. Where it goes, who knows?
Each day, in your spyglass, you see features to the north, south, east and west. You always see four such features, corresponding to the cardinal directions. Your spyglass reports ASCII symbols like this:
~~.*, ~~~~, ~.^^, ~#~#
The symbols are in the order (north, south, east, west).
These are the symbols: ~ = sea, . = coast, ^ = mountain, * = tree, # = invalid (no observation, this occurs whenever you see the edge of the world, or the landscape is obscured by fog). Your spyglass sees exactly one unit in every direction.
Each night, you look up at the stars to see how far you've travelled. Looking at the stars reports an ascii symbol like this:
n, s, e, w
corresponding to North, South, East and West, respectively. You always move exactly one unit to the north, south, east or west every night. So you, as explorer will be receiving an endless stream of symbols:
~~.*n~~~~s~~.*s~.**
Your task is to output a 2D map of the world (where ? are unknown parts of the map, north is up, east is right):
?~~~??????
?~~~??????
?~~~.^^.??
?~~.***.~~
~~.*^^*.~~
~~~..~~~~~
~~~~~~~~~~
~~~~~~~~~~

For the sake of simplicity let's assume you start in the bottom left corner of the map. Assume all maps are 8x8.
Here is a simple 3x3 example. Assume the map looks like this:
~.~
~^~
~.~

With the following input: ~#.#n~~^#s
You will get this output:
~??
~^?
~.?

More example inputs and outputs:
input
~#~#n~~~#n~~~#n~~~#n~~~#n~~.#n~~.#n#~~#e#.~~e#.~~e#.~~e#.~~e#~~~e#~~~e#~#~s~~#~s~~#~s~~#~s~~#.s~~#~s~~#~s~##~w~#~~w.#~~w^#~~w.#~~
output
~~~~~~~~
~....~~~
~.????~~
~~????~~
~~????.~
~~????~~
~~?.^.~~
~~~~~~~~

Input:
~#~#e~#~~e~#~~e.#~~e^#~~n.~..n~^~.n~.~~n.~~.n.~~*n~.~.n#.~~w#.~~w#.~~s~*..s..*.s*~.~s.~~~s
Output:
?~~~~~??
?....~??
?.**.~??
?~..~~??
?~~~~~??
?~~..~??
~~~.^.??
~~~~~~??

Welcome to Programming Puzzles & Code Golf! This is a nice first challenge. A couple things are unclear to me though: Must all symbols in the output be space separated? That seems to be the case in the example output but it isn't explicitly stated anywhere. Also, what purpose do the star directions serve? I thought maybe they controlled where on the map the symbols go, but following the examples and starting in the bottom left, that doesn't seem to be the case. Can you elaborate on that?

Output does not have to be space seperated, that's an error on my part. The "#" represents "no observation". They occur whenever you are on the boundary of the map, but could also occur randomly.

Do we assume that input is valid? Meaning, we won't have one observation that says a particular position is a mountain, but a later observation saying it's water?

Your spyglass always reports the correct feature except when it makes "no observation".

I would suggest adding an example where the map is 3x3 to make it easier to understand. Also, add a note that the four symbols you see are in the north, south, east, and west directions in that order. I guessed that from the order of possible movement directions, but it appears to be true according to the examples.

Good idea, I added a 3x3 example and more clarification for movement.

Excellent. As Alex said, this is a great first challenge. I hope to see more from you in the future! :) (FYI, the Sandbox is a great place to get feedback on future challenges.)

I suspect the first example (where the input is ~#~#n~~~#n~~~#n~~~#n~~~#n~~.#n~~.#n#~~#e#.~~e#.~~e#.~~e#.~~e#~~~e#~~~e#~#~s~~#~s~~#~s~~#~s~~#.s~~#~s~~#~s~##~w~#~~w.#~~w^#~~w) is wrong, and the output should have ?? where it says ?.

For first example, you forgot .$~~ at end of input.

You describe the explorer as being on a ship. Does that imply that you will always be on a sea square?

It's a magical air ship ;)

MATL, 68 59 58 bytes
'?'7XJQtX"'s'jh5e"@2#1)t35>)-1l8t_4$h9M)b'nsew'=8M*sJ+XJ+(

Try it online!
Explanation
The map is kept in the bottom of the stack and gradually filled. The current position of the explorer is stored in clipboard J.
The map uses matrix coordinates, so (1,1) is upper left. In addition, column-major linear indexing is used. This means that the elements of the 8×8 matrix representing the map are accessed with a single index as follows:
1  9 17 25 33 41 49 57
2 10 18 26 34 42 50 58
3 11 19 27 35 43 51 59
4 12 20 28 36 44 52 60
5 13 21 29 37 45 53 61
6 14 22 30 38 46 54 62
7 15 23 31 39 47 55 63
8 16 24 32 40 48 56 64

So for example the element (3,2) of the matrix is the element with linear index 11. Movement towards North, South, East and West respectively corresponds to adding -1, 1, 8 or -8 to the linear index. The array [-1 1 8 -8] serves to encode two different things:

The possible displacements of the explorer.
The relative positions of features detected with the spyglass. These positions are relative to the current position of the explorer.

The input string is arranged into chunks of 5 characters. Since the first chunk is missing the first character (that which indicates movement), an initial s is arbitrarily included to make all chunks the same size. To compensate for this, the explorer starts at position 7, not 8, so the initial displacement to the South (add 1 to the linear index) leaves them at position 8.
The chunks of 5 characters are processed in a loop. The first character updates the position, and the remaining 4, if different than #, are written into the adequate entries of the matrix that represents the map.
'?'          % push '?'. The map will initially be filled with this
7XJ          % push 7: initial position of the explorer. Copy into clipboard J
Qt           % add 1. Duplicate
X"           % 8x8 matrix containing '?'
'n'jh        % take input string. Prepend 'n'
5e           % reshape into a 5-column matrix
"            % for each column (chunk)
  @          %   push current chunk
  2#1)       %   split chunk into its first char and an array with the other 4
  t35>       %   duplicate. Logical index of chars different than #
  )          %   apply that index to keep characters different than #
  -1l8t_4$h  %   array [-1 1 8 -8]
  9M         %   push logical index again
  )          %   apply that index to keep only relevant relative positions
  b          %   bubble up in stack: move first char of chunk to top
  'nsew'=    %   logical index that tells if that char is 'n', 's', 'e' or 'w'
  8M         %   push array [-1 1 8 -8] again
  *          %   multiply element-wise. Only one of the four results will be nonzero
  s          %   sum of the array. Gives displacement of the explorer
  J+         %   push position of the explorer and add to compute new position
  XJ         %   update position in clipboard J
  +          %   add updated position of explorer to relative positions of features
  (          %   write those fearttures into the indexed entries of the map
             % end for each. Implicitly display

That's a clever trick ! I will test your program against a few maps to see if it does what I expect.

C, 210 208 207 bytes
This one uses printf and scanf to read input, and a linearized array instead of x,y; so I feel it is sufficiently different from millibyte's.
Golfed:
 main(p){char*i,*j,m[80];for(p=73,i=m+p;p--;m[p]=63);for(p=8;scanf("%5s",i)>0;p+=*j=='n'?8:*j=='s'?-8:*j=='e'?1:-1)for(j=i;j-i<4;j++)if(*j^35)m[p+"qajh"[j-i]-'i']=*j;for(p=72;m[p]=0,p-=8;)printf("%s\n",m+p);}

Somewhat-ungolfed:
main(p){
    char*i,*j,m[80];
    for(p=73,i=m+p;p--;m[p]=63);                   // fill with ?
    for(p=8;scanf("%5s",i)>0;
            p+=*j=='n'?8:*j=='s'?-8:*j=='e'?1:-1)  // read 5-at-a-time
        for(j=i;j-i<4;j++)
            if(*j^35)m[p+"qajh"[j-i]-'i']=*j;      // update map positions
    for(p=72;m[p]=0,p-=8;)printf("%s\n",m+p);      // output line-by-line
}

Representation:
  // board: (vertically reversed when printed)
    0  1  2  3  4  5  6  7
    8  9  10 ...
    16 18 19 ...
    ...
    56 57 58 59 60 61 62 63

  // offsets and offset order, or why "qajh":
    s2      -8       a
  w4  e3  -1 0+1   h i j
    n1      +8       q   <- offset by +'i'

Also, you start at position 8 because this shaves a char or so off the print-loop.

192 bytes

Ruby, 169 147 bytes
Full program. Takes in the input string from STDIN (you probably need to pipe it in from a file to prevent any trailing newlines from messing things up) and outputs the resultant map to STDOUT.
Trimmed a ton by putting all the strings into one and then splitting them later.
m=??*64
d=0
x=56
gets.each_char{|c|d<4?(w=x+(d>2?-1:d>1?1:d<1?-8:d<2?8:0)
m[w]=c if c>?$):x+=c>?v?-1:c<?f?1:c>?q?8:-8
d+=1;d%=5}
puts m.scan /.{8}/

Ungolfed:
m = ?? * 64                 # 64 "?" symbols
                            # y axis counts downwards; 0-7 is top row
d = 0                       # Keep track of which direction we're looking
x = 56                      # Position, bottom left corner (0,7)
gets.each_char do |c|       # For each character from first line of STDIN
    if d < 4                # Looking in a direction
        if    d > 2         # d == 3; looking west
            w = x - 1
        elsif d > 1         # d == 2; looking east
            w = x + 1
        elsif d < 1         # d == 0; looking north
            w = x - 8
        else                # d == 1; looking south
            w = x + 8
        end
        m[w] = c if c > ?$  # Only '#' gets rejected by this step
    else                    # Moving in a direction
        if    c > ?v        # c == 'w'
            x -= 1
        elsif c < ?f        # c == 'e'
            x += 1
        elsif c > ?q        # c == 's'
            x += 8
        else                # c == 'n'
            x -= 8
        end
    end
    d = (d + 1) % 5         # Look in the next direction
end
puts m.scan /.{8}/          # Split map into rows of 8

C, 265 226 224 bytes
a[8][8];x;y;i;main(c){for(;c=getchar(),c+1;y+=(c=='n')-(c=='s'),x+=(c=='e')-(c=='w'))for(i=5;--i;c=getchar())i&&c-35&&(a[x+(i==2)-(i==1)][y-(i==3)+(i==4)]=c);for(y=8;y--;putchar(10))for(x=0;x<8;)putchar((i=a[x++][y])?i:63);}

The map is 8x8, I didn't notice that before. And here is the 265 bytes solution that works for maps with variable dimensions:
a[99][99];c;x;X;y;i;k;p;main(Y){for(;c=getchar(),c+1;y+=(c=='n')-(c=='s'),x+=(c=='e')-(c=='w'))for(i=5;--i;c=getchar())i&&c-35&&(a[k=x+(i==2)-(i==1),X=X<k?k:X,k][p=y-(i==3)+(i==4),Y=Y<p?p:Y,p]=c);for(y=Y+1;y--;putchar(10))for(x=0;x<=X;)putchar((i=a[x++][y])?i:63);}

Shouldn't a[8][8] be sufficient?

@Alexander Vogt - Oh, right! Thank you, that reduces two more bytes.

I really like how you calculate increments/decrements to x and y. Comparing our C code, static int a[8][8] gets you free map initialization, and use of char m[64] gets me great discounts for map output. Really close counts, though

If you reverse e and w in your map representation, then you can use for(x=8;x--;)putchar((i=a[x][y])?i:63) to shave two bytes on output.

Is c=getchar(),c+1 not equivalent to getchar(),c++ or is there some trickery involved?

Fortran, 263 251 247 235 234 216 bytes
1D version (similar to the one by Don Muesli):
#define R read(*,'(a)',advance='no',eor=1)c
#define F(x)R;if(c/='#')a(x+i)=c
program t
character::a(64)='?',c
integer::k(4)=[8,-8,1,-1],i=57
do
F(-8)
F(8)
F(1)
F(-1)
R
i=i+k(index('snew',c))
enddo
1 print'(8a)',a
end

2D version:
#define R read(*,'(a)',advance='no',eor=1)c
#define F(x,y)R;if(c/='#')a(x+m,y+l)=c
#define G(x,y)j=index(x,c);if(j==2)j=-1;y=y+j
program t
character::a(8,8)='?',c
l=8;m=1
do
F(,-1)
F(,1)
F(1,)
F(-1,)
R
G('sn',l)
G('ew',m)
enddo
1 print'(8a)',a
end

To enable free form and pre-processing, the file needs the extension .F90, e.g. explorer.F90. The input is read from STDIN:
echo "~#~#e~#~~e~#~~e.#~~e^#~~n.~..n~^~.n~.~~n.~~.n.~~*n~.~.n#.~~w#.~~w#.~~s~*..s..*.s*~.~s.~~~s" | ./a.out
?~~~~~??
?....~??
?.**.~??
?~..~~??
?~~~~~??
??~..~??
~~~.^.??
~~~~~~??

So does Fortran also have linear indexing?

@DonMuesli No, not really. I'm operating on a 1D array directly. For printing the array of characters I'm using the fact that the array is stored contiguously in memory.

Kotlin, 242 bytes
{val m=Array(8){Array(8){'?'}}
var d=7
var i=0
for(c in it)(mapOf('n' to{d--},'s' to{d++},'w' to{d-=8},'e' to{d+=8},'#' to{i++})[c]?:{m[d%8+listOf(-1,1,0,0)[i%4]][d/8+listOf(0,0,1,-1)[i%4]]=c
i++})()
m.forEach{for(c in it)print(c);println()}}

The newlines can be replaced with semicolons if wished.
Try Here

Lua, 354 bytes (try it online)
Golfed:
n=(...)r={}y=8x=1q="?"for i=1,8 do r[i]={q,q,q,q,q,q,q,q}end for u in n:gsub("#",q):gmatch(".....")do a,b,c,d,e=u:match("(.)(.)(.)(.)(.)")if a~=q then r[y-1][x]=a end if b~=q then r[y+1][x]=b end if c~=q then r[y][x+1]=c end if d~=q then r[y][x-1]=d end y=y+(("n s"):find(e)or 2)-2x=x+(("w e"):find(e)or 2)-2 end for i=1,8 do print(table.concat(r[i]))end

Slightly ungolfed:
n = "~#~#e~#~~e~#~~e.#~~e^#~~n.~..n~^~.n~.~~n.~~.n.~~*n~.~.n#.~~w#.~~w#.~~s~*..s..*.s*~.~s.~~~s"

r={} y=8 x=1 q="?"
for i=1,8 do r[i]={q,q,q,q,q,q,q,q} end
for u in n:gsub("#",q):gmatch(".....") do
  a,b,c,d,e=u:match("(.)(.)(.)(.)(.)")
  if a~=q then r[y-1][x]=a end
  if b~=q then r[y+1][x]=b end
  if c~=q then r[y][x+1]=c end
  if d~=q then r[y][x-1]=d end
  y=y+(("n s"):find(e)or 2)-2
  x=x+(("w e"):find(e)or 2)-2
end
for i=1,8 do print(table.concat(r[i])) end

Can x=x+(("w e"):find(e)or 2)-2 end not be x=x-2+(("w e"):find(e)or 2)end?

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Tic-tac-toe with only crosses as quick as possible
As per Luke's request and Peter Taylor's addition to this challenge.
Introduction
Everyone knows the game tic-tac-toe, but in this challenge, we are going to introduce a little twist. We are only going to use crosses. The first person who places three crosses in a row loses. An interesting fact is that the maximum amount of crosses before someone loses, is equal to 6:
X X -
X - X
- X X

That means that for a 3 x 3 board, the maximum amount is 6. So for N = 3, we need to output 6.
Another example, for N = 4, or a 4 x 4 board:
X X - X
X X - X
- - - -
X X - X

This is an optimal solution, you can see that the maximum amount of crosses is equal to 9. An optimal solution for a 12 x 12 board is:
X - X - X - X X - X X -
X X - X X - - - X X - X
- X - X - X X - - - X X
X - - - X X - X X - X -
- X X - - - X - - - - X
X X - X X - X - X X - -
- - X X - X - X X - X X
X - - - - X - - - X X -
- X - X X - X X - - - X
X X - - - X X - X - X -
X - X X - - - X X - X X
- X X - X X - X - X - X

This results in 74.
The task
Your task is to compute the results as fast as possible. I will run your code on the test case 13. This will be done 5 times and then the average is taken of the run times. That is your final score. The lower, the better.
Test cases
N     Output
1       1
2       4
3       6
4       9
5       16
6       20
7       26
8       36
9       42
10      52
11      64
12      74
13      86
14      100
15      114

More information can be found at https://oeis.org/A181018.
Rules

This is fastest-code, so the fastest submission wins!
You must provide a full program.
Please also provide how I have to run the program. I am not familiar with all programming languages and how they work, so I need a little bit of help here.
Of course, your code needs to compute the correct result for each test case.

Submissions:

feersum (C++11): 28s
Peter Taylor (Java): 14m 31s

Related and related.

Isn't this just a dupe of the second question as as far as I can tell, you've just changed the winning condition?

@muddyfish Altough the challenge itself look the same, I can ensure you that the approach for this challenge is very different from my other challenge.

@muddyfish Relevant meta discussion. "Just changing the winning condition" can be a substantial change for a challenge. While it doesn't make sense to post a [tag:code-golf], [tag:fastest-algorithm] and [tag:fastest-code] for every possible challenge, there are some cases, where exploring a problem from two angles can add a lot of value to the site. I think this is such a case.

Related Math.SE post by our Nathan Merrill.

Can you give the specs of the testing machine? Also, do you plan to allow multithreading? (I would usually prefer not as it just adds tedium).

@feersum The testing machine has a I7 core processor and 8GB ram. I have Windows 8 as OS. Multithreading is not allowed.

Wonderful challenge! (+1)

@Lembik Thank you very much :)

C++11, 28s
This also uses a dynamic programming approach based on rows. It took 28 seconds to run with argument 13 for me. My favorite trick is the next function which uses some bit bashing for finding the lexicographically next row arrangement satisfying a mask and the no-3-in-a-row rule.
Instructions

Install the latest MinGW-w64 with SEH and Posix threads
Compile the program with g++ -std=c++11 -march=native -O3 <filename>.cpp -o <executable name>
Run with <executable name> <n>

#include <vector>
#include <stddef.h>
#include <iostream>
#include <string>

#ifdef _MSC_VER
#include <intrin.h>
#define popcount32 _mm_popcnt_u32
#else
#define popcount32 __builtin_popcount
#endif

using std::vector;

using row = uint32_t;
using xcount = uint8_t;

uint16_t rev16(uint16_t x) { // slow
    static const uint8_t revbyte[] {0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,3,131,67,195,35,163,99,227,19,147,83,211,51,179,115,243,11,139,75,203,43,171,107,235,27,155,91,219,59,187,123,251,7,135,71,199,39,167,103,231,23,151,87,215,55,183,119,247,15,143,79,207,47,175,111,239,31,159,95,223,63,191,127,255};
    return uint16_t(revbyte[x >> 8]) | uint16_t(revbyte[x & 0xFF]) << 8;
}

// returns the next number after r that does not overlap the mask or have three 1's in a row
row next(row r, uint32_t m) {
    m |= r >> 1 & r >> 2;
    uint32_t x = (r | m) + 1;
    uint32_t carry = x & -x;
    return (r | carry) & -carry;
}

template<typename T, typename U> void maxequals(T& m, U v) {
    if (v > m)
        m = v;
}

struct tictac {
    const int n;
    vector<row> rows;
    size_t nonpal, nrows_c;
    vector<int> irow;
    vector<row> revrows;

    tictac(int n) : n(n) { }

    row reverse(row r) {
        return rev16(r) >> (16 - n);
    }

    vector<int> sols_1row() {
        vector<int> v(1 << n);
        for (uint32_t m = 0; !(m >> n); m++) {
            auto m2 = m;
            int n0 = 0;
            int score = 0;
            for (int i = n; i--; m2 >>= 1) {
                if (m2 & 1) {
                    n0 = 0;
                } else {
                    if (++n0 % 3)
                        score++;
                }
            }
            v[m] = score;
        }
        return v;
    }

    void gen_rows() {
        vector<row> pals;
        for (row r = 0; !(r >> n); r = next(r, 0)) {
            row rrev = reverse(r);
            if (r < rrev) {
                rows.push_back(r);
            } else if (r == rrev) {
                pals.push_back(r);
            }
        }
        nonpal = rows.size();
        for (row r : pals) {
            rows.push_back(r);
        }
        nrows_c = rows.size();
        for (int i = 0; i < nonpal; i++) {
            rows.push_back(reverse(rows[i]));
        }
        irow.resize(1 << n);
        for (int i = 0; i < rows.size(); i++) {
            irow[rows[i]] = i;
        }
        revrows.resize(1 << n);
        for (row r = 0; !(r >> n); r++) {
            revrows[r] = reverse(r);
        }
    }

    // find banned locations for 1's given 2 above rows
    uint32_t mask(row a, row b) {
        return ((a & b) | (a >> 1 & b) >> 1 | (a << 1 & b) << 1) /*& ((1 << n) - 1)*/;
    }

    int calc() {
        if (n < 3) {
            return n * n;
        }
        gen_rows();
        int tdim = n < 5 ? n : (n + 3) / 2;
        size_t nrows = rows.size();
        xcount* t = new xcount[2 * nrows * nrows_c]{};
#define tb(nr, i, j) t[nrows * (nrows_c * ((nr) & 1) + (i)) + (j)]

        // find optimal solutions given 2 rows for n x k grids where 3 <= k <= ceil(n/2) + 1

        {
            auto s1 = sols_1row();
            for (int i = 0; i < nrows_c; i++) {
                row a = rows[i];
                for (int j = 0; j < nrows; j++) {
                    row b = rows[j];
                    uint32_t m = mask(b, a) & ~(1 << n);
                    tb(3, i, j) = s1[m] + popcount32(a << 16 | b);
                }
            }
        }
        for (int r = 4; r <= tdim; r++) {
            for (int i = 0; i < nrows_c; i++) {
                row a = rows[i];
                for (int j = 0; j < nrows; j++) {
                    row b = rows[j];
                    bool rev = j >= nrows_c;
                    auto cj = rev ? j - nrows_c : j;
                    uint32_t m = mask(a, b);
                    for (row c = 0; !(c >> n); c = next(c, m)) {
                        row cc = rev ? revrows[c] : c;
                        int count = tb(r - 1, i, j) + popcount32(c);
                        maxequals(tb(r, cj, irow[cc]), count);
                    }
                }
            }
        }
        int ans = 0;
        if (tdim == n) { // small sizes
            for (int i = 0; i < nrows_c; i++) {
                for (int j = 0; j < nrows; j++) {
                    maxequals(ans, tb(n, i, j));
                }
            }
        } else {
            int tdim2 = n + 2 - tdim;
            // get final answer by joining two halves' solutions down the middle
            for (int i = 0; i < nrows_c; i++) {
                int apc = popcount32(rows[i]);
                for (int j = 0; j < nrows; j++) {
                    row b = rows[j];
                    int top = tb(tdim2, i, j);
                    int bottom = j < nrows_c ? tb(tdim, j, i) : tb(tdim, j - nrows_c, i < nonpal ? i + nrows_c : i);
                    maxequals(ans, top + bottom - apc - popcount32(b));
                }
            }
        }
        delete[] t;
        return ans;
    }
};

int main(int argc, char** argv) {
    int n;
    if (argc < 2 || (n = std::stoi(argv[1])) < 0 || n > 16) {
        return 1;
    }
    std::cout << tictac{ n }.calc() << '\n';
    return 0;
}

Java, 14m 31s
This is essentially the program which I posted to OEIS after using it to extend the sequence, so it's a good reference for other people to beat. I've tweaked it to take the board size as the first command-line argument.
public class A181018 {
    public static void main(String[] args) {
        int n = Integer.parseInt(args[0]);
        System.out.println(calc(n));
    }

    private static int calc(int n) {
        if (n < 0) throw new IllegalArgumentException("n");
        if (n < 3) return n * n;

        // Dynamic programming approach: given two rows, we can enumerate the possible third row.
        // sc[i + rows.length * j] is the greatest score achievable with a board ending in rows[i], rows[j].
        int[] rows = buildRows(n);
        byte[] sc = new byte[rows.length * rows.length];
        for (int j = 0, k = 0; j < rows.length; j++) {
            int qsc = Integer.bitCount(rows[j]);
            for (int i = 0; i < rows.length; i++) sc[k++] = (byte)(qsc + Integer.bitCount(rows[i]));
        }

        int max = 0;
        for (int h = 2; h < n; h++) {
            byte[] nsc = new byte[rows.length * rows.length];
            for (int i = 0; i < rows.length; i++) {
                int p = rows[i];
                for (int j = 0; j < rows.length; j++) {
                    int q = rows[j];
                    // The rows which follow p,q cannot intersect with a certain mask.
                    int mask = (p & q) | ((p << 2) & (q << 1)) | ((p >> 2) & (q >> 1));
                    for (int k = 0; k < rows.length; k++) {
                        int r = rows[k];
                        if ((r & mask) != 0) continue;

                        int pqrsc = (sc[i + rows.length * j] & 0xff) + Integer.bitCount(r);
                        int off = j + rows.length * k;
                        if (pqrsc > nsc[off]) nsc[off] = (byte)pqrsc;
                        if (pqrsc > max) max = pqrsc;
                    }
                }
            }

            sc = nsc;
        }

        return max;
    }

    private static int[] buildRows(int n) {
        // Array length is a tribonacci number.
        int c = 1;
        for (int a = 0, b = 1, i = 0; i < n; i++) c = a + (a = b) + (b = c);

        int[] rows = new int[c];
        int i = 0, j = 1, val;
        while ((val = rows[i]) < (1 << (n - 1))) {
            if (val > 0) rows[j++] = val * 2;
            if ((val & 3) != 3) rows[j++] = val * 2 + 1;
            i++;
        }

        return rows;
    }
}

Save to A181018.java; compile as javac A181018.java; run as java A181018 13. On my computer it takes about 20 minutes to execute for this input. It would probably be worth parallelising it.

How long have you been running it? You're still adding terms to the OEIS, I see.

@mbomb007, I'm not still running it. As you can tell from the OEIS dates, it took several days to run for n=16; I extrapolated that it would take about a month for n=17, so I didn't try to run it for that. Memory usage was also becoming a major nuisance. (PS I'm currently using 2 of my 4 cores for a non-PPCG programming challenge: http://azspcs.com/Contest/Tetrahedra/Standings )

matlab, cplex, baseline?
This code is modified from the MATLAB code provided on A181018
how to run?

download cplex and yalmip folder, then place them in matlab toolbox folder
matlab ui, HOME->Set Path->Add Folder With Subfolders, add the 2 folders and their subfolders to path
run main.m

% A181018.m
function v = A181018(n)
%
Grid = [1:n]' * ones(1, n) + n*ones(n, 1)*[0:n-1];
f = -ones(n^2, 1);
A = sparse(4*(n-2)*(n-1), n^2);
count = 0;
for i =1:n
    for j = 1:n-2
        count = count+1;
        A(count, [Grid(i, j), Grid(i, j+1), Grid(i, j+2)]) = 1;
    end
end
for i = 1:n-2
    for j = 1:n
        count = count+1;
        A(count, [Grid(i, j), Grid(i+1, j), Grid(i+2, j)]) = 1;
    end
end
for i = 1:n-2
    for j = 1:n-2
        count = count+2;
        A(count-1, [Grid(i, j+2), Grid(i+1, j+1), Grid(i+2, j)]) = 1;
        A(count, [Grid(i, j), Grid(i+1, j+1), Grid(i+2, j+2)]) = 1;
    end
end
b = 2*ones(4*(n-2)*(n-1), 1);

options = cplexoptimset;
options.MaxTime = 120;
options.Algorithm = 'auto';
% [x, v, exitflag, output] = cplexbilp(f, A, b,options);
[~, v, ~, ~] = cplexbilp(f, A, b,options);  % Solve binary integer programming problems.
v=-v;
end

% main.m
clear all;close all;clc;
tic
for n = 1:11
    A(n) = A181018(n);
end
A % Robert Israel, Jan 14 2016
toc

Reference
See Getting Started with CPLEX for MATLAB for a quick start.
cplexbilp - IBM Documentation

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Write a program that converts unary input to binary, decimal, and hexadecimal equivalents
Write a program that accepts input (through stdin) as a string of unary numbers delimited by spaces, and prints the equivalent string of numbers in binary, decimal, and hexadecimal. These unary symbols are allowed:

stroke, '/' or '\'
Decimal 1
ASCII 'I'
ASCII '-'

Your program does not have to support all symbols, but it must use at least one. Zero should be represented as simply two spaces (the lack of unary symbols)
e.g. if the input is
Test Cases:
Input:
1 11 111 1111111111

Example Output:
1 2 3 10

1 2 3 A

1 10 11 1010

Output must be to standard output. If no standard output is available, use whatever output logging stream is available.
It does not have to print the converted strings in any particular order; it must print the binary, hexadecimal, and decimal string equivalents, but it does not have to print in that specific order.
This is code-golf, so shortest program wins!

Hi Mason, welcome to PPCG. Your challenge looks good over all. A few questions: Is the number 0 in unary an allowable input? Do solutions need to accept all of the specified symbols as inputs, or the one of their choice? How flexible is the output format? Can output bases be in any order? Do they need to space + newline separated?

@isaacg 0 in unary is simply the lack of any unary symbols; a null value. The representation for zero (for this program) should be an extra space. Symbols are of the programmer's choice. Output format is simply print the string of numbers in one base, then  another, then the last. Only spaces are delimeters.

Can it be a function instead of a full program?

Does it have to accept input through STDIN?

Please specify all rules in the challenge, comments are not guarenteed to stick around forever and are therefore not a suitable place to do that. Also you should add some testcases, especially for the edge cases.

Hey Mason, I'm voting to close this challenge as "Unclear what you're asking" until you add some more details, and some test cases. Right now, it's not really sure what we're supposed to do with extra spaces and what kind of inputs we will have to handle. If you make that clear, I will happily retract my close vote.

Also, don't accept an answer until maybe a week after posting.  It will just change too much as people post more answers.

I've edited an obvious error in the example output, but why is the symbol 0  being used in the input?  It's not listed as one of the "allowable" symbols. I would either be prescriptive and allow one particular symbol (plus space) in the input, or allow us to use absolutely any symbol (within the printable ASCII set.)

Also, is it necessary to print all the outputs of one base before the others? Or can all three outputs for each number be given before moving onto the next? To put it another way, is the following acceptable? 1 1 1 2 2 10 3 3 11 10 A 1010

Python 3, 68 bytes
i=input().split(" ")
for f in[bin,str,hex]:print(*map(f,map(len,i)))

Outputs like such:
0b1 0b10 0b11
1 2 3
0x1 0x2 0x3

If the 0b and 0x are not allowed then that can be solved at the cost of 17 extra bytes by changing the second line to:
for f in[bin,str,hex]:print(*(f(len(n))[2*(f!=str):]for n in i))

Or using this version (minified version of My Ham DJ's answer):
i=input().split(" ")
for b in"dxb":print(*("{:{}}".format(len(x),b)for x in i))

This is invalid, because it drops 0 in unary (2 consecutive spaces)

@isaacg Should be solved now.

@orlp In 111<space><space>11, your code counts the last number ("11") as a literal 11 in decimal. It should instead be 2 (since its length is 2). I recommend using regex for this (if you can).

@R.Kap No it doesn't? I have no clue what you're talking about. Make sure you're running in Python 3, not Python 2.

@orlp Well, running "111<2 spaces>11" in Python 3.5.1 returns the output (4 0 3) (4 0 3) (100 0 11)

@R.Kap My program doesn't use quotes around the input, you entered input with quotes. "111 is 4 characters, 11" is 3.

@orlp Yeah, you were right. I did it without quotes, and it works like it should. You should clarify that in your post.

@R.Kap No I shouldn't. I use the exact same input format as described in the question - no further clarification needed.

JavaScript (ES6), 76 bytes
s=>[2,10,16].map(b=>s.split` `.map(n=>n.length.toString(b)).join` `).join`
`

Pyth, 12 bytes
mjLld[2T16)c

Try it here!
Output is a list of lists with each sublist containing the binary, decimal and hex representation of the corrosponding input number as a list of digits.

This is invalid, because it drops 0 in unary (2 consecutive spaces)

@isaacg As far as the original post is concerned this is valid. Right now it's hard to tell without digging through the comments. I think we should instead focus on making the post better, and then I'll fix or delete my answer once the spec is clear.

Python 3.5, 61 bytes:
(+17 since zeroes count as an extra space)
lambda g:[(bin(len(f)),hex(len(f)),len(f))for f in g.split(" ")]

Pretty much speaks for itself. It is a lambda function, so you must provide input. Then, the function takes "g", which is your input, and outputs the correct values. If, for instance, the input is "111 11", output is as follows:

[('0b11', '0x3', 3), ('0b10', '0x2', 2)]

I honestly think that including the 0b and 0x is a better choice than removing them, since then this way, you can differentiate between those numbers that are hexadecimal, those which are binary, and those which are just plain denary (decimal).
And now, if the input is, for instance, "011", it counts the 0 as an extra space, and as a result outputs [('0b10', '0x2', 2)].
EDIT: AS per @isaacg's input, I have now fixed by program, and it should work as it should. The code now has the ability for extra spaces between ones to become zeroes. Now, if the input is, for instance, 11<space><space>1, the output is [('0b1', '0x1', 1), ('0b0', '0x0', '0'), ('0b10', '0x2', 2)] counting the extra space as a '0 '.

This is invalid, because it drops 0 in unary (2 consecutive spaces)

@isaacg I did not realize that 0 counts as an extra space. That's fixed now.

I was talking about the other way around - 1<space><space>11 should become 1 0 2 in decimal

@isaacg How is that? Are you saying each extra space between characters counts as a zero?

@isaacg Okay, I get it now. Edit now in progress...

@isaacg What do you think now?

Looks like it works to me.

Pyke, 14 bytes
dcmlD
mb2Rmb16

Try it here

Ruby, 89 58 bytes
Anonymous function; Returns a list of lists where each sublist contains binary, decimal, and hex representations, and accounts for extra spaces.
@manatwork is a Ruby wizard
->s{[2,10,16].map{|b|s.split(/ /).map{|n|n.size.to_s(b)}}}

Without the need to check for the spare spaces meaning 0, it drops to 53 bytes:
->s{[2,10,16].map{|b|s.split.map{|n|n.size.to_s(b)}}}

Why not go with your second code changing .split → .split(/ /)? Would handle 0 and would still be shorter than your first code.

Java, 136 bytes
s->{String[]l=s.split(" ",-1);s="";for(int i=2;i<17;i+=i<3?8:6){for(String n:l)s+=Integer.toString(n.length(),i)+" ";s+="\n";}return s;}

Try it online!
This is an anonymous function (lambda) that takes a String and returns a String representing the output as described.
Full explanation will come later today.

Full program with STDIN coming


text:
Write a program to fabricate elaborate acronyms
"Hey Bob, I need a new acronym. Something better than 'Automated Support System'. I need you to fabricate me an acronym!"
"Sure thing Joe! I'd love to fabricate an elaborate way to renovate, and not replicate something that you can tolerate."
"Alright Bob, make sure it can separate itself from the old acronym we need to terminate! It'll be great, or at least, that's just what I speculate."
Okay, apologies. I had a lot of fun writing that. Here's the challenge:
You are now Bob. You need to write a program that accepts a string of words from standard input:

This is an example string of words

The character encoding must be ASCII. Delimeters can be spaces and newlines only. From this string of words, it forms an acronym, which it shoots straight to standard output (or equivalent output log):

T.I.A.E.S.O.W.

The program must read the words, case-insensitive, and output the first letter of each word, capitalized, followed by a period.
This is code-golf. Shortest program wins. Go nuts!

This differs from the challenge marked as duplicate in that here there no stop words and the acronym includes dots. So I think this is not a duplicate

@LuisMendo I think almost all the answers could just have the word check parts removed, and then instead of flattening the list of characters have them be joined by periods. To me, those feel like trivial modification.

Pyth, 11 bytes
sm+hrd1\.cz

Straight forward split, append dots, uppercase and join.

Great use of Pyth's "tokenizer" (?)! This is the shortest by far.

Jelly, 8 bytes
ŒtḟŒlp”.

Explanation:
ŒtḟŒlp”.
Œt       # Convert the string to Title Case (lowercases then uppercase beginnings of word)
   Œl    # And on the other side, convert the string to lowercase
  ḟ      # filter: remove the elements from the right side (lowercase) from the left side (Title Cased). Only leaves the initials
     p”. # Cartesian product with a dot.

Golfed down under the Pyth one, thanks Dennis and Fry!

Retina, 23 bytes
Try it online!
(\S)\S+(\s|$)
$1.
T`l`L

I think (.)\S+\s? is sufficient for the first stage.

Dangerous, but I like it.

Not the shortest, but +1 for providing online example.

Python 2, 54 bytes
Pretty sure this can be optimized, but eh.
First golfing attempt! Woot!
lambda s:"".join([b[0].upper()+"."for b in s.split()])

Thanks to DenkerAffe for shaving off a whopping 22 bytes!

split uses whtespaces on default, so you dont need to pass an argument to it. Also you should  use list comprehension instead of a whole for loop which allows you to get everything in one line, so you can use a lambda: lambda s:"".join([b[0].upper()+"."for b in s.split()]) Didnt test it (pretty sure it works tho), but you should get the idea.

And some basic golfing techniques: for b in s.split(" "): instead of l=s.split(" ") and then for b in l

Sorry, guys. I wasn't on for a while. Thanks for the tips!

Pyth, 12 bytes
ss*hMcrz1d\.

ss*hMcrz1d\.
       z     # Input
      r 1    # Uppercase
     c   d   # Split by d (d=space)
   hM        # Map, tahe the "h"ead.
  *     \.   # Product with dot
ss           # Join twice

Pylongolf2 (beta7+), 14 bytes
c| l1╨3♀~

Unfortunately I Pylongolf2 can't put a character between
all of the items in the stack so the output has no dots in it.
c          read input
 |         split by space (note the space after |)
   l1      take the first characters.
     ╨3    convert to uppercase
       ♀   pop the array
        ~  print everything


text:
Output your used source code in reverse
I'm new to this stackexchange, but I must say I am very impressed by the knowledge of some here, and the original codegolf answers for some questions.
I'm not even sure if the following is possible, since my programming language knowledge is very limited, but it sounds like a pretty interesting challenge:
Goal:
Output all the code you've used in reverse.
Rules:

Your code should contain Hello, World! (may be placed as comment)
You are not allowed to read the actual code-file itself
Nor are you allowed to read any generated compiler-code
Or a pre-prepared reversed.txt or something..

Like I said, I'm not sure if it's possible.
As an example, let's say you have the following code (Java):
class Main{public static void main(String[]a){System.out.print("Hello, World!");}}

Then the output of the program should be:
}};)"!dlroW ,olleH")tnirp.tuo.metsyS{)a][gnirtS(niam diov citats cilpub{naiM ssalc

Some sub-rules:

Any language, any OS, any API/tool
Any comments made should also be printed in reverse, so keep that in mind if you place Hello, World! in a comment

PS: I know the 'question' Print your code backwards - reverse quine exists, but because of that I added the first rule: Your code should contain Hello, World! as is (so this answer in H9+ that uses the reversed !dlorw olleH isn't allowed).
I think I don't have to explain the rules of codegolf here..

Welcome to PPCG! Unfortunately, I don't think the addition of requiring the additional string Hello, World! in the code makes this sufficiently different from or more interesting than the existing question. There are many solutions from the old challenge, where the string can simply be inserted in one or two places without affecting the rest of the program at all. I hope you stick around and try your hand at writing further challenges though. You can also use the sandbox to get feedback on your challenge ideas before posting them on main.

@MartinBüttner Hi Martin (you look familiar from the Puzzling stackexchange). Thanks for the link to the sandbox and the warm welcome, next time I will ask there first. Too be honest, I had written the entire question and then changed the title a bit. That was when I realized there was already a similar question. I decided to post it anyway with the rule I had already planned to make it slightly different, but you are indeed correct that they are almost the same, so I understand the Duplicated mark.