Wonderdraft – first impressions

As a D&D Dungeon Master I occationally need to create maps, and I discovered Wonderdraft. I have tried it a bit and I will make notes in this post (and update as I learn) hoping it could be useful for other people thinking about getting Wonderdraft.

Initial productivity

I spent a few hours the first evening I got Wonderdraft and I produced two real maps for my D&D campaign. One is a town, and I think I need to learn more to make good town maps, but it is ok. The other one is a more black and white map with towns, paths, mountains, rivers and a few named places.

One feature that surprised me was that I can import a picture (a PNG scan of a map) and it makes a map of it. It does not get good, but at least you get the basics. If you have a map with coasts and forests and towns and you just want the proportions right this is useful.

I learnt a little later that you can rotate a symbol using they keys: . and , before placing it.

Performance

The Wonderdraft web page is quite clear that a powerful computer with a decent GPU is needed or recommended. I have tried a few different computers and reasonably small maps (1920×1280).

  • Painfully slow
    • Mac Book Pro Mid 2010
    • NUC 54250WYKH (4th generation i5), 2013 (Ubuntu)
  • Working fine
    • MacBook Air 2014
    • MacBook Air 2015
  • Working perfectly
    • NUC Hades Canyon NUC8i7HVK (8th gen i7), 2018 (Windows)

What I am saying here is that for my initial, not so large or complex maps, I am satisfied with the performance of 2014 computers and newer, running macOS and Windows: Wonderdraft was snappy and immediate. With the painfully slow machines there is a 1s latency on everything. But it works.

Map size matters much though! I tried some assets on the MacBook from 2010 and used 800×600 maps. Then performance was acceptable (although I had occational crashes).

Extra Assets

There is a community for extra free assets with Wonderdraft. I did things backwards, but I recommend you make it easy for yourself.

  • Click “community links” in the menu
  • Click “Mythkeeper”
  • Install Mythkeeper (macOS and Windows only)
  • Run Mythkeeper

I started working with manual downloads, manual unzip, manual placement of folders in my asset-folder, and Mythkeeper simplifies it all very much.

Chromebook (Acer R13) as developer computer

I got myself a Chromebook (Acer R13 with ARM CPU, because I like to make it difficult for myself) quite a while ago, and it has been a mixed experience.

Now, however, with Chrome OS 76, I am actually rather satisfied both the the Acer R13 and with Chrome OS and the things I want to do finally just work!

General Laptop Aspects

Thinking about my Acer R13 as a laptop, it is quite decent:

  • very good battery time (although it drains when left it sleeping for long)
  • very quick startup/shutdown
  • simple to use Google login and Google docs
  • display, keyboard and touchpad is fine, weight is low, it is silent
  • chrome OS works well
  • performance is acceptable (mostly web browsing)

Developer and productivity aspects

I do web development, using Node.js, Vue, git and a web browser (it is a quite simple and limited toolset). This now works very well.

  • “Linux (beta)” works out of the box for my purposes (it is now finally stable on R13).
  • lxterminal gets me a simple tabbed terminal application.
  • Chrome OS 76 comes with virtual desks (very convenient).
  • nodejs (for ARM8) works perfectly

A few things to note about the Linux environment

  • it runs in a container, you can run more than one if you want, but the default container is Debian stretch (9.9) which is all good for me
  • since it is a container, you don’t access it at “localhost” but rather an IP that you get running “hostname -I” (for web development purposes or admin-UI)
  • the files in your linux home directory are accessible directly from ChromeOS under “Linux Files”, if you want to open something in Chrome, use Ctrl+O and just browse normally (it just works, it is just simple)

Conclusions

If you need a decent laptop at a good price, and you want Linux on it, a Chromebook is a very realistic option.

Making sense of Forgotten Realms

A little while ago I wrote DM lost in Forgotten Realms. I have been thinking a bit more, and I even talked to my players (who thankfully are not into Forgotten Realms lore).

There are some problems with Forgotten Realms (or Faerûn, the continent where most things happen):

  1. It is very much a mix of everything (Kitchen Sink Setting), which makes it a place of little character (although, there are nice spots in Faerûn the big picture is confusing and/or makes little sense).
  2. There is very much magic, and many magic-users.
  3. There are very many deities, and they are rather active.
  4. Faerûn feels overloaded.
  5. The extreme events of Time of Troubles, Spellplague and Second Sundering are all very recent.
  6. Some people complain there are too many high-level NPCs.
  7. It is confusing with different source material for 2e/3e, 4e, 5e when things dramatically change.
  8. Do I want half-orcs to be common, and dragonborns and tieflings?

The good thing is that if you want some type of place to run your campaign, it is very likely that such a place exists in Faerûn. The bad thing is that when you start looking around (or just back a little in time) it probably gets very twisted compared to your expectations, like:

  • city of undead run by 60 liches
  • island is run by a vampire
  • another island is populated by lycantropes

This is not far away in Mordor. You find it most everywhere. You may argue that Forgotten Realms is big, and I can change what I don’t like… and that is what I intend to do.

The Dark Ages

This is just my idea of turning Forgotten Realms into something we like better in my group. I am just drawing out the primary ideas.

After Time of Troubles, Spellplague and Second Sundering things did not calm down. Instead both Good and Evil tried to dominate and the deities kept being active.

16th century was a century of war, death, fire and destruction throughout Faerûn, and in the end of it some major players were beginning to get enough of it, among them Lord Ao (the overgod). Lord Ao established some new principles and managed to have them enforced.

  1. The people(s) and beast(s) of Faerûn shall have Faerûn as their world, just as the deities have their worlds (planes).
  2. Silvanus (Oak Father – neutral god of nature), who did not participate in the century of war while much of Faerûn was burnt, is alone set to guard Faerûn, being neutral.
  3. Faerûn shall be dominated by wilderness.

The other deities mostly accepted. They were wounded, tired of war, imprisoned or not achieving their goals on Faerûn or elsewhere.

17th century, was a century of unusually little magic in Faerûn as many spellcasters were dead after the wars and the deites (including Mystra, deity of magic) were quite absent. Instead hard working mortals formed city states or smaller countries than had been seen before. Rangers started roaming the growing wilderness in the name of Silvanus, and druids settled around the lands.

18th century was the end of the Dark Ages of Faerûn. The newly born Faerûn is a beautiful wild mysterious place with scattered villages and towns inhabited by hardy, brave people.

Magic

Spellcasters are found across the lands. The old deities are rediscovered, as is arcane magic. Attitudes to magic vary, from hostile to friendly, and often curious.

Good and Evil

Lawful ambitious mortals are aspiring to form new empires in the present power vacuum, both good and evil, but the lands remain mostly wild and chaotic. Among the good there is some appreciation for the beauty, the wilderness and the relative peace under neutral Silvanus. The evil on the other hand see much potential and quite little resistance.

Recovery of civilization

The (low magic, nature oriented, somewhat) Moonshae Isles fell less into chaos than other lands. You find the isles not too different from what they were bofore Time of Troubles. Lycantropes, vampires have faded and Kazgoroth has not been seen in long, remaining the symbol of evil on the isles.

The heartlands (the Sword Coast to Cormanthor) saw great destruction and devastating wars during 16th century. However the cities of the heartlands were not all completely destroyed, some remained and some has been rebuilt. The heartlands is where hard working mortals have gathered to build new nations.

In the northwest, the coastal areas were not so damaged by the wars, and some settlements of good people remain.

The rest of Faerûn, the north, the east and the south, are very wild lands. There are of course settlements of good people, but nature dominates and evil is more common.

The truly far away lands (east of the deserts, south of Shaar) can be an enirely different story.

Using Resources

I shall be able to use most maps, and all lore is valid, just history. I shall also be able to cherry pick stuff (places, NPCs, adventures) from 2e-5e and just import it into my setting (without my group of players having any reason to complain).

The year is 1772 DR, and I think it will be great fun!

Everything should be simple…

Einstein said: “everything should be made as simple as possible, but not simpler”. I guess that could apply to my campaign world as well. Why would I not want a simple story and feeling that captures my campaign?

On the other hand I understand that for WotC, Forgotten Realms is complicated because they have very many different requirements on it (not the least to fit all current and past adventures and novels).

So maybe Forgotten Realms is good for WotC, but I can actually do better for myself.

Much ado about Nothing?

You may be well read about Forgotten Realms and think: “But that is how forgotten realms already is: mostly wilderness, mostly citystates, no dominant nations. You just got rid of interesting places and lore because you didn’t understand it, and you may regret that down the road when Tethyr och Calimshan would have been ideal for your ideas.”

And you may actually be right about that!

Dungeon Master lost in Forgotten Realms

This post could also have been called:

  • Forgotten Realms suck!
  • I hate Forgotten Realms
  • When and where should i set my Forgotten Realms campaign?

First, if you are new to D&D, starting with 5e, buying adventures, you will be alright! Everything is taken care of for you, just go with the flow.

Background

I played D&D 30 years ago. About 25 years ago I played AD&D 2e in Forgotten Realms. Now I am picking up D&D again, this time 5e, and I still have my Forgotten Realms 2e stuff. I create my own campaign and my own adventures so I just thought I needed to pick a date (year) and a place in Forgotten Realms and get started. Well, the internet is an amazing resource for a Dungeon Master, but the confusion is also so much bigger!

Why use Forgotten Realms at all?

I own some content for Forgotten Realms, maps and books. That is better than nothing (at least I want to think so). Drawing maps take time. And inventing deities is not my piece of cake. However, I realised that not even maps or deities are constant in Forgotten Realms, and I was confused.

The Short Version

Wizards of the Coast (who makes D&D), want the world (Forgotten Realms) to match the rules of their game. Fair enough! So when the rules change, the world changes, quite dramatically (!).

Dates of the Campaing Books/Sets for each [A]D&D version (I just copied this from somewhere, the important thing right now is not the details):

  • AD&D 1e: 1358.
  • AD&D 2e: 1368 (after Time of Troubles 1358)
  • D&D 3e: 1372
  • D&D 4e: 1479 (after Spellplague 1385)
  • D&D 5e: 1491 (after Second Sundering 1480)

These events (Time of Troubles, Spellplague, Second Sundering) are not minor or ordinary events. Thy are the kind of earth-shattering events that I’d prefer to have 2000-3000 years back (like the First Sundering).

I am not an expert (not even a novice) on Forgotten Realms Lore, but the idea here is that major changes and events happened in Forgotten Realms to match the rules of 2e, 4e and 5e. And, to simplify things a little, 5e mostly reset things to 2e (and the Spellplague was a mistake).

An example of a rules-change is the race Dragonborn, introduced in 4e and “justified” via the events of Spellplague. WotC could have pretended Dragonsborns always existed and that they were just never mentioned and there were never any rules for them. But WotC choose to create an event that explained why there were Dragonborns in 4e, but not before (and many other things).

How to get a grasp of the Lore?

I recommend the youtube series Forgotten Realms Lore by Jorphdan. Watch the first 20 episodes (!) and you will feel a lot more comfortable about a lot of things!

When to set a 5e campaign

Here are some options I came up with for when to set a 5e campaign in Forgotten Realms

  1. In the 2e-3e-era, like 1368-1375. If you dont have 2e-3e resources this probably makes little sense. And you will need to deal with cases where the rules don’t match the Lore (are there Dragonborns, and where do they come from)?
  2. In 1491 as is intended. The possible problem is that you have 100+ years of history that is very confusing and complex. Your PCs and NPCSs will have so many weird (recent) memories. This is not optimal with 2e Forgotten Realms resources.
  3. In 1491 as intended, pretending the Spellplague and the Sundering never happened. Both 2e,3e and 5e resources should be quite useful, as long as you have a basic understanding of what you are leaving out.
  4. Later, like 1550-1600, when the Second Sundering has faded from recent memory and things have stabilized (if you like that, as a DM). This is not optimal with any official Forgotten Realms resources.
  5. Any other time that you find particularly interesting!
  6. Use Alternative Forgotten Realms, for a more low level setting.
  7. Just use the maps, and cherry-pick only things that you specifically need.
  8. I am choosing to make a few hundred years of Dark Age first.

I was thinking to choose (1), since I have 2e resources. But it is not very easy either, becuase for example the article on Moonshae in the Wiki says: “This article is incomplete.It is missing 1e and 2e information, including a whole sourcebook worth of pre-Spellplague lore.

Conclusion

Forgotten Realms is a double edged resource. And the events from 1350 to 1480 (just before 5e takes place) are extreme enough that it would be better if they were serveral thousand years apart, and several thousand years ago.

Still, I think the Youtube videos I linked to help to get you onboard, and if you make a few decisions that work for your campaing, you should be quite fine. Remember that there is nothing wrong in changing whatever you want!

Buying Dungeons & Dragons?

I used to play a lot of roleplaying games, that was 20 years ago. I just decided to start it again, and I realised there are so many options of Dungeons and Dragons that I was not aware of.

I will sammarize what I would have wanted to know when I decided to start over.

These are different versions of Dungeons & Dragons that you may have, find used or consider buying:

  • D&D 5e (5th edition)
    • Starter Set
    • Good old books (Core Rulebook Gift Set)
    • Digital edition
  • D&D 4e
  • D&D 3.5e
  • D&D 3e
  • Advanced D&D 2e
  • Advanced D&D
  • D&D

And then there is Pathfinder.

To be clear, to play casually, occationally, with a few friends or your children, any version will work! If you have what is needed to play (usually Players Handbook, Dungeon Masters Guide and Monster Manual, or a starter set) you can have great fun for many hours!

If you and your friends/family are new to roleplaying and D&D, I guess getting the Starter Set is excellent!

However, it may be more complicated. I have the original D&D, and AD&D 2e that we played very much. And then I bought 3.0, which I never played. To play casually with a small group of friends, I ended up buying the 5e Core Rulebook Gift Set. So there are two questions to ask

  1. Why did I not get a digital verson?
  2. Why, if all versions are fine for casual play, did I not use one of the three versions I already owned?

D&D 5e Digital Version

The answer to the first question is that I was not aware of it (the digital version on dndbeyond.com, and perhaps other sites/services), I am old and stupid enough to make the mistake of not even considering that a digital option was available. I don’t regret getting the physical Gift Box. But I think it is good to be aware of the digital option.

DNDBeyond offers the core books for about USD 30 each in a digital version (marginally cheaper than a print). You can then add a Master subscription for USD 6/month. As DM, create a Campaign: Your players can now sign up for free, join your campaign and they can create their Characters online. You can print, share, level up and the entire thing is very nice. DNDBeyond is available for free, but if you dont pay

  • USD 30 for Players Handbook, you cant use many Feats, Backgrounds (and possibly other things) from Players Handbook. And its not like you can just easily type it in yourself, it is really missing in dropdowns.
  • USD 6/month, your players will need their own DNDBeyond digital edition of Players Handook.

It is fine not to use DNDBeyond! But it is not quite fine that your players start using it, and they like it (first), but then there is major confusion. It is not quite fine to pay for the game twice, if that was not what you wanted to do in the first place.

The background is that DNDBeyond is not Wizards of the Coast (who makes D&D), it is another company, who licenses stuff from WotC. So you don’t get a voucher or a code or anthing with your books. I wish I knew this before I got the books!

Good Old Versions

I realised that as a DM I will spend many hours preparing sessions with my players. And playing together is quality time with friends and it should be good. I simply decided that 5e was the best version of D&D, and that I can afford it.

When it comes to the old rejected versions, I found that:

D&D (first edition, red/blue boxes) is a very old game with some aspects I really did not like when giving it a second thought. Halflings can only progress to level 8, end of it. And the basic (1-3) and expert (4-14) was not particularly practical when starting over. My stuff was in bad shape too. And the books where not beautifully illustrated as later editions.

AD&D 2nd edition is an excellent game, but for some reason, after many years, I bought third edition. One thing that is not good with 2nd edition (and older) is that spellcasters are very weak in the beginning (like 1 spell per day). See my list below of things I like with 5e. It is arguably a more refined and well-designed game than 2e.

D&D 3rd edition received bad feedback and was quite soon updated to 3.5, which was a bugfix. I own no Dungeon Master Screen and when I looked for one online it was (almost) half the price of the entire 5.0 giftbox. It really fealt a bit awkward to start buying stuff for (the hated) 3.0. The good thing with 3.0/3.5 was that it was quite complex, detailed and allowed for customization. This was also its downfall: too much customization lead to too much imbalance (I have read). If I owned the Dungeon Masters Screen of 3.0, I might actually just have sticked with it, and never learnt or bothered about why it sucked. I think if you want a very epic campaign (much magic, powerful Characters) and you like complexity (a step towards Rolemaster), 3e (or 4e/Pathfinder) is perhaps the best for you.

A&D 4e and Pathfinder are games I did not own, so it made no sense to buy them instead of 5e.

D&D 5e

To me it seems D&D 5e is a good balance between AD&D 2e and D&D 3/3.5.

  • I like that spellcasters have Cantrips and more spells from the beginning (compared to 2e)
  • I like the idea of simple/martial weapons, and small, medium, light, versatile, finesse weapons, and I understand why this was made less complex than in 3.5
  • I like the advantage/disadvantage concept
  • I like that all spells are written for “any class”, and that just the spell lists are different (so the spells are effecively reused)
  • I like the way sorcerors, wizards and warlocks adminstrate their spells differently, and that players can choose “their style”
  • I like that armors and weapons are not so “forbidden” for the wrong class (proficiency is smart)
  • I like that saving throws are simplified to be based on ability (not the arbitrary poison, petrification and so on in older versions)
  • I like that all classes level equally fast (at the same XP levels)
  • I like backgrounds and feats (missing in 2e, and too much in 3e)
  • I like that skills are simpified – and made more relevant – compared to 2e (and that the list is short)
  • The concept with Short and Long rests, and that many things depend on it, is very smart (although, you can argue whether they should be longer, but that is easily up to you as DM)

My players like 5e too! And they like DNDBeyond. Perhaps we will pay to use it one day. But I guess… as DM I have unlimited power when it comes to the world, monsters, NPCs and even the rules. But when it comes to DNDBeyond – I have no power there.

Method to assign abilities in D&D

A key part or creating a character in any roleplaying game is to roll (buy or assign) abilities (or stats, or whatever they are called). In D&D there are 6 of them, and the basic idea is that you roll 3d6 for each and get 6 values in the range [3,18].

Abilities follow the Character forever so they do matter. Even if you are not into Character optimization, it is often more fun if your Character does not suck and if there is a level field.

Rolling

There are different ways to roll 3d6 in a way that it gives decent results. D&D 5e suggests rolling 4 dice ignoring the worst (and it is a good method). The problem with rolling is that given any method there are better and worse outcomes. And there are outcomes that are more or less suitable for a given class (or type of Character). In the end, if the player is not happy he may just decide to start over, and nobody wants unhappy players before the game even starts.

Buying / assigning

In order to avoid endless rerolls, and that some Characters genuinely and forever are better or worse from day 1, there are many ways to buy/assign stats. D&D 5e suggests two methods, both allowing abilities in the range [8,15]. To me, that is a bit dull.

I have seen other games or methods where characters end up with 18,18,18,5,3,3 and such stats. That is quite ridiculous.

Proposed Method

I suggest you assign values from a given standard range, and then apply “buffs” to them (5, or at your DMs choice).

Standard value   7    9   11   12   14   16
Modifier        -2   -1    0   +1   +2   +3
Buff            ---- +2 ----   ----- +1 ------

What this means is that 1 buff (of 5) can raise the one of the low values (7,9,11) two steps, which gives it a better modifier. However, to get a better modifier with one of the higher values you need two buffs. Also, getting 18 is possible, but only for one single ability.

I think it is reasonable that Characters can have som bad abilities and some strong abilities, and this enables modifiers from -2 to +4.

Compared averages

Different methods have different averages.

   3d6                     10.5
   4d6 (ignore worst)      12.2
   2d6+6                   13.0
   D&D 5e standard range   12.0
   Proposed Method        ~12.7  (12.5 with 4 buffs)

How to (not) set up a RPi V3 server

A few months ago I set up a server running Archlinux on a RPi V3 using a 2.5′ USB drive for root. It is now dead.

One day I innocently did “pacman -Suy” as usual, and it didn’t restart. After that it was very unstable for days until it – the RPi V3 itself – appears broken. That is, I get very random errors, like different kernel panics, trying to boot it. I let a friend try to boot LibreELEC on it (his power, SD-card, TV) and it displayed the 4-color-splash-screen and the little lightning indicating power problem.

There are different ways to connect a USB HDD to a RPi.

  1. Let the RPi power the USB drive.
    (it works sometimes, you can try max_usb_current=1 in config.txt)
  2. Connect the USB drive to a “usb extra power cable” (google it) to take the load off the RPi
  3. Connect the USB drive to a USB hub that has external power
    (optionally, also power the RPi from the same USB hub)

With my unfortunate broken RPi V3, I used method (1) for a hard drive rated at 1.0A (the USB<->SATA-chip probably consumes some power as well). I did use a proper original RPi power supply though, but I believe I somehow stressed some component of the RPi V3 continously taking more than 1.0A from a single USB port.

Findings using USB hub to power RPi + HDD

I have an old USB Hub with a 2.0A rated power supply. I now use it as the only power source for a RPi + USB HDD (The USB Hub and RPi are connected both ways in a loop).

  • RPi V2 + 1.0A 1TB HDD: frequent under-voltage warnings
  • RPi V1 + 0.6A 320GB HDD: works perfectly

So, that particular USB Hub will drive my RPi V1, and I will find another solution for the RPi V2.

Conclusion

I have written several articles about using RPi as a server.

My sober and responsible conclusion must be: don’t (use Raspberry Pi for production Linux servers). It is simply not worth it. First it is not so cheap as you think when you have bought all cables, adapters, cases and chargers. Second, your time my not be for free. Third, performance is bad. Forth, stability is limited and don’t expect very long service time.

The cheapest NUC setup is a more rational choice.

I also believe a QNAP or Synology with virtualisation technology could be a better choice than running (multiple) RPi.

Nevertheless, I never learn, and I am now replacing my broken RPi V3 with two old Raspberry Pi (V1 + V2). I mostly use them for Syncthing and backup, I guess two is better than one, and I have unused USB Harddrives.

Archlinux vs Raspbian

I have come to like Archlinux for RPi. However, the frequent and relatively large upgrades that come with a rolling distribution feels somewhat unoptimal for a low-performance system living on an SD-card.

This time, I am back with Raspbian, because

  1. Raspbian is now based on Debian 10 (buster) right from start (I believe the Debian 9 release of Raspbian was kind of late)
  2. There is simple minimal Raspbian Buster Lite image suitable for servers or headless systems
  3. Creating an empty file named “ssh” in /boot before starting the first time lets you ssh into the brand new raspbian system, so you can easily install with neither keyboard/display or serial

I simply have nothing to complain about with Raspbian anymore.

Dark Mode?

With macOS Mojave Apple introduced Dark Mode. Some applictions support it. I was mildly sceptical, thinking it was just some kind of fashion statement.

But there is an argument that goes like: “if I am going to stare into a lamp all day, I want as much of it to be as dark as possible”. It makes some sense. You would not want to stare into a lamp in the first place, why then let your display default to white everywhere?

There is also an explanation to why we ended up here: designers are educated for printed designs, which is usually on white paper, thus they prefer white background for computers as well, for aesthetic reasons. Everyone is not a designer, but we all mimic good design.

And you probably know that back the old days computer displays were black with green text. So it is plausible that people who want to make computers more modern and appealing prefer white displays, while people who are more nerdy or old fashioned like darkness.

What I have written so far may seem logical. But it does not matter. What matters is (from the perspective of a programmer):

  1. What is truly more ergonomical, to you?
  2. Is it enough to stick with either light or dark mode? Or should you switch depending on your surrounding environment?
  3. Can you get a consistent good dark mode experience, otherwise it is mostly annoying and better avoided entirely?
  4. How to design your product so it appeals to your customers?

Switching your OS to a dark mode is easy. If you are using XCode, Photoshop or some other product that supports dark mode, that is also easy. Terminal applications (frequently used by programmers) are highly customizable and has often never left dark mode in the first place.

How about the browser? Well, not the browser itself, but the web pages and web applications it delivers to you. Well, for Firefox and Chrome there is a plugin called “Dark Reader”. It works reasonably well for me. Read the FAQ/manual when you install it!

A problem is that when my eyes are used to bright content, a dark page with white text is no problem. But when I am used to a dark display and suddenly the entire display turns white for some reason, it is unpleasant.

As a developer I can of course wonder: how do we want web pages to be built so they work nicely both in light and dark mode?

  1. Each web page has a dark mode (will never happen)?
  2. Web pages should follow good light mode practices, so they look good when using a dark mode extension?
  3. Should any web pages be coded dark?

And as a developer, if my OS/Desktop, development tools, terminal and web browser is set to dark mode… what about the web application I am currently developing? I can’t possibly write CSS and whenever I refresh the result is passed through a black-box-dark-mode filter, that would be a very awkward development experience. So whenever I switch to the (web) application I am developing, the display will turn annoyingly white.

On Contrast

I had the idea that high contrast is easier on the eye. But I realise it is not. Absolutely white text on absolutely black background is quite hard on my eyes. However, ligth grey text on dark grey background is quite comfortable. Apple Terminal comes with a few different (color) profiles. Many of them are surprisingly colorful. I imagine I don’t want the cognitive input that colors give me, it distracts my mind, but perhaps I am wrong about it.

Xcode findings

As I start experimenting with Xcode I realise that it is a tricky beast.

Xcode 10.2.1

I realised Xcode 10.2.1 used 100%+ CPU. I fixed that by reinstalling it completely.

Reainstalling Xcode I had managed to mess upp the simulators.
Error: Unable to boot device because it cannot be located on disk
Solution: Run in Terminal: xcrun simctl erase all

Xcode 7.3.1

Xcode 7.3.1 Fails to start on macOS 10.14.5.

A first iOS app with Xcode 10.2.1

Ten years too late I decided to look into iOS development. It is too late, because the Klondyke era of becoming a millionaire on simple apps is probably over. On the other hand Swift has arrived and reached version 5 so it should be a good time to get started.

What I have is

  • Mac OS 10.14.5
  • Xcode 10.2.1
  • iPhone 6s, iOS 12.2 to deploy to
  • iPad 3, iOS 9.3.5 (obsolete by Apple standard)
  • 20 years of programming experience
  • Very limited experience with Swift 5
  • No experience with Xcode, Objective-C or macOS development

I am mostly a backend-programmer, who have to do HTML/CSS/JavaScript as well. Xcode is creepy. I have thought about a few appoaches

  1. Buying a book (but a challenge to find a book with relevant complexity, mix of tutorial/reference, for Xcode 10 / Swift 5)
  2. Apples obsolete tutorial (but I was put off by the fact that it is written for Swift 3)
  3. Just playing around with Xcode (just kidding – that is too scary)
  4. Some online course, like Udemy (but it is not my way)
  5. A simple trumpet tutorial

I went for (5). It was good, because in a few hours it took me all the way from starting Xcode to running something on my iPhone.

Building for the simulator and running works. And I managed to deploy to my iPhone (it is actually quite self explanatory: connect the iPhone, select it as destination in Xcode, and later in the iPhone under settings -> general -> device management you allow the app to run).

The short version is that it all went well! But…

Obsolete iPad 3

I failed to build for my obsolete iPad 3. What happens is that all is fine, and then I come to this screen:

I type my password, and immediately it (building/signing) “Failed with exit code 1”. I can imagine two options right away

  1. I need a real developer license (not Personal Team) to do this
  2. I need an older version of Xcode to build for 9.3
    (and in that case I might need to use older project format, and perhaps not even Swift 5, I don’t know)
  3. I got some indication that with a Personal (free) developer license I can only deploy to a single test device, that would perhaps not include old devices

It actually only builds for Deployment target 12.2, no older versions in the list.

Update: Page 60 of the free Apple Book “App Development With Swift” tells clearly that a free account only supports a single device. So it is clearly a waste of time to ignore that restriction and try to deploy to my iPad.

Xcode

I have spent a few hours with this now. I wrote 4 lines of code. I have ctrl-clicked on things, dragged-and-dropped-things, added properties to things, added resources, opened panels and used shortcuts. If you are used to things like Visual Studio it will probably feel somewhat familiar. But for me, who mostly use Vim, it is very scary.

Update: Xcode turned out to use 100%+ CPU constantly. I completely removed it and reinstalled it, and it seemed to help.

Computer Requirements / Performance

I did these experiments on a MacBook Pro 6,2 (that officially does not support macOS 10.14). It has an SSD drive and 8GB or RAM. Building takes almost 10 seconds, but starting the simulator and loading the app takes almost a minute. The computer clearly gets warm. Neither Xcode nor the simulator consumes much memory (Activity Monitory says about 200Mb each). Obviously, if you run the simulator much in your daily work, a faster CPU is worth it.

I think my 1440×900 display may be the biggest problem if I want to do anything real thought.

Conclusion

I have mixed feelings, it could be worse and better. I clearly need to find a way to be quickly guided through building different types of apps. I think I need a few days being guided through Xcode until both Xcode and the different project artifacts feel somewhat natural.

I have a simple app I want to build for myself, but right now it feels much to intimidating.

I found that Apple has released a free online book (available in their Books application) called App Development with Swift. That seems to be a good option.