HNHacker News
TopNewBestAskShowJobs

Mister_Snuggles

3,822 karma · joined July 24, 2013

submissionscomments
Mister_Snuggles··on Why I Prefer Makefiles over Package.json Scripts
I use make to run daily/hourly/etc batch processes in the ERP system at work. There's a Python shim to actually run processes in the ERP, plus a shell script to get things ready to run and send success/failure emails, and cron to kick batches off, but other than that it's pure make. In theory I should also be able to pass '-j 4' to make and have it run multiple processes at once, in the correct order with their dependencies properly satisfied, but I haven't actually tried that yet.

It's clearly an abuse of a build tool, but it's also a testament to make's incredible flexibility.

I've also heard of someone who replaced their Linux startup scripts (in the pre-systemd days) with make to speed up boot time. That's actually what inspired my batch schedule work.

Mister_Snuggles··on Dear sir, you have built a compiler
I work on a commercial ERP and this is 100% accurate. It features:

* A proprietary language

* A compiler for said proprietary language

* A way to define tables and views and turn these definitions into real tables and views that live in an SQL database. There is also a custom SQL dialect that gets translated to real SQL on the fly. I'm counting this as having its own database even though it offloads the actual database work to a real database.

* One of the products in this ERP suite includes a CMS built on all of the above.

Mister_Snuggles··on Simplicity of IRC
I remember Delphi being pretty close back in the day, and it's still around[0] if you're willing to pay for it. Lazarus[1] is another option.

Apart from the underlying language, the experience is pretty close.

[0] https://www.embarcadero.com/

[1] https://www.lazarus-ide.org/

Mister_Snuggles··on Should you use Let's Encrypt for internal hostnames?
> The only real answer to this is to use Wildcard Certificates. You can get a TLS certificate for *.internal.example.com

Does Let's Encrypt support Subject Alt Names on the wildcard certs?

My experience suggests that wildcard certs work, but require a SAN entry for each "real" host because browsers don't trust the CN field anymore. e.g., my *.apps.blah cert doesn't work unless I include all of the things I use it on - homeassistant.apps.blah, nodered.apps.blah, etc.

Do Let's Encrypt certificates have something special that negates this requirement? Or am I completely wrong about the SAN requirement?

Mister_Snuggles··on Ask HN: How do you manage direct updates to databases in a production system
At work, we do the following:

* User reports the issue to a business analyst via a ticket.

* Business analyst confirms the issue, adds any relevant details, and opens a ticket with the technical team.

* The technical team creates a script to perform the update and runs it in the 'support' database (which is refreshed nightly from Production)

* Business analyst validates results

* User validates the results

* Technical team logs a Change Request, it is discussed at the next Change Advisory Board meeting, then the script is run during the next change window (weekly). If it's an emergency, we can run it the same day.

* The Database Administration team runs the script in Production

It sounds like a heavy weight process, but with multiple people involved and actions logged at every step of the way it's a very safe and auditable process.

TL;DR: A small number of trusted people have the required access, there is a fair amount of business process built around using this access.

Mister_Snuggles··on Ask HN: Best Alternative to Homebrew in 2021?
My experience with MacPorts has been generally good, apart from dealing with OS upgrades which are more painful than necessary, but I've honestly never tried Homebrew so I can't compare them directly.

Personally, I find that the whole Homebrew "theme" where every command/thing is named after something alcohol/brewing-related (cask, bottle, formulae, tap, keg, etc) is a huge turnoff.

Mister_Snuggles··on SPARCbook 3000ST: The coolest 90s laptop (2019)
My first real job included system administration on a pair of SparcStation 20s (which were replaced with a Sun Enterprise 450, which was then replaced with two Sun Fire V250s). The screenshots bring back fond memories.
Mister_Snuggles··on Avoiding bot detection: How to scrape the web without getting blocked?
I had never heard of this, but it looks like a reasonable option. My go-to for this type of thing would be Python+Selenium+Firefox, but only due to familiarity with those.
Mister_Snuggles··on Avoiding bot detection: How to scrape the web without getting blocked?
I will take a look at this - thank you!
Mister_Snuggles··on Avoiding bot detection: How to scrape the web without getting blocked?
In Alberta, the electricity system has been deregulated so you can buy from numerous providers. The Utilities Consumer Advocate shows 187[0] different electricity plans available in my city. My currently plan and provider changes rates monthly, but some providers allow you to sign up for 3-year or 5-year fixed-rate plans.

Thanks to deregulation, the electricity rate isn't the only thing you pay for though. There is also a Transmission Charge, Distribution Charge, and Local Access Fee. These are all per-kWh charges and change very rarely.

In October, my electricity rate is $0.10730/kWh, but my total cost is actually $0.16346/kWh plus the per-day charge ($0.202/day). Tomorrow the November rate will be published.

[0] https://ucahelps.alberta.ca/cost-comparison-tool-result.aspx...

Mister_Snuggles··on Avoiding bot detection: How to scrape the web without getting blocked?
I wish they'd limit it to just stopping credential stuffing.

Here's my scenario: My electricity provider publishes the month's electricity rates on the first of the month, I want to scrape these so that I can update the prices in Home Assistant. This is a very simple task, and it's something that Home Assistant can do with a little configuration. Unfortunately this worked exactly once, after that it started serving up some JavaScript to check my browser.

The information I'm trying to get is public and can be accessed without any kind of authentication. I'm willing to bet that they flipped the anti-bot stuff on their load balancer on for the entire site instead of doing the extra work to only enable it for just electricitycompany.com/myaccount/ (where you do have to log in).

I also asked the company if they'd be willing/able to push the power rates out via the smart meters so that my interface box (Eagle-200) could pick it up, they said they have no plans to do so.

The next step is to scrape the web site for the provincial power regulator, which shows the power rates for each provider. Of course, the regulator's site has different issues (rounding, in particular), I haven't dug any further to see if I can make use of this.

All of this effort to get public information in an automated fashion.

Mister_Snuggles··on Fastmail, Runbox, and Posteo under DDoS extortion attack
> One way is to build your software on top of distributed/content-addressed P2P software (not Blockchain, but pure P2P). The angle of attack disappears completely then.

I can see how this works for some applications, but how would this work for SMTP and IMAP/JMAP?

Mister_Snuggles··on Backblaze S-1 IPO
Ah, ok. That's basically what I'm doing, except I'm using restic instead of rclone.

I've done borg for local backups for a while and figured I could just replace it with restic, then I discovered that restic doesn't do compression so I just pointed that at the borg repositories.

I'll probably use restic directly for things that don't benefit from compression and continue to use borg for things that do.

I'm open to better options though, layering two tools that basically do the same thing seems like a bit of a hack job.

Mister_Snuggles··on Backblaze S-1 IPO
I'm worried, in part, about files getting deleted. If I delete or otherwise lose my repository, rclone will helpfully delete it on the other side. Some amount of deletion is expected, like when borg prunes the old stuff out, so having rclone not delete anything might not be an option either.

I'm sure there are ways to manage this though, I just haven't figured them out yet.

Mister_Snuggles··on Backblaze S-1 IPO
That was my plan, but restic doesn't do compression so that would increase costs and backup time.

Some use-cases, like photo libraries, won't benefit much from compression, so I may use restic directly for those.

Mister_Snuggles··on Backblaze S-1 IPO
rsync.net is a very different product though.

I recently evaluated a bunch of cloud storage/backup services. rsync.net is a ssh-accessible ZFS filesystem (including support for zfs send/recv) in the cloud, B2 is object storage.

rsync.net has a cheaper version aimed at people doing borg backups. Unfortunately it's still 3x the cost of B2 for 1TB of data.

Mister_Snuggles··on Backblaze S-1 IPO
What's your process for backing up to B2 using borg?

I'm currently doing borg backups to a local server, then using restic to back up my borg backups to B2. My reason for using restic over rclone is so that if the local backup is corrupted I've got history on the remote to fall back to.

I'm hoping to find a less cumbersome way to do this.

Mister_Snuggles··on Review of the Buick Riviera’s ‘touchscreen’ from 1986 [video]
This is correct.

My previous car was FWD without any assistance mechanisms (ABS, traction control), but with winter tires, and it was definitely easier to drive it in winter.

Mister_Snuggles··on Review of the Buick Riviera’s ‘touchscreen’ from 1986 [video]
RWD is fine in winter.

Good winter tires (Nokian Hakkapeliitta in my case, but there are plenty of good winter tires to choose form) plus traction control and ABS will help a lot, but you also need to modify your driving behaviour as the car can only do so much.

Give yourself more time, apply all inputs (gas, brake, steering) slowly and deliberately - sudden movements are more likely to give you a bad time. Understand how your car behaves in various conditions, empty mall parking lots are good for this. Leave more distance between you and the car ahead of you. Know what do to when you lose traction. Keep your car maintained - properly inflated tires, functional wiper blades and keeping the washer fluid topped up are important. Keep your gas tank at least half-full, which helps during unexpected delays and the additional weight helps with handling. Know what spots are bad in your city and avoid them. Know how to get your car free when it's stuck in snow - if you're going to rock it out, you'll probably need to disable traction control to do it successfully.

Personally, I also avoid driving the first day or two after the first big snowfall. This gives the city time to deal with the snow and gives other drivers time to re-learn winter driving.

Source: I've daily-driven a RWD car for years in Edmonton, AB.

Mister_Snuggles··on Do not leave XPS laptop in any sleep/hibernate/standby mode when placed in a bag
Like a sibling commenter, I've found this pretty hit-and-miss too.

Something like Outlook or OneNote will restore its state reasonably well, as will Safari/Chrome/Edge/Firefox. Others, like Activity Monitor, Enpass, and iTerm2, decide to "helpfully" open a window for me even though the previous state was "running with no windows open" (which is perfectly valid for many applications).

Mister_Snuggles··on Do not leave XPS laptop in any sleep/hibernate/standby mode when placed in a bag
I prefer to put my computer to sleep rather than shut it down. Closing the lid on my computer, putting it in my backpack, and heading home for the day is very natural. When I get back to work the next day, I open it up connect the cables, scan my fingerprint, and everything's back where I left it. I usually go at least a month between reboots, but that's highly dependant on when updates come out (and get approved by work, of course).

This is on a Mac though, so (for me anyway) this is something that just works without any fuss.

Mister_Snuggles··on Leaving the Apple ecosystem behind
I know that M1-based Macs can only support one external monitor, but Intel-based ones can support at least two.

I'm able to run two external monitors, plus the internal display, on my work 2017 15" MBP and my personal 2017 13" MBP. The 13" MBP is running Big Sur, but work hasn't approved that for the 15" one yet.

Big Sur has given me no issues with the multi-monitor setup.

Mister_Snuggles··on QuickBooks Desktop moves to subscription model
Are there any alternatives that don't involve a cloud service?
Mister_Snuggles··on QuickBooks Desktop moves to subscription model
I'm in the same boat, I'd love to know what you end up with.

Personally, I'm leaning towards just doing everything in a big spreadsheet, but that's not great for many reasons.

Mister_Snuggles··on How the pandemic has affected people’s perspective on travelling to work
At my work, we've been told to go back to the office, however the messaging has been vague, contradictory, and ever-changing.

For example, a few months ago the Telecom area announced that they purchased hardware to move our phone system into Microsoft Teams. Phone numbers would be moved over department by department, your desk phone would stop working once your number moved over, and here's some recommended headsets if you'd like one.

Then, after the phone system switch was well underway, an email from the President announced that we'd all be back in the office in September and that WFH would no longer be a thing. On a positive note, the MS Teams telephone integration works really well, so regardless of where I work it's an improvement over the desk phones.

Then, after I'd told my team to prepare for coming back full time, the messaging changed to "We're going to transition back to the office and you only need to be in two days per week, but we'll be back full time by January."

Honestly, I'm not sure how I feel about returning to the office. I'm sure I'll get used to it much like I got used to working from home. And I'm sure my co-workers will get used to me leaving at exactly 4pm (thanks to the bus schedule) instead of staying a bit afterwards to finish whatever I'm working on.

From the rumours I hear though, not everyone is feeling the same way. I know of five people that have left who would have likely stayed if they could work from home.

On top of all of this, COVID cases in my province are skyrocketing (10% of Canada's population, but 35% of its cases) and our elected leaders have disappeared. Apparently the Premier is finishing up a two-week vacation next week, so maybe we'll see restrictions re-imposed at the last minute and returning to the office will be postponed.

Mister_Snuggles··on Bug in Lynx's SSL certificate validation – leaks password in clear text via SNI
This bug seems to have nothing to do with SNI or TLS, it is all about how Lynx parses the URL and what pieces it incorrectly passes to the underlying TLS library.
Mister_Snuggles··on Bug in Lynx's SSL certificate validation – leaks password in clear text via SNI
My first exposure to the internet was via Edmonton FreeNet. You'd dial in, using a terminal program like a BBS, and it would dump you into Lynx.

They had a menu where you could access email (Pine), manage your small amount of file space (downloads went here, then you'd go to the file manager to transfer them to your computer via ZModem), change your password, etc.

I have fond memories of Lynx, but I haven't used it since I switched to a provider that gave me a "real" connection.

Mister_Snuggles··on Microsoft's low-code strategy paints a target on UIPath and other RPA companies
Sometimes the solution is also "Get IT to fix the thing that you're working around"

There was a delivered process to do a particular job, but it didn't work. Nobody thought to tell IT that it didn't work, instead they built a Ruby+Selenium script and ran it on a spare computer. Which worked great until it didn't.

Mister_Snuggles··on Microsoft's low-code strategy paints a target on UIPath and other RPA companies
> "Business users shouldn't be able to use IT change control tools!"

> Wait... isn't this exactly what we're always griping they don't do?

This is something I hate. In IT, we use change control processes - change requests which have to get approved, discussed at the change advisory board, etc.

There are a lot of questions to answer before something goes into Production: Was it tested internally? Did the business area test it and sign off on the change? Is there evidence of said testing? Was code review completed? Is there a backout plan?

I've never seen the same rigour applied to configuration or processes that are managed by the business area, even though their configuration can do quite a bit of damage. Change the inactive customer purge time from 2 years to 2 days? Oops, virtually all of the customers have been purged.

Mister_Snuggles··on Microsoft's low-code strategy paints a target on UIPath and other RPA companies
In my experience, the lifecycle is more like:

* Person in the business area implements RPA. Business area is happy.

* Person who implemented RPA moves on to greener pastures.

* RPA breaks, business area calls IT.

* IT is horrified at the unsupportable mess that's just been dropped in their laps.

← PreviousPage 7 of 32Next →