You're late!
Amelia Pond! You're the little girl!
I'm Amelia, and you're late.
Wednesday, January 01
Finding Sealab Edition
Tech News
- Keep your computer cool this summer (well, it's summer here!) by dunking the whole thing in a tank of coolant that costs $18 a litre. (AnandTech)
The kit costs $2450. That does not include the computer. The computer is extra.
- This is not technical itself, but a social psychology study of clustering effects in social networks is certainly of interest, and the clusterfuck that the researchers managed to generate doubly so.
The summary notes that moderate conservative voices on Twitter - the Center Right - are overwhelmed by the Extreme Right. (Medium)
What it does not note is what the definition of the Extreme Right is that is used by this study. And that is because there is no definition used by the study.
What they did was label certain Twitter accounts as Extreme Right, and then those accounts that follow them get tagged as Extreme Right as well.
And the first example - there are only two - the first example of an Extreme Right account they give is The Heritage Foundation which is middle-of-the-road classical liberalism.
Part one and part two are available for download as PDFs. Part two consists entirely of interviews with journalists, if you needed a clearer idea of where this was going.
The only bright spot in this farrago of academic malfeasance is page 22 of part one which notes that everybody hates the New York Times.
- Speaking of Medium, it takes five clicks and a page reload to reply to a comment - starting from the individual post page. This is the competition?
- The Big 5 tech companies are worth $5 trillion. (Tech Crunch)
If you're playing Fantasy Stockmarket, short Google. The company is rotten to the core.
- The old internet died and we did nothing. (BuzzFeed)
Don't know about you, BuzzFeed, but my posts from 2003 are still intact.
And - hah, just thought of something. I have a backup of every tweet I posted before Twitter nuked my account. I'm about to launch my own social network....
- Samsung TVs may upload screenshots for automatic content recognition. (Hacker News)
I'll likely get a 4K TV this year. I have 4K monitors - plural - because I use them all day for work, but my TV is still 720p.
It will be a cheap, no-name device as devoid of intelligence as I can find. If it can't even automatically switch to the active input, I'm okay with that.
Other News
- An interesting who-knew-what-when piece on the FISA abuse scandal. (The Epoch Times)
Is the Epoch Times trustworthy? I don't know. They were implicated in a fake news ring on Facebook recently. (The Verge) But they were implicated by Facebook and I don't trust Facebook either.
But this article links to the PDF of the related court order - on the .gov site, not their own copy - and provides page references for the claims it makes. That is refreshing.
Anime Music Video of the Day
Picture of the Day

Posted by: Pixy Misa at
09:31 PM
| Comments (5)
| Add Comment
| Trackbacks (Suck)
Post contains 549 words, total size 6 kb.
Tuesday, December 31
Last Day Of The Second Last Year Of The Second Decade Of The First Century Of The Third Millennium Edition
Tech News
- Mark Papermaster of AMD says there's more where that came from. (AnandTech)
The interview is irritatingly vague because you only really want to as a C-suite exec about future products and they can't talk about that without inviting a visit from the SEC.
- Meanwhile, here's a fanless Epyc desktop. (AnandTech)
The heatsink alone weighs 2.5kg.
- Police are getting a clue and keeping a registry of swatting targets. (TechDirt)
It's another damn thing that emergency responders have to check on, but it will save lives, and hopefully some bastiches will end up having a lot of time to reflect on their life choices.
- Horrible company Uber has sued horrible state California over the horrible law that protects gig workers from exploitation by denying them their gigs. (Bloomberg)
California, could you do us all a favour and slide quietly beneath the Pacific? Thanks.
- The Chinese scientist who created genetically modified human babies has been banned from creating any more genetically modified human babies. (Bloomberg)
And sent to prison for three years.
- France will monitor your social media posts to check that you are not under-reporting your income. (Reuters)
As Isaac Asimov said, Welcome to the goldfish bowl.
- Updating the template parser for the new system. I wrote some code for this a few years ago but never got it into production. Dug it out today, and turns out (a) it worked perfectly and (b) it runs cleanly under Python 3.6 which didn't even exist at the time I wrote the code. So score one for past me.
Happy New Year Videos
Posted by: Pixy Misa at
09:44 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 293 words, total size 3 kb.
Monday, December 30
Intermittently Retromingent Edition
Tech News
- Intel's 10th generation Comet Lake desktop chips could use two different sockets. (Tom's Hardware)
That is, different to each other, and also different to the current socket. Because Intel hates you.
- The EVGA SR-3 DARK is a motherboard for the Xeon W-3175X. (WCCFTech)
It supports six DIMM slots, six PCIe slots, dual 10GbE ports, two M.2 slots, two U.2 ports, ten SATA ports, 10 USB 5 ports, 2 USB 10 ports.... And costs $1800.
- This might be an interesting blog post about Google's monopolistic practices. (Medium)
But I guess we'll never know.
Don't use Medium for your blog. Don't use Google for anything if you can possibly avoid it.
Posted by: Pixy Misa at
09:07 PM
| Comments (5)
| Add Comment
| Trackbacks (Suck)
Post contains 134 words, total size 2 kb.
So I had another idea for optimising my timeline query.
It was taking 1.3 seconds with 5 million messages in the system, which is obviously crazy. The stack version takes around 10 milliseconds, but does require the system to pre-build all those stacks, meaning extra database operations, extra I/O, extra storage, extra complexity...
But I know that MySQL, particularly with TokuDB, can scan the database in primary key order really, really fast. So what if I find a way to ensure that it just does that scan while (a) still applying the privacy filters, (b) only showing your friends' posts, (c) doing all the joins and subselects, and (d) still stopping at 20 (or 50 or whatever) messages?
Is that even possible?
20 rows in set, 1 warning (0.00 sec)Apparently it is.
The stack solution is still the way to go long term, but having a fallback that is also reasonably fast is very much a good thing.
- Find the most recent messages
- From your friends
- Who you haven't muted
- And are in channels that you have access to
- And get their user details
- And the channel details
- And the parent message if it's a reply
- And the shared content if it's a share (like a retweet)
- And whether you've liked it
- Or bookmarked it
- Or reacted to it in another way
- And whether the poster is following you
- And the details of when you followed them
- And whether either party is blocking the other (which in this system just prevents interaction, not viewing content)
- And also whether either party has the other muted
- And if it's a poll, whether you have voted and which option you voted for
Yay.
Now on to the UI!
Posted by: Pixy Misa at
05:54 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 413 words, total size 3 kb.
Sunday, December 29
Only Two More Shopping Days Until New Year's Edition
Tech News
- The Radeon 5600XT looks to be a Radeon 5700 (non-XT) with the memory bus cut from 256 bits to 192 unless it isn't. (WCCFTech)
ASRock leaked the details of an upcoming card, confirming clocks, shader counts, memory speeds and size, everything but the TDP and price, basically.
- FreeDB is shutting down. (Hacker News)
FreeDB was forked from CDDB when that went project commercial. It was acquired by Magic in 2006, so they've been maintaining it for free for 13 years now.
- Wyze, a vendor of IoT-enabled cameras and door locks, suffered a data breach that exposed the details of 2.4 million customers. (ZDNet)
The culprit was - you guessed it - Elasticsearch.
- Google Stadia will add yet another Tomb Raider game in January. (WCCFTech)
At that point, 20% of all games available on Stadia will be Tomb Raider.
- LG will be showing off an automated vegetable garden at CES. (The Verge)
It is the 21st century. I guess.
- I was going over some benchmark scores today, and the Ryzen 3900X offers a bigger performance boost over my current 1700 than the 1700 does over the old FX-8150 Bulldozer chips. On single-threaded tasks, never mind multi-threaded.
I'm still going to hold out for Ryzen 3.
- YouTube has been evil for a long time. (Archive.org)
Back in 2008 they were in discussions with the developer of a small site built using the YouTube APIs, and offered to showcase him as a featured developer.
At exactly the same time they changed their TOS to make sure his site could never earn a penny.
Don't ask why the scorpion stings you.
New System Notes
The query that I was worried would slow down as the database grows - the standard user timeline - does indeed slow down as the database grows. I built in an engine to take care of that, and today I wrote the necessary query to use that engine.
Since that new query currently takes the time to build a timeline from 0.03s to 0.00s I'm adding more data to my test system to measure it again.
Oh, and you can search within your timeline. Twitter lets you do that now too, though.
Update: Stack engine vs. timeline engine:
500 timeline requests in 69.248s, avg request 139.1ms
500 stack requests in 3.963s, avg request 7.9msWith a small database the timeline query was running fine. But if the system had taken off it would have been Fail Whale Squared. (I think this type of query caused about 90% of Twitter's problems in the early days.)
Stack requests automatically remember the last N items in your timeline so they don't have to mess around finding them again.
The other major mode is the channel request, which are used for blogs and forums and things like that. Those have no problems:
500 channel requests in 3.042s, avg request 6.1msThat's the API request time, by the way, not just the database request, though for the timeline the database request is the overwhelming majority of the time.
I knew about this before but hadn't done the optimisation, because having a standard query let me enforce privacy checks in a single central location. Now I have three versions of the query and have to make sure the privacy checks are applied to each one.
Now I'm wondering if I can fix up that timeline query to make it run faster, because that could be really useful...
Update: Hah! Yes, that works. If I need to rebuild a user's stack, I can find the IDs of the last thousand posts that should appear in their timeline and shove them into their stack in 60 milliseconds flat. Then database queries within the stack take about 4ms.
The idea there is that if you don't log in for a while the system will stop updating your stack to save resources, but when you do log in I want it brought up to date quickly enough that you don't really notice it. 60ms is fine.
The main message query has five joins and ten subselects, which is great when the optimisation is just right because it gets everything the API needs in one go. When the optimisation is not just right, though, things go south in a hurry.
The stack works great because it means the main query never has to sort - to get the top 20 messages it just reads the top 20 stack records in index order and does five one-to-one joins.
Posted by: Pixy Misa at
10:47 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 799 words, total size 6 kb.
Blargh Part Two Edition
Tech News
- Had to restart Minx just now, and then block yet another misbehaving web crawler.
I have more sympathy for J. Jonah Jameson every day.
- Cloudflare's warrant canary is an ex-parrot. (TechDirt)
Three of the seven statements included in the canary at the beginning of the year are now gone.
- There will be a second season of The Mandalorian. (Tech Crunch)
Disney having destroyed the Star Wars franchise in the cinemas and de-canonised the Expanded Universe, it's all they have left right now.
- Zen 3 will have a 17% IPC gain and a 50% floating point gain over Zen 2 unless it doesn't. (WCCFTech)
That's a lot, but AMD has been saying for a while that Zen 3 will be a significant update.
- Sonos devices feature a recycling mode that lets you retire your old equipment in a safe and environmentally friendly way - by irrevocably destroying it.
Sustainability is non-negotiable, says Sonos. You can't have it.
- Oh look another horribly security hole in NPM. (Snyk.io)
The article is from September and I believe this has since been fixed and replaced with seven brand new security holes.
- My test environment for the new system is on a private container in a virtual server behind two firewalls. The container is accessible via SSH from my home IP address on a non-standard port by forwarding the SSH connection over an internal SSH tunnel on the container host.
Now that I'm testing the app and API (and not just the code they're built on) I need access to the web services, so I have an SSH tunnel from WSL - a Linux virtual server running on Windows - running over the SSH tunnel on the KVM VPS to connect localhost:8080 on my PC to localhost:8080 on the container.
This actually works.
- MSI has announced a mini-LED laptop to be introduced at CES. (ZDNet)
To be clear, at 17" it's not mini at all, and it has an LCD display, not LED. Apart from that, though, it will deliver HDR 1000 and 100% DCI-P3 at 4K, which is as good as it gets right now.
- Plant-based burgers will make men grow boobs - says Livestock News. (Ars Technica)
The story (which seems to be popping up everywhere) is that Burger King's Impossible Whopper contains 18 million times as much estrogen as a regular Whopper.
In fact it contains zero estrogen, because it's plant-based and plants don't produce estrogen. What it contains are isoflavones, plant molecular analogs of estrogen that can bind to estrogen receptors but as far as any actual research has been able to determine, do absolutely nothing in humans.
- RethinkDB 2.4 is out. (RethinkDB)
RethinkDB is an interesting MongoDB-style document database that offered very flexible changefeeds (a.k.a tail cursors or notification streams) years before anyone else had them.
The company behind it couldn't get enough funding - MongoDB sucked all the air out of the room there - and was forced to shut down, but the open-source repositories have been handed over to a volunteer effort and the project is back on its feet.
Posted by: Pixy Misa at
12:00 AM
| Comments (3)
| Add Comment
| Trackbacks (Suck)
Post contains 533 words, total size 5 kb.
Friday, December 27
Where Does The Time Go Edition
Tech News
- China's latest CPUs have caught up with AMD's Excavator. (Tom's Hardware)
Current mobile chips are already faster than Excavator.
- Graphene batteries aren't coming in 2020, and Huawei's P40 Pro won't have one unless it does. (WCCFTech)
This is getting confusing, guys.
- Europe is making life difficult for internet companies with a corporate presence within the EU. You can however just choose not to have a corporate presence there.
India is planning to close that loophole. (Tech Crunch)
If you have more than five million users and want to operate in India, you have to provide hostages. And deploy a Class 2 AI to ban speech the Indian government might object to, before they object to it.
The article discusses Wikipedia because they have hundreds of millions of users and would clearly fall under the planned legislation, but operate on a - relatively - tiny budget.
- In letter to dinosaurs, YouTube describes the Chicxulub Impactor as "regrettable". (CoinDesk)
- Sony may have had to retreat from some markets but their digital sensor division is going gangbusters. (Bloomberg)
They make the cameras for a lot of phones, and their factories are running 24x365 and still not keeping up.
- Set JavaScript on fire and set that damn chart on fire too. (StateofJS)
- Statler and Waldorf discuss the latest UX trends. (grumpy.website)
Yes, the site is actually called grumpy.website, and it delivers.
- I wonder how fast uWSGI RPC is compared to web requests...
Update: uWSGI RPC doesn't seem to work. Not sure what I'm doing wrong, but I don't want to rely on something this fiddly.
Swapped in ZMQ and not only did it work first time, but I'm getting <500µs for a 100-byte JSON request with a 10K JSON response, and <900µs with a 100K response. That's with the standard JSON encoder, not the custom one with the fancy date/time support.
Let's see.... The smart encoder can spit out 10K in 120µs and 100K in 1.3ms. That depends a lot on the balance of fiddly stuff (dates, decimals) and easy stuff (text) but it's not bad; if someone uses the smart JSON option it's not going to make the system collapse. Anyway, it's fast enough to flood a gigabit internet uplink with JSON, which is all I ask.
Posted by: Pixy Misa at
09:18 PM
| Comments (2)
| Add Comment
| Trackbacks (Suck)
Post contains 395 words, total size 4 kb.
Was having a lot of trouble getting uWSGI to install for PyPy 3 - which is what the whole of the new system is using.
After working my way through this GitHub issue I have it all working (at least it appears so thus far). But it's rather annoying in that Python 2 is going away in a couple of months and the maintainers of uWSGI don't seem to care enough to copy a known solution into their codebase.
pip install uwsgi. That will give you uWSGI built with the PyPy plugin, which works with either version.You then need to use --pypy-home to point to your PyPy 3 directory and --pypy-lib to point to your PyPy .so file.
It still won't actually work, though, because the setup script is written in Python 2. So grab this alternate setup script and specify it with --pypy-setup.
And now it works.
It's a bit disappointing that a complete solution exists but hasn't been pulled into the codebase, but at least a complete solution exists.
/opt/pypy2/bin/uwsgi --pypy-lib /opt/pypy3/bin/libpypy3-c.so --pypy-home /opt/pypy3 --pypy-setup tools/pypy_setup.py --master --http-socket 127.0.0.1:8080 --threads 100 --pypy-wsgi-file proxyf.py [uwsgi]
http-socket = 127.0.0.1:8080
stats = 127.0.0.1:8081
master = true
processes = 1
threads = 100
pypy-home = /opt/pypy3
pypy-lib = /opt/pypy3/bin/libpypy3-c.so
pypy-setup = tools/pypy_setup.py
pypy-wsgi-file = proxyf.py
And now it's just uwsgi proxyf.ini
Posted by: Pixy Misa at
03:59 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 304 words, total size 3 kb.
Thursday, December 26
Taking Time Out To Digest Edition
Tech News
- The Threadripper 3970X is a 32 core 280W monster. But how does it perform if you dial the power back a little? (WCCFTech)
Thirdripper has configurable TDP, the same as Ryzen 3000. So this doesn't even require manual undervolting; just fire up Ryzen Master and pick your TDP target.
At 180W it still delivers 90% of full multi-core performance, and at 140W it manages 82%. That gives us a good idea of the performance of the upcoming 3990X - double the cores, double the power budget back up to 280W, and it will be 64% faster than the 3970X. Of course, it's not as simple as that, because memory bandwidth won't double, but memory bus power consumption won't double either, and cache will double...
Cut to 95W the 3970X is clearly struggling and achieves only 48% of its full potential. At that point it is actually slower than the Intel 10980XE.
- Samsung is investing $116 billion into its chip manufacturing division. (The Verge)
That's quite a lot. TSMC's ascendence has effectively been bankrolled by Apple, and Samsung are their only real competition at this point.
- Cloudflare has taken on the role of supporting CDNJS. (Cloudflare)
While Cloudflare were providing the CDN for CDNJS, the project was run until now entirely by volunteers. When some automated scripts broke last month and the volunteers didn't have the resources to fix it right away, the future of CDNJS seemed in doubt.
So this is, on the whole, a good thing.
- TokuDB doesn't support foreign key constraints. Doesn't even save your definitions, it just drops them straight onto the floor. That's not a critical issue here because I control the application code as well as the database definitions, but it's a bit limiting.
- YouTube's latest target is cat videos. I'm not even kidding.
Movie of the Day
Posted by: Pixy Misa at
10:40 PM
| Comments (4)
| Add Comment
| Trackbacks (Suck)
Post contains 374 words, total size 3 kb.
Wednesday, December 25
What Day Edition
Tech News
- Ponte Vecchio, Rambo Cache, and Gelato: The crisis inside Intel's codename division. (AnandTech)
Or possibly an in-depth analysis of Intel's upcoming high-performance computing platform. One or the other.
- A Twitter bug allowed hackers to match your account to your phone number. (Tech Crunch)
Of course, Twitter has made it a habit to lock existing accounts for no reason and demand your phone number to unlock them, just as Facebook demands photos of yourself. Otherwise Twitter wouldn't have the phone numbers for hackers to steal in the first place.
- How not to migrate customer data. (Increment)
Given the size of the project - 2500 man-years - and the requirement for a hard cutover, it was pretty much guaranteed to go wrong. Which it did.
- A handy Python cheatsheet.
Print it out and use it as a pillow.
- Hmm. WebNX have 2288G and 3800X servers with NVMe SSDs. ReliableSite also have the 3800X and I already have an account with them, but they don't use ECC RAM in their Ryzen servers and WebNX do.
Anyway, won't need one for another couple of months yet.
Even the 3800X will deliver 50% better single-threaded and nearly 3x the multithreaded performance of our current servers. (CPU Benchmark)
And that's the new low end.
The WebNX servers are available with Intel enterprise 1.2TB NVMe SSDs. I was thinking "Isn't that expensive for a server that only costs $125 per month?"
Turns out the answer is no, not especially.
Not sure if that's the model they're using - it's a couple of years old now and no longer in production - but it could well be given that a company like that would be looking for hardware that is reliable and cheap, rather than new and shiny.
And it delivers 2.6GB per second on reads and 30 µs random write latency, so I certainly wouldn't be complaining if that's what I got.
- YouTube's latest target is cryptocurrency videos. (Daily Hodl)
Now certainly a large percentage of cryptocurrency content is nonsense, but no more than for the rest of YouTube. And purging informational videos en masse as "dangerous or harmful content" is just... Exactly what we've come to expect from the idiots running YouTube.
- Speaking of terrible messes Ethereum 2.0 might be arriving early next year. (CoinDesk)
It should be faster than current Ethereum, though not as fast as planned. It probably won't be able to interoperate with current Ethereum. It won't be as fast as planned. It will be more expensive to run complex contracts that read data from the blockchain.
And it won't offer generic atomic transactions, which could well be a disaster.
Basically, Ethereum 2.0 divides the network into shards - 64 of them - each representing a single atomic distributed database. If your application is on one shard and you want to interact with an application on another shard, it's time for you to roll your own two-phase commit implementation.
In a language that is basically awful, has all sorts of arbitrary limitations, and costs you real money for every instruction you execute.
- Ruby 2.7 is out. (Ruby-lang)
I don't really use Ruby, but I've always liked it and would have felt quite at home if Python hadn't shown up first.
- Redis 6.0 is at RC1 (release candidate one). (GitHub)
They don't expect to release the final version for three months or more; they go through an extended public test cycle with every new release to shake loose every bug they can.
This release notably adds support for local caching: Your Redis client can cache data itself, directly in memory in the right format for your programming language, and Redis will notify it of cache invalidations. This can speed up cache lookups by 10x or more at the cost of a little extra RAM; no extra application code required.
I'm really looking forward to this. It's not every day someone hands you a free 10x speedup.
- Merry Christmas everyone!
Video of the Day
Posted by: Pixy Misa at
10:39 PM
| Comments (2)
| Add Comment
| Trackbacks (Suck)
Post contains 677 words, total size 6 kb.
56 queries taking 0.2815 seconds, 398 records returned.
Powered by Minx 1.1.6c-pink.









