450 karma · joined February 24, 2020
By setting the provisionVMAgent property to false when creating a virtual machine, WALinuxAgent should run with all extensions disabled, and I think that's as minimal as a Linux VM can go on Azure.
This property, however, can't be set via https://github.com/ansible-collections/azure, which is of course another lovely OSS project by Microsoft. I didn't bother to send a PR.
The OMI agent seems to be a different beast that is way more obnoxious. The closest thing on GCP is probably the collectd agent and the fluentd agent installed for Stackdriver Monitoring and Stackdriver Logging? Plus whatever OS config to enable unattended upgrades.
I just learnt from this HN thread about the SSM agent on AWS. That one does seem equally obnoxious as the OMI agent.
EDIT: Looks like collectd and fluentd have been replaced by https://github.com/GoogleCloudPlatform/ops-agent
Good for Intel for finally catching up?
I think linux + bluez + pipewire is the first ever software-only stack that can achieve this, as a USB dongle would be required on other platforms. We shall declare 2021 as the year of linux on the desktop!
> At LinuxCon last year, Carl Symon showed me a screen shot of an Activity created by Aaron Seigo to plan his holiday, which included a To Do list, a calendar, links to online travel guides, a weather report for his destination, and other features connected to the trip.
https://www.datamation.com/open-source/the-mystery-of-kde-ac...
Just take a look at that monstrosity of an UPDATE statement in the article. In my first job, I had to do something similar in SQL, but with a SELECT statement to allow users to search dynamically using any combination of the columns. I picked up SQLAlchemy in my second job, and have never looked back.
So it was $100,000 a month for 18 millions visitors, and it is now $20,000,000 a month for 454 millions MAU.
Corey Quinn has to take a look at this.
EDIT: Corey provided some insight on contract negotiation at https://twitter.com/QuinnyPig/status/1430327936519872514
I think 2012-2014 was peak marketing from DataStax. There would be some new major feature with every new blog post, and it would mostly never work as expected. Between 2017 and now, things have settled down.
Your use case allows you to perform batching for writes at the *application layer*, while discord's use case doesn't.
By batching 1-10 thousands records at a time, your use case is very different from discord, which needs to deliver individual messages as fast as possible.
This part is quite interesting. I'd think it will take maybe a day to dump/restore a database with a single 10TB table with no parallelism, at a speed of about 120MB/s. How big is these mysqld instances such that the process will take many days?
(Except Project Jigsaw of course, but I'd like to think that he got overruled by his boss)
As for bugs, I will just quote Gil Tene from https://www.theserverside.com/opinion/Dont-ever-put-a-non-Ja...
> Play with them on your laptop, but don't use a single feature, and wait for the LTS.
Personally I think the LTS model is great. Features get rolled out as soon as they are ready, and then get stabilized after being used by early adopters. Meanwhile, production can stay on LTS and continue to get just the necessary fixes.
Some examples...
WL#10310 Redo log optimization:
Feb 2018, initial commit 6be2fa0bdbba, landed in 8.0.11 (Apr 2018)
Jun 2018, crash regression fix commit 270d18368650, landed in 8.0.13 (Oct 2018)
Apr 2019, performance regression fix commit 75c4f7161a56, landed in 8.0.18 (Oct 2019)
WL#5655 - InnoDB: Separate doublewrite file to ensure atomic writes:
Dec 2019, initial commit ce14ef911, landed in 8.0.20 (Apr 2020)
Feb 2020, data loss regression fix commit c1bc61dc7, landed in 8.0.20 (Apr 2020)
May 2020, stall regression fix commit 00b284707, landed in 8.0.21 (Jul 2020)
In comparison, Cassandra during the DataStax days was extremely buggy, but at least it tried to follow SemVer. So the operators can follow some simple guideline, e.g. >=2.0.14 is fine, >=2.1.17 is fine, >=2.2.9 is fine. Of course regression can still happen, but that would be an exceptional case.
That sounds horrible. You can actually do all that from a single repository, using just ansible alone, with one cli invocation:
- use packer to build an AMI => ansible
- provisioned using Chef => ansible
- terraform the relevant services => ansible
- use cloud-init to pull configuration values => baked into the image
So, yes, we need to know.
> Think of the history of data access strategies to come out of Microsoft. ODBC, RDO, DAO, ADO, OLEDB, now ADO.NET – All New! Are these technological imperatives? The result of an incompetent design group that needs to reinvent data access every goddamn year? (That’s probably it, actually.) But the end result is just cover fire. The competition has no choice but to spend all their time porting and keeping up, time that they can’t spend writing new features.
> Look closely at the software landscape. The companies that do well are the ones who rely least on big companies and don’t have to spend all their cycles catching up and reimplementing and fixing bugs that crop up only on Windows XP.
Instead of seeing k8s as the equivalent of "cover fire" or Windows XP, a more apt comparison is probably Microsoft Office, with all kinds of features to support all the weird and dumb use cases.
- Shyouhei Urabe did a marvelous job of resisting pressure from several well-known developers representing multiple high profile ruby companies/projects.
- Everyone eventually came to their senses in https://bugs.ruby-lang.org/issues/14718#note-89, and concluded that the best way forward is to use glibc with MALLOC_ARENA_MAX=2.
My personal feeling is that while the "Jemalloc FTW" section in http://oldblog.antirez.com/post/everything-about-redis-24.ht... might have been correct back in the jemalloc 3.x days, a lot has changed on both jemalloc and glibc since then. Furthermore, there is also musl in the equation these days.
Anyway, from my own experience, the video decoding performance of gentoo-on-rpi-64bit was somehow nowhere close to LibreELEC, on the same hardware. Perhaps there is a lesson to be learnt there...
Fear not. As GKE is running on Container-Optimized OS which is based on Chromium OS which itself is based on Gentoo, you can safely practice proper systems engineering within the container environment :)
Again, this was back in kde 3 days, where desktop usage was more prominent than laptop, and even on laptop, a mouse with a scroll wheel was still a common accessory since touchpad gesture wasn't really a thing yet.
> Knobs are great in the physical world, never met one on a screen that wasn’t hard to use.
Well, I just gave you a perfect example where a knob on the screen was immensely useful. Of course it will be silly to try copying the physical world as-is, but with a little bit of creativity, applied in the right context, a knob on the screen can absolutely be useful.
Firstly, you can place the applet at a corner of the panel, e.g. at the bottom right, such that you now have an infinitely large target [1] to hit.
Then, once you have the mouse pointer hovering above it, you can:
- scroll up/down to increase/decrease the volume
- middle click to toggle on/off the sound
For those who possess precise control of the mouse pointer, of course they can still click on an arbitrary spot on the knob to set the volume.
For bonus point, because it is a knob, you always know what is the current volume level. All that for maybe 40x40 pixels of screen real estate only.
[1] https://blog.codinghorror.com/fitts-law-and-infinite-width/
> I started a project to unite all Google OneBoxes under this graph indexing system, which involved weather, flights, events, and so on.
Now we know who's to blame :)
Perhaps you guys need a ... database? Relevant HN discussion few months ago when tailscale migrated from json to etcd: https://news.ycombinator.com/item?id=25767128
Good thing bchesky has stopped taking photographs of the listings, otherwise his skill would just be wasted on his platform.
On Gentoo, the ebuild for Python and Ruby both have --enable-shared hardcoded.
Also, if you use prebuilt Ruby binaries from RVM, those were also built with --enable-shared. And if you build your own Ruby binaries with ruby-build, it also does --enable-shared.
So, there are still plenty of opportunities around for instant speedup.