text:
All Binary Combinations to Decimal
Disclaimer
This question is not a duplicate of this question. I'm not counting specific digits, as we already have those set in the initial parameters. This question is focusing on the decimal numbers that can be constructed from the binary strings based on the digits provided.
Challenge
Given two integers X and Y, representing the number of zeroes (0) and ones (1) respectively, calculate all the possible decimal equivalents that can be determined from creating binary strings using only the zeroes and ones provided, and display them as output.
Example 1:
Input: 0 1
Output: 1
Explanation: Only one 1 to account for, which can only be converted one way.
Example 2:
Input: 1 1
Output: 1,2
Explanation: 01 converts to 1, 10 converts to 2.
Example 3:
Input: 3 2
Output: 3,5,6,9,10,12,17,18,20,24
Explanation: Three 0s and two 1s make 00011 (3), 00101 (5), 00110 (6), 01001 (9), 01010 (10), 01100 (12), 10001 (17), 10010 (18), 10100 (20), 11000 (24)
Limitations and Rules

I will only expect your code to work where 0 < X + Y <= 16 so the maximum number in the output could only occur from 16 1s, i.e. parameters 0 and 16.
As a result of the above limitation, the range of numbers we'd expect in the output are from 0 and 65535.
I will accept functions or code, so long as the resulting output is provided, whether this be a comma separated list, an array, list outputted to STDOUT, etc. The only criteria I must stress about the output is that it must be sorted.
This is code golf, minimum bytes will receive maximum glory.
We will not tolerate silly loopholes

Does the output have to be sorted?

Hi @Dennis, yes, I forgot to mention that... the output must be sorted. I've updated the rules accordingly.

Do we need to handle case 0 0?

@ETHproductions I mentioned above that 0 <= X + Y <= 16, so yes, because 0 0 would be considered valid input that satisfies that rule.

In that case, what's the expected output for 0 0? The number 0 can be represented by zero, one or more zeroes.

Ah, good point... in that case... the answer is reverted to "No", and I will update the previous comments and brief accordingly.
Drat: can no longer update the previous comment... See the actual brief for corrected rules.

any delimiter? sort in any direction?

Spaces, commas, array, new lines... So long as we can determine there's a list, that's all that matters. As to direction, so long as its sorted, it should be fine. I'm getting an idea of what you're thinking of doing... Let's see if my hunch is right...

Jelly, 8 bytes
0,1xŒ!ḄQ

Try it online!
How it works
0,1xŒ!ḄQ Main link. Argument: [x, y]

0,1x     Repeat 0 x times and 1 y times.
    Œ!   Compute all permutations of the result.
      Ḅ   Unbinary; convert each permutation from base 2 to integer.
       Q  Unique; deduplicate the results.

This is quite impressive... Is there much call for J in the general programming market? I noticed Jelly is based off it?

It has a user base in some specific applications (mostly math/statistics), but I honestly don't know. I haven't used J outside of code golf.

@WallyWest It isn't called for often because it is best suited for an environment that would benefit from functional programming. Usually only for very specialized programming.

Python, 60 bytes
lambda x,y:[n for n in range(1<<x+y)if bin(n).count('1')==y]

Test it on Ideone.
How it works
All positive numbers that can be represented in binary with x zeroes and y ones is clearly smaller than 2x + y, since the canonical binary representation of the latter has x + y + 1 digits.
The lambda simply iterates over the integers in [0, 2x + y) and keeps all integers n in that range that have y ones. Since n < 2x + y is can be represented with x (or less) zeroes.

Mathematica, 59 57 bytes
A usual outcome with Mathematica: high-level functions = good, long function names = bad.
#+##&~Fold~#&/@Permutations@Join[0&~Array~#,1&~Array~#2]&

Join[0&~Array~#,1&~Array~#2] creates a list with the correct number of 0s and 1s. Permutations generates all permutations of that list, without repetitions (as I learned) and in sorted order. #+##&~Fold~# (a golfuscated version of #~FromDigits~2) converts a list of base-2 digits into the integer they represent.
Previous version, before Martin Ender's comment:
#~FromDigits~2&/@Permutations@Join[0&~Array~#,1&~Array~#2]&

Nevertheless, well observed and documented... Mathematica is great for number crunching, not as good for code golf... well, some of the time...

FromDigits can usually be shortened: #+##&~Fold~#&/@Permutations...

@MartinEnder: I get it! and see how to generalize to other bases as well. Thank you for teaching me this clever idiom.

Credits for coming up with it go to alephalpha. ;)

It turns out that switching to Dennis's approach is shorter though: Select[Range[2^+##]-1,x=#;DigitCount[#,2,1]==x&]&

Nice (I would upvote). I'm here to learn :)

#+##&~Fold~#&/@Permutations@Boole@Table[i>#,{i,+##}]& 53 bytes.

CJam (15 14 bytes)
{As.*s:~e!2fb}

This is an anonymous block (function) which takes input as an array [number-of-ones number-of-zeros] and returns output as an array.
Online demo

A long way off the mark, but more interesting: this is without permutation builtins or base conversion:
{2\f#~1$*:X;[({___~)&_2$+@1$^4/@/|_X<}g;]}

It would work nicely as a GolfScript unfold.

I was trying to replace the ee{)*}/ with something using .* and came up with this 14-byte solution: {As.*s:~e!2fb} The s:~ looks a bit inefficient now though.

@MartinEnder, I actually started with .* and decided that ee was nicer than e.g. 2,:a.*e_. I didn't realise though that e! will give the same output regardless of the order of its argument.

Yeah, I only discovered this the other day myself.

Japt, 16 bytes
'0pU +'1pV)á mn2

Test it online!
How it works
                  // Implicit: U = first integer, V = second integer
'0pU              // Repeat the string "0" U times.
     +'1pV)       // Concatenate with the string "1" repeated V times.
           á      // Take all unique permutations.
             mn2  // Interpret each item in the resulting array as a binary number.
                  // Implicit: output last expression

Alternate version, 17 bytes
2pU+V o f_¤è'1 ¥V
                   // Implicit: U = first integer, V = second integer
2pU+V              // Take 2 to the power of U + V.
      o            // Create the range [0, 2^(U+V)).
        f_         // Filter to only items where
           è'1     //  the number of "1"s in
          ¤        //  its binary representation
               ¥V  //  is equal to V.
                   // Implicit: output last expression

I've been trying to further golf both versions, but I just can't find any slack...

This looks amazing... and it works great! The interpreter isn't showing the transpiled code on the right, however? I'd love to see how it renders?

@WallyWest It transpiles roughly to ("0".p(U)+"1".p(V)).á().m("n",2); each of the .x() functions is defined in the source file.

Pyth - 11 bytes
{iR2.psmVU2

Test Suite.
{                Uniquify
 iR2             Map i2, which converts from binary to decimal
  .p             All permutations
   s             Concatenate list
    mV           Vectorized map, which in this case is repeat
     U2          0, 1
     (Q)         Implicit input

Ruby, 63 bytes
A simple implementation. Golfing suggestions welcome.
->a,b{(?0*a+?1*b).chars.permutation.map{|b|(b*'').to_i 2}.uniq}

Ungolfing
def f(a,b)
  str = "0"*a+"1"*b                   # make the string of 0s and 1s
  all_perms = str.chars.permutation   # generate all permutations of the 0s and 1s
  result = []
  all_perms.do each |bin|             # map over all of the permutations
    bin = bin * ''                    # join bin together
    result << bin.to_i(2)             # convert to decimal and append
  end
  return result.uniq                  # uniquify the result and return
end

MATLAB 57 + 6
@(a,b)unique(perms([ones(1,a) zeros(1,b)])*2.^(0:a+b-1)')

run using
ans(2,3)

ungolfed
function decimalPerms( nZeros, nOnes )
  a = [ones(1,nOnes) zeros(1,nZeros)];  % make 1 by n array of ones and zeros
  a = perms(a);                         % get permutations of the above
  powOfTwo = 2.^(0:nOnes+nZeros-1)';    % powers of two as vector
  a = a * powOfTwo;                     % matrix multiply to get the possible values
  a = unique(a)                         % select the unique values and print

What's the plus 6 bytes for?

I was about to ask the same thing

MATL, 9 bytes
y+:<Y@XBu

Try it online!
Explanation
The approach is similar to that in Dennis' Jelly answer.
y     % Implicitly take two inputs (say 3, 2). Duplicate the first.
      %   STACK: 3, 2, 3
+     % Add
      %   STACK: 3, 5
:     % Range
      %   STACK: 3, [1 2 3 4 5]
<     % Less  than
      %   STACK: [0 0 0 1 1]
Y@    % All permutations
      %   STACK: [0 0 0 1 1; 0 0 0 1 1; ...; 0 0 1 0 1; ...; 1 1 0 0 0]
XB    % Binary to decimal
      %   STACK: [3 3 ... 5 ... 24]
u     % Unique
      %   STACK: [3 5 ... 24]
      % Implicitly display

Python 2 - 105 99 bytes
+8 bytes cos our output needs to be sorted
lambda x,y:sorted(set(int("".join(z),2)for z in __import__('itertools').permutations("0"*x+"1"*y)))

Impressive edit!

Thanks, I had no idea you could import modules in lambda functions.

I always thought you were allowed to have a separate import statement for the purposes of code golf. (Obviously you still need to include its length.) This might save you a byte or two?

Mathematica, 47 bytes
Cases[Range[2^+##]-1,x_/;DigitCount[x,2,1]==#]&

An unnamed function taking two arguments: number of 1s, number of 0s.
Essentially a port of Dennis's Python solution. We create a range from 0 to 2x+y-1 and then keep only those numbers whose amount of 1-bits equals the first input. The most interesting bit is probably the 2^+## which uses some sequence magic to avoid the parentheses around the addition of the two arguments.

JavaScript (Firefox 48), 85 76 74 71 70 bytes
Saved 3 bytes thanks to @Neil.
(m,n,g=x=>x?g(x>>1)-x%2:n)=>[for(i of Array(1<<m+n).keys())if(!g(i))i]

Array comprehensions are awesome. Too bad they haven't made it into official ECMAScript spec yet.
JavaScript (ES6), 109 87 79 78 71 70 bytes
(m,n,g=x=>x?g(x>>1)-x%2:n)=>[...Array(1<<m+n).keys()].filter(x=>!g(x))

Should work in all ES6-compliant browsers now. Saved 7 bytes on this one, also thanks to @Neil.

Uh, @ETHProductions, for some reason I'm getting it returning undefined now with every test run I'm doing...?

@WallyWest Make sure you're first assigning it to a variable, e.g. f=(m,n)=>..., then call it like f(3,2). If that's what you're doing, what browser are you using?

Chrome 52... I don't have firefox on this machine, so I could only test the ES6 non-Firefox version...

Trying to run it inthe browser console.

Oh, hmm. I see that problem too in Chrome. Try this eval-less version (does exactly the same thing, but 3 bytes longer): (m,n)=>{a="";for(i=0;i<1<<m+n;i++)if(i.toString(2).split(1).length==n+1)a+=i+" ";return a}

Your new format is interesting... How do you execute that?

@WallyWest Same way as before. The variable g is set to that recursive function as long as you don't pass in a third argument.

Try [...Array(1<<m+n).keys()].

@Neil Completely forgot about that for some reason. Thanks!

Actually, 21 bytes
A port of my Ruby answer. Golfing suggestions welcome. Try it online!
│+)'1*@'0*+╨`εj2@¿`M╔

How it works
          Implicit input of a and b.
│+)       Duplicate a and b, add, and rotate to bottom of stack. Stack: [b a a+b]
'1*@      "1" times b and swap with a.
'0*+      "0" times a and add to get "0"*a+"1"*b.
╨`...`M   Take all the (a+b)-length permutations of "0"*a+"1"*b
          and map the following function over them.
  εj        Join the permutation into one string
  2@¿       Convert from binary to decimal
╔         Uniquify the resulting list and implicit return.

Groovy 74 Bytes, 93 Bytes or 123 Bytes
I don't know which one you consider more fully answers the question but...
74 Byte Solution
{a,b->((1..a).collect{0}+(1..b).collect{1}).permutations().unique()}(1,2)

For an input of 1,2 you get:
[[1,0,1], [0,1,1], [1,1,0]]

93 Byte Solution
{a,b->((1..a).collect{0}+(1..b).collect{1}).permutations().collect{it.join()}.unique()}(1,2)

For an input of 1,2 you get:
[101, 011, 110]

123 Byte Solution
{a,b->((1..a).collect{0}+(1..b).collect{1}).permutations().collect{it.join()}.unique().collect{Integer.parseInt(it,2)}}(1,2)

For an input of 1,2 you get:
[5, 3, 6]

Try it out here:
https://groovyconsole.appspot.com/edit/5143619413475328

I'd be counting the 123 byte solution as this matches the output type mentioned in the brief. Well done.

Groovy 80 Bytes
based on the answer by @carusocomputing
his 123 Byte solution can be compressed into 80 Bytes:
80 Byte Solution
{a,b->([0]*a+[1]*b).permutations()*.join().collect{Integer.parseInt(it,2)}}(1,2)

For an input of 1,2 you get:
[5, 3, 6]

C (gcc), 72 68 bytes
f(a,b){for(a=1<<a+b;a--;)__builtin_popcount(a)^b||printf("%d\n",a);}

Try it online!
Unfortunately there is no popcount() in the standard library, but it is provided as a "builtin function" by GCC. The output is sorted, but in reverse order.
Thanks to @ceilingcat for shaving off 4 bytes!

Still acceptable. Nice work!

Japt, 10 bytes
ËçEÃ¬á mÍâ

Try it
ËçEÃ¬á mÍâ     :Implicit input of array
Ë              :Map each D at 0-based index E
 çE            :  Repeat E D times
   Ã           :End map
    ¬          :Join
     á         :Permutations
       m       :Map
        Í      :  Convert from binary string to integer
         â     :Deduplicate

I'm impressed... Any chance you could explain the functions from the transpiled JS I saw in the Japt interpreter?

Explanation added, @WallyWest.

PHP, 80 or 63 bytes
depending on wether I must use $argv or can use $x and $y instead.
for($i=1<<array_sum($argv);$i--;)echo$argv[2]-substr_count(decbin($i),1)?_:$i._;

prints all matching numbers in descending order delimited by underscores.
filename must not begin with a digit.
no builtins, 88 or 71 bytes
for($i=1<<array_sum($argv);$i--;print$c?_:$i._)for($n=$i,$c=$argv[2];$n;$n>>=1)$c-=$n&1;

add one byte each for only one underscore after every number.
@WallyWest: You were right. Saves 3 bytes for me from for($i=-1;++$i<...;)

Perl 6,  64 62  49 bytes
{(0 x$^a~1 x$^b).comb.permutations.map({:2(.join)}).sort.squish}

{[~](0,1 Zx@_).comb.permutations.map({:2(.join)}).sort.squish}

{(^2**($^x+$^y)).grep:{.base(2).comb('1')==$y}}

Explanation:
# bare block lambda with two placeholder parameters ｢$^x｣ and ｢$^y｣
{
  # Range of possible values
  # from 0 up to and excluding 2 to the power of $x+$y
  ( ^ 2 ** ( $^x + $^y ) )

  # find only those which
  .grep:

  # bare block lambda with implicit parameter of ｢$_｣
  {

    # convert to base 2
    # ( implicit method call on ｢$_｣ )
    .base(2)

    # get a list of 1s
    .comb('1')

    # is the number of elements the same
    ==

    # as the second argument to the outer block
    $y
  }
}

say {(0..2**($^x+$^y)).grep:{.base(2).comb('1')==$y}}(3,2)
# (3 5 6 9 10 12 17 18 20 24)


text:
"Cut and Paste Sorting"
The Challenge
Given a string containing a random sequence of unique characters A to Z (all upper case, no duplicates), determine the cut-and-paste" sort and output the sort sequence to a specific format (detailed below).
Definition of Cut-And-Paste Sort, by Example
Example string:
AKJCFEGHDBI
This string contains 11 characters, of which A, C, E, G, H, and I form the longest "lengthy sequence" from left to right that is in alphabetic order. So we base the cut-and-paste around these key letters.
If there is more than one "lengthy sequence" of equal length, the code will always favor the lengthy sequence with the biggest "stretch" across the entire string.
In the case of a slightly different string than our original example, AKGHJCFDEBI, there are three lengthy sequences of ACDE, AGHJ, and AGHI, but the code will favor the sequence with the greatest stretch, which in this case is AGHI because the distance between A and I is greatest amongst the three as opposed to the A to E in the first sequence and the A to J in the second sequence. If there happens to be more than one lengthy sequence with the same stretch length, the first lengthy sequence in alphabetic order will be chosen, just to make it easy.
The cut-and-paste sort is simply a case of plucking the appropriate letters not within the key letters and placing them back in their respective positions in alphabetic order.
Then the sort from our original example would occur as follows:
Step 1: AKJCFEGHDBI
Step 2: ABKJCFEGHDI (B gets cut and takes 8 steps to the left and gets pasted after A)
Step 3: ABKJCDFEGHI (D gets cut and takes 4 steps to the left and gets pasted after C)
Step 4: ABKJCDEFGHI (F gets cut and takes 1 step to the right and gets pasted after E)
Step 5: ABKCDEFGHIJ (J gets cut and takes 7 steps to the right and gets pasted after I)
Step 6: ABCDEFGHIJK (K gets cut and takes 8 steps to the right and gets pasted after J)

To make it easier for the purpose of this challenge we can rewrite this sort as:
B<<<<<<<<D<<<<F>J>>>>>>>K>>>>>>>>
where each letter represents the letter being cut, followed by a series of left or right arrows, represented by the < and > characters. When the arrows end, it is implied that the letter is pasted.
Bear in mind that the number of letters being cut at any one time can be more than one, so long as the letters are sequential. So if there is a string that can have two or more letters cut at any one time, the code should favor using the larger rather than perform two or more individual cut-and-pastes as this will provide a more efficient cut-paste sort.
For example:
AKGHJCFDEBI
Lengthy sequences: ACDE AGHJ AGHI; AGHI is chosen (longest stretch)
Step 1: AKGHJCFDEBI
Step 2: ABKGHJCFDEI (B<<<<<<<<)
Step 3: ABCKGHJFDEI (C<<<<)
Step 4: ABCDEKGHJFI (DE<<<<<)
        Note two or more letters can be moved as long as they are side-by-side
Step 5: ABCDEFKGHJI (F<<<<)
Step 6: ABCDEFKGHIJ (J>)
Step 7: ABCDEFGHIJK (K>>>>)

End result: B<<<<<<<<C<<<<DE<<<<<F<<<<J>K>>>>

Code Behavior
The code must take an alphabetic upper case string with unique letters (Please assume that this string will always be upper case and with all unique letters, i.e. no dupliates), and perform a cut-paste sort according to the above rules and provide a formatted string simliar to B<<<<<<<<C<<<<DE<<<<<F<<<<J>K>>>> providing the method of cutting and pasting respective letters to achieve a string in alphabetic order.
Test Cases
AKJCFEGHDBI
Result: B<<<<<<<<D<<<<F>J>>>>>>>K>>>>>>>>
AKGHJCFDEBI
Result: B<<<<<<<<C<<<<DE<<<<<F<<<<J>K>>>>
BDEFHGI
Result: H>
ABC
Result:  (already sorted)
CBA
Result: B>C>>
Rules

Code Golf: Shortest code wins...
Code must be in the form of a piece of STDIN/STDOUT code, or a function taking the input string as a parameter and returning the output string
Code must be suported by a working version of the code or verified execution of test cases.
In the event that there are two or more with the same character count, the winner will be chosen by the most upvotes.
No silly loopholes

It's usually best to have programs assume input is always valid

This is codegolf, not "code place for useful real world code", we don't care about users, we care about the golf, and most times it is not much of a relevant addition to the challenge to have invalid input handled.

@DestructibleWatermelon Noted, and updated accordingly... (+1 for a valid point)

@WallyWest Hmm, you've updated the text, but you forgot to remove/change the last two test cases for invalid input.

@KevinCruijssen Text updated, thank you for checking

May we also take input from command arguments?

As in capsort "ACFDEIHGJKB"? I see no issue with that! Love to see what you come up with, @Titus.

$argv[1] is 4 bytes shorter than fgets(STDIN). Not that it matters much, now that I see the result. can definitely be golfed.

In your "slightly different string" AKGHJCFDEBI, isn't ACDEI the longest ascending sequence?

Also, why is the result for the BDEFHGI test case H> and not G<? If our program returns the latter, is it incorrect?

@Jordan: G is in the key letters, which means that it is not cuttable.

PHP, 859 bytes
not the shortest code (yet?), but for shorter output.
Added line breaks for a little reading convenience.
function s($u,$a=''){$r=[];for($i=$k=0;$i<strlen($u);$i++)if($u[$i]>substr($a,-1))$r=array_merge($r,s(substr($u,$i+1),$a.$u[$i]));return$r?:[chr(59-strlen($a)).$a];}$w=s($a=$argv[1]);sort($w);$r=preg_split('#_+#',preg_replace("#[$w[0]]#",'_$0_',$a),-1,1);$v=substr;$x=strlen;
for($i=count($r);$i--;)if(!strpos($w[0],$q=&$r[$i]))for($o=0;++$o<$x($q);)if($q[$o-1]>$c=$q[$p=$o]){for(;++$p<$x($q) & $q[$p]>$c & $q[$p]<$q[$o-1];)$c.=$q[$p];echo$c;for(;$q[$o-1]>$v($c,-1);echo'<')$q[--$p]=$q[--$o];$q=$v($q,0,$o).$c.$v($q,$p);$o-=2;}
for(;$n<count($r);$n=count($r),$r=str_split(join($r),1))for($i=-1;++$i<count($r);)if(!strpos($w[0],$r[$i])){$s=array_splice($r,$i,1);for($e=0,$k=$i;$v($s[0],-1)<$r[--$k][0];)$e-=$x($r[$k]);for(;++$k<count($r) & $s[0][0]>$v($r[$k],-1);)$e+=$x($r[$k]);if($e)echo$s[0].str_repeat('><'[$e<0],abs($e));array_splice($r,$k,0,$s);$i-=$k>$i;}

examples
INPUT           KEY     OUTPUT                      RESULT
AKJCFEGHDBI     ACEGHI  B<J<JK>>>>>>>>F>BD<<<<B<    ABCDEFGHIJK
AKGHJCFDEBI     ACDEI   GHJ<GHJK>>>>>F>>>B<<<K>     BCDEFGHJIK
BDEFHGI         BDEFGI  H>                          BDEFGHI
ABC             ABC     _empty_                     ABC
CBA             A       B<BC>                       ABC
PHCODER         CDER    H<HP>O>>P>>>                CHDEOPR
XTREMGOD        EGO     T<R<<RTX>>>>>M>D<<<<        DEGMORTX        (I love it)

Yup. It fails for PHCODER. It´s buggy, but it´s nice.
btw: The shortest possible output for that is O<P>>HOP>>> (for example).

source: Stack Exchange

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

sort: votes


text:
RGB Gradients Generation
The Challenge
Given the two uppercase hexadecimal strings (both 6 characters long, XXXXXX and YYYYYY) representing RGB values (ranging from 000000 to FFFFFF inclusive), and a positive non-zero integer N, display a linear transition of the N+2 colors generated from XXXXXX to YYYYYY that would result in a color gradient.
Example
Input
FF3762
F08800
9

Output
Please note in our example, I've requested 9 interim steps between the two colors, therefore 11 lines will be displayed from initial color to the final color
FF3762
FD3F58
FC474E
FA4F44
F9573A
F75F31
F66727
F46F1D
F37713
F17F09
F08800

Caveats
While I've gone with a simple linear process of deriving the integer values for the interim colors before converting them back into hexadecimal, your methods may vary. Please consider the various ways one could round up/down your numbers accordingly.
Testing
To make this interesting, I've provided a snippet to allow testing of your code, inclusive of a button to provide you with two random colors to test your code against. Displaying your results is optional, but it's encouraged!

c1=()=>('00000'+(Math.random()*(1<<24)|0).toString(16)).slice(-6);

$("#col").click(function(){
  alert("Your two colors are: "+c1()+" and "+c1()+".");
});

$("#colors").blur(function(){
  $("#test").empty();
 var colArr = $("#colors").val().split("\n");
 for(c in colArr){
   $("#test").append('
'+colArr[c]+'
')
  }

});
.tester{height: 20px;
width: 60px;padding: 4px;border: 1px solid black;}

<button id="col">Your two colors</button>

<textarea id="colors"></textarea>

1) You can access two random colors for your test by clicking on the "Your two colors" button.
2) The number of interim steps will be the same as the number of characters in your PPCG username inclusive of spaces, in the case of "WallyWest" it would be 9 (as per my example above).
3) Run your code with the two colors and the number and once you have your generated list, you have the option of pasting your output into the textarea and tabbing away from it to get your generated color gradient.
My example is shown here:

I must admit, that looks pretty awesome!
Please note: As I mentioned, showing your testing of your output using the snippet is optional, but it's encouraged! :)
Output
The list output must be in the form of N+2 sets of 6 digit hex numbers separated by line feeds (\n) as shown in my example above. Output can be in the form of separate lines, space/comma separated list, an array or whatever is best suited for your language... (Thanks @nimi for the heads up) Please remember, that if you plan on testing your code with the snippet, however you separate each "color" is up to you.
Rules
This is code-golf, so the shortest solution in bytes will be crowned the winner. No loopholes, naturally. Input must accept the two strings and a number (which as I said will be equivalent to the number of letters in your username on PPCG, thus your resulting output will always be a minimum of three lines long.

Please allow output in list/array format for all languages.

Noted, and updated... Thanks for the heads up (+1)

Out of curiosity, do image apps like Illustrator use linear gradients or gradients in some perceptual color space? I can see use cases for both (maybe you're doing the transformation to perceptual later e.g. a texture for a game).

MATL, 31 bytes
2+1yhjjh2e!1ZA3e!b:1&Ynk8W5Y2Za

This uses linear interpolation with rounding down. Input format is
9
FF3762
F08800

Try it online!
Graphical output, 31 bytes
2+1yhjjh2e!1ZA3e!b:t2YG1&Ynk2ZG

This is the result for inputs
5
FF3762
F08800

Try it in MATL Online! The interpreter is currently experimental. If you don't get any output refresh the page and press "Run" again.

JavaScript (ES6), 130 bytes

g=
(f,t,n)=>[...Array(++n+1)].map((_,i)=>f.replace(/../g,(e,j)=>((`0x${e}`*(n-i)+`0x${t[j]+t[j+1]}`*i)/n|256).toString(16).slice(1)))
;
p=_=>g(f.value,t.value,+n.value).map(e=>o.insertRow().insertCell().appendChild(document.createTextNode(e)).parentNode.bgColor=e);
<input id=f value=e14f09><input id=t value=9a04f6><input id=n value=4 type=number><input type=button onclick=p() value=Go!>

Dyalog APL, 44 bytes
Prompts for N, then Beginning-color, then Ending-color. Needs ⎕IO←0 which is default on many systems.
h[↑⌊B∘+¨(⍳2+N)×(-/E B←(h←⎕D,⎕A)∘⍳¨⍞⍞)÷1+N←⎕]

h[...] index into h (which has a value when we finish evaluating the the bracket's content)
 N←⎕ prompt for numeric N (4)
 1+ add one to N (5)
 (...)÷ use that to divide the result of...
  ⍞⍞ prompt for two character strings ["7E0E7E","FF3762"]
  (...)∘⍳¨ find the indices of the each string's characters in...
   ⎕D,⎕A Digits followed by Alphabet
   h← assigned to h
  now we have "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  E B← assign the indices to E and B [[7,14,0,14,7,14],[15,15,3,7,6,2]]
  -/ subtract and enclose B from E [[-8,-1,-3,7,1,12]]
  the result so far is [[-1.6,-0.2,-0.6,1.4,0.2,2.4]]
 (...)× multiply this by...
  2+N two plus N (6)
  ⍳ first integers [0,1,2,3,4,5]
 this gives us [[0,0,0,0,0,0],[-1.6,-0.2,-0.6,1.4,0.2,2.4],[-3.2,-0.4,-1.2,2.8,0.4,4.8],...]
 B∘+¨ add B to each [[15,15,3,7,6,2],[13.4,14.8,2.4,8.4,6.2,4.4],[11.8,14.6,1.8,9.8,6.4,6.8],...]
 ⌊ round down [[15,15,3,7,6,2],[13,14,2,8,6,4],[11,14,1,9,6,6],...]
 ↑ make list of lists into table
[[15,15, 3, 7, 6, 2]
 [13,14, 2, 8, 6, 4]
 [11,14, 1, 9, 6, 6]
 [10,14, 1,11, 6, 9]
 [ 8,14, 0,12, 6,11]
 [ 7,14, 0,14, 7,14]]

here we index into h, giving
[["F","F","3","7","6","2]
 ["D","E","2","8","6","4]
 ["B","E","1","9","6","6]
 ["A","E","1","B","6","9]
 ["8","E","0","C","6","B]
 ["7","E","0","E","7","E]]

which is the same as
[["FF3762"]
 ["DE2864"]
 ["BE1966"]
 ["AE1B69"]
 ["8E0C6B"]
 ["7E0E7E"]]

and prints as
FF3762
DE2864
BE1966
AE1B69
8E0C6B
7E0E7E

TryAPL online!

Nice work! The transition looks great!

@WallyWest Thanks. It is probably a different linear transition than most do: Each letter is transitioned separately.

PowerShell v2+, 176 159 150 bytes
param($a,$b,$n)$x=$a-split'(..)'-ne'';$a;++$n..1|%{$j=$_;-join($x=$x|%{"{0:x2}"-f(+"0x$_"-[int]((+"0x$_"-"0x$(($b-split'(..)'-ne'')[$i++%3])")/$j))})}

Takes the input as two strings and a number, then converts the start string into an array of strings split on every two characters, stores that into $x. We then output $a as our starting section, and loop from ++$n to 1 (to ensure proper fenceposting).
Each iteration, sets helper $j to the current number (used later for ensuring we've got the right number of steps between where we're currently at to our destination) and calculates the next step based on a loop through $x.
Each inner loop is just an assignment. We're setting $x at the appropriate place equal to a new string "{0:x2}" using the -format operator. The x2 here specifies a two-digit hexadecimal output, and the input is the right-hand side of the -f operator. PowerShell has a native hexadecimal-to-decimal operator 0x, so this lengthy parens-nested expression is using that operator to  convert the current hex to numbers, subtracting to find the difference yet to go (done by dynamically splitting $b here just like we did to $a, and using modulo to select the right element), dividing by $j steps remaining, casting to an [int] (PowerShell does banker's rounding by default), and subtracting that step-count from the current hex to get what our next hex needs to be.
The result of that calculation is stored back into $x as three hex elements. That's encapsulated in parens to create a copy on the pipeline, and -joined together into a single string. All those resultant strings are left on the pipeline, and output via implicit Write-Output happens at program execution.

Example
I was given 0ba7c5 and 6c0e50 for my two colors, and TimmyD has 6 characters in it.
PS C:\Tools\Scripts\golfing> .\rgb-gradients-generation.ps1 '0ba7c5' '6c0e50' 6
0ba7c5
1991b4
277ba3
356592
434f82
513971
5f2361
6c0e50

Pyth - 35 bytes
Horribly golfed, just gave up.
j++hQsMCm.HMsM:F+dc-FdvzCmiR16cd2Qe

Try it online here.
Example:

I count 11 lines of gradient, though your PPCG name only has 8 letters... So shouldn't you have entered 7cb472 93fb8a 8 and only received 10 lines of output when testing your code?

@WallyWest completely missed that part in the OP about the username, I just used 9 cuz you did, fixing.

@WallyWest updated

Hey @Maltysen, the gradient seems a bit odd... you've got two references of 93fb8a... Did your code output two lines of the same value?

[Groovy] Final Update (199 Bytes) - As per request
Non-golf
def g(a,b,n){
  (0..(1.0/n)).collect{
    c->
    x={s->s.split("(?<=\\G.{2})").collect{Integer.parseInt(it,16)}};
    (0..2).collect {
      (int)(x(a).get(it)*n*c+x(b).get(it)*(1-n*c))
    }.collect {
      String.format("%X", it)
    }.join()
  }
}
g('FFFFFF','000000',1/10)

Golf
g(a,b,n){(0..(1.0/n)).collect{c->x={s->s.split("(?<=\\G.{2})").collect{Integer.parseInt(it,16)}};(0..2).collect {(int)(x(a).get(it)*n*c+x(b).get(it)*(1-n*c))}.collect{String.format("%X",it)}.join()}}

Try the final here:
https://groovyconsole.appspot.com/script/5130696796405760

OLD VERSIONS BELOW, DECLINED BY OP

Groovy (123 Bytes)
Golf
def g(r,g,b,r2,g2,b2,s){(1..(1.0/s)).collect{c->[(int)(r*s*c+r2*(1-s*c)),(int)(g*s*c+g2*(1-s*c)),(int)(b*s*c+b2*(1-s*c))]}}

Non-golf
def g(r,g,b,r2,g2,b2,s){
  (1..(1.0/s)).collect {
    c ->
    [(int)(r*s*c+r2*(1-s*c)),(int)(g*s*c+g2*(1-s*c)),(int)(b*s*c+b2*(1-s*c))]
  }
}

Inputs
r,g,b -> Starting RGB Color
r2,g2,b2 -> Ending RGB Color
s -> Gradient step

Output Example
(00,00,00,255,255,255,.5)

results in
[
  [255, 255, 255]
  [127, 127, 127]
  [0, 0, 0]
]

Try it yourself:
https://groovyconsole.appspot.com/script/5184465357766656
With Hex Conversions Included
Guess I'm kind of cheating as well... Here's the script with using hex:
New code with hex conversions:
    def g(r,g,b,r2,g2,b2,s){
      (0..(1.0/s)).collect {
        c ->
        String.format("%X", ((int)(r*s*c+r2*(1-s*c)))) +  String.format("%X", ((int)(g*s*c+g2*(1-s*c)))) + "" +  String.format("%X", ((int)(b*s*c+b2*(1-s*c))))
      }
    }

    g(126,34,166,218,26,33,0.0625)

188 characters when golfed:
def g(r,g,b,r2,g2,b2,s){(0..(1.0/s)).collect {c->String.format("%X",((int)(r*s*c+r2*(1-s*c))))+String.format("%X",((int)(g*s*c+g2*(1-s*c))))+String.format("%X",((int)(b*s*c+b2*(1-s*c))))}}

Output for 000000 to FFFFFF and 16 (Username Length)
g(00,00,00,255,255,255,0.0625).each{println it}

Err... slightly invalid, original version used "(0..(1.0/s))", should have been "(1..(1.0/s))".

Hi @carusocomputing... The input needs to be two hexadecimal strings and an integer... I'm not sure if Groovy can take input in this fashion, but you haven't quite nailed the brief... Could you please update your code based on the input mentioned in the Challenge section?

{s-> s.split("(?<=\\G.{2})").collect{Integer.parseInt(it,16)}}('FFFFFF')
Results in [255,255,255]
I can add 62 bytes to my code using that conversion if you really want me to.

Wally, I've added an updated version and upped my final byte count to 199 with conversions included.

Python 2, 189 bytes
w='[int(%s[i:i+2],16)for i in range(0,6,2)]'
def f(a,b,n):
 l=lambda x,y:'%02x'%int((x*(n-i)+y*i)/n);c,d,e=eval(w%'a');f,g,h=eval(w%'b');n+=1
 for i in range(n+1):print l(c,f)+l(d,g)+l(e,h)

Gorgeous pair of colors, @AndrewEpstein... Nice work with the code!

R, 68 bytes
There is a built-in function that interpolates two colours:
a=scan(,'')
colorRampPalette(paste0("#",a[1:2]))(as.numeric(a[3])+2)

Input:
d9e7a5
3ef951
15

Output: a vector with values
"#D9E7A5" "#CFE89F" "#C5E99A" "#BBEA95" "#B2EB90" "#A8EC8A" "#9EED85" "#95EE80"
"#8BF07B" "#81F175" "#78F270" "#6EF36B" "#64F466" "#5BF560" "#51F65B" "#47F756"
"#3EF951"

Colour specification in R requires a hash symbol.

Let’s plot something, like a function:
filled.contour(outer(1:20, 1:20, function(x,y) sin(sqrt(x*y)/3)),
    col = colorRampPalette(paste0("#",a[1:2]))(as.numeric(a[3])+2))

Great answer, but the brief asks to use as many steps as there are in your PPCG user name, which counting the space makes 15... Could you please update your answer based on FF3762 F08800 15?

@WallyWest Sorry, I had missed that part where one obtains two colours and counts his own username length. Now the answer should be fully compliant with the specification!

C, 175 169 168 bytes
i;j;x[6];f(a,b,n)char*a,*b;{char*f="%2x%2x%02x";for(n++;i<=n;i++,puts(""))for(j=sscanf(a,f,x,x+1,x+2)-sscanf(b,f,x+3,x+4,x+5);j++<printf(f+6,x[j]+(x[j+3]-x[j])*i/n););}

Ungolfed:
int i, j;
int x[3], y[3];

f(char *a, char *b, int n) {
  sscanf(a, "%2x%2x%2x", &x[0], &x[1], &x[2]);
  sscanf(b, "%2x%2x%2x", &y[0], &y[1], &y[2]);

  for(i = 0, n++; i <= n; i++) {
    for(j = 0; j < 3; j++)
      printf("%02x", x[j] + (y[j] - x[j]) * i / n);
    puts("");
  }
}

Thanks to @h-walters for shaving off 5 bytes!

Remind me what the puts syntax does again?

It's like printf(), but doesn't do any formatting, instead it just prints the given string as it is, and it adds a newline.

Ah, so there's no way of golfing that... C's a bit restrictive like that, ain't it?

"so there's no way of golfing that"... Sure there is!  Move puts("") into the third part of the first for loop (the ; after becoming a , before)... +0 bytes.  However, this allows you to remove the curly braces after the second loop... -2 bytes.  You can save another 1 byte by removing 3 from j<3, and replacing it with your printf statement (this is sneaky... printf will only return 2, but it still has to evaluate the third time).

...two more bytes can be saved by subtracting your sscanf return values from each other (resulting in 0), and using that instead of the literal 0 in j=0.  Once everything here is in place your program should be 5 bytes shorter, and at least 50% stranger.

Awesome suggestions, thanks! I also managed to shave off another byte.

sh + ImageMagick, 81 bytes
convert -size 1x$((2+$3)) gradient:#$1-#$2 -depth 8 txt:-|grep -o "[A-F0-9]\{6\}"

usage:
> ./grad.sh FF3762 F08800 9
FF3762
FE3F58
FC474E
FB4F45
F9573B
F86031
F66827
F5701D
F37814
F2800A
F08800

("-depth 8" is not necessary if your IM is compiled with 8bpp as the default)

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

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


text:
Convert to Bubble Letters
So I was playing around with my compose key, and found some cool things, one of them being that by pressing compose + ( + alphanumeric + ), you get that character inside a bubble, like so: ⓐ.
Your task in this challenge is simple, to convert ordinary text to bubble letter text.
Here are the ascii chars, the bubble characters and their Unicode code points:
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
⓪①②③④⑤⑥⑦⑧⑨ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ
9450 9312 9313 9314 9315 9316 9317 9318 9319 9320 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423

Your input will contain only printable ascii characters, and if a character cannot be bubbleified, leave it as is.
This is code-golf, so shortest code in bytes wins!
Note: This is not isomorphic to my earlier challenge about small-caps conversion since unlike small-caps, bubble letters are in a mostly contiguous segment of code-points, allowing for more interesting approaches.

OK, exactly two of the letters in your title are visible on my desktop. Oddly enough, they look fine on my phone.

Also, the last 26 characters in your table don't render at all on my desktop. You should mention which ASCII characters they map to.

ASCII ends at 127. Do you mean, perhaps, Unicode code points (which are generally expressed in hexadecimal, "⓪" being U+24EA and so on)?

@Jordan no, I said that the input will be ascii-only

I'm pretty sure that this is a duplicate, but I can't find it...

@Dennis added ascii to table.

I think @Jordan refers to the bubble characters and their ascii codes, which should say the bubble characters and their Unicode code points.

Note: The numeric version of this challenge (i.e. converting numbers instead of letters to bubble) was in the sandbox somewhere, but never made it to main due to small caps.

Possible duplicate of Sᴍᴀʟʟ Cᴀᴘꜱ Cᴏɴᴠᴇʀᴛᴇʀ

Retina, 20 bytes
T`Lld`Ⓐ-⓪①-⑨

Try it online!
How it works
There's a gap between the code points of (0) and (1), but – fortunately – the character right after (z) is (0). This way, we can transliterate the character from concatenated ranges A-Za-z0-9 to the characters of the concatenated ranges (A)-(0)(1)-(9).
The rest is straightforward: T activates transliteration mode, Lld yields all uppercase ASCII letters (L), all lowercase ASCII letters (l) and all digits (d), and Ⓐ-⓪①-⑨ the corresponding bubble characters.

Python 3, 146 bytes
for p in list(input()):
 t=0
 if p.isdigit():t=9263
 if p=='0':t=9402
 if p.isalpha():
  t=9327
  if p.upper()==p:t=9333
 print(end=chr(ord(p)+t))

This might be able to be made shorter, any help would be appreciated.
Try it on repl.it, here.

Where are you getting 184? I'm counting 195 with 4 spaces. Which, BTW, if you replace all the 4 spaces with one space, you could shave it down to 168,

@DJMcMayhem I think I counted the spaces as tabs, good point, thanks!

How about something like this: lambda s:''.join(chr(ord(p)+[[9263,9402],[9327,9333]][p.isalpha()][p=='0'or p.upper()==p])for p in s) (Note, I haven't tested it extensively)

For me it tells me SyntaxError: invalid character in identifier and highlights the 9 in p=='0' part. Also is there a tool you use to count bytes, I can't find any.

https://ethproductions.github.io/bytes/

It doesn't look like you're using l after the first line, so you can put it directly into the for loop, with for p in input():

If anyone could tell me how to use there multiple ifs in a lambda, that would be very helpful, I think it could save few bytes. Also, if there was a way to put is on the same line, separated by semicolons that could save some bytes.

You can save 33 bytes with print(*map(lambda p:chr(ord(p)+((((9327,9333)[p.upper()==p])*p.isalpha(),9402)[p<'1'],9263)['/'<p<':']),input()))

@MorganThrapp That gives me SyntaxError: invalid character in identifier.

Is that when you copy/paste it into repl.it? It seems to be adding some additional periods for some reason. If you delete those, it should be fine.

@MorganThrapp No, I paste it into interactive IDLE, when I run it as a program it pops up a box which says invalid character in identifier, is this compatible withPython 3.5, or not?

It is. https://repl.it/DYYt/4

@MorganThrapp It changes all the spaces to ⓚ, I believe it is not checking if the character is a letter correctly.

Let us continue this discussion in chat.

05AB1E, 19 bytes
Uses CP-1252 encoding.
žKš52Ý86+8Ý«9312+ç‡

Try it online!
Explanation
žK                    # Push the string "a-zA-Z0-9"
  š                   # switch case: "A-Za-z0-9"
   52Ý                # push range [0 ... 52]
      86+             # add 86: [86 ... 138]
         8Ý«          # concatenate with range [0 ... 8]: [86 ... 138, 0 ... 8]
            9312+     # add 9312: [9398 ... 9450, 9312 ... 9320]
                 ç    # convert to char: ['Ⓐ', ... 'Ⓩ', 'ⓐ', ..., 'ⓩ', '⓪', ..., '⑨']
                  ‡   # transliterate alphabet to bubble alphabet

You can write Ža„ instead of of 9312. Only one byte, but it helps.

Although @Dorian is correct that 9312 can be compressed to Ža„ now, it unfortunately won't save any bytes. That type of compressed integers wasn't available yet in the legacy version, so the new version has to be used, but the switch case builtin has been changed from a 1-byte to 2-byte builtin (š to .š). EDIT: Never mind, I made an error, so that 18-byter I had just added was incorrect.

Jelly, 23 22 21 bytes
“2Ỵf“2Ṇ3‘r/9.ȷ_ỌFØB,y

Try it online!
How it works
“2Ỵf“2Ṇ3‘r/9.ȷ_FỌØB,y  Main link. Argument: s (string)

“2Ỵf“2Ṇ3‘              Yield [[50, 188, 102], [50, 180, 51]].
         r/            Reduce by range.
                       This yields [[50], [188, ..., 180], [102, ..., 51].
           9.ȷ_        Subtract these integers from 9500.
                       This yields [[9450], [9312, ..., 9320], [9398, ..., 9449]].
               Ọ       Unordinal; convert the resulting code points to characters.
                F      Flatten the resulting array of strings.
                       This yields the bubbles of
                       [0, ..., 9, A, ..., Z, a, ..., z].
                 ØB,   Pair "0...9A...Za...z" with the generated string.
                    y  Transliterate.

Ruby, 38 34 + 1 = 35 bytes
+1 byte for -p flag. Takes input on STDIN.
-3 bytes thanks to Dennis.
$_.tr!"A-Za-z0-9","Ⓐ-⓪①-⑨"

See it on eval.in: https://eval.in/636978

I think you can save 3 bytes with "A-Za-z0-9","Ⓐ-⓪①-⑨".

@Dennis Right you are. Thanks!

Bash on OSX, 27

3 bytes saved thanks to @Dennis.
  tr A-Za-z0-9 Ⓐ-⓪①-⑨

I/O via STDIN/STDOUT.  The OSX tr apparently handles these unicode characters whereas the GNU coreutils tr does not.

I think you can save 3 bytes with tr A-Za-z0-9 Ⓐ-⓪①-⑨.

@Dennis Yes, thanks!

JavaScript (ES6) 93 104
Edit 11 bytes saved thx @Neil again
Having to use String.fromCharCode, javascript is doomed...
s=>s.replace(/[^\W_]/g,c=>String.fromCharCode(9388+parseInt(c,36)+(-c?-77:62-c||c>'Z'&&26)))

Test

f=
s=>s.replace(/[^\W_]/g,c=>String.fromCharCode(9388+parseInt(c,36)+(-c?-77:62-c||c>'Z'&&26)))

function update() {
  O.textContent=f(I.value)
}

update()
<input id=I oninput="update()" value='Hello world!'>

Why not add 9388 up front instead? Oh, and why aren't you using replace?

@Neil 10% saved thanks to your suggestions

Perl, 27 bytes
Includes +1 for -p
Give input on STDIN, uses the Dennis transliteration order. The only thing interesting about this solution is the lack of the final ; (needs a recent enough perl)
#!/usr/bin/perl -p
y;A-Za-z0-9;Ⓐ-⓪①-⑨

R, 140 bytes
A bit late to the party again.
x=utf8ToInt(scan(,""));a=x<58&x>48;b=x>95&x<123;c=x>64&x<91;d=x==48;x[a]=x[a]+9263;x[b]=x[b]+9327;x[c]=x[c]+9333;x[d]=x[d]+9402;intToUtf8(x)

Ungolfed
x=utf8ToInt(scan(,""));
a=x<58&x>48;
b=x>95&x<123;
c=x>64&x<91;
d=x==48;
x[a]=x[a]+9263;
x[b]=x[b]+9327;
x[c]=x[c]+9333;
x[d]=x[d]+9402;
intToUtf8(x)

Will add an explanation and try to golf this tomorrow again.

This is a very clever solution! I was able to make a shorter but less clever solution, but I'm not convinced it's the shortest.

R, 124 91 characters
Takes input from stdin. Probably can be golfed with some cleverness. Saved some bytes by replacing the list of bubble characters with UTF code points.
chartr(paste(c(1:9,LETTERS,letters,0),collapse=""),intToUtf8(c(0:8,86:138)+9312),scan(,""))

Groovy (135 Bytes)
b=(9312..9320)+(9424..9450)+(9398..9423);r=('0'..'9')+('a'..'z')+('A'..'Z');x={s->s.collect{(x=r.indexOf(it))>=0?(char)b[x]:it}}.join()

https://groovyconsole.appspot.com/script/5189010641125376

Python 3, 107.
This borrows part of its algorithm from nedla2004's answer.
lambda x:list(map(lambda p:chr(ord(p)+(((9327+6*('@'<p<'[')*p.isalpha(),9402)[p<'1'],9263)['0'<p<':'])),x))

Java, 747 bytes
String a(String...A){for(int i=1;i<A.length-1;i+=2)A[0]=A[0].replace(A[i],A[i+1]);return A[0];}String b(String B){return a(B,"0","⓪","1","①","2","②","3","③","4","④","5","⑤","6","⑥","7","⑦","8","⑧","9","⑨","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","ⓩ","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","Ⓩ");}

If the source code may only contain ASCII characters, then replace every non-ASCII character with \uINSERTRESPECTIVECODEPOINTINHEXADECIMALHERE. Doing so results in a 933-byte program.

@Maltysen How did you figure that out?

https://mothereff.in/byte-counter

Java 10, 152 151 142 bytes
s->{var r=new StringBuffer();s.chars().forEach(c->r.appendCodePoint(c+(c>47&c<58?c<49?9402:9263:c>64&c<91?9333:c>96&c<123?9327:0)));return r;}

-1 byte thanks to @ceilingcat.
Explanation:
Try it online.
Explanation:
s->{                        // Method with String parameter and StringBuffer return-type
  var r=new StringBuffer(); //  Resulting StringBuffer
  s.chars().forEach(c->     //  Loop over the chars of the input as integers
    r.appendCodePoint(      //   Convert int to char, and append it to the result:
      c                     //    The current character as integer
      +(c>47&c<58?          //    If it's a digit:
         c<49?              //     If it's 0 (special case)
          9402              //      Add 9402 to convert it
         :                  //     Else (1-9)
          9263              //      Add 9263 to convert it
        :c>64&c<91?         //    Else-if it's an uppercase letter:
         9333               //     Add 9333 to convert it
        :c>96&c<123?        //    Else-if it's a lowercase letter:
         9327               //     Add 9327 to convert it
        :                   //    Else:
         0)));              //     Leave it as is by adding 0
  return r;}                //  Return the resulting StringBuffer

Python 3, 103 bytes
Might save a byte on shuffling added and subtracted numbers
lambda i:i.translate({x:x+(9333-6*(x>96)-70*(x<58)+139*(x<49))*chr(x).isalnum()for x in range(48,123)})

Try it online!


text:
Are you a Fanatic?
Write a function or program that awards you SE badges. If an input "Q" is given it means you have asked a question. If no input is given it means you have only visited the site.*
Badges it must support:

Run script 30 days in a row: "Enthusiast"
Run script 100 days in a row: "Fanatic"
Input "Q" first time: "Student"
Input "Q" on 5 separate days: "Curious"
Input "Q" on 30 separate days: "Inquisitive"
Input "Q" on 100 separate days: "Socratic"

Input:

You may choose an arbitrary input value for the times you ask questions (I've used "Q" as an example).
You may choose an arbitrary input value, or have none at all, for the times you only visit the site.
If a third type of input is given, say "R", then the counters and list of badges shall be reset. This is to ensure that the program can be reused.

Note, you may visit the site many times each day, and ask several questions on the same day. As with the real badges, days are counted in UTC.
You can only have one of each of the badges.
The source code can be altered, but remember the reset functionality. The score will be the size of the script before it's executed the first time.
Output:
Every time you run the script it should output/print a list of badges you have. The output format is optional, but it must use the proper badge names, i.e. you can't enumerate the badges.
The output should be an empty string, 0, false or something similar if you don't have any badges. The program can't crash, enter an infinite loop or something similar.

This is code golf, so the shortest code before running the script the first time. As always, the score is counted in bytes.
You may use an external file to store information, but both the name of the file, and the size of the file before the code is executed the first time will count toward the score.

Just opinion; boring. Did you use the sandbox?

Normally, questions stay for at least 48 hours in the sandbox. If you think questions drown, try making small (or invisible) modifications from time to time to make it stay on top (sorted by 'active').

I guess I'll start.
JAVA: 572 bytes
public class a {static Map<Integer,String>o=new HashMap<Integer,String>();static Map<Integer,String>p=new HashMap<Integer,String>();public static void main(String[] args){Scanner d= new Scanner(System.in);b();int e=0,v=0;while(true){char y=d.nextLine().toCharArray()[0];if(y=='Q'){e++;v++;}else if(y == 'R'){e=0;v=0;b();}else{v++;}System.out.println(o.get(v)+p.get(e));o.remove(v);p.remove(e);}}public static void b(){o.clear();p.clear();o.put(30,"Enthusiast");o.put(100, "fanatic");p.put(1, "student");p.put(5, "Curious");p.put(30,"Inquisitive");p.put(100, "Socratic");}}

Input:
"R" to reset
"Q" if you asked a question
" " if you visited.
[Enter] to log your day.
Output: The badges that you earned that day.


text:
Output "Lorem ipsum" with minimal number of characters
I remember people saying that code size should be measured in bytes, and not in characters, because it's possible to store information with weird Unicode characters, which have no visual meaning.
How bad can it be?
In this challenge, you should output the following Lorem Ipsum text, taken from Wikipedia:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Please specify the number of characters (not bytes) in your code. Code with the minimal number of characters wins.
Your code should only contain valid Unicode characters, as described here, that is:

Code points up to U+10FFFF
No surrogates (the range D800–DBFF is forbidden)
No characters FFFE and FFFF
No null characters (code 0)

If your code cannot be displayed, provide a version with offending characters redacted, and a hexdump.
Some notes:

The output must be one long line (445 characters). If your system cannot do that (e.g. you're printing it on paper), output a closest approximation. Trailing linebreaks don't matter.
Built-in functions that generate Lorem Ipsum text are not allowed
Please specify a valid text encoding for your code, if relevant

Sadly =lorem() in MS Word doesn't output the right version

3 answers so far specifying bytes. Methinks some people may not have read the challenge

@RobertFraser: In my case it makes no difference as 1 byte = 1 char, so I might as well specify bytes as that's the standard. If I had earned any by using chars I would have specified thus :) Pretty sure the same is true for the other answers.

From what ive seen many of the "golf" languages use their own encoding so the can already display most charecters they use as 1 byte.

Is it permitted to make an http request?

If it's something like this, then no

@anatolyg: I thought so. I have to read the standard loopholes :-)

This feels like a dupe of the this challenge as there aren't any patterns in the text?

It's close, but this one has fewer restrictions. If I were to invent a great answer to this challenge, and it were closed as duplicate, could I post it as an answer on that challenge? I guess the answer is "maybe". I'll leave it it to the community to decide whether this one is a duplicate.

Is a trailing space in the output permitted?

@ETHproductions I guess it would be unfair to existing answers to allow trailing space. So no, only trailing linebreaks are OK.

Is it allowed to run alert($('blockquote')[0].innerText) . It works only if the URL belongs to https://en.wikipedia.org/wiki/Lorem_ipsum

To whoever marked this challenge as a duplicate - it's certainly not a duplicate of that challenge! It's not code-golf (see text for details), so the best solution will be different.

@anatolyg It's tagged as [code-golf]. If it's not, then remove that tag.

[tag:code-golf] also covers shortest code by characters (see point 7 in the requirements list of the tag info). This is code golf, and thus it's still a dupe, since there aren't any patterns to exploit.

Dyalog APL, 123 characters
All but the final period are packed into 111 32-bit characters (UTF-32).
'.',⍨80⎕DR''

'.',⍨ period appended to
80⎕DR the 8-bit (8) character (0) Data Representation of
'...' the 111 Unicode characters U+26F4C 9206D D7573 C6F64 32072 12074 C7465 E6F63 46365 27574 96461 37369 10676E 4696C 57320 F6420 56965 46F6D D6574 10726F 9636E 56469 52074 16C20 5726F 107465 F6C6F D2065 16E67 96C61 E6175 107455 D696E 106461 96E69 57620 D6169 57120 E2073 27473 52064 37265 46174 106E6F 16C6C 106F63 F6261 107369 97369 107475 1696C 107069 52078 F6320 46F6D F6320 16573 E7461 97544 56120 92065 57275 C6F64 92072 57220 86572 5646E 107469 6206E 10756C 57461 C6576 52074 106573 C6C69 4206D 26F6C 56520 77566 107461 C6C75 17020 46169 102E72 56378 56574 97320 F2074 56163 107461 97075 17461 F6E20 27020 56469 102C74 46E75 106E69 106C75 57120 66F20 96369 56420 57265 D2074 96C6C E6120 9206D 36520 16C20 5726F, which all fall in the range 12074–10756C and thus inside the OP's all-permitted range 10000–10FFFF.

JavaScript (ES7), 326 283 273 249 243 242 chars
_=>""[r='replace'](/./gu,c=>(c.codePointAt()-4**8).toString(32))[r](/\d/g,d=>"  , exum. ".substr(d,2))[r](/^.|\. ./g,x=>x.toUpperCase())

How it works
The first step in my compression technique is to convert the whole string to lowercase (not mandatory, but looks better), and replace each pair of chars in , exum.  (as well as the trailing space by itself) with its index in the string plus 2. This makes the text a valid base-32 number:
lorem9ips69dolor9sit9amet2consectetur9adipiscing3lit2sed9do3iusmod9tempor9incididunt9ut9labore3t9dolore9magna9aliqua8ut3nim9ad9minim9veniam2quis9nostrud94ercitation9ullamco9laboris9nisi9ut9aliquip943a9commodo9consequat8duis9aute9irure9dolor9in9reprehenderit9in9voluptate9velit3sse9cill69dolore3u9fugiat9nulla9pariatur84cepteur9sint9occaecat9cupidatat9non9proident2sunt9in9culpa9qui9officia9deserunt9mollit9anim9id3st9laboru7

The next step is to convert each 4-char run to decimal, then get the character at that code point. This can be done with the following function:
f=s=>s.replace(/..../g,x=>(n=parseInt(x,32),String.fromCharCode(0xD800+(n>>10),0xDC00+(n&0x03FF))))

(Note: Since all digits are 2 or greater, the minimum possible value of four digits is 2222₃₂. This is equal to 95978₁₀, or 176EA₁₆; therefore, code points will never be in the restricted range.)
And now we have our compressed string:

That's 445 chars compressed into 106 chars. The decompression simply reverses this process:

Convert each char to its code-point in base-32, minus 65536.
Replace each digit n with "  , exum. ".substr(n,2).
Convert each letter after a period or at the beginning of the string to uppercase.

The only ES7 feature used is **. Replace 4**8 with 65536 to run in a browser that doesn't yet support ES7.

If you use ES7, you could use 4**8 instead of 65536.

@mbomb007 Thanks. Perhaps that will come in handy in other challenges too

Javascript (ES6), 261 255 254 characters
Saved 1 byte, thanks to ETHproductions
_=>'L'+"⫒㠰拳␰䨒堵̎⨦W䙨ⅶ嵷˘㥆姳䗨⠬巯堡Ŋɩ懪䨶尩个˒≎㥎䜩怷㰷䤆ŵ̊㹩⫒ᨠᩌ㳠抮f̅㩊ᠰ䀩㩎搰㩊ئ抠ˮ婱拗⠩啺巨㬆ɒ㸘∦㰲䤆姵㩀Ƕ̘㨆㬴⠳⠺…䈲䥒䤠⫱᬴w㬣ᠶ⬘嗠⫘䥀噯䗠⫀⫓䕭啩̎Ɏ㹹庘⬆⭀巯奠Ŷ㷨䌯䥀噯⠪ⰸ㦸̆㼱ï哳峮૘梠䵨慷堵幎≠⣨峨愠◳ᬆ䐷ɒ䫓⥎ܑ拠̑Ɏ㼨ó㬴⹠⇫î奩拊̑㹰巯䓠ȮŎ廪ᨀ噧ਸ".replace(/./g,c=>(s=" ,.DEUabcdefghilmnopqrstuvx")[(c=c.charCodeAt()-32)&31]+s[c>>5&31]+s[c>>10])

Breakdown
Payload: 148 Unicode characters
Code: 107 bytes
How it works
We first remove the leading 'L' from the original message so that we're left with 444 = 148 * 3 characters.
Without the leading 'L', the character set is made of the 27 following characters:
" ,.DEUabcdefghilmnopqrstuvx"

Each group of 3 characters is encoded as:
n = 32 + a + b * 32 + c * 32^2

where a, b and c are the indices of the characters in the above character set.
This leads to a Unicode code point in the range U+0020 to U+801F, ending somewhere in the "CJK Unified Ideographs".

let f =
_=>'L'+"⫒㠰拳␰䨒堵̎⨦W䙨ⅶ嵷˘㥆姳䗨⠬巯堡Ŋɩ懪䨶尩个˒≎㥎䜩怷㰷䤆ŵ̊㹩⫒ᨠᩌ㳠抮f̅㩊ᠰ䀩㩎搰㩊ئ抠ˮ婱拗⠩啺巨㬆ɒ㸘∦㰲䤆姵㩀Ƕ̘㨆㬴⠳⠺…䈲䥒䤠⫱᬴w㬣ᠶ⬘嗠⫘䥀噯䗠⫀⫓䕭啩̎Ɏ㹹庘⬆⭀巯奠Ŷ㷨䌯䥀噯⠪ⰸ㦸̆㼱ï哳峮૘梠䵨慷堵幎≠⣨峨愠◳ᬆ䐷ɒ䫓⥎ܑ拠̑Ɏ㼨ó㬴⹠⇫î奩拊̑㹰巯䓠ȮŎ廪ᨀ噧ਸ".replace(/./g,c=>(s=" ,.DEUabcdefghilmnopqrstuvx")[(c=c.charCodeAt()-32)&31]+s[c>>5&31]+s[c>>10])

console.log(f())

bash + coreutils + gzip + recode, 191 characters
echo -ne "ᾋࠀ㰟퍗\03㖐셱䌱ࡄ戋⪒宮⦀⃬〣ख़ʏ쬏湂삲מּ浊莎ᔍ얪䴬畐Ꮏ肭⽡តप㩴뇶ᮤ樶鞔岀梬昅⹭盖ꈥ먣Ვ빓ỢꞴꃑ괓꣪㷨삗䎺뛔䛓ﵸ摉篨䊷૤⦓헉픺ꉖ橬ꟲỒꗻ퉋則ใ⢍럴摧耼⒅୴䘺㦳櫇鐱窑駁愵䚞鎴鍉Ⅻक़毽➔脂ힸ⤹喝葁㎋頇㺞ⳃ┶왤惌⒜猜䌋吏젔掚ᛩ鯢⚕䜹鴛皽⨫ꇈ銹믍䄛逦軵융杻龇븁\0"|recode u8..utf16be|tr -d ٣ܣ|gunzip

The string is the gzip of the text interpreted as UTF-16BE, plus a few extra bytes to pair with the unpaired surrogate halves. The tr strips off the extra surrogate halves.
This script file (or the shell into which this command is typed) should interpret text as UTF-8, which is why the recode is needed.

Welcome to PPCG! Nice first post! However, we count things in bytes here. Sorry.

This question makes an explicit exception to that, stating "Please specify the number of characters (not bytes) in your code," and discussing which Unicode characters are allowed.

I'm... an idiot. Sorry about that. >_>

No problem, I bet the bytes–characters thing is a common mistake on other questions.

PHP ,247 Characters
combination of the 2 previous versions
echo gzuncompress(base64_decode(mb_convert_encoding("敊眱歍䙸兺䕉剆癚䅪礯極南慷潧楏㡷䥷汚䅯⽌䐸灐扫䱁獶猫扅煄橨啎硡灎䱈噑䔷⭂牓㥨䘴㡊䭪瀰獦夷灇漲氵剣杇楳婧啵扥卹摴慩䩢潪䡊圫啨㝩氷卧ぢご煏潪㙍䍮儷焲ㅅ扔⽘桭卥㉇别桃琫啺䍵公欹塊ㅔ煩噭灳氯䥥ぱ堷ぱ⭫橨祇啂灶㙣浵䅈湋䐷硴卑潘㙉砰捭塖橩汪祲昰䥪佄㔸晔慯眸䨲歮欰䱗䕲䑗⭫㡯䅷塏畃猵⭪慅兔佌流晥塹穄䩔扇婇䑍䩊硺䡅䵌⭤㝉䙇佡䙵浢㑩慖剺湱潊ぢ摰㝋卩楹婏㕵猷灴ぁ慫楗倹捙ㄲ⽁䍧塋啊","UTF-16")));

PHP, 261 Characters
echo mb_convert_encoding("䱯牥洠楰獵洠摯汯爠獩琠慭整Ⱐ捯湳散瑥瑵爠慤楰楳捩湧汩琬⁳敤漠敩畳浯搠瑥浰潲湣楤楤畮琠畴慢潲攠整潬潲攠浡杮愠慬楱畡⸠啴湩洠慤楮業⁶敮楡洬ⁱ畩猠湯獴牵搠數敲捩瑡瑩潮⁵汬慭捯慢潲楳楳椠畴汩煵楰砠敡潭浯摯潮獥煵慴⸠䑵楳畴攠楲畲攠摯汯爠楮⁲数牥桥湤敲楴渠癯汵灴慴攠癥汩琠敳獥楬汵洠摯汯牥甠晵杩慴畬污⁰慲楡瑵爮⁅硣数瑥畲⁳楮琠潣捡散慴異楤慴慴潮⁰牯楤敮琬⁳畮琠楮畬灡ⁱ畩晦楣楡敳敲畮琠浯汬楴湩洠楤獴慢潲畭.","UTF-16");

Encoding $s contains the string
foreach(str_split(bin2hex($s),4)as $c)eval('echo"\u{'.$c.'}";');

Old Version PHP , 386 Bytes|Characters
echo gzinflate(base64_decode("NZDBcUMxCERb2QI8v4rklmsKIIjvMCMJWQKPyw/KT25CwLL7PmxKg44VDcWqTSx1UBO/ga0vYRePCSo6dLH2O6RqNpeUXIBorGYFLm3ksnbWoiW6IxyVvlIe4pe0oNG9E6jqI+jAp0O6ttRG0/14ZknthkfoQrflMwrkJZPVydU6olZqbJfyHtKl+9KvpI4chlAab+nJrgB5yg+8bUkKF+iMdHJl1Y4pY8q39CIzg+fH02qMPCdpJ5NC1hKw1vpPKAMFzrgrOfo2hEEzi5gH3l8swyU2xmRgzCSccxxDC/neyBRjmhbpm+ImlUc56qCdG3aeykoosmTubrO6bdAGpIlj/XGNdvwA"));

05AB1E, 319 bytes
Uses CP-1252 encoding.
•9y†QHÚSe²ŒÓdéÓ#Ç§ÖN›Íˆž4GÏóREØån‡·JîÁØ£ÎÁ¥evÑRZ¶—¥1RËÒÆzçå"UNé¨v¯ÊcŒÔÝjðtrœÛeã&“SÁxÌ4Þá1N$ù?T(çÛbŸœfó˜lUž}Þß-©ÃMšBÈÑPàê#jÇÐ+n¼BDFý>–¸äFT×›qÜY³ö9ªòËùˆA‡¾p=‘¤ÚÞ{I¶Œ±Ål#¨5´Aq˜Àž,s<*Ï;‡õã¾»ðŽL´ÅuØö+Xi+S>»/8Kã~WÎ”ƒß”¤µðWluØa'cUÐeà¥ä…ž+œ6*0RU£›aÝQ_ñœoþÏð””Þã7ã¨sŒV`_É-´éÄèÆd¦úE5Í^Aá,‘‡™™¢äTHä0¥3±.}Søg•36B0„. :™J'yð:'z',:'.«

Interpret the following string as a base 36 number and encode into base 214
LOREMYIPSUMYDOLORYSITYAMETZYCONSECTETURYADIPISCINGYELITZYSEDYDOYEIUSMODYTEMPORYINCIDIDUNTYUTYLABOREYETYDOLOREYMAGNAYALIQUA0UTYENIMYADYMINIMYVENIAMZYQUISYNOSTRUDYEXERCITATIONYULLAMCOYLABORISYNISIYUTYALIQUIPYEXYEAYCOMMODOYCONSEQUAT0DUISYAUTEYIRUREYDOLORYINYREPREHENDERITYINYVOLUPTATEYVELITYESSEYCILLUMYDOLOREYEUYFUGIATYNULLAYPARIATUR0EXCEPTEURYSINTYOCCAECATYCUPIDATATYNONYPROIDENTZYSUNTYINYCULPAYQUIYOFFICIAYDESERUNTYMOLLITYANIMYIDYESTYLABORUM

After that we
36B                      # encode back into base 36
   0„. :                 # replace 0 with ". "
        ™J               # convert to titlecase and join
          'yð:           # replace "y" with <space>
              'z',:      # replace "z" with ","
                   '.«   # add a "." at the end

For some reason the encoding didn't work with a 0 at the end which is why need a special case for the final ".".
Try it online!

I think you can replace Y and Z by 1 and 2 and save a few bytes. Also maybe rearrange the 0, 1 and 2 to get rid of the mysterious special case?

@anatolyg: unfortunately no. Any non-letter counts as a word break, which would mess with the title casing.

C#, 337 333 331 characters
_=>{var q="";foreach(var c in"潌敲彭灩畳彭潤潬彲楳彴浡瑥弬潣獮捥整畴彲摡灩獩楣杮敟楬ⱴ獟摥摟彯楥獵潭彤整灭牯楟据摩摩湵彴瑵江扡牯彥瑥摟汯牯彥慭湧彡污煩慵弮瑕敟楮彭摡浟湩浩癟湥慩Ɑ煟極彳潮瑳畲彤硥牥楣慴楴湯畟汬浡潣江扡牯獩湟獩彩瑵慟楬畱灩敟彸慥损浯潭潤损湯敳畱瑡弮畄獩慟瑵彥物牵彥潤潬彲湩牟灥敲敨摮牥瑩楟彮潶畬瑰瑡彥敶楬彴獥敳损汩畬彭潤潬敲敟彵畦楧瑡湟汵慬灟牡慩畴ⅲ䕟捸灥整牵獟湩彴捯慣捥瑡损灵摩瑡瑡湟湯灟潲摩湥ⱴ獟湵彴湩损汵慰煟極潟晦捩慩摟獥牥湵彴潭汬瑩慟楮彭摩敟瑳江扡牯浵ਡ")q=q+(char)(c&255)+(char)(c>>8);return q.Replace("!",".").Replace("_"," ");};

-4 characters by replacing the .s after "pariatur" and "laborum" with ! before combining the chars to wide chars and adding a trailing new line.
-2 characters by re-assigning the output var rather than appending with +=.
How it works:
The lorem ipsum string was converted to that mess by replacing . with !,   with _ so when the ascii chars are placed next to each other to make a wide char each wide char is a single character.
/*Func<object, string> Lorem = */ _=> // unused parameter
{
    // Output var
    var q = "";

    // Enumerate each wide char
    foreach (var c in "潌敲彭灩畳彭潤潬彲楳彴浡瑥弬潣獮捥整畴彲摡灩獩楣杮敟楬ⱴ獟摥摟彯楥獵潭彤整灭牯楟据摩摩湵彴瑵江扡牯彥瑥摟汯牯彥慭湧彡污煩慵弮瑕敟楮彭摡浟湩浩癟湥慩Ɑ煟極彳潮瑳畲彤硥牥楣慴楴湯畟汬浡潣江扡牯獩湟獩彩瑵慟楬畱灩敟彸慥损浯潭潤损湯敳畱瑡弮畄獩慟瑵彥物牵彥潤潬彲湩牟灥敲敨摮牥瑩楟彮潶畬瑰瑡彥敶楬彴獥敳损汩畬彭潤潬敲敟彵畦楧瑡湟汵慬灟牡慩畴ⅲ䕟捸灥整牵獟湩彴捯慣捥瑡损灵摩瑡瑡湟湯灟潲摩湥ⱴ獟湵彴湩损汵慰煟極潟晦捩慩摟獥牥湵彴潭汬瑩慟楮彭摩敟瑳江扡牯浵ਡ")
        // Split each wide char into two ascii chars
        q = q + (char)(c&255) + (char)(c>>8);

    // Restore the replaced periods and spaces
    return q.Replace("!",".").Replace("_"," ");
};

ISOLADOS, 44016 bytes
http://pastebin.com/raw/Y2aAhdpi
Push the ASCII code for every character in the Lorem Ipsum string, concatenate everything, and output.

JavaScript (ES5), 342 characters
c="remo ipsudlta,cngbq.UvxDhfE";"L"+"Qq©Úu[Qsx7Ķz`¾ƅ&Øxø§Ëƴ%ţ¾÷öm¿Zw¥ſøûƠtĭĚǎmĭöđnŔơxēǮŗĭ*x÷;ƚ:ȸƚņţǮ{XĩámɓŏƙâĚDUĚǎÁƚÂtĭŎÝ¦1mňŽ8ZUŽƜ-äļÝÁŌĪqu[Qqƙ¢3*ôĭ[ÞĵĪ%mÄſĘÚu[Q#èĭƝĘň®ŏØȅ˔Ż#ÂƠoƈŅƆĭƂ§ÿĵĭƘƙ¢VôƠţÅƠqƙƂĔňǮjʨſňô¾Ơn[ēĭœq÷\"ĭĚǎI".split('').map(function(x){y=x.charCodeAt(0);return c[~~(y/27)]+c[y%27]}).join('')

Pretty straightforward, so I'm sure there's room for improvement. I encoded every pair of output characters as a single Unicode character.

Do you need the var ?

Great point, I've shaved off those extra characters. Thanks!

If you use ES6, replace join('') by join\`. If not, change your language to JavaScript (ES5)`

I think you can do y/27|0 rather than ~~(y/27) to save two bytes. You can also remove the 0 in x.charCodeAt(0).

Also, .split('').map(function).join('') can be .replace(/./g,function)

MATL, 354 characters
'8 sxAI($ltZ>2<xa`vYf:s2e9]c&^KtD%e{C*XEpQ]]>dwmi>2;{sUCIZ{V(}Yj 7K&)|,%JD/Pz^:3$*@vVJw)4pgvz4s_$,%pVGu~|PS/Qr7pz5Z2[VV{Lyq}{l!yGiKNg.zFJxL75 sT1]eL2f3iVe~11!|6c+O9.kMWFQYvEp^w0p oH,?Ey"nbV>0g`#)kqTq""" z_AYmyJutvg:o9&AT{#(<42wu.b7" QoOn\#])]ISdH$yc{eM> .[~/`"#2:7C4Mk@eRW8L*_!xjo\cO)!LHK=g:P?&Uc];KdnE(%K7J-z9:7&rhxHl/KZ8\t_C|rT#%28[%+#u.?'F2Y2' ,.DEL'hZa

This decodes from base-94 (using the printable ASCII chars except single quote; so only Unicode characters up to 126 are used) to the alphabet of required characters, formed by most lowercase letters, some uppercase letters, space, comma, and period.
It takes a few seconds in the online compiler.
Try it online!

Jelly, 300 chars
“ḊḄr⁷ƤⱮx#y&Ọ¬½ẇṾƤẋRṠỊ/IṗIÞƝỊż,CA~ñ;ßɦ4ṿḷNVẸẆ`°ṄjJ⁽Ɱ!Æḋ"uƒ⁽ƙfƈÇœƓ®ḶẓƭƊȮ⁻w}Ġṙ(1€CÐ-ɼ#ȯjėȮoZœ°ȥạ_ẊƊaʠiẸṂṪẒ$ċⱮiẹOṠBṇḲ^*GƓŒA>żıWṭƤe&ėẠF6³ṂḲzlçÇṪġṂŻỵḢ⁴WJC⁽Ỵihıỵṃ¥ẏƬEỴ⁽#ḍʠḢ*^O[4)ỵZ5VoPĠƘṙḅß]<œ/ṅẸ% ḍ"Ɱ+¢¦ß÷⁵Ḍ³Ṅ¶2X|©dċÆṁḢƭṗM°`KÇ¦ɗỤɱṆȯƘkṅbṙ⁻l<t,ḟȮạżæ€ṠṣIȥCṘƥṁ©53ẒþØŻṁ£æƥ?¬ṿFæṘ⁴nụ’ṃ“Lrem ipsudlta,cngbq.UvxDhfEo

Try it online!
The encoding is Jelly.
Thanks to compressed strings, I was able to compress it by 3 bytes.

Vyxal, 279 bytes
«;Jq×L↑yVx₅QȯZ3ẎhȦ¼_ø€ẋ°Q±3₀₈∑hṁ₃ø∧≤∆⌐>ʀ↵₌X⇧ƒ₀₆ḃ₅Ḣ~^9\6↓¾<₆≈Q‡‟ṄBḞUß¼ƈv→⟇ʀ7ė⟑∞~*Ṅ∩ꜝtW₴h⟨p&¥z%₇Jɖ⁋¥(₂⌐⌊mṖ⅛ɾṙ3±żð→Ṙq↳'ḭguIH?TLŻrhNɾwl꘍×ByÞkĿMτI□ǑΠȧ½Ḃ≬jȦ₂ṡ⇧j…0Ȧ₂wyẆ₈≠₂d„⟨>∵↔C7⟇≠∑¤ƈƛiḃṁ₍Q]*꘍ṡḂcu%İ∑lL5∧∴!qÞLOτxÞ≥€ṅQh₅Ṫ°₄B*ṫṘ:NḊεβ⋏ṫẎFpƈc⁰ŀqẏy↓{'Ǒ£ẏŻ@kżoƛg)K1cV⌈»ΠC¼⟩F^ȯ₌«\z‛. V‛  ‛, V¡

Try it Online!
Uses Vyxal base-255 encoding, since it can only do lowercase and space, I convert ". " to z and "," to " ", so when I decompress I can easily add back in the punctuation. Finally, it reintroduces uppercase through the sentence-case operator.

Pip, 139 UTF-8 characters
"EDUL ,.".z@:^A*""TB32FB:32

Try it online!
Explanation
Observe that there are 28 distinct characters in the string. We can use characters up to character code U+10FFFF = \$1,114,111\$, and since \$\sqrt[4]{1,114,111} \approx 32 > 28\$, we can pack four Lorem Ipsum characters into one Unicode character. (In theory, we might run into some forbidden characters within that range. In practice, that didn't happen.)
The decoder is a little longer than it should be because Pip's builtin base conversion generates strings (e.g. "1RFP") rather than lists of numbers (e.g. [1;27;15;25]).
"EDUL ,.".z@:^A*"..."TB32FB:32
                "..."           String of 112 Unicode characters
              A*                 Codepoint of each
                      TB32       Convert each to a (4-digit) base 32 number
             ^                   Split each base 32 number into a list of its digits
                          FB:32  Convert each digit from base 32 to an integer
           @:                    Use those numbers to index into
"EDUL ,.".z                      Character lookup table: "EDUL ,." plus lowercase letters

05AB1E, 126 characters
A large integer is encoded in base 1114111, which is converted to custom base " .,a..z" and the resulting string is converted to sentence case.
"૵功剗儮"ÇćβA… .,ìÅвJ‡.ª

Try it online!
Or, with byte scoring:
05AB1E, 277 bytes
.•Jã‘éLõÝåʒ?ÿU
¤Ú¹αšt\Žαæ™4c\’ÑÑ[Ï!îèιáÜ¶§:ºÃbxxQΩù2ú²º„¶₄êy³Ôá‚ιüá‚ÖÆjηatÜÿ˜≠²Ÿ‹»BˆAÇλ—W?üÿ¾TP×¸Ë·]Δ…È¶ª¢X9âtç¨’ƶövY∞ʒE¯Š¿[¹|εÔgƵΣCõ÷yʒĆ7hZ`ĀÀAFнúO¡]îγÄ¬-Ðu†₂≠т,ÜÞör,™¨}м!s±ÑH—‘DθwO³¦&‚ÚøγF∊6∊7p×Ì"₄ôʒÛ₅,ÿÉ½OÏ¦Ã9-p¦»:nÒƶÙØ¶∊[₁?θsÑK„³½ζp÷‰oæB¤|λ·(θŒ¨”∍∊₄=Ýá¾ÉĆΓΓŒ*›αβ™•„wy„.,‡.ª

Try it online!

Deadfish~, 3209 bytes
{{i}ddd}iiiiiic{iii}iiiiiciiic{d}dddc{i}ddc{{d}ii}iiic{{i}ddd}iiic{i}dddciiiciic{d}iic{{d}ii}iiic{{i}ddd}ddc{i}icdddciiiciiic{{d}ii}ddc{{i}dd}iiic{d}c{i}ic{{d}ii}ddddc{iiiiii}iiiiic{i}iic{d}iic{i}iiiiic{{d}iii}ddc{d}ddc{{i}ddd}dddc{i}iicdciiiiic{d}ddddcddc{ii}dddc{d}dddddc{i}iiiiicicdddc{{d}ii}ddc{iiiiii}iiiiiciiiciiiiic{i}dddc{d}iiic{i}c{d}ddddddciiiiiiciiiiic{d}iiic{{d}iii}dc{{i}ddd}dc{i}dddcdddc{i}ic{{d}iii}ddc{d}ddc{{i}dd}iiic{d}ddddcdc{{d}iii}iic{{i}ddd}ddc{i}ic{{d}ii}ic{{i}ddd}dciiiic{i}iicddcddddddciic{d}dc{{d}iii}iic{{i}dd}iiiic{d}dddddc{i}ddciiicdciiic{{d}ii}ddc{{i}ddd}iiiciiiiic{d}dciiiiiicdddddciiiiicdddddc{ii}dddc{d}iiiciiiiiic{{d}ii}ddddc{{i}dd}iiiiicdc{{d}ii}ddddc{{i}ddd}iiiiiic{d}dcic{i}iiiciiic{d}dddc{{d}iii}ic{{i}ddd}dc{i}iiiiic{{d}ii}ddddc{{i}ddd}ddc{i}icdddciiiciiic{d}dddc{{d}iii}ic{{i}dd}dddc{d}ddciiiiiic{i}dddc{d}dddc{dddddd}dddddc{iiiiii}iiiiic{i}icdddc{i}ddciiiic{dd}c{ddddd}dc{d}ddddc{iiiii}iiic{iii}ic{{d}ii}ddddc{{i}ddd}dc{i}dcdddddciiiic{{d}ii}iiic{iiiiii}iiiiiciiic{{d}iii}iic{{i}dd}dddcddddciiiiicdddddciiiic{{d}ii}iiic{{i}dd}iiiiiic{dd}iiic{i}dcdddddc{d}iic{i}iic{dddddd}dddddc{d}ddc{{i}dd}iciiiic{d}ddc{i}c{{d}ii}dddc{{i}dd}ddciciiiicicddciiic{dd}iiic{{d}iii}iic{{i}ddd}dc{ii}dc{dd}ic{i}iiic{d}dddddciiiiiic{i}ic{dd}ic{ii}dc{d}dciiiiiicdc{{d}ii}iic{{i}dd}iiiiic{d}icc{d}dc{i}iic{d}c{i}iic{{d}ii}ic{{i}ddd}iiiiiic{d}dcic{i}iiiciiic{d}ic{i}c{{d}ii}dddc{{i}dd}ddcdddddc{i}c{d}c{{d}iii}dddc{{i}dd}iiiiicdc{{d}ii}ddddc{iiiiii}iiiiic{i}icdddc{i}ddciiiic{d}ddc{i}dddc{{d}ii}c{{i}ddd}dc{ii}dc{{d}i}iic{{i}ddd}dcddddc{dddddd}dddddc{{i}ddd}dddc{i}iicddcciic{d}dc{i}ic{{d}ii}ic{{i}ddd}dddc{i}iicdciiiiic{d}ddddc{i}iiciiiic{dd}c{ii}dc{{d}iii}c{d}ddddc{iii}iiiiiic{iiiii}dc{d}ddc{i}c{{d}ii}dddc{iiiiii}iiiiic{ii}cdc{d}dddddc{{d}iii}ic{{i}ddd}iiic{i}dciiicdddc{d}dddc{{d}iii}ic{{i}ddd}ddc{i}icdddciiiciiic{{d}ii}ddc{{i}ddd}iiiciiiiic{{d}ii}iic{{i}dd}iic{d}dddc{i}iciic{d}dddciiicdddc{i}dc{d}cic{i}iiic{d}ic{i}ic{{d}ii}ddddc{{i}ddd}iiiciiiiic{{d}ii}iic{{i}dd}iiiiiic{d}iiicdddc{i}dcdddddciiiic{dd}ic{ii}dc{d}dddddc{{d}iii}ic{{i}dd}iiiiiic{dd}iiic{i}dddcdddc{i}ic{{d}ii}ddddc{{i}ddd}dc{i}iiiicc{d}ddddc{{d}iii}ic{{i}ddd}dddciiiiiiciiicc{i}dc{d}iic{{d}ii}iiic{{i}ddd}ddc{i}icdddciiiciiic{d}dddc{{d}iii}ic{{i}ddd}dc{i}iiiiiic{{d}ii}dddddc{{i}ddd}c{i}iiiiic{d}ddddciic{d}iic{ii}dc{{d}ii}ddddc{{i}dd}ddc{i}dddc{d}icc{d}dc{dddddd}dddddc{{i}dd}c{d}dddddc{ii}dddc{d}ic{d}iic{ii}dcicdddc{{d}iii}iic{d}ddddc{iiii}dddc{iiiii}ic{dd}dciic{i}iciiiic{d}dddddc{i}iiiiiicdddc{{d}ii}ddc{{i}dd}iiic{d}ciiiiiciiiiiic{{d}ii}ddddc{{i}dd}dc{d}ddccddciiiicddcddc{ii}dc{{d}ii}ddddc{{i}ddd}dddc{ii}ddcdddddc{d}iiicdddddcdddc{ii}dc{dd}ic{ii}dc{{d}ii}ddddc{{i}dd}ddcicdc{{d}ii}iic{{i}dd}ciicdddcddddddcdddddcic{i}dciiiiiic{{d}iii}ddc{d}ddc{{i}dd}iiiciic{d}iiiciiiiiic{{d}ii}ddddc{{i}ddd}iiiciiiiic{{d}ii}iic{{i}ddd}dddc{ii}ddc{d}iciiiic{d}dddddc{dddddd}dddddc{{i}dd}iciiiic{d}ddc{{d}iii}dddc{{i}dd}dc{d}icciiicddddddciiiiiic{d}iic{dddddd}dddddc{{i}ddd}ddcic{i}iiiic{d}ddddc{i}iiiciiic{d}iiiciiiiiic{{d}ii}ddddc{{i}dd}dddciicdddccdddc{i}ic{{d}ii}ddddc{iiiiii}iiiiic{i}iiicdddddciiiic{{d}ii}iiic{{i}ddd}iiicdddddc{{d}iii}iic{{i}ddd}dc{i}iiiicic{{d}ii}ddddc{{i}ddd}iiiiiic{d}dcic{i}iiiciiiciiic{d}iic{dddddd}dddc

Try it online!
Who cares about all that compression nonsense...

Deadfish~, 3061 characters
{i}dsdddddc{{iii}d}iciiic{d}dddc{i}ddc{{ii}dd}dc{{i}ddd}iiic{i}dddciiiciic{d}iic{{ii}dd}dc{dd}ddsc{i}icdddciiiciiic{{d}ii}ddc{{i}dd}iiic{d}c{i}ic{{ii}ddd}iic{{iii}ii}ic{i}iic{d}iic{i}iiiiic{{d}iii}ddc{d}ddc{dd}ddsdc{i}iicdciiiiic{d}ddddcddc{ii}dddc{d}dddddc{i}iiiiicicdddc{{d}ii}ddc{{iii}ii}iciiiciiiiic{i}dddc{d}iiic{i}c{dd}iiiiciiiiiiciiiiic{d}iiic{{d}iii}dc{dd}ddsic{i}dddcdddc{i}ic{{d}iii}ddc{d}ddc{{i}dd}iiic{d}ddddcdc{{ii}d}ddc{dd}ddsc{i}ic{{d}ii}ic{dd}ddsiciiiic{i}iicddcddddddciic{d}dc{{ii}d}ddc{{i}dd}iiiic{d}dddddc{i}ddciiicdciiic{{d}ii}ddc{{i}ddd}iiiciiiiic{d}dciiiiiicdddddciiiiicdddddc{ii}dddc{d}iiiciiiiiic{{ii}ddd}iic{dd}dsddddcdc{{ii}ddd}iic{{i}dd}ddddc{d}dcic{i}iiiciiic{d}dddc{{d}iii}ic{dd}ddsic{i}iiiiic{{ii}ddd}iic{dd}ddsc{i}icdddciiiciiic{d}dddc{{d}iii}ic{{i}dd}dddc{d}ddciiiiiic{i}dddc{d}dddc{{ii}d}ic{{iii}ii}ic{i}icdddc{i}ddciiiic{dd}c{ddddd}dc{d}ddddc{{iii}i}dc{iii}ic{{ii}ddd}iic{dd}ddsic{i}dcdddddciiiic{{ii}dd}dc{{iii}ii}iciiic{{ii}d}ddc{{i}dd}dddcddddciiiiicdddddciiiic{{ii}dd}dc{dd}dsdddc{dd}iiic{i}dcdddddc{d}iic{i}iic{{ii}d}ic{d}ddc{{i}dd}iciiiic{d}ddc{i}c{{d}ii}dddc{{i}dd}ddciciiiicicddciiic{dd}iiic{{ii}d}ddc{dd}ddsic{ii}dc{dd}ic{i}iiic{d}dddddciiiiiic{i}ic{dd}ic{ii}dc{d}dciiiiiicdc{{d}ii}iic{dd}dsddddc{d}icc{d}dc{i}iic{d}c{i}iic{{d}ii}ic{{i}dd}ddddc{d}dcic{i}iiiciiic{d}ic{i}c{{d}ii}dddc{{i}dd}ddcdddddc{i}c{d}c{{ii}dd}iiic{dd}dsddddcdc{{ii}ddd}iic{{iii}ii}ic{i}icdddc{i}ddciiiic{d}ddc{i}dddc{{d}ii}c{dd}ddsic{ii}dc{{d}i}iic{dd}ddsicddddc{{ii}d}ic{dd}ddsdc{i}iicddcciic{d}dc{i}ic{{d}ii}ic{dd}ddsdc{i}iicdciiiiic{d}ddddc{i}iiciiiic{dd}c{ii}dc{{d}iii}c{d}ddddc{{iii}d}iic{iiiii}dc{d}ddc{i}c{{d}ii}dddc{{iii}ii}ic{ii}cdc{d}dddddc{{d}iii}ic{{i}ddd}iiic{i}dciiicdddc{d}dddc{{d}iii}ic{dd}ddsc{i}icdddciiiciiic{{d}ii}ddc{{i}ddd}iiiciiiiic{{d}ii}iic{{i}dd}iic{d}dddc{i}iciic{d}dddciiicdddc{i}dc{d}cic{i}iiic{d}ic{i}ic{{ii}ddd}iic{{i}ddd}iiiciiiiic{{d}ii}iic{dd}dsdddc{d}iiicdddc{i}dcdddddciiiic{dd}ic{ii}dc{d}dddddc{{d}iii}ic{dd}dsdddc{dd}iiic{i}dddcdddc{i}ic{{ii}ddd}iic{dd}ddsic{i}iiiicc{d}ddddc{{d}iii}ic{dd}ddsdciiiiiiciiicc{i}dc{d}iic{{ii}dd}dc{dd}ddsc{i}icdddciiiciiic{d}dddc{{d}iii}ic{dd}ddsic{ii}ddddc{{ii}ddd}ddc{{i}ddd}c{i}iiiiic{d}ddddciic{d}iic{ii}dc{{ii}ddd}iic{{i}dd}ddc{i}dddc{d}icc{d}dc{{ii}d}ic{{i}dd}c{d}dddddc{ii}dddc{d}ic{d}iic{ii}dcicdddc{{ii}d}ddc{d}ddddc{iiii}dddc{iiiii}ic{dd}dciic{i}iciiiic{d}dddddc{ii}ddddcdddc{{d}ii}ddc{{i}dd}iiic{d}ciiiiiciiiiiic{{ii}ddd}iic{{i}dd}dc{d}ddccddciiiicddcddc{ii}dc{{ii}ddd}iic{dd}ddsdc{ii}ddcdddddc{d}iiicdddddcdddc{ii}dc{dd}ic{ii}dc{{ii}ddd}iic{{i}dd}ddcicdc{{d}ii}iic{{i}dd}ciicdddcddddddcdddddcic{i}dciiiiiic{{d}iii}ddc{d}ddc{{i}dd}iiiciic{d}iiiciiiiiic{{ii}ddd}iic{{i}ddd}iiiciiiiic{{d}ii}iic{dd}ddsdc{ii}ddc{d}iciiiic{d}dddddc{{ii}d}ic{{i}dd}iciiiic{d}ddc{{ii}dd}iiic{{i}dd}dc{d}icciiicddddddciiiiiic{d}iic{{ii}d}ic{dd}ddscic{i}iiiic{d}ddddc{i}iiiciiic{d}iiiciiiiiic{{ii}ddd}iic{{i}dd}dddciicdddccdddc{i}ic{{ii}ddd}iic{{iii}ii}ic{i}iiicdddddciiiic{{ii}dd}dc{{i}ddd}iiicdddddc{{ii}d}ddc{dd}ddsic{i}iiiicic{{ii}ddd}iic{{i}dd}ddddc{d}dcic{i}iiiciiiciiic{d}iic{{ii}d}iiic

The code is too long for the recursive Python implementation on tio.run. So here is another link which works (I took it from this other answer).
Try it online
Not sure it's optimal, but should be pretty close. It uses the s command. It also takes advantage of the overflow feature when it's useful - when the accumulator is equal to 256, it wraps around to 0.


text:
Bubble sorting in progress
Create a function or program that takes two inputs:

A list of integers that shall be sorted (less than 20 elements)
A positive integer, N, saying how many comparisons you should take

The function shall stop, and output the resulting list of integers after N comparisons. If the list is fully sorted before N comparisons are made, then the sorted list should be outputted.

The Bubble sort algorithm is well known, and I guess most people know it. The following Pseudo-code and animation (both from the linked Wikipedia-article) should provide the necessary details:
procedure bubbleSort( A : list of sortable items )
   n = length(A)
   repeat
     swapped = false
     for i = 1 to n-1 inclusive do
       /* if this pair is out of order */
       if A[i-1] > A[i] then
         /* swap them and remember something changed */
         swap( A[i-1], A[i] )
         swapped = true
       end if
     end for
   until not swapped
end procedure

The animation below shows the progress:

An example (taken directly from the linked Wikipedia article) shows the steps when sorting the list: ( 5 1 4 2 8 ):
First Pass
1: ( 5 1 4 2 8 ) ->  ( 1 5 4 2 8 ) // Here, algorithm compares the first two elements,
                                   // and swaps since 5 > 1.
2: ( 1 5 4 2 8 ) ->  ( 1 4 5 2 8 ) // Swap since 5 > 4
3: ( 1 4 5 2 8 ) ->  ( 1 4 2 5 8 ) // Swap since 5 > 2
4: ( 1 4 2 5 8 ) ->  ( 1 4 2 5 8 ) // Now, since these elements are already in order
                                   // (8 > 5), algorithm does not swap them.

Second Pass
5: ( 1 4 2 5 8 ) ->  ( 1 4 2 5 8 )
6: ( 1 4 2 5 8 ) ->  ( 1 2 4 5 8 ) // Swap since 4 > 2
7: ( 1 2 4 5 8 ) ->  ( 1 2 4 5 8 )
8: ( 1 2 4 5 8 ) ->  ( 1 2 4 5 8 )

Now, the array is already sorted, but the algorithm does not know if it is completed. The algorithm needs one whole pass without any swap to know it is sorted.
Third Pass
9: ( 1 2 4 5 8 ) ->  ( 1 2 4 5 8 )
10:( 1 2 4 5 8 ) ->  ( 1 2 4 5 8 )
11:( 1 2 4 5 8 ) ->  ( 1 2 4 5 8 )
12:( 1 2 4 5 8 ) ->  ( 1 2 4 5 8 )

Test cases:
Format: Number of comparisons (N): List after N comparisons
Input list:
5  1  4  2  8
Test cases:
1: 1  5  4  2  8
2: 1  4  5  2  8
3: 1  4  2  5  8
4: 1  4  2  5  8
5: 1  4  2  5  8
6: 1  2  4  5  8
10: 1  2  4  5  8
14: 1  2  4  5  8

Input list:
0: 15  18  -6  18   9  -7  -1   7  19  19  -5  20  19   5  15  -5   3  18  14  19
Test cases:
1: 15  18  -6  18   9  -7  -1   7  19  19  -5  20  19   5  15  -5   3  18  14  19
21: -6  15  18   9  -7  -1   7  18  19  -5  19  19   5  15  -5   3  18  14  19  20
41: -6   9  -7  15  -1   7  18  18  -5  19  19   5  15  -5   3  18  14  19  19  20
60: -6  -7  -1   9   7  15  18  -5  18  19   5  15  -5   3  18  14  19  19  19  20
61: -6  -7  -1   7   9  15  18  -5  18  19   5  15  -5   3  18  14  19  19  19  20
81: -7  -6  -1   7   9  15  -5  18  18   5  15  -5   3  18  14  19  19  19  19  20
119: -7  -6  -1  -5   7   9  15   5  15  -5   3  18  14  18  18  19  19  19  19  20
120: -7  -6  -1  -5   7   9  15   5  15  -5   3  18  14  18  18  19  19  19  19  20
121: -7  -6  -1  -5   7   9   5  15  15  -5   3  18  14  18  18  19  19  19  19  20
122: -7  -6  -1  -5   7   9   5  15  15  -5   3  18  14  18  18  19  19  19  19  20
123: -7  -6  -1  -5   7   9   5  15  -5  15   3  18  14  18  18  19  19  19  19  20
201: -7  -6  -5  -1  -5   3   5   7   9  14  15  15  18  18  18  19  19  19  19  20
221: -7  -6  -5  -5  -1   3   5   7   9  14  15  15  18  18  18  19  19  19  19  20

Yes, built-in Bubble sort algorithms are permitted.
No, you can not assume only positive integers, or unique integers.
The sorting must be in the order described above. You can't start at the end of the list

Clear and perfectly reasonable. Just a pity since I have discovered a truly marvelous solution for the mirrored bubble sort which this comment is not too narrow to contain :)

Will the list be non-empty?

Also, will the list have size greater than or equal to 2? I noticed some answers below do not work for lists of length 1 or empty lists.

Jelly, 25 bytes
ḣ©ṫ-Ṣ®ṖṖ¤;;ṫḊ¥
JḊṁ¹³W¤;ç/

Based on my answer in J.
Try it online!
Verify number of comparisons.
Explanation
The helper link modifies the list at index [i-1, i] by sorting it which produces the same result as the bubble sort comparison.
ḣ©ṫ-Ṣ®ṖṖ¤;;ṫḊ¥  Helper link - Input: list A, index i
ḣ               Take the first i values
 ©              Save a copy of it
  ṫ-            Take the last two values
    Ṣ           Sort them
         ;      Append them to
     ®            Get the copy
      ṖṖ¤         Pop the last two values (Ṗ is pop)
          ;     Prepend it to
           ṫ      Take the last i values
            Ḋ¥    Dequeue - remove the head

JḊṁ¹³W¤;ç/  Input: list A and # of comparisons n
J           Enumerate the indices of A
 Ḋ          Dequeue - remove the head
  ṁ         Reshape it cyclically to length n
   ¹        Identity function (Just to avoid parsing rules)
       ;    Append it to
    ³         The list A
     W¤       Wrap it as an array
        ç/  Reduce from left to right using the helper link and return

JavaScript (ES6), 102 82 80 86 80 bytes
Bug fix and 1 byte saved thanks to @edc65
(a,m)=>eval("for(i=0;m;a[j=i-1]>(b=a[i])?a[a[i]=a[j],j]=b:0)1/a[++i]?m--:i=0;a")

Recursion may not be is definitely not is probably the best approach, but I'm sticking with a loop for now.
Try it out:

f=(a,m)=>eval("for(i=0;m;a[j=i-1]>(b=a[i])?a[a[i]=a[j],j]=b:0)1/a[++i]?m--:i=0;a")
Enter your numbers:

<input id=A rows=10 value="5 1 4 2 8">

Enter the number of steps:

<input type="number" min=0 id=B rows=10 value="1">

<button onclick="C.innerHTML=f((A.value.match(/-?\d+/g)||[]).map(Number),B.value)">Run</button>

I managed to golf your recursive version down to 82 bytes too: f=(a,m,n=0,_,b=a[n+1])=>b+.5?m?f(a,m-1,n+1,a[n]>b?a[a[n+1]=a[n],n]=b:0):a:f(a,m,0).

@Neil Wow, that's impressive! You can post that as your own if you'd like.

@Neil You can do your recursive version in 80 too, just remove the last ,0

Try 1/b instead of b+.5 to check for undefined

Fine, my suggestion for 1/b still holds

@WeeingIfFirst Sorry, that's a problem with the snippet, not the code itself. Fixed now.

@edc65 Thanks for the suggestion. I'm positive the bug fix can be golfed further, working on that now...

Haskell, 83 82 81 bytes
y%x@(a:b:c)=(y++x):(y++[min a b])%(max a b:c)
y%x=[]%(y++x)
[x]!_=[x]
x!n=[]%x!!n

Usage example: [5,1,4,2,8] ! 5 -> [1,4,2,5,8].
In function % y keeps track of the elements visited so far during the current pass, x are ones yet to examine. a and b are the next two, i.e. the candidates to swap. If we reach the end of the list, we start from the beginning: y%x = []%(y++x). All steps are stored in a list where the main function picks the nth element.
Edit: previous versions didn't work for single element lists, luckily the new version is even shorter.

Is it possible to test this online? I don't know anything at all about Haskell, and get errors when trying to paste this directly into an online ide. I guess I'm missing some basic stuff...?

Add f= before the second line of the answer, then append a third line to the program containing main=print(f [5,1,4,2,8] 5). That should make it runnable.

@WeeingIfFirst: full program

Python 3, 77 74 bytes
-3 bytes thanks to @Maltysen (init j in declaration)
lambda l,n,j=0:exec('j*=j<len(l)-1;l[j:j+2]=sorted(l[j:j+2]);j+=1;'*n)or l

Test cases at ideone
Uses sorted to do each compare and swap operation, but it is performing a bubble sort.
Sets j=0 (the left index), then performs n compare and swaps of adjacent list items, resetting j to 0 whenever this window goes out of bounds.
The j*=j<len(l)-1 will multiply j by False (i.e. 0) at that point, whereas every other time it will multiply j by True (i.e. 1).
(It will still work for an empty list too.)

I think you can save by removing the plus and setting j=0 on the lambda  default params

also, you don't need to reset j, you can use %

@Maltysen actually I can't use modulo arithmetic and save bytes, since we need to handle a list of length 1, when we would get a divide by zero error, adding in the logic to handle that pushes me up in bytes.

Works fine for all test cases, and is quite a bit shorter than my MATLAB answer. +1 =) Unfortunately, I can't use the same technique with eval in MATLAB because of the inline assignments.

This looks like an error to a MATLAB programmer (me): l[j:j+2] :)

@WeeingIfFirst yeah, everything is 0-based so ranges and the like (in this case a "slice") go from one number up to one less than the "stop" value - like while i<x rather than while i<=x. It really makes sense to have this as the default behaviour.

Updated to include new test cases

PowerShell v2+, 135 129 bytes
param($a,$n)for($s=1;$s){($s=0)..($a.count-2)|%{if($a[$_]-gt$a[$_+1]){$a[$_],$a[$_+1]=$a[$_+1],$a[$_];$s=1}if(!--$n){$a;exit}}}$a

So. Many. Dollars.
(Saved six bytes by realizing that this challenge doesn't include the "for free" optimization of skipping the last element(s) on each pass since that's guaranteed sorted, and instead runs through a full pass each time. This moved the $a.count into the for loop and eliminated the $z variable.)
Straight up bubble sort, with one nifty spot, doing the swap in one step --
$a[$_],$a[$_+1]=$a[$_+1],$a[$_]
The exiting logic is handled via if(!--$n){$a;exit}
Test Cases
(The array is shown as space-separated here because the default Output Field Separator for stringifying an array is a space. The stringification happens because we're concatenating with the labels "$_ -> ".)
PS C:\Tools\Scripts\golfing> 1,2,3,4,5,6,10,14|%{"$_ -> "+(.\bubble-sorting-in-progress.ps1 @(5,1,4,2,8) $_)}
1 -> 1 5 4 2 8
2 -> 1 4 5 2 8
3 -> 1 4 2 5 8
4 -> 1 4 2 5 8
5 -> 1 4 2 5 8
6 -> 1 2 4 5 8
10 -> 1 2 4 5 8
14 -> 1 2 4 5 8

PS C:\Tools\Scripts\golfing> 1,21,41,60,61,81,119,120,121,122,123,201,221|%{"$_ -> "+(.\bubble-sorting-in-progress.ps1 @(15,18,-6,18,9,-7,-1,7,19,19,-5,20,19,5,15,-5,3,18,14,19) $_)}
1 -> 15 18 -6 18 9 -7 -1 7 19 19 -5 20 19 5 15 -5 3 18 14 19
21 -> -6 15 18 9 -7 -1 7 18 19 -5 19 19 5 15 -5 3 18 14 19 20
41 -> -6 9 -7 15 -1 7 18 18 -5 19 19 5 15 -5 3 18 14 19 19 20
60 -> -6 -7 -1 9 7 15 18 -5 18 19 5 15 -5 3 18 14 19 19 19 20
61 -> -6 -7 -1 7 9 15 18 -5 18 19 5 15 -5 3 18 14 19 19 19 20
81 -> -7 -6 -1 7 9 15 -5 18 18 5 15 -5 3 18 14 19 19 19 19 20
119 -> -7 -6 -1 -5 7 9 15 5 15 -5 3 18 14 18 18 19 19 19 19 20
120 -> -7 -6 -1 -5 7 9 15 5 15 -5 3 18 14 18 18 19 19 19 19 20
121 -> -7 -6 -1 -5 7 9 5 15 15 -5 3 18 14 18 18 19 19 19 19 20
122 -> -7 -6 -1 -5 7 9 5 15 15 -5 3 18 14 18 18 19 19 19 19 20
123 -> -7 -6 -1 -5 7 9 5 15 -5 15 3 18 14 18 18 19 19 19 19 20
201 -> -7 -6 -5 -1 -5 3 5 7 9 14 15 15 18 18 18 19 19 19 19 20
221 -> -7 -6 -5 -5 -1 3 5 7 9 14 15 15 18 18 18 19 19 19 19 20

R, 132 131 112 136 bytes
The programme receives the input as follows: first N, then the vector itself. For example, if you want v = [5 1 4 2 8] and n = 1, the input that goes into the scan is 1 5 1 4 2 8. So in order to run this programme, you run the first line, feed the numbers one by one in the console, and then run the rest (this is a REPL answer).
Then the following code does the trick:
v=scan()
s=m=0
while(!s){s=T;for(i in 3:length(v)){m=m+1
if(m>v[1]){s=T;break}
if(v[i-1]>v[i]){v[c(i-1,i)]=v[c(i,i-1)];s=F}}}
cat(v[-1])

Test:
Input: a vector with N first and the elements to be sorted next
1 5 1 4 2 8
5 5 1 4 2 8
14 5 1 4 2 8
60 15 18 -6 18  9 -7 -1  7 19 19 -5 20 19  5 15 -5  3 18 14 19

Output:
1 5 4 2 8
1 4 2 5 8
1 2 4 5 8
-6 -7 -1  9  7 15 18 -5 18 19  5 15 -5  3 18 14 19 19 19 20

Update: golfed 1 byte owing to Vlo.

This appears to require hardcoding the inputs as variables and implicitly displaying the output via a REPL mechanism, which is not accepable per our list of acceptable I/O methods.

@Mego Okay, I fixed that. Please see if now it is fully compliant...

It looks like you can remove the first s=T; and still have correct output; this saves you 4 bytes.
EDIT: In fact, you can remove the while() loop entirely, and just use the for() loop, replacing your s=T with break, which also allows us to get rid of some curly braces. This yields:
v=scan();s=m=0;for(i in 3:length(v)){m=m+1;if(m>v[1])break;if(v[i-1]>v[i]);v[c(i-1,i)]=v[c(i,i-1)];break}};v[-1]
For a total of 117 bytes.

@rturnbull Your version is so much better! Kudos to you.

@rturnbull Where did those early comments go? Your suggestion of golfing 19 bytes away... it just removed that extra loop that was essential because the performance of the bubble sort is O(n²), whereas without that extra loop, it becomes (n-1) long. I should have checked... Now it is fixed and contains an explanation how to feed in the input! Is it better than before?

Pyth, 34 32 Bytes
AQVH=*<ZtlGZ=GsXJcG,Zh=hZ1ShtJ;G

A translation of Jonathan Allan's Python answer.
Try it here!

JavaScript (ES6), 82 80 79 bytes
f=(a,m,n=0,_,b=a[n+1])=>1/b?m?f(a,m-1,n+1,a[n]>b?a[a[n+1]=a[n],n]=b:0):a:f(a,m)

Based on @ETHproduction's original answer. Edit: Saved 2 bytes thanks to @JonathanAllan. Saved 1 byte thanks to @edc65.

J, 62 60 bytes
>@([:({.,(2/:~@{.}.),]}.~2+[)&.>/]|.@;<:@#@]<@|i.@[)^:(]1<#)

This is a verb that takes two arguments: the number of comparisons on the LHS and the list of integers on the RHS. First it checks if the length of the list if greater than one. If it isn't, it returns the list unmodified, otherwise it operates on it by performing the specified number of comparisons before returning the result.
Usage
For the first test case, extras commands are used to format multiple input/output. The second test case is shown as single input/output.
   f =: >@([:({.,(2/:~@{.}.),]}.~2+[)&.>/]|.@;<:@#@]<@|i.@[)^:(]1<#)
   1 2 3 4 5 6 10 14 ([;f)"0 1 ] 5 1 4 2 8
┌──┬─────────┐
│1 │1 5 4 2 8│
├──┼─────────┤
│2 │1 4 5 2 8│
├──┼─────────┤
│3 │1 4 2 5 8│
├──┼─────────┤
│4 │1 4 2 5 8│
├──┼─────────┤
│5 │1 4 2 5 8│
├──┼─────────┤
│6 │1 2 4 5 8│
├──┼─────────┤
│10│1 2 4 5 8│
├──┼─────────┤
│14│1 2 4 5 8│
└──┴─────────┘
   1 f 15 18 _6 18 9 _7 _1 7 19 19 _5 20 19 5 15 _5 3 18 14 19
15 18 _6 18 9 _7 _1 7 19 19 _5 20 19 5 15 _5 3 18 14 19
   123 f 15 18 _6 18 9 _7 _1 7 19 19 _5 20 19 5 15 _5 3 18 14 19
_7 _6 _1 _5 7 9 5 15 _5 15 3 18 14 18 18 19 19 19 19 20
   221 f 15 18 _6 18 9 _7 _1 7 19 19 _5 20 19 5 15 _5 3 18 14 19
_7 _6 _5 _5 _1 3 5 7 9 14 15 15 18 18 18 19 19 19 19 20

Explanation
It's hard to write terse code in J that uses mutability, so instead I convert the problem into reducing a list on a set of indicies. I think this code is messy so I will walkthrough the job of each phrase instead of each primitive. The first part grabs the length of the list and produces a range. Then, operate on each infix of size 2 to emulate one pass of comparisons.
   i. # 5 1 4 2 8
0 1 2 3 4
   2 <\ i. # 5 1 4 2 8
┌───┬───┬───┬───┐
│0 1│1 2│2 3│3 4│
└───┴───┴───┴───┘
   2 <@{.\ i. # 5 1 4 2 8
┌─┬─┬─┬─┐
│0│1│2│3│
└─┴─┴─┴─┘

These are the start indicies of each comparison. If 7 comparisons are being performed, reshape it to get the desired amount. J parses right to left, so its reduces right to left, like fold-right. Append the initial list and reverse it.
   7 $ 2 <@{.\ i. # 5 1 4 2 8
┌─┬─┬─┬─┬─┬─┬─┐
│0│1│2│3│0│1│2│
└─┴─┴─┴─┴─┴─┴─┘
   |. 5 1 4 2 8 ; 7 $ 2 <@{.\ i. # 5 1 4 2 8
┌─┬─┬─┬─┬─┬─┬─┬─────────┐
│2│1│0│3│2│1│0│5 1 4 2 8│
└─┴─┴─┴─┴─┴─┴─┴─────────┘

Alternatively, the range [0, 7) can be made and each value taken modulo the length of the list minus 1 to create the same range.
   (<: # 5 1 4 2 8) <@| i. 7
┌─┬─┬─┬─┬─┬─┬─┐
│0│1│2│3│0│1│2│
└─┴─┴─┴─┴─┴─┴─┘

The last part is a verb that takes a list on the RHS and an index on the LHS which marks the start index of the comparison. Select the two elements starting at that index, sort them, and plug them back into the list and return it.
   > ({.,(2/:~@{.}.),]}.~2+[)&.>/ |. 5 1 4 2 8 ; 7 $ 2 <@{.\ i. # 5 1 4 2 8
1 2 4 5 8

Impressive, very impressive +1.

Groovy (101 Bytes)
{l,n->(l.size()..0).each{i->(0..i-2).each{if(l[it]>l[it+1] && n>0 && it>-1){l.swap(it,it+1)};n--}};l}

EDIT: I didn't need to write my own swap closure, groovy had this built in.
Try it here: https://groovyconsole.appspot.com/script/5104724189642752
Example Output Trace:
4:[1, 5, 4, 2, 8]
3:[1, 4, 5, 2, 8]
2:[1, 4, 2, 5, 8]
1:[1, 4, 2, 5, 8]
0:[1, 4, 2, 5, 8] - Locks in the final answer.
-1:[1, 4, 2, 5, 8]
-2 (Return):[1, 4, 2, 5, 8]

Old Implementation (122 Bytes)
m={l,n->s={x,y->t=l[x];l[x]=l[y];l[y]=t};((l.size()-2)..2).each{i->(0..i).each{if(l[it]>l[it+1] && n){s(it,it+1)};n--}};l}

Try it here: https://groovyconsole.appspot.com/script/6316871066320896

This errors for lists with fewer than two items

On my mobile... addding it>=0 in the second if statement fixes that problem.

It seems to fail for lists with negative input too. For instance the second test case.

Works now, I was on a mobile last night so I couldn't make the edits required.

Matlab, 93 91 bytes
function l=f(l,m)
n=numel(l)-1;i=0;while n&m;i=mod(i,n)+1;m=m-1;l(i:i+1)=sort(l(i:i+1));end

Saves 11 bytes by omitting if l(i)>l(i+1);l(i:i+1)=l([i+1,i]), and instead just sort the two elements every time. Works for lists of length 1. Could save a byte or two using Octave's m-- operator, but that's not much.
Saves two more bytes by setting n=numel(l)-1;, because then I can just do while n instead of while n>1, and i=mod(i,n)+1 instead of i=mod(i,n-1)+1.

For the record, this answer was written many hours after the challenge was created.

php, 148 145 bytes
<?php for($i=2,$a=$argv;$a[1]--;$i=$i==count($a)-2?2:$i+1)if($a[$i]>$a[$i+1])list($a[$i],$a[$i+1])=[$a[$i+1],$a[$i]];echo substr(join(' ',$a),5);

I'm not very happy with the loop structure but I like the list switch and it does work so I'm posting it anyway. php7.1 would allow me to save at least 4 bytes.
With nicer formatting:
<?php
for($i=2,$a=$argv;$a[1]--;$i=$i==count($a)-2?2:$i+1)
  if($a[$i]>$a[$i+1])
    list($a[$i],$a[$i+1])=[$a[$i+1],$a[$i]];
echo substr(join(' ',$a),5);

Edit: Jörg Hülsermann reminded me of join, instead of implode.
note: needs to be in a file with a single character filename.

http://php.net/manual/de/function.join.php alias of implode

$t=$a[$i];$a[$i]=$a[$i+1];$a[$i+1]=$t; is shorter then list($a[$i],$a[$i+1])=[$a[$i+1],$a[$i]]; and i am not sure if instead of echo substr(implode(' ',$a),5); this one $a[1]=null;echo join(' ',$a); the better alternative is.

While using the temporary variable is 2 bytes shorter it's also multiple statements so you need to use those 2 bytes to enclose the whole thing in curly braces. For the $a[1]=null you'd actually need to unset($a[0],$a[1]) to avoid whitespace and the name of the file at the beginning.

Ruby, 52 50 bytes
Wait... no Ruby?
->l,n{n.times{|a|l[s=a%~-l.size,2]=l[s,2].sort};l}