--- Log opened Sat Jun 01 00:00:53 2013 |
00:01 | <@Azash> | McMartin: What does INT() do? |
00:01 | <@Azash> | Oh nevermind, googled it like I should've |
00:01 | <@Azash> | :p |
00:03 | <&McMartin> | Heh |
00:03 | <&McMartin> | While not immediately relevant to your project, the Commodore 64 Programmer's Reference Guide is wonderful |
00:03 | <@Azash> | Also if I'm reading this correctly, if your food spending goes too high the program will start infinitely printing "December 6 1847" |
00:04 | <&McMartin> | Heh |
00:04 | <&McMartin> | Yes, one of the earliest lessons one learns is the sad fact that many type-in programs were not debugged. >_< |
00:04 | <&McMartin> | I didn't encounter reliable exceptions until my 30s. (This is by chance; they were from that era.) |
00:05 | <&McMartin> | (They included what we would now call daemon programs that checksummed all your lines of code as you typed them in) |
00:05 | <&McMartin> | (That era was more amazing than I imagined) |
00:06 | <@Azash> | :P |
00:06 | <&McMartin> | Ooh, do I have the screencaps |
00:06 | <&McMartin> | Sometimes they had type-in machine language programs |
00:06 | <&McMartin> | https://hkn.eecs.berkeley.edu/~mcmartin/astropanic/listing2.png |
00:08 | <@Azash> | A good idea though |
00:10 | <@Azash> | Yeah it turns out it was because someone typoed 1850 to 1650 |
00:11 | <@Azash> | I'm guessing BASIC didn't do neq operators? |
00:11 | <&McMartin> | Some did; this dialect might not have |
00:11 | <&McMartin> | GW-BASIC and CBM BASIC both used <> for !=. |
00:12 | <@Azash> | Probably didn't considering there's a pattern like 1930 IF K8=1 THEN 1950; 1940 GOTO 1990; 1950 bla bla |
00:13 | | * McMartin nods |
00:13 | <&McMartin> | Sounds like |
00:13 | <&McMartin> | CBM BASIC was, IIRC released in 1982, over 10 years after this program was first written |
00:13 | <@Azash> | This gives me the same feeling as asm programming in that half your brain thinks "wow this is pretty cool" and the other half wonders if this is going to cause permanent damage |
00:13 | <&McMartin> | Ha ha ha |
00:13 | <&McMartin> | Yes |
00:13 | <&McMartin> | That is exactly the right mindset |
00:14 | <&McMartin> | (I still need to port King to the web from its current status as translated from GW-BASIC) |
00:14 | <@Azash> | King? |
00:15 | <&McMartin> | King is a resource-management game, like Hamurabi but more complex and in some ways more cynical |
00:16 | <&McMartin> | You are the dictator of a tiny, beautiful communist island that filthy capitalists would like to exploit and turn into a profitable-for-them hellhole |
00:16 | <&McMartin> | Your job is to last 8 years without being murdered by your own populace |
00:17 | <&McMartin> | I ported it from BASIC to Python: http://hkn.eecs.berkeley.edu/~mcmartin/king.py |
00:17 | <&McMartin> | It seems like it would work well as dynamic but otherwise traditional HTML, with DOM rewriting serving the role that a CGI roundtrip would if it were a web application. |
00:18 | <&McMartin> | This would also result in the game being much easier due to it no longer being not only possible but actively probable that you will feed your populace the seed corn and thus all die horribly in two winters. |
00:19 | <&McMartin> | One of the emergent properties of the mechanics of King is that if you ever sell land to the industrial powers, this immediately puts you on a death spiral. |
00:19 | <&McMartin> | You *might* be able to stay ahead of it if you don't do it until near the end of your reign. |
00:19 | <@Azash> | Hm |
00:20 | <@Azash> | I'll have to give that a try, it sounds like an interesting game |
00:20 | | Turaiel is now known as Turaiel[Offline] |
00:20 | <&McMartin> | It was, in fact, good enough that I felt it was worth the effort to port and work out how to play it well |
00:21 | <@Azash> | \o/ |
00:21 | <&McMartin> | Also, I got it from Dave Ahl's book series - the same one that included Westward Ho! which the listing you're working on ultimately evolved into. |
00:21 | <@Azash> | Porting can't have been bad for your understanding of it at least |
00:21 | <@Azash> | Oh, I see |
00:21 | <&McMartin> | So, well, yeah; one of the reasons I've had quick answers here is because I've had some experience doing similar things. |
00:22 | <&McMartin> | (But Ahl was using something that was pretty recognizably the IBM/MS/GW-BASIC dialect, which I already knew pretty well) |
00:22 | | * Azash nods |
00:23 | <@Azash> | BASIC is fairly understandable most of the time |
00:23 | <@Azash> | Which helps me a lot |
00:32 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
00:32 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
00:43 | <&McMartin> | Yeah |
00:43 | <&McMartin> | It's a significantly less poorly-designed language than is often claimed. |
00:43 | <&McMartin> | Not that it isn't, by modern standards and even some earlier ones, poorly-designed |
00:43 | <&McMartin> | But given the fairly intense constraints... |
00:45 | <@Azash> | Mm |
00:46 | <@Azash> | The gotos are the only really awkward part, IMHO |
00:46 | <&McMartin> | Line numbering in general is a bad idea, and there's no way to enforce block structure |
00:46 | <&McMartin> | All variables are global |
00:46 | <&McMartin> | You have to name the type of each variable as part of its name |
00:46 | <~Vornicus> | What's this, BASIC? |
00:46 | <&McMartin> | Note that many of these features are shared with early versions of FORTRAN~ |
00:46 | <&McMartin> | Yes. |
00:47 | <~Vornicus> | Line numbering I got the impression was a way to handle code editing in the absence of a sensible text editor or enough ram to handle it. |
00:48 | <&McMartin> | It also lets you do easy labeling |
00:48 | <&McMartin> | No need to maintain a block stack to determine where the ELSE/etc goes. |
00:49 | <&McMartin> | ... except for FOR/NEXT and WHILE/WEND, which kept additional stacks unique from the GOSUB stack. Maybe. |
00:49 | <~Vornicus> | heh |
00:50 | <&McMartin> | Once you add local variables, explicitly bounded subroutines/functions, symbolic labels, and remove mandatory line numbering... |
00:50 | <&McMartin> | ... in short, once you have evolved to the QBASIC dialect... |
00:50 | <&McMartin> | ... you're basically a Pascal variant and one that's honestly better than most Pascal variants. |
00:50 | <&McMartin> | This is, granted, not unlike being the best bullfighter in Alaska |
01:03 | | * Azash snickers |
01:03 | | * Azash rolls out |
01:04 | <&McMartin> | Autobots, Transform And? |
01:04 | | You're now known as TheWatcher[T-2] |
01:04 | <@Azash> | Azashbeds |
01:07 | <&McMartin> | Fair enough |
01:08 | <@Azash> | So night night, hope the switch goto won't haunt me |
01:09 | <&McMartin> | It's just a computed goto with no math, how bad can it be? |
01:09 | <&McMartin> | </ominousreverb> |
01:10 | | You're now known as TheWatcher[zZzZ] |
01:14 | | ToxicFrog|W`rkn is now known as ToxicFrog |
01:43 | < RichyB> | To be fair to BASIC, the version of BASIC which Dijkstra famously criticised as causing brain damage was... |
01:45 | < RichyB> | ...pretty bloody primitive. IIRC they had no call stack and variable identifiers had to match something like [a-z][0-0]{0,3} |
01:45 | < RichyB> | er |
01:45 | < RichyB> | [A-Z][0-9]{0,3] |
01:52 | <&McMartin> | Dijkstra also railed against break and continue, I don't actually value his opinions much wrt structured programming in the 1970s and 1980s |
01:52 | <&McMartin> | "Functions should only have one exit point" is a doctrine I in fact Consider Harmful |
02:05 | <&Derakon> | Man, if my functions had to have only one exit point, they would have to have so many more levels of indentation... |
02:05 | <&Derakon> | Or else they'd have to be tiny and passing gigantic amounts of state between each other. |
02:07 | <&McMartin> | The former was what that faction had in mind. |
02:07 | <&McMartin> | They're totally wrong. |
02:09 | <&Derakon> | Visibly short-circuiting logic via early returns and break/continue statements is a wonderful thing. |
02:09 | <&McMartin> | Exceptions and continuations are both good too. |
02:09 | <&McMartin> | And other forms of abrupt termination |
02:10 | <&McMartin> | Yeah, the idea was that short-circuiting logic is evil |
02:10 | <&McMartin> | Which is, um, why I don't trust his instincts on language design or style~ |
02:10 | <&McMartin> | Algorithm design, sure, but. |
02:13 | <&McMartin> | But anyway, yeah. |
02:13 | <&McMartin> | Pascal enforces this, which is one of several reasons modern BASICs are better than Pascal. |
02:14 | <&ToxicFrog> | I kind of get the impression that he gazed into the abyss of unstructured programming for a bit too long and then went too far in the opposite direction. |
02:14 | <&ToxicFrog> | (my favourite Pascal variant is Turing) |
02:14 | | * Derakon rewatches the Wat talk, collapses laughing. |
02:14 | <&Derakon> | ( https://www.destroyallsoftware.com/talks/wat ) |
02:14 | <&McMartin> | Wat is a fine talk indeed |
02:15 | <&McMartin> | ToxicFrog: This is also why I really really want to get that "Almost Painless Structured BASIC" thing running again. |
02:15 | <&McMartin> | That will probably be my weekend project. |
02:15 | <&McMartin> | I found the source. |
02:15 | <&McMartin> | In bytecoded GW-BASIC. >_< |
02:16 | | Turaiel[Offline] is now known as Turaiel |
02:16 | <&McMartin> | Step 1 is to detokenize it into ASCII, step 2 is to run that through an old-school GW-BASIC compiler, step 3 is to find DOSBOX settings that run it appropriately. |
02:17 | | Derakon is now known as Derakon[AFK] |
02:32 | <&McMartin> | Oh hey, I have an actual terp |
02:33 | <&McMartin> | Steps 1 and 2 may be skippable, but I'd prefer not to if possible. |
02:58 | | RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has quit [[NS] Quit: Gone.] |
03:02 | | RichyB [RichyB@D553D1.68E9F7.02BB7C.3AF784] has joined #code |
03:18 | | Kindamoody[zZz] is now known as Kindamoody |
03:30 | | VirusJTG [VirusJTG@2B12AA.572255.206A2A.901581] has quit [[NS] Quit: Program Shutting down] |
04:35 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
04:35 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
04:35 | | mode/#code [+o Orthia] by ChanServ |
04:42 | | Derakon [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has joined #code |
04:42 | | mode/#code [+ao Derakon Derakon] by ChanServ |
04:44 | | Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Operation timed out] |
04:51 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
05:06 | | Turaiel is now known as Turaiel[Offline] |
05:07 | | Turaiel[Offline] is now known as Turaiel |
05:48 | | Kindamoody is now known as Kindamoody|afk |
06:12 | | Kindamoody|afk is now known as Kindamoody |
06:19 | | Derakon_ [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
06:21 | | Derakon [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has quit [Ping timeout: 121 seconds] |
06:29 | | Derakon_ is now known as Derakon[AFK] |
06:31 | | AverageJoe [evil1@53D63E.83C36D.6B41BB.DE4FC4] has joined #code |
06:56 | | AverageJoe [evil1@53D63E.83C36D.6B41BB.DE4FC4] has quit [[NS] Quit: Leaving] |
07:51 | | Turaiel is now known as Turaiel[Offline] |
08:16 | | Kindamoody is now known as Kindamoody|out |
09:14 | | You're now known as TheWatcher |
10:02 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
10:11 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
10:11 | | mode/#code [+o Orthia] by ChanServ |
13:01 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
13:36 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
15:46 | | * Azash draws on the power of Greyfloat to become He-NaN |
16:12 | | * Alek facepalms. |
16:45 | | Turaiel[Offline] is now known as Turaiel |
17:35 | | VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
17:38 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
18:21 | < Xon> | what the hell; https://github.com/mongodb/mongo-java-driver/blob/master/src/main/com/mongodb/Co nnectionStatus.java#L213 |
18:22 | <@Tamber> | That was in here the other day, wasn't it? |
18:22 | <&ToxicFrog> | Yep |
18:22 | <&ToxicFrog> | It's LOG_EVERY(10) << "server down" |
18:22 | <&ToxicFrog> | Except horrible |
18:24 | < Xon> | yeaah |
18:25 | < Syka> | whee |
18:25 | | * Syka just unicode-hardened her app :| |
18:26 | <@Azash> | "Unicode hardened" ? |
18:26 | < Syka> | as in, it doesn't stack trace upon seeing ? |
18:26 | < Turaiel> | xD |
18:26 | <@Azash> | Ah |
18:26 | <@sshine> | I read that as "unicorn-hardened" and thought "impenetrable by head spikes" |
18:26 | <@Azash> | Lol |
18:26 | <@Azash> | sshine: No, it's just hardened in the sense unicorns no longer phase it |
18:26 | < Syka> | my German friend seems to have a text file of "stuff to blow up anything Syka makes" |
18:27 | <@Tamber> | And, every time, it works. |
18:27 | < Syka> | :| |
18:27 | <@Tamber> | :p |
18:27 | <@Tamber> | You'd think you'd learn by now. |
18:27 | < Syka> | once he pasted a copy of a PDF in German |
18:27 | < Syka> | that was like... 200 pages |
18:27 | < Syka> | into a text field |
18:27 | < Syka> | (it didn't explode that time!) |
18:28 | < Turaiel> | Some users are just really bad at input. |
18:28 | < Syka> | but, hey, now it supports everything, even edge cases |
18:28 | <@Tamber> | Well, now you've done it! |
18:28 | <@Azash> | What about corner cases? |
18:29 | < Syka> | Azash: corner cases as in even more edge than edge cases, or cases where you tell the user to sit in the naughty corner for being thick |
18:29 | < Turaiel> | What about circle cases? |
18:29 | < Turaiel> | There are no corners there! |
18:29 | < Syka> | haha |
18:29 | < Syka> | how do you keep management busy for a week |
18:29 | <@Azash> | Turaiel: Well Syka just said ? works |
18:29 | <@Azash> | So at least mostly-filled-circle cases are supported |
18:29 | < Turaiel> | guess that is a circle. |
18:29 | < Syka> | bring them to a circle room and tell them to stand in the corner |
18:30 | <@Azash> | Syka: Ask them to open the start menu |
18:30 | <@Azash> | That'll be two weeks |
18:30 | < Syka> | ask them to open the start menu... on win8 |
19:11 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code |
19:11 | | mode/#code [+o celticminstrel] by ChanServ |
19:40 | | celticminstrel is now known as celmin|away |
19:55 | <@Tarinaky> | 18:29 < Syka> how do you keep management busy for a week |
19:55 | <@Tarinaky> | Ask them for their opinions on what colour something should be? |
19:55 | <@Tarinaky> | s/something/the bike shed/ |
20:19 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
20:19 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
21:11 | | celmin|away is now known as celticminstrel |
21:33 | | Turaiel is now known as Turaiel[Offline] |
22:15 | | Kindamoody|out is now known as Kindamoody |
22:36 | | Turaiel[Offline] is now known as Turaiel |
22:47 | | Kindamoody is now known as Kindamoody[zZz] |
23:44 | <@froztbyte> | <Turaiel> Some users are just really bad at input. |
23:44 | <@froztbyte> | whosawhatnow? |
23:44 | < Turaiel> | What of it? o.o |
23:44 | <@froztbyte> | I don't understand the remark in context of unicode discussion |
23:45 | < Turaiel> | It was more of a reference to the 200 page PDF entered into the text field. |
23:45 | < Turaiel> | Some users are REALLY bad at figuring out what to input :P |
23:47 | <@froztbyte> | pretty sure that specific instance was the person going out of their way to break Syka's shit |
23:47 | <@froztbyte> | and, to be fair, that's a pretty good method to test |
23:48 | < Turaiel> | Yes, I'm quite aware of both of those. |
23:48 | < Turaiel> | It was a joke. |
23:49 | <@froztbyte> | ah |
23:49 | <@froztbyte> | I guess I'm a bit unicode-sensitive still |
23:49 | | * froztbyte has recently come from a place where people avoid unicode like the plaque for some stupid reason |
23:49 | <@froztbyte> | shitty php people, basically |
--- Log closed Sun Jun 02 00:00:08 2013 |