code logs -> 2013 -> Sat, 01 Jun 2013< code.20130531.log - code.20130602.log >
--- 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
code logs -> 2013 -> Sat, 01 Jun 2013< code.20130531.log - code.20130602.log >

[ Latest log file ]