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

English is my first language. I have always found this discrepancy deeply unsettling. A personal problem on my part I'm sure.

I think the issue is that there are rules but they're really complicated. So nobody learns them. And then they teach kids by cultural taboo violation.

"The letter 'c' makes two sounds. An 's' sound and a 'k' sound."

Atlantic osean.

"Wrong! It's Atlantic oshean! Why are you wrong!"

Then iterate for 20 years.

YouTube videos talking about linguistics and history have been a significant eye opener about the source for half a lifetime of frustration.


> Once you come to terms with the idea that translating an exact specification into decent code isn't a unique skill

My employer moved out of the "accept spec; produce code" space back in the early aughts. It was clear that early that this was going to be a bad space to operate in. (Although not for LLM reasons, obviously)


Yeah, I primarily use rust because it's got algebraic data types, pattern matching, and cargo.

If ocaml had a cargo like experience, then I would migrate there.


I've said for a while that the main reason Rust is so popular is that it has a lot of effort put into the developer experience, with the low-level safety honestly not being all that important to a large portion of the programmers who would be fine with a garbage collector. I used to think that maybe a "Rust with garbage collector" would come along, but at this point it honestly seems more likely that an optional garbage collector would be added to Rust (probably with just the primitives in std and leaving it up to libraries to provide a more full experience, like with async runtimes).


a rust with gc is already available. it is called c# and runs on all os nowerdays


No, a class-based OO language where you need to spend effort crafting build targets by hand or use an IDE to define how to build is not anything close to what I'm talking about. If you think that it's "Rust with GC", I think you're misunderstanding what actually appeals to most people about Rust.

I'd also argue that "runs on all OS" is true, but "is easy to develop without extra work in a cross-platform way" is not. I've never cloned a Rust project and had trouble building out of the box on Linux, but I'd estimate maybe one out of 20 C# projects I clone from Github build for me out of the box with `dotnet build`; the rest either require me manually tweaking the build configs to avoid stuff like hardcoded Windows-style paths or link to system dependencies that don't exist on Linux. I imagine you might argue that this is a property of how people use the language rather than the language itself, but that doesn't really matter from the standpoint of whether it's worth it for developers who don't use Windows to spend any time trying to invest in the ecosystem.


I feel like the weather app makes a lot of sense from a corporate politics point of view.

A 1mb weather app would have a significantly less impressive pie chart associated with it come "here are our improvements" presentation.

Also if times get tough and you're told to reduce headcount by 10%, who do you want to get rid of. Sally who knows the USB driver end to end or Todd who wrote the bloated 1gb weather app. (Don't feel bad for Todd, he knew what he was getting himself into.)


Also, showing the weather is a great excuse to ask permissions for the user location.


I've been doing forest service stuff for a year with almost no signal and often no gps without antenna and it's incredible what asks for location permission to run. My amazon bought LEDs (15+, 3-5 diff types) all check location before I can connect them. I wind up waiting 30 seconds sometimes more to turn lights on. My generator and inverter have to phone home so that lags constantly.

Also I've been shadowbanned from a bunch of social media sites and had problems with payment systems, etc because Starlink confuses companies tracking user locations to geoips etc.

Won't even get into the apps that look downloaded and usable until you open them with no signal and they don't work before phoning home.

I've been meaning to go through ALL my apps and delete everything I don't use, I haven't installed a new app in years.

Then you have MacOS now that has the most "wtf" level permission prompts that make you think everything is phoning home or trying to access stuff on your network when it's just connecting bluetooth devices or something daily. I don't know how many games I've installed that now show up as having full screen or keyboard control permissions just to use input devices. I work on this stuff and can deduce what it's doing, especially after googling it, but "Stupidgame needs control of your system" is wild to someone who doesn't, I'm sure.

I've been wondering if it's almost nefarious that they want to get people used to allowing these seemingly system wide controls to be given to.. everything, by hiding the security-ok things behind a giant red flag warning.

Sorry went on a tangent. I miss specific permissions notifications I can trust.

edit: Oh, my "fix" for most of this is fakegps and mocking my android systemwide gps location to whatever, if you go through this.


Android's permission system conflates the Bluetooth scanning permission with the "Fine location" permission, because in theory any app that can enumerate nearby Bluetooth devices (including things like nearby Bluetooth Low Energy beacons commonly found in stores and malls) could use that information to locate your phone within a few hundred feet.

It seems like there's a newer build option to explicitly disable the "Fine location" permission prompt while still being able to scan for Bluetooth devices, but such beacons are somehow filtered from the list if it's enabled, and it's only available for builds targeting newer Android versions.


I'm sure at least some of those macOS permissions prompts are spurious, but for the most part I think they're genuine red flags of poor software quality if not actual security/privacy threats. When a video game prompts for full disk access, it's probably because it wants to spray config and save files all over my home directory instead of putting them in a platform-appropriate location. When it triggers a permissions prompt about Bluetooth, it's probably using the wrong API to get input from a game controller or the wrong API for identifying what kind of input devices are present. If it triggers the "wants to control your system" prompt, it's probably trying to keep responding to input even when it's no longer the foreground application.

Sometimes the right API might not actually exist, but most of the time it's just lazy developers half-assing a port with no care for making the application behave appropriately for the platform. The prevalence of "Please don't turn off your computer while the game is saving" warnings is pretty clear proof that game devs in particular don't make any platform-specific adjustments they aren't forced to. (Game consoles usually require those warnings, but they're stupidly out of touch on a computer.)


My point is that the notifications are less specific now, so whether or not someone is being a normal dev, which nearly all if not all of them are in my experience, you still get a giant "FULL DISK ACCESS" because a game wants access to your download directory or something ridiculous. The errors used to be worth stopping to check things for. The OS shouldn't be scaring a user from running an application that broadly, they just become red herring alerts that people stop paying attention to.

You're of course correct in the os APIs, etc, my frustration comes when you're modding games and what not and the Apple notifications make it sound like you're giving your system to the app, when it IS acting for the low permission.


i prefer the macos mindset if not the actual OS


I just looked and I think what I'm talking about, where they folded more specific permission callouts under a broad term "Full disk access" "local devices" etc used to be more granular before they updated that UI to match the iphone. If I got a jumpscare permission prompt on macos, I used to actually be concerned. Now they're all jumpscares for basic stuff.

But I could be misremembering. I haven't liked any of the recent macos releases. I will begrudgingly install Golden Gate to hopefully fix my m1 max 64gb slowing ot a crawl with Tahoe.


If you really want to see what is doing what, you should install Little Snitch and Little Flocker. Many apps (from exactly the people you'd expect) are doing absolutely unhinged nonsense that no-one should put up with.


I didn't know about Little Flocker and BlockBlock, I'll have to check these out. I do a lot of game modding dev work and people are using mods as attack vectors all the time now and it's made me wanting to ebpf lockdown everything.

Between quick mod tools and even just the mods watch out nowadays. That vibe coded new game tool for a game you've played 10 years and never seen before could be just vibe coded malware slop, especially if its asking to sign software or bypass it. Now gamers are getting used to disabling security stuff just to play games.

I've never actually looked at this list, I've used lulu but they have a ton of security tools https://objective-see.org/tools.html


yeah i mean security is opposite to convenience until it is really really not


Ah, most of the people just click yes, yes, allow, allow, yesIamsure, next. Especially when the system is training them to do exatly this by these meaningless warnings you described.

The forest job sounds nice :)


What does that have to do with its RAM consumption, though?


What if the user changes location?

Sounds like unbounded, dynamic allocation to me!


Makes sense, someone turns on a vpn, have to prepare for that.


Unrelatedly, I'm still trying to figure out why Apple requires me to unlock my phone to look at the weather. Is there some concern that someone could pick up my phone and learn what city it is in?


You can use the weather widget on the lock screen, and as long as you have lock screen content when locked enabled, you can see the current area's weather just fine. Or do you want the whole app experience?


The lock screen widgets don't tell you much more than what you can get from looking outside. It's not very helpful to know that it's currently overcast and raining, but it would be a lot more helpful if I could know when the rain is supposed to stop or what the week's forecast is and so on.


I'm a little too lazy to experiment, but it wouldn't surprise me if that widget didn't function normally until the phone is unlocked.


I just tried it. It works fine.


The software can read from the phone without unlocking it?


After the first unlock after a reboot yes, except for those items with very high security (usually just keychain items) that require an unlock for every access. Lock screen items can be locked every time you lock the phone, or set to allow access while locked (after first unlock). Unfortunately this is an all or nothing setting, unless the widget specifically uses the redaction views to hide content.

Oddly, I find the weather widget refreshes much more often than the app. I'll tap on the widget, which is up to date, which launches the weather app, which could be from yesterday, and have to wait while it refreshes. Apparently the app doesn't implement any background refresh at all, which is really weird.


So—the widget doesn't function normally until the phone is unlocked?

I don't want to flex but that seems worth acknowledging from every perspective


Until the first unlock after a reboot, no, like I said. Given how rarely iOS devices are rebooted it's not an issue.


You want to be able to launch apps without unlocking your phone? Slippery slope.


If the app doesn't have any sensitive information, then yes. We already do this with home screen widgets today, so clearly there's no real barrier.


Apps can have vulnerabilities (intentional or not). It's a contrived example, but maybe some weather app has a custom icon feature, which means you can then browse photos by opening it on the lock screen and going to that setting.


Widgets can't have vulnerabilities?


They can, but scope and features increase surface area: their limited functionality intrinsically limits that.

Widgets are just apps with limited scope and surface area. There’s no reason they can’t apply this to the weather app which already has (or should have) a limited scope.

Camera app does it.


Nope; the lockscreen camera is actually an entirely different app, or not-quite-app thing. (Note what happens when you open the camera roll in the lockscreen camera.)


The mac tahoe weather system daemon is also sus


Did Todd just know or did his PO tell him to add telemetry tool number 24 while he was protesting and begged to be allowed to migrate to a newer rendering library but got shot down promptly because "KPI line must go up"? :)


Todd was a script kiddie and never really knew what he was doing. He changed careers after the layoff and is now an owner of an electrical contracting business.


The longer I work in corporate, the wiser Todd seems


Based on windows bloat Sally got fired because she was an old timer and cost to much so all the Sally's are gone and they're all Todd's now and windows is an unstable bloated mess.


The corporate dilemma between "I hired some less competent engineers and they're dragging the team down" and "I hired only highly capable engineers and now I have to give 10% of them bad reviews in stack ranking and later let them go"


I don't think this is a real dilemma - people hell bent on avoiding work can get by without shipping a single line of code for years.


Not to mention, they have 1 GB of headroom in their back pocket if/when they need to make Windows more efficient. Quick rewrite of that app or just scrap it and they've saved months of optimization.


Sally, obviously. Todd is much more likely to have a perfect haircut and immaculate fluency in corpotalk


In this day and age, both Sally and Todd are expendable. Both have been silently training their replacement by feeding the data models.

Replaced by LLM and an offshore contractor. CaPiTaLiSm, right?


The list of professions made obsolete is very long. Why should programming be protected if AI in the future can make software better, safer, and cheaper?


I think it's less about pie charts and more that weather apps can be very eyecandy-heavy. This sort of marketing works well for both consumers and board members.


1GB is space for almost half an hour of 5000kbps ("YouTube Premium") video. Just what kind of eye candy are we talking about here?


It's also only 45 frames uncompressed at 4k. It's remarkably easy to hit that if your base assets are mostly raster rather than vector for a dynamic scene.

Obviously, they should try harder, and this is an explanation rather than an excuse, but the graphics assets are mostly why.


Why would you need that kind of resolution for a weather app? What are you even going to depict with all those pixels?


Because people are looking at it on 4k screens.


I mean, I usually check the weather by putting "weather" into a search engine. And this will show me little SVG icons that take up a tiny fraction of my low-resolution screen and probably involve like less than a kilobyte of path description. And I think this looks perfectly fine and I can hardly even fathom why anyone would want it to be fancier than that. I think that even animating them would make the display actively worse.

I have deep faith you can find the imagination with in you to understand


I couldn't do any of those, but then ~$10k of education later I was able to accomplish one of those things.

I think LLMs are really impressive, but I suspect that we might have overpaid just a bit.


It costs money to train each single human, who is then only productive for a number of years until age takes its toll. Once you have trained one software system, the marginal cost of producing a copy approaches zero. Every subsequent improvement can be broadcasted in a matter of seconds across thousands of data centers. In addition, software does not get sick, age, or die.


I would be willing to bet that any human for which we spend $100billion - $3 trillion (depending if you want to count single corporations or global totals) on in an attempt to make them as capable as possible would be able to reach all of those levels.


I think I view humanity fairly positively, but I admit I would gladly take the other side of that bet


A quick search suggests that the most expensive education in the world is something like $100k.

So like you spend a million times more than that and you still think you're not going to see some results?


> A quick search suggests that the most expensive education in the world is something like $100k.

I have a kid in an American university right now, and a quick search of my bank account statements confirms that there are far more expensive educations in the world.


Wow, an increasing number of US universities are going over $100k per year. That's a crazy amount. That's more than enough to hire an entire person.


Some results, sure.

But that list is extremely ambitious. Write a best seller, make a popular game, come up with a truly novel theory, consistently outtrade index funds.

That's top 0.001% human stuff, I don't think you can take just any person and get there through education alone, it takes extreme talent and dedication. There's also diminishing returns when spending on education, it doesn't just improve linearly.


The marginal return on education spending decreases fairly quickly, but obviously becomes zero at the point by which there are not enough hours in the day/year/decade to cover every single topic that humans know about - no matter the talent or resources available to the student.


except you are missing the one versus many argument here. sure we could make one human much smarter, could we make endless copies with the same intelligence? no


For $100 billion we could pay ivy-league level tuition for a million people. You don’t think investing that much in education would yield some good research or companies?


That's not what the parent comment said though

> any human for which we spend $100billion - $3 trillion...would be able to reach all of those levels


You'd get rapidly diminishing to zero returns after the cost of university a few times over. Every dollar past that would produce no performance gain beyond that.


Are you imagining artificial augmentation somehow? Purely through tutors or training programs we seem pretty limited. Otherwise billionaires (or even multimillionaires) could have far more consistently successful kids.


Don't the children of the wealthy famously have a tendency to be successful? Or have I badly misinterpreted the last several thousand years of human history.

To really drill down into that I would think you would need to figure out how many millionair children get tutored vs how many get spoiled.


Successful, sure.

Gold medal Olympic athletes who are also brain surgeons AND astronauts, no.


I don't believe that AI is the 'higher level of abstraction[1]' that it is often claimed to be. However I wonder if it's possible to work with a codebase when other developers are treating AI as a higher level of abstraction.

Analogously, people can write in assembly, but can you write in assembly when the codebase is frequently altered by someone with an optimizing compiler?

[1] - Do higher levels of abstractions even exist? By my way of thinking that's called not an abstraction. C isn't a higher level of abstraction; it's a different abstraction implemented by assembly. There are more powerful abstractions and more ergonomic abstractions, but that doesn't make them 'higher level'.


You wouldn't be the first person to eventually conclude that C is just a very fancy macro assembler.

But AI generated code is much like every other generated code: it is more voluminous and rather less elegant than what you'd write as a person. And here too there is a link with assembly: early compilers routinely put out absolutely terrible assembly by assembly programmers' standards of the day. And then they got better. To the point that today it takes some pretty rare niches that it pays off to break out the assembler and roll your own.

I expect AI generated code to develop in the same way, and the way to get them to improve is to hold generated code to high standards. The problem is the perverse incentive: generated code of low quality will eventually result in many more tokens burned than a one-shot piece of perfect and elegant code. Here you can draw a link with medicine...


> Analogously, people can write in assembly, but can you write in assembly when the codebase is frequently altered by someone with an optimizing compiler?

Yes. There's an interface boundary in the form of function prototypes and ABI rules. To the optimizing compiler, your assembly code is undistinguishable from separately compiled high-level code, and to your assembly code, the compiler output is undistinguishable from separately assembled low-level code.

One problem with LLMs, is that they don't respect these boundaries like an optimizing compiler would.


Sounds like you just don't like the phrase 'higher level'. To most people this is synonymous to 'powerful abstractions' and 'more ergonomic abstractions' in the sense that they allow us to think "at a higher level" - map instead of loop, objects instead of memory addresses and size, modules instead of gotos.


To be sure I don't like the phrase. But more importantly I also don't like the outcomes when improper abstractions are setup and vital details ignored.


There are no true scotsmen.


> can you write in assembly when the codebase is frequently altered by someone with an optimizing compiler

This itself is quite normal (e.g. we have .S files and .c files and link them together), but I suppose a more accurate analogy would be that someone is dumping their optimising compiler output directly into your .S files.

Maybe what we need is better ways to partition the slop-code and the not-slop code.


Clearly I misspoke. But it looks like you've got the gist of what I was trying to say.


To borrow your video game analogy. F* is the dwarf fortress of programming languages. Screenshots are only going to confuse anyone who isn't ready to take a significant mental journey.


This is needless fearmongering. F* looks a lot like F# code with semantics you should be familiar with if you've worked with other proof oriented languages. The website design is dated is all. The book gives exactly what the OP wants in the introductory chapter.


Fearmonger? Me? Well I never.

Also

> if you've worked with other proof oriented languages.

That's doing a lot of heavy lifting.


Fearmonger is a little heavy handed but the comparison to Dwarf Fortress is probably too strong.

I don't find F* syntax anymore intimidating than Haskell, Scala, Mercury, Prolog, etc. aka the hard languages. I love Ruby and I didn't find it intuitive when I first began learning it (specifically, the block/lambda passing mechanism).


Meanwhile I'm sure there's people out there baffled that anyone finds dwarf fortress challenging to get into.

I'm old enough that I've had the pleasure of handholding software engineers through their first anonymous function usage. Effect system, refinement types, totality checker? The best I get is blank stares before they go back to C# and JavaScript. These days I'm just glad they tolerate linq expressions and typescript.

It matters where you're standing for what feels incomprehensible. But then again, you can say the same thing about dwarf fortress.


> These days I'm just glad they tolerate linq expressions and typescript

If it walks like a duck, farts like a dog, and flies like a fish - it's Java$cript.

TypeScript is used by the pious - they think it will bring them closer to God.

> dwarf fortresses that prove code with math

And then there's you guys.

Gattir allar,

aþr gangi fram,

vm scoðaz scyli,

vm scygnaz scyli;

þviat ouist er at vita,

hvar ovinir sitia

a fleti fyr


Breathes there the man, with soul so dead,

Who never to himself hath said,

This is my own, my native land!

Whose heart hath ne’er within him burn’d,

As home his footsteps he hath turn’d,

From wandering on a foreign strand!

If such there breathe, go, mark him well;

For him no Minstrel raptures swell;

High though his titles, proud his name,

Boundless his wealth as wish can claim;

Despite those titles, power, and pelf,

The wretch, concentred all in self,

Living, shall forfeit fair renown,

And, doubly dying, shall go down

To the vile dust, from whence he sprung,

Unwept, unhonour’d, and unsung.


How does this relate to the topic? I'm willing to assume it does, I just don't get it. I'm probably overreacting because when Scott was writing this, tens of thousands of Scots living in poverty were being evicted via arson from their land and country. Saying they were dead in spirit is very elitist as he sat in comfort.


It has to be done by next week.

Here it is. It is done.

Great, now we put it on a shelf and ignore it for 6 months.

From my perspective, every time.

Edit: the last time this happened to me, they later revealed that it was going to be shelved for a year.


This is an interesting idea, but was that GrapheneOS person a lawyer giving legal advice?


No, he wasn't, what is your point?


Today we see someone being arrested because they used a software feature. Next year we'll see someone being arrested because they played a cutesy trick and got the LEO to enter in the self destruct code.

The engineers and techies involved have so far shown themselves to have poor intuition for understanding how the law is going to react. I think it behooves anyone still listening to their advice to also check in with someone who has a good intuition for how the law will react to this new idea.


It's possible that could be destruction of evidence as well. Why should it matter whose meat sticks type in the decoy pin?


Because one is a clear intent to mislead while the other has plausible deniability. "It was there in case of robbery."


The prosecution would argue that you ought to have warned officers about the duress pin since this wasn't a robbery scenario.


It's harder for them to argue you were actively destroying evidence; you could say that you had written the wipe pin there for a legitimate use case like both your wallet and your phone get stolen


Makes sense, since you aren't using that pin every day and it would be easy to forget.


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

Search: