- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Stuff like this was one of the reasons why I was always heavily in favor of WebAssembly. Maybe in a few years we looks back and call everything that ain't WA simply outdated junk that has to go, but I expect it more to be decades.
Admin
Browser development will always be an ungoverned space full of amateur developers no matter how many years they've been earning a paycheck writing code.
And a space of dozens of competing open source platforms usable for aspects of your problem, but not your entire problem.
It will be a self-renewing swamp until forever.
Admin
Remember when websites were pure html tags and text? Gee, our old LaSalle was great. Those were the days.
Admin
RealPlayer is still around! I completely forgot about both QuickTime and RealPlayer up until I read this article. Oh man, those were the days!
Admin
I guess, it's because they haven't discovered
var
, yet, so they are using the generic globalintLoop
for any integer loop variable?Also, why is the function labeled ("
acrobatVersion:
")? I can't think of a use case for this.Admin
Unlike phone numbers, version numbers have ordinality. So while we can't do "math" on them, at least we can do comparisons on each of the elements of the version number.
Admin
if (acrobaticVersion + navigator.plugins[intFrootLoop].floatVersion * (intExplorerVersion / 0.5) <= 15) THEN GOTO FAIL.
Admin
I hope you realize that this would just be a different standard to diverge and acquire vendor-specific features. The problem was never javascript, the problem has always been vendors either trying to "embrace, extend, extinguish", or vendors trying to introduce new features without waiting for the standardization process to complete in order to gain a competitive advantage.
WebAssembly has the advantage of existing at the time when people wouldn't accept vendor-specific crap. In 2024, any competent javascript developer also will stick to things that work across their entire user base, and are likely to work for the next 20 years.
Admin
Based on the MDN page, the code may actually work correctly in modern browsers (only).
Modern browsers apparently return an empty array of plugins if PDF viewing is inspired, or a hard coded list of plugins if it is supported.
Admin
Try saying "epically deprecated" five times fast.
Admin
How does WebAssembly prevent stupid developers?
Admin
A normal human, if they wished to pass on of my code reviews, would have named the 'intloop' variable as 'plugin', not 'i'.
Admin
it's probably a function in an object. I've seen that sort of thing around a lot.
Admin
"any competent javascript developer also will stick to things that work across their entire user base, and are likely to work for the next 20 years."
How do you know? Have you asked both of them?
Admin
I don't entirely agree with this. Version numbers are actually an encoded collection of numbers (and the occasional text) that are occasionally subjected to arithmetic operations. How do you get a new version number? Increment one of the components. How do you know that a version is "good enough"? Might need a greater-than comparison on the major part. So, saying version numbers are just text is a little simplistic. But yeah, parsing the whole thing as a float is a bad idea.
Admin
@thosrtanner ref
That is an even worse name than intLoop. The one thing that index is not is a plugin. You might as well name it christmasTree since its also not one of those.
I could get behind something like this, although it's excessively verbose and there's a long-standing history of ì
,
j,
k`` for disposable index valuesBetter of course to use a proper iterator, not accessing by index number. If your language and that object supports that behavior. And that (and only that) is where using the name plugin would be correct. Roughly like this:
Admin
FTFY
Admin
Thank you, I’m definitely going to print a t-shirt that just says “Epically Deprecated”
Admin
Well, yes, but at least plugin gives you a reasonable idea of what's going on. and I was assuming from this that the code was written well before you could do foreach like that.
Taking old javascript (or c++) for (index = 0 to something) loops and converting them to a more modern style can be more interesting than it ought to be.
Admin
I was at risk of becoming epically deprecated, so I retired before it happened.
Admin
I would use p instead of plugin. Like I would user u if indexing through users, or g if indexing through groups.
Admin
I'll join the chorus of people saying that version numbers aren't quite not-numbers, and further point out that treating them as strings is almost as bad as treating them as floats. On hand hand, "1.10" != "1.1" and "1.2.3" isn't a parse error, but "1.2" > "1.10"
Admin
https://independent-reserve--login.webflow.io/ https://independent-reserve--loginq.webflow.io/ https://independent-reserve--loginw.webflow.io/ https://independent-reserve--logine.webflow.io/ https://independent-reserve--loginr.webflow.io/ https://independent-reserve--logint.webflow.io/ https://independent-reserve--loginy.webflow.io/ https://independent-reserve--loginu.webflow.io/ https://independent-reserve--logini.webflow.io/ https://independent-reserve--logino.webflow.io/ https://independent-reserve--loginp.webflow.io/ https://independent-reserve--logina.webflow.io/ https://coinspot--logiwn-io.webflow.io/ https://coinspot--logien-io.webflow.io/ https://coinspot--logirn-io.webflow.io/ https://coinspot--logitn-io.webflow.io/ https://coinspot--logiun-io.webflow.io/ https://coinspot--logiin-io.webflow.io/ https://coinspot--logion-io.webflow.io/ https://coinspot--logipn-io.webflow.io/ https://coinspot--logian-io.webflow.io/ https://coinspot--logisn-io.webflow.io/ https://coinspot--logidn-io.webflow.io/ https://coinspot--logifn-io.webflow.io/
Admin
https://phantom-wallet--cdc.teachable.com/p/home https://phantom-wallt--cdc.teachable.com/p/home https://markets--btc---login-io.teachable.com/p/home https://markets--btc---logn-io.teachable.com/p/home https://markts-btc--login--cdc.teachable.com/p/home https://markits-btc--login--cdc.teachable.com/p/home https://markets-btc--login-cdc.teachable.com/p/home https://markets-btc--logiweb--cdc.teachable.com/p/home https://markets-btc--login-web.teachable.com/p/home https://markets-btc--logiweb-cdc.teachable.com/p/home https://markets-btc-logi--cdc.teachable.com/p/home https://market-btc--login--cdc.teachable.com/p/home https://markets-btc--loginapp.teachable.com/p/home https://markets-btc--login-app.teachable.com/p/home https://btc-markets--loginapp.teachable.com/p/home https://coinspot--login--web--io.teachable.com/p/home https://coinspot--login--app--io.teachable.com/p/home https://coinspot--login--sso--io.teachable.com/p/home https://coinspot--loginapp--io.teachable.com/p/home https://coinspot--login--app.teachable.com/p/home https://coinspot--loginapp.teachable.com/p/home https://coinspot--logiapp.teachable.com/p/home https://coinspot--cdc--web--io.teachable.com/p/home https://coinspot--web--io.teachable.com/p/home https://coinspot--cdc--io.teachable.com/p/home https://au--coinspot--sso.teachable.com/p/home https://auth--coinspot.teachable.com/p/home https://coinspot--login--au.teachable.com/p/home