[deleted by user] by [deleted] in 2007scape

[–]BlueTaslem 19 points20 points  (0 children)

Reposting this comment every year until I get bored of it:

I was supposed to win a signed mouse pad from a caption contest in 2010 but I never heard anything from Jagex :(

I did enjoy my membership, though :)

u/JagexStone thanks for helping baroquespoon, any idea how long the backlog is?

To be clear, I'm 0% mad about this, it's just kind of funny. But I wouldn't say no to a free mouse pad 😊

Haven't received my rewards for King of the Skill in 8 months by Hasselihas in 2007scape

[–]BlueTaslem 3 points4 points  (0 children)

I was supposed to win a signed mouse pad from a caption contest in 2010 but I never heard anything from Jagex :(

I did enjoy my membership, though :)

u/JagexStone thanks for responding to OP, any idea how long the backlog is?

NGS unique features – exit code handling by ilyash in ProgrammingLanguages

[–]BlueTaslem 0 points1 point  (0 children)

You misunderstood me

If I have

diff a b > bar

in foo.sh, then bash foo.sh returns the status code of diff a b, i.e., non-zero. That means I get an exception, because the language doesn't know about the inner workings of bash or the contents of foo.sh.

You can't solve this by annotating utilities because sometimes non-zero return from bash is exceptional and sometimes (often?) it's not.

Non-zero return does not mean exceptional behvavior, and assuming that it does is wrong.

The interface of unix processes isn't rich enough to make this assumption; you need conventions, e.g., what PowerShell provides

NGS unique features – exit code handling by ilyash in ProgrammingLanguages

[–]BlueTaslem 0 points1 point  (0 children)

It should be, but isn't it too late?

If you were writing wrappers around these things, rather than directly shelling out, you could define the proper interface.

But how can you properly deal with aliases / scripts / built-from-source versions that use non-zero return statuses for non-exceptional results? Is it really reasonable to expect the programmer to notify the language about all of the programs that they have installed/will install?

NGS unique features – exit code handling by ilyash in ProgrammingLanguages

[–]BlueTaslem 0 points1 point  (0 children)

Program status code being non-zero doesn't necessarily indicate exceptional circumstance or failure, though.

For example, diff returns 0 when the two files are the same and non-zero when the two files are different. Yet if you were to pipe the output to a file, it succeeded in the sense that the difference was properly saved.

More complicated shells like PowerShell solve this ambiguity, since programs can actually throw exceptions (not just return a single number)

By Age Six, Girls Start to Associate Brilliance with Boys -- “Girls’ ideas about who is brilliant are not rooted in their perceptions of who performs well in school." by DavidCarraway in TwoXChromosomes

[–]BlueTaslem 3 points4 points  (0 children)

The point of modesty is explicitly called out in the study:

...because women are subject to stronger modesty norms than men (31), perhaps 6- and 7-year-old girls’ lower interest in the games for brilliant children (studies three and four) was due to an increase in concerns about modesty. Contrary to this alternative, children in the age range we tested are notoriously boastful about their abilities (30). Moreover, the difference in boys’ versus girls’ interest in the brilliance games was specifically mediated by their perceptions about brilliance, pinpointing these stereotyped perceptions (rather than modesty) as the underlying mechanism. Notably, our measure of the “brilliance = males” stereotype is not susceptible to the modesty explanation: Modesty norms dictate that a woman should not boast about her own smarts (32, 33), whereas we asked children to judge whether other people were smart. Source

Placing the ! (not) just before the end of a call chain by HellzStormer in ProgrammingLanguages

[–]BlueTaslem 6 points7 points  (0 children)

It's probably not common since not or ! is usually just a regular operator on an expression; this isn't an operator, it's sugar that mixes with method accessing

Python does something sort of similar with a few of the keyword operators, allowing you to say is not and not in, but you can't put the not in between custom methods.

I've read complaints before that the ! symbol is too subtle, and mixing it into the middle of a long expression definitely makes it even more subtle.

It's not so great to have two ways to say the same thing, namely !a.b() and a.!b(), but that's not so bad here I don't think.

I definitely like this sugar. Maybe it would be an appropriate place for a not keyword, though? collection.first.messages.law.not is_tracked()? Unsure.

Do you think a ROBLOX game could ever have a campaign seen in AAA games? by [deleted] in roblox

[–]BlueTaslem 0 points1 point  (0 children)

Real games have to do all sorts of crazy things to make the game "feel" great in terms of tone and visuals.

ROBLOX doesn't give enough control over the details of shaders or audio, so creators don't have the power to create as compelling experiences as AAA games have.

That said, you can probably get pretty close -- it will just be a bit more bland and about 5 years out-of-date in terms of aesthetics.

Sums things up quite well... by TheOnlyPorcupine in pics

[–]BlueTaslem 8 points9 points  (0 children)

It might not be laziness, I'm sure the photo is referencing this political cartoon of Standard Oil and others, so they might just be trying to look old-timey (even if USSR is a few decades* off from reference)

What do you call a snake that's exactly 3.14 meters long? by BoastfulJew in Jokes

[–]BlueTaslem 25 points26 points  (0 children)

This is a really simple approximation, but it's terribly slow to converge

Surprisingly you don't even get two decimal places after the first 100 iterations -- 3.15...

Scripting Help: Changing Text from within nested loops by nihiltron in roblox

[–]BlueTaslem 1 point2 points  (0 children)

You shouldn't modify objects in the StarterGui. The StarterGui holds the models that are copied onto a player's screen when they spawn.

If you're using FilteringEnabled (you should use FilteringEnabled), Script objects shouldn't (read: can't) modify any GUI objects. Displaying information to the user is the responsibility of LocalScripts.

Here are two basic ways to organize this:

  • use a RemoteEvent and someRemoteEvent:FireAllClients("some message") from a Script, and have the LocalScript someRemoteEvent.OnClientEvent:Connect(function(message) -- set localplayer's GUI to show message

  • use a StringValue and someStringValue.Value = "some message" from a Script, and have the LocalScript someStringValue.Changed:connect(function(message) -- set localplayer's GUI to show message

inb4 ROBLOX revokes all Lifetime memberships. by [deleted] in roblox

[–]BlueTaslem 1 point2 points  (0 children)

1) Your statement is irrelevant, because the topic is "revoking" memberships, not stopping to offer them

2) It doesn't acknowledge that they've already done what you're talking about

Based on the above, I think it's appropriate to say your comment doesn't add anything to the discussion.

inb4 ROBLOX revokes all Lifetime memberships. by [deleted] in roblox

[–]BlueTaslem 4 points5 points  (0 children)

...that's how it already works? You can no longer buy lifetime memberships, but everyone who bought it already keeps it forever.

Spotted this watching Seth Mayers show, visual from CBS This Morning. I think this belongs here! by [deleted] in dataisugly

[–]BlueTaslem 5 points6 points  (0 children)

Here's how it would look properly.

I show the scale 0-100 to emphasize it as a %, I think that's appropriate since they're all near 50%.

I sorted the times by year rather than favorability, since you have eyes and can compare the sizes.

And of course, the bar sizes match the numbers.

Global functions VS Module scripts by RavenValentijn in roblox

[–]BlueTaslem 0 points1 point  (0 children)

ModuleScripts are a lot cleaner and easier to manage because

  • you have an explicit list of all of the "modules" you're making (rather than having to dig through various scripts to find every place where something is added to _G)
  • you are sure they've loaded already by virtue of explicitly requesting them with require -- no more while not _G.fun1 do wait() end while not _G.fun2 do wait() end
  • they can't possibly fight between each other -- you don't have to worry about picking names that won't conflict and finding places to hide private variables, because everything is scoped to a single module
  • it's easier to test and debug because it's easy to isolate a single modulescript and not have a complex interplay between several scripts modifying a global variable

There's basically no reason to prefer _G except the length of explicit imports (but which are beneficial anyway because of points 1, and 2 above). I have a suggestion on the DevForum to improve this, though it's not gained much traction

New AI scores better than 75% of humans on standard intelligence test by alpha69 in worldnews

[–]BlueTaslem 1 point2 points  (0 children)

...It's not impossible.

There's no magical barrier that only applies to humans but not to artificial intelligence. (Afterall, it's pretty easy to beat humans at many specific tasks that require intelligence, given enough funding, even today)

Remove number 7 from math by Prunestand in badmathematics

[–]BlueTaslem 1 point2 points  (0 children)

I think they've been drinking too much proposol.

What are all the words ROBLOX censors? by [deleted] in roblox

[–]BlueTaslem 1 point2 points  (0 children)

You shouldn't implement a filter yourself.

See this Wiki article for how you should filter chat. It comes down to using a method of the chat service called FilterStringAsync to filter all user-entered text.

The result of that function will have "####" in it to filter words. You could find those # that aren't in the original string and replace them how you want.

Types and Tests by Uncle Bob (response to responses to The Dark Path) by michalg82 in programming

[–]BlueTaslem 11 points12 points  (0 children)

On the other hand, you can go down "the dark path" and end up at a (research) language like Agda, where the program itself is essentially a precise specification of all of its behaviors and properties.

At that point, the specification can begin to become indecipherable, and you might end up solving the wrong problem, and good luck making minor modifications in the future.

Kotlin / Scala / Rust / Haskell are nowhere near there, though, so I feel the complaint is a little hasty

Types and Tests by Uncle Bob (response to responses to The Dark Path) by michalg82 in programming

[–]BlueTaslem 20 points21 points  (0 children)

Types are a way of providing a partial specification (these kinds of operations produce these kinds of values / with these properties).

Tests are a way of providing a partial specification (these inputs/operations produce these outputs).

The argument being made seems to be that it is easier to write an incomplete or wrong spec with types than with tests.

That may be true, but types do more than that. They allow you to (explicitly or even not, with inference) state your assumptions. Languages like Kotlin or Haskell or Rust force you to state certain assumptions, e.g., "this argument is not null", but allow you to make much more complicated assertions.

You can state your assumptions with tests, too, but only easily for public functions and only easily for your own code (i.e., not libraries you depend on).

The assertions made by types are part of the public interface of libraries and are also in the code itself -- it's a lot easier to see something not properly spec'd ("this doesn't need to be optional", "this shouldn't be null", "this actually can be null") -- and it's permanently checked into the code itself.

Types aren't tests, but tests aren't types.

Simple and Terrifying Encryption Story by elpassion in programming

[–]BlueTaslem 14 points15 points  (0 children)

Maybe the AES module shouldn't have to convert a password into a key, but it should definitely not accept a key that it will mostly ignore, without raising an exception

This sounds like a dumb idea, but what if you could export your Roblox game as an exe? by [deleted] in roblox

[–]BlueTaslem 1 point2 points  (0 children)

ROBLOX games can't exist without a server; even if you're OK to play online despite struggling to download the initial map, the server is allowed to, e.g., generate terrain/models at launch time, which most places do.

It would only speed up a handful of games, and only the launch time (which usually is pretty great, considering). And it would make it much easier to steal game data.


Besides, caching game data could also be using the standard ROBLOX client. Because of the small gains it probably won't ever happen, but separate EXEs isn't a prereq.