I am just annoyed that Nintendo hasn't learned how to implement this at all. Windows freaking 95 knew how to do it! They have no excuse.
henke37
@henke37
Best posts made by henke37
-
RE: Daylight saving time
-
RE: Who needs trigger warnings anyway? (Trigger Warning: trigger warnings)
Presented without comment:
if @a.responds_to?(:abs) # here @a is not guaranteed to respond to `abs` end
-
RE: Process exit on Windows and Linux
I'd like to point the blame at the POSIX design instead. The entire concept of a parent being interrupted in the middle of work to be notified that it has to go and collect the exit code of the child process is moronic.
If I want to be notified, I call a function such as MsgWaitForMultipleObjects in my main loop. Then I'm prepared to deal with the situation. None of this nonsense with surprise control flow hijacking.
There is also the entire idiotic design decision to reparent processes to process # 1. That's just wrong. Don't even bother sending the signal if there isn't anyone there to listen.
The windows process management api is just better. Any process can, not must, but can, listen for notifications of any other process exiting.
-
RE: 🔥🔥 MLP Resume Boning :giggity:
I am going to be blunt here, even by MLP fan standards, this is bad. Awful, awful recolors with color gradients that have way too many colors. And what's the source artwork? Instantly recognized stock vectors that cost respect.
-
RE: Useful error messages.
Microsoft has guidelines for error mesages It's even includes examples of what not to do.
-
RE: Who needs trigger warnings anyway? (Trigger Warning: trigger warnings)
If you redefine a method, the last definition will take precedence.
You can invoke the previously redefined method with previous_def:
class Person def become_older @age += 1 end end
class Person def become_older previous_def @age += 2 end end
person = Person.new "John" person.become_older person.age #=> 3
All the fun of subclassing, except it's just one class.
-
RE: Character-separated-values
Quick reminder: Excel can't even understand CSV itself. At least not in the Swedish localization. They like to think that the comma separated values are using semi colons as deliminators.
-
RE: Unity UNET "Adventure": This is how you do FIFO wrong
UDP may not be reliable, but it still claims to be "best effort". Mangling the packet order like this is not "best effort".
UDP is doing a better job than Unity here.
-
RE: Weather simulator WTF
This better support snow, frost, hail, sandstorms, tornadoes and rainbows. And what's with all this "use your smartphone" crap these days? What's wrong with plain old wifi?
-
RE: Really inspiring confidence there, guys...
It is less about intent and more about what the API they randomly selected offers.
Latest posts made by henke37
-
RE: Steam based their OS on Linux, so of course it's broken shit
Even VGA had a digital command link.
-
RE: 🔥🔥 MLP Resume Boning :giggity:
I am going to be blunt here, even by MLP fan standards, this is bad. Awful, awful recolors with color gradients that have way too many colors. And what's the source artwork? Instantly recognized stock vectors that cost respect.
-
RE: Process exit on Windows and Linux
I'd like to point the blame at the POSIX design instead. The entire concept of a parent being interrupted in the middle of work to be notified that it has to go and collect the exit code of the child process is moronic.
If I want to be notified, I call a function such as MsgWaitForMultipleObjects in my main loop. Then I'm prepared to deal with the situation. None of this nonsense with surprise control flow hijacking.
There is also the entire idiotic design decision to reparent processes to process # 1. That's just wrong. Don't even bother sending the signal if there isn't anyone there to listen.
The windows process management api is just better. Any process can, not must, but can, listen for notifications of any other process exiting.
-
RE: Embroidery Machine Software
Too bad that you don't get to choose the file format, the hardware driver is the one that does that.
-
RE: On a scale of 1 to WTF?
Just use css to turn a non table element into a table.
-
RE: The best keyboard ever ☺
Eh, seems pointless when there has been keyboards with small screens in the keys for years.
-
RE: Who needs trigger warnings anyway? (Trigger Warning: trigger warnings)
I think the compiler is allowed to optimize those out. But I bet it doesn't.
-
RE: Who needs trigger warnings anyway? (Trigger Warning: trigger warnings)
Note that private methods are visible by subclasses
Because fuck other languages and how they do it.
A class inherits all instance variables and all instance and class methods of a superclass, including its constructors (new and initialize).
The next paragraph:
If a class defines a new or initialize then its superclass constructors are not inherited:
Now it's contradicting itself.
When a variable's type combines different types under the same class hierarchy, its type becomes a virtual type.
The real reason the compiler does this is to be able to compile programs faster by not creating all kinds of different similar unions, also making the generated code smaller in size.
They couldn't stand their own crazy system.
An extend makes a type include methods defined in that module as class methods:
Includes and/or namespaces, except when they are not.
Macro defs allow you to define a method for a class hierarchy and have that method be evaluated at the end of the type-inference phase, as a macro, where type information is known, for each concrete subtype.
Yes, now we are running code inside the compiler. But wait, it gets better.
Special macros exist that are invoked in some situations, as hooks: inherited, included and method_missing.
- inherited will be invoked at compile-time when a subclass is defined.
@type becomes the inherited type. - included will be invoked at compile-time when a module is included. @type becomes the including
type. - extended will be invoked at compile-time when a module is extended. @type becomes the extending type.
- method_missing will be invoked at compile-time when a method is not
found.
And you thought that the C preprocessor wasn't fun enough.
Constants can be declared at the top level or inside other types. They must start with a capital letter:
Yup, anything that begins with an upper case letter is a constant. Obey our naming convention, or else!
And then we get the yield system:
Methods can accept a block of code that is executed with the yield keyword.
When using blocks with yield, the blocks are always inlined: no closures, calls or function pointers are involved.
It's such a mess that I can't do it justice.
And finally, ever heard of build systems?
The design of the language inhibits build systems that attempt to do minimal rebuilds.Writing a program in a single file is OK for little snippets and small benchmark code. Big programs are better maintained and understood when split across different files.
To make the compiler process other files you use require "...". It accepts a single argument, a string literal, and it can come in many flavors.The attitude shown here shows that they've never worked with a big project.
- inherited will be invoked at compile-time when a subclass is defined.
-
RE: Who needs trigger warnings anyway? (Trigger Warning: trigger warnings)
If you use a single uppercase letter as a type restriction, the identifier becomes a free variable:
def foo(x : T) T end
foo(1) #=> Int32 foo("hello") #=> String
Yes, it's the same syntax as for regular types, but the identifier must follow an arbitrary rule.