code logs -> 2017 -> Sat, 22 Apr 2017< code.20170421.log - code.20170423.log >
--- Log opened Sat Apr 22 00:00:03 2017
00:13 Kindamoody is now known as Kindamoody[zZz]
00:55 Derakon[AFK] is now known as Derakon
03:08 Namegduf [namegduf@Nightstar-lcgn9d.beshir.org] has joined #code
03:08 mode/#code [+o Namegduf] by ChanServ
05:01 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has quit [Ping timeout: 121 seconds]
06:29 Jessikat [Jessikat@Nightstar-l204vk.dab.02.net] has joined #code
06:43 Derakon is now known as Derakon[AFK]
06:50 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
07:12 celticminstrel is now known as celmin|sleep
07:18 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
07:18 mode/#code [+qo Vornicus Vornicus] by ChanServ
07:24 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
07:26 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
07:29 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
07:29 mode/#code [+o Alek] by ChanServ
08:46 Kindamoody[zZz] is now known as Kindamoody
09:05 Kindamoody is now known as Kindamoody|out
10:17 Jessikat [Jessikat@Nightstar-l204vk.dab.02.net] has quit [[NS] Quit: Bye]
11:02
<@abudhabi>
Not sure when, but somewhere along the way, I morphed from "private tutor" to "subcontractor".
12:22
<@himi>
Hey McMartin, I've got a program here writtein in basic for the Apple II - do you know any easily accessible interpreter I could run it on under modern Linux?
12:41
<@himi>
urgh
12:41
<@himi>
The first place I could find that actually ran the code unmodified was a javascript implementation
12:41
<@himi>
I /think/ it's running a whole lot faster than the original Apple II, but I'm not certain
14:13 Kindamoody|out is now known as Kindamoody
14:39 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has joined #code
15:10 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has quit [Ping timeout: 121 seconds]
15:50 RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has joined #code
17:14 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
17:14 mode/#code [+qo Vornicus Vornicus] by ChanServ
17:41 celmin|sleep is now known as celticminstrel
19:38
<@gnolam>
Oh yeah, should probably post this here as well: https://linusakesson.net/scene/a-mind-is-born/
19:50
<&McMartin>
himi: I know of no actually decent Apple II emus on native Linux alas
19:50
<&McMartin>
In fact, the only decent one of any kind I'm aware of is AppleWin
19:51
<&McMartin>
Which might be WINEable, I guess?
19:51
<&McMartin>
Yay Revision
20:06 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code
22:31 Kindamoody|autojoin [Kindamoody@Nightstar-0lgkcs.tbcn.telia.com] has joined #code
22:32 mode/#code [+o Kindamoody|autojoin] by ChanServ
22:32 Kindamoody [Kindamoody@Nightstar-0lgkcs.tbcn.telia.com] has quit [Connection closed]
22:33 Kindamoody|autojoin is now known as Kindamoody
22:54 Kindamoody is now known as Kindamoody[zZz]
23:25
<@himi>
McMartin: the javascript one I found actually works decently on Chrome - Firefox is running it a bit strangely
23:26
<&McMartin>
That's why I qualified with "native" - JS online systems seem to be The Thing for Apple, and I'm not sure why
23:26
<&McMartin>
Well. For Apple II
23:26
<&McMartin>
Recompilers have been the thing for Macs~
23:27 * Vornicus pokes at haskell, needs to find his way around basic structures like dictionaries
23:27
<&McMartin>
Data.Map
23:27
<~Vornicus>
though in this case it's a constant dictionary so I don't know if that goes differently
23:28
<&McMartin>
himi: What did you ultimately end up using?
23:29
<&McMartin>
And how did you get the disk image into place? Or did you copy-paste the whole BASIC program in?
23:29
<@himi>
http://www.calormen.com/jsbasic/
23:29
<@himi>
Copy pasted the code
23:29 * McMartin nods
23:29
<&McMartin>
Aha, yeah, you're not wrong to think it's running faster
23:30
<&McMartin>
I think this is reimplementing Applesoft BASIC at the API level
23:30
<@himi>
From the information that came with the code (a 1984 article on exterior ballistics), the program should run at several seconds per iteration, whereas on Chrome it runs probably tens of iterations per secnd
23:31
<&McMartin>
Yeah
23:31
<&McMartin>
That sounds a lot like it's a Brandy BASIC-like system then
23:31
<&McMartin>
Ultimately probably what you wanted anyway, tbh
23:31
<&McMartin>
(Brandy being a native Linux edition of BBC BASIC)
23:31
<@himi>
I looked at Brandy, but it kept complaining and I couldn't figure out what its issues were
23:31
<&McMartin>
Well, it's a totally different dialect
23:32
<&McMartin>
If you needed Applesoft BASIC, you needed Applesoft BASIC
23:32
<@himi>
This one just ran it with no problems at all, except for graphics issues with the inverse command
23:32 * himi nods
23:32
<&McMartin>
I started poking a bit at BBC BASIC a couple weeks ago and it organizes its programs very, very differently
23:33
<@himi>
A bit of work could have translated it to a more modern BASIC, but I'd literally just typed out several hundred lines of cryptic numerical code from a 35 year old article that wasn't a great scan in the first place, so getting it working in a verifiable way was necessary before making significant changes
23:33
<&McMartin>
Heh
23:33 * himi is intending to rewrite it in python so it can actually run on modern hardware
23:34
<&McMartin>
Probably the simplest choice but if it's not doing any stringwork I'd at least consider using C
23:34
<&McMartin>
Apple BASIC's restrictions map neatly to Stuff That Makes C Work Easier
23:35
<@himi>
Yeah, I wanted to get it in a language that was easy for non-programmers to run
23:35
<@himi>
BASIC used to be that, but now python's probably a better choice
23:35
<&McMartin>
I agree
23:35
<&McMartin>
Though I would grimly note that actually JS is probably the *best* choice now.
23:35
<@himi>
heh
23:35
<@himi>
That's a distressingly valid observation
23:36
<@himi>
Except that to get it to run that easily you have to put it up somewhere on a web page
23:36
<&McMartin>
... how were you planning on distributing the result if not "by putting it up on a web page"?
23:36
<@himi>
(which, incidentally, is a failing of that jsbasic code - no cli model)
23:36
<@himi>
Yes, but /I/ need to take responsibility for putting it up and keeping it up, or figure out how to make someone else do it
23:36
<&McMartin>
Yeah, actually, if you want I can turn your BASIC code into a disk image for actual emulators >_>
23:37
<&McMartin>
That might also be fun for speed tests
23:37
<@himi>
I'd rather just make a chunk of code available and let the users sort out the rest
23:37
<@himi>
Hm
23:37
<&McMartin>
I definitely suggest keeping a copy of the Applesoft Original
23:37
<&jerith>
I should also note that JS is not very high on the list of languages I trust with anything numerical.
23:38
<&McMartin>
Reminder that we're starting here with Applesoft BASIC
23:38
<@himi>
I /think/ I can do that - the article reckons the code is redistributable on non-commercial use terms
23:38
<&McMartin>
I'd like to see the original BASIC code because if I *can* do a BBC BASIC conversion, I've got Actual BBC BASIC V and VI here on my RasPi
23:39
<&McMartin>
(QBASIC is still the better dialect, though >_>)
23:39
<@himi>
Yeah, there's a bunch of cases where it does int(1000*<value> + .5) /1000 to work around a rounding issue in the interpreter
23:40
<&McMartin>
Really, that's good practice even with IEEE 754
23:40
<@himi>
You want the version that currently doesn't run properly, or the one I copied directly and /also/ doesn't run (more catastrophically)
23:40
<&McMartin>
I was thinking more "once you succeed" but I was under the impression you had
23:40
<@himi>
It's running, but not properly
23:40
<&McMartin>
Gotcha
23:41
<@himi>
I /think/ there's a sign error somewhere that's causing G not to be added to the vertical force components, but I'm struggling to see where
23:41
<&McMartin>
I had the wrong magazines as a kid - it turns out your classier magazines with type-in articles included little machine language programs that actually checksummed every line as you typed it in for easy comparison with the text
23:42
<&McMartin>
It's very difficult to overstate how much more civilized this makes it
23:42 * himi is seriously considering rewriting it in python from scratch based on the article description rather than the BASIC code, but currently wants to beat this into submission more than he wants a quickly working chunk of code
23:42
<@himi>
heh
23:42
<~Vornicus>
it's MLX
23:43
<&McMartin>
No, I'm thinking Automatic Proofreader
23:43
<@himi>
I've found one straight typo so far
23:43
<~Vornicus>
oh that one too
23:43
<&McMartin>
Which you used to get MLX into place
23:44
<&McMartin>
It turns out that other magazines actually had their own Automatic Proofreaders too and apparently they eventually synchronized on a checksum algo
23:44 Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds]
23:44 * himi is wondering if there are subtler issues with the original code in the article
23:44
<&McMartin>
Yeah, if the printed code is wrong, a proofreader doesn't help -_-
23:45
<&McMartin>
One of the things Learn Python The Hard Way missed is that one of the things one learns from type-ins is to read with a skeptical eye
23:45
<@himi>
Hence sitting down and fiddling until the code runs the documented test case correctly
23:45
<@himi>
heh
23:46
<@himi>
Sometimes that thing you think is strange really is just a bug
23:46
<&McMartin>
Yep
23:46
<&McMartin>
And sometimes it's a subtelty
23:46
<&McMartin>
But spelled right
23:47 Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code
23:47 mode/#code [+o Alek] by ChanServ
23:48
<&McMartin>
Well, good luck
23:49
<&McMartin>
I'm better at reading Applesoft than writing it but if you end up having questions about the mechanics of stuff I can probably help out
23:49
<&McMartin>
Unless it's actually going into GR/HGR mode I don't think you'll see anything weirder than HOME/INVERSE/FLASH/NORMAL though.
23:49
<&McMartin>
Everything else is more verbose assembler with a better type system.
23:49 * Vornicus looks at Data.Map, determines that he doesn't know enough haskell to understand the documentation
23:50
<&McMartin>
(In order, clear the screen and then three commands for changing the text colors, basically)
23:52
<@himi>
Yeah, it's not really a BASIC issue or anything, it's an algorithm problem
23:56 Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving]
23:57
<&McMartin>
One thing Brandy does turn out to be good for is plotting at higher resolutions; when I did a brandy port of the hat function it ended up being a much nicer graph
23:58
<&McMartin>
Graphics are always super-non-portable across dialects, of course
--- Log closed Sun Apr 23 00:00:05 2017
code logs -> 2017 -> Sat, 22 Apr 2017< code.20170421.log - code.20170423.log >

[ Latest log file ]