Welcome to ned Productions

by . Last updated . This page has been accessed 1,237,106 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

Friday 27 September 2019: 12:34. I finally got in the replacement for that bad RAM stick as mentioned in my previous post about fitting 128Gb of RAM to my Threadripper rig, so I can at last report memory bandwidth.

As a reminder, I have fitted 8x M391A2K43BB1-CTD Samsung 16GB DDR4-2666 ECC UDIMM PC4-21300V-E Dual Rank x8 Module sticks in order to make 128Gb of RAM for my AMD Threadripper 2950X workstation with an Asrock X399 Taichi motherboard. These are not on the QVL list for any X399 motherboard, so it was a shot in the dark, but it turns out they work well, and overclock happily to DDR4-2933 @ 1.35v 16-15-15-36-50 by simply keying in the values in the BIOS. ECC automatically enables itself, it all “just works”.

My previous RAM was 32Gb of GSkill at 3200 16-18-18-38-56 from the QVL list. It saw 94,074 Mb/sec @ 67.7 ns.

New RAM sees 87,913 Mb/sec @ 71.2 ns. That’s 6.55% less bandwidth, and 5.2% worse latency. Not bad given the Threadripper’s internal fabric is running 6.4% slower. It won’t boot faster than 2933, can’t say if that’s the eight sticks fitted, or the RAM itself. Others on the internet think it is the eight sticks fitted, so no point in buying RAM faster than 2933 if you’re fitting eight sticks.

For the very cheap €564 ex VAT price I paid as compared to the alternatives for 128Gb of RAM, all of which cost a lot more, I’m very happy with my purchase. Very little loss of memory performance for oodles more capacity, and you get ECC!




Sunday 1 September 2019: 22:11. I didn’t expect to make another post on my Mintos subprime lending investment so quickly, but I made a major investment change last month, and I thought it worth writing about.

If you remember that in this post, I was two thirds invested in a single loan originator, ExpressCredit, who mainly lend to the Botswanan middle classes. About half way through August I divested from ExpressCredit completely, and now my portfolio is distributed thusly:

I am now split mostly between Capital Finance, a Polish lender, and ID Finance, a Kazakhstani lender.

To divest, I sold all my ExpressCredit loans on the secondary Mintos market at par (i.e. no premium). The bulk of them sold within ten minutes, far faster than I expected – in hindsight, I should have tried asking for a premium for them given their particularly high coupon rate. Because the Mintos auto investment bot has a minimum granularity of €10, interestingly after ten minutes most of my loans had something less than €10 per loan remaining – something to be born in mind when setting diversification actually, perhaps a minimum auto investment bot loan amount of €10 makes it harder to very quickly cash out. Within a day though, human buyers had cleaned me out completely for the small remainders, and I was completely free from ExpressCredit.

Selling out half way through the month meant losing the interest payments for half of the month for two thirds of my investment, so naturally this month took a big hit from preceding months:

MonthAnnualised return for each month
June 201916.24%
July 201916.56%
August 201910.38%

It’ll recover considerably next month, but another thing which I should have done was to sell loans after they have just paid out. Not mid-month.

So why so spooked about ExpressCredit? Two things. The first was that https://explorep2p.com/mintos-lender-ratings/ dropped their rating like a stone, by 31 points from 53 to 22, and I don’t invest in anything under 30 points. They made a very hefty loss last year after many years of profits, and now have a negative equity balance sheet, which is bad. The second is that there is surprising political turmoil in Botswana just recently, the worst they’ve had in their entire country’s history, there was an article in the Economist about it. So I panicked, and probably lost about €30 of income for not timing and pacing my sale better.

On the other hand, it sure does prove the liquidity of Mintos’ huge market. They have now funnelled €3 billion of investments through themselves, so they have a ton of users. So if you want to cash out quick, you can be free and clear (if you have loans others want to buy) within 24 hours judging from this single experience.

Which is good to know. My cashed out investments were soaked up by others (I told my investment bots to heretoforth exclude ExpressCredit) within a day or two at the highest rate I could find, which is a fair bit lower than what ExpressCredit were paying. So I expect monthly annualised returns to be more of the 13-14% variety moving forwards.

#mintos #p2p-lending

Has this blog post interested you in joining Mintos? Want to get a +1% Mintos joining bonus?

If you join Mintos using this affiliate link, you'll get 1% of your investment back as extra cash balance after 30 days! For example if you invested €10,000 on Mintos, after one month you'd get €100 added to your Mintos cash balance.

You’d also thank me for writing these series of posts on Mintos and P2P lending, because I’ll also be rewarded for bringing you to Mintos. Everybody wins!

My thanks to you in advance for your donation!




Friday 30 August 2019: 12:54. Last post I mentioned that I had plumped for 8x M391A2K43BB1-CTD Samsung 16GB DDR4-2666 ECC UDIMM PC4-21300V-E Dual Rank x8 Module sticks in order to make 128Gb of RAM for my AMD Threadripper 2950X workstation with an Asrock X399 Taichi motherboard. These are not on the QVL list for any X399 motherboard, so it was a shot in the dark. But for €564 ex VAT they were a steal, and one or two reports on the internet said they could be overclocked easily to 2933 at tight timings, after which the Threadripper supposedly won’t go faster due to the 8x RAM sticks in any case, so buying faster RAM seemed pointless, and the ECC and Samsung chips seemed a great bet for the money.

I can report no disappointment. One of the sticks was faulty, so I cannot usefully report bandwidth, but these 2666 sticks will happily do DDR4-2933 @ 1.35v 16-15-15-36-50 by simply keying in the values in the BIOS. I haven’t changed anything else from stock.

I did try CAS 14, but it won’t POST. Internet says that Threadripper rounds odd numbered CAS up to even in any case, so that report of CAS 15 working I mentioned last post he was probably at CAS 16 and didn’t realise.

2933 @ CAS 16 = 10.9 ns. My previous GSkill RAM was 3200 @ 16-18-18-38-56 = 10 ns. Benchmarking the difference in Windows, this overclocked Samsung RAM is now exactly on par with default configuration Threadripper v2 @ 71.2 ns main memory latency, whereas the previous faster GSkill stuff benchmarked at 67.7 ns, which is a 5.2% increase in latency from the CPU.

How much of that is due to the main memory being slower, or simply the Threadripper’s internal fabric running 9% slower, I cannot say. I would say that the non-CAS timings are much tighter for the Samsung memory, so maybe that explains why the latency increase from the CPU is half as bad as the internal fabric and RAM would suggest.

Anyway, all in all everything seems to be working fine with this 128Gb temporarily minus 16Gb setup, and the ECC is operating correctly according to Windows (no indication in the BIOS though). Just need the defective stick to be replaced, and I’ll be able to tell you about effects on memory bandwidth.




Saturday 24 August 2019: 00:17. Spent this Friday evening implementing tags support for this website, such that say #meetingcpp would now list all posts which tagged #meetingcpp. You can even see a list of all tags, where you will find much evidence of the automated conversion script which generated this Hugo website from the original website.

I don’t have a huge amount to report, really. Tipping away at work, making hay before the next recession bites, which is very soon now, only the US is not in recession, and it’ll tip soon now as well making a global universal economic recession. So best to husband ones resources in my book, though I expect this to be a mild recession. I did have to buy this week an unholy 128Gb of RAM for my Threadripper workstation for work reasons. When I bought it last May, I fitted it out with 32Gb which seemed reasonable at the time. And it would have been, but a work project sucks down 20Gb of RAM, and under the ThreadSanitiser that explodes to about 80Gb. So, I must buy 128Gb, which is an insane amount of RAM.

AMD Threadripper v1 and v2 didn’t get anything like the RAM compatibility testing which Intel HEDT gets, so finding 8x 16Gb RAM sticks which are known compatible with Threadripper was very hard. Or, rather, you could find quite a few underclocked 128Gb RAM configurations on the motherboard vendor QVL lists, but very little information on which specific RAM stick model numbers would work at high speed in an 8x configuration. Almost nobody fits 128Gb RAM to Threadripper in other words, or rather, very few of those who do do not post what works onto the internet.

Given the cost of 128Gb of RAM (approx €600-€1000 ex VAT, depending on speed and CAS latency), even in these days of super-low RAM prices, I had no choice but to take a shot in the dark. After a very great deal of weighing of options over two weeks of research, I ended up plumping for 8x M391A2K43BB1-CTD Samsung 16GB DDR4-2666 ECC UDIMM PC4-21300V-E Dual Rank x8 Module sticks. Motivating factors were:

  1. Samsung memory sticks (Threadripper is known to particularly like Samsung memory)
  2. ECC memory sticks (so I can tell what is a reliable overclock)
  3. Cheaper than the alternatives

The fastest I could find on any QVL list for full x8 stick occupancy for the AMD X399 chipset was HX430C15PB3K8/128 Kingston HyperX 128 GB (Kit 8 x 16 GB), 3000 MHz CL15 DIMM XMP, made from Hynix RAM chips. This is on the QVL list for a Gigabyte X399 chipset motherboard, same chipset as mine, but not mine. And not ECC RAM. Best price I could find was €647 ex VAT.

Best single online user report of full x8 stick occupancy compatibility that I could find was F4-3200C15Q2-128GTZ G.SKILL TridentZ Series 128GB (8 x 16GB) 288-Pin DDR4 SDRAM DDR4 3200 (PC4 25600), supposedly made from Samsung B-die chips. Not ECC RAM. Best price I could find was €779 ex VAT.

Contrast those to the Samsung M391A2K43BB1-CTD, 8x of which I found for €564 ex VAT. This is theoretically way slower RAM, 2666 @ CAS 19 is 14.25ns, whereas the Kingston will do 3000 @ CAS 15 = 10ns. But the four – yes just four – online user reports of using Samsung ECC RAM with Threadripper which I could find suggest that it overclocks very well. The native 2933 of Threadripper v2 @ CAS 15 is apparently easily achievable with Samsung ECC RAM rated for 2133, just force an overclock. I thus hope that my considerably more modern 2666 Samsung ECC RAM will make 3200, and if not, 2933.

(The 3200 is because Threadripper v2 shows an excellent performance improvement up to 3200, but not so much thereafter. AMD chose 2933 over 3200 because of idle power consumption rather than sweet spot performance, it’s about a quarter worse in idle power)

I’ve had my Threadripper workstation for about five months now. I really must recommend it, if you can afford it. It’s been utterly rock stable, much more so than the Intel system which preceded it, or even the Intel one before that. In fact, it’s as rock stable as my last AMD system, which was a server-grade dual-Athlon workstation which I had 2001-2007, which apart from its hideous idle power consumption of 270w (??? my memory may be faulty?), was a great computer. And why I kept using it so long. Threadripper superlative stability isn’t that surprising, Threadripper is really an EPYC server-grade CPU, just with half its memory channels disabled, so you get that server-grade reliability from all the conformance and reliability testing which they do for server, but not consumer, hardware.

Indeed, such has been the solidity of my existing Threadripper system without ECC RAM, that I would wonder what benefit ECC RAM would actually bring? Sure, I understand the statistics, but the probability of a random cosmic ray bit flip affecting anything important are vanishingly small in 128Gb of RAM! Anyway, let’s hope that the new RAM POSTs at all. It should arrive early September,




Thursday 1 August 2019: 20:32. This is the third part of my post series on retail investing in subprime debt via p2p lending, specifically the ‘Amazon Marketplace’ of European loan financing Mintos.

The first part gave some background and recent history of evolution in debt financial technology, and explained how the stuff which caused the 2009 financial collapse is now available to Joe Soaps like you and me, rather than just to traders inside large financial institutions such as investment banks. This means that the outsize financial risks, and profits, formerly available to a ruling elite are now available to anybody with a spare few grand i.e. you can now directly profit from subprime lending, and directly take the hit when it collapses rather than governments bailing out banks.

The second part described the risks involved with investing specifically with Mintos, specifically (i) Platform risk (ii) Loan originator risk (iii) Moral risk (iv) Maintenance risk (v) Sale risk (vi) Currency risk.

This third part will be on how I have personally configured my own investments on Mintos, given my extremely conservative preferences to neither cause harm to others, nor to take any risk of losing any money ever:

  1. No investing in payday loan debt. It is morally repugnant (avoid moral risk). See part 2 on what happens to payday borrowers in poor parts of Europe who default on their debt.
  2. Euro only investment, as I don’t want to take on currency risk.
  3. Never ever lose money, even if it hurts absolute returns (minimise loan originator risk).
  4. Aim to only earn inflation on a cash pile sitting in banks (minimise platform risk).
  5. Keep maintenance risk low by automating as much as possible, as I don’t get much free time nowadays to hover over things.

Indeed, this post is several months late, due to that lack of free time thing just mentioned. Sorry about that, however the upside is that I now have two full months of earnings data which I can report:

MonthAnnualised return for each month
May 20194.49%
June 201916.24%
July 201916.56%

These are my own calculations incidentally, rather than those supplied by Mintos. The Excel formula, in case you are interested, is pow(pow(thismonth/lastmonth, 1/daysinmonth), 365.25)-1 (i.e. figure out the decompounded daily interest rate, then compound that to a year).

The low return in May was because I was taking investment slowly, as I learned the ropes, but I let the bots invest everything completely by end of month. Thus June and July are rather better, indeed a ~16% annualised return is extremely healthy, considering that my pension gets less than 6% per annum! However, equally, as described in the previous posts, this sort of investment is a lot more brittle than investing in a mutual fund – as the investment can only go upwards, that puts a lot of pressure on the loan originator’s finances if the market ever sours, which means you may lose all your investment with that individual loan originator. Hence diversification of which loan originators you invest in is important.

Speaking of which …

  

Note the overexposure to a single loan originator, ExpressCredit which is an African loan originator, which was due to a mistake by me which caused the investment bots to go further than I had intended. For similar reasons, most of my investment ended up in Botswana, which is actually not an unhappy accident (Botswana is stable and wealthy for Africa, quite similar to Portugal in absolute terms actually, and it’s their relatively wealthy middle class who have taken my money). This isn’t the end of the world, as capital is paid back monthly with interest, thus one’s investment in any one place naturally shrinks quite quickly. In fact, it was originally three quarters ExpressCredit, and in just two months it’s unwound to 60% already. So, if you make a mistake on Mintos like I did, just fix the investment rules, and be patient and let it unwind naturally.

So how did I set up these investments? As described in previous posts, you must configure the Auto Investment bot with the rules by which it must invest:

This is the list of auto investment bots that I currently have (note that some are disabled, you can turn a bot on, let it run, turn it off if that suits your requirement). They are in priority order, so bot number 1 is run first, then bot 2, and so on. You will note that bot 4 excludes ExpressCredit, as I am reducing my exposure to them to improve diversification.

Each bot can be given a name, mine are fairly boring. It will be told whether to invest in the primary market (newly issued loans to buy) or the secondary market (other Mintos users selling their loans), and various parameters like minimum interest rate, loan term, minimum and maximum investment per loan, and maximum portfolio size for that investment bot. Be careful to set the maximum portfolio size low when changing anything, else you’ll end up investing three quarters of your money in a single loan originator like I did.

Within the auto investment bot’s editing page, there is a very long list of all the loan originators. You can individually set rules for each, include or exclude them, and so on. Please do not manually create this bot by hand, you can actually create an auto investment bot from a search. So, create the search, screw down tightly all the possible parameters, then create an auto investment bot from that search. Much quicker!

Given how many loan originators there are to choose from, I have made this screenshot scrollable. Scroll it using the right hand scroll bar:

You will notice that quite a few of the loan originators are completely unticked. These are the loan originators scoring at the bottom of http://explorep2p.com/mintos-loan-scanner/ rankings, and I explained it in part 2 of this post series. The current exclusion list, at the time of writing, is Bino, Dineria, EuroOne, Getbucks/Mybucks, Kuki, Kredo, Metrokredit, Peachy, Rapicredit, Rapido, Sebo, Simbo, Tigo. These are all loan originators with weak balance sheets, or are loss making, and thus have a higher chance of bankruptcy and your investments with them getting lost or written down.

Less obvious is that in the column headings, there are more things unticked. I have unticked C and D rating, so loan originators not rated A-B by Mintos are excluded (I don’t hugely trust these, there is a conflict of interest for Mintos rating them, but it’s worth combining an exclusion of these with those from explorep2p above). I didn’t actually untick any countries, but I did untick loans without Buyback Guarantee i.e. the capital will be repaid in full after 60 days if the loan becomes sour.

At the top of the screenshot, I expanded out the settings for one of the loan originators. Firstly, you want to double check that the the white shield is ticked and not the shield with the cross, as that is the Buyback indicator. Secondly, you probably only want the bot to choose current loans i.e. ones not in arrears. Thirdly you want to exclude loans with ‘weird’ repayment structures, like interest-only payments with the capital only repaid at the end (these have an obviously high chance of default right at the end, so you wait around 60 days to get your capital back, which is 60 days not earning), so choose an Amortisation Method of ‘Full’. Finally, to exclude usurious loans, set the maximum borrower APR to 100%, and to exclude payday lenders who claim a 0% borrower APR%, set the minimum to 0.1%.

Some may feel that a 100% borrower APR is very usurious, and by the West’s standards it would be. However, it’s actually a function of the local economy. In Botswana, typical loan APRs to the wealthy middle classes are in the 40-80% range because overheads are so high. Collateral is hard to value and expensive to seize, administration costs are high, and company profitability needs to reflect the risks taken (ExpressCredit is very profitable indeed, incidentally). So in the end, it’s all relative.

Towards the bottom of the screenshot (scroll the image above downwards), I tell the bot to only choose loans paying 15% or more, and with a term no less than two months. The latter is another way of excluding payday lenders, who almost entirely lend for a month or less.

Finally, at the very bottom, there is the all important Portfolio Size. This is the maximum that this particular bot will invest. Set it low to begin with. The Investment in One Loan determines the minimum and maximum investment per loan that the bot will do. You cannot go lower than €10. The maximum determines how diversified your investments across individual loans will be, but setting it too low will slow down how quickly an initial capital sum gets invested, perhaps from hours to weeks if your other investment parameters are too rarefied (and loans paying 15% or more is definitely rarefied). A €10 maximum is probably too low for quick investment with these parameters, €25 more than halves the cash drag (the time investment money remains in cash, and not earning).

Moving over to the option boxes on the right, choosing to reinvest means whether after a monthly payment is received should the bot invest the cash in new loans back up to the portfolio limit, if that is possible according to the rules you set. Usually for most bots you want this to be Yes. Including loans already invested in means that if after a loan instalment the amount invested in an individual loan is below the maximum, it will be topped back up to the maximum, if the rules are met, and more of that loan is available. You probably want Yes for that one as well. Finally, the Diversify across loan originators is a bit of a misnomer, it really means ‘do you want to override the default loan originator diversification algorithm?’ which is to diversify investments according to the average weight of each loan originator’s total loans on Mintos. As the default is a very sensible default, you probably want No to that question.

Auto investment bots for the secondary market

As you may have noticed in the total list of bots above, I have it grab loans at >= 15.5% from the secondary market and at >= 15% from the primary market, on the basis that loans sold by other Mintos investors are more likely to be lemons, even if the bot only invests in non-delinquent loans. When configuring bots for the secondary market, it is very important to set the max premium to 0%. This is because loans can be sold with a premium or discount on the secondary market, and most people naturally try to get a premium first, and if and only if they can’t sell the loan, do they drop the premium. Those in a hurry to cash out obviously charge no premium, or even give a discount.

Why it is so important to configure the bot this way is because loan originators can repurchase the loan from you at any time. When they do, they pay its net value. That means that if you paid a premium, you lose that premium. This repurchase in full happens quite frequently in fact, the loan originator may have found a cheaper source of financing, or the borrower simply repaid early. This is why you must avoid your bot paying premiums on secondary market purchases, it loses you money.

Too complicated? There is a ‘I don’t want to think’ choice …

Finally, if all the above is way too complicated for you, you can just invest your money diversified across all of Mintos equally without having to tick nor configure anything. This is called ‘Invest & Access’. Simply set how much you want to invest, and it’ll distribute it across all the loan originators according to their total weight on the Mintos platform.

One big advantage of choosing this method is instant cash out, no need to bother with manually selling your loans on the secondary market. But be aware that you can only instantly cash out those loans which are not delinquent, so investments via this mechanism are instant cash out only up to the current weighted average delinquency rate on Mintos.

What this means is that ‘Invest & Access’ is particularly prone to whenever p2p subprime lending comes crashing down: you’ll get exactly the average proportion of loan originator defaults on all of Mintos. I cannot guarantee that the manual investment method will be either better or worse of course, but I would like to think that the careful exclusion of the weakest loan originators as according to explorep2p might help.

Finally, a warning!

I don’t want to beat the dead horse much further, but I do want to close this post reminding readers that this is a risky investment. If a mutual fund on the stock market returned 16% per annum during a bull market, it achieves that because it is also able to lose 16% per annum during a bear market.

This variant of p2p lending that I have described has only upside, in normal times. Your money can only rise, or not rise, but never fall. But for this to work, during an economic downturn that means someone, somewhere, must foot the bill for rising bad debt. When their reserves exhaust, they’ll go bankrupt, and thus exhaust the reserves of their creditors, causing more bankruptcies, and so on. That’s what economic downturns do.

So be very careful here. Bankruptcy happens slowly, and then suddenly. Loan originators will look strong, and then suddenly go bang. So long as the ~16% returns will be more than the amount that you will lose when an originator goes bust, stick with Mintos. As soon as you believe that this may no longer be so, time to get out, and remember lots of other Mintos investors will be doing exactly the same i.e. there will be a run on Mintos, people will have to sell their loans with large discounts in order to shift them quickly.

Good luck!

#mintos #p2p-lending

Has this blog post interested you in joining Mintos? Want to get a +1% Mintos joining bonus?

If you join Mintos using this affiliate link, you'll get 1% of your investment back as extra cash balance after 30 days! For example if you invested €10,000 on Mintos, after one month you'd get €100 added to your Mintos cash balance.

You’d also thank me for writing these series of posts on Mintos and P2P lending, because I’ll also be rewarded for bringing you to Mintos. Everybody wins!

My thanks to you in advance for your donation!




Saturday 8 June 2019: 00:54. My new Dell XPS 13 9380 arrived earlier this week. Interestingly, they are manufactured to order, so literally minutes after they take payment from you on the Dell website, your new laptop according to your chosen spec goes into production, and a few hours later after QA testing, it gets dispatched straight to a courier to deliver it to you. You can watch the tracking, straight from the Chinese factory (Compal is the ODM manufacturer for the Dell XPS 13), right to your door. Food for thought, given recent rising trade war tensions!

I bought the Ubuntu rather than Windows edition, as it’s €100 cheaper and I have a licensed Windows I’ll be taking off this Macbook on which I am currently typing, probably for one of the last times (its contents are currently being duplicated onto my ZFS storage array, from where it will be copied onto the Dell). I was also aware, from research, that the Ubuntu edition has a higher chance of arriving with Samsung rather than Toshiba NVMe storage (you really want the Samsung), and the Sharp rather than OU Optronics 4k display panel (again, you really want the Sharp panel). What you lose is the fingerprint reader built into the power button, which doesn’t work in Linux anyway because the assholes encrypted the USB stream and refuse to let anyone use it. So as much as fingerprint login would indeed have been nice, I expect I’ll be awaiting a few years more yet (the fingerprint reader on the MacBook didn’t work in Windows).

I’m glad to report that my Dell does indeed have a 512Gb Samsung NVMe drive, and the 4k Sharp panel. The Samsung drive is an OEM edition of the 970 EVO, and it is very fast indeed, at least for the first 20Gb of sustained writes. As for the 4k Sharp panel, when I first logged into Ubuntu I found it deliberately drops the resolution to 1080p, which is exactly one quarter of the 4k panel (video still renders at 4k). This turns out to be the fault of GNOME, which I dislike anyway, so upon installing KDE and telling KDE to triple the size of the fonts, voilà, there is my 4k GUI.

And it looks very nice indeed. I downloaded some 4k HDR content, played it back, noticed that it does struggle a little with keeping the framerate smooth for 4k content @ 60 fps. Probably fixable if I tinkered with the Intel drivers, the video is actually being decoded and rendered in hardware by the onboard Intel graphics chip, and I’m very sure it’s a driver issue. 4k content @ 30 fps is absolutely fine.

However, the content doesn’t actually render in HDR. Turns out that Linux is still not capable of rendering HDR content, unless you’re on Wayland instead of Xorg. I tried Wayland, and it was a disaster. Far too slow to keep up, at least in Ubuntu 18.04.

That prompted me to install Windows which I needed to do anyway, and after a lot of head scratching I discovered that Microsoft have removed the HDR video codecs from the latest Windows, if you install it clean. If you upgraded, the HDR codecs remain. Arse, and hardly intuitive. No helpful error messages, just a black screen. Thank you Microsoft. I ended up falling back to VideoLAN, whose latest version has direct support for Intel onboard graphics decode of HEVC HDR 4k content, and the HDR videos there played just fine, and in glorious HDR.

What looked merely very nice indeed in Linux now looks glorious. This is a better display, by quite some margin, than my 2016 MacBook. It’s not just the colours, and the ‘pop’ of the HDR video. It’s also simple stuff like text – the MacBook is no slouch with its 2.5k resolution panel. But text, and fonts, on the 3.8k Dell panel are noticeably sharper and clearer, as much as the +50% extra pixels would suggest. Text looks like a printed page, whereas on the MacBook text looks quite fuzzy in comparison, even when not comparing side by side.

So on the display panel at least, the Dell wins by a long shot, though it is much less verticially high, 16:9 ratio instead of 16:10, which is a noticeable regression. Using the machine I find it noticeably snappier, whether that’s simply a fresh Windows installation, or the four core CPU rather than two core CPU, I cannot say. But on every other factor, the Dell is inferior. Wifi is 2x2 11ac rather than 3x3, so bulk transfers over Wifi take a good bit longer. The keyboard backlighting has two stops, 100% or 50%, unlike the graduated MacBook backlighting. The Dell screen won’t drop anything like as low in brightness, making it annoyingly bright to use in a dark room. The keyboard, whilst better than average, isn’t as nice to type on as the MacBook’s, though undoubtedly much more reliable. The touchpad isn’t a patch on the MacBook’s world class pressure sensitive huge area with its famous faked ‘clicking’. Battery life is perhaps seven hours, instead of nine hours.

And perhaps the biggest delta of them all is the laptop speakers. The Dell’s are not awful speakers. But they’re in a different league to the MacBook’s speakers. Even in Bootcamp Windows where the bass mysteriously disappears, the MacBook has far better speakers than the Dell. And if booted into MacOS, it’s not even a meaningful comparison between the two, the MacBook’s speakers are a world away from the Dell’s, particularly in the bass and high ends, which the Dell’s speakers don’t appear to emit at all. Don’t get me wrong, the Dell’s speakers sound as good as a high end phone, like my HTC 10. They are good speakers, for a laptop. But they’re night and day to the MacBook Pro’s speakers, which make an honest attempt at actually replicating faithfully the source audio, even if falling far short of headphones.

So, as anticipated before purchase, the Dell XPS 9380 is indeed inferior to the MacBook Pro on most counts, even a 2016 MacBook Pro. But, then again, it does cost 60% less.

Returning to Ubuntu, when I first started using it on the Dell I was like “wow hasn’t Linux become so mature”. But then I used Windows on the same hardware, and yes, Linux is better on a laptop than it has ever been. But it’s still inferior to Windows on the same hardware. 4k HDR video @ 60 fps after all, but also Windows got the 4k display correct out of the box. That said, Linux power efficiency is finally commensurate with Windows. I spent a fair few hours trying to tweak the Linux config for improved power consumption, i915.enable_psr and all that, and I actually found all the internet advice (for older editions of the XPS) is actually a pessimisation. The only kernel setting which is worth applying, according to my empirical testing, is “mem_sleep_default=deep” which forces S3 rather than S1 for sleeping the laptop. This reduces battery drain when the laptop is ‘off’ in Linux very markedly, perhaps roughly half by my measurements. Not as good as on Windows, but not dissimilar. And far away from the battery draining completely within a day, like it was before.

Other than that, all the other parameters I fiddled with didn’t seem to make any empirical difference. Well done Dell on finally shipping an Ubuntu with your laptops that is reasonably customised to the hardware quirks that you are shipping!

This MacBook Pro, after being securely wiped and factory reset, shall be heading off back to Apple to get its keyboard and panel display power cable replaced under Apple’s product defect remediation programme. After that, it’ll be heading to eBay to recoup as much money as I can get for it to offset the purchase of the Dell laptop.

I don’t regret buying the MacBook. I got three years of a pretty good laptop experience for about €1000 of depreciation. It was the best ultra portable laptop at the time, and probably still is today. But as mentioned in my previous posts on this topic, the Dell XPS 13 is far, far closer to a MacBook Pro than it was, and for much less money. From my first week with the XPS 13 9380, I am currently finding the downgrade to be eminently worth the money saved. The Dell is a better bang for the buck laptop. And oh my, that 4k display really is quite something to behold, even with its dire impact on battery life and graphics performance. After all, most of what you do with a laptop other than typing and touchpadding is looking at the thing. Plus no more paranoid hygine around the keyboard, I just ate a slice of toast there two meters away from the MacBook keyboard, for fear of jamming the thing up again. Once I’m onto the Dell, I can return to relaxation, eat when watching movies etc. For an estimated €700 of depreciation over the next three years, so far all is looking well!




Saturday 1 June 2019: 21:34. As I do this time every year, here is my linear regression estimating the storage capacity per inflation-adjust dollar trends newly updated for June 2019:

The big standout this year is the enormous drop in the price of flash storage over last year. Right now, you can buy more than twice the size of flash drive for the exact same money as this time last year. This is why the bytes-per-dollar for flash drives this year has jumped up above its trend line, though if you look closely, flash storage has actually resumed the trend line it was on up until 2015, after which it stagnated for a few years. The cause for such a value improvement is the current massive surplus of flash storage on the wholesale market, manufacturers are drowning in red ink trying to shift stock before the world economy enters recession again, so the current prize bonanza won’t last. If you were on the fence about purchasing a NVMe Samsung 970 Pro SSD, you can pick up a 512Gb model for about €160 right now. Crazy cheap for what is a stonkingly fast drive. I should know, I bought one for my new Threadripper rig, even though I know that you can get a 1Tb 970 EVO Plus for just a little more money, and it’s just as fast up until its SLC cache runs out (after about 60Gb of writes without breaks).

Spinning rust storage continues its steady improvement. They are clearly trying to clear out the stock of 4Tb drives, those are selling super cheap right now, you can see its marker standing out above the others.

The other news is that, as I predicted this time last year, Intel have no intention of making XPoint non-volatile memory price competitive with flash storage. As I suggested this time last year, I think they’re going to track the price of flash storage, but at 3x the price per byte as their stuff is superior, and if you need what XPoint provides, you’re going to pay up. That said, the large improvement in flash storage pricing means that XPoint is now 8x the cost, and while it might be 3x better for QD1 random 4Kb read latency, it’s definitely not 8x better, so Intel may have to cut their margins.

In case you’re looking for the raw numbers for all the historical prices, you can find them at https://www.nedprod.com/studystuff/SSDsVsHardDrives.xlsx.




Thursday 23 May 2019: 21:01. In my last post on this topic, I explained how European retail investors can now invest in subprime debt via Mintos, an ‘Amazon Marketplace’ of loan financing, where you can slice and dice your micro-investments into many loans diversified across currencies, countries, types of loan and invidual loans. The loans on Mintos are supplied by loan originators: commercial, professional lenders who reduce their cost of financing subprime loans by getting Joe Soaps like you and me to hand over our cash bank balances. We, in return, can earn anywhere between 5% and 20% per annum, optionally with our capital guaranteed by the loan originator, so even if an individual borrower defaults, you won’t lose your investment.

As I explained in general terms in the previous post, this sort of investment is brittle. In the longer term, roughly once every twenty to thirty years per region, the entire system collapses and needs to be bailed out by the government. Having already discussed the big picture risk, I wanted to dig into the specific risks of investing specifically on Mintos, which is by far the largest fintech of its kind in Europe, and perhaps will soon be unquestionably also so anywhere in the world given it is growing at ~350% per annum.

My third and fourth posts on this topic will discuss my personal strategy for investing in loans on Mintos, but before that, I’ll try to list all the risks which I personally can see on Mintos, ranked in order.

1. Platform risk

This is the main reason I avoided investing any money in peer to peer lending platforms at all until now: I don’t trust the security of 98% of web platforms. They are generally written in a rush by inexperienced, underpaid developers, insufficiently tested, and other people’s money is not given sufficient care of duty. Very frequently, startups get hacked, money rerouted or stolen, and your money goes missing. Most startups can afford to silently replace stolen monies up to a point, but past a point they go bust, and you lose everything.

And even if there is some competent programming and testing going on, and an arm’s length secure storage of other people’s money is rigorously enforced, then you have big risks in one or all the startup founders running off with your money, secretly competing against investors or tipping the playing field in their favour so you on average lose out, and lots worse still.

For all these reasons, I have avoided this entire area completely for the past two years. And I’d still avoid 99% of the platforms yet for the same reasons.

Mintos have been running now for four years, and were only big enough to get sufficiently noticed by criminal hackers for about two years now. So their web platform is probably reasonably debugged by now. Even then, I absolutely refuse to ever place my money with anywhere, including major banks, without a separate device One Time Pad (OTP) login option, either using a separate physical hardware token, or more often an app on your phone nowadays. Mintos only added 2FA in October 2018, and thus only from then onwards did they become an option for me (and I didn’t have the spare cash from then until now to invest, due to the Verizon contract ending in November 2018).

Mintos are now handling €200 million a month, have 2FA, and so I’ve become just about convinced that the risk is worth it. However, remember that although Latvia is an EU country with strong Scandinavian characteristics, company regulation and enforcement is not on a par with say, Sweden. The Latvian financial regulator has presided over a raft of major financial scandals recently, including widespread money laundering by financial institutions, though it is very important to note that the crimes were done by Latvian branches of Western banks, rather than Latvian banks. The point is that they don’t have the resourcing which say financial regulators in Britain have, nor the influence and weight to cow multinational banks into behaving well, and they certainly have granted unusual leeway to financial innovation compared to anywhere else in the world. In short, I wouldn’t count on strong financial oversight from the Latvian regulator.

2. Loan originator risk

Mintos is a marketplace, and there are currently about sixty firms advertising their loans for purchase on Mintos. Some of those firms are squeaky clean, models of transparency and good governance, with extremely healthy balance sheets. Some others have been loss making for years, provide almost no information at all about their internal operations, and some are possibly even money laundering fronts. Just as with investing in individual company stocks, it’s a wild west out there. You need to do your research before investing your money with a given loan originator.

This is particularly important because of ‘Loan buyback guarantees’. Because retail investors hate to lose money, most of the loans on Mintos come with this guarantee by the loan originator that you will never lose capital, only profit, if an individual loan sours. Most of the loan buyback guarantees (it varies per originator) kick in after 60 days of non-payment of loan installments – you get to keep all the interest payments up to that point, and you get your invested capital back. This dramatically lowers the risk for the retail investor, so long as the loan originator is solvent!

The loan originators, in turn, implement buyback guarantees by reducing a little bit the rate paid on loans with buyback guarantees, and using that pool of money to pay back capital for any loans which default. Some loan originators e.g. car loan giant Mogo offer the same loan on Mintos with and without buyback guarantee, that way you can choose whether you want a higher average rate of APR with more risk, or whether Mogo should take on the risk and keep more profit.

Obviously enough, this makes a buyback guarantee for a loan stretching over years only as good as the loan originator’s finances. However Mintos are really big, so there is an army of people out there doing research, and publishing it to their blogs. The most famous is probably the http://explorep2p.com/mintos-loan-scanner/ ‘bubble chart’ of loan originator riskiness to coupon rate:

Note this is a snapshot of their graph from May 2019. You should visit http://explorep2p.com/mintos-loan-scanner/ for up to date ratings

At the time of writing, ExploreP2P would strongly recommend against buying loans from the left side of the graph, which is Bino, EuroOne, Getbucks/Mybucks, Kuki, Kredo, Metrokredit, Peachy, Sebo, and Simbo, due to a toxic combination of weak balance sheets, lack of transparency, and a history of making losses.

Mintos themselves also give ratings of the loan originators on their platform. You can see their ratings and their loan originators at https://www.mintos.com/en/loan-originators/. You will note that their ratings vary a fair bit from ExploreP2P’s, and I would be personally minded to choose the intersection of the two i.e. only those originators not in the ‘bad list’ of both. Something to be noted is that Mintos gives different ratings to different subgroups of a given loan originator, so for example car loan giant Mogo has no less than nine Mintos ratings, ranging from A to B, which vary depending on which bit of Mogo is doing the loans.

You can of course do your own research! Mintos publishes the audited accounts and lots of links to the loan originators’ legal and financial documentation. You can also search Google for good or damaging news about the loan originators. You can check the loan contracts given to their customers, see if they look exploitative, or have anything weird about them in their fine print. I’ll be honest in saying that I wasn’t bothered enough to do more than a cursory pass for EUR denominated loans (it was was a very different story for GBP denominated loans, that’s in the final part of this post series): I just scratch the ‘bad list’ from both Mintos AND ExploreP2P for the AutoInvest bots, and I reckon that’s probably good enough for a numbers-game based investment strategy.

Finally, it might be worth looking into what happens when a Mintos loan originator goes bankrupt, as has happened once before with Eurocent. When Eurocent stopped honouring the loans, around €180k was outstanding to Mintos investors. Mintos submitted the claims for those investors as part of the Eurocent wind up, and they will eventually get paid back whatever percentage of their investment remains divided by all creditors equally. So, in case of loan originator bankruptcy, you will get back some percentage of your money after however many years it takes to wind up the business.

3. Moral risk

Loaning money to others is often seen as a ‘dirty’ business, but that’s not the kind of moral risk I mean here. More specifically, I mean unsecured, very short term loans (days, no more than a month) for a few hundred euro issued at many hundreds of percent APR. In British and US parlance, these are often called ‘payday loans’, though they are actually any form of very short term, unsecured debt at astronomical interest rates.

These are issued to people with a negative or non-existent financial histories i.e. too poor and marginal to afford loans. Due to their usurious nature, about half the borrowers get into real difficulty, rolling over short term loans repeatedly until eventually it all falls down. In Eastern Europe and Africa, this usually means a debt collector giving you or a family member a beating, or breaking a limb. Or firebombing your house. All this is as old as the ancients, which is why usury was a sin in biblical times, and long before even then.

Mintos, being a marketplace, doesn’t discriminate between all legal forms of loans. It’s up to you to not choose to invest in that sort of debt. Guidance on how to do that on Mintos is sorely lacking on the internet, because short term loans are amongst the most popular with Mintos investors, principally because (a) they pay the highest rates of interest (about 1% (i.e. 7-10% more interest) more than the highest form of non-short-term loans) and (b) people don’t have to bother selling their loans on the secondary market if they need to withdraw their money quickly. Such selfishness comes with an enormous cost in terms of human misery. Such loans often are at 600-700% APR to the borrower, yet the Mintos investor only gets < 20% APR. That gives an indication of just how much overhead goes on enforcement and collection of loans (and marketing and provision of course). And if you drill into the individual loan listings on Mintos, you’ll often see that the individual is on their fourth or sixth short term loan from the same provider. All I can say, is avoid, avoid, avoid.

For the remainder of these series of posts, I am going to assume that you don’t like your money doing evil to others, and my Mintos investment strategies are specifically designed to avoid any investment, whatsoever, in short term exploitative usurious loans. The Mintos blog post above actually tells you how to program the Mintos AutoInvest bots to avoid such loans:

  1. Avoid loans for less than €500.
  2. Avoid loans with borrower APR in the hundreds of percent.
  3. Avoid loans with terms of less than two months.
  4. Avoid loans with irregular amortisation structures (i.e. choose loans which repay an even portion of the principal monthly or weekly).

Finally, even if you don’t care about poor people and just want maximum returns, consider that a large proportion of unsecured short term borrowers default. As all interest on loans for less than a month is paid at the end of the loan, and assuming the buyback guarantee, that means that you get back your capital without interest. That, in turn, drags down your average return to much lower than the maximum rate.

Therefore, if you actually want to maximise your earnings, invest in loans with a lower rate of default. According to https://www.mintos.com/en/statistics/, at the time of writing perhaps 30% of short term loans do not pay any interest. That reduces a juicy 15% headline interest rate to middling 10.5%, which is below the current Mintos average return to investors of 11.89%. Food for thought!

4. Maintenance risk

Maintenance risk goes two ways. The first form is that loans get repaid in installments, which means ~1% of each loan appears as cash in your Mintos account each month, plus loans can be repaid early, and indeed often are for the higher APR loans. If early repayment in full happens, you get your capital and interest up to that point back, added to the cash balance in your Mintos account. That cash is then no longer earning, which is called ‘cash drag’ in the lending jargon. The way around this is to leave an AutoInvest bot always running, so it’ll automatically reinvest early repayments into new loans according to rules set by you. This is fine, however over time the bot may end up over-concentrating your portfolio into just one loan originator, or just one kind of loan, which ruins diversification and thus increases risk. So you do need to check, from time to time, how unbalanced your portfolio is becoming using Mintos’ very good graphing tools, and switch on, or off, different AutoInvest bots to retilt the balance in a new direction over time.

  

The loan originator and country diversification of my current EUR denominated loans on Mintos. Note how ExpressCredit originate nearly half my entire EUR portfolio, so I have stopped new loans going to them for now. Note also that nearly half my EUR loans are in Africa (that's ExpressCredit again!), with the remainder all in Eastern Europe.

The second form of maintenance risk is less obvious, and harder to address. Interest rates rise, as well as fall. If they fall, if you have invested in longer term loans which I strongly suggest that you do (details are forthcoming in the next two posts in this series, one on EUR loans, the other on GBP loans), then you’re sitting pretty as you’re earning more than the going rate. If however they rise, as they have done for EUR denominated loans on Mintos these past few months, then you may be sitting on loans paying less than what you could be getting. Moreover, your AutoInvest bots, being configured for lower interest rates, may well be purchasing new loans on your behalf paying far below what you could be getting.

Mintos usually send you a newsletter update when average rates increase, so it’s probably worth subscribing to that. And when it happens, you almost certainly want to reconfigure your AutoInvest bots to target the new, higher interest rate. However, be then aware that if average rates then drop, your AutoInvest bots won’t be able to find new loans at the higher rate. That means cash will mount up in your account, not earning, and you are back into ‘cash drag’.

So, all in all, you probably do need to login at least once a month, and do a bit of work checking how things are going, and reconfiguring if needed. And turn on the daily email statement of your account. This isn’t a completely ‘hands off’ form of investment.

5. Sale risk

As I mentioned in the last post, Mintos is huge, with a large and liquid secondary market where you can sell your loans to other investors, and thus quickly recoup your money if you need to exit suddenly. This sets it far apart from most competing fintech startups in the same field, which can take weeks to months to sell your investments to other investors. As great as this liquidity is, there is however a risk that you won’t recoup all of your money, and this is because of average interest rate movements.

If the loans you are selling pay less than new loans, you will have to offer a discount to buyers in order to get them to buy your loans. Often this is 0.5%, I have noticed for loans not in arrears, but it does depend on the spread between what you are selling, and new loans. You might think that a surplus would correspondingly be paid for secondary market loans which pay more than the current average, however a ton of investors won’t touch loans with a surplus, because loans can be repaid at any time, and that is at par i.e. you take a cash loss. That means that for a quick sale, you don’t get what great loans are worth, but you do have to pay for selling inferior loans.

This is one-way pricing pressure of course, and it operates against you cashing out early and retaining all the profit you have accumulated. Chances are good that the cost of sale on the secondary market won’t exceed a month’s interest, except if you’re trying to sell loans in arrears (don’t do that! Wait for the buyback guarantee to activate instead!). Still, this secondary market sale risk is worth mentioning if you expect to need to extract cash from Mintos in a hurry. Equally, if you can afford to take a few weeks, you can just wait for other people’s AutoInvest bots to buy your loans at par value, so you get back their full current worth.

6. Currency risk

Chances are that you, like me, won’t want to deal with currency risk, and so will only be willing to invest in loans denominated in your home currency, which for me is EUR. The problem with currencies is that they fluctuate and move unexpectedly – I should know, as I get paid in US dollars, and I’ve watched my EUR income drop by a few hundred euro per month these past few months. If you expect to keep your money on Mintos in the same loans for years, then I suppose it can make sense to pay for conversion into say, Russian Rubles (0.7% charge), Mexican Pesos (1.25% charge) or whatever they use in Kazakhstan (1.25% charge), and be aware you’ll pay the same charge to return to EUR. Given that the highest paying non-short-term loans in EUR are currently 15.0%, and in Rubles 19.0%, assuming no currency change then it would pay off after six months or so. But if the Ruble drops even by 5%, now you’re down. Equally, of course, it could rise by 5%, and then you’re laughing.

For me personally, currency betting is too risky. I don’t want the chance of losing money. And as you may have noticed from the country pie chart above, EUR denominated loans are not going to EUR denominated borrowers. Rather, the loan originator is taking on the currency risk, offering you a lower APR, so you don’t have the chance of seeing a loss.

Next two posts in this series

My next two posts will be on configuring Mintos AutoInvest for EUR, which is a very liquid currency on Mintos, and on trying to use Mintos for GBP, which right now is painfully illiquid since Mintos got its UK subsiduary licence refused by the UK financial supervisor, which led to all the UK investors fleeing, and UK loan originators yanking all GBP denominated loans (still, with a bit of work, one can still invest a few grand in GBP on Mintos, it’s just rather … manual). See you again soon!

#mintos #p2p-lending

Has this blog post interested you in joining Mintos? Want to get a +1% Mintos joining bonus?

If you join Mintos using this affiliate link, you'll get 1% of your investment back as extra cash balance after 30 days! For example if you invested €10,000 on Mintos, after one month you'd get €100 added to your Mintos cash balance.

You’d also thank me for writing these series of posts on Mintos and P2P lending, because I’ll also be rewarded for bringing you to Mintos. Everybody wins!

My thanks to you in advance for your donation!




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 will 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. 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.

You can find the next post in this series here


  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]

#mintos #p2p-lending

Has this blog post interested you in joining Mintos? Want to get a +1% Mintos joining bonus?

If you join Mintos using this affiliate link, you'll get 1% of your investment back as extra cash balance after 30 days! For example if you invested €10,000 on Mintos, after one month you'd get €100 added to your Mintos cash balance.

You’d also thank me for writing these series of posts on Mintos and P2P lending, because I’ll also be rewarded for bringing you to Mintos. Everybody wins!

My thanks to you in advance for your donation!




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!

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)