« first day (72 days earlier)      last day (562 days later) » 

Anonymous
12:11 AM
@Pavel I appreciate your help with this. It's nice to know that it's somewhat doable. I'll still check with a lawyer, though, before deciding anything :P
 
2:48 AM
yay post vote work
@Mego do we want to remove rows from AnswerVotes when they are switched to 0?
 
Anonymous
@Downgoat No, because we need the history for vote lock-in (if we do that) and voting abnormality detection
 
oh ok
 
Anonymous
@Downgoat Done
 
I'll probably add a callback for post-login so it'll submit your vote after you login
I suppose we should also get commentary working
btw are we doing threaded comments?
like the comments that appear under each answer
 
3:17 AM
In my Chrome the answers column changes alignment slightly when you open it. example
 
@EsolangingFruit does this happen at a specific browser width or just in general?
@EsolangingFruit that seems to happen because the first 5 are one digit and once you click see all you go up to 10. in the first column so that isn't really avoidable
unless I left-align, fixed width, or new context, neither is desirable
hm lemme try latter
 
 
1 hour later…
4:37 AM
Alternative logo that is more inline with theme color and scales better than current one
idk i have like zero ideas on what logo should be
I don't want to make like a "C" with negative space because idk if we'll keep the name code-golf
 
Honestly I'd prefer a green to the current blue that we have.
 
Anonymous
5:17 AM
@Downgoat Not yet. Unthreaded comments to start, and then we'll RFC threading
 
5:27 AM
@Pavel I've tried a green but most shades are either too dull or are blindingly bright.
 
5:38 AM
btw, do we want to work on a rep system first?
 
Anonymous
No, that should be one of the later things we do
 
Anonymous
Because that will take so much deliberation and community input
 
hm ok
 
Anonymous
In fact, I'd be fine having a beta without a privilege system
 
Anonymous
Or with a very limited privilege system
 
5:49 AM
Popping in to checkout the site: I'd definitely rename "Posts" to "Challenges"
 
Could we for now just add a level for users. 0 being a new user. 999 being admin and we can work out everything in between and how levels are automagically increased depending on rep later
@NathanMerrill oh good idea
 
make -1 an Admin. That way, you don't have a cap
 
oh yeah that's a better idea
 
Anonymous
@Downgoat That seems unnecessarily complicated and not terribly useful
 
Should we change the URLs too? /post/:id -> /challenge/:id
 
Anonymous
5:52 AM
@Downgoat Eh. I like the shorter URLs. We can duplicate them, though
 
@Mego would be as simple as adding 1 SQLAlchemy line and that way we can add the ability to delete posts so I don't have to launch mysql cli and manually delete rows from 5 tables
 
duplicate them doesn't make sense. The one that will get used is the one you use as your link url
 
Anonymous
For "levels": it would be much neater just to have a table of levels and reqs, and have the users have a foreign key into that table
 
Anonymous
Or, to normalize it, do that but don't have the foreign key, and instead compute the role based on the highest requirement fulfilled
 
Other small things: In the post list, the entire block should be clickable, not just the link. Sort by "relevance" doesn't make much sense on the answer list. Does that just mean "popularity"?
 
5:55 AM
Different actions could give different kinds of privelages. Achieved a combined score of X for challenges? You can skip the sandbox. Raised Y helpful flags? You can cast close votes.
 
Anonymous
I'll at least make an admin role for us so that we can nuke stuff
 
A permissions table sounds far simpler. Being an admin is a permission, and those abilities are distinct from the abilities that rep would give you.
 
@NathanMerrill relevance = some metric that weighs score, date posted, and maybe code length to avoid FGITW issue but also allow discovery of interesting answers
 
The term for that is usually "popularity"
 
I would assume popularity is just post votes
 
6:00 AM
nah. Popularity almost always includes a time element: google.com/…
 
6:12 AM
Anyways, I'm sure you're brimming with suggestions, but here are some from a neutral third party:

1. Allow people to star languages. This will make those answers more prominent, as well as populate a new page called "Compete". On the compete tab, users can see a list of all recent answers in his starred languages, and can press a button if he thinks he can do better.
2. On the leaderboard for a post, below the byte count, have a small "Compare" link. When you press it, it shows all other answers in the same language, with their byte count. (You could also do it on hover, but I like tha
I'm not super invested into any of them, so feel free to ignore any or all of them, but I enjoy giving feedback
 
Oooh, I like the starring language idea
@NathanMerrill something like that? ^
 
yeah. I'd remove the blue, though. It doesn't need to stand out
 
it should be clear that it's actionable though
though I was thinking I could just make the language names clickable and you'd get the smae info
 
"Compare" is an action word, and you'd still have the mouse change on hover
either way, I'm imagining that the language scores would appear below the post, indented a little bit.
The other thing you could do is change the "Leaderboard" to "Top 5". This provides direct motivation for people to try and snag one of those spots
it'll also reduce loading time of large posts
(but that's just an added benefit, not a good enough reason by itself IMO)
 
@NathanMerrill for discovery the user should not need to interact with the element
 
6:27 AM
Surely not everything clickable is going to be blue?
 
@NathanMerrill I could probably just add trophy icons for the top 3
 
like, I'd expect user names to be clickable, but not blue
 
Anonymous
@NathanMerrill Or maybe paginate the leaderboard?
 
@NathanMerrill not necessarily blue but they'd need some distinguishing factor
 
@Mego maybe? I was more-or-less trying to distinguish the top answers. Pagination does distinguish them, but its more of a subconsious distinction. If you literally say "Top 5" as the header, suddenly, you've created a goal for people to hit
 
6:30 AM
I don't want to give rewards for shortest absolute byte count though
 
People say that getting silver is the worst medal, but that's not true: 4th place is the worst :)
 
maybe a trophy icon for shortest in a language if they are 3+ answers in that language
 
@Downgoat you already are by putting a leaderboard
That leaderboard isn't about discovery. Properly sorting the answers will give you the best discovery. It's all about the competition. By placing answers of different languages in the same table, you've put them in competition with each other
 
Anonymous
@NathanMerrill That's not a great thing, though. One thing I want to do right with this site is emphasize intra-language competition over inter-language competition
 
then I'd say you get rid of that table. Change it to "Top Victors" or something, and sort it by # of submissions beaten (in the same language). Below it, you can have individual tables for each language you've starred
Anyways, one last suggestion before I go to bed: Allow posts to add test cases. More specifically, below your post textbox, you have two adjacent vertical lists of input fields, one for input, the other for output. Allow them to be encoded in JSON, which allows easy testing for languages that support it (but this last part can be well into the future).
 
6:50 AM
@NathanMerrill I'd rather not have automated tests
if someone wants to show examples they can add a codeblock into the commentary
 
why not? I'm not saying that they are a requirement for submissions, but it sounds fantastic if I can write my code in your editor, and immediately know if my submission works
 
Anonymous
@NathanMerrill Because of the billion different ways that various languages do I/O. It would be a nightmare to try to automate that.
 
right, you don't support them all. You support the one (maybe two) most common.
 
Anonymous
I'd rather not do automated testing at all than do it half-assed
 
there's no real way to support every form of input
 
6:55 AM
@NathanMerrill It's possible to add a new UI which will open like a mini-TIO in which you can test your code from the editor
 
even if a language has only functions, you can do it as a curried function, or you can passing a wrapper function, or a gazillion other things
@Downgoat This is basically what I'm talking about. You're able to immediately test your code, and if the tests are properly formatted then you don't have to do any data-munging
furthermore, doing stuff like this will motivate users to stick to a single form of IO (which is a good thing IMO). IO isn't where the interesting golf is
 
@NathanMerrill it's not just in terms of 1 vs "1" some langs don't support dicts for example, they need nested arrays. Some languages don't support floats and need some alternative representation
 
Anonymous
@NathanMerrill I agree that I/O isn't the interesting part of golfing. I disagree with your conclusion - with flexible I/O, users can focus on golfing their implementation, rather than having to spend time and bytes on manipulating whatever I/O format is used into a usable format for their language. This was a debate that happened several years ago on PPCG.
 
this isn't about manipulating IO
ok, as an example, lets say I have a post that has a dict as an input
which language X doesn't support
but they do support nested arrays
Each language would have custom code that could read the JSON input format, and output a string best for the target language
then submissions in language X could just assume that their input is in a nested array
and not do any data-munging (either in their code, or by hand in the mini-TIO)
sure, perhaps to golf off a byte, they could have made the nested array [value, key] instead of [key, value], but having a standardized format for each language would absolutely help
 
Anonymous
11 mins ago, by Mego
@NathanMerrill Because of the billion different ways that various languages do I/O. It would be a nightmare to try to automate that.
 
7:04 AM
right, but there's a standard way to do each thing
so, for dicts in lang X, you have a nested array of [[key, value]]
if they want anything different, they have to do it themselves
 
@NathanMerrill that sounds incredibly complicated and for the many possible combinations and hundreds of languages (particularity esolangs which don't support dicts). That seems like a huge barrier to supporting a wide variety of languages
Also what would happen when a user uses a non-natively-supported lang?
 
its an optional thing for each language
languages can be supported before auto-data-conversion happens
this also goes back to my "Community-backed languages" that I talked about a long time ago
Nov 16 '17 at 15:23, by Nathan Merrill
Hey, random idea: There are tons of language specific stuff for golfing. Stuff like "What encoding does it use" or information like this
hm...it does appear that my idea has changed a bit, because "transforming JSON into a string" isn't just data anymore, that's code
Still, the concept of community-provided language support can really work. Languages that are popular will have a fantastic set of tools to go with it. Language authors can write their own tools to make it easier for people to learn their language. Really, the biggest issue I see is malicious code, but there's got to be ways to fix that.
 
@NathanMerrill I think we've explored the idea of user 'plugins' which would allow (if I understand you correctly) the ability to make tools for specific languages.
Those are pretty far off though and would need careful sandboxing
 
Anonymous
7:21 AM
@Downgoat We're probably better off just creating a front-end API for that and letting people write their own userscripts
 
I've already exposed some basic models like Post, Language, Data, and Leaderboard so that's also possible
you can also interact with JS controllers using the .controller prop on dom nodes
 
Anonymous
@Downgoat Wait... If you directly expose those models, then it's probably possible to do client-side direct db manipulation
 
Anonymous
You should expose them via readonly proxies
 
Anonymous
Also: @Downgoat I'm making a breaking change to the themes API. Rather than session['dark_theme'] being a boolean for whether or not the dark theme should be used, I'm using session['theme'] to hold the name of the theme. Themes will be enumerated in the db. I'm doing this so we can have more than two themes in the future (hotdog theme when)
 
Anonymous
Also it makes handling user theme prefs much cleaner
 
7:30 AM
@Mego those models are only read-only
they don't do any requests (except Leaderboard which does a GET request of answers)
@Mego ok, yeah that's a good idea
(not dark_theme -> theme part, not the hotdog part)
 
Anonymous
I will put up a bounty on GH for a hotdog theme at some point :P
 
will report to GH for disturbing content :P
 
Anonymous
 
1:57 PM
@Mego This is more or less what I'm thinking. The majority of the language support can be done easily in JS. The only thing that really requires the server is code execution.
(except that it's not userscripts through a chrome extension or something, its userscripts built into the site for particular languages)
 
Anonymous
@NathanMerrill Yep, and we have a frontend API for running a TIO query
 
which still has cross site scripting problems, but its far easier to handle than server abuse
exactly
 
Anonymous
So if people want to hook up custom JS to support their languages, they absolutely can (with much less effort required than on PPCG). We just aren't going to try to deal with the logistic nightmare :P
 
5:23 PM
the formatting breaks on my tablet
 
 
2 hours later…
7:02 PM
@ConorO'Brien browser?
 
@Downgoat I might be wrong but it looks like FF?
 
@Downgoat firefox
 
@ConorO'Brien oh ok
I will investigator the issue later today
 
 
1 hour later…
8:09 PM
Huh not formatting again ... Hopefully your ff fixes don't bork Safari again
 
Which dropdown do you prefer?
The one with colors or the one without
 
I like both
I think I like the multicolored more
 
I prefer the first one, but I like both.
 
I'd prefer the second one where the onhover is the first one
 
That too.
I guess the final vote belongs to Mego. Perhaps the onhover version like Poke said is best
 
8:16 PM
color on hover without constrasting change would be awkward
@Mego opinions?
 
Umm... The leaderboard isn't self-scrollable?
You must scroll the entire page to see the bottom of the leaderboard, when there are many answers?
 
@Mr.Xcoder I'll fix all scrolling/position bugs since the way the content is laid out is flawed. I'll fix that soon
 

« first day (72 days earlier)      last day (562 days later) »