1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
--post-date: 2019-12-09
--type: blog
<article>
<h1>Lisps, Assembly, C, and Conlangs</h1>
<p>I had originally hoped to do more blogging as a way of practicing my
writing and an incentive to do more hobby programming. The intent was
never to make this site solely programming, I had actually a few scrapped
posts about baking and guitar that just didn't get anywhere... but
that being said I did have a fair amount of hobbying in 2019 that I can
share some unfiltered, semi-structured thoughts on.</p>
<h2>Racket, 80x86, and even more C</h2>
<h3>Racket</h3>
<p><a target="_blank"
href="https://racket-lang.org">Racket</a> is a general-purpose
lisp-like language. I had began messing around in it with the
intention of creating a similar language to <a target="_blank"
href="https://docs.racket-lang.org/scribble/">Scribble</a> a document
authoring language written in Racket. I made <a target="_blank"
href="https://xkcd.com/1205/">the classic mistake</a> of trying to
create a productivity tool rather than just do the task I had
originally intended to do. It was interesting messing around in a
lisp/functional language which I haven't really used in a long
time. I wish I had more insightful things to say about it or project
to share. Either way its very worth the look.</p>
<h3>6502 -> 80x86 -> Commander X16</h3>
<p>I wanted to play around with writing some assembly language programs.
I looked back at the NES tutorials and tried writing some basic
hello-world programs for it, but never really came out with anything
worth while. I booted up dosbox and tried experimenting in some DOS
programming to get a kick of nostalgia. On my way over to a friends
apartment I stumbled across an 80x86 reference book which I took home and
dug into. I made some decent progress in, relative to my 6502 learning.
But this was in the summer, and I was preparing for what would turn into
a pretty time consuming move. After my move, my puppy, and some youtube,
<a target="_blank"
href="http://www.the8bitguy.com">The 8-Bit Guy</a> made a video about
his 8 Bit computer project <a target="_blank"
href="http://www.commanderx16.com/X16/Ready.html">Commander X16</a>
which I started looking into. Like all the other assembly language
projects they never amounted to more than a few print statements or
colors on the screen. But X16 is something I am going to keep an eye
on in 2020.<br>
<a target="_blank"
href="https://eater.net/">Ben Eater</a> also started a <a target=
"_blank"
href="https://eater.net/6502">6502 video series</a> which was amazing,
and thankfully my learnings from earlier in the year made the content
very understandable. In summary, I spent a lot of 2019 reading and
watching a lot of content about assembly language programming, but
never really did anything with it.</p>
<h3>Never ending C</h3>
<p>Without much to really say on the topic, I kept writing small programs
in C throughout the year. I spent a lot of time debugging and
troubleshooting a prefix terminal calculator with the intention of making
it a full utility to use on the command line / from within scripts. You
could do simple math without opening up x-calc, which I find myself doing
to check some quick math. Example code: <code class="inline">calc "+
1 1"</code>. To me this was far cleaner than writing: <code class=
'inline'>echo $((1+1))</code>. The big ideas I had for it was adding a
REPL and making it a command line calculator tool where you could get the
features of a standard calculator with store and recall functions. This
project involved making two stacks: the operations and the numbers.
Implementing two stacks from scratch was interesting and I may upload the
source and link it in an update. Overall it was full of breaks, bugs,
wrong turns, and bizarre memory issues. So needless to say it was a fun 3
days of programming.</p>
<h2>Non Programming Writing</h2>
<p>The project that soaked up a majority of my writing time, which sadly
should've been documented here, was my conlang / world-building
project "Tyur". This project spawned out of sci-fi story ideas
that, of course, never went anywhere (due to my poor dialog writing, and
writing in general) and my interest in language history. I have been
reading <a target="_blank"
href=
"https://www.goodreads.com/book/show/1831667.The_Horse_the_Wheel_and_Language">
The Horse the Wheel and Language</a> by David W. Anthony, which goes into
the history around Proto-Indo-European. It can be a bit dense so I had
been reading it on and off, and during the off times also started
<a target="_blank"
href=
"https://www.goodreads.com/book/show/18635317-the-origins-of-language">The
Origins of Language: A Slim Guide</a> by James R. Hurford, which tries
to provide insights on the evolutionary concept of language. Both of
these provided some fodder for the idea of creating my own <a target=
"_blank"
href="https://en.wikipedia.org/wiki/Constructed_language">conlang</a>.
My conlang is "Tyur" the language spoken by the Tyur people.
This process has really been a mix of world-building around the Tyur
and some fun fantasy mini story ideas similar to The Lord of the Rings
and old Warhammer Fantasy worlds. This however began my adventure down
the rabbit hole of trying to figure out how to create a font so I can
write more here about it. The documentation on this conlang is a mix
of loose-leaf folded in my bag that I scribble on when I get an idea.
So figuring out a proper way of building the alphabet and some root
words to start a dictionary are my current goals for the remainder of
the year/ start of 2020.</p>
<h2>Closing</h2>
<p>In closing, I think despite not writing much here, I messed around
with some interesting languages this year, and hope I can hobby more in
2020.</p>
</article>
|