text:
Loading Forever... Windows style
Make a Windows style Loading bar by the following instructions.
(notice that this is different than Loading... Forever)
Your output should start by [....      ].
Every tick, you should wait 100 ms, then move each dots by one character right. if the dot is on the tenth character, move it to the first. Notice that you should clear the screen before outputting again. The output is ordered as the following:
[....      ]
[ ....     ]
[  ....    ]
[   ....   ]
[    ....  ]
[     .... ]
[      ....]
[.      ...]
[..      ..]
[...      .]

..Then it loops forever.
Rules

This is code-golf, so the shortest answer wins I doubt I would even accept a winning answer tho
Please provide a gif file of the loading bar in action if possible.

Can we output, say, twenty newlines before each output to 'clear' the screen?

@Okx Yes, if your language has no other way of clearing the screen.

How much error can the delay be?(e.g. +- 0.5 seconds) I'd suggest 250 milliseconds error....

Can I suggest not including the fixed time delay on future challenges? I find it's appeared on a lot of recent challenges, and each time I write the same ungolfable boilerplate to make the system wait n milleseconds.

Is the use of \r allowed, instead of literally clearing the screen?

V, 17 16 15 bytes
i[´.¶ ]<esc>ògó$X|p

<esc> is 0x1b.
And the hexdump:
00000000: 695b b42e b620 5d1b f267 f324 587c 70    i[... ]..g.$X|p

Explanation
i                       " Insert
[                       " a [
´.                      " 4 .s
¶<space>                " 6 spaces
]<esc>                  " and a ]. Then return to normal mode
ò                       " Recursively do:
 gó                     "  Sleep for 100 milliseconds
 $                      "  Go to the ]
 X                      "  Delete the character to the left of the ]
 |                      "  Go to the [
 p                      "  And paste the deleted character right after the [
                        " Implicit ending ò

How to test in Vim?

@Phoenix i....      <esc>qq:sl 100m<CR>$X|P@qq@q should work (<esc> is obviously the escape key and <CR> is a linefeed) (there are 6 spaces after the 4 dots)

Glad to see the gó function being useful. Nice answer BTW :)

CSS/HTML, 202 190 186 + 45 = 247 235 231 bytes

pre{position:relative}x{position:absolute;display:inline-block;width:10ch;height:1em;overflow:hidden}x>x{width:14ch;left:-10ch;animation:1s steps(10,end)infinite l}@keyframes l{to{left:0

[<x><x>....      ....</x></x>          ]

Edit: Saved 12 14 bytes thanks to @Luke.

Can't you save 6 bytes by renaming the animation to something like b?

@Luke I can't believe I forgot to do that...

You can save 2 more bytes by dropping the ch at the end; 0 doesn't need a unit.

@Luke Indeed, nor do I need the }s.

How about changing <x> to  (and in the CSS as well: x becomes span and x>x becomes span>*)? That saves the display:inline-block;, but costs only 15 bytes. So a total of 6B are saved.

@Luke I don't care about the display but I do want to avoid repeating the position:absolute;.

PowerShell, 67 66 Bytes
for($s='.'*4+' '*6;$s=-join($s[,9+0..8])){cls;"[$s]";sleep -m 100}

-1 by using shortened constructor thanks to Beatcracker
replaces the string with a copy of the string where the last char is put in front of the remaining chars, clears the screen, prints it, and then sleeps for 100 ms.
saved a lot of bytes by using the for loop constructor rather than wrap the logic inside the string.

+1 for the for loop trick and making me re-read about_Join.

P.S. You can golf one more byte using $s='.'*4+' '*6.

@beatcracker thanks for that - updated :)

The script does not start by [....      ]. You can fix it without penalty: for($s='.'*4+' '*6){cls;"[$s]";$s=-join($s[,9+0..8]);sleep -m 100}

Python 3, 99 93 85 83+2 (-u flag) bytes
-12 bytes thanks to ovs
-2 bytes thanks to totallyhuman

import time
s=4*'.'+6*' '
while 1:print(end='\r[%s]'%s);time.sleep(.1);s=s[9]+s[:9]

Try it online!

Why do you have flush=True? It works without for me

@L3viathan because my (ubuntu) terminal wasn't flushing. This flushing behaviour is OS dependent =/

Save some bytes with print(end='\r[%s]'%s,flush=1)

You can remove flush entirely by using the -u command line flag. Related SO question

You can also save some bytes with s[9]+s[:9].

By meta consensus, the -u option is considered a different programming language and hereby doesn't count to more bytes

Windows batch , 201 181 bytes
Turns out using the old-school method actually saves bytes!
@for %%p in ("....      " " ....     " "  ....    " "   ....   " "    ....  " "     .... " "      ...." ".      ..." "..      .." "...      .")do @echo [%%~p]&timeout 0 >nul&cls
@%0

Note:
get-screenrecorder.level
- low grade

get-gpu.level
- horrible

if get-screenrecorder.level == low grade || get-gpu.level == horrible {
     say("GIF may not be accurate");
}

Please note that my GIF recorder skipped a few frames, making the loading bar jumps :(

Rather than calculating the number of dots, if you just kept a variable with the dots and spaces and performed string manipulation on it you could probably get this down to 100 bytes.

I would try work on this, thanks for your tips :)!

timeout/t 0 >nul instead of ping 1.1 -n 1 -w 100>nul will be within the 100ms +/- 250ms timing requirement (should be around 25 - 100ms normally) so can save a few bytes there (https://ss64.com/nt/timeout.html)

Also removing the @echo off and replacing the do with  do @(echo %%~p&timeout/t 0 >nul&cls) will also work and should save 11 characters (200 bytes on my computer)

Mathematica, 67 77 Bytes
+10 Bytes as I forgot the square brackets.
Animate["["<>"....      "~StringRotateRight~n<>"]",{n,1,10,1},RefreshRate->10]

Really, Mathematica has a built-in Animate? :|

Yup, it will animate just about anything over a given variable. :)

This doesn't seem to include the rectangular brackets that most other answers do.

Oh rats, didn't look closely enough. Ok fixed.

C (gcc), 126 125 124 123 122 121 119 118 117 114 115 bytes
This one uses a bitmask to keep track of where the dots are.
I had to add another byte as I was only outputting 5 spaces before.
m=30;f(i){usleep(3<<15);system("clear");for(i=1;i<1920;i*=2)putchar(i^1?i&m?46:32:91);m+=m&512?m+1:m;f(puts("]"));}

Try it online!

WHY is your command prompt font Comic Sans MS?!?!?!

Why has no one asked why it's pretending to be a Windows command prompt?

Javascript (ES6), 86 bytes

setInterval('with(console)clear(),log(`[${x=x[9]+x.slice(0,9)}]`)',100,x='...      .')

+1 for with. Always +1 for with!

@Shaggy https://codegolf.stackexchange.com/questions/118402/tell-me-my-screen-resolution/118410#118410 #SelfPromotion :p

JavaScript (ES6) + HTML, 104 85 83 bytes
f=(s="....      ")=>setTimeout(f,100,s[9]+s.slice(0,9),o.value=`[${s}]`)
<input id=o

Saved 2 bytes thanks to Johan's suggestion that I use an input instead of a pre.

Try It
Requires a closing > on the input tag in order to function in a Snippet.

(f=(s="....      ")=>setTimeout(f,100,s[9]+s.slice(0,9),o.value=`[${s}]`))()
<input id=o>

Shouldn't there be 10 characters between the []s?

You're right, @Neil; there are 6 spaces - if I'm going to count things by eye, the least I could do is wear my glasses!

Can't you use an <input> instead of
and then value instead of innerText?

Good call, @JohanKarlsson; that saves 2 bytes.

Hey! This is the same byte count: s='....      ';setInterval(f=>{o.value='[${s=s[9]+s.slice(0,9)}]'},100);<input id=o, maybe someone can improve it (replace quotation mark with `)

Noodel, 16 15 14 13 bytes

    [ CỤ‘Ṁ~ððÐ]ʠḷẸḍt

    ]ʠ[Ð.×4¤×6⁺ḷẸḍt

    ]ʠ⁶¤⁴.ȧ[ėÐḷẸḍt

Try it:)

How it works
]ʠ⁶¤⁴.ȧ[ėÐḷẸḍt

]ʠ⁶¤⁴.ȧ[ėÐ     # Set up for the animation.
]              # Pushes the literal string "]" onto the stack.
 ʠ             # Move the top of the stack down by one such that the "]" will remain on top.
  ⁶¤           # Pushes the string "¤" six times onto the stack where "¤" represents a space.
    ⁴.         # Pushes the string "." four times onto the stack.
      ȧ        # Take everything on the stack and create an array.
       [       # Pushes on the string literal "[".
        ė      # Take what is on the top of the stack and place it at the bottom (moves the "[" to the bottom).
         Ð     # Pushes the stack to the screen which in Noodel means by reference.

          ḷẸḍt # The main animation loop.
          ḷ    # Loop endlessly the following code.
           Ẹ   # Take the last character of the array and move it to the front.
            ḍt # Delay for a tenth of a second.
               # Implicit end of loop.

Update
[Ð]ıʠ⁶¤⁴.ḷėḍt

Try it:)
Don’t know why this took me a while to think of. Anyways, this places it at 13 bytes.
[Ð]ıʠ⁶¤⁴.ḷėḍt

[Ð]ıʠ⁶¤⁴.     # Sets up the animation.
[             # Push on the character "["
 Ð            # Push the stack as an array (which is by reference) to the screen.
  ]           # Push on the character "]"
   ı          # Jump into a new stack placing the "[" on top.
    ʠ         # Move the top of the stack down one.
     ⁶¤       # Push on six spaces.
       ⁴.     # Push on four dots.

         ḷėḍt # The main loop that does the animation.
         ḷ    # Loop the following code endlessly.
          ė   # Take the top of the stack and put it at the bottom.
           ḍt # Delay for a tenth of a second.

Never heard of Noodel before, but it seems to be the right tool for the right job! +1

@KevinCruijssen, ETHProductions has a good list with languages for code golfing:)

Just when I thought I outgolfed you, I notice you have already golfed your solution twice

@KritixiLithos, I was scared you were going to beat me so I spent forever trying to get to 14 bytes. But, now you are close again!! Dang!!

Are you sure that characters like ⁶ and Ẹ are encoded in a single byte?

@nitro2k01. In the editor, no it is not. The editor uses the character encoding as what works best with JavaScript. These characters are then encoded based off the Noodel code page. Then, once again because of what is easier with JavaScript, Noodel decodes that into the original characters. Sounds stupid, but I did that just to make it to where the noodel function takes in the proper encoding. So, those characters are 1 byte to Noodel. Does that answer your question?

@tkellehe Well, no. That's still characters (of some unknown length) not bytes (commonly defined as 8 bits in modern computing).

@nitro2k01 Noodel uses its own code-page with 256 characters, which are all saved as a single byte in their own encoding. Similar as some other golfing languages do, like Jelly or 05AB1E. If you would save these characters as default UTF-8 encoding, they will indeed be 2 or 3 bytes instead, but in their own encoding they are 1 byte each.

Ok, thanks. Didn't realize it had its own codepage.

MATL, 24 bytes
`1&Xx'['897B@YS46*93hhDT

Try it at MATL Online! Or see a gif from the offline compiler:

Explanation
`        % Do...while
  1&Xx   %   Pause for 0.1 s and clear screen
  '['    %   Push this character
  897B   %   Push [1 1 1 0 0 0 0 0 0 1]
  @      %   Push current iteration index, 1-based
  YS     %   Circularly shift the array by that amount
  46*    %   Multiply by 46 (code point of '.')
  93     %   Push 93 (code point of ']')
  hh     %   Concatenate horizontally twice. Numbers are interpreted as chars
         %   with the corresponding code points
  D      %   Display
  T      %   Push true. Used as loop condition. Results in an infinite loop
         % End (implicit)

Your link crashes, meaning that I cannot kill it.

@LeakyNun What do you mean exactly that it crashes? It works for me, and I can kill it. Sometimes there are timeout issues. If it doesn't start, try refreshing the page

PHP, 67 bytes
for($s="...      .";$s=substr($s.$s,9,10);usleep(1e5))echo"\r[$s]";

no comment

C#, 162 157 bytes
()=>{for(string o="[....      ]";;){o=o.Insert(1,o[10]+"").Remove(11,1);System.Console.Write(o);System.Threading.Thread.Sleep(100);System.Console.Clear();}};

or as whole program for 177 bytes
namespace System{class P{static void Main(){for(string o="[....      ]";;){o=o.Insert(1,o[10]+"").Remove(11,1);Console.Write(o);Threading.Thread.Sleep(100);Console.Clear();}}}}

+1 Something to golf: for(string o="[....      ]";;) can be golfed to var o="[....      ]";for(;;). Or you can us a port of my Java 7 answer to golf the total some more: ()=>{var o="....      "for(;;){o=(o+o).Substring(9,10);System.Console.Write("["+o+"]\n");System.Threading.Thread.Sleep(100);System.Console.Clear();}};

Would string interpolation trim anymore off? Something like $"[{o}]\n"

If you replace System.Console.Write(o) with System.Console.Write(o+"\r") you can remove the System.Console.Clear();

Jelly, 28 27 bytes
ṙ©-j@⁾[]ṭ”ÆȮœS.1®ß
897ṃ⁾. Ç

How?
ṙ©-j@⁾[]ṭ”ÆȮœS.1®ß - Link 1, the infinite loop: list of characters s
ṙ                  - rotate s left by:
  -                -   -1 (e.g. "...      ." -> "....      ")
 ©                 -   copy to the register and yield
     ⁾[]           - literal ['[',']']
   j@              - join with reversed @rguments
         ”Æ        - literal '\r'
        ṭ          - tack (append the display text to the '\r')
           Ȯ       - print with no newline ending
              .1   - literal 0.1
            œS     - sleep for 0.1 seconds then yield the printed text (unused)
                ®  - recall the value from the register
                 ß - call this link (1) again with the same arity

897ṃ⁾. Ç - Main link: no arguments
897      - literal 897
    ⁾.   - literal ['.',' ']
   ṃ     - base decompression: convert 897 to base ['.',' '] = "...      ."

Pure bash, 68
s=${1:-....      }
printf "[$s]\r"
sleep .1
exec $0 "${s: -1}${s%?}"

C (gcc), 202 198 196 189 96 99 88 86 79 77 75 74 73 bytes
Saved 7 8 bytes thanks to Digital Trauma.
f(i){usleep(dprintf(2,"\r[%-10.10s]","....      ...."+i%10)<<13);f(i+9);}

Or, if your system's stdout doesn't need to be flushed after every write without a newline:
C (gcc), 70 bytes
f(i){usleep(printf("\r[%-10.10s]","....      ...."+i%10)<<13);f(i+9);}

How it works

usleep( sleeps for the next return value in microseconds.
dprintf(2, prints to file descriptor 2, or stderr. This is necessary because while stdout is line-buffered (meaning output will not show until it prints a newline), stderr is character-buffered (all output is shown immediately).
"\r prints a carriage return (clears the current line).
[%-10.10s]" is the printf format specifier for a string with exact length 10 (no matter what string provided the output will always be a string with length 10), padded with spaces to the right if necessary. This will be enclosed with brackets.
"....      ...." is the loading bar.
+i%10 offsets the loading bar by the current index modulo 10. For example, if i == 3, i % 10 is equal to 3. Offsetting the loading bar by 3 makes it equal to ".      ....".
When the offset-ed string is passed to the printf format specifier, it limits to a length of 10 if necessary and adds spaces to the end if necessary. Therefore, the loading bar will always be between [....      ] and [.      ...].

i;f(){for(;;i=++i%10)usleep(7500*dprintf(2,"\r[%-10.10s]","....      ...."-i+10));} should work.

Great golfing!  Save 1 more byte with f(i){usleep(dprintf(2,"\r[%-10.10s]","....      ...."+i%10)<<13);f(i+9);}

@DigitalTrauma The spaces in your code didn't render properly. However, I see what you meant, and thanks for the help!

Python 2, 81 78 bytes
-1 byte (noticing I missed use of %s when Rod submitted an almost identical Python 3 version at the same time!)
-2 bytes (using totallyhuman's idea - replace s[-1]+s[:-1] with s[9]+s[:9])
import time
s='.'*4+' '*6
while s:print'\r[%s]'%s,;s=s[9]+s[:9];time.sleep(.1)

How it's flushing the output? this is the reason why I'm using python3 on my answer (it would take more bytes to flush on python2)

@Rod the \r overwrites the line and the , makes it print a tuple rather than a string - I saw it a while back somewhere and have used it before too.

Yes, this is what I was doing, but the output wasn't being printed in real time (had to use sys.stdout.flush())

Found the culprit : my ubuntu terminal :c

Java 7, 139 124 bytes
String s="....      ";void c()throws Exception{System.out.print("["+s+"]\r");s=(s+s).substring(9,19);Thread.sleep(100);c();}

Mentioning of \r thanks to @Phoenix.

The carriage return \r resets the 'cursor' back to the begin of the line, which can then be overwritten. Unfortunately, online compilers nor the Eclipse IDE doesn't support this, so I've added a gif at the end of this answer to show it from Windows Command Prompt.
Try it here. (Slightly modified so you won't have to wait for the time-out before viewing the result. Also, the TIO doesn't support carriage returns, so every line is printed without overwriting the previous line.)
Explanation:
String s="....      ";            // Starting String "....      " on class level
void c()                          // Method without parameter nor return-type
 throws Exception{                // throws-clause/try-catch is mandatory for Thread.sleep
  System.out.print("["+s+"]\r");  //  Print the String between square-brackets,
                                  //  and reset the 'cursor' to the start of the line
  s=(s+s).substring(9,19);        //  Set `s` to the next String in line
  Thread.sleep(100);              //  Wait 100 ms
  c();                            //  Recursive call to same method
}                                 // End of method

Output gif:

You can clear the line by replacing println with print and outputting a carriage return. Might not work in your IDE's terminal, but it would work in any other sane one.

@Phoenix By carriage return you mean \r\n? How does System.out.print(someString+"\r\n); clear the console.. It's the same as using System.out.println(someString);.. It simply goes to the next line, but doesn't remove any previous line printed.. :S

No, I mean \r, without \n. That resets the "cursor" to the beginning of the line so printing anything will overwrite that line.

@Phoenix Ah of course. Thanks. Modified my answer and added a gif to show the result. Too bad online compilers nor the Eclipse IDE aren't supporting this.. >.>

Go, 150 145 132 129 124 bytes
-5 bytes thanks to sudee.
I feel like I don't see enough Go here... But my answer is topping C so... pls halp golf?
package main
import(."fmt"
."time")
func main(){s:="....      ";for{Print("\r["+s+"]");Sleep(Duration(1e8));s=(s+s)[9:19];}}

Try it online!

Not familiar with Go, but I would assume you can convert 100000000 to 10^8 to save 5 bytes.

@goatmeal I tried that but it's apparently bitwise negation. I also tried 10**8 which also gives an error.

You can use scientific notation: 1e8.

@sudee Aha, that would be the way to use large numbers. Thanks!

No longer topping C :P

@MDXF I should've phrased that differently, I meant my answer is being out-golfed by C.

VBA 32-bit, 159 157 143 141 134 Bytes
VBA does not have a built in function that allows for waiting for time periods less than one second so we must declare a function from kernel32.dll
32 Bit Declare Statement (41 Bytes)
Declare Sub Sleep Lib"kernel32"(ByVal M&)

64 Bit Declare Statement (49 Bytes)
Declare PtrSafe Sub Sleep Lib"kernel32"(ByVal M&)

Additionally, we must include a DoEvents flag to avoid the infinite loop from making Excel appear as non-responsive. The final function is then a subroutine which takes no input and outputs to the VBE immediate window.
Immediate Window function, 93 Bytes
Anonymous VBE immediate window function that takes no input and outputs to the range A1 on the ActiveSheet
s="...      ....      .":Do:DoEvents:Sleep 100:[A1]="["&Mid(s,10-i,10)&"]":i=(i+1)Mod 10:Loop

Old Version, 109 Bytes
Immediate window function that takes no input and outputs to the VBE immediate window.
s="...      ....      .":i=0:Do:DoEvents:Sleep 100:Debug.?"["&Mid(s,10-i,10)&"]":i=(i+1) Mod 10:Loop

Ungolfted and formatted
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal M&)
Sub a()
    Dim i As Integer, s As String
    s = "...      ....      ."
    i = 0
    Do
        Debug.Print [REPT(CHAR(10),99]; "["; Mid(s, 10 - i, 10); "]"
        DoEvents
        Sleep 100
        i = (i + 1) Mod 10
    Loop
End Sub

-2 Bytes for removing whitespace
-30 Bytes for counting correctly
-14 Bytes for converting to immediate window function
Output
The gif below uses the full subroutine version because I was too lazy to rerecord this with the immediate window function.

What's that a at the top of the output?

@MDXF that is the call to run subroutine a as is listed above; this is functionally equivalant to the more verbose call a().

Ah, my bad. Just looking for bad submissions. Your's isn't, then, so +1

Perl, 69 bytes
-3 bytes thanks to @Dom Hastings.
$_="....".$"x6;{print"\ec[$_]
";select$a,$a,!s/(.*)(.)/$2$1/,.1;redo}

That select undef,undef,undef,.1 is the shortest way to sleep less than 1 second in Perl, and it takes a lot of bytes...

Slightly longer (79 bytes), there is:
@F=((".")x4,($")x6);{print"\ec[",@F,"]\n";@F=@F[9,0..8];select$a,$a,$a,.1;redo}

Evening, managed to get this down a little more 69 (or 68 with a literal ESC): https://gist.github.com/dom111/e3ff41c8bc835b81cbf55a9827d69992 I feel like the tried to use !print but you need parens so it ends up the same length :/

@DomHastings Nice, thanks! You still know how to golf :D

05AB1E, 23 bytes
'.4×ð6×J[D…[ÿ],Á¶т×,т.W

Try it online!
Explanation
'.4×ð6×J                  # push the string "....      "
        [                 # forever do:
         D                # duplicate
          …[ÿ],           # interpolate the copy between brackets and print
               Á          # rotate the remaining copy right
                ¶т×,      # print 100 newlines
                    т.W   # wait 100ms

Bash, 93 90 96 bytes
s="...      ....      ."
for((;;)){ for i in {0..9};do printf "\r[${s:10-i:10}]";sleep .1;done;}

view here
couldn't get nested { } in for syntax

I intended to post a quite similar solution, but is pointless now. But may give some inspiration to improve your: https://pastebin.com/Ld6rryNX

much better! i'm not stealing from you, i knew i had to work out this one...

edited, printf padding can't help in shortening s. wraping the string as @DigitalTrauma looks better.

Ruby, 57 56 bytes
s=?.*4+' '*6;loop{$><<"[%s]\r"%s=s[-1]+s.chop;sleep 0.1}

Heavily influenced by other answers here.
Saved a byte thanks to @manatwork. Also apparently I have trouble counting characters -- I use ST3 and apparently it will include newlines in the count of characters in the line if you're not attentive.

How does it work? Does this assume that the input is stored in s?

@Riker He defines s at the beginning of the program as 4 .s and a few spaces

s[0..8] → s.chop

Batch, 99 98 bytes
Saved 1 byte thanks to SteveFest!
(I could remove \r from the code, but in the spirit of batch golfing, I won't.)
@SET s=....
:g
@CLS
@ECHO [%s%]
@SET s=%s:~-1%%s:~,-1%
@ping 0 -n 1 -w 100>nul
@GOTO g

There are four spaces after the first line.
The main logic is modifying the string. %s:~-1% is the last character of %s% and %s:~0,-1% is all but the last character of %s%. Thus, we are moving the last character to the front of the string, which rotates the string.

Aw... I've been looking for this...

Golf 1 byte: the 0 in the variable substring can be removed

You use cmder. Nice job.

@SteveFest Huh, TIL. Thanks!

@MDXF It's the only reason I'm still sane :P

@ConorO'Brien Well, there's Git for Windows, which comes with bash. Quite useful, it's what I use.

timeout/t 0 >nul saves some bytes

I'm curious why won't you remove the \rs?

Japt, 31 22 bytes
Saved 9 bytes thanks to @obakaron
Li@O¬OpT=T?Té :'.²²+6î

Try it online!

p4  can be shortened to ²², Sp6 can be replaced by 6î, and Oq  can be replaced by O¬

You're missing the enclosing [].

Groovy, 72 bytes
s="*"*4+" "*6
for(;;){print("["+s+"]"+"\n"*20);s=s[9]+s[0..8];sleep 100}

Explaination
s="*"*4+" "*6 //creates the string "****      "
for(;;){ //classic infinite loop
    print("["+s+"]"+"\n"*20) //prints the string with [ at the beginning and ] at the end. After that some newlines
    s=s[9]+s[0..8] //appends the final char of the string to beginning, creating a cycling illusion
    sleep 100 //100 ms delay
}

Didn't know a proper way to clear the console in Groovy/Java. If someone has a way of doing it, please tell me

You can use \r to return the cursor to the start of the line. It appears that at least several answers are doing this. From there, you could delete the *20, saving 3 bytes.

Haskell (Windows), 159 bytes
import System.Process
import Control.Concurrent
main=mapM id[do system"cls";putStrLn('[':["....      "!!mod(i-n)10|i<-[0..9]]++"]");threadDelay(10^5)|n<-[0..]]

Explanation
mapM id             sequentially perform each IO action in the following list
[                   start a list comprehension where each element is...
  do                  an IO operation where
    system "cls";       we clear the screen by calling the windows builtin "cls"
    putStrLn(           then display the string...
      '[':                with '[' appended to
      [                   a list comprehension where each character is...
        "....      "!!       the character in literal string "....      " at the index
        mod(i-n)10          (i - n) % 10
      |i<-[0..9]]         where i goes from 0 to 9
      ++"]"             and that ends with ']'
    );
    threadDelay(10^5)   then sleep for 100,000 microseconds (100 ms)
|n<-[0..]]          where n starts at 0 and increments without bound

Haskell's purity made generating the cycling dot pattern somewhat complex.  I ended up creating a nested list comprehension that generated an infinite list of strings in the order they should be output, then went back added the appropriate IO operations.

Ruby, 61 bytes
If the spec were for the dots to scroll left instead of right, it would save 1 byte because rotate! with no arguments shifts the array once to the left.
s=[?.]*4+[' ']*6
loop{print ?[,*s,"]\r";s.rotate!9;sleep 0.1}

GNU sed (with exec extension), 64
Score includes +1 for -r flag.
s/^/[....      ]/
:
esleep .1
s/[^. ]*(.+)(.)].*/\c[c[\2\1]/p
b

c, 100
char *s="....      ....     ";main(i){for(i=0;;i=(i+9)%10)dprintf(2,"[%.10s]\r",s+i),usleep(3<<15);}

Why print to stderr using dprintf and not just use printf?

@MDXF Because by default stderr is character buffered, whereas stdout is line buffered.  Since I don't want to print any \n, then with printf() I'd have to explicitly fflush(stdout) as well as #include <stdio.h>

Good point, but actually, you wouldn't have to #include <stdio.h> to flush STDOUT. fflush(0) flushes all buffers.

Save three bytes by renaming main to f, that counts.

S.I.L.O.S, 282 bytes
canvas # #
def # 1000 ! Obj N new M move > 10
newObj 0 # #
pen 255 255 255
N! 0 > >0
M! 1 > >
N! 0 > >0
M! 2 560 >
x=8
lblx
x-1
N! 0 > >
if x x
M! 3 20 >
M! 4 20 >0
M! 5 550 >
M! 6 550 >0
lbla
x=4
lbly
A=6+x
B=60+50*(((x-1)+a)%>)
M! A B 50
x-1
if x y
refresh
a+1
a%>
wait >0
GOTO a

TIO currently does not support graphical output, but the official interpreter does. I think this is the first time I have gotten a chance to test out the graphical output functionality of SILOS.

shortC, 85 72 71 66 65 64 bytes
f(i){Udprintf(2,"\r[%-10.10s]","....      ...."+i%10)<<13);f(i+9

Explanation:
f(i){                                                           function that takes integer
     U                                                          sleep
      dprintf(2,                                                print unbuffered
                "\r[%-10.10s]",                                 string with exactly 10 characters, wrapped with spaces
                               "....    ...."                   a string that, when printed with exactly 10 characters, will always have output that is in the loading screen
                                             +i%10              scroll through the string
                                                  )<<13);       sleep 10<<13 microseconds
                                                         f(i+9  recursion :D

TI-Basic (TI-84 Plus CE), 58 bytes
"....      (6 spaces)
Ans+Ans
While 1
For(X,11,2,-1
ClrHome
Disp "["+sub(Ans,X,10)+"]
Wait .1
End
End

I wanted to submit a 68k version but realized that 1) None of my TI-92 Plus have a new enough AMS to use the clock, and 2) even if they did, the granularity is in seconds

APL (Dyalog), 44 bytes
{∇r⊣⎕DL.1⊣⎕←⎕TC[20⍴2],1⌽'][',r←¯1⌽⍵}10↑4⍴'.'

Try it online with a slightly modified version: ⎕← replaced by ∆_ which outputs with timestamps.
4⍴'.' four periods
10↑ take the first ten characters of that (pads with spaces)
{…} apply the following function
 ¯1⌽ rotate one character from the tail to the head
 r← assign that to r
 '][', prepend the brackets
 1⌽ rotate one character from the head to the tail
 ⎕TC[…] index the list of Terminal Control characters with
  20⍴2 twenty repetitions of the number two (the second element is the newline)
 ⎕← output that
.1⊣ discard that in favour of the number 0.1
 ⎕DL Delay that many seconds (returns elapsed time)
 r⊣ discard that in favour of r (which is then returned by the function)
 ∇ recurse (tail calls do not work up a stack, and can thus be repeated forever)

Haskell, 132 bytes
import Control.Concurrent
main=mapM_(\x->putStrLn("\27[H\27[J["++x++"]")>>threadDelay(10^5))$iterate(\x->last x:init x)"....      "

First, we define a function r to rotate a string to the right.  We begin with "....      " and construct an infinite list of its right-rotations, then for each x of these, print:

An ANSI escape sequence to clear the screen,
A left-bracket,
x itself,
A right-bracket,
And a newline character so the terminal will flush.

Then threadDelay waits 100000 microseconds before continuing onto the next element.
Since we are applying these operations to an infinite list, it will continue forever.

f x=last x:init x should be shorter than using reverse.

@Laikoni Wow, thanks for that! Saved a whole dozen bytes

Save another byte by moving the $ to the position of the .. Also is the newline needed if the screen is cleared anyway? If not then putStrLn can be shortened to putStr.

@Laikoni Right, don't know why I didn't see that.  In my case, the Ln is needed, else the terminal never displays anything.  I think that's terminal-dependent though — else I would just use a carriage return instead of the ANSI escape

VBA (Excel), 109  bytes
Using Immediate Window and Cell A1 as output
a="...      .":Do:b=Right(a,1):a=b &Left(a,9):[A1]="["& a &"]":c=Timer+.1:Do While Timer<c:DoEvents:Loop:Loop

Do While:...:Loop -> While:...:Wend for -3 bytes

C, 74 73 bytes
i;f(){usleep(printf("\r[%-10.10s]","....      ...."+i%10)*7692);f(i+=9);}

Modified and improved version of https://codegolf.stackexchange.com/a/120321.
Displays correct output on MinGW.

C, 98 93 Bytes
main(){char b[]="x...      .";for(;;)*b=b[10],usleep(12<<printf("\r[%s]",memcpy(b+1,b,10)));}

View Video

@MDXF, Besides screwing up the pointer arithmetics, gcc does not allow the following on the global scope: b[]="x...      .";

CJam, 39 bytes
'.4*S6*+{_a`'"-oDcoes{es1$m100<}g;1m>}h

Can't make a GIF right now...
How it works
'.4*S6*+       e# Push a string containing 4 dots and 6 spaces
{              e# Do:
 _             e#  Copy the string
 a`            e#  Wrap it in an array and take its string representation: ["....      "]
 '"-           e#  Remove quote characters from it: [....      ]
 o             e#  Print it
 Dco           e#  Print a carriage return (ASCII 13), moving the cursor back to the start
 es            e#  Push the current time in milliseconds
 {es1$m100<}g  e#  Loop until the current time is at least 100 more than that time
 ;             e#  Delete the old time
 1m>           e#  Rotate the string 1 space to the right
}h             e# Repeat while the TOS is truthy. The string being printed is non-empty, so
               e#   it is always truthy, and will repeat forever.

Pyth, 28 bytes
J+*4\.*6d#.d.1p"\r"pj=.>J1`Y

Perl 6, 61 bytes
$_='....      ';loop {"^M[$_]".print;s/(.*)(.)/$1$0/;sleep .1}

(That ^M is a single carriage return character.)
I really tried to base the output on a lazy infinite list, but couldn't nearly approach the terseness of this solution.

C, 91 bytes
main(i){for(char*s="....      ....    ";;i+=9)usleep(dprintf(2,"[%.10s]\r",s+i%10-1)<<13);}

If it doesn't have to begin at the left: (89 bytes)
main(i){for(char*s="....      ....    ";;i+=9)usleep(dprintf(2,"[%.10s]\r",s+i%10)<<13);}

Something not quite right with this, sometimes it displays [a....     ]

-7 bytes: eliminate char*s= and use the raw string in dprintf, e.g. "....      ....    "+i%10-1.

R, 100 bytes
z="....      "
repeat{flush.console()
cat("\r[",z,"]",sep="")
z=sub("(.)(.+)(.)","\\3\\1\\2",z)
Sys.sleep(.1)}

F# (Mono), 122 114 118 110 bytes
let rec t s=printf"[%s]\r"s;System.Threading.Thread.Sleep(100);t((string s.[8])+s.Substring(0,8))
t"      ..."

Try it online!

JS (ES6), 179 bytes
x=`[....      ]
[ ....     ]
[  ....    ]
[   ....   ]
[    ....  ]
[     .... ]
[      ....]
[.      ...]
[..      ..]
[...      .]`.split`
`;c=0;setTimeout(y=>alert(x[++c]),100)

Octave, 71 bytes
s="...       ."';do;printf('[%s]\r',s=circshift(s,1));pause(.1);until 0

For once my Octave answer is not MATLAB compatible. Specifically this solution uses

Both " and ' for quotes, to transpose a string

MATLAB: ('asd')'
Octave: "asd"'

Octave specific do ... until 0 structure, one char shorter than while 1 ... end
Octave's printf,one char shorter than the fprintf in MATLAB

Powershell, 64 bytes
for(){cls;"[$('...      .'*2|% s*g(9-$i++%10)10)]";sleep -m 100}

Where $string|% s*g $From $Length is a shortcut to summon $string.SubString($From,$Length)
This solution has one small disadvantage:

there will be an overflow exception after the Windows style Loading bar has worked for 988 million years.

Powershell, 65 bytes
for(){9..0|%{cls;"[$('...      .'*2|% s*g $_ 10)]";sleep -m 100}}

This Windows style Loading bar is an Immortal Eldar from Valinor.

Japt, 22 bytes
Oq"[{'.²²úA éU°}]"Lt@ß

Test it

Stax, 18 bytes
Θo░a↑▐»xr←9hV╣ä&N╞

Run and debug it


text:
Year progress bar
Create a progress bar indicating year progress
Your code has to output the percentage of the year already passed form 1st of January of the current year.
You have to display a progress bar and the figure.
Input
You may use builtins to get the current date, if your language doesen't have it you can get date as input but it would be added to your byte count (has to ba a reasonable input format like 2017-05-12)
Output
Bar status: At least 10 different status relating to figure.
Figure: can be rounded or float, has to represent current (or input) day of the year / 365(366) * 100

Example
Today 2017-05-12
Output
▓▓▓▓▓░░░░░░░░░░ 36%

Take into account leap years informal definition (occurring evey 4 years)
progess of the year for 12-Feb is 12% on leap years.
Inspiration

Are we free to choose the characters?

you can use builtin date to get todays date or input date in an "adecuate" form (not unary).

you can draw the bar in any way you like as long as looks like a bar

@MarcosM "as long as [it] looks like a bar" is very unclear.

@MarcosM This needs a tighter specification before it ready for main. Please could you address the issues raised?

take into account leap years

It seems that my dubious method of assuming that every month is 30 days long is how your example works... That doesn't sound right to me

So we are meant to go from something like XXXX------ to XXXA------ to ....?

@JonathanAllan yes, or you can make a longer bar

"take into account leap years" This contradicts the question which states that a year should be considered to be 365 days. If we are taking leap years into account, do we need to do so properly? As in a leap year is one that is divisible by 4, unless it's also divisible by 100, unless it's also divisible by 400.

Yes, is a date question, progess of the year for 12-Feb is 12% on leap years

@Shaggy, don't know if it is the wright thig to do but you colud answer 2 codes, one for leap and one for non-leap.

@MarcosM, while the challenge would certainly be easier in most languages without having to handle leap years, that's not what I'm asking. I'm merely looking for the definition of a leap year for the purposes of this challenge. As none of us will be around to check the solutions come the year 2100, I would suggest using the common definition of a leap year being every 4 years, as I have in my answer.

@Shaggy, all right I will not ask to handle year 1752 special case either..

Thanks for clarifying that. One last question from me: is the option to take today as an input available to all languages or only those without built-in methods to determine the date and should the input be added to the byte count for the answer?

Last option seems fair.

Is <space> a valid character to use in the "progress bar"?

yes, if you can give the impression of progressing [|         ] vs [ |       ]. Don't know way this is still on hold

Can you have a look at the alternative solution in my answer, which uses  as one of the characters and let me know if it's acceptable? Sounds like it would be. Try posting in chat to ask people if they'd be willing to vote to reopen; those of us who reopened it last time cannot do so again.

What is a languaje? :D

ok, spanish speaking here...

PHP, 69 Bytes
for($p=date(z)/(364+date(L))*100^0;$i<100;)echo$i++>$p?_:Z;echo"$p%";

Try it online!
date
parameter z The day of the year (starting from 0) 0 through 365
parameter L Whether it's a leap year  1 if it is a leap year, 0 otherwise.
PHP+HTML, 49 Bytes Non-Competenting
<progress value=<?=date(z)?> max=<?=364+date(L)?>

add ></progress> if you don't want that the browser makes the rest
Output for today in the snippet

<progress value=131 max=364

Fourier, 68 bytes
Note, this has been invalidated by rule changes since it does not handle leap years
3d~D4d*30+D~s*100/365~p365(s>0{1}{9618asv~s}s{0}{9617a}i^~i)32apo37a

Try it in FourIDE!
Outputs the bar like in the question but with 365 segments instead of 15.
Makes the assumption that every year has 365 days and every month has 30 days.
Output for today, 12th May:
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 36%

Explanation
Firstly, it looks at the day part of the date and the month part of the month. To get how many days have come before this month, you multiply the month by 30. You then add the day to number of days.
From that point, the calculations are academic and the only extra bytes are for drawing the bar.

How on earth did you answer 3 minutes ago when the question was closed 6 minutes ago?

@LeakyNun If you don't refresh the page while the question is open, you can still answer on closed questions ;)

I thought this bug has been pointed out before I left (i.e. 9 months ago).

Maybe it has been on the desktop site, but it still exists on mobile

"Each day has to display a different bar "

@Jonathan So... like a 365 character long bar? Seems excessive

366, yes or multiple characters.

JavaScript (ES8), 137 135 149 155 137 123 110 108 102 100 98 96 92 +7 bytes
Requires new Date to be passed as an argument for an additional 7 bytes.
n=>"=".repeat(v=(n-new Date(y=n.getFullYear(),0))/864e5/(y%4?3.65:3.66)|0).padEnd(100)+v+"%"

If we can't use spaces in the progress bar then 2 bytes will need to be added:
n=>"1".repeat(v=(n-new Date(y=n.getFullYear(),0))/864e5/(y%4?3.65:3.66)|0).padEnd(100,0)+v+"%"

Try It

o.innerText=(n=>"=".repeat(v=(n-new Date(y=n.getFullYear(),0))/864e5/(y%4?3.65:3.66)|0).padEnd(100)+v+"%")(new Date)
<pre id=o>

"Each day has to display a different bar "

@Shaggy Turns out it was there from the start, just buried in the question... I wish it wasn't there though :P

Ruby, 72+7 = 79 bytes
Uses -rdate flag. -1 byte from Tutleman.
t=Date.today;d=t.yday;e=t.leap??366:365;$><<?=*d+?-*(e-d)+" #{d*100/e}%"

Today's output (2017-05-17):
=========================================================================================================================================------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 37%

If I understand it correctly, you check with December 31st of the previous year, but this does not work for leap years. Dec 31st, 2016 is yday 366.

If you use Date instead of Time, you can shave off a chunk of bytes using Date#leap? to check if it's a leap year, even after accounting for the -rdate flag. Also, you may be able to use String#ljust to shorten the number of bit where you add the dashes.

@GB yeah it seems I forgot the +1 on the year. The other comment meant I could take that check out anyways, though!

@Tutleman great! -1 byte, although I guess it would've been -3 because of my other mistake with the leap year check. ljust is too long, though; I lose 5 bytes using it.

C#, 133 bytes
using static System.DateTime;int k=Now.DayOfYear*100/(IsLeapYear(Now.Year)?366:365);()=>$" {k}%".PadLeft(103-k,'-').PadLeft(103,'@');

Uses '@' and '-' Symbols

Python 2, 134 bytes
Too long built-ins(
Try it online
from datetime import*
D=datetime
N=D.now()
Y=D(N.year,1,1)
P=100*(N-Y).days/-~(D(N.year,12,31)-Y).days
print'H'*P+'-'*(100-P)+'%s%%'%P

This line evaluates length of the current year to handle leap ones:
-~(D(N.year,12,31)-Y).days

CJam, 75 bytes
et3<~@[sS+2m<~e|4%!:L28+T31@"\x1F\x1E\x1F\x1E\x1F\x1F\x1E\x1F\x1E\x1F":i~]@<:++e2 365L+/_'#*100'_*.e<S@'%

The bar goes up to 100, so it's a straight percentage bar.
The code for detecting leap years has been "borrowed" from Dennis's answer on another challenge.
The code contains several unprintable characters. They have been replaced by hex codes like \x1F in this answer.
Try it online!
or try it for every day in 2017
Explanation
et                e# Get the date/time.
3<~               e# Get the first three elements ([year month day]) and dump it on the stack.
@                 e# Bring the year to the top.
[                 e# Begin an array:
 sS+2m<~e|4%!     e#  Check if the current year is a leap year, returning 0 or 1.
 :L               e#  Save the result in L.
 28+              e#  Add it to 28.
 T31@             e#  Push 0 and 31, bring (28 or 29) to the top.
                  e#    The 0 is there because you can't reduce an empty array (later...).
 "..........":i~  e#  Dump the char codes of the unprintable string into the array.
]                 e# Close array. This now contains the length of each month.
@                 e# Bring the month to the top.
<                 e# Slice the array before the month, to get only those that have passed.
:+                e# Sum the days in those months.
+                 e# Add that sum to the day of the month.
e2                e# Multiply the result by 100.
365L+/            e# Divide by 365+L to get the percentage.
_'#*              e# Duplicate it, and repeat '#' that many times.
100'_*            e# Push a string containing 100 underscores.
.e<               e# Superimpose the hashes onto the underscores.
S@'%              e# Push a space, bring the percentage to the top, and push '%'.

Excel, 159 bytes
Relevant Quote:
=LEFT(REPT("|",10*(Now()-DATE(YEAR(Now()),1,0))/(365+(MOD(YEAR(Now()),4)=0)))&"::::::::::",10) & 100*(Now()-DATE(YEAR(Now()),1,0))/(365+(MOD(YEAR(Now()),4)=0))

Example Output:
|||:::::::38.0821917808219

Note that the progress bar rounds down because of how REPT works.

If using multiple cells is acceptable (I would tend to say it's not), an alternative answer is 97 bytes.
A1: =YEAR(NOW())
A2: =10*(NOW()-DATE(A1,1,0))/(365+(MOD(A1,4)=0))
A3: =LEFT(REPT("|",A2)&"::::::::::",10)&10*A2

Python 2, 91 bytes
from time import*
t=gmtime()
d=t.tm_yday
n=365+(t.tm_year%4<1)
print'#'*d+'-'*(n-d),d/.01/n

Progress bar is 366 characters long on the pseudo-leap years (from the specification) and 365 on others, but uses the actual day count as a numerator (so it will have precision errors on century non-leap years). This could be fixed with y=t.tm.year;n=[y%4,y%100,y%400].count(0)%2 in place of n=365+(t.tm_year%4<1)
Try it online! (added tomorrow's output for comparison using extra code in the footer)

source: Stack Exchange

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

sort: votes


text:
Solve this uHerbert challenge
TL;DR: Solve this particular challenge, a robot simulation, by stepping on all of the white pads, and avoiding the gray pads. You can step on a white pad any number of times, as long as you step on each white pad at least once. Solutions in languages like Befunge with a 2D instruction pointer would also be accepted, but H comes with the uHerbert program and its language specifications are given below. You do not need the uHerbert program to solve this, but it makes checking your solution a lot easier.
Here is what the level looks like. This is a 25x25 grid of cells, in which the robot and each white and gray pad occupy one cell. The robot is initially facing upward.

Background on uHerbert
Herbert is a robot simulation which I first encountered in the online IGF (Independent Games Festival) programming challenge back in 2008. For a long time, I was disappointed that I couldn't try out the challenges after the actual contest was over. Luckily, someone else must have read my mind and coded up this dandy little program: uHerbert (aka mu-Herbert or micro-Herbert).
H (Language Specifications)
The program is a robot simulation, but also acts an interpreter for the programming language H which serves only to move the robot.
There are three instructions:

S: the robot steps one cell forward
L: the robot turns left 90 degrees in place
R: the robot turns right 90 degrees in place

There are three standard programming features at your disposal: functions, parameters, and recursion. Two different parameter types are supported.
Numeric parameters
g(A):sslg(A-1)

Here, g is a function with a one numeric parameter. This is boiler plate code; following this you can write your actual program by calling your function and passing an argument:
g(4)

This would call your function 4 times, and the recursion automatically terminates when your parameter A reaches a value of zero:
g(4) = sslg(4-1) = sslg(3) = sslsslg(2) = sslsslsslg(1) = sslsslsslssl

Functional parameters
You can also use functional parameters, which basically just reproduce instructions that you pass in:
f(A):rAlA

So if you call this function and pass instructions, it would evaluate to:
f(ss) = rsslss
f(sslssr) = rsslssrlsslssr

Other syntax
Functions can have more than one parameter, and they can also have both types. They could alternatively have no parameters. The following are both valid functions as well:
j:ssss
k(A,B):Ajjjk(A,B-1)

As you can see, the function j takes no parameters, and the function k takes both types of parameters. A is a functional parameter and B is a numeric parameter, as described above.
Infinite recursion
Infinite recursion is also allowed, but can only be initiated once and is effectively terminated when you step on the final white pad (without having stepped on any gray pads):
m:sslssrm

Solve condition
The goal is to get the robot to step on all of the white pads, and to avoid stepping on any of the gray pads. White pads can be stepped on any number of times, as long as each one is stepped on at least once. The robot is able to step on any point in the grid that it can reach (some levels have barrier walls and in this level the gray pads sort of act as a barrier).
The puzzle shown earlier is available on the site above from level_pack2.zip and is called level3.txt. Both the uHerbert program and the level pack are still available from the above link as of today (the site has been archived but the archive engine still hosts it), but they are not required for a solution.
I would like to see the shortest solution possible as per code golf. Solutions in languages other than H will not be accepted as valid. (It would certainly be interesting to see an example solution in a language like Befunge where the instruction pointer travels on a 2D grid, but per atomic code golf scoring, only H instructions can be given an accurate score. The instruction pointer could be treated as the robot's position, for example.) A valid solution is one where the robot steps on all the white pads (each at least once) and does not step on any gray pads. Stepping in other parts of the grid is fine but in this particular puzzle you can't do that without stepping on a gray pad. The starting position of the robot cannot be changed.
I should also note that solutions which jump to a non-adjacent cell will not be accepted. This is not possible for the robot in the simulation, and would not represent a valid solution. H does not allow this anyway. So a valid solution must be one comprised of single steps. For each cell in the grid, there are only four adjacent cells: the ones orthogonal to it (above, below, and to the left and right). This of course would disallow diagonal steps, but because you are only able to turn in 90 degree increments, diagonal steps are not even possible.
If the robot is given an instruction which requires it to move into a barrier or outside the grid, the result is basically "derp" - the robot hits the wall and stays where it is, and the instruction pointer moves to the next instruction (the instruction is basically skipped).
Note about solution size
When you open this level in the program, you'll notice it is apparently possible to solve in 13 bytes. I am totally baffled as to how that is possible, and curious to see how close others are able to come to that. My shortest solution is 30 bytes in H. If anyone wants me to post it, I will, but I'd like to see other solutions before posting mine. The program also gives you a score, but the score is irrelevant to this question. Solutions of any score will be accepted.
It seems that the uHerbert program does not count parentheses or colons as part of your program (you will see this when it counts up your bytes). So for the purposes of this question, in the H language, parentheses and colons will not count as bytes towards your solution since they are primarily delimiters and purely syntactical rather than semantic in nature.

Let us continue this discussion in chat.

H, 13 bytes
a:ssr
b:sasaaab
b

Demo

Clever. I remember poking at this puzzle back when it was first posted but I didn't find this solution.

Excellent work. This is clearly the intended solution.

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


text:
"99 bottles of fizz"
Challenge
Write a program that outputs the lyrics to 99 Bottles of Beer, but instead of "beer", output "fizz" if the number of bottles on the wall is a multiple of 3, "buzz" if it is a multiple of 5, and "fizzbuzz" if it is a multiple of 3 and a multiple of 5. If the number of bottles on the wall is not a multiple of 3 or 5, just output "beer" as usual.
Lyrics
99 bottles of fizz on the wall, 99 bottles of fizz.
Take one down and pass it around, 98 bottles of beer on the wall.

98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.

97 bottles of beer on the wall, 97 bottles of beer.
Take one down and pass it around, 96 bottles of fizz on the wall.

96 bottles of fizz on the wall, 96 bottles of fizz.
Take one down and pass it around, 95 bottles of buzz on the wall.

95 bottles of buzz on the wall, 95 bottles of buzz.
Take one down and pass it around, 94 bottles of beer on the wall.

....

3 bottles of fizz on the wall, 3 bottles of fizz.
Take one down and pass it around, 2 bottles of beer on the wall.

2 bottles of beer on the wall, 2 bottles of beer.
Take one down and pass it around, 1 bottle of beer on the wall.

1 bottle of beer on the wall, 1 bottle of beer.
Go to the store and buy some more, 99 bottles of fizz on the wall.

This is code-golf, so the shortest submission in each language wins.

I have 95 bottles of fizz. I take one away. Now I have 94 bottles of beer. Logic.

Can I have a bottle of fizzbeer?

Is there supposed to be a newline after the 3rd bottle?

Nope, my bad. Fixing now.

Is a newline required between the two lines? Before Kritixi Lithos's edit there were none and now there are.

@Okx Well, beer is fizzy and gives you a buzz...

@dzaima There should be newlines between each verse, but not within the verses. Trailing newline is OK but not required.

Should it be infinite?

@MDXF The last line posted should be where it stops

What is a "fizz"? ;)

I like the "just output "beer" as usual." :).

Related: 1, 2, Fizz, 4, Buzz

Related: “99 Bottles of Beer”

@sergiol of course they're related, they inspired the challenge!

Python 2, 263 253 245 bytes
i=99
x=''
while i:x+=', %s on the wall.\n\n%s on the wall, %s.\n'%(('%d bottle%s of %s'%(i,'s'*(i>1),(i%3<1)*'fizz'+(i%5<1)*'buzz'or'beer'),)*3)+'GToa kteo  otnhee  dsotwonr ea nadn dp absusy  isto maer omuonrde'[i>1::2];i-=1
print x[35:]+x[:33]

Try it online!

This is awesome! Can you explain why interpolating the strings is the shortest option?

For example ['ab','cd'][x] can be rewritten as 'acbd'[x::2], just to save some bytes

C (GCC), 276 274 bytes
Thanks to Neil for saving two bytes!
#define w" on the wall"
#define c(i)printf("%d bottle%s of %s",i,"s"+!~-i,i%3?i%5?"beer":"buzz":i%5?"fizz":"fizzbuzz"),printf(
i;f(){for(i=99;i;c((i?:99))w".\n\n"))c(i)w", "),c(i)".\n"),printf(--i?"Take one down and pass it around, ":"Go to the store and buy some more, ");}

Who doesn't love unmatched parentheses in macro expansions ?
Ungolfed:
#define c(i)                               \
    printf(                                \
        "%d bottle%s of %s",               \
        i,                   /* Number  */ \
        i-1 ? "s" : "",      /* Plural  */ \
        i % 3                /* FizzBuzz*/ \
            ? i % 5                        \
                ? "beer"                   \
                : "buzz"                   \
            : i % 5                        \
                ? "fizz"                   \
                : "fizzbuzz"               \
    )

i;
f() {
    for(i = 99; i; ) {
        c(i); printf(" on the wall, ");
        c(i); printf(".\n");
        printf(
            --i
                ? "Take one down and pass it around, "
                : "Go to the store and buy some more, "
        );

        // This has been stuffed into the for increment
        c((i?:99)); printf(" on the wall.\n\n");
    }
}

See it live on Coliru!
Alternate version (276 bytes)
#define c(i)printf("%d bottle%s of %s",i,i-1?"s":"",i%3?i%5?"beer":"buzz":i%5?"fizz":"fizzbuzz"),printf(
i,*w=" on the wall";f(){for(i=99;i;c((i?:99))"%s.\n\n",w))c(i)"%s, ",w),c(i)".\n"),printf(--i?"Take one down and pass it around, ":"Go to the store and buy some more, ");}

This is super cool! I'm always shocked at how good C answers can be with string manipulation.

Save a few bytes by changing #define w" on the wall" to *w=" on the wall".

@MDXF mmh, I get the exact same byte count. Am I missing something?

I think they meant you can replace #define w with *w= to save bytes there. Honestly I'm not all that familiar with golfed C, but my guess is that it makes w an implicitly-defined global char*.

@musicman523 the issue is that the #defined w is a string literal, which is automatically pasted with adjacent string literals. If w is a variable, I have to use actual string formatting inside printf.

@Quentin Ah, true. I didn't quite gather that from your submission, my bad.

Does "s"+!~-i help?

@Neil OMG that's awful, I love it! Thanks, I muddled around with offsetting "s", but didn't come around to a short enough syntax :)

Röda, 273 bytes
f{a=`bottle`f=` on the wall`g=`99 ${a}s of fizz`;[`$g$f, $g.
`];seq 98,1|{|b|d=`s`d=``if[b=1];c=``c=`fizz`if[b%3=0];c.=`buzz`if[b%5=0];c=`beer`if[c=``];e=`$b $a$d of $c`;[`Take one down and pass it around, $e$f.

$e$f, $e.
`]}_;[`Go to the store and buy some more, $g$f.`]}

Try it online!
Will golf further in the morning.

PHP, 242 Bytes
function f($k){return"$k bottle".(s[$k<2])." of ".([fizz][$k%3].[buzz][$k%5]?:beer);}$w=" on the wall";for($b=f($c=99);$c;)echo"$b$w, $b.
",--$c?"Take one down and pass it around":"Go to the store and buy some more",", ",$b=f($c?:99),"$w.

";

Try it online!
PHP, 244 Bytes
for($e=s,$b=fizz,$c=99;$c;)echo strtr("301245, 30124.
6, 708295.

",[" bottle",$e," of ",$c,$b," on the wall",--$c?"Take one down and pass it around":"Go to the store and buy some more",$k=$c?:99,$e=s[2>$k],$b=[fizz][$k%3].[buzz][$k%5]?:beer]);

Try it online!
use function strtr
PHP, 245 Bytes
$f=function($k)use(&$b){$b="$k bottle".(s[$k<2])." of ".([fizz][$k%3].[buzz][$k%5]?:beer);};for($w=" on the wall",$f($c=99);$c;)echo"$b$w, $b.
",--$c?"Take one down and pass it around":"Go to the store and buy some more",", {$f($c?:99)}$b$w.

";

Try it online!
use an Anonymous function in the string to get a sustring depending of the integer
Expanded
$f=function($k)use(&$b){$b="$k bottle".(s[$k<2])." of ".([fizz][$k%3].[buzz][$k%5]?:beer);};
for($w=" on the wall",$f($c=99);$c;)
echo"$b$w, $b.
",--$c?"Take one down and pass it around":"Go to the store and buy some more"
,", {$f($c?:99)}$b$w.

";

If I didn't miscount you can save 2 bytes (250 bytes in total): function x($n){return"$n bottle".($n-1?s:'')." of ".(($n%3?'':fizz).($n%5?'':buzz)?:beer);}$y=" on the wall";for($b=99;$b;){$c=x($b);echo"$c$y, $c.↵",--$b?"Take one down and pass it around":"Go to the store and buy some more",", ".x($b?:99)."$y.↵↵";}. :)

@insertusernamehere You have miscount with a few changes it saves 2 Bytes more. Thank You. And you have give me a little idea to use use in combination with the anonymous function which saves 1 Byte in this version

05AB1E, 151 146 143 bytes
99LRv'¬ž“fizzÒÖ“#y35SÖÏJ‚˜1(è©y“ƒ¶€µ„‹€ƒîå€•…¡, ÿÏê€‚ ÿ€‰€€íÒ.“ªõ®y“ÿÏê€‚ ÿ€‰€€íÒ, “D#4£ðýs…ÿÿ.}‚‚˜'Ïê'±¥:`)¦¦¬#7£ðý¨“‚œ€„€€ƒï€ƒ‚¥€ä€£, ÿ.“ª)˜»

Try it online!

SOGL, 136 135 134 133 131 bytes
Ƨ, o▓k
"πFT+╔¡‘oW
³³q"'bμ⁸‘oH? so}5\;3\«+"ΞQv↑χāσκN⌡κYT¡‘_,S─‘oθwoX▓
MH∫}¹±{▓WkƧ.¶oH¡"sΗ─χpēGķ¶¾3Ζ^9f.⅟▒E┌Fρ_╬a→‘KΘw⁽oXH‽M}HkW">⁸‘p

First of all, the 3rd function:
                                    ▓  name this "▓" (example input: 15)                          [15]
³³                                     Create 4 extra copies of the top thing (number of things)  [15, 15, 15, 15, 15]
  q                                    output without popping one of them                         [15, 15, 15, 15, 15]
   "...‘o                              output " bottle"                                           [15, 15, 15, 15, 15]
         H?   }                        if pop-1 [isn't 0]                                         [15, 15, 15, 15]
            so                           output "s"                                               [15, 15, 15, 15]
               5\                      push if POP divides by 5                                   [15, 15, 15, 1]
                 ;                     swap [if divides & another number copy]                    [15, 15, 1, 15]
                  3\«                  push if POP divides by 3, multiplied by 2                  [15, 15, 1, 2]
                     +                 add those together                                         [15, 15, 3]
                      "...‘            push "buzz fizz fizzbuzz beer"                             [15, 15, 3, "buzz fizz fizzbuzz beer"]
                           ...‘o       output " of " (done over here to save a byte for a quote)  [15, 15, 3, "buzz fizz fizzbuzz beer"]
                                θ      split ["buzz fizz fizzbuzz beer"] on spaces                [15, 15, 3, ["buzz","fizz","fizzbuzz","beer"]]
                                 w     get the index (1-indexed, wrapping)                        [15, 15, ["buzz","fizz","fizzbuzz","beer"], "fizzbuzz"]
                                  o    output that string                                         [15, 15, ["buzz","fizz","fizzbuzz","beer"]]
                                   X   pop the array off of the stack                             [15, 15]

The first function:
Ƨ, o▓k
     k  name this "function" "k"
Ƨ, o    output ", "
    ▓   execute the "bottleify" function

The second function:
"πFT+╔¡‘oW
         W  call this "W"
"πFT+╔¡‘    push " on the wall"
        o   output it

And the main part:
MH∫}                                     repeat 99 times, each time pushing index
    ¹                                    wrap in an array
     ±                                   reverse it
      {                                  iterate over it
       ▓                                 execute that function
        W                                execute that function
         k                               execute that function
          Ƨ.¶o                           output ".\n"
              H¡                         push if POP-1 isn't 0 (aka 1 if pop <> 1, 0 if pop == 1)
                "...‘                    push "Stake one down and pass it aroundSgo to the store and buy some more"
                     K                   push the first letter of that string
                      Θ                  split ["take one down and pass it aroundSgo to the store and buy some more" with "S"]
                       w                 gets the xth (1-indexed, wrapping) item of that array
                        ⁽o               uppercase the 1st letter and output
                          X              pop the array off
                           H‽            if pop-1 [isn't 0]
                             M           push 100
                              }          ENDIF
                               H         decrease POP
                                k        execute that function
                                 W       execute that function
                                  ">⁸‘p  output ".\n\n"

Lost a couple bytes because of a bug that O puts a newline before and after it (And somehow this goes back to V0.9 (this is V0.11 code))

JavaScript (ES6), 316 309 bytes
This is a full program rather than a function. Nothing very creative, it's just the naive approach (hence the bytecount!). I am using console.log() instead of alert() because many browsers have limit on the number of chars that can be displayed using alert(). Note that all the whitespaces and newlines are necessary.
a="";for(i=99;i>0;i--){b=j=>"bottle"+(j>1?"s":"");d=a=>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer");w=" on the wall";o=" of ";a+=`${i+" "+b(i)+o+d(i)+w+", "+i+" "+b(i)+o+d(i)}.
${i>1?"Take one down and pass it around, ":"Go to the store and buy some more, "}${(y=i-1?i-1:99)+" "+b(y)+o+d(y)+w}.

`;}console.log(a)

Ungolfed :
let accumulator = "";
for(let i = 99; i>0; i--){
    let bottleString = j => "bottle"+(j>1?"s":""),
    drink = a =>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer",
    wallString = " on the wall",
    of=" of ";
    accumulator += `${i+" "+bottleString(i)+of+drink(i)+wallString+", "+i+" "+bottleString(i)+of+drink(i)}.
${i>1?"Take one down and pass it around, ":"Go to the store and buy some more, "}${(y=i-1?i-1:99)+" "+bottleString(y)+of+drink(y)+wallString}.

`;
}

console.log(accumulator);

Here's the Snippet :

a="";for(i=99;i>0;i--){b=j=>"bottle"+(j>1?"s":"");d=a=>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer";w=" on the wall";o=" of ";a+=`${i+" "+b(i)+o+d(i)+w+", "+i+" "+b(i)+o+d(i)}.
${i>1?"Take one down and pass it around, ":"Go to the store and buy some more, "}${(y=i-1?i-1:99)+" "+b(y)+o+d(y)+w}.

`;}console.log(a)

BTW, with this answer, I have earned the bronze badge in code-golf! Never thought I will accomplish this ever (not that it's a big achievement, though.)!

Your d function doesn't need any ()s because ?: is right-associative, but you can actually save even more bytes using d=a=>(a%3?"":"fizz")+(a%5?"":"buzz")||"beer".

Java, 344 340 339 bytes
(-4 bytes after golfing fizzbuzz; -1 byte removing stray whitespace)
interface X{static void main(String[]a){for(int i=99;i>0;System.out.printf("%s on the wall, %s.%n%s, %s on the wall.%n%n",b(i),b(i--),i<1?"Go to the store and buy some more":"Take one down and pass it around",b(i<1?99:i)));}static String b(int i){return i+" bottle"+(i>1?"s":"")+" of "+(i%3<1?"fizz":"")+(i%5<1?"buzz":i%3<1?"":"beer");}}

Slightly ungolfed (using 1-space indentation to eliminate horizontal scrolling):
interface X {
 static void main(String[]a){
  for(int i=99;i>0;System.out.printf("%s on the wall, %s.%n%s, %s on the wall.%n%n",
   b(i),b(i--),
   i<1?"Go to the store and buy some more":"Take one down and pass it around",
   b(i<1?99:i)));
 }
 static String b(int i){
  return i+" bottle"+(i>1?"s":"")+" of "+(i%3<1?"fizz":"")+(i%5<1?"buzz":i%3<1?"":"beer");
 }
}

Retina, 230 bytes

99$*_
_\B
Take one down and pass it around, $.'#.¶¶$.'#, $.'.¶
^
99#, 99.¶
_
Go to the store and buy some more, 99#.
#
 on the wall
1\b|(\d+)
$& bottle$#1$*s of $&$*_
\b(_{15})+\b
fizzbuzz
\b(_{5})+\b
buzz
\b(___)+\b
fizz
_+
beer

Try it online! Explanation:

99$*_

Inserts 99 _s.
_\B
Take one down and pass it around, $.'#.¶¶$.'#, $.'.¶

Changes all but the last _ to the string Take one down and pass it around, $.'#.¶¶$.'#, $.'.¶, where ¶ is a newline and $.' is the count of remaining underscores. This effectively counts back from 98 to 1.
^
99#, 99.¶

Adds the first line of the first verse in "compact" format.
_
Go to the store and buy some more, 99#.

Adds the second line of the last verse. Why I need jump through hoops to use the _ I don't know, but $ seems to match twice, so I can't use that. Go figure.
#
 on the wall

Substitutes a string which appears several times in the verse.
1\b|(\d+)
$& bottle$#1$*s of $&$*_

This matches the integers in the verses, and suffixes the appropriate bottle(s) of, and expands back to unary again, in preparation to choose the beverage. (I save 1 byte on on the 99s this way.)
\b(_{15})+\b
fizzbuzz
\b(_{5})+\b
buzz
\b(___)+\b
fizz
_+
beer

Replace exact multiples with the appropriate beverage.

sed, 468 459 456 bytes
s:^:99 bottles of fizz on the wall, 99 bottles of fizz.:
p
s:99:I8:g
s:fizz:XYYZ:g
x
s:^:Take one down and pass it around, I8 bottles of XYYZ on the wall.\n:
G
x
:
g
s:XXX:fizz:g
s:Y{5}:buzz:g
s:\bX*Y*Z:beer:g
s:[XYZ]::g
y:ABCDEFGHI:123456789:
s:\b0::g
/ 1 /bq
p
x
s:^::
tc
:c
s:(\S)0:\1@:g
Td
y:ABCDEFGHI:0ABCDEFGH:
:d
y:123456789@:0123456789:
s:(XXX)*(Y{5})*(Y*Z):XY\3:g
x
b
:q
s:es:e:g
aGo to the store and buy some more, 99 bottles of fizz on the wall.

Try it online!
Requires -r flag.
Explanation
Hold space holds the pattern of two repeating lines, with numbers represented as [A-I][0-9] (separate digits for tens and ones) and the kind of beverage represented as X*Y*Z, where X keeps track of -N mod 3, and Y of -N mod 5.
On each subsequent iteration, the numbers get decremented and the Xs and Ys get updated. Then hold space gets copied to the pattern space, turned into lines of the song, and printed.

Javascript (ES6), 236 234 233 232 bytes
for(i=99;i;console.log(z()+`, ${z(_)}.
${--i?'Take one down and pass it around':'Go to the store and buy some more'}, ${z()}.

`))z=(o=' on the wall',j=i||99)=>j+` bottle${j>1?'s':_} of `+((j%3?_:'fizz')+(j%5?_='':'buzz')||'beer')+o

Demo

// replace console.log to avoid 50-log limit in snippets:
console.log=_=>document.write(`<pre>${_}</pre>`)

for(i=99;i;console.log(z()+`, ${z(_)}.
${--i?'Take one down and pass it around':'Go to the store and buy some more'}, ${z()}.

`))z=(o=' on the wall',j=i||99)=>j+` bottle${j>1?'s':_} of `+((j%3?_:'fizz')+(j%5?_='':'buzz')||'beer')+o

Ungolfed
i = 99  // start counter at 99

z = (   // define function z which takes arguments with defaults:
   o = ' on the wall', // o = defaults to ' on the wall'
   j = i || 99         // j = defaults to value of counter i - or 99 when i == 0
) =>
    j +                 // our current j counter
    ' bottle' +
    (j > 1 ? 's' : _) + // choose 's' when we have more than 1 bottle, or blank _
    (
        (j % 3 ? _ : 'fizz') +      // if j % 3 is 0, add 'fizz', otherwise blank _
        (j % 5 ? _ = '' : 'buzz')   // if j % 5 is 0, add 'buzz', otherwise blank _
                                    // _ gets defined here since it's the first place it's used
            ||                      // if no fizz or buzz, result is a falsey empty string
        'beer'                      // replace falsey value with 'beer'
    ) +
    o                               // append o

while (i) {         // while counter is non-zero
    console.log(    // output string:
        z() +       // call z without o argument
        ', ' +
        z(_) +      // call z with blank _ for o to block ' on the wall' here
        '.\n' +
        ( --i       // decrement i, if still non-zero:
            ? 'Take one down and pass it around'
                    // otherwise:
            : 'Go to the store and buy some more'
        ) +
        ', ' +
        z() +       // another call to z without o
        '.\n\n'
    )
}

C, 349 345 344 bytes
#define b(x)x^1?" bottles":" bottle"
#define g i-1?"Take one down and pass it around":"Go to the store and buy some more"
*w=" on the wall";*s(x){return x?x%15?x%5?x%3?"beer":"fizz":"buzz":"fizzbuzz":"fizz";}i=100;main(){while(--i){printf("%d%s of %s%s, %d%s of %s.\n%s, %d%s of %s%s.\n",i,b(i),s(i),w,i,b(i),s(i),g,i-1?i-1:99,b(i-1),s(i-1),w);}}

Well, there you go. That took an hour.
Try it online!

Ruby, 261 bytes
99.downto(1){|i|w=' on the wall'
f=->x{a='';x%3<1&&a+='fizz';x%5<1&&a+='buzz';a<?a&&a='beer';"%d bottle%s of %s"%[x,x<2?'':?s,a]}
puts [f[i]+w,f[i]+?.+$/+(i<2?'Take one down and pass it around':'Go to the store and buy some more'),f[i<2?99:i-1]+w+?.+$/*2]*', '}

Try it online!

shortC, 314 312 bytes
Db(x)x^1?" bottles":" bottle"
Dg i-1?"Take one down and pass it around":"Go to the store and buy some more"
*w=" on the wall";*s(x){Tx?x%15?x%5?x%3?"beer":"fizz":"buzz":"fizzbuzz":"fizz";}i=100;AW--i){R"%d%s of %s%s, %d%s of %s.\n%s, %d%s of %s%s.\n",i,b(i),s(i),w,i,b(i),s(i),g,i-1?i-1:99,b(i-1),s(i-1),w

Sorry there's no explanation, but I completely forgot how this works.

You should consider adding another answer in shortC that follows the logic of this answer, to see how it golfs. Also, it looks like in both your answers you only use your macro for g once, you should be able to inline it and save a few bytes

Can you post the expanded version?

@CalculatorFeline The equivalent C code is already here, if that's what you're asking for

Charcoal, 307 297 bytes
Ａ”｜‽2?{:×G↗”¦αＡ“6«eMηOU¶¿”¦ζＡ“9“e▷·gqε-g}”¦βＡ“9Ｂ{⦃⁺Ｂφ=；λO”¦ωＡfizz¦φＡbuzz¦γＡbeer¦ηＡ”↶C▶▶d℅d¬r·ＵS\λＴθＮevＴ◧→GM⁸ωβ”¦τＡ“M↧k↓⁺*f÷,ψＺ¢▶\¿｜Ｐ“№κ×υpξＸoＷ”¦σＡ.¶πＦ⮌…¹¦¹⁰⁰«Ａ⎇⁻ι¹αζθ¿∧¬﹪ι³¬﹪ι⁵Ａ⁺φγε¿¬﹪ι³Ａφε¿¬﹪ι⁵ＡγεＡηε⁺⁺⁺⁺⁺⁺⁺ＩιθεβＩιθεπ¿⁻ι¹Ａ⁻ι¹λＡ⁹⁹λＡ⎇⁻λ¹αζθ¿∧¬﹪λ³¬﹪λ⁵Ａ⁺φγε¿¬﹪λ³Ａφε¿¬﹪λ⁵ＡγεＡηε¿⁻ι¹ＡτδＡσδ⁺⁺⁺⁺δλθεω

Try it online!
YES, WE CAN! Link to the verbose version, this can be golfed a lot, I'm sure.

Sadly you forgot to actually link to the verbose version, but that run of ⁺s looks suspicious...

tcl, 298
proc B i {set x " bottle[expr $i>1?"s":""] of [expr $i%3?$i%5?"beer":"":"fizz"][expr $i%5?"":"buzz"]"}
set i 99
time {puts "$i[B $i][set w " on the wall"], $i[B $i].
Take one down and pass it around, [incr i -1][B $i]$w."} 98
puts "1[B $i]$w, 1[B $i].
Go to the store and buy some more, 99[B 9]$w."

demo

Deadfish~, 88919 bytes
Try it online
Code is too long for answer.

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


text:
Extract the Coefficients of a Linear Equation
Given a linear equation mx+n, return n and m. However, the equation may be in any of the following formats:
5x+2 -> 5 2
5x-2 -> 5 -2
5x   -> 5 0
-2   -> 0 -2
x    -> 1 0

Here are the formats, where each ? stands for a positive integer written without leading zeroes
?x+?
?x-?
-?x+?
-?x-?
x+?
x-?
?
-?
?x
-?x
x

All of these cases must be handled.
Specifications:

You can assume that the equation is in one of the above formats, i.e. it matches the regex ^(-?[123456789]\d*)?x([+-][123456789]\d*)?|-?[123456789]\d*$.

Test Cases:
-2x+3 -> -2 3
44x   -> 44 0
-123  -> 0 -123
x     -> 1 0
-1x   -> -1 0

What about output formats? Would e.g. 1 +2 be a valid output for 1x+2?

Adding on to what @PeterTaylor said, the python answer adds an L to the end of numbers if they get too big. Should this be allowed?

@PeterTaylor You can use any valid output format.

Is it valid to output constants as length-1 lists, and true linear polynomials as length-2 lists? So for example, 7x is output as 7 0 but 7 is output as just 7?

@GregMartin No, you must always output both numbers.

@Challenger5 are leading spaces allowed (for negative numbers), i.e. -2x -> <space>-2 0

(1) The list of cases is missing x+? and x-?. (2) Is it on purpose that the regex (as well as the list) is excluding -x, -x+? and -x-? ? (3) Those are expressions, not equations. :P

@ØrjanJohansen (1) Fixed. (2) No, but I'm afraid I'll break existing answers. (3) y=

327x is a valid input? 3y is a valid input? If both 23*x and 23x are valid input it seems to me not a  question but one regex one...

@RosLuP The *s in the regex are metacharacters, it is not allowed in the input.

Python 2, 55 bytes
j=1j
c=eval(input().replace(*'xj'))
print c.imag,c.real

Try it online!
Uses Python's built-in code evaluation. The input is formatted like a complex number by replacing x withj, Python's complex unit. Because only literals like 2j are recognized, but not j or -j, the variable j is assigned as 1j to cover those.
Unfortunately, Python doesn't seem to have a built-in to convert a complex number to a pair of reals.

Oh nice thinking :D

Mathematica, 16 bytes
Inspired by xnor's Python 2 answer:
ReIm[I#/.x->-I]&

Takes input as a literal expression (not a string), and returns a pair of numbers. It works by making x a complex number then taking the real and imaginary parts — the only non-obvious bit is multiplying by i to start with, to get the output in the right order.
We can also use
ReIm[x=-I;I#]&

for 14 bytes (tied with Jelly!), but setting x to equal -i before taking the input, instead of just replacing x afterwards, feels like cheating…

Nice solution. I never new it had a ReIm function, I've always been doing {Re[#],Im[#]}&. You've helped a lot there.

@IanMiller, ReIm was only introduced in version 10.1, so it's possible your copy of Mathematica doesn't have it.

Ah. I do have 10.1 but I have been using old versions for far longer. They add way too many functions each update. :).

JavaScript (ES6), 53 48 bytes
s=>([a,b]=s.split(/x\+?/),1/b?[a||1,b||0]:[0,s])

Test cases

let f =

s=>([a,b]=s.split(/x\+?/),1/b?[a||1,b||0]:[0,s])

console.log(f("-2x+3")) // -> -2 3
console.log(f("44x"))   // -> 44 0
console.log(f("-123"))  // -> 0 -123
console.log(f("x"))     // -> 1 0
console.log(f("-1x"))   // -> -1 0

works not for -x try my regex

@JörgHülsermann If I understand the rules correctly, -x is not a valid input.

You are right sorry

sed, 44 42 bytes
s:+::
s:x: :
t
s:^:0 :
:
s:^ :1 :
s: $: 0:

Try it online!
I/O: one per line.
-2 bytes thanks to @KritixiLithos.

You can do t and : instead of using the a label

@KritixiLithos Seems to work somehow, thanks!

The first two substitutions can be combined into one.

Jelly, 18 14 bytes
”x;ṣ”xVṫ-µ¬ṂW+

Test suite at Try it online!
How?
”x;ṣ”xVṫ-µ¬ṂW+ - Main link: list of characters s  examples: "5x-2"         "x"       "-123"
”x             - literal 'x'
  ;            - concatenate with s                        "x5x-2"        "xx"      "x-123"
   ṣ”x         - split on 'x's                        ["","5","-2]  ["","",""]  ["","-123"]
      V        - evaluate as Jelly code (vectorises)      [0,5,-2]     [0,0,0]     [0,-123]
       ṫ-      - tail from index -1 inclusive               [5,-2]       [0,0]     [0,-123]
         µ     - monadic chain separation (call that z)
          ¬    - not z                                       [0,0]       [1,1]        [1,0]
           Ṃ   - minimum                                         0           1            0
            W  - wrap in a list                                [0]         [1]          [0]
             + - add to z (vectorises)                      [5,-2]       [1,0]     [0,-123]

Mathematica, 23 bytes
Coefficient[#,x,{1,0}]&

Try it online
copy and paste with ctrl-v this code
Coefficient[#,x,{1,0}]&[-2x+3]

and press shift+enter to run

PHP, 73 Bytes
preg_match("#((.*)x)?\+?(.*)#",$argn,$t);echo$t[1]?$t[2]?:1:0," ",+$t[3];

Try it online!
PHP, 91 Bytes
works also with -x

preg_match("#((-)?(\d+)?x)?\+?(-?\d+)?#",$argn,$t);echo$t[2],$t[1]?$t[3]?:1:0," ",$t[4]?:0;

Try it online!

Python 2, 71 bytes
lambda s:([0,]+[int(x or`1-i`)for i,x in enumerate(s.split('x'))])[-2:]

Try it online!

Mathematica, 33 bytes
#~CoefficientList~x/.{a_}:>{a,0}&

Pure function taking an expression in the expected format (note: not a string, but a pure expression like -2x+3), and returning an ordered pair of integers with the constant coefficient appearing first (for example, -2x+3 returns {3,-2}).
The builtin CoefficientList (which works for polynomials of any degree) does the heavy lifting; its default behavior is to return constants as length-1 lists, so /.{a_}:>{a,0} overrides that and makes the 0 coefficient of x appear explicitly.

I was wondering how long it would be until a Mathematica answer was posted.

Retina, 38 bytes
x$
x+0
^[^+-]*$
0x+$+
^[^-\d]
1$+
-
+-

Definitely can be improved.
Possibly stretching how we are allowed to format output. It just outputs a complete equation, as in n and m separated by x+
Try it online!

This fails for an input like x-1

@Leo Thanks, fixed.

I'm fairly confident you can replace [^+-]* with \w*

Octave, 45 bytes
@(a)[imag(u=eval(strrep(a,'x','j'))),real(u)]

Try it online!
Evaluate the expression, with x replaced by complex j. Octave is very flexible when it comes to complex expressions, with j,1j,i and 1i all equivalent (with the advantage that 1j and 1i cannot be overwritten by variables, but that's irrelevant for this challenge). Inline expression is used to build a list of [imag(u) real(u)] with u the complex number.
I initially wanted to try a more idiomatic approach, using the built-in sym2poly. For example (already at 47 bytes to make sure 0*x is handled):
@(a)sym2poly([strrep(a,'x','*x') '+x^2']))(2:3)

This one however failed on the case of x without coefficient. In the end a real/complex setup like xnor turned out to be optimal.

MATL, 12 bytes
120'i'ZtU&Zj

Try it online!
Port of my Octave answer, but of course adapted for compactness in MATL. Explanation:
120'i'Zt     % Replace character 120 ('x') by 'i' in input (implicit).
             % (Used 120 instead of 'x' to save a separator between 'x' and 'i')
        U    % Convert string to complex number
         &Zj % Split complex number in real and imaginary part. Implicit display.

C (gcc),145 138 112 bytes
f(char*s){int a,b,i=0;sscanf(s,"%dx%d",&a,&b);if(L!=0)i=(int)(L-s);printf("%d %d",s[i]=='x'?a:0,s[i]=='x'?b:a);}

Try it online!
void f(char*s)
{
    int a,b,i=0;
    sscanf(s,"%dx%d",&a,&b);

    if(L!=0)
      i=(int)(L-s);

    printf("%d %d",s[i]=='x'?a:0,s[i]=='x'?b:a);
}

Can definitely be shortened, but dont see it now!

You don't need the space in char *s 2. Can't you remove whitespace?

@Challenger5 Thanks! I used a random online byte counter website yesterday, tried it now on TIO, code is a lot shorter, thanks for pointing out! :)

Suggest printf("%d %d",s[i]-'x'?:a,s[i=L?L-s:i]-'x'?a:b); instead of if(L!=0)i=(int)(L-s);printf("%d %d",s[i]=='x'?a:0,s[i]=='x'?b:a); and index() instead of strchr()


text:
Tips for golfing in ///
What general tips do you have for golfing in ///? I'm looking for ideas which can be applied to code-golf problems and which are also at least somewhat specific to /// (e.g. "remove unnecessary whitespace" is not an answer). Tips for itflabtijtslwi and Lines are on-topic and valid here as well.
Please post one tip per answer.

Use // as a replacement
When you define a bunch of replacements, e.g.:
/a/b//c/d//e/f//g/h//i/j//k/l//m/n//o/p//q/r//s/t//u/v//w/x//y/z/

(65 bytes).
You can use // as a replacement:
/~/\/\///a/b~c/d~e/f~g/h~i/j~k/l~m/n~o/p~q/r~s/t~u/v~w/x~y/z/

(61 bytes).

When expanding on a basis and printing intermediate results, incorporate previous iterations in future ones
That sounded a bit convoluted. What I mean might better be described using an actual answer. This challenge requires this specific output:
Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.

One naive solution might be:
/1/Steve Ballmer still does not know//2/ what he did//3/ wrong//4/ with mobile./1.
12.
123.
1234

Notice how the pattern 1, 12,123 ... is repeated? Well, not when you do this:
/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong//4/3 with mobile/1.
2.
3.
4.

Once again, thanks go to Martin Ender for pointing this out!

Incomplete /// blocks are not printed
Note that this line of code
/Stack/Overflow//x/\//Stack/ignore/DoItyignore

prints only Overflow - the part from /ignore onwards is not included in the output, because /// only prints things in its third slash-part.
Try the incomplete block online!
It is however still considered by the replacer: if we were to inject a slash in there, things change:
/Stack/Overflow//x/\//Stack/ignore/doitxignore

Try that online!
Output here is Overflowdoit, because replacing x with / made it valid syntax.

Use a character at the end of code to handle edge cases
When you have a piece of /// code that handles all but one case, then you can use a character at the edge of the code to handle the edge case.
Example: Unary add two numbers together unless the second number is 7, in which case just output the first number.
Code that handles all but the "second number is 7" case:
/+//<INPUT 1>+<INPUT 2>

By adding a * to the end of the code, we can handle the edge case by replacing +0000000* with nothing (it is necessary to include the + to makes sure the number is not greater than 7). Make sure to include code at the end before the input to clean it up.
/+0000000*///+///*//<INPUT 1>+<INPUT 2>*

Try it online!
For a "real-world" example, I used this trick on some of the "Jimmy" problems:

https://codegolf.stackexchange.com/a/187652/64159
https://codegolf.stackexchange.com/a/187789/64159


text:
Compute the Discrete Cosine Transform
Implement the Discrete Cosine Transform (DCT). This may implemented as either a function or a program and the sequence can be given as either an argument or using standard input. Your program must be able to handle sequences of any length (assuming a hypothetical version of your language which has no limits on things like memory and integer size).
There was a previous challenge for DFT, now lets compute DCT! ;-)
Use the DCT-II definition from Wikipedia:

Your program takes a sequence xn as input, and must produce the corresponding sequence Xk. In this formula, the cosine is in radians.
Rules

This is code-golf so the shortest solution wins.
Builtins that compute the DCT in forward or backward (also known as inverse) directions are not allowed.
Floating-point inaccuracies will not be counted against you.
You don't have to use the exact algorithm shown here, as long as you produce the same results.

Mind including an explanation on what DCT is?

The Wikipedia page shows several different versions. Can you please clarify? Voting to close for now.

@Nick Clifford lets assume DCT-II from that wikipedia page, as it clearly says: The DCT-II is probably the most commonly used form, and is often simply referred to as "the DCT"

@FryAmTheEggman lets use definition for DCT-II

@numbermaniac it is DCT-II

Please add some test cases.

@Shaggy Producing test cases requires working code, which i, unfortunately, dont have by hand right now.

@xakepp35 Why not put it into a CAS system like https://www.symbolab.com/ and get test cases from that?

@numbermaniac too hard to be a challenge. better close it.

very low people even knows what is it, consider it is kind of alchemistry) its almost impossible to compute DCT, as is impossible to get Au from Hg ;-)

please, post test cases as you get ones, from working algorithm, i have none by hand and is too silly for using so hard maths. and we could discuss these cases, if that will be actually required ;-)

@xakepp35 how do we know if our program is correct, if we don't have at least two test cases to test it against? Specifically, as long as you produce the same results as what?

Jelly, 15 bytes
LḶµ+.×þ÷L-*Ḟ³æ.

Try it online!
This uses the identity that cos(pi * x) = real(e^(i * pi * x)) = real((-1)^x)
Explanation
LḶµ+.×þ÷L-*Ḟ³æ.  Input: array A
L                Length
 Ḷ               Lowered range - [0, 1, ..., len(A)-1]
  µ              Begin a new monadic chain
   +.            Add 0.5
     ×þ          Outer product using multiplication
       ÷         Divide by
        L        Length
         -*      Compute (-1)^x
           Ḟ     Real part
             æ.  Dot product with
            ³    The first argument (A)

Mathematica, 79 bytes
Tr/@(s=#;x=Length@s;Table[s[[n+1]]Cos[Pi/x(n+1/2)#],{n,0,x-1}]&/@Range[0,x-1])&

Since there are (currently) no test cases, as it turns out, there is a built-in for this: FourierDCT. However, the function "normalizes" the result by dividing it by a value before returning it. Thankfully, the documentation specifies that this division factor is just the square root of the input list's length (for DCT-II).
So, we can verify our results by multiplying the output of FourierDCT by the square root of the length of our input list. For anyone else who tries this problem, here are some test cases:
FourierDCT@{1,3,2,4}*Sqrt@4

{10, -2.38896, 0, -2.07193}

FourierDCT@{1,1,1,1,1}*Sqrt@5

{5, 0, 0, 0, 0}

Note that I've slightly edited the output of the last one; the last four values output as very small decimals, around 10-16, due to floating point precision errors around 0. My answer does give 0 for them, if you convert it to a decimal.
This solution gives exact answers when Mathematica can do so. If that's not okay and you want decimals, let me know.

C (gcc), 88 83 78 77 bytes
k;d(a,b,c)float*a,*b;{for(k=c*c;k--;)b[k/c]+=a[k%c]*cpow(-1,k/c*(.5+k%c)/c);}

Try it online!
This assumes the output vector is cleared before use.
Thanks to @Peter Taylor for -5

Clojure, 100 bytes
#(for[c[(count %)]k(range c)](apply +(map(fn[n x](*(Math/cos(*(/ c)Math/PI(+ n 0.5)k))x))(range)%)))

Sometimes it is difficult to be creative.

Octave, 49 46 45 42 bytes
Here we consider the DCT as a matrix multiplication. The matrix is basically the entry-wise cosine of a rank 1 matrix which is very simple to construct.
Thanks @Cowsquack for -1 byte, thanks @ceilingcat for another -3 bytes!
@(x)cos(pi/(n=numel(x))*(0:n-1)'*(.5:n))*x

Try it online!

Can you use .5 instead of 1/2?

D'oh, of course!

Oh of course, thanks a lot!

Suggest rows() instead of numel()

Mathematica, 51 49 bytes
Re@Total[I^Array[(2##+#2)/n&,{n=Length@#,n},0]#]&

Try it online! (Using Mathics)
Based on my solution to DFT.


text:
Unshorten Google Links
Challenge
Given a valid goo.gl shortened link, output the original URL.
Example
goo.gl/qIwi3N would give something like https://codegolf.stackexchange.com/. For input, you can choose to have the https?:// at the beginning, you can choose to have www. before the goo.gl, and you can also choose to get rid of the goo.gl if you only want the end of the URL. A slash at the end is optional for input and output. So, your input will end up matching the regex (https?://)?(www\.)?(goo\.gl/)?[A-Za-z0-9]+/?. For the output, you can choose whether or not to output https?://, whether or not to output www., and whether or not to output a trailing slash. However, you must be consistent with your I/O formatting.
I will say that you do not have to be consistent with https vs. http for output (but you must be consistent for input), as long as you are consistent with whether or not you include the whole https?:// part.
Test Cases
These are written with no https://, no www., no trailing slash in the input; yes https://, no www., and yes trailing slash in the output.
input -> output
goo.gl/HaE8Au -> https://codegolf.stackexchange.com/
goo.gl/IfZMwe -> https://stackoverflow.com/
goo.gl/JUdmxL -> https://chat.stackexchange.com/rooms/240/the-nineteenth-byte

Assumptions

You may assume that the shortened link will not point to another shortened link and that the destination site will return a status code of 2xx or 4xx (no redirections).

You can go here and enter a URL to apply the inverse operation of this: https://goo.gl/

@HelkaHomba fixed

Weather or notr to output a leading www. makes a difference. It is just in most cases the same server it refers to. Try for example http://pks.mpg.de and http://www.pks.mpg.de. The first cannot be resolved, while the latter can.

@StephenS Done, thanks for the suggestion.

CJam, 7 bytes
lg'"/5=

Test run
$ alias cjam
alias cjam='java -jar ~/.local/share/cjam-0.6.5.jar'
$ cjam unshorten.cjam <<< goo.gl/HaE8Au; echo
https://codegolf.stackexchange.com/
$ cjam unshorten.cjam <<< goo.gl/IfZMwe; echo
https://stackoverflow.com/
$ cjam unshorten.cjam <<< goo.gl/JUdmxL; echo
https://chat.stackexchange.com/rooms/240/the-nineteenth-byte

How it works
lg reads a line from STDIN and makes a GET request to that URL. The shortened URL issues a 301 redirect, which CJam doesn't follow. For the first test case, this pushes

<TITLE>Moved Permanently</TITLE>

Moved Permanently

The document has moved here.

on the stack. Finally, '"/ splits at double quotes, and 5= gets the sixth chunk. Output is implicit.

I've tried 05AB1E and Pyth, they both follow the 301 :(

Bash, 28 24 bytes
curl -I $1|grep -oehtt.*

The output ends with a Windows-style newline, which I assume is acceptable.
Test run
$ bash unshorten.sh 2>&- goo.gl/HaE8Au
https://codegolf.stackexchange.com/
$ bash unshorten.sh 2>&- goo.gl/IfZMwe
https://stackoverflow.com/
$ bash unshorten.sh 2>&- goo.gl/JUdmxL
https://chat.stackexchange.com/rooms/240/the-nineteenth-byte

How it works
curl -I sends a HEAD request, so it fetches only the HTTP headers of the specified URL. For the first test case, it prints
HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Date: Sat, 13 May 2017 05:51:48 GMT
Location: https://codegolf.stackexchange.com/
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding

or similar. The output is piped to grep -oehtt.*, which displays only parts that match the specified regex, i.e., the string htt followed by any amount of characters up to the end of the line.

How does this work?

I've added an explanation.

Hehe, well explained! In that way i will learn bash soon :-D

This performs wildcard expansion on htt.* so assumes no files matching it exist in the current directory. For most regexes, I'd agree on this site that the possibility of a file being matched are small enough that it's okay, but in this case, I don't think so, myself. The Linux kernel source code includes files named htt.c and htt.h, for instance. Changing it to grep -oehtt.* does not increase the byte count, but does make it significantly less likely to cause problems.

@hvd I usually assume that the program is run in an otherwise empty directory, but -oehtt.* is a nice way to make it more reliable.

Python 2 + requests, 44 bytes
from requests import*
print get(input()).url

requests.get(URL) issues a GET request to the specified URL. The response object's url field contains the final URL, after any redirects. A protocol (e.g. http://) is required for the input, and the input is expected to be in quotes.

requests isn't built-in, so that needs to be added to the language header.

Use a lambda expression for -3 bytes

@numbermaniac Whoops, you're right, I get so used to requests that I forget it's a third party lib.

PHP, 36 Bytes
Input with https://
<?=substr(get_headers($argn)[7],10);

get_headers
25 Bytes if Location:  at the beginning must not removed
<?=get_headers($argn)[7];

if Google changes the HTTP Header here is a safer version

preg_match("#Location: \K.*#",join("\n",get_headers($argn)),$t);echo$t[0];

Python 2, 43 bytes
Has no dependencies and is currently shorter than the other Python answer. shrug Input must match https?://goo\.gl/.*?/?
lambda s:urlopen(s).url
from urllib import*

NodeJS, 60 bytes
u=>require("http").get(u,r=>console.log(r.headers.location))

Input is in the format http://goo.gl/<id>.