HNHacker News
TopNewBestAskShowJobs

benrow

82 karma · joined December 29, 2021

submissionscomments
benrow··on Running GUI Linux in a virtual machine on a Mac
As I understand it, Asahi can run on bare metal of an Mx machine, including custom hardware/firmware due to their reverse engineering efforts. Running aarch64 Linux within a VM only needs to work with the simplified virtual hardware exposed by the VM.
benrow··on Leap: Neovim’s Answer to the Mouse
I haven't got very far into it yet, but there's a number of plugins which can nudge neovim towards IDE functionality.

The language server protocol understands the syntax of your language. There are also plugins for autocompletion, and a file tree for fast navigation.

Caveat - long term vim user just starting to dabble into this territory. Have got started with Telescope for fuzzy file search, and Nerdtree for file navigation.

benrow··on CMSC 430: Design and Implementation of Programming Languages
If you don't mind working with software emulation, nand2tetris takes you from logic gates up to a CPU, assembler, compiler. I'm working through the book: https://www.nand2tetris.org/book. It doesn't focus on an existing architecture like 6502 but focuses on simplicity instead to make the ideas really clear.

If you'd like to work with real hardware, +1 to the Ben Eater suggestion. He sells kits for all the components for an 6502 machine so you don't get bogged down in sourcing them. Great videos too.

(Quick edit, not 8086, showing my inexperience with hardware!)

benrow··on I don’t believe in sprints
Agreed.

As an aside, one thing just came to mind. Even if you're bringing tech debt tickets into each sprint, there's a possibility they'll get picked up last - fine, unless they keep getting pushed back!

Part of me thinks this could be mitigated by reducing the velocity expectation. But there tends to be an overarching sprint goal relating to product work, and this often invites extra scope due to unforeseen impediments. So 'background' work like tech debt is easily pushed back.

I don't know of a better way. Perhaps it comes down to human factors such as limited focus.

benrow··on I don’t believe in sprints
Sprints really help at our place. We have a lot of different priorities and themes. Stakeholders have a variety of requirements, and cross team projects need to be aligned in time somehow.

This is all hard to do IMO if there's one running backlog.

The benefits of sprints I see is they're a useful time container for planning purposes. Eg:

- we can allocate larger pieces of work to upcoming sprints. This is done very loosely just to get some idea of what we can take on, and when

- we can allocate a fraction of each sprint to tech debt or platform improvements etc

- set a goal for each sprint which is some observable step forward. This has taken practice to break down the work into appropriate chunks which can be verified done

- record velocity across sprints just so we have a rough idea of what we can get done in a sprint (it will vary of course)

Yes, there is overhead from the planning meetings. But this helps all of us get involved with incoming work, which I think is better than tasks coming from nowhere without context.

I think the right methodology depends on the context of the business. If product teams need to work together towards something, or if there are competing project priorities, then sprints can help protect focus and provide finer structure than just "Q4".

benrow··on Does Company ‘X’ have an Azure Active Directory Tenant?
I initially had the same thought as the parent. From the perspective of so many companies relying on the security of one authentication provider (rather than any one company using AD for all their authentication needs).

So if AD were to be compromised, that would be significant impact.

There are of course advantages to such a "single point of failure" such as concerted effort in one place. But one way to mitigate the spof is transparency, and I'm reminded of LastPass versus Bitwarden.

benrow··on F4PGA: Open FPGA Tooling: Xilinx 7-Series, Lattice iCE40/ECP5, QuickLogic EOS S3
Thanks for explaining - I hadn't considered it from that angle.
benrow··on Tell HN: I have found a hardware heisenbug in my laptop
Wow, that's a frustrating bug, but good spot working it out.

As you say, sounds like interrupts are disabled while the open/close signal is being handled. Makes you wonder how it's handled in other models? Something physical like the lock you mention. Or maybe something in logic - like a series of flip flops? - to store and forward sensor actuations.

Hardware is fascinating but not when it goes wrong :-(

benrow··on F4PGA: Open FPGA Tooling: Xilinx 7-Series, Lattice iCE40/ECP5, QuickLogic EOS S3
I received an ice40 hx8k breakout board two days ago, my first foray into FPGA. Looking forward to playing with IceStorm over the weekend.

Stock for these seems OK, at least in the UK where I am based. It was ordered from Farnell. Mouser also have them in stock, but the situation may be different in other countries.

benrow··on Exploring FPGA Graphics
This sounds very cool - it's interesting to hear what projects lie further down this trail.

I was initially looking at the Arty board, as it was referenced by a text book - all the exercises were based on it. It's a bit more pricey than the ice40 (enough to force a comparison against other boards), but it certainly looks more capable.

benrow··on Exploring FPGA Graphics
I'm just getting started on my hardware journey by working through the nand2tetris course. This has its own simplified hardware description language which works in the simulator they provide.

Looking through the linked site, it's nice to see that the verilog snippets are very similar to the simplified HDL in nand2tetris - almost identical in how pins and parts are composed.

I'm looking forward to getting hold of an ice40 board as mentioned (with the SRAM). There's a project out there which implements nand2tetris on ice40, and these seem available at the moment for a reasonable price.

So now with this VGA project, that's two reasons to order that nice ice40 board :-)

benrow··on Understanding Jane Street
Very interesting podcast - crazy stuff relating to the very edge of possibility in low latency computing.
benrow··on History and effective use of Vim (2019)
I like using L and H to go to bottom or top of screen to initiate scrolling with j or k. You can scroll up or down without moving the cursor using Ctrl-Y and Ctrl-E but I find those a bit hard to get used to.
benrow··on My Preferred Smart Home Vendors
Good to know, thanks. I didn't know much about ZigBee so did some reading - seemed it's used for things like smart locks so I was pessimistic about it being very accessible.

Glad I mentioned it here, I now have a steer in the right direction - thanks.

benrow··on My Preferred Smart Home Vendors
Thank you, I'll give this a try!
benrow··on My Preferred Smart Home Vendors
I've just learned this lesson. I'd like local control of lights (rather than going through slow vendor phone app which uses an internet API as common point with the hub). Works well for remote control but slow and cumbersome for when at home.

Trying to gain access to the ZigBee network or hub is probably not worth the effort, compared to using a more open stack in the first place.

benrow··on Ask HN: Which habit/system makes you an effective engineer?
Some brief thoughts:

- have a great note taking system - personally I like anything which auto links to related notes, like a wiki. There's obsidian, but I use vim notes as I like vim and need to keep internal stuff out of cloud.

- get involved in cross team initiatives - will help build domain knowledge and relationships

- for digging through codebases one thing I'd like to try and haven't got round to is using a lightweight IDE just for hunting around and joining up the dots. Eg the main IDE I use is heavyweight with all the indexing it does. Sometimes I'd rather have a local "monorepo" with lightweight tooling which isn't always indexing or spawning daemons.

On that last point, get your tooling to work for you exceptionally well. Any friction will add up over time and discourage quick experiments or exploration.

Hope it goes well!

benrow··on Binance has paused Bitcoin withdrawals “due to a stuck on-chain transaction”
Yes, this made me think of buffer bloat: https://en.m.wikipedia.org/wiki/Bufferbloat
benrow··on Ask HN: Recommended OAuth scopes for GitHub personal access tokens
I agree - the UI is quite granular. Many users will land there just wanting to get a change checked in, so will likely rush the decision.

How about least privilege first, then try a build cycle and re-assess any missing permissions flagged up?

benrow··on Ask HN: What are some resources to learn breaking down and prioritise problems?
I think about this kind of thing a lot, but by no means an expert. Just some ideas which come to mind. Mainly software project related but could be applied elsewhere.

- Use diagramming to 'externalise' a problem if appropriate. This makes it easier to focus in on areas and to 'see' interactions more naturally. Also helps identify 'seams' to break out smaller pieces of work. Diagramming also works well in a group setting as a shared point of reference.

- Tackle the most poorly understood or risky elements first. In software, this could mean spiking code to explore uncertain areas to uncover complexity which might affect timelines or become a blocker later on. Prototype things in order to learn without needing to build everything out.

- Separate requirements into groups using MoSCoW - must haves, should haves, could haves, won't haves. Actively push the lower priority requirements later on the timeline (or as a later phase outside of the main project scope)

- Try not to get sucked into detail during upfront planning. It's true you'll need to work out the details anyway at some point, but without discipline you could end up taking a 'depth first' approach, and miss the wood for the trees. Domain complexity can be left to implementation time. See however the point on de-risking areas of concern.

- For team projects, consider running a session to capture risks upfront. Anything which could affect the timeline. Schedule check ins with stakeholders throughout the project. Also involve people early on from whom you may need support.

- Again for larger, or team, projects - consider keeping a decision log. Very helpful when you wonder 'why did we decide to do it that way, there was a good reason but what was it again ...'

- Break the project into milestones. A key deliverable in the real world, with a due date, for each one.

- Remember every project with any uncertainty is likely to overrun unless you bake in extra time for unforeseen problems. Trouble is, we only tend to plan for what we know about, and early planning phase is when we know the least.

- Identify external dependencies and get the ball rolling on those early on.

- For smaller (or personal) projects, keep an outlined list "Getting Things Done" style. Always have a next actionable thing noted down for each project. This makes it easier to cycle around different projects or areas with minimal context switch overhead.

benrow··on Logitech MX Mechanical Keyboard
I'm very new to mechanical keyboards, but I just got an Epomaker EP84. PBT keycaps, and hot-swappable switches (I got brown). Very happy with it, though I've not tried any others. $85 (though I'm in UK, it was £70 here).
benrow··on Andrew Ng updates his Machine Learning course
For example, Google Vision API can do some out-of-the-box classification on arbitrary images with no training needed. Covers super common cases such as explicit content detection and object detection.

There are more customisable products within Google where you can provide training examples and labels using a UI (AutoML I think it's called). The result is an endpoint you can use to do inference, based on the model created behind the scenes.

I just mention these examples because I've spent a little time researching them at top-level.

benrow··on Ask HN: What happened to Twitter poison pill?
Tangential, but there was an interesting Lex Fridman podcast recently featuring Michael Saylor, on the advantages of bitcoin as a 'property' as opposed to a 'security' (such as shares).

I mention it here as I hadn't thought about this beforehand, and many examples were given in that podcast of the advantages of property (bitcoin, real estate, barrel of oil) compared to securities (shares). Less potential for conflict of interest, stronger concept of ownership and stability over time.

benrow··on Colors in movies and TV: What happened to them?
Reminds me of Every Frame a Painting on YouTube - another fascinating place where hours can fly by.
benrow··on Ask HN: How do you take care of yourself?
Lots of great suggestions here already.

One thing which has really helped me over time is finding focus amid the many motivations we all have. There's a really pleasant clarity which comes from knowing what I should be doing now.

Easy to say, but how? Personally I've found systems like "Getting Things Done" (the classic book) helpful - it emphasises getting things out of your head and into a trusted system. It doesn't even need to be GTD, I've moved closer to a "bullet journal" approach, as it's simpler. You don't want to overcomplicate things by being drawn too far into the productivity rabbit hole, as that carries its own time and complexity cost!

Some core elements of any good approach IMHO:

- a simple system you trust for tracking what's important (even if a prioritised list you carry over each day). This should contain simple meaningful, actionable steps. When things are "out there" it somehow feels easier to manage then when it's floating in my head.

- knowing the time cost of things. I saw a good video which suggested that if your life is divided into time buckets, then if one bucket grows too much (eg work) then another had to shrink (sleep, family, rest, etc). Quite an impactful perspective.

- keeping a "personal roadmap" for some longer range planning, but knowing it will probably shift as you go. Keep your "roadmap" in mind, review it consciously but don't be afraid to push things back or reprioritise.

- keep up an exercise plan (as others have said) - maintain your hardware!

- if you're feeling stressed or overwhelmed take a step back. You won't perform well in that state and you'll do a better job tomorrow. Or try to get help from others.

← PreviousPage 2 of 2