Hacker Newsnew | past | comments | ask | show | jobs | submit | briHass's commentslogin

Amor fati.

While stay at home parenting isn't, and shouldn't have to be, for everyone, it also isn't somehow a downgrade from being in the working world. If anything is doing something 'over and over', it's trudging to some job to push papers/keyboard keys around for 8+ hours.

This is the point missed by many. The trades are in high demand, right now, because of a labor shortage and demand from upper-middle class individuals without any DIY skills. A generation or two of pushing kids into college, and an almost disparaging view of 'getting your hands dirty' has built this perfect storm.

However, besides a few trades that use unions/licensure/apprenticeship as an artificial supply limit, most trades are only limited by a willingness to do the work. A few decades ago, trade work was much less expensive, because supply was higher and many did their own DIY, which limited what prices the market would tolerate.


Are they?

I'd put Codex 5.3 on par with CC for almost every task, and OAI has been rapidly updating their app, with a major initial release for Windows just a few weeks ago. Quotas are a moving target, but right now, Codex offers a better value by far, being very usable at the $20 level.

I don't have a dog in this race other than competition keeping them all honest. Claude led for so long, but I think that early lead has blinded many to how close it is now.

The only one really eating dust is Google. What a terrible offering. I wish it wasn't so, because they could really apply some price pressure to the competition with their scale and integration.


If you want to run EspHome inside HA, and you recompile the devices (every release of EH), you want a decent processor/disk. The ESP stuff is a surprisingly heavy compile for a puny microcontroller.

A recent RPi is sufficient to handle a few plants - though, yes, recompilation will take time. The ESP is a beautiful piece of software, hence I highly recommend it. My native language has an expression that describes this situation perfectly: the appetite grows with eating. Next thing you know you have 2k or more entities, and your HA even handles some video feeds.

The important thing is that it's pretty much always easy to make an upgrade thanks to the good design of the backup system. Don't forget to set up backups in either case, it's a sin to not use such a complete system :)


Recompilation has nothing, or should have nothing, to do with the requirements to run the system. If that is indeed a requirement then the system is indeed bonkers.

For a system handling sensors and actuators you should be able to run a farm off a RPi in terms of compute power. Quad-core at 2.4 GHz and up to 16 GiB RAM on a RPi 5, that's a crazy amount of compute for the use-case.


The way ESPHome works is that your device configuration is a yaml file that produces a compiled binary artifact and it can be updated OTA with wifi. The downside of this is that these updates are pushed via the device you are running HAOS and hence compiling can take a while.

HAOS is quite bloated but it's also very versatile and FOSS


There's no reason you have to run ESPHome on your Home Assistant server.

It's offered as a HA a̵d̵d̵o̵n̵ app for ease of use (makes it a one-click install), but you can also just `pip install esphome` or use the provided Docker image and get the exact same UI, but with everything (including compilation) running on your much beefier laptop.

So your binaries get compiled quickly and you can still do the OTAs directly from your laptop. HA needn't be involved.


Thanks for explaining. So that's compiling code for an ESP32 once in a blue moon? Bonkers indeed if that's considered a limitation.

Every time you make a change to your yaml it requires a recompile. I think now ESP Home allows you to change configurations and upload a bin compiled on your main machine so it's really not a limitation at all. Plus, once it recompiles it automagically uploads so just make your changes and forget about it

You're making it complicated with all the VLANs. HAOS in a VM (proxmox helper scripts for one-line install), and HA has plugins for all the other things.

Just deny WAN access to the IoT junk you don't trust at the router, or for things like cameras, a separate switch for those. That usually makes sense, since they're one of the few devices that must be powered with PoE and doesn't require gig+ bandwidth. A cheap 100mbit PoE switch will handle a good number of cameras.


I’m not giving untrusted devices unfettered access to my lan and an airgapped network sounds more complicated tbh. VLANs aren’t really that bad with good networking gear.

I have HASS running on a dedicated VLAN, IoT junk on its own, separate VLAN without internet access, through a managed switch. OPNsense sits in between and does the routing. Didn't have to mess around with anything, just ran the "vm appliance" or whatever it's called for hass and I was off to the races. Wireguard on the firewall gives me access from outside the house.

Actually, both OPNsense and Hass are VMs on the same machine, with the latter's network not even connected to any physical port outside the box. I'm not even running Proxmox or anything fancy, just libvirt on Arch. The only "fancy" thing is a 2nd hand Mellanox NIC I got off eBay for 30 €, which presents virtualized interfaces to the VMs, but HASS doesn't actually use those.

There's also no need to manually screw around with any reverse proxy for TLS; HASS does it with the Let's Encrypt add-on. The only missing piece when I set this up a while ago was something to regularly renew the cert (the add-on would only get started at boot-up).


What zwave devices do you have that also require LAN access?

I've always said one of the best non-major-related courses I took in college was Criminal Justice 101, which went through all the most applicable SCOTUS case law for common scenarios. Ignoring the variation in state laws, you could boil it down to about 30 rules of thumb. Many of the most important are covered in the classic YouTube lecture 'Don't talk to the police.'

Teaching this as a requires HS class would be an incredible benefit to society, because, on the flip side, many police encounters escalate to violence because the citizen has an incorrect understanding of where their rights end/don't exist.

The most obvious rule to follow is that you should always assert your rights (correct or incorrect) verbally only, as soon as you involve physical resistance, the situation will deteriorate rapidly (for you.) Any violations of your rights will be argued and dealt with in court, not on the street. Confirm requests/demands from officers are 'lawful orders', and then do them.


I'm curious why you don't like OpenWRT?

I've found it to be the better choice for x86 hardware, because it performs so much better on older CPUs. FreeBSD has gotten better with driver support, but the Linux kernel in OWRT is just a better base to build off of.


not GP but I've found the install and upgrade experience for OpenWRT on larger machines is not great compared to the alternatives and normal Linux distros, everything is biased towards the use case of occasionally flashing/configuring little systems

I still use it though, can't complain in terms of actual routing/switching


It worked for years for the SomethingAwful forums. A nominal charge for the ability to post, with plenty of 'timeout' chances for rehabilitation before an outright ban keeps out most of the junk.

It feels wrong at first to pay for commenting on a forum, but the alternative is almost always a gentle slide towards a trash dump. AI means that slide is almost a vertical slope.


I've found and fixed this bug before. There are 2 other ways to handle it

Dapper has a static configuration for things like TypeMappers, and you can change the default mapping for string to use varchar with: Dapper.SqlMapper.AddTypeMap(typeof(string),System.Data.DbType.AnsiString). I typically set that in the app startup, because I avoid NVARCHAR almost entirely (to save the extra byte per character, since I rarely need anything outside of ANSI.)

Or, one could use stored procedures. Assuming you take in a parameter that is the correct type for your indexed predicate, the conversion happens once when the SPROC is called, not done by the optimizer in the query.

I still have mixed feelings about overuse of SQL stored procedures, but this is a classic example of where on of their benefits is revealed: they are a defined interface for the database, where DB-specific types can be handled instead of polluting your code with specifics about your DB.

(This is also a problem for other type mismatches like DateTime/Date, numeric types, etc.)


Sprocs are how I handle complex queries rather than embedding them in our server applications. It's definitely saved me from running into problems like this. And it comes with another advantage of giving DBAs more control to manage performance (DBAs do not like hearing that they can't take care of a performance issue that's cropped up because the query is compiled into an application)


As a general issue of hygiene I tend to wrap any ORM and access it through an internal interface.

1) The joy of writing and saying DapperWrapper can’t be overstated.

2) in conjunction with meaningful domain types it lets you handle these issues across the app at a single point of control, and capture more domain semantics for testing.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: