This sounds similar to how in C#/.NET there are (at least) 3 methods to reading XML: XmlDocument, XPathDocument, or XmlReader. The first 2 are in-memory object models that must parse the entire document to build up an object hierarchy, which you then access object-oriented representations of XML constructs like elements and attributes. The XmlReader is stream-based, where you handle tokens in the XML as they are read (forward-only.)
Any large XML document will clobber a program using the in-memory representations, and the solution is to move to XmlReader. System.Text.Json (.NET built-in parsing) has a similar token-based reader in addition to the standard (de)serialization to objects approach.
More importantly, you have your data in a structured format that can be easily inspected at any stage of the pipeline using a familiar tool: SQL.
I've been using this pattern (scripts or code that execute commands against DuckDB) to process data more recently, and the ability to do deep investigations on the data as you're designing the pipeline (or when things go wrong) is very useful. Doing it with a code-based solution (read data into objects in memory) is much more challenging to view the data. Debugging tools to inspect the objects on the heap is painful compared to being able to JOIN/WHERE/GROUP BY your data.
Yep. It’s literally what SQL was designed for, your business website can running it… the you write a shell script to also pull some data on a cron. It’s beautiful
Parts/materials costs in contractor quotes are often padded so they aren't completely overshadowed by the labor portion. In any job where there's specialized knowledge or license restrictions (HVAC) or risk (walking on a roof), the floor for labor rates is usually 2-4x the materials cost.
But, the real issue is that almost nobody pays cash upfront for their solar install. Between incentives, loans, and/or predatory PPAs, the prices lose touch with reality. See healthcare, college tuition, housing prices, etc. for similar scenarios where credit or third-parties distort the market.
You don't really have that many competent solar installers in most locations in the US. I basically gave up trying. I'm sure they exist, but if you don't want some financed/leased/etc. financial-product-as-a-solar-install your options dwindle.
It's entirely obvious that most of these places make money off the financial engineering, not the installation part.
I'd sign a competent contractor today for my quite marginal installation plans if I could find someone I'd trust to build something decent and to my specification.
They also tend to devalue the house as it's more difficult to get insurance, and many potential buyers are used to shitshow level of installs and/or dealing with a more complex close due to the seller needing to pay off loans/leases/etc.
A lot of these plays are also companies setting up complex financial engineering schemes that boil down to government subsidy arbitrage.
Solar doesn't make sense for me financially (yet), due to location and PoCo rates, but I'd be tempted to be my own contractor and sub out the tasks.
Any roofer could do the panel install, and would do a far better job than a solar hack that had 3 days of training. Electrical would be an electrician.
Azure has a service ('Artifact Signing') which is $10/month for signing Windows executables (not Windows Store apps, which don't need it.)
That's pretty reasonable, considering it is built in to all the major code signing tools on Windows, they perform the identity verification, and the private keys are fully managed by Azure. Code signing certs are required to be on HSMs, so you're most likely going to be paying some cloud CA anyway.
This is wild, thank you so much!! I was struggling with these costs for a long time!! Why is this not more well known? I researched this a lot and it was going to cost me at minimum $500~ over 3 years with the cheapest providers. Let me see if my specific use case can work with them.
TPM keys are great for things like SSH keys or Passkeys, which surprisingly works well even in Windows.
The private key is safe from any exfiltration, and usage only requires a short PIN instead of a long passphrase. The TPM ensures you're physically typing that PIN at the machine not a remote desktop window or other redirection that could be hacked.
Obviously, this is problematic/annoying for scripts and things that can't share the SSH session, because you need to PIN with every authentication. Also, for encryption, you want to use something where you can backup the private key before stashing it in the TPM. Windows allows you to do this with certificates that are exported for backup prior to encrypting the private key with an unexportable TPM key in Hello.
An easy solution to having to put your PIN in too often for SSH is to use the `ControlPersist` option in your SSH client config. This lets you only create a new SSH connection every 30s (or whatever you put), even if you’re doing separate operations. With a low timeout, there’s no realistic security risk (what’s the chance an attacker will only have control of your machine for 30s?).
I do this for GitHub in particular, because of tools that connect to the remote multiple times. Works with anything that uses the actual ssh executable under the hood.
Insurance, if it covers it, will cover it at CVS, no doctor needed.
Many insurances do. I asked if the pharmacist could check last time I was at CVS, and it did. I'm turning 46 before I can sneak in the 3rd dose, but 2 doses seems to be all that's needed for most of the benefit.
Nothing wrong with Windows Server Core, which has zero UI. Managed totally with Powershell, which once you get used to it, is an excellent shell/scripting language.
The water boiling one doesn't make any sense. One of those devices (stove or kettle) transfers more heat per unit of time into the water. Just use that device for the full amount of water.
An induction range would remove the need for transferring boiling water around. At least in the US, that's the fastest device, since countertop kettles are limited to 1.8kW or so. Induction 'burners' usually are 2.5-4kW, and assuming the right cookware, much better at transferring that energy into the water (and not the air like a gas burner)
Fastest way to do it: induction hob and a hot water tap with one of those under sink boilers. It takes longer to fill the pan than to get the water to a rolling boil.
Yes, but it's hard to find the 240V appliances here except for clothes dryers, ovens, or built-in ranges/cooktops. Since a full induction cooktop is very expensive, most people who have induction will have a single portable hob.
This is the reason I manage SQL Server on a VM in Azure instead of their PaaS offering. The fully managed SQL has terrible performance unless you drop many thousands a month. The VM I built is closer to 700 a month.
Running on IaaS also gives you more scalability knobs to tweak: SSD Iops and b/w, multiple drives for logs/partitions, memory optimized VMs, and there's a lot of low level settings that aren't accessible in managed SQL. Licensing costs are also horrible with managed SQL Server, where it seems like you pay the Enterprise level, but running it yourself offers lower cost editions like Standard or Web.
Any large XML document will clobber a program using the in-memory representations, and the solution is to move to XmlReader. System.Text.Json (.NET built-in parsing) has a similar token-based reader in addition to the standard (de)serialization to objects approach.
reply