Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
So if I'm reading that correctly, not only are you able to clobber a method by assigning a string to that name, you're able to clobber a method by assigning a string to that name in a chunk of dead code which clearly isn't executed, and when that happens it produces an empty string for no reason. Hunh.

Adbot
ADBOT LOVES YOU

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
It's getting set to nil, not an empty string.

The fact that the if block isn't being executed isn't all that relevant due to that variable binding is done before the code is actually executed. The main weird thing is that variables and functions are weirdly different.

Toady
Jan 12, 2009

Zaphod42 posted:

How much do we know about the WoW engine though? They could be using some kinda scripting system for world building, too.

All I know about it on a technical level is that it was a descendent of WarCraft III.

hobbesmaster
Jan 28, 2008

That Turkey Story posted:

Yeah, true, but at some point we do have to criticize them for simply having old C libraries without modern C++ APIs. It's unfortunate that an ISO language not designed by any particular company often gets looked down upon because of non-standard libraries written by one source many years ago.

Their solution to this is C++/CLI.

Seriously.

The_Franz
Aug 8, 2003

Zaphod42 posted:

Hm, I guess Id uses Scaleform for their UI, too? I've worked with it briefly, but I wonder why its so drat popular, seemed kinda meh to me. I guess nobody wants to program UI, and flash designers are cheap?

I think they actually rolled their own Flash renderer. It's in the Doom 3 BFG source release.

xtal
Jan 9, 2011

by Fluffdaddy

pigdog posted:

Everquest used to be the most popular MMORPG for years until World of Warcraft was released and quickly dethroned it. Why? Because all of Everquest's new content was horribly buggy and slow to implement... because, it turned out, all of it had to be hard-coded in C++. WoW implemented a Lua scripting engine for its game content and was able to offer so much more at much better quality.

WoW's user interface code is made in Lua, not the game content. And incidentally, its new content is always buggy too.

OddObserver
Apr 3, 2009

UraniumAnchor posted:


On what planet is this sane behavior? Can somebody explain to me what is going on here?

I don't remember the details, but IIRC there is some sort of a syntax hack in Ruby involving determining what's a
local variable or not by looking for assignments of it.

WHERE MY HAT IS AT
Jan 7, 2011
I was sick when people chose assignment partners for the final project in one of my classes, so I was assigned someone I had never worked with before. I found this in one of his file headers:
code:
Revision History
15/4/13
Accidentally deleted a line and used undo to bring it back again

SavageMessiah
Jan 28, 2009

Emotionally drained and spookified

Toilet Rascal

WHERE MY HAT IS AT posted:

I was sick when people chose assignment partners for the final project in one of my classes, so I was assigned someone I had never worked with before. I found this in one of his file headers:
code:
Revision History
15/4/13
Accidentally deleted a line and used undo to bring it back again

I think I'd rather have that than no history at all.

The Gripper
Sep 14, 2004
i am winner

SavageMessiah posted:

I think I'd rather have that than no history at all.
It's also better than the more-common-than-i'd-like "WHOOPS" commit message.

WHERE MY HAT IS AT
Jan 7, 2011

SavageMessiah posted:

I think I'd rather have that than no history at all.

I guess. I mean, most of his stuff was fine, that just stuck out as weird and somewhat hilarious. That was his last update to the file, and he didn't actually change anything. He just saved it again as it was.

Hughlander
May 11, 2005

Pilsner posted:

You're right that EQ was horribly buggy and slow to implement features, but EQ got overtaken by WoW because of WoW's game features, terrible SOE developers (not technically) and a bad expansion that was the final straw. WoW also came 5 years after EQ, and based everything - dos and don'ts - on EQ.

Eeeeeeeven further, EQ definitely used scripting of some sort. For example, the spawn mechanics of a zone were scripted; an EQ developer has posted an example script:
code:
ENCOUNTER_DESCRIPTION SROHusamAncientNightfall
MONSTER_1_NAME a_desert_madman
MONSTER_1_NIGHT_NAME an_ancient_cyclops
MONSTER_1_PERCENT 10
MONSTER_2_NAME a_sand_giant
MONSTER_2_NIGHT_NAME a_mummy
MONSTER_2_PERCENT 20
MONSTER_3_NAME a_sand_giant
MONSTER_3_PERCENT 10
MONSTER_4_NAME a_dervish_cutthroat
MONSTER_4_PERCENT 30
MONSTER_5_NAME a_desert_madman
MONSTER_5_PERCENT 30 
I don't think bosses in the first many expansions had any scripting though, they just had special spells, melee and would act like any regular mob. There was literally no difference.

When I last dealt with it, everything was based on csvs and Excel spreadsheets. You would run a client and go to the world to the spot where you wanted the mob to spawn, face the direction you wanted it to look and issue a slash command that would save the position / forward vector in a csv file. You'd then import that into excel and fill out the spreadsheet with some other values saving it as the design doc for the level. Something else would read the Excel (Not a CSV actual Excel reader.) and import it into a database. As I recall, it also had to load the whole file, not incremental changes. A real lovely situation.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

The Gripper posted:

It's also better than the more-common-than-i'd-like "WHOOPS" commit message.

minor

Dren
Jan 5, 2001

Pillbug

WHERE MY HAT IS AT posted:

I was sick when people chose assignment partners for the final project in one of my classes, so I was assigned someone I had never worked with before. I found this in one of his file headers:
code:
Revision History
15/4/13
Accidentally deleted a line and used undo to bring it back again

Seems like you guys could benefit from SCM.

Hammerite
Mar 9, 2007

And you don't remember what I said here, either, but it was pompous and stupid.
Jade Ear Joe

Plorkyeran posted:

It's getting set to nil, not an empty string.

The fact that the if block isn't being executed isn't all that relevant due to that variable binding is done before the code is actually executed. The main weird thing is that variables and functions are weirdly different.

Are you saying that that behaviour is by design? That's PHP levels of bizarre. In fact it's worse than PHP, because PHP at least requires that variables have the $ prefix while functions don't, so you can't confuse them and neither can the interpreter.

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

hobbesmaster posted:

Their solution to this is C++/CLI.

Seriously.

I use C++/CLI for exactly the opposite thing, i.e. prototyping native code in the .NET environment, and it's pretty great. It's too encumbered with backwards compatibility cruft to be used for anything else, IMO - they didn't even bother to port the C runtime, you just P/Invoke the native one for everything and that's inexcusable. The point is moot though, because in typical Microsoft fashion they just kind of forgot about it and made it a dead end

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

The_Franz posted:

I think they actually rolled their own Flash renderer. It's in the Doom 3 BFG source release.

Ah, interesting! Thanks.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

The_Franz posted:

I think they actually rolled their own Flash renderer. It's in the Doom 3 BFG source release.

Having worked on SWF renderers before, this is actually really impressive. They seem to be doing a lot of shape rendering on the GPU. I'm quite sure it's nowhere near running arbitrary SWFs, but I never would have guessed this.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!

Rottbott posted:

The worst horrors of game scripting usually involved either a) large chunks of fundamental gameplay implemented in script, making it slow, un-debuggable and obnoxious to call from C++, or b) C++ calling Lua which calls C++ which calls Lua.

I was curious about the "C++ -> Lua -> C++ -> Lua -> ..." cycle. I'm wondering generally what the alternative might be for breaking those cycles. Awhile ago I was trying to do my own little game engine using Python as the scripting language. My motives was to practice using composition, and also practice doing something like a distributed system; I deliberately wanted to do async-crazy. So all these components were messaging each other. Some were in Python and some were in C++. When these components tried to message each other, it could go back and forth all over the place. I immediately got into fisticuffs with the global interpreter lock when I tried to do those cycles.

Before losing interest, I kind of broke the cycle by having all Python-related commands enter a queue of commands to run in the thread that hosted the Python interpreter. I used Stackless Python, which I would inform to run a fixed number of Python instructions until it consumed them or hit a yield in a coroutine, then process all the enqueued Python calls, then potentially run any more calls those calls enqueued, and so forth. I didn't run it into the ground so I didn't know how far it could get. I fear a starvation scenario in what it picked to run, but that's about it--other than the fact I was doing this distributed system thing with Python, which is like a contradictory horror by itself.

xtal
Jan 9, 2011

by Fluffdaddy

Hammerite posted:

Are you saying that that behaviour is by design? That's PHP levels of bizarre. In fact it's worse than PHP, because PHP at least requires that variables have the $ prefix while functions don't, so you can't confuse them and neither can the interpreter.

I don't think it's by design, just a quirk of the most popular Ruby interpreter. And it's not really crazy. There are way more crazy things in Ruby.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

Signed up for a new bank today.

The online signup gave me a password for their online banking. When I logged in it prompted me to change my password along with this message:

awesome online banking posted:

Passwords are case sensitive, must be between 6 and 8 characters in length

That Turkey Story
Mar 30, 2003

Password must be 6 characters long and contain no numbers.

Jewel
May 2, 2009

I bought a $90 coat from a really nice site (well, it's an online clothing brand. The content of the site is nice, the site itself is pretty bad) a while ago, who makes clothing that looks like designer clothing but without costing $500.

When I first input my password it said I think "Between 7 and 11 chars". I put in my password (9 chars) and the 9th character I pressed didn't show up as a dot. I guess their password field had a text limit of 8 characters, annoyingly.

Later on I forgot that my password was 1 letter short and couldn't remember it. I hit "I forgot my password", entered my security question, and.... oh. There it is. Uh. Thanks site. For storing my password. In plain text :pwn:

shrughes
Oct 11, 2008

(call/cc call/cc)

That Turkey Story posted:

Password must be 6 characters long and contain no numbers.

Apparently a common vector for hijacking people's accounts on banks is keyloggers, so requiring passwords to be short makes it more difficult for a keylogger to recognize the password.

That Turkey Story
Mar 30, 2003

shrughes posted:

Apparently a common vector for hijacking people's accounts on banks is keyloggers, so requiring passwords to be short makes it more difficult for a keylogger to recognize the password.

I'm just gonna make my passwords urls from now on.

baquerd
Jul 2, 2007

by FactsAreUseless

shrughes posted:

Apparently a common vector for hijacking people's accounts on banks is keyloggers, so requiring passwords to be short makes it more difficult for a keylogger to recognize the password.

My new password is "Hey Mom,"

Sticky Profits
Aug 12, 2011

baquerd posted:

My new password is "Hey Mom,"

CTRL+ZCTRL+ZCTRL+ZCTRL+Y

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av
My boss today: "What? No! Don't write C code! It's an iPhone application, Objective C only!" :cripes: The worst part is, he's right, we have had a long track record of iOS developers who "don't know C" :cripes:

beuges
Jul 4, 2005
fluffy bunny butterfly broomstick

Thermopyle posted:

Signed up for a new bank today.

The online signup gave me a password for their online banking. When I logged in it prompted me to change my password along with this message:

South Africa's tax submission website says the following on its login page:

SARS eFiling posted:

Your Password is now Case Sensitive

Pilsner
Nov 23, 2002

Hughlander posted:

When I last dealt with it, everything was based on csvs and Excel spreadsheets. You would run a client and go to the world to the spot where you wanted the mob to spawn, face the direction you wanted it to look and issue a slash command that would save the position / forward vector in a csv file. You'd then import that into excel and fill out the spreadsheet with some other values saving it as the design doc for the level. Something else would read the Excel (Not a CSV actual Excel reader.) and import it into a database. As I recall, it also had to load the whole file, not incremental changes. A real lovely situation.
You worked on EQ? Tell me more!

zergstain
Dec 15, 2005

Thermopyle posted:

Signed up for a new bank today.

The online signup gave me a password for their online banking. When I logged in it prompted me to change my password along with this message:

That reminds me. I ordered some RAM from Crucial last night, and it made me sign up for the Verified by Visa thing. I kept getting an alert saying my password must be between x and y (forgot the real numbers) characters long with no spaces. I had to look at the regex in the JavaScript code to figure they really meant letters and numbers only.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



zergstain posted:

That reminds me. I ordered some RAM from Crucial last night, and it made me sign up for the Verified by Visa thing. I kept getting an alert saying my password must be between x and y (forgot the real numbers) characters long with no spaces. I had to look at the regex in the JavaScript code to figure they really meant letters and numbers only.

6 min 8 max, IIRC, and if the way they integrate with Newegg is their normal, you can just ignore the verification by closing the tab and everything will still work fine, so I assume they only check that if they already suspect something funny is going on with your account or you buy something expensive.

No Safe Word
Feb 26, 2005

baquerd posted:

My new password is "Hey Mom,"

I just use a vim plugin for everything so every interaction looks like a jumble of characters, I just make sure to make a few mistakes intentionally on passwords so that "abc123" becomes "abd<ESC>hxic145<ESC>xxi23"


(I don't actually do this)

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
My solution is to just not get a keylogger installed in the first place, perhaps that's something you could try?

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Jabor posted:

My solution is to just not get a keylogger installed in the first place, perhaps that's something you could try?

Nice!!

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Jabor posted:

My solution is to just not get a keylogger installed in the first place, perhaps that's something you could try?

DCC SEND "startkeylogger" 0 0 0 0 :q:

zergstain
Dec 15, 2005

Munkeymon posted:

6 min 8 max, IIRC, and if the way they integrate with Newegg is their normal, you can just ignore the verification by closing the tab and everything will still work fine, so I assume they only check that if they already suspect something funny is going on with your account or you buy something expensive.

It must be bank specific then. The password I entered was 15 chars, so the max was at least that. I believe from now on when I buy anything from a participating site (a rare occurrence evidently) it will make me enter that password to guard against fraud.

SirViver
Oct 22, 2008

zergstain posted:

It must be bank specific then. The password I entered was 15 chars, so the max was at least that. I believe from now on when I buy anything from a participating site (a rare occurrence evidently) it will make me enter that password to guard against fraud.
Don't worry, the password was automatically truncated after 8 characters :v:

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



zergstain posted:

It must be bank specific then. The password I entered was 15 chars, so the max was at least that. I believe from now on when I buy anything from a participating site (a rare occurrence evidently) it will make me enter that password to guard against fraud.

Yeah, it'll ask for it, but I found that, at least on Newegg, if I just close the tab without giving Visa the password that I still get charged and my stuff still arrives no problem, so it's not a hard and fast requirement but I haven't tried skipping it with anything actually expensive. I just found it funny that it still worked because after I set it up I naturally assumed it was going to reject payments that I didn't verify. Silly me :v:

Adbot
ADBOT LOVES YOU

robostac
Sep 23, 2009

zergstain posted:

It must be bank specific then. The password I entered was 15 chars, so the max was at least that. I believe from now on when I buy anything from a participating site (a rare occurrence evidently) it will make me enter that password to guard against fraud.

You'll probably find quite a few sites will ask for the verification as its now enabled on your account.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply