« first day (2032 days earlier)      last day (1801 days later) » 

12:00 AM
@ConorO'Brien Scroll up
Eh, mixed up n^2 and 2^n, and I wasn't sure if Excel had ^. That's what happens when you try to do math at 4 AM... Thanks, @Emigna. — Dennis ♦ 8 hours ago
Really? Didn't they just change the design a couple months ago
@NathanMerrill It's been like this for ages
@quartata the bk thing?
12:00 AM
@ConorO'Brien Yeah.
@NathanMerrill really? I'm on mobile chat and nothings different for me
@βετѧΛєҫαγ it looks prettier to me. Maybe not
I'll wait on finding out what you're talking about until El'endia finds some resources on it :P
@trichoplax @Dennis take a look at it now I explicitly specified that submissions are full programs or functions that are strictly less than 30k
So you can't star @DJMcMayhem?
12:01 AM
3 mins ago, by quartata
@El'endiaStarman Found a blog post on it: http://blog.notdot.net/2007/4/Damn-Cool-Algorithms-Part-1-BK-Trees
@RohanJhunjhunwala do note unless you have a very good reason. people wont be happy for you disallowing functions
@quartata Oooh, that's pretty cool.
@El'endiaStarman oh, goodie, you found it.
@βετѧΛєҫαγ What are you talking about? I can star
That's the update isn't it?
12:02 AM
I'm testing with 5 as a threshold but I suspect that might be a little low.
I've never used any other mobile chat, so if it's a recent update, it was a long time ago
@Downgoat I explicitly allowed it now, I originally had disallowed functions because the goal was high scores, and golfing could be trivial to just remove boiler plate to make a full program, but I decided to open it up.
I might experiment with scaling the threshold based on the length of the string
@RohanJhunjhunwala Allowing function to return a newline-separated string, but not a list seems a bit weird. To clarify: Requiring full programs might make sense for this challenge, but you must say that full programs are required in that case.
@ΛεγίωνΜάμμαλϠΨΠʹ when will you change your name back? :3
12:03 AM
@Dennis ok I will require full programs
@El'endiaStarman no
@Downgoat In 6-8 weeks
@RohanJhunjhunwala If you allow functions and full programs, can Alice golf Bob's code down from a full program to a function, or does it have to stay a full program if it started that way?
@HelkaHomba Good thing I didn't for any of my solutions. :P
@ΛεγίωνΜάμμαλϠΨΠʹ inclusive/inclusive?
12:05 AM
@RohanJhunjhunwala is the upper case I in the title a pun I'm missing or just a typo? Didn't want to edit it without checking...
@trichoplax that is part of the reason why i kept output restricted and required full programs
@RohanJhunjhunwala That makes sense
@Downgoat teleclusive/transclusive
question: What's a single word for "said exasperatedly" or "said in anguish"
In other news I forgot how bad Python's pickle is when it comes down to objects. If the class isn't in the namespace in the exact same way as it was relative to the originating module it throws an error when unpickling
@Downgoat lamented
12:05 AM
@Downgoat exclaimed?
@Downgoat cried?
@trichoplax there was no intentional pun in the title
12:06 AM
@quartata too deathy. idk if you can even use that for said
You can.
@trichoplax feels to happy/cheery
@Dennis I;m voting to reopen let me know if there is more clarification needed. I apologize for the confusion,a nd I will be more patient in the sandbox from now on
also how is it "deathy" lel
> a passionate expression of grief or sorrow
checks out
12:07 AM
@RohanJhunjhunwala In that case I've edited the title - hopefully it's how you intended?
yes looks good I didnt even notice it
@RohanJhunjhunwala You should also clarify if I/O has to be in decimal. By default, some language are allowed to do I/O in unary.
Ok clarifying @Dennis
^ too much cuteness. not enough anger
12:08 AM
Are you writing goat fan fiction
@Downgoat Would be confusing to have a mix of functions/programs. Seems more homogeneous and proper this way.
@quartata haha no
Are you riding a goat in the fan fiction?
the goat earns a star to be cheered up
@Downgoat resists urge to post something involving goats and cooking
12:11 AM
(do people ride goats?)
@quartata can you please stop with these jokes
@RohanJhunjhunwala I think the reference to "losing" bytes could be confusing, and is a longer explanation than simply saying only the shortest code in a given language contributes to your score.
@Downgoat I suspect your objection fuels them. I never get turtle soup jokes...
@trichoplax fixing
@RohanJhunjhunwala They must not be derived from another language (brainfuck versus Alphfuck) is a bit unclear. Does that mean I can crack a brainfuck answer with Sesos? Probably not...
^ Or could I crack vim with V?
12:15 AM
Or Python with Pyth
Vim seems to be broken by default. hides
Or Ruby with goruby
@Dennis ;_;
@Dennis it means that you can not post another submission in language X if another language has already been posted, and X is a trivial derivative of X. Sesos would not necessarily be a trivial derivative of bf
@trichoplax Turtlr vs goat vs fox? strawpoll.me/11049646
12:16 AM
Is there a way I can clear that up?
> GNU Emacs ported to Android! If Emacs segfaults try changing font size.
What does "trivial derivative" mean?
Also, finally a sane font on Strawpoll!
@Dennis seems legit
@HelkaHomba You win... :)
12:18 AM
3 votes for fox already
@RohanJhunjhunwala But if two "things" are counted as the same language, can I crack variant A with variant B?
@Dennis no
@Dennis perhaps I can replace that section with some clause that tries to have people avoid posting trivial variations on other languages. For example, we don't really need one answer from every trivial bf derivative
if we have a bf answer we don't really need an OOK! answer
I do agree with that.
@RohanJhunjhunwala I like that rule, but it means you should probably insist that each answer specifies a version number. Otherwise people will post "Python", and it will be open to being cracked by either Python 2 or 3 since they didn't specify
TypeError: object of type 'generator' has no len()
can't wait for pytek
12:19 AM
But what counts as trivial?
@quartata o_o that looks just like JS error
Also I guess that's because random.choice needs a list
@Dennis is there any meta consensus on this? I guess I can allow derivatives, but strongly "advise" against it?
@Downgoat Woah, SP accounts? o_O
@Downgoat It's just weird because len is a magic method
12:20 AM
@trichoplax Even Python 2.2/3.4 is quite different from 2.7/3.6.
A: Sandbox for Proposed Challenges

Conor O'BrienA Fragile Quine quine code-challenge An N-fragile quine is a quine such that all programs resulting from removing any N characters from the source code error. You will make an N-fragile quine for any N-value of your choosing, however, higher N-values will give you a better score. To elaborate,...

who voted for right
halp how 2 check if function terminates
brb creating solution to halting problem
@Downgoat That's called the Halting Problem
@quartata ik >_>
12:21 AM
I can recount a nice proof that you can't do it if you want
@Dennis Ah good point. I guess specifying exact version number including minor release might be best then @RohanJhunjhunwala but then does that mean there can be no entry in python 2.2, 2.3, 2.4,... once an answer arrives using python 3.6?
@RohanJhunjhunwala Strongly advising means squat. If the score or the validity of a crack depends on it, it must be clarified. The meta consensus is that every challenge has to define it itself.
So do you have a recommendation on how to specify it? @Dennis
Hello @ReleasingHeliumNuclei
I'm not a big fan of saying Language X != Language Y iff !X.tostring().equals(Y.toString())
12:24 AM
@RohanJhunjhunwala For your scoring method, not really. Allowing answers in all *fuck languages should not be allowed, but it's non-trivial to come up with a rule that is both clear and disallows these.
The problem is that not only is specifying each language individually going to be tedious, but it will likely invite complaints about fairness since different people see things differently
@Downgoat hai
To me a challenge that encourages participants to submit something in as many languages as possible is inherently bad.
@feersum Do you have specific reasons?
One, it's not interesting to compete in.
Translating something to 100 languages is a tedious slog.
12:27 AM
@Dennis so should I allow all languages and just handle the trolls with downvotes?
And having a large number of posts makes it hard to navigate.
@RohanJhunjhunwala you don't currently have a winning criterion tag, which may lead to being closed as soon as it's reopened. Does suit?
It's hard for anyone to spot incorrect answers and point them out.
Oh Emojicode 0.3 beta 2 is out
@RohanJhunjhunwala People that follow the rules aren't trolls. If you host a competition, expect people to play to win.
12:29 AM
@feersum The difference with this challenge is that there won't be a solution in each language for each competitor, since the goal is to post something which prevents any other competitor from using that language. Still cluttered, but I think not as bad
@trichoplax @Dennis had me remmove code-bowling I personally like code-bowlinh as a tag. Is that acceptable?
would be better.
@RohanJhunjhunwala I only saw the objection to golf and bowling together (since they are opposites).
@trichoplax Though in that case it becomes a game of FGITW.
@feersum I do fear it being spoiled by someone posting golfed code instead of bowled code, and winning by default with a much lower sum score than the competition invites
12:31 AM
bit of a silly question, do you guys have a special way of remembering that it's [text](link) and not (text)[link] ? i'm thinking of remembering it in terms of omitting parentheticals in english sentences, but maybe there's a more natural way
CMC: given a string S and a number n, yield all strings that result from removing n characters from S
@Dennis I think perhaps this as a rule. You must crack a program in the same language and version, but you may not submit an answer in Language X if there is already a solution in a language Y such that all programs in language Y can be translated to language X by a program that is less than 50 bytes long? It seems arbitrary, but it could work?
@MitchSchwartz You usually say "the best place to search is google (google.com)"; instead of using square brackets
I can translate Brainfuck to C in less than 250 bytes.
is that better?
50 bytes?
12:33 AM
ok so that's pretty close to what i was thinking
No, it's not better.
@MitchSchwartz If it helps, the () is optional in posts on main. You can just write [text] and then put [text]: URL at the bottom of the post. Remembering that functionality helps me remember than the [] is the essential bit
ok thanks
@Dennis I guess if someone wishes to post a bunch of *f---- submissions than I can't stop them
Or just explicitly block *f--- languages
huh, i always used [1], [2], etc and never [arbitrary text] for the footnote links
12:35 AM
@MitchSchwartz Another way is that they are not in ASCII order, but that's a bit awkward to remember
@MitchSchwartz I always used [arbitrary text][1] and then [1]: URL at the bottom, until I saw somewhere that you can just use the text without the number. I like it that way for editing later, as you can see from the list of links at the bottom what each one is described as
yeah that's a nice feature
that i didn't know about until now
Particularly useful when coming back to edit a post months later...
@Dennis @trichoplax I have fixed it up now, do my rules on languages seem clearer and fairer?
1. What counts as a derivative?
2. What if X is a derivative of Y (instead of Y a derivative of X)?
@trichoplax a derivative is a language that is extraordinarily similar to a language and "derives" its syntax almost entirely from its "parent" language
12:42 AM
My best advice would be don't try to find a rule. Either leave it open or specify a long list of equivalence classes
If X is a derivative of Y and Y is a derivative of Z, is X a derivative of Z?
@RohanJhunjhunwala That's more detailed, but different people will still understand different things from it.
@trichoplax I added a "cach-all" clause that allows people to ping me with any questiosn
@feersum the transitive property applies
@RohanJhunjhunwala In that cases nearly all languages are derivatives of each other to some extent ;)
@RohanJhunjhunwala Proving that something can't be done is usually quite difficult if not impossible.
12:44 AM
@Dennis what are you referring to?
@Dennis I altered that rule
@trichoplax And if they aren't we can make it so by inventing some new intermediate languages!
@feersum that is a "standard loophole"
@feersum That is sneaky :)
We should be able to close languages as duplicates.
The 50 bytes transpilation criterion.
12:45 AM
@Lynn hahaha
@Dennis oh I fixed it
@RohanJhunjhunwala I share @feersum's concerns about someone posting in all the languages up front with minimal effort, leaving no fun for anyone else. Would it help to have a rule restricting a person from posting a second answer until a certain time later, or until a certain number of other answers have come in from other people?
question: what's a word for a crappy solution just put together as a last-minute fix
Otherwise I'm worried someone will not bother bowling, and just post short code for every language
@trichoplax yeah like one hour between posting submissions or cracks
12:48 AM
@Downgoat kludge
@Downgoat kludge DJ ninja'd me. Otherwise Bodge works
Seriously. Subjective community consensus works perfectly fine for “are these challenges too similar”, because the system actually lets us vote for it. If we had the same for Brainfuck derivatives and Python-with-shorter-builtin-names kinda crap, we’d be set! …Maybe.
Hack is also acceptable, but not as good IMO
@Lynn make a meta
@Lynn or follow Dennis's starred advice about asking on meta whether something is on topic for meta
@Lynn What's to say we can't vote on them? But with close votes, but down votes
12:51 AM
@RohanJhunjhunwala I'm not so worried about cracks - they should take longer to come up with. But I'm wondering whether a restriction on initial answers would help, giving more time to people who will post genuinely long code, so someone who just posts short code can only spoil a limited number of languages.
The major downside is probably: that’d be adding another layer of weird bureaucracy to this all.
Cant get strikethrough lol
The weird bureaucracy is all part of the fun
@RohanJhunjhunwala ---text---
Isn't weird bureaucracy our raison d'être?
Ninja'd while trying to copy-paste raison d'être.
12:52 AM
I swear sometimes PPCG is like a big game of code golf Nomic.
@HelkaHomba That was easy
If I had a greenhouse I could finally grow some carnivorous plants in this god-forsaken temperate climate
@HelkaHomba I would make a small closet then used the rest of the money for my own whims :P
@HelkaHomba Ooooh I’m torn between art studio and library~
@HelkaHomba i would do rumpus room but i have no friends to play with ;_;
@HelkaHomba video game room, except it would be dominated by several servers all running an instance of Mathematica in parallel
12:54 AM
@quartata I knew I shouldn'a put that as an option
@Downgoat invite all the nice people from ppcg
@trichoplax sure I can add that restriction
@RohanJhunjhunwala I don't know the best way to do it. I'm hoping others have some ideas
Can I have music equipment in my art studio. That would seal the deal
12:55 AM
Jul 24 at 2:01, by LegionMammal978
user image
@ΛεγίωνΜάμμαλϠΨΠʹ ..why?
Note that I later updated it to give a more accurate image:
Jul 24 at 2:26, by LegionMammal978
user image
@HelkaHomba I love building PC's, so the answer is pretty obvious. I'd do like overclocked sli titan x's with dual cpus, and several 4k monitors. drools
@Lynn Ooh, sure. I forgot to have music room as an option.
@HelkaHomba why not
12:56 AM
Oh, I might go with that instead
@Dennis I have added in all of your fixes is it considered ready now?
@RohanJhunjhunwala This is why I leave my challenges in the sandbox for months :)
Does anyone here have reopen hammer powers?
@ΛεγίωνΜάμμαλϠΨΠʹ Correct greenc olor is #4C9067
@ΛεγίωνΜάμμαλϠΨΠʹ Servers running mathy junk != gaming room
12:57 AM
@HelkaHomba Did you mean > ?
Anyone here watched Person of Interest?
@ReleasingHeliumNuclei yes
@HelkaHomba It was your closest option ¯\_(ツ)_/¯
top notch
@ReleasingHeliumNuclei I did. I didn't really like it
12:58 AM
@DJMcMayhem welp
@RohanJhunjhunwala what do you think happened to Control?
@ReleasingHeliumNuclei don't spoil anything I watched it on netflix lol
I'm behind a season
@RohanJhunjhunwala It only takes 5 reopen votes, and 4 have been cast already, so anyone (mod or not) can cast the last one now. I'm not casting it myself because it still seems like there are outstanding things to fine tune
questoin: what's a good way to descibe lots of people moving and running around doing productive things and al
I was thinking "flurry of activity"
@Downgoat bustle?
eh that doesnt work either
1:00 AM
@ConorO'Brien oh, that's good
thank you.
@trichoplax ok, what errors are left?
@HelkaHomba is it possible to mix and match? Cause spending 20k on video games seems wasteful, but a music/video game/server room sounds incredible.
@RohanJhunjhunwala The problem with "ping me for clarification" is that some people won't think clarification is needed (they assume their interpretation is the only one and only find out later someone else had another interpretation). So no one will know whether their assumptions are correct but some will post anyway, not realising they have made an assumption
another question: how to describe ambient chatter? e.g. lunchroom at school
1:01 AM
@Downgoat Chatter?
@RohanJhunjhunwala Not errors as such, just things that might end up being disagreements later
@trichoplax should I just remove the thing about derivatives?
Or if you want to go fancy: "ambient chatter"
“Ambient chatter” is already great
and just ban *f--- languages
1:02 AM
@DJMcMayhem doesn't really connotate lots of noise, echo, etc.
@Downgoat noise? chatter? walla?
@RohanJhunjhunwala Unless you have a clearly defined rule then it's just saying something that cannot be enforced, so I guess it's better to leave it out
Like I said, ambient chatter sounds good. Maybe hubbub?
oo, nice one
wait I have an idea
1:03 AM
No, nvmd
@DJMcMayhem Vote for the one your room would be closest to
Y is a derivative of language X iff Y is a language such that for every command in language Y there exists one string replacement to translate the language into x and vice versa.
@Downgoat we use uğultu in Turkish
;_; no hablo turkish
@trichoplax ^^^ see the above forgot to ping u on it
1:05 AM
@RohanJhunjhunwala Almost any language pair satisfies this.
@RohanJhunjhunwala define trivially, and that is a horrible metric.
@RohanJhunjhunwala I think you run into the same problem Dennis mentioned earlier. How can you prove that something cannot be done?
Should I give up on it?
And just ban bf derivatives explcitly?
I think this whole commotion would be avoided if the primary winning condition did not promote answering in a ton of different languages
Do you have an idea to fix that?
1:07 AM
I recommend accepting that you cannot define it objectively, and just either leave it open, or include a list of equivalence classes in the post. Only one language from each equivalence class can be used (whichever one is used first). Any language not mentioned in any equivalence class can be posted in a comment so that you can assign it to a (possibly new) equivalence class and edit the post
I think ppcg doesn't see enouugh rosetta-code
I'll do that
Look at this challenge:
Just expect a lot of work and a long list to maintain ;)
Q: Can you outgolf me? (Cops section)

AdnanCops section The robbers section can be found here. Thanks to FryAmTheEggman, Peter Taylor, Nathan Merrill, xnor, Dennis, Laikoni and Mego for their contributions. Challenge Your task is to write 2 different programs (full programs/functions/etc.) in the same language and the same version (...

It's very similar, and it was in the sandbox for weeks
1:11 AM
The two languages used must be distinctly different. In particular:

They must not be different versions of the same language (e.g. Python 2 vs. Python 3).
They must not be different dialects of the same language (e.g. Pascal vs. Delphi).
One language may not be a subset of the other one (e.g. C vs. C++).
That was "borrowed" from the polyquien challenge
does that work?
No that still gives only examples, with no way of objectively extrapolating to other languages
Also, saying C is a subset of C++ will bring war... ;)
Lol xD
Let me try borrowing stuff from other rosseta-stone challenges
Helka often says that you can just trust people to keep to the spirit of the challenge, which is usually true. I think as long as the rules are clear and unambiguous, little misunderstandings can be deleted and the challenge doesn't need to be perfectly defined
so can I jsut leave out language restrictions?
I feel that we wont see "trolls" just answering in every trivial variant of language X
It's up to you how much to trust the competitors. You could just give a reasonable warning that solutions in a language you consider too similar to an existing solution will be disqualified at your discretion.
1:19 AM
@trichoplax That seems to contradict Dennis’s position
@Lynn That it should be strictly defined?
50 mins ago, by Dennis
@RohanJhunjhunwala People that follow the rules aren't trolls. If you host a competition, expect people to play to win.
It seems to have been reopened,
I will just add this warning "borrowed" from another rosetta-code Also, no shenanigans with basically the same answer in a slightly different language dialects. I will be the judge as to what submissions are different enough.
Specifically expect people to play to win vs. trust people to keep to the spirit of the challenge
Does that sort of wording work?
Can I arbitrarily judge if a language is considered "different enough". THat doesn't seem objective
1:22 AM
@HelkaHomba Why not?
@Lynn I think there needs to be a compromise. I have a tendency to try and close every possible loophole when writing a challenge, which often turns out to be unnecessary. It can rarely be perfectly defined so it's about deciding how far to go. I really don't know where to draw the line with this one. The only way I can see to ensure there is no way around the rule is to have the list of equivalence classes I mentioned. Do you think that would be watertight enough?
@DJMcMayhem What about a cluster of 4,000 Raspberry Pis
My experience is that if you try to close all the loopholes people will scrutinize your challenge harder. :(
@Lynn Got an example?
Leave something subjective and people will play along. Try to pin-point it, and people will nitpick.
1:24 AM
@RohanJhunjhunwala I think it is as objective as you can get for this purpose. It seems fair for all the languages you manage to mention up front, but for the languages you miss you'll have to make a decision that wasn't known to the competitors at the start, which gets awkward
All right take a look at how it looks now feel free to edit the wording
My personal preference is to make everything watertight, but I'm trying to consider how important it is in specific cases, and to judge how strict a given challenge needs to be
Any active CMCs? Pretty bored right now
Yeah, but I do feel that most submissionsfollow the spirit of the challenge
1:28 AM
@RohanJhunjhunwala Did you still want some kind of restriction on how often someone can post a first solution in a given language?
I added that
@ΛεγίωνΜάμμαλϠΨΠʹ yes: fix cheddar argument parsing in fewest bytes possible
@RohanJhunjhunwala Ah I see it now
1:30 AM
@LeakyNun done. (with a one byte improvement)
1 hour ago, by Conor O'Brien
CMC: given a string S and a number n, yield all strings that result from removing n characters from S
@ConorO'Brien Can S be a char array?
@RohanJhunjhunwala I'm a bit too tired to take in what I'm reading now, but I suspect there are things mentioned in the tl;dr that are not mentioned in the main body, which could be confusing. Is the time delay mentioned in the main body?
@ΛεγίωνΜάμμαλϠΨΠʹ sure
no @trichoplax let me fix that up
1:37 AM
@RohanJhunjhunwala I'm going to sleep now. Good luck with your challenge :)
Ok thanks
Thanks for your help @trichoplax
No problem - it's been interesting
@ConorO'Brien Mathematica, 45 bytes: a[[#]]&/@Range[b=Length[a=#]]~Subsets~{b-#2}&
2:07 AM
chirp chirp chirp
@Downgoat that's been active for like a month
@EᴀsᴛᴇʀʟʏIʀᴋ you gotta problem with that? :P
2:27 AM
Definitely superexponential weird
2:40 AM
what is that?
3:25 AM
Lol, there are at least 3 Stack Exchanges about cryptocurrencies.
@feersum well they are also like 10 SEs about languages :P
What kind of languages do you mean?
I assume he means natural language
Will 8dot3 always be with us?
> greeted their opponents
i am very tired
4:29 AM
Hello everyone
what's a word for quickly tinkering, working effiently?
@Sherlock9 Hello!
@Mego Don't you think it would be more convenient for D6 to access the global stack
Alright, so my campus wi-fi seems to be wonky because it took four captchas to open a strawpoll
@ConorO'Brien Perfect challenge for Brachylog
Just kidding
@ConorO'Brien Pyth, 7 bytes: <ReQ.ph
Beware of the complexity
Guys, if nobody is doing the printable in Actually, I'll start working.
5:09 AM
Q: Print every printable ASCII character without using it

Helka HombaIn a programming language of your choice, write 95 programs, each of which outputs a different one of the 95 printable ASCII characters without that character occurring anywhere in the program. For example, if your language was Python, your program that outputs the character P might be print(ch...

Go right ahead
Will you do it also?
Nah, I'm working on another idea
What are you working on?
5:14 AM
CMC: Post all unique partitions of a string (all lengths from 1 to length of the original string)
@Sherlock9 Pyth, 2 bytes: ./
<code>;╕lR╛╧M</code> if you don't care that the results are lists of chars
;╕lR`╛╧♂Σ`MΣi if you want to push strings to the stack with no lists
The first one doesn't work for me
Nor does the second one
@LeakyNun That was my first idea. But you need to print "bd" and "ac" and so on
Eh, that isn't exactly what partition means
Oh, the backticks got deleted
5:17 AM
Nice use of
@LeakyNun Well, I don't know the word for this. "All possible substrings"?
Thanks :D
@Sherlock9 it's called subsequence
CMC: Print all possible subsequences of a string
@Sherlock9 __import('itertools')__.permutations(input())
did i python correctly
5:21 AM
@Downgoat I don't think so
it isn't permutated
@Downgoat Not quite. They should be unique and have the length-1 subsequences, length-2 subsequences, and so on
Also, Python golf-wise you'll rarely ever need __import__
CMC: golf this python code: print __import__('itertools').permutations(input())
input() (functionally it's basically the same since nothing is output)
5:33 AM
from itertools import *;permutations
@Sp3000 fixed loophole
By the way, I just found a way to error in Actually
(It was said that it is impossible to error)
@Mego Bug?
5:52 AM
CMC: make the char c in Actually using the printables save c.
Fml, the whole lyrics of 99 bottles doesn't contain a single c

« first day (2032 days earlier)      last day (1801 days later) »