Forum comments in chronological order
Disclaimer: I am not responsible for what people (other than myself) write in the forums. Please report any abuse, such as insults, slander, spam and illegal material, and I will take appropriate actions. Don't feed the trolls.
Jag tar inget ansvar för det som skrivs i forumet, förutom mina egna inlägg. Vänligen rapportera alla inlägg som bryter mot reglerna, så ska jag se vad jag kan göra. Som regelbrott räknas till exempel förolämpningar, förtal, spam och olagligt material. Mata inte trålarna.
- Jun 2007
- Aug 2007
- Oct 2007
- Nov 2007
- Dec 2007
- Jan 2008
- Feb 2008
- Mar 2008
- Apr 2008
- May 2008
- Jun 2008
- Jul 2008
- Aug 2008
- Sep 2008
- Oct 2008
- Nov 2008
- Dec 2008
- Jan 2009
- Feb 2009
- Mar 2009
- Apr 2009
- May 2009
- Jun 2009
- Jul 2009
- Aug 2009
- Sep 2009
- Oct 2009
- Nov 2009
- Dec 2009
- Jan 2010
- Feb 2010
- Mar 2010
- Apr 2010
- May 2010
- Jun 2010
- Jul 2010
- Aug 2010
- Sep 2010
- Oct 2010
- Nov 2010
- Dec 2010
- Jan 2011
- Feb 2011
- Mar 2011
- Apr 2011
- May 2011
- Jun 2011
- Jul 2011
- Aug 2011
- Sep 2011
- Oct 2011
- Nov 2011
- Dec 2011
- Jan 2012
- Feb 2012
- Mar 2012
- Apr 2012
- May 2012
- Jun 2012
- Jul 2012
- Aug 2012
- Sep 2012
- Oct 2012
- Nov 2012
- Dec 2012
- Jan 2013
- Feb 2013
- Mar 2013
- Apr 2013
- May 2013
- Jun 2013
- Jul 2013
- Aug 2013
- Sep 2013
- Oct 2013
- Nov 2013
- Dec 2013
- Jan 2014
- Feb 2014
- Mar 2014
- Apr 2014
- May 2014
- Jun 2014
- Jul 2014
- Aug 2014
- Sep 2014
- Oct 2014
- Nov 2014
- Dec 2014
- Jan 2015
- Feb 2015
- Mar 2015
- Apr 2015
- May 2015
- Jun 2015
- Jul 2015
- Aug 2015
- Sep 2015
- Oct 2015
- Nov 2015
- Dec 2015
- Jan 2016
- Feb 2016
- Mar 2016
- Apr 2016
- May 2016
- Jun 2016
- Jul 2016
- Aug 2016
- Sep 2016
- Oct 2016
- Nov 2016
- Dec 2016
- Jan 2017
- Feb 2017
- Mar 2017
- Apr 2017
- May 2017
- Jun 2017
- Jul 2017
- Aug 2017
- Sep 2017
- Oct 2017
- Nov 2017
- Dec 2017
- Jan 2018
- Feb 2018
- Mar 2018
- Apr 2018
- May 2018
- Jun 2018
- Jul 2018
- Aug 2018
- Sep 2018
- Oct 2018
- Nov 2018
- Dec 2018
- Jan 2019
- Feb 2019
- Mar 2019
- Apr 2019
- May 2019
- Jun 2019
- Jul 2019
- Aug 2019
- Sep 2019
- Oct 2019
- Nov 2019
- Dec 2019
- Jan 2020
- Feb 2020
- Mar 2020
- Apr 2020
- May 2020
- Jun 2020
- Jul 2020
- Aug 2020
- Sep 2020
- Oct 2020
- Nov 2020
- Dec 2020
- Jan 2021
- Feb 2021
- Mar 2021
- Apr 2021
- May 2021
- Jun 2021
- Jul 2021
- Aug 2021
- Sep 2021
- Oct 2021
- Nov 2021
- Dec 2021
- Jan 2022
- Feb 2022
- Mar 2022
- Apr 2022
- May 2022
- Jun 2022
- Jul 2022
- Aug 2022
- Sep 2022
- Oct 2022
- Nov 2022
- Dec 2022
- Jan 2023
- Feb 2023
- Mar 2023
- Apr 2023
- May 2023
- Jun 2023
- Jul 2023
- Aug 2023
- Sep 2023
- Oct 2023
- Nov 2023
- Dec 2023
- Jan 2024
- Feb 2024
- Mar 2024
- Apr 2024
- May 2024
- Jun 2024
- Jul 2024
- Aug 2024
- Sep 2024
- Oct 2024
Nov 2019
hlship
hlship@gmail.com
Fri 1-Nov-2019 23:47
hlship@gmail.com
Fri 1-Nov-2019 23:47
Thanks for the update.
I was able to register on the forum this time, so whatever it was, resolved itself.
I was able to register on the forum this time, so whatever it was, resolved itself.
hlship
hlship@gmail.com
Sat 2-Nov-2019 00:12
hlship@gmail.com
Sat 2-Nov-2019 00:12
So, out of an abundance of hubris, I'm trying to bring Threaded Conversation to Dialog, despite:
- insufficient experience w/ TC in Inform7
- not fully fluent in Inform7
- new to Dialog
- very limited time to work on this!
I'm struggling with scope.
Quips are the basic thing in TC - they represent a exchange between the player and the NPC, and include predicates that govern who can say the quip, and how quips directly or indirectly follow each other (plus much more in TC).
So a player command might be ASK BARMAID ABOUT RUMORS and this should be understood as [discuss #whether-rumors-tell-truly with #barmaid].
But my code, as it stands, is failing:
> ask bar maid about rumors
The whether the rumors tell truly isn't here.
So that's a scoping issue.
What's confusing to me is that, when tracing, it looks like it found it:
| | | | | FOUND (understand [ask bar maid rumors] as [discuss #whether-rumors-tell-truly with #barmaid]) /usr/local/share/dialog-if/stdlib.dg:4710
(I haven't put in any code to restrict quips in any way, that comes soon)
but then Dialog continues on from there:
| | | | | | | | | ENTER (parse [bar maid] as object [1] [13] [1] 0) /usr/local/share/dialog-if/stdlib.dg:4394
| | | | | | | | | QUERY (allowing parse errors) /usr/local/share/dialog-if/stdlib.dg:4395
| | | | | | | | ENTER (split [maid rumors] anywhere into [maid | $] and $) /usr/local/share/dialog-if/stdlib.dg:5273
| | | | | | | | QUERY *(split [rumors] anywhere into $ and $) /usr/local/share/dialog-if/stdlib.dg:5274
| | | | | | | | | ENTER (split [rumors] anywhere into [rumors | $] and $) /usr/local/share/dialog-if/stdlib.dg:5273
| | | | | | | | | QUERY *(split [] anywhere into $ and $) /usr/local/share/dialog-if/stdlib.dg:5274
| | | | | | ENTER (understand [ask bar maid rumors] as [ask $ about $]) /usr/local/share/dialog-if/stdlib.dg:1916
So despite finding a good match, it seems to wander off based on the built-in ask action (?).
Later in the trace it feels like it's back to my discussing action, but something (even with the trace, it's hard to follow) deciding that #whether-rumors-tell-truly is not reachable.
I tried adding
((quip $) in is scope)
to make all quips in scope, but that doesn't seem to help.
My code so far (cobbled from stdlib.dg and guess work and experimentation):
(rewrite [ask | $Words] into [ask | $TailWords])
(split $Words by [about] into $Person and $MoreWords)
(append $Person $MoreWords $TailWords)
(understand [ask | $Text] as [discuss $Quip with $Person])
*(split $Text anywhere into $Someone and $QuipWords)
*(understand $Someone as single object $Person preferably animate)
*(understand $QuipWords as questioning quip $Quip)
(understand $Words as questioning quip $Quip)
*(understand $Words as quip $Quip)
(questioning quip $Quip)
(understand $Words as quip $Quip)
(filter $Words into $Filtered)
(nonempty $Filtered)
(determine object $Quip)
*(quip $Quip)
%% TODO: In scope for conversation ...
(from words)
*(dict $Quip)
(matching all of $Filtered)
So I thought I'd check to see if I'm even headed in the right direction on this.
For TC managing the scope is pretty essential; TC is about a balance of revealing what you can talk about in the current point of the current conversation without giving away other possible conversation quips that don't (yet) apply. So ultimately, whether Dialog should recognize 'rumors' as referring the quip depends on who the player is conversing with, what quips have already been performed, and whether a potential quip follows (directly or indirectly) some previously performed quip.
- insufficient experience w/ TC in Inform7
- not fully fluent in Inform7
- new to Dialog
- very limited time to work on this!
I'm struggling with scope.
Quips are the basic thing in TC - they represent a exchange between the player and the NPC, and include predicates that govern who can say the quip, and how quips directly or indirectly follow each other (plus much more in TC).
So a player command might be ASK BARMAID ABOUT RUMORS and this should be understood as [discuss #whether-rumors-tell-truly with #barmaid].
But my code, as it stands, is failing:
> ask bar maid about rumors
The whether the rumors tell truly isn't here.
So that's a scoping issue.
What's confusing to me is that, when tracing, it looks like it found it:
| | | | | FOUND (understand [ask bar maid rumors] as [discuss #whether-rumors-tell-truly with #barmaid]) /usr/local/share/dialog-if/stdlib.dg:4710
(I haven't put in any code to restrict quips in any way, that comes soon)
but then Dialog continues on from there:
| | | | | | | | | ENTER (parse [bar maid] as object [1] [13] [1] 0) /usr/local/share/dialog-if/stdlib.dg:4394
| | | | | | | | | QUERY (allowing parse errors) /usr/local/share/dialog-if/stdlib.dg:4395
| | | | | | | | ENTER (split [maid rumors] anywhere into [maid | $] and $) /usr/local/share/dialog-if/stdlib.dg:5273
| | | | | | | | QUERY *(split [rumors] anywhere into $ and $) /usr/local/share/dialog-if/stdlib.dg:5274
| | | | | | | | | ENTER (split [rumors] anywhere into [rumors | $] and $) /usr/local/share/dialog-if/stdlib.dg:5273
| | | | | | | | | QUERY *(split [] anywhere into $ and $) /usr/local/share/dialog-if/stdlib.dg:5274
| | | | | | ENTER (understand [ask bar maid rumors] as [ask $ about $]) /usr/local/share/dialog-if/stdlib.dg:1916
So despite finding a good match, it seems to wander off based on the built-in ask action (?).
Later in the trace it feels like it's back to my discussing action, but something (even with the trace, it's hard to follow) deciding that #whether-rumors-tell-truly is not reachable.
I tried adding
((quip $) in is scope)
to make all quips in scope, but that doesn't seem to help.
My code so far (cobbled from stdlib.dg and guess work and experimentation):
(rewrite [ask | $Words] into [ask | $TailWords])
(split $Words by [about] into $Person and $MoreWords)
(append $Person $MoreWords $TailWords)
(understand [ask | $Text] as [discuss $Quip with $Person])
*(split $Text anywhere into $Someone and $QuipWords)
*(understand $Someone as single object $Person preferably animate)
*(understand $QuipWords as questioning quip $Quip)
(understand $Words as questioning quip $Quip)
*(understand $Words as quip $Quip)
(questioning quip $Quip)
(understand $Words as quip $Quip)
(filter $Words into $Filtered)
(nonempty $Filtered)
(determine object $Quip)
*(quip $Quip)
%% TODO: In scope for conversation ...
(from words)
*(dict $Quip)
(matching all of $Filtered)
So I thought I'd check to see if I'm even headed in the right direction on this.
For TC managing the scope is pretty essential; TC is about a balance of revealing what you can talk about in the current point of the current conversation without giving away other possible conversation quips that don't (yet) apply. So ultimately, whether Dialog should recognize 'rumors' as referring the quip depends on who the player is conversing with, what quips have already been performed, and whether a potential quip follows (directly or indirectly) some previously performed quip.
Anonymous
Sun 10-Nov-2019 00:49
Sun 10-Nov-2019 00:49
Hello, playing online does not seem to work anymore? I don't see any JAVA applet loading... (Firefox, Ubuntu)
Anonymous
Mon 11-Nov-2019 01:19
Mon 11-Nov-2019 01:19
For me, background processes are able to write to the terminal. For example,
[ ~]$ python -c "import time; time.sleep(10); print('hello');"
^Z
[2]+ Stopped python3 -c "import time; time.sleep(10); print('hello');"
[ ~]$ bg
[2]+ python3 -c "import time; time.sleep(10); print('hello');" &
[ ~]$ hello
[ ~]$ python -c "import time; time.sleep(10); print('hello');"
^Z
[2]+ Stopped python3 -c "import time; time.sleep(10); print('hello');"
[ ~]$ bg
[2]+ python3 -c "import time; time.sleep(10); print('hello');" &
[ ~]$ hello
Anonymous
Mon 11-Nov-2019 15:18
Mon 11-Nov-2019 15:18
Just found your "A mind is born" through Twitter. That is impressive! I'd like to reference you on Twitter, do you have a handle? https://twitter.com/hiilbig/status/1193895190441930753
AlienTech
Joe Peter
Tue 12-Nov-2019 05:14
Joe Peter
Tue 12-Nov-2019 05:14
Update:
Good luck all!
--Paul Nelsen
--Oaktree Innovations
Good luck all!
--Paul Nelsen
--Oaktree Innovations
Paul are you Scott's brother? Were you at the star trek parties we attended?
I tried searching for you guy but I guess I spelled it Nelson :) and it has been almost 30 years.
While doing warpeed I was floored by vorpal and how it was possible but at the time was too busy to look further into it and only when I met Scott did I find out it was not regular GCR code.
AlienTech
Joe Peter
Tue 12-Nov-2019 05:27
Joe Peter
Tue 12-Nov-2019 05:27
Hi Linus and everybody,
thanks to this work, i've been inspired to come up with the next step.
Full on-the-fly GCR block read+decode+checksumming on a stock 1541: https://csdb.dk/release/?id=167152
I'd like to write a follow-up guest article about it at some point. :)
Regards,
Krill
thanks to this work, i've been inspired to come up with the next step.
Full on-the-fly GCR block read+decode+checksumming on a stock 1541: https://csdb.dk/release/?id=167152
I'd like to write a follow-up guest article about it at some point. :)
Regards,
Krill
Actually did this for the copy protection system I wrote for ATG. It also used a kind of scatter loading where each sector had the address of where it should load at. The file did not load sequentially. It read the bits, decoded it and if the checksum was ok, transferred it immediately to computer memory. It did take 2 or more revolutions to transfer the track since the CPU was not fast enough to read and transfer data on the fly even if undecoded. Vorpal which did read, decode and transfer on the fly did not use standard GCR coding.. I thought Scott was the one who did it but maybe Paul can help.
Preference was for the protection than the speed. But also error correction was important since unlike normal data, the encrypted data would not decode properly with any bit errors. Hence it sometimes took 3 revs to load if it encountered any errors. Also the disk had to be able to be duplicated by standard duplicating machines. Even if standard drives error'ed out and stopped loading, older copy protection skipped over some bit errors and it usually was not noticeable since real code was only 5-10% of the data involved. This was done so people could still load their disk even if some bits got erased. But for a full wrapper this would not work because the bit errors would trash any future decoded data which depended on previously decoded values.
AlienTech
Joe Peter
Tue 12-Nov-2019 05:40
Joe Peter
Tue 12-Nov-2019 05:40
Just wanted to add to my comment from 11-Dec-2017 some things I forgot to mention. One of the fasted data transmission routines I analyzed in my teenage years was the one from Heureka Sprint. Heureka Sprint was a program 'listing of the month' in the German magazine '64er'. Is was especially remarkable since it used a different GCR encoding, which was much faster but less efficient; as far as I remember it could only store 228 bytes per block (maybe it used 6 instead of 5 bits per nybble?). You had to use the program provided to store your applications in the different format on your disk. But boy, it really loaded extremely fast!!! Another trick I think I came across that I would like to mention was to load the sectors out of order, and just store them out of order in the correct memory place in the C64, just as they came across the reading head of the drive, to avoid having to reformat the sectors in a particular order. Might be interesting to mention...
Ah thanks :) after decades someone admits to going through my code... and cracking it too.. That was the protection system used for an automated process where the company sent us the files and we stuck a disk into the drive and a program took those files and protected it and wrote it out onto another disk which could be sent out to the duplicators..
I did not know about Heureka Sprint until today or you might have seen a real time version of that protection scheme like what Vorpal did. Since 5 to 4 gave the most, Vorpal's 5 to 3 bits was not enticing for most companies as they needed the space more than the speed. But a 6 to 5 decoder would not lose so much space on the disk.. extra disks for most companies meant like $50,000 loss as the min run rate for a release.
lft
Linus Åkesson
Tue 12-Nov-2019 08:17
Linus Åkesson
Tue 12-Nov-2019 08:17
Thanks for your kind feedback! I'm working on a small incremental update for Tethered right now, and I've decided to include your suggested ending as part of it. It will be hard to find, more or less an Easter egg.
Anonymous
Tue 12-Nov-2019 16:58
Tue 12-Nov-2019 16:58
noorsun0035:
I see this project. i search a video generator with avr.
this is very nice.
but do this protect data is update?
the pic and schematic is low quality.
I see this project. i search a video generator with avr.
this is very nice.
but do this protect data is update?
the pic and schematic is low quality.
Anonymous
Tue 19-Nov-2019 15:06
Tue 19-Nov-2019 15:06
It's been years since I first heard this, and I still come back to hear your rendition of "Comic Bakery"
https://youtu.be/m1pchpDD5EU?t=112
Would love if you did a standalone of that! :-)
https://youtu.be/m1pchpDD5EU?t=112
Would love if you did a standalone of that! :-)
Anonymous
Tue 19-Nov-2019 18:05
Tue 19-Nov-2019 18:05
This is a comment.
Anonymous
Sun 24-Nov-2019 01:37
Sun 24-Nov-2019 01:37
This is nice! Reminds me of the puzzles in the Zelda games, probably a connection there!