|
ExcessBLarg! posted:
BANANA please tell me this machine that probably costs more than my home is named banana
|
# ? Feb 18, 2015 20:52 |
|
|
# ? Jun 6, 2024 10:14 |
|
<-- i'm afraid there's a simpler reason..
|
# ? Feb 18, 2015 20:55 |
|
Gul Banana posted:<-- i'm afraid there's a simpler reason.. Aww crud
|
# ? Feb 18, 2015 20:58 |
|
Subjunctive posted:This basically never happens successfully. Maybe the next version is in a different language, but for a lot of this code there isn't and never will be another major version. What kind of things are people doing with mainframes anyway?
|
# ? Feb 18, 2015 21:33 |
|
Ever had a bank account?
|
# ? Feb 18, 2015 21:37 |
|
Up until at least the early 2000s my university used a mainframe for student records. Up until about 1999 or so, you would have to register for classes by either using a 3270 emulator on your home computer if you were lucky. Otherwise they had actual 3270 terminals littered about campus in various places, and on registration day you got to wait in a long-rear end line to use a terminal. In 2000 they turned it into a web interface, but I'm about 99.9% sure it was just a 3270 screen scraper under the hood. It was slow as hell.
|
# ? Feb 19, 2015 00:32 |
|
Nippashish posted:What kind of things are people doing with mainframes anyway? The one example I absolutely love is the Semi-Automated Business Research Environment which was the first (?) distributed business application. It basically replaced the old manual system of booking airline flights back in the late 1950s by letting travel agencies use teletypes to query and book flights remotely on some ancient IBM mainframes. Originally it was just American Airlines but then they spun it off into a company called SABRE (later Sabre Holdings). SABRE offered their service to travel agents across the country and later on Compuserve and AOL, still running on mainframes. Eventually they decided to make the move into the modern world and built a web frontend for their mainframe app. The name? Travelocity.
|
# ? Feb 19, 2015 01:21 |
|
I had to deal with EBCDIC when making a no-holds-barred EDI parser. So weird, so old. Probably still present in about 1/4 of most of the major businesses out there that use EDI.
|
# ? Feb 19, 2015 04:53 |
|
Munkeymon posted:Aww crud I'll spin up a zVM named banana in your honor at work tomorrow. Gul Banana, I sent you a PM, I've been looking for another IBMer who knows stuff about mainframes to hopefully give me a hand with a long standing problem I haven't been able to figure out (I'm hoping you still work there and not at some other company that uses them). If you have a second I'd love to pick your brain.
|
# ? Feb 19, 2015 05:26 |
|
Nippashish posted:What kind of things are people doing with mainframes anyway? I would imagine that many insurance companies probably have a mainframe doing something somewhere. I work for a fairly large TelCo, and we have some mainframe systems as well. If anyone here is a student, and the mainframe stuff is interesting, IBM has in the past run a contest for students each year: Master the Mainframe The contest usually starts in October, IIRC. I am, unfortunately, no longer eligible to compete, as I'm no longer a student. But I did get a number of t-shirts out of them, and in my last year of school, some extra swag for being fast on part 2.
|
# ? Feb 19, 2015 05:42 |
|
Oh man, z/OS. Where I work we have a product that runs on z/OS, and the builds for it always seem to have special issues that builds for the other platforms don't. I think someone was sending around a "no really, programming z/OS isn't that scary once you know the differences" PDF on the mailing list
|
# ? Feb 19, 2015 06:04 |
|
The County Government from where I grew up still uses a mainframe to handle property taxes. When they moved into their current building the mainframe didn't come apart into small enough pieces to fit in the freight elevator (for some reason they decided the data center should be on the 10th floor), so they took the windows off the side of the building and helicoptered it up.
|
# ? Feb 19, 2015 06:16 |
|
The problem in moving away from mainframes in banking and insurance is the combination of the current stuff works and is really stable and solid if a pain to work with and moving to new stuff comes with a truely insane price tag.
|
# ? Feb 19, 2015 10:42 |
|
I do VoIP integrations (connecting IVR inputs to external systems and the like) and mainframes are surprisingly common, particularly with government and health insurance.
|
# ? Feb 19, 2015 13:28 |
|
This one takes a smidgen of crypto knowledge, but it's fairly hilarious if you do. Maybe slightly less so if you use Google Sync. (Google Sync protocol, used by Chrome for storing your personal data safely etc) https://chromium.googlesource.com/chromium/src.git/+/master/sync/util/nigori_unittest.cc Check line 105, 109 and compare to line 123 and 128. ...yes, someone wrote a unit test *ensuring* the authentication does *not* detect some modifications of the message. I'll leave the explanation for people that don't want to do crypto 101 for a later post.
|
# ? Feb 19, 2015 15:50 |
|
Skuto posted:This one takes a smidgen of crypto knowledge, but it's fairly hilarious if you do. Maybe slightly less so if you use Google Sync. For the sake of posterity, here is a link to the file that goes to a specific commit so if somebody updates the file, the line numbers will be right and the error preserved: https://chromium.googlesource.com/chromium/src.git/+/a17a62ab89a227166c665a4da0391c02111152ae/sync/util/nigori.cc
|
# ? Feb 19, 2015 16:11 |
|
Deus Rex posted:For the sake of posterity, here is a link to the file that goes to a specific commit so if somebody updates the file, the line numbers will be right and the error preserved: That's not really the correct one, I pointed to the unit test because I found the tests ensuring and documenting the brokenness more noteworthy than the actual crypto fail: https://chromium.googlesource.com/chromium/src.git/+/a17a62ab89a227166c665a4da0391c02111152ae/sync/util/nigori_unittest.cc In your file, the problem is at 206-207 and 220: code:
This passed code review, too.
|
# ? Feb 19, 2015 16:20 |
|
Is the problem that they should be including the IV in the hash?
|
# ? Feb 19, 2015 19:02 |
|
zergstain posted:Is the problem that they should be including the IV in the hash? Yes. Without it being in the hash you can clobber the IV parts of the stream/packet and it'll decrypt the entire stream/packet as gibberish on the other side, yet will pass verification as "this is exactly the same as what the other side sent you!". And someone wrote a test to confirm that.
|
# ? Feb 19, 2015 19:05 |
(formatting and indentation preserved) 431 pages of C# code all in a single file. quote:if (saveload.getMapGridX == mapGridX && saveload.getMapGridY == mapGridY && saveload.getMapPosX == recallMapPosX && saveload.getMapPosY == recallMapPosY && saveload.getGoldNow == goldNow && saveload.getGoldAvailable == goldAvailable && saveload.getGoldTotal == goldTotal && saveload.getAtkLV == atkLevel && saveload.getBreathMaxBonus == breathMaxBonus && saveload.getBreathDmgBonus == breathDmgBonus && saveload.getClawDmgBonus == clawDmgBonus && saveload.getCritBonus == breathCritBonus && saveload.getCycleBonus == breathCycleBonus && saveload.getDefLV == defLevel && saveload.getHPBonus == drgnHPBonus && saveload.getSpikeBonus == spikeDRBonus && saveload.getDRBonus == drgnDRBonus && saveload.getSprLV == sptLevel && saveload.getFlyBonus == drgnFlyBonus && saveload.getFreezeBonus == freezeTimeBonus && saveload.getPreserveGP == preserveGP && saveload.getArmorRedBonus == acidArmorRedBonus && saveload.getEXPReducer == EXPReducer && saveload.getHPXP == drgnHPXP && saveload.getBreathMaxXP == breathMaxXP && saveload.getFlyXP == drgnFlyXP && saveload.getClawXP == clawXP && saveload.getBreathDmgXP == breathXP && saveload.getHPLV == drgnHPLV && saveload.getBreathMaxLV == breathMaxLV && saveload.getFlyLV == drgnFlyLV && saveload.getClawLV == clawLV && saveload.getBreathDmgLV == breathLV && saveload.getHatchling == have01Hatchling && saveload.getHPTreasure1 == drgnHPTreasure1 && saveload.getSmile == have02Smile && saveload.getHPTreasure2 == drgnHPTreasure2 && saveload.getCrest == have03Crest && saveload.getDRTreasure1 == drgnDRTreasure1 && saveload.getUnderpants == have04Underpants && saveload.getDRTreasure2 == drgnDRTreasure2 && saveload.getSollerets == have05Sollerets && saveload.getSpikeTreasure == spikeDRTreasure && saveload.getScepter == have06Scepter && saveload.getBreathDmgTreasure1 == breathDmgTreasure1 && saveload.getMomiji == have07Momiji && saveload.getBreathDmgTreasure2 == breathDmgTreasure2 && saveload.getNinjato == have08Ninjato && saveload.getBreathMaxTreasure1 == breathMaxTreasure1 && saveload.getRing == have09Ring && saveload.getBreathMaxTreasure2 == breathMaxTreasure2 && saveload.getSunset == have10Sunset && saveload.getBreathMaxTreasure3 == breathMaxTreasure3 && saveload.getDreihander == have11Dreihander && saveload.getClawDmgTreasure1 == clawDmgTreasure1 && saveload.getEndeavour == have12Endeavour && saveload.getClawDmgTreasure2 == clawDmgTreasure2 && saveload.getDoll == have13Doll && saveload.getClawSize == clawSize && saveload.getLiqueur == have14Liqueur && saveload.getArmorRedTreasure == acidArmorRedTreasure && saveload.getPenultima == have15Penultima && saveload.getBreathCycleTreasure == breathCycleTreasure && saveload.getLeaf == have16Leaf && saveload.getFlyTreasure1 == drgnFlyTreasure1 && saveload.getHTTYD == have17HTTYD && saveload.getFlyTreasure2 == drgnFlyTreasure2 && saveload.getGust == have18Gust && saveload.getFlyTreasure3 == drgnFlyTreasure3 && saveload.getShirt == have19Shirt && saveload.getFlyTreasure4 == drgnFlyTreasure4 && saveload.getDeduction == have20Deduction && saveload.getFreezeTreasure == freezeTreasure && saveload.getTopaz == have21Topaz && saveload.getSapphire == have22Sapphire && saveload.getGarnet == have23Garnet && saveload.getRuby == have24Ruby && saveload.getDiamond == have25Diamond && saveload.gets1e2On == on1e2 && saveload.gets1e3On == on1e3 && saveload.gets1ebOn == on1eB && saveload.gets2e1On == on2e1 && saveload.gets2e2On == on2e2 && saveload.gets2e3On == on2e3 && saveload.gets2ebOn == on2eB && saveload.gets3e1On == on3e1 && saveload.gets3e2On == on3e2 && saveload.gets3e3On == on3e3 && saveload.gets3ebOn == on3eB && saveload.gets4e1On == on4e1 && saveload.gets4e2On == on4e2 && saveload.gets4e3On == on4e3 && saveload.gets4e4On == on4e4 && saveload.gets4ebOn == on4eB && saveload.gets5e1On == on5e1 && saveload.gets5e2On == on5e2 && saveload.gets5ebOn == on5eB && saveload.gets6e1On == on6e1 && saveload.gets6eBOn == on6eB && saveload.gets7eBOn == on7eB && saveload.gets1e2Seen == seenStory1_2 && saveload.gets1eBSeen == seenStory1_B && saveload.gets2e2Seen == seenStory2_2 && saveload.gets2eBSeen == seenStory2_B && saveload.gets3eBSeen == seenStory3_B && saveload.gets4e4Seen == seenStory4_4 && saveload.gets4eBSeen == seenStory4_B && saveload.gets5eBSeen == seenStory5_B && saveload.gets6e1Seen == seenStory6_1 && saveload.gets7eBSeen == seenStory7_B && saveload.gethaveBolt == haveBolt && saveload.gethaveCold == haveFrost && saveload.gethaveAcid == haveAcid && saveload.gethaveHerb == haveGanja) All this to not save the game. EDIT: he loads all of his textures into memory every single frame quote:#region Instantiate Texture2D DARPA Dad fucked around with this message at 19:57 on Feb 24, 2015 |
|
# ? Feb 24, 2015 19:52 |
|
i'm the ganja
|
# ? Feb 24, 2015 19:57 |
Here's all of it if anyone wants to gaze upon the Ark of the Covenant https://www.dropbox.com/s/fj2nludeaaikbxc/drgn.txt
|
|
# ? Feb 24, 2015 20:00 |
|
Can't have more than 10 enemies?, a fun game.
|
# ? Feb 24, 2015 20:09 |
That's by goon The White Dragon, his game is actually pretty fun but this is like his first foray into coding anything ever v I dont deny that Polio Vax Scene fucked around with this message at 20:15 on Feb 24, 2015 |
|
# ? Feb 24, 2015 20:12 |
Manslaughter posted:That's by goon The White Dragon, his game is actually pretty fun but this is like his first foray into coding anything ever it's still really really funny
|
|
# ? Feb 24, 2015 20:13 |
|
He hasn't ever heard of classes, apparently, and thinks that they are called "ints":code:
Dessert Rose fucked around with this message at 20:18 on Feb 24, 2015 |
# ? Feb 24, 2015 20:16 |
|
DARPA Dad posted:(formatting and indentation preserved) How can you even rationalize that? I guess everybody has different approach to the code, but at some point, one should take a look and ask themselves "how can I write it simpler". For example today, for me, it was 4 lines of different conditions, spanning two screen widths. I could have continued to add || and && and everything would be fine, yet I chose to rewrite it in a multiple of steps with assignments. Sure - writing code short is what I think of first, but there's this threshold where things start to get messy and I think of simplicity, for my own, and for my colleagues, sake. How do you arrive to the code like this, where you don't see anything wrong? Is it the case "I'm worried of refactoring in case I break something", "it worked so far" laziness or what?
|
# ? Feb 24, 2015 20:35 |
|
Manslaughter posted:That's by goon The White Dragon, his game is actually pretty fun but this is like his first foray into coding anything ever Yup, if you have archives here's where the fun starts
|
# ? Feb 24, 2015 20:41 |
|
canis minor posted:How can you even rationalize that? I guess everybody has different approach to the code, but at some point, one should take a look and ask themselves "how can I write it simpler". For example today, for me, it was 4 lines of different conditions, spanning two screen widths. I could have continued to add || and && and everything would be fine, yet I chose to rewrite it in a multiple of steps with assignments. Sure - writing code short is what I think of first, but there's this threshold where things start to get messy and I think of simplicity, for my own, and for my colleagues, sake. I don't think he didn't see anything wrong with that (much in the contrary, actually), but he didn't know (AFAIK) that things like classes, functions and loops existed, much less knowing how they work and where to use them. And I'm almost certain that he had no one else to review his code, so why bother making it pretty? I'm 99% sure he got better, so.
|
# ? Feb 24, 2015 21:36 |
|
I remember first learning BASIC as a kid and writing out stuff like "x1 = ..., x2 = ..., x3 = ..." and thinking there must be a better way. Then I learned about arrays and for loops and my whole world changed. I never would have had the patience to write that much code without them.
|
# ? Feb 24, 2015 21:48 |
|
Reminds me of the code in a similar act of pure lunatic perseverence, The Demon Rush. At least 10,000 lines of hardcoded dialogue, all manually line wrapped, all surrounded with quotes in a language with no escape characters, all assigned to individual variables. The entire game is a series of thousands upon thousands of if statements, all checked every frame. You have to respect their willpower.
|
# ? Feb 24, 2015 21:49 |
|
Was that the one that had Hebrew language support and printer drivers in the executable?
|
# ? Feb 24, 2015 23:06 |
|
At one point I was kind of similar, but I did everything with arrays. I think everyone (certainly everyone self-taught) starts off doing things in oddball ways. It's when someone refuses to try to take on board ideas about how to improve that there is an actual issue.
|
# ? Feb 24, 2015 23:07 |
|
No Safe Word posted:Yup, if you have archives here's where the fun starts Reading through that file filled me with both and .
|
# ? Feb 24, 2015 23:17 |
|
It's amazing in every way, a true coding horror masterpiece.
|
# ? Feb 25, 2015 00:10 |
|
quote:This is a 22000 line game with all the logic in a single function and no loops
|
# ? Feb 25, 2015 01:40 |
|
I still have nightmares about it. Sometimes in a brief moment of lucidity I catch myself wondering whether we wouldn't have all been better off if nobody had gone and invented loops
|
# ? Feb 25, 2015 01:49 |
|
That guy is awesome. If he can ship a working game while knowing that little about good programming practices, imagine what he'll be pulling off once he learns the ropes.
|
# ? Feb 25, 2015 01:49 |
|
Yeah, I definitely agree to some extent. When I was a teenager and hadn't set eyes on proper computer science yet I just used arrays for everything (like somebody above said) and I can't believe how much I managed to get done with only linear-scan algorithms. Associative containers were a complete eye-opener when some kind soul pointed out "what the gently caress". If this dude has the discipline to get something working using only scalar variables there's no telling what sort of things he'll be capable of once he reaches full power
|
# ? Feb 25, 2015 01:54 |
|
|
# ? Jun 6, 2024 10:14 |
|
I had no idea how to store an arbitrary number of things somewhere. Like, I knew what arrays were, and I knew what objects were, I just didn't know how you made an array of dynamic size at runtime. Then someone showed me linked lists and it blew my mind. I wrote a reasonably complex online game in mIRC script, before it had hash tables. I was dynamically composing variable names and storing all my player data in .ini files. I wish I still had the files for that game, it would probably be a magical experience.
|
# ? Feb 25, 2015 02:02 |