john melesky 8 anni fa
parent
commit
9adbf4c3aa
1 ha cambiato i file con 92 aggiunte e 0 eliminazioni
  1. 92 0
      posts/2016-09-10-resurrecting-zombies.md

+ 92 - 0
posts/2016-09-10-resurrecting-zombies.md

@@ -0,0 +1,92 @@
+---
+title: Resurrecting Zombies
+tags: haxe, games, zombie protagonist
+description: Digging up and dusting off some decade-old code to see if it works with a months-old compiler.
+---
+
+About ten years ago, I decided to write [a flash
+game](/stuff/zombie_protagonist.html). I used unconventional
+technologies ([Haxe](http://haxe.org/) for the code, and
+[darcs](http://darcs.net/) for the source control). After tinkering
+with it for a year or so, I never touched it again (This, I fear, is
+not uncommon in the world of side projects).
+
+Until now! I've got a new site, and I'm trying to clean up some old
+stuff, so it's time to dig up the code, dust it off, and see if it
+works, and how it works.
+
+### Darcs
+
+Originally, I self-hosted the code, accessing it via using darcs over
+ssh on my server. Eventually, I used a hosting service for darcs
+(patch-tag.com). When that site folded a few years back, I failed to
+get a copy in time, and assumed that the source was lost.
+
+But, wait, I found a tarball of the source! It has no history, but at
+least it's something. Hopefully it's the most recent version.
+
+But, wait again, I found a buried source directory that actually
+included the `_darcs` information! Excellent! I had a copy of the full
+history after all.
+
+Now, I love darcs^[pijul]. I use [git](https://git-scm.com/)
+professionally, of course. It's incredibly fristrating to use git
+after being acclimated to darcs -- so many things become awkward, or
+translate poorly. Yet git is the lingua franca of modern source
+control, and to deny that is to [claim that forests don't
+exist](http://www.theatlantic.com/science/archive/2016/09/flat-earth-truthers/499322/). Therefore, I must convert to git.
+
+Darcs has some [minimal, but excellent
+documentation](http://darcs.net/Using/Convert) on exporting to
+git. Which I use. But a `git log` shows me only one commit. What's up
+with that? I want my full commit history, please. Several hours later,
+I finally just try `darcs log` in the darcs repo:
+
+~~~ {.bash}
+$ darcs log
+patch 93e98bccb6c6773f349d394eb27bf311081b0fac
+Author: jmelesky <code@phaedrusdeinus.org>
+Date:   Tue May 12 15:11:18 PDT 2009
+  * import from darcs1 repo
+~~~
+
+Well, that answers that. I apparently destroyed the history myself,
+seven years back. More's the pity. That does answer whether I'm
+dealing with an ancient darcs repo, or [a slightly less
+ancient](http://darcs.net/DarcsTwo) one.
+
+### Haxe
+
+Now that we're in a git repo, let's see if we can compile this son of
+a gun. Haxe is easy to install, but has changed quite a bit since it
+was young and edgy and called "haXe". I've got a file called
+`build.hxml`^[hxml] in my repo, but apparently haxe no longer uses
+that sort of build file.
+
+Instead, I'll start with something that's my best guess [based on
+modern comiler usage](http://haxe.org/manual/compiler-usage.html):
+
+~~~ {.bash}
+ haxe -cp . -main ZombieProtagonist -swf Zombie.swf
+./Actor.hx:47: characters 8-19 : Actor should be Void
+.... (lots more errors)
+~~~
+
+Well, I guess the language has progressed a bit. Or, I suppose, this
+is a version which never compiled. I think the former, though.
+
+More work to be done. In the meantime, the project is [up on
+github](https://github.com/jmelesky/zombie_protagonist). Tune in next
+time to see more of my continuing struggles to create a SWF file.
+
+
+
+[pijul]: If I were to start over again today, I might be tempted by
+[pijul](http://pijul.org/), which has most of darcs' strengths, and
+few of its weaknesses. But I'm not, so I won't.
+
+[hxml]: The [documentation for the old
+compiler](http://old.haxe.org/doc/compiler) indicate that this was
+really a thing, which is good, because the [modern
+stuff](http://haxe.org/manual/compiler-usage-flags.html) doesn't
+mention it at all. I got a bit concerned for my past sanity.