jorallan: (Default)
2024-06-07 12:17 pm
Entry tags:

First past the post is weird, 2024 edition

Some quick background for non-UK readers: the UK is having a general election on 4th July. In just about every constituency in England, there are realistically only three parties that might win; going from most left wing to most right wing, these are the Labour party, the Liberal Democrats and the Conservative party. The almost certain result of the election is that Labour will win the most seats, followed by the Conservatives, and very likely with a overall majority; betting odds imply something about a 5% chance of no overall majority.

My personal preference would be for a Liberal Democrat government, followed by Labour and then, as a distant third, the Conservatives. Given that I'm not completely stupid, I recognise a Liberal Democrat majority government isn't going to happen - but given a fixed number of seats for the Liberal Democrats, what would give them the largest say in any potential coalition is Labour being a little bit short of an overall majority. Now, given that I live in what is nominally at least a Labour-Conservative marginal seat (it was Labour from 1997-2005, Conservative in 2010 and 2015, before being Labour in 2017 and Conservative again in 2019), how should I vote?

I think there is a reasonable argument that I should vote Conservative, my least favoured party, as this has the chance of reducing the size of the Labour bloc, and thus giving the Liberal Democrats a greater say. This is... odd. I appreciate "first past the post induces seemingly irrational behaviour" isn't a new insight in any way, but it's the first time it's happened to me in my life.

Practically, I suspect Labour will win easily here which means I can vote Liberal Democrat without much bearing on the world.

jorallan: (Default)
2023-08-29 04:02 pm
Entry tags:

Sometimes tech doesn't suck: Coros edition

 A couple of years ago I wanted a new running/GPS watch, and eventually settled on a Coros Pace 2. This was very much a "bang for my buck" purchase in that it certainly doesn't have as many features as the top of the line Garmin watches - but was also less than half the price.

Probably the most notable feature that it was missing was any kind of route tracking and/or turn-by-turn navigation. That was fine, I knew what I got when I bought it. But then in May this year, Coros added breadcrumb based navigation, and they're currently going through beta testing of turn-by-turn navigation. I filled in the trivial form Coros sent me to be added to the beta test and a day or so later got added to the beta test; one quick app and firmware update later and I at least nominally had the feature enabled.

The obvious thing to do was therefore to go for a run. Results were pretty good - the turn-by-turn got a little confused at a four-way junction but other than that worked absolutely fine. Maybe I'm just cynical these days but I am pleasantly surprised that a company would release what is a major new feature like this without trying to monetise it. Hey, they might even get a return customer if/when I decide I need my next watch.
jorallan: (Default)
2022-03-24 10:31 am
Entry tags:

COVID video game reviews Part 1: Hexologic

As people may know, I have the official plague ☹ While definitely not ideal, this does give me a small window to watch more television and play more games than I normally would.

Unsurprisingly, I'm not feeling up to anything big and complicated right now and having picked up the Stand with Ukraine Humble Bundle (if you're reading this as I post it, you've got about a day to grab it yourself, £30 for an immense amount of content and money to a very good cause), I had a browse through the stuff in there and landed upon Hexologic. So without any further ado, a quick hits review:

What is it? A relatively simple Sudoku-like game - put numbers (dots) in hexes so that various constraints are satisfied.

Is it well done? Well enough, the actual gameplay graphics are clear and helpful, and the backgrounds (both audio and visual) are pretty enough without being distracting.

Are the puzzles interesting? Yes, but see next point.

How long does it last? Honestly, not long. I did the main quest in a bit over an hour, and then the not-very-hidden "master" levels in about another hour. It felt like it was just getting to the point at which I'd actually have to start engaging my brain cells when the game ended.

Is it worth it? Even if you're not getting it from the Humble Bundle, it's £1.99 on Steam - and less for the mobile versions. Very hard to say a couple of hours entertainment isn't worth it at that price.
jorallan: (Default)
2019-12-13 06:48 pm

What effect would a grand remain coalition have had?

Unless you've been living under a rock, you're probably aware that the UK had a General Election yesterday. One question that has come up is "what would have happened had there been a Labour-Lib Dem alliance"? TL;DR: the Tories would still have won, but with a reduced majority.

My (pretty simple) method:
  • Assume that all the remain parties got together and just put up one candidate in each seat. For this purpose, the remain parties are Labour, the Liberal Democrats, the SNP, Plaid Cymru and the Greens.
  • I then think it's a reasonable assumption that the Tories and the Brexit Party would have come to a more formal alliance given the alliance against them, so assume that the Tories, the Brexit Party and the (pretty much irrelevant) UKIP just put up one candidate in each seat.
  • In each constituency, we can now reduce it to three parties: "Leave", "Remain" and "Other". Run the simple analysis to find which constituencies would have had a different result in this scenario than actually happened.
  • Yes, this assumes everybody who voted for one of the parties in the alliance would have voted for the alliance. Close enough for government work (pun intentional).
  • One other scenario can now occur: if Leave would have won a constituency, but (Remain + Other) would have got more votes, we at the very least need to do more analysis to see what would have happened as we don't know how those "other" voters would have voted. Similarly if you swap Leave and Remain.
  • This analysis ends up ignoring Northern Ireland. This is because Northern Ireland is complicated (understatement there...)
Given all this, there are 42 constituencies that would have ended up "Remain" but actually returned a "Leave" MP:


and 12 constituencies which would have flipped to "Leave":



On top of that, there are 9 constituencies which might have flipped to "Remain" (but "Other" votes could have changed the result - see above):



and two constituencies which might have flipped to "Leave":



So, given all that, we can say that "Remain" would have gained between 42 and 51 seats, while "Leave" would have gained between 12 and 14. It's unlikely that all the "maybe" Remain seats would have gone but none of the "maybe" Leave seats, so let's take the two limits together. The baseline results are 365 seats for Leave (all Tory) and 267 for Remain (203 Labour, 48 SNP, 11 Lib Dem, 4 Plaid Cymru and 1 Green). The "missing" 18 seats are the Northern Irish ones. If we assume none of the "maybe" seats change, we get 365 + 12 - 42 = 335 for Leave and 267 + 42 - 12 = 297 for Remain, still a reasonably comfortable majority as the effective number needed for a majority is 320 due to the 7 Sinn Fein MPs not taking their seats and the speaker and three deputies not voting. If all the "maybe" seats did flip, we'd have 365 + 14 - 51 = 328 and 267 + 51 - 14 = 304 for Remain which is getting a bit tight but still at least nominally a majority.

There you go, make of that what you will. As usual, code to generate these numbers is on my GitHub. All comments and polite criticism welcome.
jorallan: (Default)
2019-10-13 12:34 pm
Entry tags:

Clustering MtG decks on a rainy Sunday morning

What to do when it's raining...
  • Scrape ~200 mostly sensible (i.e. at least vaguely competitive) Magic: The Gathering decks from the web.
    • Restricted to cards available in Arena, partially because that keeps the size of the feature space down and partially because that's what my database supports. They're pretty much decks playable in the Core Set 2020 and Throne of Eldraine timeframes.
  • Work out the number of cards which overlap between each pair of decks.
  • Use that overlap to lay the decks out in 2D space via a force-directed layout.
    • The previous two steps have reduced our original ~750 dimensional space (one dimension for each unique card in the decks) to 2D.
  • Cluster the decks based on their location in the 2D space.

And this is what you get...
A diagram showing 200 Magic: The Gathering decks in clusters
This is at least vaguely sane if you know a bit about MtG - starting from the red cluster at 9 o'clock, the clusters represent:

  • Bright red: Mono-red aggro
  • Medium green: Gruul (red-green) aggro
  • Bright green: Mono-green stompy
  • Green-blue: Temur (red-green-blue)/Simic (green-blue)/Bant (green-blue-white) decks. What's in here reflects the current metagame: Temur is mostly elementals, Simic is flash, Bant is ramp
  • Darker green-blue: the current metagame bugbear, Golos Field of the Dead.
  • Blue: Mostly Esper (blue-white-black) decks, but also with some other blue based decks.
  • Black: a mix of mono-black (control) decks and Orzhov (black-white), including vampires and knights.
  • Dark red: Rakdos (red-black) aggro/knights decks and Boros (red-white) decks, mostly based around Feather, the Redeemed but that's probably just a metagame effect again.

The dark grey blob in the middle represents "everything else" and the light grey ones scattered around are decks which aren't in any cluster. Perhaps the two most notable bits are the ones stretching out at 6 o'clock representing mono-white and the ones at 2 o'clock representing mono-blue.

What conclusions can we draw from this? Perhaps the most notable one is that the decks have arranged themselves so that "enemy" colours (ones not next to each other in Magic's white-blue-red-black-green) wheel are next to each other. Again, that probably reflects today's metagame...

If anyone's really interested in the code to do this, give me a shout. The only reason I haven't put it up is that it's based on my usual collection of hacky scripts and a not very reproducible database setup...

Credits go to:
jorallan: (Default)
2019-09-02 06:49 pm
Entry tags:

My journey to VoIP with FTTP, Zen, a FRITZ!Box and Port 5060

As some of you will know, I recently moved house (contact me by other means if you want my new address). I didn't actually realise at the time of buying the house that it had (the potential for) FTTP1, but for the first time that opened up the possibility of dropping the old copper phone line and replacing it with VoIP. Why? Because paying £15/month or more for a phone line which we use very little is a waste of money, so at least investigating a VoIP solution seemed like a good idea2.

In terms of an ISP, I've been very happy with Zen for almost 15 years now, so there seemed little point changing there. They're probably not the cheapest in the market, but they're not far off and they're technically very competent. By signing up for an FTTP contract with them, they also gave me a FRITZ!Box 7530 for "free" which seems to be a reasonable piece of kit and a definite upgrade on my aged Netgear box.

Once the (very helpful) Openreach engineer had done his job and got things to the state where there was connectivity to the fibre modem, first task was to set up the FRITZ!Box. This was nice and easy - plug the Ethernet cable from the fibre modem into the LAN1 port on the router (this was about the only non-obvious thing). Once you've done that, connect to the FRITZ!Box's wireless (SSID and password on the bottom of the router) and then browse to http://fritz.box/ (note HTTP not HTTPS) and log in with the admin password (also on the bottom of the router). Then browse to Internet / Account Information, and put in your Zen login details. You should now have Internet. Hooray! (I now spent a bit of time reconfiguring the wireless network, but none of that was critical or hard).

The choice of VoIP provider was somewhat trickier as I've never had one before, and almost all the advertising out there seems to be targeted at businesses rather than consumers (for understandable reasons, most consumers still need a bundled phone line one way or another). After some browsing, I found Port 5060 who both looked reasonably competent and didn't require a long-term contract. Order was not entirely intuitive - while their pricing page says £3/month, clicking on the "Order Now" button presents you with a £5 one-time fee. It is £3/month for their basic "one number" service, but this wasn't entirely obvious to me at this stage. In any case, I ordered and the account was activated about 12 hours later.

You can then log into Port 5060's technical portal with a different username/password from the billing side of things, and a different-but-very-similar URL. If any of the Port 5060 people happen to read this, single sign-on and everything on one domain would be nice please :-). The next steps were not particularly obvious:


  1. Click on "Manage Numbers" then "Purchase Number". You can now select a number from any UK geographical code or a range of non-geographical ones. I was boring and went for the geographical code where my house actually is. This step costs £1/month for those keeping track.

  2. Now go to "Manage Extensions" and "Add Extension". Create the extension, associate it with the number you just chose and get yet another username and password (which is fair enough in this case, it's effectively a user on your account). When you've created the extension, click on the username in the table (UX? What UX? If you have to put a big hint on your page telling people where to find things, you probably need to change your UX...) and note the SIP proxy.

  3. Now go back to the FRITZ!Box and go to "Telephony" / "Telephone Numbers", "New telephone number". Set "Telephone number for registration" to the full number from Port 5060, "Internal telephone number" to the local part of the number (not sure how crucial this is), the username and password to those you got in Step 2 above, and both the registrar and proxy server to the SIP proxy you got above. I haven't set the STUN server - I suspect I don't need this because I have a static IP address.

  4. You can now plug your regular analog phone into the "FON1" port on the FRITZ!Box (they helpfully supply a BT connector to RJ11 adapter with the router) and should be able to make and receive calls "as normal".



So in summary:


  • Openreach were very good at getting the fibre installed.

  • Zen remain excellent.

  • The FRITZ!Box seems pretty good so far - everything Just Works(tm).

  • Port 5060 seem technically competent but the UX leaves a lot to be desired.



Notes:


  1. FTTP is Fibre (Internet) to the Premise or in generic terms, fast broadband. However, if you didn't know that already this post is likely to be a bit geeky for you.

  2. We did consider the idea of not having a "landline" at all and just using our mobiles, but as our new house has solid stone walls approximately the thickness of those in a nuclear bunker, mobile reception in large parts of the house is dodgy at best.

jorallan: (Default)
2019-07-30 08:33 pm
Entry tags:

grub rescue>

I have a laptop, as it so happens a PC Specialist "Cosmos" laptop from 2016. If you know me, you won't be surprised to know that it dual boots Linux (Debian) and Windows. This generally works very well... until there is a six-monthly Windows update, which trashes the bootloader every single time (at least the last three, anyway). This isn't actually hard to fix, but it's always tricky to fix the exact instructions on how to do it, especially when I'm reducing to browsing on my phone... so this post is mostly an aide-mémoire for myself in six months time, but might be useful for someone else as well...

At the grub rescue> prompt, type ls. You'll then see something like:

(hd0) (hd0,gpt7) (hd0,gpt6) (hd0,gpt5) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1)

Iterate over each of the "gpt" entries (e.g. ls (hd0,gpt1) etc) until you find one that says (hd0,gpt5): filesystem is ext2. rather than (hd0,gpt1): filesystem is unknown. Once you've found that, it's then just a matter of:

grub rescue> set prefix=(hd0,gpt5)/boot/grub
grub rescue> set root=hd0,gpt5
grub rescue> insmod normal
grub rescue> normal


and you're then back at the regular GRUB menu. Boot Linux and then:

$ sudo update-grub
$ sudo grub-install


and you should be back in happy land again.
jorallan: (Default)
2019-04-17 07:52 pm
Entry tags:

Making secure passwords not a pain

Don't use the same password on more than one site. That won't be news to the more security conscious of the people that read this (if it is news to you, read the link) but even for my more techie friends, the practical management of secure passwords can be an issue. I occasionally get asked how I do this, so here's a blog post...

For avoidance of doubt, this is very much just how I do things. It's by no means the one and only one correct way to do it, but it works for me. The other slightly "odd" (although maybe less odd among people that read this) requirement that I have is that it needs to provide a solution for when my laptop is running Linux. Anyway, what I do is:
  • Create a password database with KeePass. Use something really strong as your master passphrase.
  • Use KeePass to generate every new password you ever create. Use secure settings for this - my default settings are 32 characters and all the character classes KeePass allows except "High ANSI characters".
    • Occasionally this breaks a website which doesn't like that kind of password. This is annoying, especially when they don't tell you why they don't like your password. Not much that can be done about that though.
  • Put the password database onto my Google Drive.
    • On Windows, install Google Backup and Sync to ensure that I always have the latest version of the database.
    • On Linux, install Insync to sync Google Drive to my local machine. Yes, this involves paying money but as a one-off payment I think £30 (or $30 if you're lucky enough to be in the US) is a worthwhile investment.
    • On Android, the Google Drive app gives you sync automatically. (This assumes you're running full blown Android, rather than AOSP as you get on e.g. Kindle Fire tablets. I haven't tried to solve that problem)
  • On Android, install Keepass2Android Password Safe to access the database.
This now means that 1) I have the latest version of the password database on all my devices and 2) I'm not reliant on any cloud provider's security for my password security. Even in the worst case that Google were hacked (or subpoenaed) and my password database was obtained by an attacker, the database is still encrypted by my strong passphrase so hopefully useless. I am reliant on KeePass's security, but I'm happy with that. (Also, thank you to the EU for making us safer).

The only gotcha I've found with this system is that I have to be careful not to have the password database open on device A and editing it on device B, or the syncing understandably gets confused. There aren't many valid use cases for having the database open on more than one device at once anyway, so this just encourages good practice :-)

Historical note: until March 2019, I used Dropbox for the sync rather than Google Drive, mostly because Dropbox provided a free Linux client. However, Dropbox now restrict their free accounts to three devices which broke all that. If you pay for Dropbox already for other reasons, you can use that and not pay for Insync.

jorallan: (Default)
2019-04-16 08:17 pm
Entry tags:

Lots of books

So it's been a while since I posted about my reading, so here's everything I've got at least a majority of the way through since last August:
  • Half Past Human (T. J. Bass): what happens when we all live in mega-cities? Bass takes the theme to its extreme, postulating trillions of people of Earth, and what needs to be done for such a population to survive. Not a bad novel by any stretch of the imagination, but certainly shows its age and the fact it's really two novella-length stories in the same world with just a very little bit of glue tying them together.
  • The Deep (Nick Cutter): isolation horror, and honestly not particularly good isolation horror. Teases and tempts with hints of an answer to the world's problems at the bottom of the sea, and kept me reading for long enough to find out what was going on... but then dies a horrible death at the end with nothing really being resolved at all.
  • Thud! (Pterry): it's Pratchett. It's got Vimes. It's got dwarves. It's got trolls. It's fun.
  • The Ouroboros Wave (Jyouji Hayashi): a black hole is detected in Earth's vicinity and tamed to provide effectively unlimited energy. How does this effect the communities in the solar system? A series of (very) lightly linked short stories. As usual with any collection, a couple of them were a bit of a slog but enjoyable all the same.
  • The Return of Sherlock Holmes (Sir Arthur Conan Doyle): mini-Christmas present from the lovely wife. While I'd never read this collection before, I've read enough Holmes to know how things were going to play out: a grand exposition from Holmes at the end of the story and everyone saying "aren't you clever?" I'm not sure if the reader is ever supposed to be able to make the same deductions as Holmes makes - often there just isn't enough detail in the writing - but that meant I did enjoy The Adventure of the Dancing Men and decrypting its cipher.
  • Hello World: How to be Human in the Age of the Machine (Hannah Fry): you've read the popular press. AI and algorithms are everywhere and going to save the world/take over the world/something else. A really good introduction to the topic but for those of us that care about and work with this kind of stuff, not particularly insightful. But then it's not really aimed at me, and it was only 99p on Amazon.
  • Hillbilly Elegy: A Memoir of a Family and a Culture in Crisis (J. D. Vance): perhaps slightly surprising to see me reading right-wing American political stuff, but I do find it occasionally interesting to read stuff from "the other side". Vance takes us on a journey from his broken home upbringing to that of a hot-shot lawyer, looking at the people around him along the way. I do understand some of Vance's frustrations at seeing good money thrown after bad, but still can't agree with his conclusions.
  • HDL with Digital Design: VHDL and Verilog (Nazeih Botros): with the wave of FPGA-based retrocomputer implementations (hello, ZX-UNO team), I thought it would be interesting to understand a bit more about how this stuff is written (and you never know, maybe even write a patch or two. I do know a little bit about the Z80). This probably isn't the book to do it from though - while it goes into great detail of the syntax and mechanics of both VHDL and Verilog, it completely misses the higher level stuff: when should I use behavioural vs structural typing? etc. Didn't really feel I gained much from this which I couldn't have gained from reading a couple of specifications.
  • False Gods (Graham McNeill): second in the Horus Heresy series. Everything I wrote about Horus Rising in 2017 applies to this one as well, but it filled in some travelling time.
  • The Shore of Women (Pamela Sargent): after a somewhat unspecified nuclear war, the women have expelled the men from the cities, and they now live as nomadic hunter-gatherer bands. The underlying theme here seems to be that if you treat a group (whether that be men, historians or anything else) with disdain, they'll begin to act as you expect. While I think the ending is supposed to provide some hope, I didn't really get that feeling in that the only way to beat the system was to join it. Reminded me most of Huxley's Brave New World, which I may have to read again at some point, having only read it at school.
jorallan: (Default)
2018-10-15 07:52 pm
Entry tags:

Being a greener person

It is apparently "Green GB Week". The cynical among us may say this is a publicity stunt to distract from the a certain summit happening on Wednesday which seems likely to go horribly wrong, it's as good a time as any to reflect on the state of our world. Some assumptions I'm not interested in debating here:
  1. Climate change is happening.
  2. Climate change is significant.
  3. Climate change is primarily man-made.
  4. We have an ethical duty to do something about it.
Given all that, the question on my mind is "how can I, a moderately intelligent, moderately well-off person make the largest positive difference to the environment?" For anyone that doesn't know me, I already cycle to work every day so that takes out one of the obvious changes I could make. I also have two children; I'm well aware this is in many ways a significant increase in "my" environmental cost but it isn't something which is going to change. It also means that I am time-poor. I am prepared to invest potentially non-trivial amounts of money in something if it could significantly affect my environmental cost. Not sure what "non-trivial" means yet.

So... tell me what things I can do which will have the largest benefit to the environment. If they just affect me and my immediate family, that's OK but what would be wonderful would be things which affect a larger group of people. Particular attention will be paid to ideas with quantitative numbers behind them - feel free to refer to the amazing "Sustainable Energy - without the hot air" to get those numbers. Stuff which I've considered:
  1. Going (mostly) veggie. I know I should but... I like meat.
  2. Voting Green. This is a tricky one - firstly because our electoral system means a green vote is almost certain to be "wasted" (I live in a Con-Lab marginal), and secondly because I have serious problems with the Greens' energy policy. "Do it all with renewables" just doesn't add up (see "without the hot air" for the numbers); as far as I can see, the only way we can in the short term get low carbon energy generation is with nuclear. It's not perfect, but it's the least bad option for base load generation right now.
What else can/should I do?

jorallan: (Default)
2018-09-19 10:22 pm

Linus

These days, a lot of people have heard of Linus Torvalds, the "father" of Linux. Linus is without question a really, really technically smart person. However, Linus can also behave pretty abominably at times in terms of his interactions with others, and has been unrepentant of this behaviour in the past. Your favourite search engine can find you plenty of examples.

Anyone who's had the somewhat dubious pleasure of living or working with me in the past might describe me somewhat similarly. I hope I've got at least somewhat better over the years. My thanks go out to those people that have helped me along the way, but most of all of course to Karen, my long suffering wife (and best friend). I know it can be hard to change, especially when at least some of what you are respected for is technical excellence.

Given all this, it was somewhat of a surprise this week to see that Linus had posted a full on apology for his past behaviour. Well done that man. (I acknowledge that this is words, not actions, and it's the actions that need to change. But as a first step, it's a very good one).
jorallan: (Default)
2018-09-08 08:07 pm
Entry tags:

August reading

Didn't get through as much as I'd expect while on holiday for a week in the North York Moors because I got distracted by some coding. Aside: coding without Stack Overflow is hard :-( Anyway, in August I read:
  • A Woman of the Iron People (Eleanor Arneson): space explorers find a planet of iron-age people and send down a few people to investigate. Now, I do get this book is to some extent a commentary/investigation on our modern day anthropology, but to me it wasn't either a good story (too many "with one bound, Jack was free" type moments) or actually a particularly deep or insightful commentary on anthropology.
  • Gridlinked (Neal Asher): I got on pretty well with Asher's Transformation series (see last June for the end) so grabbed this when I saw it in a charity shop. And... it's not as good as his later stuff. I've never particularly liked military fiction and while the Transformation series did go into that kind of stuff, the rest of it was interesting as well. Here, the military bits are still there, but the plot and the rest of the writing aren't there to support it.
  • Extracted (R. R. Haywood): invent a time travel machine, "extract" three people from different times for... something. The "something" is revealed pretty early on, but the book then just drags on... and on.... and on.... through a fairly interminable slog with one of the characters. Chop that out, reduce the book to a third of its size and this would have been a much better novel. (Oh, and the physicist in me insists any time travel novel at least has to try and deal with the paradox issues. Hand-waving it away along the lines of "nah, let's not try that" really doesn't work).
jorallan: (Default)
2018-09-01 09:16 pm
Entry tags:

Fuse and the Vega+

Another post on the long-running Vega+ saga. Vague apologies if this is of no interest to you, but there seems to be some confusion around all this which it's worth clearing up...

The Vega+ is running Fuse. Nobody disputes this. As noted last year, the Fuse team had nothing to do with the port of Fuse to the Vega+ - as it happens, the port was done by Private Planet, a company owned by Janko Mrsic-Flogel, Retro Computer's CTO. As required by the GNU GPL, RCL have released the code for the port; this was the first time I (or anyone outside of RCL / Private Planet as far as I know) had seen the source code for the port.

I had a look at the port last week and "live tweeted" my findings. To summarise here:
  • This is a good faith effort to comply with the GPL. It's not perfect as the libspectrum source should be available as well. but it's better than a lot of efforts. The inclusion of the build instructions explaining how to build it is one of the most often overlooked GPL requirements and RCL did include those.
  • That said, it's technically not a great port. The changes are monkey-patched into the generated files rather than being included properly.
  • Therefore I took the port and tidied it up a bit.
It's worth noting here exactly what the tidied up port does and doesn't do:
  • It doesn't fix any issues in the final binary, it just makes it all easier to work with so if anybody does find any issues and wants to fix them it will be easier to do so.
  • More crucially than that, it doesn't give a way to load the binary onto the Vega+. That's not something I can help with without a device, and quite probably not even then (whether I would be inclined to help is a different question and one I don't know the answer to at the moment).
  • Any changes to Fuse are never going to fix the well-reported issues with the Vega+ buttons. That's a hardware problem.
  • It's going to be pretty tricky to fix the performance issues as well. Fuse is pretty well optimized already, and it's not going to be easy at all to find the kind of performance gains needed - unless you're prepared to sacrifice accuracy, which is probably a valid decision.
jorallan: (Default)
2018-08-05 10:39 pm
Entry tags:

July reading

 July started off very slow as a reading month, but picked up at the end while I was away in Pembrokeshire for a week. Anyway, I read:
  • The Night Clave (Monte Cook and Shanna Germain): a Numenera novel so while set in an RPG universe, probably never going to be a straight up dungeon crawl - and it certainly isn't, being essentially a voyage of self-discovery as to what really matters for one of the characters. Enjoyable enough, but felt a bit too padded to me - maybe would have been better in a novella type format. As an aside, I dare anyone to watch Strand and not want to play in the Numenera universe afterwards...
  • The Abyss Beyond Dreams (Peter F. Hamilton): back in Hamilton's Commonwealth universe, which is never a bad start and again sees people (well, in this case, mostly Nigel Sheldon) battling the Void, although this time from the inside. A lot of this book felt like a rehash of the Void trilogy itself - following the rise of individual through a Void-influenced society, much as Edeard did. Not quite sure where Hamilton's going with this one, but I'm sure I'll read Night without Stars, the second half of the series sometime.
  • The Long Mars (Terry Pratchett and Stephen Baxter): while I was really taken with The Long Earth, I wasn't so grabbed by The Long War in which not much really happened. Fortunately, The Long Mars rectifies that with two major plotlines, both of which grab the attention and show how the Long Earth (or as it's not a spoiler given the title of the book, the Long Mars) really starts to shape societies. Still obviously setting some things up for later books, but I'll be back to read them pretty soon.
jorallan: (Default)
2018-07-05 08:38 pm
Entry tags:

June reading

In June, I read:
  • Orbital Decay (Allen Steele): mostly interesting take on the social dynamics aboard the first commercial (as opposed to ISS-style scientific) space station. While trying to avoid spoilers, there's one bit in the story which feels very grafted on as you go through - and then suddenly becomes a crucial plot device in the ending which let it down a bit. I've previously read Steele's Coyote, and enjoyed that many years ago so will probably read some more of his stuff at some point. I may be being a bit harsh here on what was Steele's first novel.
  • Aurora (Kim Stanley Robinson): really hard to describe what this is about without some massive spoilers. Let's just say that despite what's on the jacket, it's not at all the same as the Mars trilogy. That said, I can see how the first half of the book is a good set up for the second, but felt a bit let down by very end when the character I was identifying with became less important. Sorry if that's a bit obtuse...
  • Parable of the Talents (Octavia E. Butler): the follow-up / second half to Parable of the Sower (coincidentally see last year's June Reading post). Didn't enjoy it as much as Sower in that it felt there was a lot more filler in this one - I felt the first half of the book could have been cut back significantly without really affecting the story much, but the second half was pretty good. Talents still nicely filled in the travel bits of a work trip to Denmark.
  • Dragons of Autumn Twilight (Margaret Weis and Tracy Hickman): it's not big[1], it's not particularly clever, it's full of ridiculous "with one bound Jack was free" moments, but it's what kicked off my D&D (and RPG in general) habit and it's still quite fun.
[1] OK, the Dragonlance universe is ridiculously big, but almost all of the non-Weis/Hickman novels are pretty poor. And so are the Weis/Hickman novels after the first six.
jorallan: (Default)
2018-05-25 07:48 pm
Entry tags:

Belated books update

It's been too long. Haven't read that much in the past six months, sometimes for good reasons, sometimes for bad. But here's some of the things I did read:
  • The Medusa Chronicles (Stephen Baxter and Alastair Reynolds): fairly typical Baxter or Reynolds hard sci-fi. Enjoyable enough, but with a GREAT BIG SIGNPOST to the ending a third of the way through the book which left a bit of slogging through waiting to get to that bit.
  • Can & Can’tankerous (Harlan Ellison): I don't remember very much about this. Sorry.
  • Neverwhere (Neil Gaiman): pretty dark, pretty twisted, generally quite weird. Or in other words, just what you'd expect from Gaiman. Enjoyable.
  • Binary Storm (Christopher Hinz): entertaining action romp through a dysfunctional near-future Earth. Written as a prequel, and either the ending is very forced, or was hamstrung by the need to remain consistent with the later books. I suspect the latter.
  • Nemesis (Alex Lamb): starts off as a fairly standard "conspiracy in space" - but has enough twists along the way to keep the interest levels up. Probably worth reading Roboteer (the first in the trilogy) before this though as while there's just about enough exposition so that things make sense, I felt I was missing a few bits along the way.
  • The Three-Body Problem (Liu Cixin, translated by Ken Liu): Hard sci-fi, but with an Eastern spin this time. Hard going in places and jumped a bit quickly from the "investigative phase" to the "everything happens at once phase" for my liking, but I wouldn't be averse to reading the rest of the trilogy at some point.
  • The Book of Heroes (Miyabe Miyuki. Apologies if I've got that name in the wrong order): young girl enters a story to save the world. A bit too young adult for me really, but probably enjoyable if you like that sort of thing.
  • My Night in Freeport (Anthony Pryor): Freeport is one of my favourite D&D settings, so a new story set in the City of Adventure? Grabbed me straight away - but it's really, really, really short. Not worth the asking price.
  • First Person Peculiar (Mike Resnick): a short story collection. Had some good bits and not so good bits in it. Probably.
  • Poseidon's Wake (Alastair Reynolds): yes, more Reynolds so more hard sci-fi. Didn't realise it was the third one in the trilogy when I got it from the library and definitely suffered from that.
  • Miniatures (John Scalzi): another short story collection that I don't remember very much about. There's a theme here, isn't there?
  • The Nightmare Stacks (Charles Stross): back in the Laundryverse. More programmer/maths geek dark horror fun. Good, but not up to the level of The Atrocity Archives from my point of view.
  • Mechanique: A Tale of the Circus Tresaulti (Genevieve Valentine): take a traditional circus. Add some fairly dark Iain M. Banks-style body horror and you have Mechanique. Not going to be a book that makes you smile, but still worth a read.
  • Echoes of Earth (Sean Williams and Shane Dix): an off-shoot colony of humanity receives an apparently great boon from another species... but it comes with a price. A lot of set up for what was obviously always intended to be a multi-part story, and doesn't really get going itself.
  • Blackcollar (Timothy Zahn): a bunch of freedom fighters strike out against the evil Galactic Empire using non-conventional weaponry. Sound familiar? Actually written before Zahn wrote what is apparently some of the best stuff in the Star Wars EU (sorry, "Legends"), but all the same... military fiction is never really my thing, but this is okay as it goes.

jorallan: (Default)
2017-12-04 09:35 pm
Entry tags:

November's (lack of) reading. And some code and photography.

Also known as "Phil starts reading too many books at once month".

The only things I actually finished this month:
  • Word Puppets (Mary Robinette Kowal): too long since I finished this, struggling to remember very much about this short story collection other than that I enjoyed most of it.
  • Elite: Dangerous Role Playing Game (Spidermind Games): I kickstarted this after they got copyright bullied earlier in the year. Haven't got round to running a game yet, but hopefully will do in the New Year.
Still reading Gridlinked (zero progress made) and The Three-Body Problem (some progress made) from October, but also now reading Echoes of Earth (good progress being made on the train during various work trips to Manchester) and New Views on an Old Planet which was the recommended reading for my 1A Geology course but I never read at the time. However, inspired by the Blue Planet II episode on "The Deep" (van Andel was the first person to see mid-ocean ridges forming new crust in person) and as it's available for about £3 on eBay, it was too good an opportunity to miss.

Coding-wise, I rewrote the "automatic loading" feature of Fuse to be more friendly if you've got additional hardware available (techie details here) and made some games load quicker.

Photography-wise, I got tagged in the "seven days, seven black and white photos of your daily life" meme on Facebook. You can see what I came up with on Flickr.

December will be spent trying to finish more books than I start, but I may not actually get too much done due to the fantastic Advent of Code being back again.

jorallan: (Default)
2017-11-06 09:42 pm
Entry tags:

October reading

 October's reading:
  • Gene Mapper (Taiyo Fujii, translated by Jim Herbert): a bit of a random pick up from the library, but also part of a slightly deliberate attempt to read a bit outside my normal comfort zone of moderately hard sci-fi. Very simple plot summary is near future and dealing with the socio-economic impacts of genetically engineered crops - and I enjoyed it enough to munch through in a couple of days, which is pretty rare these days. Can't let the glaring crypto hole go uncommented though: no, you cannot reverse engineer the input given only a hash, no matter how much brute force computing power you have.
  • Skeen's Leap (Jo Clayton): your typical RPG thief ends up stranded on a medieval technology world and has to get back to her nice high tech environment. Along the way, she acquires a party of diverse companions and has various adventures. Unfortunately, the plot is about as generic as it sounds, and the writing isn't good enough to elevate it. It's also only half a story, ending just as it should be getting going. Meh.
  • Yesterday's Kin (Nancy Kress): apparently peaceful aliens have landed in New York. What do they want, and are they truly peaceful? Sounds like yet another bit of pulp fiction, but Kress spins it through the eye of one (dysfunctional!) family and how it affects them. Enjoyable enough in what is effectively a novella format, but just lacking that... something which would make it want to pick up the trilogy its become.
  • The Stars are Legion (Kameron Hurley): I know this one has got a bunch of adoration for its feminist themes, but... sorry, it's just not a very good story. Just too many points at which the "grand plan" could have got one or other of the protagonists killed, and then the whole thing would have fallen apart without its message meaning very much at all. A real struggle to get through.
Currently reading Gridlinked (back to hard sci-fi and back to the start of Neal Asher after doing the Dark Intelligence trilogy earlier in the year) and The Three-Body Problem (Cixin Liu: continuing the eastern theme), and finished off Word Puppets which I was reading through October.

jorallan: (Default)
2017-10-17 09:08 pm
Entry tags:

The (wired) Vega emulator is *not* Fuse

If you're not involved in the ZX Spectrum emulation scene, feel free to skip this post. In fact, it's probably best if you do. For avoidance of doubt, this views in this post are purely my personal views and are not intended to reflect the views of the Fuse team in any way.

Just about anyone who's been around the ZX Spectrum emulation scene in the past 18 months or so is probably aware of the ongoing saga of the Vega+ and its failure to be released. One of the allegations which has been made is that the emulator involved in the original Vega (not Plus) was in fact a rip-off of Fuse, and not the work of Chris Smith. This is frankly, complete rubbish, and I've told Retro Computers that in the past. While it's pretty easy for those of us who enjoy digging into t-state timings to spot the differences, there's actually one very easy way to tell: as part of Fuse's development, the team have developed a utility called "fusetest" which digs into a few dark corners of the ZX Spectrum's behaviour. The primary use of this tool is as a regression test to make sure that we haven't broken anything before doing a new release, but it can serve a secondary purpose of spotting differences between one emulator and another.

And what happens if you run fusetest on the Vega? Yep, you guessed it, it displays significantly different behaviour from Fuse - in particular, it fails the "floating bus" test in both 48K and 128K modes, and the "High port contention 2" test in 128K mode. You can see all this in this short video I made with my Vega.

Let's hope this puts to bed any further repetitions of this allegation.

Oh, and anyone playing silly buggers in the comments, either here or on YouTube, will discover that I can play quite well too.

jorallan: (Default)
2017-10-08 10:13 pm
Entry tags:

September reading

September's reading:
  •  The Atrocity Archives (Charlie Stross): as noted last time out, you'd probably expect I'd have read this already, but I never had. I really enjoyed the first half ("The Atrocity Archive" itself) as I'm always a sucker for Lovecraftian sci-fi, but wasn't so taken by "The Concrete Jungle". Overall the whole thing reads as what Pratchett might have written if he were writing stuff set in the modern day, which isn't a bad thing (and I do very much like Good Omens as well...). Will probably seek out some more of the series sometime.
  • Flood (Stephen Baxter): I have a funny relationship with Stephen Baxter. He's an author I always think I should like more than I do, which leads to me owning quite a lot of his work... but never actually enjoying it very much. Flood was OK - an interestingly different take on climate change, but still not one that really grabbed me at all.
  • Moons of the Solar System (James A. Hall III): a largely tedious gazetteer of every known moon in the Solar System (i.e. a natural satellite which orbits something other than the Sun). While some of these bodies (Enceladus, Europa, Ganymede) are definitely interesting, some have some cool orbital mechanics (Epimetheus and Janus) and it's vaguely interesting to know that some asteroids have moons, the vast majority of moons are just boring lumps of rock. Then for added confusion, some almost entirely unrelated appendices.
As of 1st October, the only thing on the reading list was Skeen's Leap, but I've actually worked my way through Gene Mapper and started on The Stars are Legion since then.