HNHacker News
TopNewBestAskShowJobs

scanr

1,438 karma · joined March 30, 2011

ask me about continuations

Email me at jamiemccrindle at gmail.com

submissionscomments
scanr··on Stop measuring community engagement
I wonder if measuring engagement and optimising for engagement should be separated. I’m glad that there is lots of engagement on HN but I’m also glad that HN chooses not to implement a number of engagement optimisation features as well as downranking topics that result in high engagement flame wars.
scanr··on Trending tabs are being deprecated due to low usage
Oh no. I visit the trending tab almost daily. Any suggestions for alternatives?
scanr··on DRY is an over-rated programming principle?
Premature generalisation is the second cousin of all evil.

The problem with DRY is that the cost of it being wrong in the future often isn’t accounted for.

Copy, paste, search, replace is underrated.

That said, it’s a balancing act. The right generalisations are great.

scanr··on Beautiful Soup
The author also wrote a novel called Constellation Games which I enjoyed a lot https://constellation.crummy.com/
scanr··on Connect: A Better gRPC
This looks great. Congrats buf team. How does it compare to https://storj.github.io/drpc/?
scanr··on Terraform should have remained stateless
Terraform having state is a trade-off:

Pros:

- it can manage resources where not all information can be queried

- reading state is almost always significantly faster

- it can identify deleted resources

Cons:

- state can go out of sync

- every resource type has to implement state well while tracking changing features, so it’s fragile

- fixing broken state can be a PITA

Without making these trade-offs, terraform would only be able to support a smaller subset of the providers it currently does and perform poorly.

scanr··on Ask HN: How’s iCloud Private Relay?
Have been using it. Haven’t seen any difference between using it and not.

I didn’t know it only applied to Safari to start but it’s my primary browser anyway. It would be much better if made all networking private.

scanr··on Apple introduces new version of iMovie featuring Storyboards and Magic Movie
It doesn’t look like it can make vertical videos in the iPhone app yet which is a little disappointing.

I’ve been looking for a simple video editing app for a family member who needs to post short form videos to social media.

Fortunately there are alternatives. Clips looks pretty good. Other suggestions welcome.

Just seems like a useful feature for iMovie to have.

scanr··on Spring Core on JDK9 is vulnerable to remote code execution
“This vulnerability allows an unauthenticated attacker to execute arbitrary code on the target system.”.

Interesting that the CVE has been around for so long.

scanr··on Pair Programming Antipatterns
We tried out Live Share (collaborative editing) during pair and mob programming sessions. I enjoyed it a lot - made it feel like a multi-player game.

Sometimes it did allow for the equivalent of a pair programmer taking over the keyboard rather than explaining how to solve a problem.

I’m curious if anyone has any Live Share patterns / anti-patterns.

scanr··on U.S. Secret Service Launches Cryptocurrency Awareness Hub
Assuming crypto is or becomes a systemic risk to the world economy, anyone predict what happens in the event of a crash?

I suspect bailing crypto speculators out will be relatively unpalatable.

scanr··on Almost every publicly available CVE PoC
I think this is more of a demonstration of what trickest can do.

I posted it because it made it onto GitHub trending and thought it shows the potential of what could be done by aggregating cve / POC data.

I had much the same thought as you, it would be great to have this in a curated database. I feel like someone might reply that such a thing already exists :)

Snyk is pretty good for your use case (I think). It often has PoCs or links to PoCs if they’re available for vulnerabilities associated with library / framework versions. Here’s the link to the vulnerabilities for Django:

https://snyk.io/vuln/pip:django

scanr··on Brainwashing is sorcery
We are millions of year old hardware running very old software with very few updates.

It’s not surprising then that we have a few unpatched bugs.

If I craft and send a message that does harm to a machine that I don’t own the law is pretty clear about what happens next.

If I craft and send a message that does harm to a human by exploiting one of our bugs…

scanr··on Web hacking techniques of 2021
The work on exploiting prototype pollution was excellent https://blog.s1r1us.ninja/research/PP

I didn’t know about the --disable-proto option in node or the Document Policy proposal for dealing with it.

Amazing that 80% of nested query parameter parsers were susceptible to prototype pollution.

scanr··on Resources to encourage children to learn to code
Ocado’s Code For Life is pretty good, especially Rapid Router https://www.codeforlife.education/rapidrouter/ which has lessons that start with scratch and then work their way up to Python.
scanr··on I got pwned by my cloud costs
I wonder how much of the cloud provider revenue comes from situations like this. I suspect quite a lot.

I think that the cloud provider business model that allows for uncapped maximum costs is a bit of a commercial dark pattern. What makes it somewhat more nefarious is that it is relatively easy to blame the customer.

I’m not surprised that the cloud providers are quick to refund users as it’s likely that they only do it in a fraction of cases and it buys a lot of goodwill.

It would be interesting to try and design a cloud that supports OutOfMoneyException’s with gradual degradation and capped liability for costs built in.

scanr··on Starting with microservices
I have a theory that auto-wired Dependency Injection in a single DI container is partly to blame for monolith spaghetti. Once an app reaches a certain size and anything can depend on anything else, reasoning about the whole can become difficult.

I think there is value in wiring a monolith together in such a way that each course grained subcomponent exposes a constrained interface into the rest of the system (payments, orders, shipping, customers etc) before needing to break it into distributed micro-services.

Note: I quite like Dependency Injection, I just think the 1 giant bag of dependencies can lead to complexity at scale.

scanr··on Let's Settle This
Eggs existed long before chickens.

A whole 51% the internet currently appears to agree. Phew.

scanr··on Ask HN: What are you predictions for 2022?
- significant rise in inflation

- Democrats lose the midterms

- Apple releases AR/VR goggles

- Crypto hasn’t imploded yet

- Starship suborbital launch

- First AI generated novel makes best seller list. Arguments about how ‘directed’ it was

- Covid is endemic, restrictions generally eased, covid boosters are treated like flu shots

- We get a new JS front-end framework that takes the hype from svelte

- Hottest year on record, wildfires everywhere, tornadoes, hurricanes, floods, dogs and cats living together. Despite lots of rhetoric, atmospheric co2 ppm still going up

- Many articles about how hybrid working doesn’t work. Many organisations give up on their ‘go back to the office’ plans and embrace ‘fully remote’. Lots of disruption in this space.

- Major domestic terror attack organised on Telegram and Signal

- Donald Trump does not go to jail

- Interactive Porn AI startups start doing very well

- Drones used in more conflicts, reaction is muted

- Reddit hobbles their API

scanr··on Ask HN: What's the best book you read in 2021?
Started reading r/fantasy’s top self published fantasy list. Loved the Cradle series by Will Wight.
scanr··on Deno Joins TC39
> More extensive standard library functions for (async) iteration

Great news! I wrote an open source library called axax that adds a number of utility methods to async iterators - map, filter etc.

I think having them as part of the language would be awesome.

Standardising async cancellation would be neat too if Deno wants a challenge....

scanr··on Ask HN: Who is hiring? (December 2021)
Investec | Software Engineer | UK | ONSITE and REMOTE (in the UK, South Africa or India) | VISA Sponsorship | Full Time

We would love you to join us at Investec to help build a broad range of FinTech solutions across core banking, lending, treasury and trading.

We're looking for awesome and curious engineers.

Here's our tech stack but think of it as things we'd help you learn about rather than a list of requirements:

* Azure, Bicep, Terraform

* C#

* TypeScript, Angular / React

* Docker and Kubernetes

Send me an email at jamie.mccrindle@investec.co.uk to have a chat!

scanr··on Ask HN: Is it worth it to invest in learning TypeScript?
The payoff is reduced cognitive load. Essentially you’re offloading a bunch of it to the type system at the cost of type annotations. A simple example:

    const add = (a, b) => a+b
can do quite a few surprising things depending on the types of a and b.

Whereas how this will behave:

    const add = (a: number, b: number) => a+b
is far easier to keep in your head. Multiply that effect by 100k lines and the TypeScript program becomes a lot more fun to build on because you get to spend less time thinking about edge cases.
scanr··on Ask HN: Who is hiring? (November 2021)
Investec | Software Engineer | UK | ONSITE and REMOTE | VISA Sponsorship | Full Time

We would love you to join us at Investec to help build a broad range of FinTech solutions across core banking, lending, treasury and trading.

We're looking for awesome and curious engineers.

Here's our tech stack but think of it as things we'd help you learn about rather than a list of requirements:

* Azure, Bicep, Terraform

* C#

* TypeScript, Angular / React

* Docker and Kubernetes

Send me an email at jamie.mccrindle@investec.co.uk to have a chat!

scanr··on JSON5 Data Interchange Format
The syntax for line breaks make it incompatible with JavaScript.

Probably not terrible because doing an eval of untrusted json would be a bad idea but they could have used back ticks which would have these useful properties:

- still JavaScript

- fewer characters

scanr··on Discord has won over gamers. Now it wants everybody else
I use teams at work. I hadn’t used discord much but then did for a hackthebox CTF.

I found discord way better for work that involves dynamic collaboration ie where folk are often working individually or jumping into each other’s streams to work together.

To achieve something similar in teams we have an open all day meeting that people pop into but it’s sub par vs the discord model.

scanr··on Golang vs. C# (.NET 5.0) at Benchmarks Game
I enjoy using both languages. The significant performance difference between the two for me is compilation speed. Size of binaries produced is also important if you’re shipping them around.
scanr··on Show HN: Find Your Hacker News Doppelgänger
Mine resulted in amazing synchronicity, turns out someone had sent me a link to a blog post of theirs just this morning.
scanr··on Show HN: Check which paths changed between commits
Author here. You can do with with just git and bash but it’s just awkward enough that I thought a utility would be useful.
scanr··on Q – Run SQL Directly on CSV or TSV Files
q is awesome. Initially I wasn’t sure what the underlying engine was so was amazed at how good the sql support was. Turns out it feeds all the data into sqlite under the covers so you can do some pretty complex queries against arbitrary csv files in a one liner.
← PreviousPage 2 of 10Next →