HackerLangs
TopNewTrendsCommentsPastAskShowJobs

CraigJPerry

5,553 karmajoined 13 anni fa
I'm @CraigJPerry2 on twitter.

comments

CraigJPerry
·15 ore fa·discuss
> Core 4 (and similar) rub me the wrong way – measuring individual developers as the atomic unit IMO is always meaningless

And From: https://getdx.com/research/measuring-developer-productivity-...

    > Diffs per engineer*
    >
    > * Not at individual level
Are you guys agreeing or disagreeing with each other?
CraigJPerry
·ieri·discuss
I'm trying to disentangle this from the established / proven / trusted "dx core 4" (ask your local devops person if you don't recognise the name).

I found "initiatives" was added. What does this new initiatives measure bring. Why do we care about otherwise unqualified initiatives, how do i know that doesn't just mean using the other 4 proven measures as cover for pushing pet projects without merit?

I'm super cynical tonight it seems. This is just rubbing me up the wrong way i guess and i can't really put my finger on why.
CraigJPerry
·l’altro ieri·discuss
Not a good example i'd say given Python's position as pretty much the ultimate glue language :) You'd more likely keep the python shell (and faster developer iteration speed) and push measured hotspots down into c++/rust/c/whatever.

Incidentally, Whenever i've done this in the past it's had a pleasant side effect of improving architecture. You end up forcing something akin to "push for's down and pull if's up" because crossing the ffi boundary is not free. It can be quite magical, as in leading to comically unbelievably speed ups when you also take advantage of vector intrinsics.
CraigJPerry
·7 giorni fa·discuss
Sounds like a certainty stated like that. So not like toilet paper during covid?

what if the market was hard to enter?

What if the inputs aren't available?

What if the costs of the inputs rises?

What if the capital for expansion isn't available?

What if the manufacturers don't expect demand to persist?

What if there's a shortage of skilled labour?

What if it takes years to expand supply?

What if there wasn't effective competition?

I'm not sure it's as certain as you seem to claim.
CraigJPerry
·8 giorni fa·discuss
That's just engine and gearbox i believe, not really a BMW.

Could be an Alpina
CraigJPerry
·10 giorni fa·discuss
The thing that's missing here that really drastically changes the story is all the emissions control hardware that would exist on such an engine.

This is a circa 1990s engine in the US market i think? Dual Overhead Cam didn't really become popular in the US market until then i think. 70s-80s for single overhead cam to become established.

The diagrams are beautiful and informative as always from this author.
CraigJPerry
·10 giorni fa·discuss
>> Each PG connection being a whole process does not scale like MSSQL that uses a thread per connection

There's no free lunch id think, the PG model is more robust. Unsafe extensions can take down the whole instance in the threaded model, processes contain the blast radius to that connection (also typically easier to debug since this type of issue is thankfully rare, it's also gnarly to get on top of).

Further, on linux (not on windows) a lot of the lines between a thread and a process get blurry (copy on write, shared memory mappings etc). They're both handled very similarly in the kernel, theyre both scheduled using similar machinery.

>> For PG to do plan caching it would need to serialize the plan between processes and that would require some significant work since it was never designed that way.

Is that true? I'm thinking the buffer cache and locks and WAL coordination are just as fast - it's just mmap'd SHM into each process. It's not like every access needs IPC?
CraigJPerry
·10 giorni fa·discuss
Love these write-ups, i have various 433mhz things around the home that i’ve integrated with home assistant. Probably the most useful is still a bbq thermometer with multiple probes.

Anyway i was going to post my favourite tool in this space https://github.com/jopohl/urh universal radio hacker just makes the process trivial, but i see the repo is marked archived now. Either way, the software is excellent.
CraigJPerry
·15 giorni fa·discuss
>> it will be consumers demanding

But how do I get to express that demand? Asking as a frustrated regular user of excel - excel is amazing software but if your laptop is not in airplane mode, the number of little delays that creep in is wild. It's all seemingly network delays, connecting to onedrive servers when i'm editing a field (why?!), 10s of connections to random microsoft domains as i flick between tabs in the UI (why?!) - each flick incurring a subtle but observable delay.

>> Dreaming is free... All Electron devs

I like your sentiment for sure but i reckon you might be barking up the wrong tree. I'll give the clearest counter example i know of:

When i scroll a buffer in Zed (it's a 120fps editor written in rust that i really want to like) i perceive micro stutters.

When i scroll a buffer in VSCode (an electron app) it's buttery smooth.

I've tried this many times over 1.5+ years of releases. It's a reliable finding on an m1 macbook pro and an m1 imac.

If the slow stack can be fast and the fast stack can be slow, then there's more to this than just tech stack.
CraigJPerry
·18 giorni fa·discuss
> My current status is that I have not had much success with this way of working for code I deeply care about

If something is judgement heavy, "code i care deeply about", then i don't really agree with the direction of travel here. Don't try to delegate decisions you care deeply about.

I do like the framing of agent loop vs harness loop, but only delegate stuff that you can accurately specify in advance, that usually means stuff that's repeatable in my case ("hey go see how i did X, do that but for Y"), and that inherently means stuff that's predictable.

For stuff where lack of my judgement as input is just going to cause me to say "no", we're down to collaborating in the "agent loop" as Armin puts it. And that's totally fine. It's fast, but also safe.

Remember before AI coding assistants, sometimes you'd get an engineer join your team who was SUPER productive, your peers would be jealous "oh yeah but you guys only got all that done because you have X on your team!" - they didn't live the curse of having that kind of person around - if you don't have them PERFECTLY aligned, then they run off at break neck speed in the wrong direction.
CraigJPerry
·20 giorni fa·discuss
The bottleneck when using a "faster keyboard" is understanding. We have a tool for this in compsci. Not having to fully understand something in order to successfully exploit it is a staple of computer science; we use abstractions to help us reason at a higher level. You don't necessarily always have to understand the nuance involved in selecting a hash function just to put and get some items in a hash map. Specifically, when are these cases where you don't need to go that deep? Are there similar scenarios for ai written code?

I'm more interested right now in what does that abstraction look like for AI generated code. Is there some reasonable solution wherein a sandboxed component in the enterprise architecture has various attributes (e.g. the bytes i stuff into this file store component are always the exact bytes i get back from it) confirmed by methods other than a human reading its code? Those methods, are they cheaper, faster, safer than just having a human do it?

If your enterprise architects have to read every line of code in your system today then i'd claim your architecture practices have room to mature. What can derived from that, and in which scenarios, for the purposes of safely leveraging immutable write-only code? I'm not interested in evolving the code (lines of code spent to solve a business problem was never an asset, it was always a cost) if it wasn't hand crafted by a human, i still have the requirements so i can just regenerate the entire thing with the revised requirement.
CraigJPerry
·22 giorni fa·discuss
insta-subscribe, very well written.

>> And the economy looks at you taking the shift and concludes, smugly, that the shift must have been the most valuable thing you could possibly have been doing, because look, you chose it

I struggle with economics as a discipline. Or more precisely, I struggle with the parts of economics that get treated as if they are describing human life with scientific precision, when they often seem to be describing a very strange fictional creature who happens to resemble a spreadsheet.

There is a lot in what we might loosely call microeconomics that I find genuinely useful. It gives us a language for trade-offs, incentives, constraints, opportunity costs - all the little pressures and choices that shape daily life. Used well, it can help us understand the world more clearly and make better decisions inside it.

But then there is the other stuff. The grander stuff. The part that starts making confident claims about whole economies, whole societies, whole populations of supposedly rational actors - and this is where my patience starts to wobble.

Because so much of it depends on assumptions that feel heroic at best and comic at worst. Take something as ordinary as buying a loaf of bread. How much time do you spend, in that moment, weighing your expected future tax burden? For most people, across most of human history, the answer is: none. Absolutely none. The bread is there. You need bread. You buy the bread.

And yet models that assume people behave as if they are constantly running these elaborate forward-looking calculations end up informing policies, forecasts, and decisions that shape the conditions of everyday life. That is the part I find hard to swallow. Not because models are useless - they are not - but because the gap between the modelled human and the living human can be treated as a rounding error, when sometimes it feels like the whole problem.
CraigJPerry
·27 giorni fa·discuss
The whole code base is a breath of fresh air to be honest: https://github.com/royalbhati/sqltoerdiagram/blob/main/src/m...

Author is top notch in my book. I'm a sucker for someone taking a complex problem and distilling out a simple solution. I don't know of higher praise to give a developer.
CraigJPerry
·28 giorni fa·discuss
I wondered if there might be a no brainer "free" option on discarded hardware.

I have a GTX1080ti which i think is circa 2018, it's unused, more than paid for itself over the years, owes me nothing at this point so the hardware is free.

It runs Gemma e4b multimodal, qwen 3.5 8b or the qwen 4b embeddings models well enough (40+ t/s for the LLMs).

The machine consumes 350 watts at the wall when under load (3 watts when sleeping, 80w at idle). Electricity costs me £0.035GBP/kwh which is cheap for the UK (load shifting via house battery).

144k output tokens for around 1pence (and takes an hour to do that in theory).

It's only JUST cheaper to use than the far more capable deepseek v4 flash model despite the free hardware and ~10x cheaper than normal electricity.
CraigJPerry
·mese scorso·discuss
Those bounding box demos are decent.

By quirk of fate i've spent the past 2 days prototyping some stuff on pdfjs. Just trying to figure out a game plan for handling bounding boxes in the face of page zooming, different resolutions etc. etc. I can't see it mentioned whether the components are virtualising pages (as in reusing dom elements as document pages scroll by). I guess i just learned what i'll be exploring tomorrow then...
CraigJPerry
·mese scorso·discuss
It's a shame because this is the best visual fidelity i think of all the devices.

I managed several days back to back, it's very like 1440p on a 27" and millions of people use that every day productively but when you're spending that kind of money, i don't want £200 monitor quality.
CraigJPerry
·mese scorso·discuss
Zoom itself works absolutely fine, it's just the ipad app you get on vision pro. My complaint is what happens when you turn your camera on - meeting participants see an uncanny valley representation of yourself - your "Persona" which you scan in when you get the device.
CraigJPerry
·mese scorso·discuss
>> Consumer power supplies probably don't

At least here in the EU they do and i think it's the case in most countries world wide?

Looks like that 2014 case might have been a sub-standard charger that didn't conform to required safety standards?

I actually experienced a (cheap) charger exploding under my desk back around 2015.

There's a youtuber called BigClive that delights in tearing down the bad chargers. Ken Shirrif's blog is the best resource i know of for this topic though.

Anyway, i feel pretty safe with the vision pro plugged in with an apple charger. The battery does get warm though...
CraigJPerry
·mese scorso·discuss
I bought the refreshed M5 version with the new headstrap. I read so many complaints about weight and it was just never an issue for me personally. Maybe the new strap is that much better?

That said, the battery cable was super annoying, id accidentally catch it multiple times per day. The battery is good for less than 2 hours so i used it plugged into the wall.

For zoom calls, the persona thing is hilariously bad, unusable in a business context. Interesting for a few minutes as a tech demo though.

The virtual layout is good - a big citrix app screen (its the ipad app) for remote desktop, zoom, safari etc off to the sides and then things like calendar widget pinned to physical wall. But text clarity / quality is just slightly not good enough for software development. Almost, its close. If you dont mind large fonts its good enough.

Ultimately returned it but it was a close run thing, i almost kept it.

I do still hanker for something like this, tempted to try xreal or other glasses but seems like the PPD is even lower.
CraigJPerry
·mese scorso·discuss
>> I’m losing control over the code I write when I work with agentic code generation

> Are you saying we collectively need to get better at abstraction so that LLMs get better at abstraction (either by training, or our prompting), so that their code is easier to read?

No - our current abstraction for coding agents is a loop where we express some freeform specification of a goal, then a sub loop kicks off where an llm takes a stab at what good looks like for the next step (make an edit, search for info, run a command to cause some side effect etc etc), it iterates in this loop and when it's finished its sub loop, it declares end of turn and the loop returns to the user for steering input.

That inner agent loop can make it quite hard to stay in control.

What if instead of only these low level free form prompts we additionally had some higher level primitives to work with?