Welcome to ned Productions

by . Last updated . This page has been accessed 1,226,842 times since the 23rd May 2000.

Welcome to ned Productions (non-commercial personal website, for commercial company see ned Productions Limited). Please choose an item you are interested in on the left hand side, or continue down for Niall’s virtual diary.

Niall’s virtual diary:

Started all the way back in 1998 when there was no word “blog” yet, hence “virtual diary”.

Original content has undergone multiple conversions Microsoft FrontPage => Microsoft Expression Web, legacy HTML tag soup => XHTML, XHTML => Markdown, and with a ‘various codepages’ => UTF-8 conversion for good measure. Some content, especially the older stuff, may not have entirely survived intact.

You can find the posts here replicated onto Diaspora, if you prefer to subscribe there instead.

Latest entries: Feed icon

Wednesday 22 May 2019: 20:30. Apple just announced their 2019 MacBook Pro refresh. I had been awaiting it, as my 2016 MacBook Pro is beginning to show wear and tear. I have been fairly – thankfully – free of keyboard issues relative to some, but not immune. For a while there my V and B keys weren’t working. After prising off the caps – very gently, and still breaking two of the tiny nibs in the process – and manually cleaning underneath, they have since been fine. And since I have been utterly paranoid about eating or doing anything which might generate crumbs or lint anywhere within a metre of the keyboard. But, TBH, this is not the kind of crap you should be putting up with for a laptop costing three grand. No other laptop has such a delicate keyboard.

There are other issues, too. Just recently I’ve developed the infamous problem of half the backlights along the bottom of the screen failing. This is due to wear and tear on the power cable at the hinge. Apple with replace that, and the keyboard, for free as both are defective, but then I lose my laptop for six to eight weeks, because all EU MBPs get sent to Romania for the repairs. So I’m minded to replace the whole unit, move over my stuff, wipe and sell the old one. Let somebody else with more time freedom bother with all that stuff.

Before I bought this MacBook Pro in 2016, I did a cost-benefit calculation where, at that time, once you subtracted the recoupment cost of selling the old laptop given then second hand prices for MacBooks, the MBP beat out the Dell XPS 13, which was my next choice. Unfortunately, I could not have known that the MBP 2016 onwards would have defective keyboards and many other issues. This has rather wrecked their second hand value:

  • 2016 XPS 13 Originally cost €1,463 ex VAT, today on eBay €813 (-44% depreciation)

  • 2016 MacBook Pro 13 Originally cost €2,162 ex VAT, today on eBay €1,056 (-51% depreciation)

In other words, I made the wrong bet three years ago. But there was no way I could have known. Apple did, once upon a time, not miss a beat with their high end laptops.

Also, back in 2016, the MBP was markedly superior to the XPS 13. Far faster SSD, better sound, better display, better wifi, longer battery life. I had expected to use MacOS for development, but as actually happened in practice, I never really did thanks to the new Windows Subsystem for Linux, which is a very fair substitute for MacOS, and doesn’t require rebooting. Running Windows under Bootcamp, I have had constant problems with the Wifi, whose Windows drivers just don’t work right. The sound is tinny, as the bass doesn’t work on Windows. The high gamut display isn’t recognised by Windows, and renders as ordinary gamut. That very fast SSD however, that does work very well, though you are in pepetual fear of the day when the laptop dies, because it’s soldered on, which means bye bye your data. The fact that the screen power cable is fraying particularly adds to my nerves on this.

So, all in all, I’m not feeling that that all that extra money back in 2016 – some €700 ex VAT extra – was particularly good value for money. Sure, it was the better laptop, but it did not come cheap.

Fast forward to today, and the latest Dell XPS 13 model 9380 has improved on almost every area when compared to the just released MacBook Pro 13 2019. For the 512Gb SSD, performance is very similar (it’s a high end NVMe Samsung SSD). Battery life is much better, though still a bit shorter, eight hours versus ten. Display has improved, though still not quite as good. Sound and wifi are still quite inferior to the MBP, but not if you’re running your MBP in Windows. Keyboard doesn’t have any of the problems which the MBP keyboard has. SSD is removable.

Oh, and the latest Dell XPS 13 model 9380 costs almost exactly what its predecessor did in 2016: €1,476 ex VAT. Whereas the latest MBP has larded itself up to €2,397 ex VAT, a +10.8% price increase, and a full +62.4% more expensive than the Dell.

If the MBP were markedly superior to the Dell, then it might be the case that that extra price increase would be worth it. But, the specs are far closer than they were back in 2016, and it was a bit of an ask even back then. For marginally better on every measure, and markedly worse on the keyboard, that’s a ton more expensive for what you’re getting.

Plus, in the end I ended up having no use for MacOS. In the three years I’ve owned this MBP, I’ve probably booted into it only a few dozen times. Windows Subsystem for Linux has been good enough, and end of this year will get a lot better, as Microsoft are going to start shipping a full Linux kernel inside the Windows kernel, and thus WSL programs will now run on real Linux, rather than a syscall emulated Linux.

Which means that almost certainly my next laptop will be the Dell XPS 13 model 9380, pimped out to the full with 4K screen, top end CPU etc, but coming with Ubuntu instead of Windows as I already have a spare Windows 10 licence. However, I’m going to sleep on it first. It’s a lot of money, and no need to rush a decision.

I’ll resume the articles about investing in subprime lending and Mintos shortly. I have the next installment mostly written. It should land soon.

Thursday 16 May 2019: 21:28. p>These next few posts I’ll be talking quite a bit about retail investing in subprime lending, as I’ve been watching the whole area intently for two years now, and I finally felt confident enough to drop in some of my own money. I should stress that you shouldn’t risk any more of your money on this than you can afford to completely lose: the chances of losing all your money are higher than investing in a stock market index tracker fund (e.g. tracks the FTSE 100), which is by far the best place to put money that you know that you probably won’t need for a few years. However, the risk of losing no money at all, even if you need all your money back quickly, is far lower investing in subprime lending than investing in the stockmarket.

That makes this type of investment a good fit for some of the cash that you might normally keep in a quick access bank account, because you can configure it so you never lose money, and you can get it back into cash within a week. That lets you proof all your cash savings against inflation, so you aren’t constantly losing value every year. For example, €100,000 in a ‘high yield’ instant access Euro savings account right now is paying 0.2% which is 0.1% after DIRT. But inflation is ticking away at about 1%, so you’re watching €900 of value evaporate every year. If you can get €10k of that €100k out earning 10%, you’re now preserving the long term worth of your savings. And you still retain nearly instant cash access, which is the whole point of holding cash in the first place. This particularly suits someone like me, who wants to buy a site on which to build a house, and may need all my cash at once within days.

But first, a refresher on how modern lending to individuals works.

A brief history of subprime lending 2002-2008

You no doubt remember that the 2008-2009 economic crash had something to do with ‘subprime lending’ in the United States. What the banks did back then was to take lots of mortgages issued to lots of people barely able to afford them (i.e. sub, or below, ‘prime’ borrowers), repackage them by splitting them into small pieces, and resell bundles of small pieces of lots of mortgages to other investors in a primary market of new debt. The theory was that by diversification one reduced the risk of losing your money, because each individual mortgage default could only affect a tiny slice of your investment. This meant that such bundles of small slices of many mortgages could be rated as less risky than just a bundle of ordinary mortgages, and thus the amount of cash that you needed to collateralise the debt could be lowered, and thus more cash put out to earn more profit by lending. This was great, lots of rich folk made lots of money, until enough subprime mortgages soured at once that the entire system collapsed.

Most educated people know the part above, more or less. What they aren’t usually aware of is how the rebundling of debt can suddenly go from fine and healthy to very, very bad so quickly. The reason is because many individual borrowers are hassle to deal with, so a loan originator specialises in dealing with the individual borrowers e.g. with call centers of staff who say no and are mean to people etc. They finance the money that they lend to individuals from wholesale money markets where investors buy collateralised debt which pays interest.

As the investor wants to make sure that the loan originator does not go soft on the borrowers with their money, most investors require the loan originator to fund a certain percentage of the loan out of their own money to ensure they’ll try harder to recoup on defaults, and any losses come out of the loan originator’s money first before any of the investor’s money gets touched. So, if subprime mortgages had a 10% loan originator funding requirement (‘skin in the game’), all is fine right up until 8-9% of mortgages by value default, as the loan originators all start making losses and burning cash reserves. If they run out of cash flow, they cannot pay their ‘skin in the game’ any more on future defaults. This causes the investors to rush to the door to sell, at a discount, their loans to somebody else on the secondary market, which is where people who bought debt can resell it onto other investors for a premium or discount. This rapidly cascades, causing losses to bounce around the entire debt market, until the whole thing collapses under the weight of everybody trying to dispose of souring debt all at once.

As one can see, this entire system is quite brittle. Traditional debt is bonds issued by governments and companies which pay a rate of interest. There is a direct relationship between the borrower and investor, so there is no need for ‘skin in the game’ to keep the middleman acting in the interests of the investor. However, such is the enormous political importance of individual mortgages, personal loans, car loans, credit cards and the like, that when that system collapsed, governments rushed to swap lots of new government bonds (i.e. mutualised i.e. national debt to be paid off by all taxpayers) for all that bad debt incurred by individual firms. That’s what the banking bailout was, the swapping of lots of soured individual debt for national debt, brittle structured debt for simple debt.

Fintech (‘Financial technology’)

Europe is surprisingly the world superpower for Fintech. The US, and then China follow by some distance. My best guess is that there is far more competition here between banks due to all the national champions, but also because there is a much higher hatred of banks, a much stronger credit union movement, and a stronger perception of getting ripped off by banks all the time. This has led to a prevalance of globally dominant fintech startups based in Europe such as Transferwise, who operate something which is awfully close to a fee-free multi-currency bank account, with debit card, and individual account routing numbers per Transferwise account in twenty countries or so, and with extremely low currency conversion and transaction fees. They move about US$60 billion a year, and it’s roughly doubling annually. In fact, all my pay goes through Transferwise, my US employer pays me just like a US employee via ACH. That money drops into my Transferwise account in US dollars, from where I can convert/send/buy stuff1.

If you think it through, Transferwise simply expose the innards of currency trading and bank routing directly to the retail consumer. Your bank always had access to multi-currency accounts, it always could route payments anywhere in the world, and it usually cost it virtually nothing to do any of those things. If you are wealthy enough, rich individuals always had access to those systems, along with a personal bank representative to do your bidding. Now ordinary retail consumers are getting access to those systems, and it is driving down costs, increasing service, and represents major disruption to traditional banks for what was once a very lucrative market niche.

The equivalent ‘big daddy’ to Transferwise in the EU for loan investing by retail investors is Mintos. They are a ‘loan marketplace’ of currently sixty or so commercial loan originating companies from around the world, like an Amazon Marketplace for debt (note that they are NOT like Lending Club in the US, the only loans you see on Mintos come from professional, commercial, lending companies looking to reduce the cost of their own financing. You do NOT lend to individuals directly on Mintos). You can invest in any kind of debt, everything from mortgages to payday loans to invoice financing (bridging loans until an invoice is paid by a supplier), in any of a dozen currencies, in any of two dozen countries around the world, everything from low risk stable rich Western economies, through to risky basket case countries. You can choose each loan to invest in manually, and such active investors can do very well. Or you can automate the investing using bots given investment rules by you to slice up loans into as small or as big chunks as you like, and cut the cognitive effort and maintenance overhead to near zero as the bots run along in the background without your involvement, sending you a daily status update of what they’ve done.

Mintos are far bigger than any of their competitors in their specific niche of exposing commercial debt to retail investors, they already place US$2.4 billion of loans annualy, and annual growth is an eye watering > 300% per annum. Due to their sheer size, you will disperse any amount of investment you place with them very quickly, so there are no problems with uninvested capital sitting around earning nothing because there are insufficient borrowers, like on the smaller platforms. If you need your money back before the loans come to term, there is a large secondary market into which you can sell your loans quickly, instead of having to wait around for weeks or months for all of it to sell like with smaller fintechs. All this makes Mintos a great place to start for the European retail investor, which is why I chose it.

Peer to peer lending?

Some reading may recognise the name Mintos, and wonder ‘isn’t that peer to peer lending?’. Yes, they call themselves that, and yes, all the loans on Mintos are attached to some individual somewhere. But what I would call ‘true peer to peer lending’ is when the investor directly invests in the borrower personally, arranged by the fintech startup as a facilitator, but without a legal middleman in between. That’s the kind of lending which retail banks used to do once upon a time – the bank manager looked at the whites of your eyes, and made a call on whether to take a chance on you. There are lots of fintech startups which do true peer to peer lending in that same mould e.g. the UK’s Funding Circle, but those are not the subject of this series of articles.

The kind of lending which Mintos does is the same kind of lending which big multinational banks do: it’s all a numbers game i.e. you spread many small bets far and wide, and aim for statistically rather than individually successful outcomes. The novelty introduced here is that ordinary retail investors can get in on the act, rather than just the very wealthy and the banks. And said retail investors will get to lose their shirts when the system tips over again as it always does, instead of getting bailed out by the taxpayers.

The relationship with subprime lending in all this is that while you can choose extremely safe debt on Mintos paying maybe 5.5% (currently Spanish mortgage Euro debt is the safest on Mintos, it pays 5.5%), you can also choose ultra-risky debt, such as payday loans to Russians in Rubles, which currently pays 20%, and in which you will either make a lot more if the Ruble strengthens and Russia’s economy improves, or maybe a lot less if the Ruble sags and the Russian economy runs into more trouble. One can of course also create auto investment bots which implement a diversified mix, and then your biggest immediate risk is whether Mintos itself goes under (it is profitable), or more likely, gets hacked and someone runs away with enough money to bankrupt the firm, or fraud or embezzlement by a founding partner occurs etc. But let’s be clear here, the loan originators go to Mintos to get cheaper financing than they can get from the money markets, because the money markets think this debt is subprime, and so charge a higher rate of interest than what they have to pay on Mintos. There is no charity happening anywhere here, this is all about financing subprime debt more cheaply by getting lots of Joe Soaps to hand over their cash bank balances.

In my next post in this series, I’ll have a look at the risks involved in investing in Mintos specifically. In a third post I may then get into potential investment strategies on Mintos, as there are a ton of approaches, all with advantages and disadvantages.

  1. Transferwise are not a bank and therefore do not provide a deposit guarantee. In other words, don’t keep too much money with them, they are not obligated to return any that they accidentally misplace, for example, whereas a government guaranteed bank is so obligated. [return]
Wednesday 8 May 2019: 20:41. One of the great things about this new markdown based post mechanism is that I have regained the ability to place pictures wherever I damn well want, like I used to back in the pre-Google+ era. We went off to the west coast of Ireland last weekend which was a long weekend in Ireland:

Panorama of Fenit bay in Kerry including Lighthouse

As you can see, the weather was pretty great that weekend. It all looked gorgeous. However, nobody could claim that it was warm, it was about 10-12C, and because of the wind off the sea, everybody was generally wearing winter wear, apart from the usual mad ones running around as if it were summer. Still, it was extremely nice to be able to do nothing for a day or two. Not think, work, write, or any of the other stuff that I seem to have to constantly do every available spare hour god sends me.

As you might have noticed, I now have images working properly in the new web site. It took a few nights of tinkering with the Hugo templating to get them to render correctly. They are, alas, going to have to remain being a manually created affair: for the number of times I post images, it isn’t worth the substantial investment that would be needed in the Javascript editor (it would need to handle image resizing, amongst many other things).

But I think I can maybe create a balance. I should be able to upgrade the Javascript editor to write posts in the right layout. I then would manually SSH up reduced size images. The editor would still pick up on those images, and everything would render right in the live preview. A reasonable compromise.

My next post is likely to be a longer one. I’m going to discuss investing in peer to peer lending. Annual rates of return can be anywhere between 4% and 20% depending on your appetite for default risk. There is however platform, lender, and counterparty risks in there too. You ought to not invest any money that you can’t afford to completely lose, should the 2009 financial crash happen again. But more on that later.

Thursday 25 April 2019: 12:21. Link shared: https://youtu.be/Djw6aY0VhwI.

The video of my final expected talk at a C++ conference just went live. Weirdly, it got the highest audience rating of any talk I have ever given. I guess not knowing the topic material gives a good impression!

Wednesday 17 April 2019: 20:28. Link shared: https://www.nedprod.com/editor.html.

This is the very first post using my snazzy new hand-written Markdown new post editor, which you can test for yourself at https://www.nedprod.com/editor.html. I’ve been working on this at nighttimes for a number of weeks now. It live renders the Markdown which you type into HTML. It has a fixed viewport based layout, so each editing pane always consumes half of whatever screen size your browser has, which means it works as perfectly on mobile as it does on desktop. It automatically scrolls each pane so you can see, live, exactly the rendered Markdown for what you are editing. It can insert your geolocation and any link that you want to share. It retains your in-work post in your browser, letting you leave and return to finish it later without the possibility of losing anything. The only major missing functionality is uploading images with a post, and that’s my next task.

It’s been an illuminating refresher in my web programming skills. The first major thing which I’ve learned is that jQuery is finally no longer really necessary. jQuery was amazing for so many years at papering over browser shortcomings, but all the major browsers are now sufficiently quirk-free that one can now write straight in Javascript, and everything pretty much ‘just works’, which is so different to even five years ago. The second major thing I’ve had to master is Docker, because this new nedprod.com website is served by a bunch of Docker containers made by https://mailcow.email/, and in order to ‘poke through’ the containerised security, I had to write my first Docker image and plug it into the other Docker images such that the editor can write new post files, and invoke Hugo on the server to rebuild the website (basically it’s a Docker image serving a bunch of shell scripts over FastCGI. And input is ridiculously sanitised and checked for correctness, plus what you can modify is virtually nothing, even though anything which can modify the site is behind password protection).

The third big thing I’ve learned is just how much easier web programming has become. The tooling is vastly better than it was. Web browsers work consistently, their debuggers are all excellent, you can inspect HTTP exchanges with ease, even newer PHP doesn’t suck anything like as much as it used to. Security is also vastly better than it was, more than half of all the time it took to write this editor went not on the editor, but on figuring out how to run Hugo, because running arbitrary programs on your server is super non-trivial to make work nowadays. PHP simply won’t run external executables any more, which is a very good thing. Docker is very good at preventing you escaping it. I tried many routes before I sucked down the reality that I was going to have to learn Docker, which turned out to be nothing like as bad as expected. Old dog, new tricks in the end, and I can definitely see the big advantages in containerising absolutely everything into its own almost entirely read-only container.

The next minor thing is to get new posts replicating automatically onto Diaspora and other social media. Then comes image upload. Then, I think I’m probably done here for now, barring bug fixes. I could add arbitrary post editing, but to be honest, given I have SSH access and can just go delete bad posts or whatever, I’m not sure I care enough to implement a web UI for any of that.

Someone that I still find amazing is how the world has turned full circle. I have a de-Googlified phone based on https://microg.org/. I have never given over my email to big multinationals, but Mailcow comes with full calendar and todo management, plus a web UI and it takes care of SSL certs using LetsEncrypt for you. So that let me migrate away from Google Calendar, transferring over all the stuff intact, and fully working, and my phone auto-integrates with Mailcow calendar and todos, as well as email.

Now I’ve completely left multinational social media as well. Everything I now do runs 100% on my infrastructure running 100% open source. Nobody mines me for any of my information anymore, except from what can be gleaned from web scraping bots, and tracking cell tower locations, and those are rather hard to prevent. I’m basically back to 1998 when I first started this website, in a way, except the technology is vastly, vastly, superior to what we had back then.

I mean, this stuff auto-curlys my apostrophes’, like Microsoft FrontPage used to until you disabled it. Ain’t that something!

Friday 29 March 2019: 20:09. Long time readers of nedprod.com may have noticed a fairly dramatic change in website theme last Wednesday or so. This is because I’ve ported the whole website from its 1990s-era Microsoft FrontPage roots to Hugo, a modern static website generator. This is probably the single biggest upgrade I’ve ever done to nedprod.com, it has been many months of night times after work writing Python scraper scripts, writing a nedprod.com theme for Hugo so this content would look fairly similar to the previous website, and of course a ton load of manual checking of the automated conversion for correctness.

The previous website was a direct evolution from when it was begun in 1998. Microsoft FrontPage was upgraded to Microsoft Expression Web, various upgrades for new content such as CSS, XHTML, Unicode and microformatting occurred over the years. A fair chunk of custom PHP scripting implemented pseudo-dynamic website features, such as scanning all the XHTML content into an Atom RSS feed, and then rendering that RSS feed dynamically as pages.

That solution served me well, as at that time there weren’t static website generators sufficiently capable that I could move on. However my recent work with Hugo to implement Outcome’s documentation persuaded me that Hugo probably – just about – had enough flexibility to do a high fidelity conversion of nedprod.com.

And I’m fairly pleased with the outcome. The original 1990s tables-based layout has finally been dropped in favour of a modern CSS3 flexbox specified layout. This renders much quicker than before, and it’s noticeable how much snappier the website appears in a browser. We now have local Javascript-based search without having to rely on Google, who kept breaking their embedded search script in any case. We have dropped all scripts entirely from almost all the pages, so pages now load script-free for the first time I think since 1999. We dropped XHTML in favour of HTML5, as we no longer need Python and PHP to process the content as XML. And all the content, even the very oldest content, is now in UTF-8, I found a wonderful Python library called ftfy which will repair unicode corrupted text, if it can, and it has done an amazing job on reconstituting almost all of the older content back to its pre-corruption glory. Oh, and I still have the SQL page visit counters on the top of every page, but instead of using MySQL, it now uses a SQLite database file using PHP’s new PDO generic database framework. The counts were ported over from the old site, plus most of the links have been preserved, so the visitor counts are still accurate.

The new tooling, Hugo, opens many new doors. Firstly, I can now write posts in Markdown instead of HTML – this post is the very first of what will be many written in Markdown. Secondly, Hugo autogenerates a RSS feed for me, and at some point soon I’m going to hook that into auto-posting to Diaspora and Pleroma, now that Google Plus has gone. Thirdly, I should be able to plug an Android app which speaks ActivityPub (probably AndStatus) into being able to post content here. Or I may just make a private web form with Markdown editor which can post new entries here from any web browser, and make that mobile friendly e.g. with picture upload and GPS coordinates etc.

So far, so good. And just in time for the Google Plus shutdown. I made it!

Wednesday 20th March 2019: 8.35pm. So I was complaining last day about how my new Threadripper workstation didn't seem much faster. Today I compiled the entire work codebase. What took over two hours on the Ivy Bridge workstation now takes fifteen minutes! Which is pretty impressive, really.

Tuesday 19th March 2019: 4.36pm. You may remember that I pulled the trigger on a new workstation to replace my six year old Ivy Bridge one:

- Sixteen core AMD Threadripper 2950x @ 3.5Ghz, turbo 4.5Ghz.
- 32Gb of DDR4-3200 RAM @ 64Gb/sec 75Gb/sec.
- 512Gb Samsung 970 Pro NVMe SSD @ 3.1Gb/sec

I spent no less than thirteen - yes, thirteen - hours yesterday during the public holiday pulling out the old system, and putting in the new. Went home after midnight with, finally, a machine booting into Windows, after a very long and frustrating day which included having to cut through sheet metal in the case to make space for my video card, and slicing my wrist on sharp metal. Yay.

Spent most of today installing stuff and trying to get Maystreet's code building again, as after all today is a work day. Just got the Windows build working there, currently working on the Linux build.

So, first impressions of the new platform is how little different it feels to the preceding one. Which is the first time that's ever happened to me in an upgrade! Yes it feels slightly snappier. But it's a "fresh Windows install" kind of slightly snappier, not a "I just dropped over a grand on a new workstation" snappier. Much of the cause is that the preceding Ivy Bridge system also ran at 3.9Ghz, and also had a top end Samsung SSD, albeit SATA instead of NVMe connected. But despite all these oodles of CPU cores and 4x the memory bandwidth, it makes very little difference indeed to perceived latency, for the simple reason that the old system responded in pretty much the same lag as this new one does.

However where you notice the difference big style is compiling Maystreet's code. That used to take a number of hours to compile it all, and a good twenty minutes for a complete rebuild of the subproject I'm working on. This new system does considerably better, it's under five minutes now. Which will be a big productivity bump in the months to come.

Something interesting is that even the ninja build tool rarely keeps more than eight CPU cores busy for long. Occasionally it hits sixteen cores, but it doesn't last long. The build here just isn't parallelisable enough to do better.

In terms of other observations of the new workstation, apart from how awful it was to get it booting at all, since I figured that out it's been boringly predictable. The last time I had an AMD system was over a decade ago, and the chipset drivers just weren't quite as stable nor polished as the Intel ones. So far - albeit it's been just a day - I've seen zero issues. It's been very smooth running, all the hardware has been compatible, everything has benchmarked at speeds you'd expect first time (note my RAM bandwidth is a good bit more than what online suggested, I am running this system in its true NUMA configuration instead of the hardware trying to hide that not all the RAM is equally close to all of the CPU cores). In short, once it actually booted, it's been very plain sailing indeed.

Now just need to find the time to put the old parts onto eBay!

Wednesday 6th March 2019: 9.01pm. Just pulled the trigger on the guts of a new workstation to replace my six year old Ivy Bridge workstation:

- Four core Intel i7-3770K @ 3.9Ghz ("overclocked" to turbo always on).
- 16Gb of DDR3-1600 RAM @ 21Gb/sec.

... with this instead:

- Sixteen core AMD Threadripper 2950x @ 3.5Ghz, turbo 4.5Ghz.
- 32Gb of DDR4-3200 RAM @ 64Gb/sec.

So four times the CPU cores and three times the memory bandwidth. Should be a nice upgrade, I might even notice the difference. I can see that so many CPU cores will be memory starved under load fairly often, but the AMD chip is half the cost of the equivalent from Intel. Or, rather, for the same money you get twice the CPU cores, even if they are around 10-15% slower than the equivalent Intel chip at full load (single threaded things are rather better, only 5% slower or so).

It'll be going into the same case, PSU, graphics card et al, with the old parts going on to eBay to recoup whatever I get. I'll be sad to see my vastly overkill Noctua NH-D14 HSF go, it is so overkill a cooling solution that even under full load, that quad core CPU didn't spin up the fans. Case ventilation was sufficient. The new HSF is also a Noctua, but with just one radiator block and fan. That said, it actually weighs more than the old one, despite being much smaller. We shall see how it fares.

Wednesday 27th February 2019: 9.21pm. Link shared: https://scrapy.org/

Been making good progress on other todo task like items other than wifi routers :). I've been slowly writing https://scrapy.org/ plugins to scrape http://www.nedprod.com's content into a https://gohugo.io/ generated website. Scrapy is a great tool, highly recommended. Once I've converted all that Microsoft FrontPage 1998-era HTML, I can then finish my migration away from Google+ and all megacorp social media who resell my information onto 100% wholly owned and maintained by me social networking based on ActivityPub. I've persuaded the maintainer of https://andstatus.org/ to finish his ActivityPub support, so then I'll be able to post photos, status updates, and all the stuff I normally do from my phone to my Hugo generated static website, which in turn will plug into the federated social network. I don't know if I'll get this entirely done before Google turn Google+ off in April, but let's see how it goes.

On other todo task like items, I have fully migrated my business off its expensive business bank account with a major bank, and I have closed that account. I'm now 50/50 split between TransferWise and Fire.com on the business just in case of Brexit. I've also started migrating my personal bank account to the German https://n26.com/ bank to also get away from the new unavoidable monthly maintenance fees the Irish major banks have just imposed. It's a lot of hassle moving over all the direct debits etc, but so far so good, the German IBAN hasn't been a problem yet.

N26 is okay so far. They're a bank. Not much to see really, though I do like the instant appearance of transactions. Like, you withdraw cash from the ATM, you literally can see the payment go through its stages on the app in realtime. Same for buying stuff with the card. The realtime aspect proves that any bank could do the same, but they can't of course due to all those legacy systems they have.

Their app is pretty buggy, bits of it don't work at all, and it burns CPU if it's open (so always force close it when you leave it). Getting it to work with my de-googlified phone based on MicroG was a royal pain in the ass, it took three hours of fiddling, I eventually got it to work. Badly made app though, whereas TransferWise have a very good phone app that works very well and is the best of the banking type phone apps I've seen so far.

In fact, TransferWise are increasingly becoming head and shoulders above everyone else. The most features, the least hassle, the lowest fees. Shame they are not bank guaranteed though, you just can't trust leaving any significant money with them. And after that recent scandal at that German ePayments company where they were faking the accounts and now people's deposits will get a haircut, that bank guarantee is more important than ever.

Monday 18th February 2019: 10.02pm. Picked up an old Netgear R6220 2x2 11ac router with nasty cheap Mediatek chipset off eBay for €30 including postage. OpenWRT went onto it surprisingly easy, and now it's a second Wifi AP in my house solving the wifi blackspot in my bedroom, and more importantly, the toilet.

OpenWRT has come so very far in the last few years. Easy to install, easy to configure with a lovely GUI, performance doesn't suck like it used to either. And so very, very, very much better that the proprietary firmware they ship with.

Tuesday 12th February 2019: 6.59pm. Location: 52.133541107177734,-8.647699356079102.

Celebrating the new employment!

Tuesday 12th February 2019: 4.09pm. Link shared: http://maystreet.com/

I am pleased to announce that earlier today, I joined Maystreet Inc, a Fintech next generation capital markets platform delivering low-latency connectivity & high-precision data to banks, brokers, etc. This will be a long term gig for me, I expect to be with them for some years building out some very cutting edge technologies which deliver significant competitive advantage. I am extremely glad to not have to return to working in Dublin onsite, a year of that was more than enough.

I interviewed with a lot of other companies since November, indeed a bit of a bidding war ended up happening for me. I'd like to thank those firms for their interest in hiring me long term, and I wish them the very best in their future goals. Most of them were very impressive, and so long as this tech bubble doesn't deflate too harshly, I expect they will all succeed.

Friday 8th February 2019: 9.56pm. Link shared: https://openwrt.org/

Last night I completely replaced the proprietary firmware on the house wifi router (the excellent value 3x3 11ac Archer C7 that just about everybody techie uses for their home wifi) with https://openwrt.org/. Why? The proprietary firmware was actually not awful, but my phone kept losing signal when I'm on the toilet, and it began to bug me that I can't do things like increase the transmit power, or use all of the 5Ghz frequencies available.

Anyway the switch was as easy as feeding its web interface an OpenWRT firmware file (mine is the v2 hardware, they made it not as easy on the v5 hardware). Very, very easy. And OpenWRT is completely different to the last time I used it years ago! It's now got a super easy GUI, a very recent Linux kernel, an enormous collection of installable packages, and of course more knobs and twiddles than you can imagine for configuration. It's a proper full fat Linux distro now, and while the GUI isn't quite as excellent as pfSense's, it's getting close.

Where I am typing this now used to get two bars of signal, and occasional wifi dropouts requiring me to hang the laptop off the edge of the bed to regain a connection. Now that I've quintupled the transmit power and moved my 5Ghz range outside that of my neighbours, I'm now on four bars of signal. Much better. And decent reception in the toilet now as well, so this has been a big win for very little cost or effort.

I did however lose a bit on peak transfer from LAN to WLAN. The Qualcomm chipsets implement hardware data routing for LAN => LAN, LAN => WAN, and LAN => WLAN of which the OpenWRT firmware only uses the LAN => LAN. The proprietary firmware could push Samba => Windows from a Gigabit LAN to the wifi at 77Mb/sec. OpenWRT copies the data in software, and the relatively slow CPU gets pegged at max, dropping Samba => Windows to 60-65Mb/sec. So about a 20% peak transfer performance loss.

This is unfortunate, however it's rare I bulk transfer data over the wifi. And 60-65Mb/sec is plenty fast when the broadband can't exceed 8Mb/sec anyway. So I can live with it in exchange for much improved wifi range.

Friday 1st February 2019: 3.24pm. Link shared: http://www.fsij.org/doc-gnuk/

After three hours carved out to "get it done already", finally got my cheap USB gnuk OpenPGP dongles purchased last August (!) to implement ed25519 on-device crypto for GnuPG and Putty SSH on Windows. That means that (a) I cycled all my encryption keys, which was becoming pressing since I last did so in 2016 (b) even I have no idea what my new encryption keys are, nor can I nor anybody else ever know, because all my encryption is now done 100% on the USB dongle (c) even a nation state actor could now take over my desktop PC, and they still couldn't get into any of my other computers from that PC.

Well, only sort of to the latter point. My USB dongles are really cheap, and are missing a physical button to authorise an operation. So, as long as they are plugged in, and a keylogger has grabbed the PIN code, they can be made to do nefarious work silently in the background. Yes I probably should have sprung for the more expensive models with a button. But, equally, I only ever need to plug these in when initiating a SSH session, which isn't that often in truth, a few times a month at best, and you can just pull out the USB key immediately after you've used it. My git repo commits and authentication still use an on-computer ed25519 key, mainly because if others grab that, it's not the end of the world, I keep backups of all my github repos anyway.

Am I being excessively paranoid? Probably. But it's little cost for a big gain.

Tuesday 22nd January 2019: 1.34pm. Link shared: https://conference.accu.org/2019/sessions.html#XElsewhereMemory

ACCU 2019 schedule just went up. My final C++ conference talk for the foreseeable future is linked, after this there will be no more attending conferences for me. It is on Elsewhere Memory, and will be the most speculative conference talk I have ever given, musing on the possible future of all computing everywhere. I'll be taking the ideas presented here to the C and C++ standards committee later this year.

Saturday 19th January 2019: 6.54pm. Link shared: http://www.nedprod.com/

As preparation for Google Plus coming to an end soon, I improved the Python scripting which mirrors this stream of posts onto http://www.nedprod.com/ to also extract post locations and images and videos. Indeed, http://www.nedprod.com/ is now 100% served from my own servers, and no longer uses Google for anything at all. So Google Plus can now vanish tomorrow, and all my post data - seven years of it now - is safe.

I have no idea what I'm going to replace Google Plus with in a few months time. None of the alternatives I have tried I have found compelling. What I want is a very simple single person ActivityPub client-to-server service which uses the filesystem for storage, perhaps using a https://gohugo.io/ filesystem layout so your post store can double as a statically generated Hugo website. I very specifically do not want databases, Docker instances, or complexity i.e. maintenance. I also would like a server-to-server ActivityPub service which can serve the RSS feed from the Hugo website to the federated social network, but that's much less important right now than the former given Google Plus goes away in April.

Given the lack of any alternative, I suspect that I'm going to have to implement the former myself, which sucks, but it is what it is. At least ActivityPub is well documented (https://www.w3.org/TR/activitypub/), and probably others will find my solution useful to them as well. I'll probably write it in Python, it's well suited for parsing JSON and HTTP, and while we do need scalability in the post database, we definitely do not in the service seeing as it'll only ever be you personally using it. So a simple CGI script is probably fine - though I'll implement it as FastCGI anyway, as nginx can't do CGI.

Anyway, that's next week. Let's see if I'm back to employment next week first before launching into new software projects!

Friday 11th January 2019: 1.19am. Link shared: https://en.wikipedia.org/wiki/List_of_video_games_considered_the_best

Just finished What Remains of Edith Finch, which was on my bucket list for inter-employment R&R gaming. It's basically a slightly interactive series of short stories, the kind of thing Megan would really love. And yes, even with my thick skin of cynicism, I have to admit I enjoyed the three hours or so of "reading" the stories. It did even tug a bit at the emotional heart strings, though I found the ending a bit natch. Definitely worth the tenner I paid for it on sale. I'm also currently playing through the original Walking Dead Tellgame game, yes it has actually sat in the inbox this long despite being listed on https://en.wikipedia.org/wiki/List_of_video_games_considered_the_best. And well ... it's a bit like with Half Life 2. Sure, it's a great game. But it's a bit set-piecey, and you can see the set pieces from miles away, and to be honest there's nothing particularly special in this game, as there wasn't in HL2, that I could see as why people laud it as they do. Nevertheless, I can see myself finishing it, which is rare for me with most computer games as boredom sets in early for me usually. I also picked up a raft of other games on Steam Winter Sale. Spent about thirty euro for six games, all of which are apparently somewhat like Mass Effect 2, which I rate as the best overall game in the 2010s bar none. We'll see how much time I get to play those.

Friday 4th January 2019: 11.38am. Location: 52.10490417480469,-8.690735816955566.

Back in Ireland from our two weeks away in California. Feeling quite rough from jet lag, it'll take a few days to recover properly. Total cost was almost exactly six grand in euro, which was slightly disappointing given my budget was five grand. I underestimated the cost I think of food, restaurants and takeaways were Irish prices in California rather than Indiana prices. I was routinely surprised at how expensive groceries were outside of Walmart. We also dropped three hundred dollars or so on booze, specifically very high end very rare in Europe bourbons and ryes, half of which came home with us (and will almost certainly get their own post, I really lucked out in my choice).

Was this a better break than last year's in Disneyworld Florida? No, Disneyworld was much more of a holiday, this had a significant work and stress element to it, partially because wilderness and nature don't suit small children well and the long drives between places encourage them napping instead of going to sleep at nights, whereas Disneyworld for all its faults is much easier on the adults because it knocks them out and travel and food is taken care of for you. It also cost ten grand in euro of course.

Our holiday in 2019 will be at Halloween rather than Christmas. I expect much less driving long distances, with a corresponding benefit to children sleeping early and well. I also expect more fun stuff which costs a lot of money, so two weeks might be too much for me to afford. We spent a full grand in the last four days because we were in San Francisco doing daily fun stuff! But equally as much as I'd personally like to do nothing whatsoever - which is my definition of time off - bored children would make that an unrelaxing hell. So you either spend lots of money to entertain them and get some peace, or you don't get a holiday. Which sucks, but that's having children for you!

Wednesday 2nd January 2019: 3.36am.

After an hour in a queue for the cable cars, took this fellow to Chinatown. That's the last thing we are doing in San Francisco, tomorrow we fly back to Ireland.

Monday 31st December 2018: 10.31pm. Location: California Academy of Sciences.

Woke at 6am to get into the California Academy of Sciences as soon as it opened in order to snag the first come first served tickets for the planetarium. Here also has a large aquarium, a rainforest (pictured), an icerink and a penguin colony. We've been here five hours now and probably have seen only about half of it, but we are very tired and will shortly leave. That's the problem with such an early rise, you are left feeling awful rest of the day.

Monday 31st December 2018: 5.46am. Location: Fort Baker.

Here is the money shot itself, the view from the Bay Area Discovery Centre, basically a giant under 4's play area. Spent six exhausting hours there today, in the sun at least. Tomorrow will be the Californian Academy of Sciences.

Sunday 30th December 2018: 4.42am. Location: Best Western Coyote Point.

Today headed up the coast back to San Francisco along the world famous Route 1 which is a very scenic drive indeed. Very twisty, poor Henry puked, so had to drive the rest of it with the aircon on max and him screaming with hunger. Yay. Stopped off at Nepenthe, that's the view before, spent 70 dollars buying brunch which took an hour to arrive. Still, the view and the sun and the fact the kids were so happy to be out of that car, and therefore behaving, made it quite pleasant indeed. We are now back in San Francisco, three days to follow here mostly on child centred tourism.

Sunday 30th December 2018: 4.32am.

Decided yesterday to forego the beach and the coast, and head back up route 42 to Paso Robles, which turned out to be a very wealthy town. Visited a farm and a winery. A very easy day, relatively speaking. Once again nothing but cloudless blue skies, but cold as soon as you leave the sun.

Friday 28th December 2018: 1.22am. Location: 35.64356994628906,-121.18547058105469.

End of Hearst castle pier looking up at Hearst castle, which we will not be seeing due to our incompetence at not prebooking tickets before we arrived, sigh.

Click here to see older entries

Contact the webmaster: Niall Douglas @ webmaster2<at symbol>nedprod.com (Last updated: 2019-03-20 20:35:06 +0000 UTC)