First Older Archive Newer Latest

29 Nov 2020 21:58 #background#game Permalink
Her Radiance Alex IX, Empress of Ten Thousand Suns, sits on the Throne of Jewels in the city of Grandson in orbit around the star Centrum, waiting for your answer.
Not personally, of course. The Empress of Ten Thousand Suns is a busy individual and doesn't concern herself directly with the appointment of sub-sector governors. But the courier from the Imperial Civil Service (Department of Stellar Management) is watching you impatiently.
You read the message again. Stripped of the formal (and archaic) language it's a job offer. Taxes in the Green-Delta-Six sub-sector are below requirements, and The Empress (well, someone with contacts in the ICS) wants you to take control and fix it.
You'll initially have control over the governments and resources of four systems, including two intersystem freighters. It's up to you how you gather the Imperial taxes.
You can direct investment into researching more efficient manufacturing techniques. You can bring new systems into the Empire. You can even try raiding your neighbors stockpiles for resources. The Empress just demands two things. Pay the tax, and keep the peace.
If you do well, you will be promoted to sector governor, or even higher. The fact that the message (as the courier gleefully told you) is written on the skin of the previous office holder gives you an indication of the price of failure.
Well? Do you want to gamble everything for the chance of untold riches and the favour of the Emperess?

29 Nov 2020 21:40 #game#planning Permalink
I've built the core engine of a real time strategy game. What's next?

* Ships
I think the main player interaction is going to be be writing instructions for ship autopilots. Things like "go to planet x, pick up 10k units of gold, fly to planet y and unload, repeat", although I want the ships to be able to make choices based on market conditions.

* Market
That last point implies the existence of a market. Eve does it well, with a big range of player made goods, which implies:

* Manufacturing/Tech tree
Not sure if the player will need to get recipies, but I'd like a big tree (graph, ideally) of make a to make b to make c.

* Sinks
Need to stop the player from just building huge stockpiles of stuff. Tax is always fun ("The Empress demands you pay x credits per citizen" where x is just a little to high. Let one planet get rowdy enough that a black market develops...)

* External threat
Need to balance growth with security. Pirates are fun, but they're more of an internal problem. Neighboring regions getting pushy is potentially good ("Your military buildup is concerning the Empress and she demands an explanation."). Other ideas: aliens (obviously), grey goo, plague, religion (those three are mechanically similar)

* Next steps
Build a small universe. Three or four systems, fairly balanced. Get basic ships working, and get some UI ideas roughed out.
Think about resources, industries, and recipies. Systems should either be self-sufficient with a small surplus, or able to generate a useful surplus with a chunk of investment.
Think about the theme/background. Get more of it written down.

21 Nov 2020 10:38 Permalink

Ptah - Disks:

I've got four disks in the machine, two 2.7Tb HDD, two SSD (one 230Gb and one 160Gb).

/dev/sdd1 (2.7Tb HDD) is the Dr Who drive, all allocated
/dev/sdc2 (2.7Tb HDD) is the media drive, with my home directory, and the storage for VMs. About 1Tb allocated.

/dev/sda3 (230Gb SSD) is hosting the current root (60G). /dev/sda has also got /boot and /boot/efi.
/dev/sdb1 (160Gb SSD) is currently laying fallow.


1) Check that I can run a DHCP server separate from the virgin box.
2) Build a new root for ptah around that and VM hosting
3) Build a samba domain controller VM
4) Build a deploy test VM - There's no point in this now that nuit is holding backups.
5) Buy more storage on nuit.

I can write a browser extension that has access to my bookmarks, so I can strip mine then and upload them to the database. Great, but so what?
* Archive/Backup. Load in old bookmark files, do a bit of de-duping, and voila.
* "Link of the day", pulling links at random out of the archive. Note that link rot has probably killed many if not most, which leads to:
* Automated link checking. Periodically try to load all the bookmarks and look for 404s.
* Link transfer. Rather than mailing links to work, just bookmark pages and check here when I get in.

Writing the extension looks easy enough. I was hoping to get away without a UI, but I'll need at least an "upload" button for after I've imported an old file. Other than that, there is an onnewbookmark callback I can hook into.

I'll need at least one db table - user id, title, url, added at, last checked?, last status? - and I'll probably spilt contact attempts into their own table.

Weather widget is done, or at least for v1. Might need to shuffle the rows around a bit (to code, temp, rain, cloud) so the fields that I actually care about are at the top, and I should probably run through the code and tidy/document.

Otherwise, v2 feature requests so far:
* History (at least as far as I've recorded it)
* History of forecasts for any given time (which is mostly a display problem)
* Sun/moon rise/set, moon phase
* Using the 'complete' data, not just 'compact'. Complete has cloud layers, temperature range, rain percentages, which are all instesting information

Ah, well. Next project: Bookmark syncing.

31 Aug 2020 19:51 #progress#website Permalink
Google photo download service is done and integerated into the (new) file upload/image gallery.
I want to move some of the code around to reorganise the projects (specifically, I don't think Google rates it's own project, it can live in Root), but the functionallity works well. I've added a table to the DB that links the Google ID for a photo to the DB ID for the photo, so I can get a list of photos from Google and compare it to my known (and downloaded) list, and download any new photos.
It's not on a timer yet, but that's theoretically easy to add. On the other hand, I don't take that many photos.

I've updated the formatting for the weather widget on my homepage, and I'm quite a lot happier. I'm now showing all the 1 hour data availible, but in a way that allows me to scroll on a small screen (theoretically, I've tested it but not uploaded it yet). This is due to the magic of "position: sticky".

"position: sticky" (sticky from here on in) is a CSS property that tells the tagged element to "stick" to the edge of it's parent when the content inside the parent scrolls. This makes implementing e.g. fixed table headers trivial. I've added it (roughly) to the main website layout, but the best place to see it is the image gallery (which is a shame, because that's not public yet).

* Forward (with/without attachments)
* Satisfy myself that the IMAP/SMTP setup is secure and stable
* Sieve, to filter spam (and maybe a general rules editor)
* Get Husband's signoff on his version of the CSS
* Use it enough to find any other rough edges (This is the irritating one, but I might be able to setup some ssh tunnels from nuit to geb to help)
* Rebuild my interface round sticky

Website general
* Tidy the top menu (move page menus out of the top menu)

* Basic photo editor (resize, rotate, crop. I've got some kind of half-arsed idea about stringing commands together, but it's not really complete)
* Tags
* Descriptions
* Add a "Sync with google" button

* Aside/Footnotes
* Optional titles?
* Redo the archive/main interface with sticky
* Add a "Load more entries" button that pulls the next n entries (JavaScript)

One of the many ongoing conversations between Husband and me is about free will, and if we've got it.
Roughly, it goes something like this: There is no material difference betwen, say, rocks and people. Rocks don't have free will, therefore people don't have free will. QED.
Since we've had this discussion several times we're both aware of at least a couple of objections. First, it really feels like I've got free will, and second, how do we know that rocks don't have free will? (Aside: "Maybe rocks are really relaxed and they just tense up when we touch them")
This evening I've had a new thought. Reviewing the evidence ("It really feels like I've got free will", and "No-one has demonstrated a material basis for free will") suggests another approach to the problem is that people (and maybe rocks) have free will, but we just don't know how the mechanism works yet.
I've always been a materialist (Aside: "always been" in this case means "as far as I remember", which is not very solid evidence for anything) that's scoffed at "souls" or "spirit", but maybe I'm wrong. A few years ago I started acting like the things around me (trees, computers) had a sprirt, and maybe I should extend that to people.
I don't think I'm talking about "mind" here, which appears to be an "emergent property" of a sufficiently complicated switching network, but rather the combined effects of the feedback loops that an entity shares with it's environment. (Knowing where to draw the boundries of "entity" is one of the problems with this approach. "Heaton" is an entity, made up of people, houses, shops, traffic, and others, and itself is part of the larger Newcastle entity).
This is a bit of a scary thought for me. I'm used to seeing myself as "other", sperate from everything else, and this is looking a bit like it could threaten those boundries.
Maybe that's a good thing?

Google photos download service

Tracks what photos Google has, and downloads any that we don't have copies of.

Google gives photos a unique id. If we periodically get a list of photos from google and compare it to a list of photos that we've got, we can download any new ones.

(First download is going to be lots of photos)

For each photo in Google, we need to track:
Google ID
If it's been downloaded
Our file (not strictly needed, but useful to keep track of)

We can simplify by having our file a nullable foreign key, if it doesn't exist, we haven't downloaded the photo.

GooglePhoto {
public long ID;
public string GoogleID;
public virtual UploadImage? UploadImage;
public virtual User Owner;
public int DownloadAttempts =0;

Build a background service that:
* Polls google for a list of photos
* Adds any new ones to the DB
* Queues a download task for the new photo
* Download photo
* Add to database
* Add standard thumbnail to database
* Tracks number of retries for each photo, and gives up after a few

The background task needs the Google token for each user who wants to sync photos.

18 Aug 2020 19:19 #body#fiction#ship Permalink
Shore leave is fun. The ship is docked to the high side of the equitorial tower of the planet that hosts the regional governor. The AI is monitoring the ship, an easy job with most of the ship's systems locked down or totally powered off. The crew all went downwell a couple of days ago, they'll be back in a week, sober a few days after that.
And all of that leaves me with no responsibilities and time on my hands. So I've rented a body (only superficially similar to my original one) that passes as human even in a good light, and I'm off to look for trouble.

14 Aug 2020 21:13 #ideas#todo#tools Permalink
I'm thinking about writing a toolkit to help poke about online. Tools that might be useful include:

DNS lookup
Including reverse, mx, txt, spf parsing
Url percent
AS number lookup (
Pretty print
First Older Archive Newer Latest