Moonside

Moonside wrote

  1. Your coursework
  2. simple worksheet generator
  3. 2D time pong
  4. python script for friend
  5. circuit-design esolang/cellular automata
  6. 2D time level/overhead/action maze thingy.
  7. 2D time platformer game
  8. falling flour game (as practice-project for:)
  9. connect flour android game (connect four with flour)
  10. YouTube series (edutainment YouTubing is imo oversaturated atm)
3

Moonside OP wrote (edited )

Normal italic bold italic and bold One pair of asterisks too far.

Questions|Answers // The table headings :--|:-- // The cell alignments What is your favorite color?|Orange. // A row Cats or dogs?|Foxes. // Another row

Test

Test

Test

Test

Test

Test

Test

Test

Test

Test

Test

Test

Link

Image

We have seen thee, queen of cheese,

Lying quietly at your ease,

Gently fanned by evening breeze,

Thy fair form no flies dare seize.

All gaily dressed soon you’ll go

To the great Provincial show,

To be admired by many a beau

In the city of Toronto.

  • Unordered list item one.
  • Unordered list item two.
  • Unordered list item three.
  • Unordered list item one.
  • Unordered list item two.
  • Unordered list item three.
  1. Ordered list item one.
  2. Ordered list item two.
  3. Ordered list item three.
  1. Ordered list item one.
  2. Ordered list item two.
  3. Ordered list item three.

Horizontal rule:


Let it there be inline code using backticks.

code block 1

print '3 backticks or' print 'indent 4 spaces'

# code block 2
print '3 backticks or'
print 'indent 4 spaces'
1

Moonside OP wrote

I use a client for twitter just because it makes the numbers less prominent, and it rules. I love twitter, but jesus the number shit is such a pain. Like I see folks post about how many followers they have, or like screenshotting the twitter analytics page, and I kind die on the inside.

Actually I went and got a custom CSS Chrome extension and got rid of almost all number silliness with these settings on my desktop computer:

.ProfileTweet-actionCount {
  opacity: 0;
}

div.module.Trends.trends {
  opacity: 0;
}

.ProfileCardStats {
  opacity: 0;
} 

Needless to say, this rules. Twitter just feels like relaxed spa now.

3

Moonside wrote (edited )

I actually first stumbled into rational number data type when I was 12 or 13 and learning Lisp (but that story didn't end well and which totally gave me a misleading view of how principled programming languages were). I think all the major functional languages have them as it's not hard to implement as an abstract data type. A super basic is just a product type of two integers and call one the numerator and the other denominator and implement the operations accordingly.

Even Coq has them and if Coq has something implemented, it's probably pretty widespread in Haskell, Standard ML, OCaml, Scala and various Lisps and what have you.

If you really want some numeric nonsense:

  1. Bad implementations of complex numbers. The rectangular form a + bi is good for sums and re^(iθ) for multiplications. Ideally there should be one type for complex numbers and two classes like data Complex = Rectangular a b | Polar r θ in Haskell. This works ok if there are sum types, but apparently this is too avant garde for most languages.
  2. The Haskell numeric tower makes zero sense and is implemented with type classes, which isn't first class and is antimodular to the extent I recommend beginners only use library defined ones and not make your own like at all for a while at least. Like the Num class for numbers: you need to implement the operations (+), (*), abs, signum, fromInteger, (-) where abs and signum are total party poopers as basically what Num is is a mathematical ring with an extra operation. But, for example, complex numbers don't have a notion of absolute value defined for them so this turns sour quickly. I don't know what would make the situation better, however. They'll never fix this, probably.

Also if you want to read a rant about Booleans... this is pretty good. Every time I'm writing a function that takes a boolean parameter, I split it in two functions or somehow avoid testing for equality in the function. Thus pattern matching is bae and matching constructors is heaven sent. The author's piece on why dynamic languages aren't a thing at all is good too.

Phew, I'm glad that I got all that out of my system!

3

Moonside wrote

They represent real limitations for games (not really, but let's pretend)

They do, actually, if they're used for tracking time. If the game runs long enough (very possible in server-based online games), the physics increasingly start to go wonkier as the simulation becomes less and less fine-grained.

They're susceptible to flaws (different hardware might do different fast float maths - bad for speedruns, maybe? but also not a big deal at all)

It makes things more difficult for emulators, also in subtler ways like different kinds of conventions for rounding. I do wonder if these could be accounted for somehow, there are computations for which accuracy, reproducibility, making sense on a semantic level and so on are importanter than the pursuit of SPEED.

Other places we see floating points where fixed points could work just as well:

  • Anything dealing with percentages (likely bounded 0 to 1, or 0 to 100.)

I do wonder how well that actually works. While for probabilities it is always the case that for any event X, 0 ≤ P(X) ≤ 1, you can have steps in calculations that go out of these bounds. For example, 0 ≤ P(AB) = P(A) + P(B) - P(AB) ≤ 1, but if P(A) = P(B) = 1 then we'll have P(AB) = 1 + 1 - 1 = 2 - 1 = 1, where of course 2 > 1.

Also my shout out to humble rational numbers: the opportunities for using them are rare, too rare perhaps, but you feel clean like after having a bath when you do get to use them.

2