« first day (2153 days earlier)      last day (2986 days later) » 

00:00
this is satire right?
gist: SatanScript Spec, 2016-12-21 00:02:14Z
#**SatanScript**
###A programming language for the denziens of hell


----------


##**Features**


 - Stack based
 - Commands are all auspicious numbers, separated by spaces

###**Commands**

 - 3: Increment
 - 6: Decrement
 - 9: Push zero
 - 666: Pop, popping empty stack returns 0
 - 999: Duplicate
 - 555: Push len of stack
 - 11: Rotate stack forward
 - 13: Rotate stack backwards
 - 23: Swap top two elements of stack
 - 33: Pop top of stack, make label at code position after this command with name of popped element
 - 39: Pop top 2 of stack, goto label with name of top element if second popped is not zero


 **References about auspicious numbers:**
 - **http://www.cuttingedge.org/pages/seminar2/NUMBERS.htm**
 - **http://www.exposingsatanism.org/showthread.php/295-Occult-Numerology**
 - **http://helpfreetheearth.com/news565_numbers.html**
comments? ^
Didn't change local time to 06-06-06, Fail.
Just earned "Search You Must", but the leaderboard hasn't updated yet
I am now The Sun
00:15
I'm using Linux for the first time
I have no idea how to anything
I can't even figure out how to get to the equivalent of C:\Program Files
Cool. What distro? Desktop or server?
@Pavel there are a few
Ubuntu desktop
@Pavel nice
@Pavel synaptic package manager lets you see what packages you have installed, and install new ones graphically last time I used Ubuntu
So that'd sorta be the equiv to "C:\Program Files" I guess
00:18
@Pavel That's not a thing. Most programs in Linux store their binaries in /usr/bin, their libraries in /usr/lib and similar, their docs in /usr/share/doc, etc.
apt-get moo is a command you should certainly run though
@Pavel what are you trying to do
The only place for "one-folder programs" is /opt.
I also had two additional drives that I raid 0'd that I can't get to show up at all. I kind of have all my documents there
@Pavel /dev
00:23
I'm scared...
also mount command
So I have a challenge idea: given an array, reverse all non-ascending subsequences of the array.
If this procedure is repeated several times, it sorts the array.
@Pavel On Ubuntu desktop you can use the dash to see most of the GUI programs (top icon in the dock)
00:25
Would that make an interesting challenge? (And would it be a dupe?)
@ETHproductions That's bubble sort
in essence
I can't get chrome to show up in dash, which I just ran the installer for.
Really? I'll have to review my sorting algorithms...
except bubble sort only considers subsequences of length two
00:26
It operates on pairs yeah
I suppose this is a little more complicated
Yeah, it's definitely not the same as bubble sort, though it is similar
Actually,I just grabbed the installer again and it works fine now.
The challenge would just be to perform a single iteration though.
@Pavel you know about apt-get right?
I know what it does
Not certain how to use it
00:34
sudo apt-get install google-chrome-stable
replace package name as needed
I got most of the way there, wasn't sureof the exact wording for google chrome.
@Pavel you'll need to add the chrome repository first
I don't know how to do that
Thanks
I already got it to work with the downloader off the website though. Good to know for other things.
The only challenge I can find that's even remotely close is this one
Or this one, which may actually be closer
So I think I'm in the clear.
Is there a shortcut to open the terminal?
And... Laptop just died. Welp.
6
Q: Number of prime knots with n crossings

mbomb007A prime knot is: a non-trivial knot which cannot be written as the knot sum of two non-trivial knots. Explanation of a knot-sum: put the two knots adjacent, ... then draw two lines between them, to the same strand on each side, and remove the part between the lines you just drew. This co...

I think this is the first problem in a very, very long time where I wouldn't even know how to begin
how do you represent knots?
how do you create an equivalence relationship for knots?
@Maltysen @Doorknob @Dennis @mınxomaτ @feersum @MartinEnder poking fellow mathemagiciprogrammers
00:54
@orlp graph of segments, with crossings as edges?
@orlp one way to represent knot combinatorially is a knot diagram
if you flatten the knot into the plane, you can think of it as a graph whose vertices are the intersection points and whose edges are arcs connecting them
each vertex needs to know the cyclic ordering of the edges around it, and which is an overcrossing or undercrossing
@Maltysen that doesn't distinguish between over/under
in this representation, two knots are equivalent if one can be converted to the other using reidemeister moves
these need pictures, you can look them up
@xnor I'm looking at the pictures now
that doesn't seem like something you can just implement though
first there is a combinatoric explosion of those moves you can have
plus some moves undo eachother, so they form infinite cycles
if you're looking for a more direct way to "fingerprint" a knot, i don't believe one is known
00:59
and some can be repeated ad infinitum without reaching a direct equivalent state
@xnor is discrete analysis of knots a hard field? it seems like it
(with discrete I mean with direct finite unique representations)
although I guess that's the 'fingerprint'
i believe it's open whether there's a polynomial-time algorithm to even decide if a knot is trivial or knot
I thought you were supposed to identify by computing some exponentially large polynomial.
Disclaimer: I know nothing of knots.
iirc, those polynomials have collisions for unequal knots
Really? Well gee, what good are they then?
hrm
I'm starting to feel like the linked challenge isn't really appropriate for a code golf
to me it seems that a proper runnable answer is a PhD thesis, let alone a golfed one
maybe I'm overestimating complexity here, but it really seems like it
01:04
So why doesn't it work to try all the moves until you've covered the whole space?
well when I say proper runnable answer
I mean an answer that can reproduce the example inputs/outputs within the heat death of the universe
or within a year...
We've had questions like comparing two regular expressions before.
@feersum here's a knot that can't be distinguished by jones polynomial from another knot: mathworld.wolfram.com/Kinoshita-TerasakaKnot.html
@TuxCopter stahp bork time D:
@feersum they are still useful because they gives equal results for two different drawings of the same knot
@feersum and encode various properties of the knot
01:06
OK, so it's like a non-cryptographic hash.
@feersum that is a well-studied field with known algorithms
@orlp i wouldn't call it thesis level, but it does seems like quite a project
@orlp so is this one :)
My point was that that's a problem taking double-exponential time.
Although, easy inputs can be done quickly in that one.
01:24
1
A: Sandbox for Proposed Challenges

Easterly IrkMake an anagram quine! code-challengequineanagram An anagram quine is defined as a quine, which all anagrams of it are also quines. For example, pretend in my magical language the code 123 is a quine. This is an anagram quine if 132, 213, 231, 312, and 321 are also quines. All of them must ...

CMC: What are short, memorable phrases, ending in me
:OOOOO I CAN REGISTER goatregi.me
@Downgoat ending.in.me
M A X I M U M D O W N G O A T
@Downgoat have you seen my new language?
I could also register gaot.me if I really wanted too :/
I'll chase you all over the internet.
@Dennis any idea how you got that hat?
@EᴀsᴛᴇʀʟʏIʀᴋ Any idea how you got your hat..?
@Dennis D:
01:36
@EᴀsᴛᴇʀʟʏIʀᴋ Nope.
@ConorO'Brien @Downgoat
@ConorO'Brien is it compile to ES6 and then run?
it just uses firefox es6
USACO results came out today...
> Your score on this contest was 748. [...] All competitors who scored 750 or higher on this contest are automatically promoted to the platinum division — congratulations to you all!
2
01:38
^ D:
thebestgoatis.me :D available
@ATaco yeah
but no confirmed ones
check the hat shoppe
I know.
I've been discussing in there.
I still lack the hat
ik
I saw you in there
@EᴀsᴛᴇʀʟʏIʀᴋ you are tacocat instead of pootis cat now? D:D
01:41
I do too +1
Though burrito is better
You take that back
@ATaco sure, once I get affirmation goats > sheep
I care not for inter-woollen-animal politics.
ಠ_ಠ
Real goats do not produce wool
Thus proving how little I care for their politics in regards to Sheep
01:44
Mmmm, oligarchy...
@Downgoat You sheeple!
:O
How dare you, CrazyJavaScript!
@Downgoat www..wat!?!?
.wat is not valid gTLD?
:D goats!!
01:48
The point being, potato.
18 mins ago, by Downgoat
CMC: What are short, memorable phrases, ending in me
@Downgoat They are pleading not guilty
I have no idea what you are talking about
The goats are pleading not guilty
:O THERE IS WEBSITE DEDICATED TO GOAT MEMES AJHFJAKLSHDCBDAAAAASL!!eleven!one!!
01:50
@Downgoat *typo'd. Should be: AJHFJAKLSHDCBDAAAAASL!!11!one1!
sorry, fiexd
@Downgoat C...can you not selfie yourself on that goat meme site?
@Downgoat that "sorry" makes me feel uncomfortable. And no, don't apologize for that either... :P
sorry, fixed
damn it :|
We are contributing to noise by doing this. We should stop
@Downgoat so how does my language look?
02:04
Looks like a pretty neat language
Not huge fan of postfix ops but still good :P
well no one seems to be
I'm writing a paper for apology of it
:O Idea: babel plugin for constructor overloading
Such nice benchmarks :')
not sure why the MOE is stuck at 10% tho
what color scheme/ theme is that? It looks awesome
02:08
I made slightly modified version of monokai soda
I'll call it "Monokai Cheese"
Sounds cheesy.
did you ju...
@Downgoat Second to mego, you will receive the most puns about your language.
> Image not found
:P
:O -1 for leaking personal picture of Dennis
@quartata Can you please send me program you used for cheddar prime generation :3
02:14
5000 of anything per second seems awful slow...
yesterday, by Downgoat
I would like to remain in my bubble making myself think cheddar is fast
crap. It dropped to 1000 ops/s
If you have a 2 GHz CPU, that means one thing is taking 400,000 cycles.
@feersum I have almost 4GHz CPU O___O
So 800,000. Much better. >_>
02:16
clearly instiating [1,2,3] takes almost 4,000,000 cycles
Are you still in your bubble? :P
hahaha. Prime generation program times out
I'll switch it to ten
@feersum 5000 slices of cheese per second is pretty fast
Try making simple operations atomic - take a shortcut through your JS code, for example for common and simple ops
02:18
Ok it takes 20ms to generate first 10 prime numbers
@Downgoat wayyyy too slow
It's not like a python is any faster >:|
It probably can't even generate one
..........
(...)
please share video of a python generating primes
*opens mouth* *immediately closes mouth*
\0
02:20
More like Python, 3 levels deep in x86 emulators written in Python.
PyPy is actually not that slow...
No I don't mean Python programming language, I mean python snake
We need to even the playing field
@Downgoat pls share video of yellow mild cheese generating primes
can't iphone out of storage
4630
A: What is a metaclass in Python?

e-satisClasses as objects Before understanding metaclasses, you need to master classes in Python. And Python has a very peculiar idea of what classes are, borrowed from the Smalltalk language. In most languages, classes are just pieces of code that describe how to produce an object. That's kinda true ...

02:23
?
Everything is an object. Classes are a thing. Classes are objects. What's their type? Metaclass. Metaclass' type? A metametaclass. You can also dynamically create all those things, there's a lib function...
How is this relevant to prime numbers or cheese? :|
@Downgoat OK, so I tried with the slowest algorithm I could think of, and Python can calculate ~250 primes in 20ms.
That's using Wilson's theorem, so it's pretty bad.
(respect the mathematician :P)
@Downgoat you really need to profile cheddar; even with a high level language cheddar cannot be so slow
@Dennis Oh. I am just using brute force
02:25
@Downgoat please, no.
If you mean trial division, Wilson's theorem is probably slower.
i.e. try all numbers from 0->infinity, and then check all numbers from 2->n and check if any is divisible
@Dennis O_o how is possible?
It multiplies all the numbers in the range together into an n log n bit integer.
For each number it tests.
oh its the n - 1! = mod n thing
02:27
Well, to test if 1499 is a prime, I have to calculate the square of the factorial of 1498, then take the result modulo 1499. That's a 27316 bit number, so ugh.
TIL
class MyShinyClass(object):
       pass
is syntactic sugar for
MyShinyClass = type('MyShinyClass', (), {})
let pBIsPrime = (num, i = 0) => {
  let n = (Math.random() * Math.sqrt(num) | 0) + 2;
  if(num % n == 0 && num != n) return false;
  if(i == num * num * num) return true;
  return pBIsPrime(num, i + 1);
}
this must surely do worse than cheddar :P
@Dennis can you try testing with super-naieve implementation of custom factorial and modulus functions
I don't understand.
e.g.:
02:31
I suggest trying it with the regex engine.
def mod(a, b):
     n = a
     while a <= b:
         a -= b
     return n
Maybe that can beat Cheddar.
(I think)?
@feersum :(
Does Cheddar compile to JS?
02:32
So it's interpreted in JS?
Yes >_>
There was project to rewrite in C++ but it flopped because no one can C++
On an unrelated note: I'll be changing the backend in the next couple of hours. If you want your client to keep working, you can switch from /run to /run-legacy for the time being.
I wonder how fast RProgN gets primes.
Let me do a check...
@Dennis :D ok thanks
@Downgoat Uh, that would take far beyond the heat death of the universe. If this is how you implement it in Cheddar, I no longer wonder why it's so slow.
02:35
if you think this is bad just wait until I add bigint library...
@Downgoat there are better ways to calculate modulus >_>
That's not how I implemented it in cheddar. But that is actually how my CS teacher told us to do modulus
whhyyyyy
Please tell me you're joking.
I'm sorry
02:39
RProgN, using a basic implementation of primacy checking, does 250 in .187s
@Downgoat how does cheddar do it then?
casts to JS int and then do % op
Up to 250, not the first 250 primes.
First 250 primes is 2.94s
@Downgoat You should profile that to see if implementing it natively is faster than doing the JS cast
why would it be faster? O_o
02:41
@Downgoat also that returns n which is just a not modified...
JS casting to number is highly optimized
Is your Cheddar-JS interaction highly optimized?
@DestructibleWatermelon :| goddammit
@noɥʇʎPʎzɐɹC Yea
but for slow
I'll compile targeting node 7 and redo benchmarks
What did Cheddar score for First 250 primes..?
Please, just profile it with a JS profiler - get rid of the bottlenecks, swap out data structures...
02:43
@ATaco test timed out
Is there a score I can go with at all?
In that case, Yay, my RProgN Lua Interpretation isn't terrible!
@Downgoat I'm on mobile but it's so simple I can literally recite it from memory
OK yeah definetly a large overhead with babel
Literal Parsing
  ✓ Numbers x 5,557 ops/sec ± 0.00%
     Average: 0.18 ms
     Cycles : 9 total
  ✓ String  x 5,229 ops/sec ± 0.00%
     Average: 0.19 ms
     Cycles : 5 total
  ✓ Symbol  x 5,835 ops/sec ± 0.00%
     Average: 0.17 ms
     Cycles : 5 total
  ✓ Array   x 1,086 ops/sec ± 0.00%
     Average: 0.92 ms
     Cycles : 5 total

Prime Generation
  ✓ Built-in x 71 ops/sec ± 0.00%
     Average: 14.01 ms
     Cycles : 3 total
@ATaco lemme get you number rn
Prime Generation
  ✓ Built-in x 1 ops/sec ± 0.05%
     Average: 561.61 ms
     Cycles : 1 total
that's for 250 prime
02:47
Ah, Python. Where you can dynamically set 4 = 5
@quartata GUESS WHOSE FASTER THAN PERL 6 :DDDD
First 250 or up to 250..?
@noɥʇʎPʎzɐɹC O__o
@ATaco First 250 primes
Drat, it's faster than RProgN.
>>> 4 = 5
  File "<stdin>", line 1
SyntaxError: can't assign to literal
@ATaco starts dancing
02:48
Then again, I'm using a bad IsPrime method.
for (var i := 2; i <= 1000; i++) {
  var found := false
  for (var d := 2; d <= sqrt i; d++) {
    if (i % d == 0) {
      found = true
      break
    }
  }
   if (!found) {
     print i
   }
}
@quartata wait I don't think this is real cheddar ಠ_ಠ are your test result fake
function
	`input local =
	0 'isaprime' local =
	1 input sqrt 2 for
		input \ %
		0 ==
		isaprime or 'isaprime' local =
	end
	1 isaprime -
end `isprime =
This doesn't even break after finding...
@Downgoat I'm typing this from memory on mobile. Chill.
oh ok nvm
02:50
Also, Because how RProgN Works, this is equivalent to the above code: ~{`x@=0`y@=1x\'sqrt\'C2:x\%0≡y|`y@=}1y-}`P=
[250:>$prime filter:out] timeop out

(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241)
0.115
I literally could watch the primes being outputted one at a time. Try it yourself
:O 1000 primes in 3 seconds!!!!!
Dafuq?
still faster than perl 6
02:52
I'll write a fast method in a moment.
Yes but that's not the point
sure it isn't
I mean that is painfully slow still but your test results are very different
Intel i7 Haswell Quad Core 2.4GHz here
@Downgoat no with ctypes
02:54
Also those perl 6 test results i quoted turned out to be inaccurate >_>
Let's try inheriting off of an integer instance in python...
>>> class X(0):
...   a = 1
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: int() takes at most 2 arguments (3 given)
@Downgoat
>>> import ctypes
>>> ctypes.cast(id(8), ctypes.POINTER(ctypes.c_int))[6] = 9
>>> 8 == 9
True
whaaa
and you guys say JS is weird ಠ_ಠ
@Downgoat How are you timing
I don't think we've had a codegolf challenge for converting one arbitrary base into another
So like base 85 to base 122 or something
@quartata I wrote super-acurate microsecond timing code
It's on cheddar's GH
02:56
Try it with time :P
@Downgoat But ctypes is designed for this, it deals with c/c++ internals; look at how big our stdlib is
Just humor me on this one
@quartata No but this is more accurate
it does multiple runs
and accounts for error and all
Guys
Have we had a base challenge?
cheddar < file; subtract 350ms
02:57
>>> 8
9
>>> 8 + 1
10
10/10 very scientifc
Just do it. I suspect the issue is from IO
@noɥʇʎPʎzɐɹC Beautiful
this would prove it
you know you can do cheddar file.cheddar
real	3.95s
user	3.66s
sys	0.11s
Also for some reason when you type two :) in a row you get blocked by chat
Why is that
@Downgoat Dafuq? What is your CPU?
2.6 GHz Intel Core i7
is the results good or bad
@Qwerp-Derp Happens for any message
@Downgoat What does that have to do with anything? Python lets you mess with the very core of its implementation. That's not weird, it's pretty awesome.
Now, actually doing that is weird, but that's a different story.
02:59
Your CPU is exactly the same as mine and you're reporting a 4x speedup

« first day (2153 days earlier)      last day (2986 days later) »