# 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 , so the shortest answer in bytes wins.

• Are URL shorteners allowed? – isaacg Mar 30 '16 at 15:01
• Is it allowed to run JavaScript in the default browser to open a window? – Mwr247 Mar 30 '16 at 15:30
• @Mwr247 No, it is not. – noɥʇʎԀʎzɐɹƆ Mar 30 '16 at 15:49
• You should add clarifications/restrictions to the question itself, since comments are not guaranteed to stick around forever. – user45941 Mar 30 '16 at 16:01
• 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 ;) – Mwr247 Mar 30 '16 at 17:16

## GNU Emacs, 2927 14 bytes

(eww"ppcg.ga")


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? – AdmBorkBork Mar 30 '16 at 15:55
• @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. – coredump Mar 30 '16 at 16:47
• You shouldn't need the //, I don't think. (I don't use emacs, but it's generally accepted without the //) – Addison Crump Mar 30 '16 at 19:03
• ಠ_ಠ PPCG is not something to "ewwww" that, that's code review :P – Downgoat Apr 12 '16 at 2:01
• Apparently there is ppcg.ga. It may save you a byte. – user48538 Apr 29 '16 at 16:15

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

• As the owner of ppcg.lol, I approve of this message. – Quill Mar 30 '16 at 16:13
• This conversation has been moved to chat. – Dennis Mar 30 '16 at 17:40
• 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? – Addison Crump Mar 30 '16 at 19:01
• @Quill I meant how do we know you won't Rick roll us all at some future point? – PyRulez Mar 30 '16 at 23:55
• @Quill that depends on how much you like Rick... – TMH Apr 1 '16 at 15:35

# 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. – user45941 Mar 30 '16 at 15:07
• You can use start www.ppcg.lol instead to implicitly have Windows parse it as HTTP. Works in both CMD and PowerShell. – AdmBorkBork Mar 30 '16 at 15:37
• Why do you need the www.? – Blender Mar 30 '16 at 20:26
• @Blender Because otherwise it tries to find a local program called pccg with the .lol file extension and run it. – Morgan Thrapp Mar 30 '16 at 20:27
• @PyRulez It's not a URL shortener, technically. Quill bought that domain a while back and set up a DNS redirect. – user45941 Mar 31 '16 at 6:21

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

• psst you can use www.ppcg.ga now – Milo Apr 3 '16 at 2:49
• @Milo Thanks. I think other people can hear you. – Matt Apr 3 '16 at 6:35
• ppcg.ga not working – anukul Apr 3 '16 at 13:16
• Hmm. Still works for me and I will presume milo. Perhaps it is new and dns has not fully propogated – Matt Apr 3 '16 at 14:44

# Terminal (OSX), 2018 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 Mar 30 '16 at 15:17
• @Skyler Is this incorrect then? ss64.com/bash/open.html – Mwr247 Mar 30 '16 at 15:19
• 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. – Skyler Mar 30 '16 at 15:21
• You can get rid of //. – Addison Crump Mar 30 '16 at 18:50
• You can save another byte: open http:ppcg.ga – DarkDust Apr 2 '16 at 13:52

# 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. – noɥʇʎԀʎzɐɹƆ Mar 30 '16 at 15:50
• @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? – Suever Mar 30 '16 at 15:53
• Do you need the www.? – Addison Crump Mar 30 '16 at 19:02
• @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! – Suever Mar 30 '16 at 19:07
• @CoolestVeto So I dug a little more and it looks like the www is unnecessary only on OS X – Suever Mar 30 '16 at 21:10

# AutoHotKey, 16 bytes

Run www.ppcg.lol

• Unfortunately, not everybody has *shudder* Google Chrome *shudder* set as their default browser (or installed at all!). – wizzwizz4 Mar 30 '16 at 18:23
• Not everyone has AHK either...both facts are very shudder worthy – Michelfrancis Bustillos Mar 30 '16 at 18:23
• I was shuddering because I had to type... never mind. – wizzwizz4 Mar 30 '16 at 18:26
• The challenge spec requires opening PPCG in the default browser, which may or may not be Chrome. – Dennis Mar 30 '16 at 18:40
• You don't need the comma – Engineer Toast Mar 30 '16 at 19:31

# Python, 52484745 44 bytes

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. – Skyler Mar 30 '16 at 15:27
• You don't need //. – Addison Crump Mar 30 '16 at 19:06
• Thanks! I wonder why that works? – Skyler Mar 30 '16 at 19:10
• You can also do this with just command line options python -m webbrowser -t http:ppcg.lol which I think counts as 30 chars – gnibbler Mar 31 '16 at 6:24
• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:48

# 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 Mar 30 '16 at 17:47
• @digital_trauma interesting, it didn't for me. It looked for www.ppcg.lol on the file system. Ubuntu 15.10. – Ogaday Mar 30 '16 at 18:29
• Weird. Ubuntu 14.04 for me. xdg-utils 1.0. – Digital Trauma Mar 30 '16 at 18:37
• You shouldn't need the //. – Addison Crump Mar 30 '16 at 19:03
• @CoolestVeto Correct. xdg-open http:ppcg.lol also works for me. – Digital Trauma Mar 30 '16 at 20:18

# Java 7, 118 115 bytes

class P{public static void main(String[]a)throws Exception{java.awt.Desktop.getDesktop().browse(new java.net.URI("http://ppcg.lol"));}}


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:ppcg.ga"));
}
}


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 – user45941 Mar 30 '16 at 16:34
• @Mego I could do that, but then it would be Java 8. This is a Java 7 answer. But thanks for the tip! – HyperNeutrino Mar 30 '16 at 17:11
• Replace "http://ppcg.lol" with "http:ppcg.lol" – Addison Crump Mar 30 '16 at 18:59
• code-golf specifies that functions are sufficient, you do not have to write a full program. So void f(){ .... } would be enough. – flawr Mar 30 '16 at 19:52
• Your program in more readable format is missing a closing parenthesis – Nzall Mar 30 '16 at 22:28

# Pylongolf, 11 bytes (Non-Competing)

"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? – wizzwizz4 Mar 30 '16 at 18:09
• And did you just add the changes that allowed this to work? – Rɪᴋᴇʀ Mar 30 '16 at 18:09
• @wizzwizz4 As an address. Yes, so this does not compete with others, just for fun. – user47018 Mar 30 '16 at 18:23
• If I were you, I would edit "(Non-competing)" into the title, so people don't downvote. – wizzwizz4 Mar 30 '16 at 18:24
• @wizzwizz4 done. – Rɪᴋᴇʀ Mar 31 '16 at 19:57

# 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 //. – Addison Crump Mar 30 '16 at 19:04
• Isn't it supposed to be java.net? – Ryan Mar 31 '16 at 14:04
• cant you replace interface with class? – MCMastery Mar 31 '16 at 15:24
• @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. – HyperNeutrino Mar 31 '16 at 19:32
• @Ryan Whoops. Fail. Yes, you're right. Thanks! – HyperNeutrino Mar 31 '16 at 19:34

# JavaScript, 34 bytes

require('open')('http://ppcg.lol')


Uses Node.js

• Do you need //? – Addison Crump Mar 30 '16 at 19:04
• If node.js supports ES6: requireopenhttp://ppcg.lol; (added ; to avoid tripping the formatting) – Ismael Miguel Mar 31 '16 at 8:17
• Alternatively, does it require a protocol? eg require('open')('//ppcg.lol') to save 5 bytes – Martijn Mar 31 '16 at 11:56
• @Martijn Shh... – wizzwizz4 Mar 31 '16 at 15:36
• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:48

# Racket, 41 40 bytes

(require net/sendurl)(send-url"ppcg.ga")

• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:49
• Thanks for commenting. I'll update my answer in front of a computer later today. :) – Winny Jul 26 '17 at 19:00

# 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 Apr 11 '16 at 0:08
• @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? – Digital Trauma Apr 14 '16 at 5:32
• 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 Apr 14 '16 at 10:15
• @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 – Digital Trauma Apr 14 '16 at 10:32
• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:49

# Mathematica, 28 bytes

SystemOpen@"http://ppcg.lol"

• That would be 16 bytes in Mthmtca. – Michael Stern Mar 30 '16 at 18:40
• Do you need //? – Addison Crump Mar 30 '16 at 19:04
• @CoolestVeto I think I do. – Martin Ender Mar 30 '16 at 19:05
• @MichaelStern Is that a thing? I want. – Mario Carneiro Mar 31 '16 at 12:49
• @MarioCarneiro A development version can be found at github.com/LegionMammal978/Mthmtca I don't have the system to make it work, but I'm counting on future releases being platform-agnostic. – Michael Stern Mar 31 '16 at 12:52

# 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. – user45941 Mar 30 '16 at 19:40
• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:49

# 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")
}
}
}

• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:49

# 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 – Izkata Apr 1 '16 at 20:02
• now with shorter url.( – sqlab Apr 13 '16 at 11:53

# Perl 5, 66 57 bytes

Should work everywhere, but needs that import :(

8 bytes saved with @msh210 comment.

use Browser::Open open_browser;open_browser"http:ppcg.ga"


Also, for funsies :

### Perl 5 (Windows), 34 bytes

system "start http://www.ppcg.ga"


### Perl 5 (Unix), 31 bytes

system "xdg-open http:ppcg.ga"

• 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 Apr 1 '16 at 21:40
• @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 ! – Paul Picard Apr 3 '16 at 8:46
• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:49
• Edit done. Thank you for keeping old answers up to date :) – Paul Picard Aug 23 '17 at 14:02

# Common Lisp, 31 bytes

(ext:shell "open http:ppcg.ga")


# RFO-BASIC, 22 bytes

BROWSE "http:ppcg.lol"


• Alright. I just figured most people wouldn't know about this "dialect" of BASIC. – TickTock Apr 1 '16 at 16:07
• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. Also, couldn't the space between BROWSE and " be removed, saving another byte? – MD XF Jul 26 '17 at 3:50

# 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".

• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:50
• @MDXF Thank you for that tip. While it is nice to save a byte, I won't change the score since it doesn't feel fair. – Ismael Miguel Jul 26 '17 at 13:45

# C#, 33 bytes

Process.Start("http://ppcg.lol");


Opens the default browser to the web address

• Nope... Replace \\ via //. – Qwertiy Mar 31 '16 at 1:16
• not a c# program, just a single line – BryanJ Apr 1 '16 at 13:31
• Also this needs the System.Diagnostics namespace to be added in or Process to be fully qualified to work. – TheLethalCoder Apr 1 '16 at 15:25
• This is not a c# program. – Vahid Amiri Apr 3 '16 at 14:36
• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:50

# 05AB1E, 16 bytes (non-competing)

Non-competing, since the features used here postdate the challenge. 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 Mar 31 '16 at 8:57
• @sqlab 05AB1E uses the CP1252 encoding. – Adnan Mar 31 '16 at 9:01

# 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. – Virtual Anomaly Apr 12 '16 at 12:26
• ppcg.lol has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:50

# Factor, 3836 26 bytes

[ "http:ppcg.ga" 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 //. – Addison Crump Mar 30 '16 at 19:16
• @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 – cat Mar 30 '16 at 19:22
• @CoolestVeto Factor's like Forth -- highly whitespace dependent – cat Mar 30 '16 at 19:24
• Duplicate of this. Simply wrapping another answer in a system/fork/whatever call is a trivial modification. – user45941 Mar 30 '16 at 19:35
• @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...") – cat Mar 30 '16 at 19:44

# 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. – user45941 Apr 2 '16 at 2:14
• ppgc.ga is working now. – Tim Apr 2 '16 at 20:35
• gfa1.tk has been unregistered, invalidating this answer :I However, I just registered ppcg.ga, so you can use that instead, saving a byte anyway. – MD XF Jul 26 '17 at 3:52

# 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')


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?)

# Ruby, 2220 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 – Daniel Evans Mar 31 '16 at 7:31
• @DanielEvans Great, thanks. That saves 2 bytes. – Rɪᴋᴇʀ Mar 31 '16 at 15:18
• "'open' is not recognized as an internal or external command, operable program or batch file." – Dewi Morgan Apr 1 '16 at 18:07
• @DewiMorgan OS X only. – Rɪᴋᴇʀ Apr 1 '16 at 22:35