That's not really sufficient. It could still phone home if it falls back to IP addresses. You should be blocking it at the firewall level, not just with DNS.
But me personally, I wouldn't ever connect any of these devices to my network.
Firewall rule that prevents the tv from accessing the internet (by mac address if using dhcp, or set a static ip for the tv). Or stick it in separate quarantined IoT subnet with your devices.
It’s still scanning (or at least listening to) all the other devices on your local network, like your phones, PCs, etc. It collects an inventory and if it ever happens to get Internet access, uploads that data.
That's why you put IoT crap into an isolated vlan with its own ssid, enforce device isolation for that ssid across all WAPs, and enforce isolation on the vlan level with your switches to cover any hardwired devices.
The more I use it, the more I have to rely on it to make changes/ fix things in the same system. In the end, I come out feeling empty; no intuitive knowledge of the system "I" built or fixed.
Code review is important but it does not replace the mental model I am able to build when I do all the steps of software development manually without AI.
No worries, at some point your hit the wall with it and the reality will force you to look at the code. It won't be nice, but until that point delulu land is sustainable enough to fall forward
It's the uncanny valley of AI. It's still not quite good enough yet that you can trust it blindly on a big codebase, so you still have to read and understand everything - which is often harder than just writing it up yourself.
I doubt AI will be good enough to _scale_ many things because human language isn't sufficient to explain it (especially when not understanding what is being built). Humans invented more concise languages (math, C++) to pair with their intellectual acuity. [1]
In one extreme, we have art, which cannot be accurately reproduced or explained in any language (unless a concise language was used to create it, like math or CS art).
At the other end: 1 + 1 = 2 and PI = 3.14...
[1] It seems any language that has a binary outcome (correct/wrong) helps the AI tremendously, however when e.g. creating software, that software is not functioning in isolation. The software is an attempt to codify a fuzzy human system or need, and that information only flows in one direction: human to machine.
I put on AGENTS.MD a prompt that says: teach me something small something about the changes you did if the changes were < 3 tokens if it was more than that teach me more. That's helped me somwhat. So now everytime it changes something it teaches me something about the codebase
i literally tell it "explain it like a 5 year old can understand" and "keep it under 100 characters".. helps somewhat (its still an llm so caveat emptor)
I find that it helps a little to maintain an iron grip on the design. Take the time for really detailed change planning. Be pedantic and push back against every little thing that seems wrong or even a little odd in any plan document the LLM spews out. Likewise, watch for the for the moment when the LLM eventually stumbles and starts to make excuses for deviations from the plan. Interrupt immediately and force it back onto the plan (or your vision), potentially with pointers to resolve immediate problems. Completely unattended agents just don't work for important code.
>The more I use it, the more I have to rely on it to make changes/ fix things in the same system. In the end, I come out feeling empty; no intuitive knowledge of the system "I" built or fixed.
Most of us build a system to deliver a product to make money. We don't feel empty for not knowing how the system works, since we don't really care: it's just a means to an end.
> Most of us build a system to deliver a product to make money
Shouldn’t it be to deliver a system that is sold as a product? And even then that product is sold to consumers to solve their problems. Not knowing how it works means you don’t know what solution you’re selling.
You can see that in a lot of product announcement where the focus is on what they’re building, but not on how it solves some problem. The consumer is absent from the design process.
I highly recommend nand2tetris to everyone. For me, nothing ever explained the whole domain from logic gates and inner workings of a CPU to compilers better than this course.
I think it's worth mentioning Gustavo Pezzi's lectures at pikuma.com. The one on "Digital Electronics" and the one on "Interpreters & Compilers" really helped me.
Someone, claiming to be from the Raycast team, in the original HN thread said that they were not aware of the advert or were involved with it in any manner.
> Are you primary using electron-based apps, or true native macOS apps?
Maybe I’m lucky but I run macOS daily without any problems.
There’s an in-between abomination — Catalyst based apps from/by Apple (quickly migrated from iOS to macOS). Reminders, Notes and others are downright unnavigable and unusable with a keyboard and are so, so terrible in their UX. It’s a shame that Apple hasn’t spent any effort in fixing those and making them true native macOS apps.
For the last several years, there has been nobody at Apple who has good taste and a deep and committed interest in UX.
Most Apple apps are somewhat bad nowadays. It largely defeat the marketing/purpose of the "ecosystem" because the 3rd party stuff doesn't necessarily integrate the "special sauce" (like sharing for passing stuff around). So if you end up just running 3rd party apps that are just some web app wrapper or custom implementation UI it begs the question of even using Apple hardware. Yes it's top of the line, but it is also very expensive at any given level of performance.
They are just milking their media/dev niches at this point and mostly caters to the common denominator with low expectation for premium prices.
If you gotta run Chrome, Microsoft Office, Google Web Apps and the likes it doesn't feel worth it. Meanwhile the indie app market is insane with expensive subscription for utilities that are basically free elsewhere.
And I lowkey hate what iOS has become. Convoluted and unpredictable. Now ugly as well.
Try "killall -STOP photoanalysisd", this will pause the process instead of killing it (which would result in restarting it by launchd). You can unpause it by using "-CONT".
I use MacOS daily on different machines and don't have that experience. I also manage many Mac's and I don't hear people reporting this kind of instability to me.
Spending a lot of time debugging code. Eventually, the pattern recognizer in your brain will pick out the bugs. The term for this is "code smell".
For example, when I'd review C code I'd look at the str???() function use. They are nearly always infested with bugs, usually either neglecting to add a terminator zero or neglecting to add sufficient storage for the terminating zero.
It is crazy that anytime someone works on application layer and wants to manipulate string, which is a very, very common thing to do when writing application, one has to consider \0 which would be an implementation detail.
Programming is the consideration of implementation details. When you manipulate strings in C you consider the terminating nul byte just like when you manipulate strings in Python you consider how its stores codepoints or when you manipulate strings in Swift you think about grapheme clusters. There is no free lunch. (Though, of course, you can get reduced price lunches based on the choices you make!)
Pardon my ignorance, since I don't know C, but is it true to say that the length of string "Foo" is greater than 4 because of the null terminating byte? Or maybe there is no concept of string length? I could see this getting annoying since Foo is three chars long, you would assume it's length is 3, but we could be speaking of the actual length of bytes, in which i assume it is sizeof(char)*3+1 i.e. the sizeof(char F, char o, char o)+1nullbyte
The string length in C is "whatever number of bytes are there between the beginning of the string and the first \0 character". That's different from "how much memory is being used by this string" because you usually allocate a bigger buffer.
The length of the string "Foo", when properly terminated, is 3. The minimum number of bytes needed [1] to represent that string properly is 4 (3+'\0'). The actual number of bytes used by that string is whatever you asked for and received when using "malloc".
Oh, people tried. Every C programmer tried it. I tried multiple times. They all failed.
Back when I was musing about what D would be like, I happened across some BASIC code. I was drawn to the use of strings, which were so simple in BASIC. I decided that D would be a failure if strings weren't as easy to use as in BASIC.
And D strings turned out to be better than I'd dared hope!
I proposed an enhancement to C to get much of that benefit, but it received zero traction in the C community. Oh well.
I do not think it is obvious or trivial question. I think the problem is mostly that there is no money for enhancing the C ecosystem and educating people about possibilities. The cooperate money goes into random new things.
My problem with "crossplatform" GUIs that run on Linux is that they aren't made to run on Linux desktop, they are made to run on Android, iOS, Windows, macOS, and finally Linux desktop.
All I want is a menubar, a toolbar, a statusbar, and some dialog windows. I don't want fading transitions when I click a tab.
It's crazy that I'm forced to write header files just to have a menubar.
That questions is kind of the point I want to make. We live in 2025 and C is still an option for new applications, i.e wrong abstraction layer for application level development.
No doubt there are valid reasons to use it, that is just the state of things they are unfortunately.
And when you run that compiler implementation, what language family was used to implement the OS and kernel it's running on, the firmware you're using etc?
That's what I meant, not that self hosted compliers don't exist.
I get the feeling these kind of skills are very rare because they fall in the category "understanding and debugging other people code/mess", while most people prefer to build new things (and often struggle to debug their own work).
It takes a lot a passion and dedication to security and reverse engineering to get there.
By reading and keeping up with the published work in browser exploit development, replicating it yourself, and then finding you have a knack for spotting vulnerabilities in C++ code.
reply