Tag name:self.note

Going static (Dec 2018)

For a variety of reasons I reckon it's time to convert the public facing version of my website to go to a static version. The reasons include:

  • After the suspension of En Garde there's no dynamic input to the site other than  my own (When I restart that campaign I will need to modify the hosting mechanism to provide the form processing - I'll cross that bridge when I get to it)
  • It'll make the site more secure (no WordPress admin on the public version of the site)
  • No more annoying emails from my web host encouraging me to upgrade from a shared host to a VPS due to reaching memory limits (presumably due to the wordfence plugin).

I'm using the Simply Static though I did have to handle some quirks due to the private server sharing the same machine as my fossil repositories and my popmail spam filter.

It should be noted that this post is also part of an experiment to see how the workflow of updating my website is going to go!

DDO Quest Notes

2nd July 2017 / Comments Off on DDO Quest Notes

Reincarnation Quest Notes

Since there seem to be many quests that I'm skipping as I level my reincarnate character, together with some quests where I'm going to need reminders, I've created this table of notes to act as a list of reminders to myself. Quests shown in bold are quests you might have avoided that are worthy of consideration (but can be skipped if you're not in desperate need of XP). Quests not in bold are probably worth not even trying, depending on your mood, character build and luck.

Note that all the quests from the recent packs (Ravenloft and White Plume Mountain) are all eminently playable!

Quest LevelQuest NameNotes
2Stealthy RepossessionCannot kill more than 5 Kobold Prophets (other kobolds are OK). Sadly very hard even for stealthy types to avoid being seen. If you do try this leave ANY "guard" items at home so that that the prophets don't kill themselves on your armour.
5Tomb of the Burning HeartRequires lots of characters (you need to have four characters/summoned mobs at four different pressure pads simultaneously).
5Archer Point DefenseDefend the outpost for 12½ minutes
6Gladewatch Outpost DefenseDefend the output for 15 minutes and keep the commander akive
6The ChronoscopeRaid
6The Bloody CryptGated behind Tomb of the Burning Heart
7Temple of Elemental Evil Pt.1Very long quest
7Temple of Elemental Evil Pt.2Very long quest
8The Xorian CipherLots of Characters needed (you need to have four characters/summoned mobs at four different pressure pads simultaneously).
8Tomb of the Shadow LordApparently can be done with a hireling (see wiki) - but I've not tried this yet.
8Tomb of the Shadow KingReputed to be a very tough quest, but Apparently can be done with a hireling (see wiki) - I've not tried this yet.
8Path to MadnessShort Quest (and low XP reward) that leads to The Xorian Cipher
8Faithful DepartedNeed to keep at least two of the venerated alive. If you attempt this, remove any effects/items you have that have any AOE effects.
9The Shadow CryptGated by Tomb of the Shadow Lord and Tomb of the Shadow King
9The Giant LieutenantsNot listed by the Adventure Compendium. In the Threnal Wilderness Area.
9The Giants' LairNot listed by the Adventure Compendium. In the Threnal Wilderness Area.
10The Giants' SuppliesNot listed by the Adventure Compendium. In the Threnal Wilderness Area.
10The Threnal ArenaNot listed by the Adventure Compendium. In the Threnal Wilderness Area. Requires the Ceremonial Blade from the Western Excavation Quest Chain.
10The Vault of NightRaid
10Tempest SpineRaid
10Plane of NightRaid
11Twilight ForgeRaid
11From Beyond the GraveVery Hard to Solo - need 30 seconds undamaged to light a pyre - and there are four pyres to light!
11Tomb of the ForbiddenCan be solo'ed - see wiki page
11Tomb of the TormentedVery Long Quest. Takes over an hour to guide the rats through the mazes, Rogue very useful to simplify the mazes. Expect to sacrifice rats.
12Against the Demon QueenThis is a pre-raid quest. Use the wiki to determine which order to investigate the rooms. Purple named boss at the end.
12Zawabi's RevengeRaid
12The Titan AwakesRaid
14The Reaver's FateRaid
14Madstone CraterVery Hard to Solo - Mobs around the third crystal respawn very quickly.
14Inferno of the DamnedNeed AoE fire and cold effect spells or items (e.g. wands)
14Gianthold Tor

Gated by The Prison of the Planes, A Cabal for One and Madstone Crater (this one is the tricky one - see above). Also requires hand-in of ancient relics (3 of each sort)

Quest itself is short - post quest optionals have three dragon/giant pairs to fight. Each half of the pair must die within eight seconds of the other.

14Ghosts of PerditionTwo boss wheeps enroute to the boss. These wheeps must die within 48 seconds of each other. Final boss is a Boss Beholder who does massive stat damage.
14The CrucibleTough maze to negotiate. Tough Timed Run area to negotiate. Collapsing floor area to negotiate (or rerun lots of times 🙂 ). On return to the top of the maze lots and lots of spell casters.
15Search and RescueVery tough fights at level - particularly against the Drow. Hireling Cleric will probably run out of spell points (and then you will run out of hit points 🙂 )
15To Curse the SkyBoss fight is tough (but nowhere near impossible). I suggest buffing with potions etc before the fight and concentrating on the boss.
15Litany of the DeadGated behind Inferno of the Damned and Ghosts of Perdition. Also needs a completed Sigil Frame.
15Third Time's a CharmSimilar setup to Search and Rescue, but the fights are marginally easier to handle. Do NOT charge into fights, you need to be tactical. Note that you need to complete this quest to gain access to the last quest in the chain.
16Let Sleeping Dust LieDo not allow more than four Crimson Foot Spiders to die once you've picked up the first Journal. Hard to do since the enemy spell casters can injure the spiders while you're trying to avoid hitting them. Can be done if you're (a) careful, (b) don't have guard or similar items equipped and (c) be lucky. Not recommended unless you need the Shavarath Stone of Strategy.
16Mask of DeceptionDon't summon your hireling until you've done all the optionals you can - then return to the beginning and summon there (or park the hireling there and teleport him in as necessary). Make sure you disarm the traps before delving into the last rooms (behind the door next to the tasty ham). Expect an enormous fight once you're spotted there unless you were able to use bluff/diplomacy/intimidate the arms expert in the first room. Be as tactical as possible to reduce the number of ranged/magic-users who can get involved at the same time. I got an orange dungeon alert on this one.

Links are to the relevant page in the DDO wiki.

Last updated: May 6, 2019 at 11:06 am

10 Jul 2017
Added To Curse the Sky
13 Jul 2017
Added Litany of the Dead
21 Jul 2017
Added Third Time's a Charm
22 Jul 2017
Added Let Sleeping Dust Lie
26 Jul 2017
Added Mask of Deception
30 Sep 2017
Fixed a couple of word errors
05 May 2019
Add Faithful Departed

Sleeping until top of the minute (Jun 2017)

I recently wanted my bash script (running on Ubuntu) to sleep until the top of the minute. The suggested code snippet from goggling is:

sleep $((60 - $(date +%S) ))

This works well, unless the current seconds count is 08 or 09. Bash interprets numbers starting with 0 as octal and 08 (and 09) are not valid octal numbers. I fixed this in my script as follows:

sleep $((160 - 1$(date +%S) ))

Setting up ubuntu (Apr 2017)

Since I'm in the progress of setting up an Ubuntu machine on another older machine as a server I want to record my steps...

All based on Ubuntu 16.04.2 LTS

  1. To ensure latest level of Ubuntu:
    1. sudo apt-get update
    2. sudo apt-get dist-upgrade
  2. To select 2D graphic effects instead of 3D:
    1. Add the older UI via:

      sudo apt-get install gnome-session-flashback

    2. logout, and then in the login window, click on the Ubuntu logo next to your user name and select "GNOME Flashback (Metacity)".
  3. Modify Brightness and Lock to adjust the screen saver timeouts

Maplin's Touch LCD Shield for Arduino (Sept 2016)

I've been playing around with Maplin's Touch LCD Shield. It's not a bad device (it does seem to be a little slow, but I suspect that's mostly down to the library being used to drive it. That said, I did take a while to get it working since there's not a lot of documentation for it and I notice that I'm not the only one who had problems. So partially as a reminder to myself (and partially to make this visible to search engines) there's what I had to do.

  1. Download the correct library from linkshield's wiki. I eventually downloaded the v2 library.
  2. Copy the example program (again from the wiki).
  3. Fix up the compile errors in that example program - I guess the library was updated AFTER the example:
    1. Remove the declaration of TS_MINX, TS_MAXX, TS_MINY, TS_MAXY (the library has these as #define's and the compiler gets quite confused.)
    2. Changed the test p.z > ts.pressureThreshold to ts.isTouching()  (The library doesn't have a pressThreshold field and the point class doesn't have a z field. On the other hand, the library does have the isTouching method!)
    3. Changed the initTouchScreenParameters method to initialise a touchscreen via TouchScreen(XP, YP, XM, YM) and deleted the setting of TS_MINX, TS_MAXX, TS_MINY, TS_MAXY (again the compiler gets quite confused).

I was then able to run the demo, although the touch output seemed to be completely reversed, so I edited my library header file to switch the values of TS_MIN* with TS_MAX*. This seemed to fix the problem.

I've, for the time being at least, used it to act as a monitor for my Thinkpad that runs my linux server (that is, I got the linux server to talk to it!)

Recovering from an Oops! Backup rollback error (Feb 2016)

After a problem with coretemp that hard crashed my CPU (at least that's what the symptom looked it), on the subsequent reboot, Oops! Backup reported that it attempted to rollback the backup that was in progress at the time. Sadly the rollback failed and left sufficient damage to prevent backups from proceeding. To be fair to Oops! Backup, to fully prevent this would require write-ahead buffering to be disabled (it's enabled by default on windows systems as for most consumer system the lost of performance is considered too expensive.

I recovered from the problem with the aid of a luckily quite recent 2nd backup. My steps were:

  1. Exit the existing Oops! Backup instance
  2. Move the existing backup to a safer place (I should have used the windows "robocopy" command from the beginning rather than the GUI. Robocopy can cope with long path names and deep directory structures and is faster than the GUI.
  3. Copy the 2nd backup to where the existing backup had been
  4. Start Oops! Backup and run a backup. This correctly recognised that plenty of files needed to be backed up.

This does mean that I've lost a couple of days of history - but, for me, the only ones that mattered are the changes to my wordpress plugins and those are already under change management via fossil.

running popfile as a daemon process (Feb 2016)

This is just a note to myself in case I need it 🙂

To run popfile as a daemon process on Ubuntu. I did the following:

  1. Created a popfile user and home directory and gave it a copy of the popfile executables and copied across its data into /var/popfile.
  2. Created a /etc/init.d/popfile file
  3. Issued
    sudo /etc/init.d/popfile start

It's worth noting that popfile has data in /var/lib/popfile when it comes to backing it up. When restoring/transferring these files I also needed to ensure that the popfile userid owns these files.

running fossil as a daemon process (Feb 2016)

This is just a note to myself in case I need it 🙂

To run fossil as a daemon process on Ubuntu. I did the following:

  1. Created a fossil user and home directory and gave it a copy of the fossil executable and the website fossil file
  2. Created a fossil/etc/init.d/fossil file
  3. Issued
    sudo /etc/init.d/fossil start
  4. Run sudo update-rc.d fossil defaults to get the init.d script run at system start.

This /etc/init.d/fossil runs multiple fossils.