A thing-place

When I release my forthcoming Correctly Designed Versions Of Every Useful Piece of Software Ever collection, the Web Forum will have a button on every post that shows you the avatar, signature, post count, and any other changeable fields as they were when the post was made.

I’ve wanted this more than once, but just now I was reading a post from 2006 that included the now-forever-mysterious line ‘I just noticed something funny… look at my post count :)’

FB Privacy Issue?

So last year I took a class from Professor Wendy Chun of Brown university. It was a very good class! But that is beside the point.

She made a facebook page for the class, which didn’t get used much, but at the beginning I decided maybe that meant she was open to being friended by students, which seemed possibly like fun, since she seemed pretty interesting. So I sent her a friend request saying something like “If you don’t like accepting friend requests from students that’s totally reasonable, but if you do, hi!”. She didn’t, apparently, as she didn’t accept the request.

Today (and once before, I think) I saw this in my news feed:

This seems… bad. So yes, facebook does in many cases already show you the friends of people you are not friends with. But is seems quite bad to show people notifications about people they’ve attempted to friend but who haven’t friended them back. And especially this kind of notification: “Hey, this person doesn’t like you very much, but look at all these other people they’re willing to let into their lives!”

The movie created a spot of controversy last February. According to a story by Larry Carroll of MTV News, Rob Schneider took offense when Patrick Goldstein of the Los Angeles Times listed this year’s Best Picture Nominees and wrote that they were “ignored, unloved and turned down flat by most of the same studios that … bankroll hundreds of sequels, including a follow-up to ‘Deuce Bigalow: Male Gigolo,’ a film that was sadly overlooked at Oscar time because apparently nobody had the foresight to invent a category for Best Running Penis Joke Delivered by a Third-Rate Comic.”

Schneider retaliated by attacking Goldstein in full-page ads in Daily Variety and the Hollywood Reporter. In an open letter to Goldstein, Schneider wrote: “Well, Mr. Goldstein, I decided to do some research to find out what awards you have won. I went online and found that you have won nothing. Absolutely nothing. No journalistic awards of any kind … Maybe you didn’t win a Pulitzer Prize because they haven’t invented a category for Best Third-Rate, Unfunny Pompous Reporter Who’s Never Been Acknowledged by His Peers.”

Reading this, I was about to observe that Schneider can dish it out but he can’t take it. Then I found he’s not so good at dishing it out, either. I went online and found that Patrick Goldstein has won a National Headliner Award, a Los Angeles Press Club Award, a RockCritics.com award, and the Publicists’ Guild award for lifetime achievement.

Schneider was nominated for a 2000 Razzie Award for Worst Supporting Actor, but lost to Jar-Jar Binks.

But Schneider is correct, and Patrick Goldstein has not yet won a Pulitzer Prize. Therefore, Goldstein is not qualified to complain that Columbia financed “Deuce Bigalow: European Gigolo” while passing on the opportunity to participate in “Million Dollar Baby,” “Ray,” “The Aviator,” “Sideways” and “Finding Neverland.” As chance would have it, I have won the Pulitzer Prize, and so I am qualified. Speaking in my official capacity as a Pulitzer Prize winner, Mr. Schneider, your movie sucks.

from http://assemblyman-eph.blogspot.com/ via @mossmouth
Got bored, Googled things

During a class, I googled things with the following rules:

1) Pick an initial term

2) Use the first full word (used as a word) from the first organic result’s snippet as the next term.

Here’s what happened:

a -> the -> Mar -> a -> [3-loop]

google -> enables -> to -> terrell -> the -> [3-loop]

query -> in -> government -> home -> world’s -> Inc. -> Mar -> [3-loop]

search -> search -> [1-loop]

random -> offers -> find -> search -> [1-loop]

ectoplasm -> ectoplasm -> [1-loop]

inclement -> etymology -> history -> the -> [3-loop]

airplane -> directed -> directed [1-loop]

aeronautical -> aeronautics -> aeronautics -> [1-loop]

happily -> in -> [4+3-loop]

several -> etymology -> [2+3-loop]

abstracted -> withdrawn -> removed -> distant -> etymology -> [2+3-loop]

apply -> oct -> optical -> find -> search -> [1-loop]

comic -> has -> words -> the -> [3-loop]

teleport -> important -> precedence -> pronunciation -> a -> [3-loop]

arranged -> over -> purchase -> purchase -> [1-loop]

In these few experiments, the longest chain achieved was 10 unique words before a loop, with ‘abstracted’. I suppose one way of trying to do better would be to look for pages whose results snippet begins with that word, find a term that gets that as the first page, and keep working backwards. Maybe later.

Observations: Lots of Wikipedia pages start with “The”. Lots of Wikipedia pages for nouns start with that noun. Lots of snippets start with a recent date, this explains why ‘Mar’ shows up so much. If the word is too obscure, the results will all be definitions, which start with common things. 

Rectangular slices of my online life as of today.

Rectangular slices of my online life as of today.

Debugging!

So I’m modding Spelunky, which is written in Game Maker.

Part of what I want to do involves drawing a bunch of previous scores to the screen.

I initially had my code just read them in from a file and spit them out onto the screen. This worked fine.

Next, I wanted to wrap the scores in objects, so that they could be manipulated in various ways. I went ahead and did it, changing the code in the for loop from something like

draw_text(20, 20 + (i * 20), file_text_read_string(file))

to something like

draw_text(20, 20 + (i * 20), runs[i].text)

Suddenly, no text appears. I’m not totally sure what’s wrong, but not that surprised, either, being quite unfamiliar with GML. So I go through the debugging motions, commenting things out and replacing them with constants one by one - first the file read operation gets replaced by “owiefj” or something, then the object creation call that took the result of that as a parameter, then the text-drawing itself: now I’m just calling

draw_text(20, 20 + (i * 20), “owiefj”)

and it’s still not working! Huh??

I glance at some working text-drawing code, and it looks identical. I comment out the whole Draw action and replace it with

draw_text(100,100,”YES”)

I run it, and YES, there it is, right there in the middle of the screen. Could something be wrong with the for loop? No. Is the text somehow being drawn off the screen, or under something else? I fiddle for a bit, and no, the coordinates are all as expected and text gets drawn on top of objects. I but the above line inside the for loop, and (YES YES YES YES YES) there it is. I replace “YES” with runs[i].text — nothing. I run it in the debugger - what’s runs[i].text? “foowoiwefjg” or something, the constant I set it to when I was removing the file-read call. What could be wrong? Could it be something with variable interpolation?

I go to an unrelated place in working code that draws text and add

w = “iwjf”
draw_text(100, 100, w)

Nothing. Then I try

draw_text(100, 100, “iwjf”)

Still nothing! What!?? The exact same call is used the line previous in code I didn’t write, and it draws “SECRET CHALLENGES” to the screen just fine! Now I’m getting seriously worried.

I try Game Maker’s ridiculous graphical-programming method, dragging the ‘Draw Variable’ action over to the Draw event, and setting it to draw runs[0].text (which the debugger assures me is still ”foowoiwefjg”) - still nothing. I try it with runs[0].x instead, the built-in variable that gives an object’s x-coordinate. And there it is, a nice shiny 20 right where I told it to be. So it can only work with default variables? That makes no sense. I read through some documentation, and it has plenty of examples of printing out user-defined variables. I mean, obviously. I’m really scraping the bottom of the explanations barrel at this point.

I see an example of the Draw Variable action that adds captions - “Score: ” + string(score). Aha! So it can take arbitrary expressions. Okay, it could print out a variable whose value was a string, lets see if it can print a simple string. I open it up and, accidentally holding shift for some reason, type “OWIfiejk” into the input box.

I run it.

“OWI” is printed in nice, big, capital letters. “fiejk” is nowhere to be seen.

I die laughing.

Spelunky’s sprite font only defines numbers, a few symbols, and capital letters. And Game Maker doesn’t care if you try to print characters that don’t exist, so it didn’t raise an error. God damn.

The double extra punchline is that the values I was originally reading in from the file were all numeric - if I hadn’t carefully replaced everything with constants, everything would have been fine. I’m still not totally sure where the original bug was, but I think it’s that I wasn’t defining a variable in the proper GML way, something I fixed (to no visible effect) very early on in the above process.

This puts a thing I try to say all the time really, really well.

This puts a thing I try to say all the time really, really well.