Camen Design Forum

Kroc's Work Log

append delete Kroc

I've actually been working on programming projects almost daily for the last two years, despite the silence from me on the blog & forum (our son requires our full attention).

This thread will be a log of what I'm coding as I go. Feel free to ask questions.

Reply RSS


append delete #26. Kroc

Oh man, what a crap day. I'm on holiday in Slovakia, staying at my mother-in-law's and the SSD in her laptop just dies out-of-the-blue. I had bought with an SD card containing everything I wanted to work on whilst on holiday, so the loss of the SSD would have meant that I still had a copy to hand; except that SD card got accidentally erased trying to swap cards in the camera that had filled up. Joy. It's going to take me a couple of days to rebuild the laptop's system from scratch and I whilst all my stuff is backed up online, I don't know if I can be bothered or if it's even feasible to download 20 GB of stuff :/

Today is a 'punch a computer' kind of day.

append delete #27. Kroc

Hi. Just writing this from an iPad whilst I have both a wifi connection; not common where I am in Slovakia; and a spare moment. I'm working on my 'attack plan' for Camen Design when I get the chance to get cracking. Here's what's basically rolling around my head at the moment so feel free to give any feedback and your demands.

- move to minimum PHP7
- move to a versionless 'stable + development' release style for all projects
- Add image and YouTube embedding to NNF since these are oft-requested and can be done without re-engineering what's already there
- write up a blog-post for PortaDOOM. May need to find a better place to host the packages
- adopt some of NNF's markup in ReMarkable
- use a SQLite database to index and build Camen Design's content, perhaps move the static generation beforehand rather than the mod_rewrite + caching used now, but that would be dependant on moving to a server that provided ssh/rsync

append delete #28. Kroc

Still on holiday so not much coding and what not happening; not that I wouldn't if I could -- getting a solid bit of programming done without constant distraction makes me feel better.

I downloaded the ~20GB of PortaDOOM from my online backup (that took several hours) and started setting up a working environment for that using VSCode; I'd like to use VSCode for everything as it's the only competant editor I've used since TextMate on the Mac and HoTMeaL, my own editor I used exclusively on Windows before that.

append delete #29. Kroc

Need to brain dump some stuff. Life is very, very tough, and has been so for... six months? a year? five years? I can't even remember. The last time I wrote anything here was when I was on holiday and it's been cripplingly tough as soon as I got home. I still work on code stuff, but I'm always mentally too exhausted to write about it.

I should have been working on my website but I've not even touched it.

What I have done is disassemble the Commodore 64 port of Elite:

Considering I haven't done any 6502 assembly for about 20 years, and that I was disassembling the disk image and not a RAM-dump -- meaning that I had to reverse engineer the loader, encryption and relocation -- I've done a job I am proud of. It works, it's well commented in the places I've worked out and even the parts that aren't commented benefit from having got the variable names for a great deal of stuff. Anybody else could quite easily pick this up and alter it.

Whilst I have big plans ( for Elite, I'm going to take a break for a while to get some much needed work done on PortaDOOM. I enjoy playing the numerous and varied DOOM mods out there and whilst I'd whole-heartedly recommend them to you, it would be nice if they were a lot easier to get working without having to educate yourself quite a lot on the sheer eclectic nature of the DOOM modding community; it's like ordering a coffee in New York: there's a choice for everything. What source port would you like? What IWAD will you require? What PWAD will you be using? What compatibility settings will you need? And what about gameplay mods?

This is exactly what PortaDOOM is for. It makes playing Doom and its mods no more difficult than pressing a key to launch whatever takes your fancy. It abstracts away all the complex pairing of code & files. If you're reading this, I recommend giving it a try as there's a wealth of high-quality content out there for free -- if you where to get it and how to use it -- which PortaDOOM does for you.

Download any package from here I would recommend Cacowards 2015 for variety and PSX DOOM for a single game, complete experience (about 170 levels!); you do not need to own Doom I or II to play as I've added workarounds in PortaDOOM (using FreeDoom) to handle this automatically. If you have Doom installed from Steam or GOG, again PortaDOOM will handle this automatically.

What I need to 'fix' on PortaDOOM is to be able to elegantly handle yet another layer of hoary complexity with Doom: gameplay mods. On top of the original games, you have the custom level sets (called WADs or PWADs) but "we need to go deeper" and the community make gameplay mods that alter the guns / monsters which can be combined with any of the PWADs mentioned before.

When you take a large array of game engines that can play Doom (there's no 'one' engine like most games) and then expose that to a truly humongous array of custom maps (probably north of 20'000) you've got a compatibility nightmare. Now add on to this gameplay mods designed by another set of authors that runs on top of levels which were not designed with these gameplay mods and you've got a compatibility googolplex.

PortaDOOM doesn't at this moment handle gameplay mods. They haven't been too prominent thus far but in recent years they're becoming a big part of the scene. This means that my package for the 2017 annual Doom custom-content awards "Cacowards" is missing too much content for my liking; and these mods are _good_.

But we have an X*Y*Z scale of interoperability to resolve, and to put a friendly interface on this. To that end I've been writing a new launcher for PortaDOOM to replace the 1'600+ line batch file that currently does the job. The old launcher just took parameters and launched the request engine + IWAD + PWAD, working out the command-line specifics for the engine. The new launcher uses a bunch of metadata in INI files for each of the engines to intelligently know what engines are compatible and what engine is 'best'. To begin with I just want to get the new launcher to replace the same automated functionality as the old launcher. Once I've done that I'll look at UI and *that* will then let me provide customisation choices, such as gameplay mods.

I'm aiming to have this work done before December as that's when the 2018 Cacowards are released and I'd like to be ready for all the madness that throws my way.

append delete #30. Kroc

ReMarkable updated for PHP7! http://camendesign.test/code/remarkable
(first update in 7 years!)

append delete #31. Kroc

Six months, blimey! Life has Beene very busy with my son's needs and just recently moving house, so I haven't had much the mental strength to be updating this log too.

I've still been working on projects; mostly the Elite disassembly which has attracted another contributor! I've just begun taking a break from that after six intense months of staring at code that makes no sense and slowly trying to figure navel it one bit at a time -- it's very intense, mentally.

Something I should have started a long time ago is to start writing my own assembly code instead of always reversing somebody else's. I have to admit that I have always been a tool maker more than a game maker so the natural thing for me to make on the C64, when combined with my need to write, is a disk-mag! As with my website, the magazine will [eventually] be a radical departure from existing magazines, which I have noticed only serve the existing old-hands in a niche community. The Nücomer disk-mag will serve users new and interested in 8-bit technology. Issue #1 will be out in October.

append delete #32. qwikly

Hey Kroc, could you update the link or upload your new code elsewhere ? I would love to run NoNonsense, but php7 is a must have for me.
Admire your style, btw.

append delete #33. qwikly

the link is dead, i forgot to mention

append delete #34. Kroc

I accidentally pasted my localhost link! Here's the correct link:

append delete #35. qwikly2

thank you for updating the link. i see now that i have not read the text correctly, you have updated remarkable, not the forum software (which is the one i actually wanted).
are there plans to update the NoNonsense forum software to php7 as well ?
i really love the concept of it, but i don't want to run php5 code.

append delete #36. Kroc

NNF already runs on PHP7 as this server is running on PHP7. No specific changes have been made to use PHP7 features, but it is compatible.

append delete #37. qwikly3

Ok, thanks for clarifying. I was trying to run nn and received a blank page when calling index.php, the error log showed:
PHP message: PHP fatal error: Uncaught Error: Class 'DOMDocument' not found in /path/to/forum/lib/domtemplate/domtemplate.php:46
I was assuming that this was due to old code, but it must be some wrong confog on my end then.

append delete #38. Kroc

GitHub perhaps did not include the sub-project; download the domtemplate.php file from here:

append delete #39. Martijn

If it is actually the class `DOMDocument` that is missing, you may have to check your installation of PHP. The DOM module should be included by default though.

If you have command line access on the server you can check which modules are installed by running `php -m`. You are looking for the one called `dom`. Note that libxml (and thus the xml module) are a requirement.

If you find that either the dom or xml module is lacking, depending on your system, your package manager may offer a package for `php-xml` that includes both.

append delete #40. Druid

Hello :} I'm a forum user, from time to time I open newsboat and I give a jump here.

I'm using php7, since I have most of the tools in php and I know more this language than javascript at this point I will also opt for a e-commerce that I know well; opencart.

I'm trying to have a host based on crux, configured in a way that users are registered on postgresql, and virtual servers of nginx serve pmwiki, flyspray, opencart, this forum, gitolite and other tools.

I'm in the process of updating to crux 3.5, many tools don't yet build and I'm updating other tools as I can. Don't expect great organization yet.

append delete #41. alain

Hi Kroc, I'm working on a small project, the {lambda way} project, a light framework built on a wiki, {lambda tank}, and a functional programming language, {lambda talk}: . I can build a page with a forum but it's far from being a true forum, it's nothing but a toy, without any security, not serious at all.
I wonder if your smart forum engine could be twinned with my project, and I wonder if lambdatalk could be useful as an alternative to the markup syntax.

Anyway, bravo for your work.

Best regards - Alain Marty

append delete #42. Kroc

Setup a work environment for Camen Design v4. New website will be PHP7 only to begin with, and probably PHP8 once that's available on my host. I'm moving from run-time generation to offline static generation as the whole 'online editing' thing never worked for me. I'm writing an article on the Psion to explain the new design goals etc.

append delete #43. Kroc

Yesterday I got some decent time to suss out the way forward. The current Camen Design code is so old it doesn't even use DOMTemplate! It glues together lots of small strings via some search and replace tags (my first templating system, as seen here I reconstructed an empty article page from the template pieces so that DOMTemplate can take over. Some of the template logic in v3 is pretty gnarly, so it's going to take a while to change it over to node manipulation; particularly one example where DOMTemplate falls over, it can't append content following an existing element, it can only replace the contents of an element wholesale.

Today, I took the PIII 800 MHz laptop, with the EPOC32 dev environment on it, out and did a little bit of programming for Paperclip, my text editor for Psion devices.

append delete #44. demo



(Leave this as-is, it’s a trap!)

There is no need to “register”, just enter the same name + password of your choice every time.

Pro tip: Use markup to add links, quotes and more.

Your friendly neighbourhood moderators: Kroc, Impressed, Martijn