[HN Gopher] A macOS terminal command that tells you if your USB-...
___________________________________________________________________
A macOS terminal command that tells you if your USB-C cable is bad
Author : freetonik
Score : 246 points
Date : 2025-10-06 09:06 UTC (2 days ago)
(HTM) web link (kau.sh)
(TXT) w3m dump (kau.sh)
| Someone wrote:
| > The script parses macOS's system_profiler SPUSBHostDataType2
| command, which produces a dense, hard-to-scan raw output
|
| I couldn't find source (the link in the article points to a
| GitHub repo of a user's home directory. I hope for them it
| doesn't contain secrets), but on my system, _system_profiler
| -json_ produces json output. From that text, it doesn't seem they
| used that.
| sorcercode wrote:
| internally uses the same root command btw. in fact this
| recently changed for Tahoe (as the article mentions).
|
| started out as a shell script but switched to a go binary
| (which is what is linked).
| procaryote wrote:
| I hope this doesn't become a trend. Moving it to go means you
| need to compile it before you run it, or blindly run an
| uninspected binary from some random guy
|
| It's not like the performance of this could have motivated it
| lxgr wrote:
| I'll take the minimal hassle of having to compile a go
| program over a complex shell script that only the author
| understands (if that) any day.
|
| Performance isn't everything; readability and
| maintainability matter too.
| timeon wrote:
| > Performance isn't everything; readability and
| maintainability matter too.
|
| Is that case for this vibe-coded thing?
| https://news.ycombinator.com/item?id=45513562
| lxgr wrote:
| No idea, I haven't had a look at this code in particular.
|
| I'm just saying that I've seen several "small tools that
| could have been shell scripts" in Go or another more
| structured language and never wished they were shell
| scripts instead.
| JdeBP wrote:
| Correct. But you didn't see that the source was one level up in
| the directory tree from the untrustworthy binary blob?
|
| *
| https://github.com/kaushikgopal/dotfiles/blob/master/bin/usb...
|
| Presumably there is a sensible way to do this in go by calling
| an API and getting the original machine-readable data rather
| than shelling out to run an entire sub-process for a command-
| line command and parsing its human-readable (even JSON) output.
| Especially as it turns out that the command-line command itself
| runs another command-line command in its turn. StackExchange
| hints at looking to see what API the reporter tool under
| /System/Library/SystemProfiler actually queries.
| Someone wrote:
| > But you didn't see that the source was one level up in the
| directory tree from the untrustworthy binary blob?
|
| No, silly me. Shortly searched for a _src_ directory, but of
| course, should have searched for a _bin_ directory, as that's
| where vibe coding stores sources /s.
| lloeki wrote:
| Last bash source:
| https://github.com/kaushikgopal/dotfiles/blob/7f37454a887989...
|
| First Go source:
| https://github.com/kaushikgopal/dotfiles/blob/f0f158398b5e4d...
| bediger4000 wrote:
| _Two years ago, I wouldn't have bothered with the rewrite, let
| alone creating the script in the first place. The friction was
| too high. Now, small utility scripts like this are almost free to
| build._
|
| This aligns with the hypothesis that we should see and lots lots
| of "personalized" or single purpose software _if_ vibe coding
| works. This particular project is one example. Are there a ton
| more out there?
| ThrowawayTestr wrote:
| I've used chatgpt to make custom userscripts for neopets but
| I've never published them.
| Hasnep wrote:
| Simon Willison's list has a few:
| https://tools.simonwillison.net/
| sorcercode wrote:
| nice! thanks for sharing this. as always, Simon seems to be
| multiple steps ahead on this game.
| AceJohnny2 wrote:
| I have a bunch at work, yes. Can't publish them.
|
| Just an hour ago I "made" one in 2 minutes to iterate through
| some files, extract metadata, and convert to CSV.
|
| I'm convinced that hypothesis is true. The activation energy
| (with a subscription to one of the big 3, in the current pre-
| enshittification phase) is approximately 0.
|
| Edit: I also wouldn't even _want_ to publish these one-off, AI-
| generated scripts, because for one they 're for specific
| niches, and for two they're AI generated so, even though they
| fulfilled their purpose, I don't really stand behind them.
| dotancohen wrote:
| Who's the third? I'm assuming OpenAI and Anthropic are 1 and
| 2.
| AceJohnny2 wrote:
| Yeah, Anthropic & OpenAI for two, the third being Google. I
| hear Gemini's gotten quite good.
| mrguyorama wrote:
| >Just an hour ago I "made" one in 2 minutes to iterate
| through some files, extract metadata, and convert to CSV.
|
| Okay but lots of us have been crapping out one off python
| scripts for processing things for decades. It's literally one
| of the main ways people learned python in the 2000s
|
| What "activation energy" was there before? Open a text file,
| write a couple lines, run.
|
| Sometimes I do it just from the interactive shell!
|
| Like, it's not even worth it to prompt an AI for these
| things, because it's quicker to just do it.
|
| A significant amount of my workflow right now is a python
| script that takes a CSV, pumps it into a JSON document, and
| hits a couple endpoints with it, and graphs some stats.
|
| All the non-specific stuff the AI could possibly help with
| are single lines or function calls.
|
| The hardest part was teasing out python's awful semantics
| around some typing stuff. Why is python unwilling to parse an
| int out of "2.7" I don't know, but I wouldn't even had known
| to prompt an AI for that requirement, so no way it could have
| gotten that right.
|
| It's like ten minutes to build a tool like this even without
| AI. Why weren't you before? Most scientists I know build
| these kind of microscripts all the time.
| nurettin wrote:
| For me, claude churns like 10-15 python scripts a day. Some of
| these could be called utilities. It helps with debugging
| program outputs, quick statistical calculations, stuff I would
| use excel for. Yesterday it noticed a discrepancy that lead to
| us finding a bug.
|
| So yes there is a ton but why bother publishing and maintaining
| them now that anyone can produce them? Your project is not
| special or worthwhile anymore.
| mvdwoord wrote:
| Definitely.... I just bought a new NAS and after moving stuff
| over, and downloading some new movies and series, "Vibe coding"
| a handful of scripts which check completeness of episodes
| against some database, or the difference between the filesystem
| and what plex recognized, is super helpful. I noticed one movie
| which was obviously compressed from 16:9 to 4:3, and two
| minutes later, I had a script which can check my entire
| collection for PAR/DAR oddities and provides a way to correct
| them using ffmpeg.
|
| These are all things I could do myself but the trade off
| typically is not worth it. I would spend too much time learning
| details and messing about getting it to work smoothly. Now it
| is just a prompt or two away.
| INTPenis wrote:
| Absolutely. I can come home from a long day of video meetings,
| where normally I'd just want to wind down. But instead I spend
| some time instructing an AI how to make a quality of life
| improvement for myself.
| pjmlp wrote:
| I see it differently, no need to assign learning tasks to
| juniors that can now be outsourced to the computer instead.
|
| This is currently the vibe on consulting, possible ways to
| reduce headcount, pun intended.
| emilburzo wrote:
| +1 here, with the latest Chrome v3 manifest shenanigans, the
| Pushbullet extension stopped working and the devs said they
| have no interest in pursuing that (understandable).
|
| I always wanted a dedicated binary anyway, so 1 hour later I
| got: https://github.com/emilburzo/pushbulleter (10 minutes vibe
| coding with Claude, 50 minutes reviewing code/small changes,
| adding CI and so on). And that's just one where I put in the
| effort of making it open source, as others might benefit,
| nevermind the many small scripts/tools that I needed just for
| myself.
|
| So I share the author's sentiments, before I would have
| considered the "startup cost" too high in an ever busy day to
| even attempt it. Now after 80% of what I wanted was done for
| me, the fine tuning didn't feel like much effort.
| shepherdjerred wrote:
| I spend an embarrassing amount of time on my homelab with
| Cursor
|
| https://github.com/shepherdjerred/homelab
| duckerduck wrote:
| I've created a custom "new tab" page that I have been enjoying.
| 95% vibes. I wrote about it here:
|
| https://janschutte.com/posts/program-for-one.html
| crimsoneer wrote:
| Are people not vibe coding lots of tiny things? I certainly am.
|
| Last weekend I had a free hour and built two things while sat
| in a cafe:
|
| - https://yourpolice.events, that creates a nice automated ICS
| feed for upcoming events from your local policing team.
|
| - https://github.com/AndreasThinks/obsidian-timed-posts, an
| Obsidian plugin for "timed posts" (finish it in X minutes or it
| auto-deletes itself)
| kayge wrote:
| Yep! Nothing worth sharing/publishing from me, but quite a few
| mini projects that are specific to my position at a small non-
| tech company I work for. For example we send data to a client
| on a regular basis, and they send back an automated report with
| any data issues (missing fields, invalid entries, etc) in a
| human-unfriendly XML format. So I one-shotted a helper script
| to parse that data and append additional information from our
| environment to make it super easy for my coworkers to find and
| fix the data issues.
| Izkata wrote:
| It's more complicated than "this cable is good/bad". I had a
| suspicion about one of my cables for months, but just last week I
| confirmed it with a device that shows the volts/amps/watts/total
| kwh passing through it: I have a USB-C cable with orientation.
| Plugged in one way it transfers about 5x more power than the
| other way, and in the lower orientation it's low enough for the
| earbud case I use it with to not charge.
| duttish wrote:
| Wait what. I thought half the point of usb c was to not rely on
| orientation.
|
| Is there any way to check this other than experiment?
|
| My "solution" so far has been to not buy cheap cables and just
| hope I get quality in return.
| tennysont wrote:
| I think that I have a specific cable-device-orientation that
| is broken. Meaning, I think a particular USB C cable won't
| charge my phone if it's plugged in 'backwards'.
|
| I always assumed that USB C cables use different pins
| depending on orientation, and that some pins on the cable
| wore down.
|
| Maybe that's what happened here?
| Waterluvian wrote:
| I think a more distressing thought is that it's quite
| possible that your cable won't charge your phone if it's
| plugged in forwards.
| consp wrote:
| My guess would be they used a one-sided pcb to connect the
| cable to and used half the wires. Some sockets internally
| link the power and ground pins, so it works both ways, but
| you get no resistor network and thus only standard 5v which
| gives you 500ma max (at best). With the resistors connected
| by the cable it's about 900ma to 3a which is probably what
| happens plugged in "correctly". Or some other magic happens
| on one side of the PCB to fool the charger into pushing the
| full 3A.
| lxgr wrote:
| Shouldn't a compliant USB-C DFP not supply Vbus without
| the resistor network, though, so there should be no
| charging at all? (Not that all DFPs necessarily do the
| correct thing, of course.)
| SAI_Peregrinus wrote:
| Correct, which is probably why it won't even charge their
| earbuds in the broken orientation.
| numpad0 wrote:
| It's CC2/VCONN used for eMarker. That pin may be terminated
| inside the cable and used to power eMarker chip. It can
| also be used for orientation sensing. I think.
| cyberax wrote:
| It happens. More often than not, it can be physical damage or
| manufacturing defect for one of the contacts and/or wires.
| lmm wrote:
| > I thought half the point of usb c was to not rely on
| orientation. > Is there any way to check this other than
| experiment?
|
| Well sure, a standards-compliant cable will work in either
| orientation, but it's always possible for some but not all of
| the pins or wires to break.
| pja wrote:
| I believe USB C cables actually do have an orientation - it's
| just that the negotiation both ends do usually makes that
| orientation irrelevant.
|
| Maybe the negotiation can fail & the plugged in orientation
| is then the only one that works?
| estimator7292 wrote:
| USB-C only has an "intrinsic" orientation because we call
| one set of pins "1" and the other "2". Electrically there
| _should be_ no difference.
| lxgr wrote:
| No, there really is an intrinsic orientation, at least
| once a cable is plugged in.
|
| The receptacles are symmetric, but a full connection is
| not. The cable only connects CC through end-to-end on one
| of A5 or B5, but not both, which lets the DFP detect
| which of A5 or B5 should be CC. The one not used for CC
| is then used to power the e-marker in the cable, if any.
|
| This is also true for legacy adapters; for example, for
| C-to-A USB 3 adapters, the host needs to know which of
| the two high-speed pairs to use (as USB 3 over A/B
| connectors only supports one lane, while C supports two).
| atoav wrote:
| It is not unheard of to have single damaged lines/connector-
| joints within a cable. The question is whether your cable was
| designed that way or whether it was damaged in a way that made
| it do this.
| Perz1val wrote:
| It won't be a damaged wire, there's only one set of those,
| it's the plug lacking connectors or having them not connected
| wiradikusuma wrote:
| Could you elaborate on "orientation"?
|
| Let's say for C-to-C, are you talking about swapping the
| head/tail? Or simply connecting at a different angle (180
| degrees)?
| rcxdude wrote:
| Probably 180 degrees rotation in the plug (on either end). It
| commonly happens if one of the contacts or conductors for
| USB-PD signalling is not working correctly. (because of the
| way the pinout is designed to work either way around, the
| conductors that are used for signalling swap roles depending
| on the orientation)
| Izkata wrote:
| Yep, 180 degree rotation.
| dist-epoch wrote:
| I can confirm, I have a USB-C cable with the same problem,
| charging speed depends on the orientation of the USB-C
| connector, which is hilarious.
|
| It was not a cheap cable, it was a medium-priced one with good
| reviews from a known brand.
| lostlogin wrote:
| The audio community love this sort of thing and will pay top
| dollar for unidirectional cables. Reproducible data proving the
| claims could be worth millions.
| ChrisGreenHeur wrote:
| well, if you listen to audio you would not want the audio to
| accidentally get confused and head back to where it came from
| halfway down the cable right?
| kstrauser wrote:
| "This cut signal reflections, yielding brighter high hats
| without the brassiness of two-directional cabling. Bass was
| particularly clear and rumbly without the muddiness we heard
| from Monoprice cords."
| giancarlostoro wrote:
| Thats so weird, did you wind up coloring one end or something?
| I still wish we would add color to USB C wires like USB 3 has
| to emphasize features and expected uses. USB C was a much
| needed change from USB3 and 2 in terms of being reversible and
| superior but every manufacturer implements the cables
| differently and its confusing and hard to figure out which
| cable is best for what.
| rmunn wrote:
| Please update the title to mention that this is MacOS only; I got
| excited to try this out, but I only have laptops running Linux
| and Windows.
| sorcercode wrote:
| yeah sorry about that. I don't have access to a Linux/Windows
| machine.
|
| if I got a hold of the output and commands run, would gladly
| modify it.
| kenperkins wrote:
| fwiw, it would take 10 minutes to download a linux docker
| image and build it in go to test. The harder part is getting
| the information from a different API on Linux.
| RKearney wrote:
| This post is 12 minutes old. Have you finished yet?
| febusravenga wrote:
| ... and orders of magnite more time to properly access USB
| devices to some arcane VM not in your control
| skissane wrote:
| A Linux Docker image, probably doesn't have any USB devices
| exposed to it-well, it depends on exactly how you run it,
| but e.g. if you use Docker Desktop for Mac, its embedded
| Linux VM doesn't have any USB passthrough support. This is
| the kind of thing where a physical Linux host
| (laptop/desktop/NUC/RPi/etc) is much more straightforward
| than running Linux in a VM (or as a K8S pod in a datacenter
| somewhere)
| jasonjayr wrote:
| > lsusb -v
|
| On Linux that produces a lot of info similar to the macos
| screenshots, but with values and labels specific to the Linux
| USB stack.
|
| I wonder if AI could map the linux lsusb output to a form
| your tool can use...
| lanyard-textile wrote:
| Is it really vibe coding if you're testing it on the target
| machine? ;)
| adastra22 wrote:
| Yes, I think? "Vibe coding" is more about whether you are
| reading/reviewing the generated code, or just going with
| it, afaik.
| swyx wrote:
| what do you mean, all developers only use macs!
|
| (/s)
| tomhow wrote:
| We've updated the title now, thanks.
| thefz wrote:
| Vibe coded, no thanks.
| nubinetwork wrote:
| They make a hardware device for this, it has several usb plugs on
| it, and two rows of LEDs that light up if the wires are all
| connected.
| basepurpose wrote:
| yes. not that expensive.
| citizenpaul wrote:
| Cross compiling is not unique to golang. It does make it pretty
| easy though.
| consp wrote:
| Why cross compile if it's made specifically for macos?
| procaryote wrote:
| Why compile it when it could be a bash script?
| dotancohen wrote:
| Why a bash script when it could have been a one-liner?
| self_awareness wrote:
| Vibe coding. Producing code without considering how we should
| approach the problem. Without thinking where exactly is the
| problem. This is like Electron, all over again.
|
| Of course I don't have any problems with the author writing the
| tool, because everyone should write what the heck they want and
| how they want it. But seeing it gets popular tells me that people
| have no idea what's going on.
| basepurpose wrote:
| if the author knows what they're doing and understand the model
| of the code at least, i don't understand the reason mentioning
| that it was vibe coded. maybe declaring something is vibe coded
| removes part of the responsibility nowadays?
| self_awareness wrote:
| Someone once told me that their mistake wasn't theirs, but
| rather it was ChatGPT being wrong.
|
| I think you have a good point about why people say it was
| vibe coded.
|
| It might also be because they want to join the trend --
| without mentioning vibe coding, I don't think this tool would
| ever reach #1 on Hacker News.
| drcongo wrote:
| HN guidelines say one shouldn't question whether another
| commenter has read TFA, so I won't do that. But TFA
| explains exactly why it was vibe coded, and exactly why
| they're mentioning that it was vibe coded, which is that
| that was the central point of TFA.
| mrheosuper wrote:
| And why should they care what's going on ?
|
| Do you care about your binary code inside your application, or
| what exactly happen, in silicon level, when you write
| "printf("Hello World")" ?
| self_awareness wrote:
| Yes.
|
| I verify dynamic linking, ensure no superfluous dylibs are
| required. I verify ABI requirements and ensure a specific
| version of glibc is needed to run the executable. I double-
| check if the functions I care about are inlined. I consider
| if I use stable public or unstable private API.
|
| But I don't mean that the author doesn't know what's going on
| in his snippet of code. I'm sure he knows what's going on
| there.
|
| I mean that upvoters have no idea what's going on, by
| boosting vibe coding. People who upvote this are the reason
| of global software quality decline in near future.
| mrheosuper wrote:
| All your stuff is still pretty high level compared to the
| pure metal inside CPU. Do you which register the compiler
| decied to use to store this variable, or does the CPU will
| take this execution branch or not ?
|
| It's all abstraction, we all need to not know some low
| level layer to do our job, so please stop gatekeeping it.
| self_awareness wrote:
| What's your point? That we shouldn't care about anything
| at all because there is 1 thing we truly shouldn't care
| about?
|
| That we shouldn't care about spending $1 for a sandwich
| therefore managing home budget is pointless?
| pmlnr wrote:
| Imagine if we printed the capabilities on the cables, like we
| used to.
| threatripper wrote:
| That would only confuse potential buyers. You have to design
| everyday products for non-technical people.
| withinboredom wrote:
| Not only that, it doesn't stop unscrupulous manufacturers
| from just printing whatever they want.
| Dylan16807 wrote:
| How could a max speed rating possibly be worse than a blank
| plug end?
| jeroenhd wrote:
| Capabilities are printed on the side of ethernet cables and the
| text printed on the cable rarely seems related to the actual
| capabilities of the ethernet plug. Some cat5e cables are rated
| for 1000mbps but will happily run 5000mbps or 2500mbps (because
| those standards came after the text on the cable was last
| updated), other "cat6" cables are scams and struggle achieving
| gigabit speeds without packet loss.
|
| Plus, it doesn't really matter if you put "e-marker 100W USB3
| 2x2 20gbps" on a cable when half those features depend on
| compatibility from both sides of the plug (notably, supposedly
| high-end devices not supporting 2x2 mode or DP Alt mode or
| charging/drawing more than 60W of power).
| Dylan16807 wrote:
| USB cables push the boundaries of signal integrity hard
| enough that unless it's a 1 foot passive cable you're not
| really going to get any surprise speed boosts.
|
| And when they upped the max voltage they didn't do it for
| preexisting cables, no matter what the design was.
|
| > those features depend on compatibility from both sides of
| the plug
|
| That's easy to understand. Cable supports (or doesn't
| support) device, it can't give new abilities to the device.
| It doesn't make labeling less valuable.
| chedabob wrote:
| USB4 is supposed to have proper labels:
| https://www.pcworld.com/article/2602229/better-usb-labels-ar...
|
| I don't know if that necessarily helps though, because I've
| seen USB3 cables that seemingly have the bandwidth and power
| capabilities, but won't do video.
| mrheosuper wrote:
| We used to what ? Back in the day there are countless cables
| with no printing. Sometime the only way to know if they are 3.0
| or not if checking if they have blue connector.
| edarchis wrote:
| A similar tool, open source and portable Linux/Mac/Windows is
| Cyme. It works wonderfully well.
|
| https://github.com/tuna-f1sh/cyme
| Slartie wrote:
| Thanks for mentioning this, I spontaneously love it!
| SomeoneOnTheWeb wrote:
| Side question : what font are you using in your screenshots? I
| find it really nice looking
| spondyl wrote:
| Commit Mono apparently: https://kau.sh/blog/commit-mono/
| madethemcry wrote:
| Content wise a nice idea, but I also like the conclusion about
| how AI made this possible in the first place. The author itself
| mentions this motivation. AI is undoubtedly perfect for
| utilities, small (even company internal) tools for personal use
| where maintainability is secondary as you can ditch the tool or
| rebuild it quickly.
|
| > Two years ago, I wouldn't have bothered with the rewrite, let
| alone creating the script in the first place. The friction was
| too high. Now, small utility scripts like this are almost free to
| build.
|
| > That's the real story. Not the script, but how AI changes the
| calculus of what's worth our time.
| sersi wrote:
| I've found that to be very true. For bigger projects, I've had
| rather mixed results from ai but for small utility scripts,
| it's perfect.
|
| But like the author, I've found that it's usually better to
| have the llm output python, go or rust than use bash. So I've
| often had to ask it to rewrite at the beginning. Now I just
| directly skip bash
| atonse wrote:
| Came here to say exactly this.
|
| That all the naysayers are missing the tons of small wins that
| are happening every single day by people using AI to write
| code, that weren't possible before.
|
| I specified in a thread a few weeks ago that we manage a small
| elixir-rust library, and I have never coded rust in my life.
| Sure, it's about 20 lines of rust, mostly mapping to the
| underlying rust lib, but so far I've used claude to just
| maintain it (fix deprecations, perform upgrades, etc).
|
| This simply wasn't possible before.
| NelsonMinar wrote:
| lsusb will get you this info in Linux, but I like the idea of a
| little wrapper tool to make the output easier to parse.
|
| 480 vs. 5000 Mbps is a pernicious problem. It's very easy to plug
| in a USB drive and it looks like it works fine and is reasonable
| fast. Right until you try to copy a large file to it and are
| wondering why it is only copying 50MBytes/second.
|
| It doesn't help that the world is awash in crappy charging A-to-C
| cables. I finally just throw me all away.
| lxgr wrote:
| I remember hearing it's even possible to plug in a USB-A plug
| too slowly, making the legacy pins make contact first, which
| results in a 480 Mbps connection - despite the cable, the host,
| and the device all supporting superspeed!
| lloeki wrote:
| Can confirm, was victim of this.
|
| Couldn't figure out why my 5-disk USB enclosure was so
| ungodly slow. Quickly I saw that it was capping suspiciously
| close to some ~40MB/s constant, so 480Mbps.
|
| _lsusb -v_ confirmed. As it happened I did some maintenance
| and had to unplug the whole bay.
|
| Since the port was nearly tucked against a wall I had to find
| the port by touch and insert somewhat slowly in steps (brush
| finger/cable tip to find port, insert tip at an angle, set
| straight, push in) but once in place it was easy to unplug
| and insert fast...
|
| This was driving me "vanilla ice cream breaks car" nuts...
| andrewmcwatters wrote:
| Destroy the whole standard. That's literally insane.
| lxgr wrote:
| That's the price of strong backwards compatibility.
| Otherwise, you wouldn't be able to use a USB 3 (superspeed)
| device on a USB 3 host port with a USB 2 cable at all.
|
| And if you hate this, you should probably never look into
| these (illegal by the spec, but practically apparently
| often functional) splitters that separate the USB 2 and 3
| path of a USB 3 capable A port so that you can run two
| devices on them without a hub ;)
| Tepix wrote:
| Why does it mention USB 3.2 (i.e. 20 Gbps) at all if it's for
| Macs? I thought Macs only support 10 Gbps and 40 Gbps, but
| nothing inbetween?
|
| (which is inconvenient because USB 3.2 Gen 2x2 20 Gbps external
| SSD cases are much cheaper than USB 4 cases for now).
|
| Also, he is calling a binary a script, which i find suspicious.
| This task looks like it should have been a script.
| gattr wrote:
| On a somewhat related note, I like the IO shield of my new MSI
| motherboard - the USB ports are tersely labeled "5G", "10G",
| "40G" (and a few lingering "USB 2.0").
| cozzyd wrote:
| One of my pet peeves is when people call a binary a script
| basepurpose wrote:
| i don't understand why do competent people need to mention that
| they vibe coded something.
| stefanfisk wrote:
| I wouldn't be surprised if it's actually a plus in the eyes of
| possible new employers these days.
| basepurpose wrote:
| vibe coding in my understanding is losing/confusing the
| mental model of your codebase, you don't know what is what
| and what is where. i haven't found a term to define
| "competently coding with ai as the interface".
| stefanfisk wrote:
| I agree. But management types bedazzled by AI probably see
| these kids as the future leaders of our profession.
| raincole wrote:
| "My static blog templating system is based on programming
| language X" is the stereotypical HN post. In theory the choice
| of programming language doesn't matter. But HNers like to
| mention it in the title anyway.
| sharkjacobs wrote:
| I mean, they seem to address that pretty directly in the post
|
| > Two years ago, I wouldn't have bothered with the rewrite, let
| alone creating the script in the first place. The friction was
| too high. Now, small utility scripts like this are almost free
| to build.
|
| > That's the real story. Not the script, but how AI changes the
| calculus of what's worth our time.
| jasode wrote:
| It's just because vibe coding is still "new" and various people
| have mixed results with it. This means that anecdotes today of
| either success or failure still carry some "signal".
|
| It will take some time (maybe more than a decade) for vibe
| coding to be "old" and consistently correct enough where it's
| no longer mentioned.
|
| Same thing happened 30 years ago with _" The Information
| Superhighway"_ or _" the internet"_. Back then, people really
| did say things like, _" I got tomorrow's weather forecast of
| rain from the internet."_
|
| Why would they even need to mention the "internet" at all?!?
| Because it was the new thing back then and the speaker was
| making a point that they didn't get the weather info from the
| newspaper or tv news. It took some time for everybody to just
| say, _" it's going to rain tomorrow"_ with no mentions of
| internet or smartphones.
| sand500 wrote:
| It's a disclaimer that they have no idea what they code does.
| dist-epoch wrote:
| For the same reason competent people need to mention that X
| utility was (re)written in Rust.
| timeon wrote:
| I would guess the reason there is opposite. Like code that
| even newcomer can safely edit.
|
| But in general you are right. The article was for developers
| so mentioning the tool/language/etc. is relevant.
| self_awareness wrote:
| Guys, please, don't upvote this. If this topic will beat the
| "Physics Nobel Prize 2025", I will lose my faith in HN.
| BrandoElFollito wrote:
| I was looking for a USB cable tester (where I would plug in both
| ends of my cable and it would test it (power, data, ...).
|
| There are plenty for Ethernet, but none such ones for USB. Was I
| looking with the wrong keywords or such device does not exist?
|
| Note: I have a dongle that measures the power when inserted
| between the laptop and the charger, this is not what I am looking
| for
| Nition wrote:
| https://www.tindie.com/products/petl/usb-c-cable-tester-c2c-...
| bariumbitmap wrote:
| I have the Treedix cable tester, it works well.
|
| https://treedix.com/collections/best-seller/products/treedix...
| moray wrote:
| On aliexpress for very cheap search for "DT3 Data Cable
| Detection Board Type-C". I got the one below and seems to work
| fine for what I needed.
|
| https://fr.aliexpress.com/item/1005007509475055.html
|
| Edit: This will test whether the cable is functioning properly.
| It will show the connections and indicate whether the cable
| supports only power or also data transfer. However, it won't
| provide information about the USB-C cable type or its speed
| capabilities.
| lxgr wrote:
| The reason is probably that anything faster than USB 2.0 (480
| Mbit/s) and supporting power over 3A/60V will need to have an
| active marker, and to read that, you'll need something slightly
| more complex than a connection tester.
|
| That said, these things do seem to exist at this point, as
| sibling comments have pointed out.
|
| As an aside, it's a real shame devices with USB-C ports don't
| offer this out of the box. They need to be able to read the
| marker anyway for regular operation!
| mrheosuper wrote:
| What do you mean "testing" it, reading hardcoded data from
| e-marker chip, or really test it?
|
| The later would require multi-thousands dollar machine.
| tom_alexander wrote:
| I'm curious as to why it is so expensive? Admittedly I know
| very little about electronics, and naturally the validation
| testing that a cable manufacturer does is going to be more
| thorough, but for consumer-grade testing couldn't we just
| have an FPGA or microcontroller scream the fibonnaci sequence
| in one end and another listen for the fibonnaci sequence on
| the other end? Sort of like memtest but instead ramping up
| speed until the transmission becomes garbled.
| klausa wrote:
| 120GB/s is _really_ fast.
| 9029 wrote:
| I have been planning to get either Witrn K2 or Power-Z KM003C.
| If just cable testing is enough, the Treedix one is probably
| good.
|
| Related: If you are looking for cables, this guy has tested a
| bunch (mainly for charging capabilities)
| https://www.allthingsoneplace.com/usb-cables-1
| amelius wrote:
| Can these instruments measure bit error rates?
| amelius wrote:
| I'd expected to see at least characteristic impedance in that
| table.
|
| And some metrics on internal reflections.
| tguvot wrote:
| https://caberqu.com/home/39-54-ble-caberqu-0611816327412.htm...
| simianparrot wrote:
| This is a vibe coding Trojan horse article.
|
| > That's the real story. Not the script, but how AI changes the
| calculus of what's worth our time.
|
| Looking at the github source code, I can instantly tell. It's
| also full of gotchas.
| wcrossbow wrote:
| I'm not a go developer and this kind of thing is far from my
| area of expertise. Do you mind giving some examples?
|
| As far as I can tell skimming the code, and as I said, without
| knowledge of Go or the domain, the "shape" of the code isn't
| bad. If I got any vibes (:))from it, it was lack of error
| handling and over reliance on exactly matching strings.
| Generally speaking, it looks quite fragile.
|
| FWIW I don't think the conclusion is wrong. With limited
| knowledge he managed to build a useful program for himself to
| solve a problem he had. Without AI tools that wouldn't have
| happened.
| alias_neo wrote:
| There's a lot about it that isn't great. It treats Go like a
| scripting language, it's got no structure (1000+ lines in a
| single file), nothing is documented, the models are flat, no
| methods, it hard codes lots of strings, even the flags are
| string comparisons instead of using the proper tool, regex
| compiles and use inlined, limited device support based on
| some pre-configured, hard-coded strings, some assumptions
| made on storage device speeds based on its device name:
| nvme=fast, hdd=slow, etc.
|
| On the whole, it might work for now, but it'll need
| recompiling for new devices, and is a mess to maintain if any
| of the structure of the data changes.
|
| If a junior in my team asked me to review this, they'd be
| starting again; if anyone above junior PRd it, they'd be
| fired.
| nottorp wrote:
| > Generally speaking, it looks quite fragile
|
| I have a usb to sata plugged in and it's labeled as
| [Problem].
| Cthulhu_ wrote:
| Ugh. I appreciate the tool and I suppose I can appreciate AI
| for making the barrier to entry for writing such a tool lower.
| I just don't like AI, and I will continue with my current
| software development practices and standards for production-
| grade code - code coverage, linting, manual code reviews,
| things like that.
|
| At the same time though I'm at a point in my career where I'm
| cynical and thinking it really doesn't matter because whatever
| I build today will be gone in 5-10 years anyway (front-end
| mainly).
| ChrisGreenHeur wrote:
| is it worth it for everything? if you need a bash script that
| takes some input and produces some output. Does it matter if
| it's from an AI? It has to get through code review, the
| person who made it has to read through it before code review
| so they don't look like an ass.
| alex_duf wrote:
| yeah recently I needed a script to ingest individual json
| files into an sqlite db. I could have spent half the day
| writing, or asked an AI to write it and spend 10 minutes
| checking the data in the DB is correct.
|
| There are plenty of non critical aspects that can be
| drastically accelerated, but also plenty of places where I
| know I don't want to use today's models to do the work.
| cozzyd wrote:
| I worked with contractor for a contractor who had AI
| write a script to update a repository (essentially doing
| a git pull). But for some strange reason it was using the
| GitHub API instead of git. The best part is if the token
| wasn't set up properly it overwrote every file (including
| itself) with 404s.
|
| Ingesting json files into sqlite should only take half a
| day if you're doing it in C or Fortran for some reason
| (maybe there is a good reason). In a high level language
| or shouldn't take much more than 10 minutes in most
| cases, I would think?
| alex_duf wrote:
| regarding how long the ingestion should take to
| implement, I'm going to say: it depends!
|
| It depends on how complex the models are, because now you
| need to parse your model before inserting them. Which
| means you need tables to be in the right format. And then
| you need your loops, for each file you might have to
| insert anywhere between 5 to nested 20 entities. And then
| you either have to use an ORM or write each SQL queries.
|
| All of which I could do obviously, and isn't rocket
| science, just time consuming.
| cozzyd wrote:
| Sure, if the JSON is very complicated it makes sense that
| it could take a lot longer (but then I wouldn't really
| trust the AI to do it either...)
| raincole wrote:
| The author literally says this is vibe-coded. You even quoted
| it. How the hell is this "Trojan horse"? Did the Greeks have a
| warning sign saying "soldiers inside" on their wooden horse?
| simianparrot wrote:
| Because it's not in the title, and I personally prefer up-
| front warnings when generative "AI" is used in any context,
| whether it's image slop or code slop
| amelius wrote:
| No, but it lacked the product safety leaflet.
| bapak wrote:
| Fun fact: this information is already available in the System
| Information app on your Mac.
|
| Hardware -> USB
|
| I also use the app to check what wattage my cables are when
| charging my MacBook (Hardware -> Power)
| angulardragon03 wrote:
| Yes, system_profiler is just a terminal version of System
| Information.
| lxgr wrote:
| This only shows you the minimum of what the cable and adapter
| support together, though. I believe this is a fundamental
| limitation of the protocol; the source won't tell you about
| voltage/current combinations not supportable by the cable.
| coldtea wrote:
| > Go also has the unique ability to compile a cross-platform
| binary, which I can run on any machine.
|
| Huh? Is this true? I know Go makes cross-compiling trivial - I've
| tried it in the past, it's totally painless - but is it also able
| to make a "cross platform binary" (singular)?
|
| How would that work? Some kind of magic bytes combined with a
| wrapper file with binaries for multiple architectures?
| heinrich5991 wrote:
| Not what OP meant, but there's a project doing what you ask
| for: https://justine.lol/cosmopolitan/. It's quite interesting.
| :)
| mnw21cam wrote:
| No, I don't get it. Firstly, the normal system command output is
| not hard to read, but secondly, this output doesn't list any of
| the capabilities of the cables, just the devices at the ends of
| them. Perhaps showing an example of the output when the device is
| plugged in through the wrong cable would have helped. Does the
| tool produce a similar warning to the system popup, that is "this
| cable and device are mismatched"?
| lxgr wrote:
| As far as I understand, the idea is to determine whether the
| cable is the bottleneck from a hardcoded list of theoretical
| device capabilities with actually observed connection speeds as
| reported by the OS.
|
| It would be nice to just compare with the device's reported
| maximum capability, but I'm not sure whether macOS exposes that
| in any API.
| larodi wrote:
| > Two years ago, I wouldn't have bothered with the rewrite, let
| alone creating the script in the first place. The friction was
| too high. Now, small utility scripts like this are almost free to
| build.
|
| adding to the theory that soon we gonna prefer to write, rather
| download ready-made code, because the friction is super low
| usrusr wrote:
| Arguably a one-off written by the cloud would still be
| downloaded to the place where it eventually runs.
| diodoe wrote:
| Interesting. Is there a way to adapt this for Linux or Windows?
| Many users, not just Mac users, face issues with USB-C cables.
| Practical cross-platform tools could be very helpful.
| razakel wrote:
| Linux: lsusb -tv
|
| Windows: There's an example in the WDK here:
| https://github.com/Microsoft/Windows-driver-samples/tree/mai...
| vel0city wrote:
| A useful tool for debugging USB devices on Windows:
| https://learn.microsoft.com/en-us/windows-hardware/drivers/d...
| cratermoon wrote:
| "yes, vibe coded. Shamelessly, I might add"
|
| I wouldn't trust this as source code until after a careful audit.
| No way I'm going to trust a vibe-coded executable.
| jedbrooke wrote:
| I feel like we kind of got monkey's paw'ed on USB-C. I remember
| during the 2000's-2010's people were drowning in a sea of
| disparate and incompatible connectors for video, audio, data,
| power, etc. and we're longing for "One Port To Rule Them All"
| that could do everything in one cable. We kind of got that with
| USB-C, except now, you see a USB-C cable/port and you have no
| idea if it supports data only, data + charging, what speeds of
| data/charging, does it support video? maybe it does, maybe it
| doesn't. at least it can plug in both ways... most of the time
___________________________________________________________________
(page generated 2025-10-08 23:00 UTC)