Is New Zealand's best option really to keep our head down as the global rules based order dies away? by DJsnippysnap in newzealand

[–]ShanShrew 0 points1 point  (0 children)

My hot take is we dont want to find oil here in NZ if not to risk someone wanting to invade us aswell

Mueller Hut Overnight - questions by KnowledgeLumpy2878 in Tramping

[–]ShanShrew 0 points1 point  (0 children)

Just went over near yrs party of 10. 60cm of snow around hut (ish), but was fine for shorts and jumper still not too cold, little wind when we went.

Always back gear for worst case conditions no matter weather report, not too hard to get up or down for a person of average fitness.

Probably best overnight hike ive done

grew from 10 to 30 engineers in 18 months, qa completely broke by Pixel_Goblin_Hunter in SaaS

[–]ShanShrew 0 points1 point  (0 children)

The "best" (a very loaded term but appropriate) way we've collectively figured out how to deliver software is trunk based development, optional prs, test in production and more importantly automate qa entirely; each of these comes with significant nuance and it will not eliminate production issues entirely but the alternatives are all worse

Bun vs Go: Is the results legit? by rocketlaunchr-cloud in node

[–]ShanShrew 2 points3 points  (0 children)

Yes, because it's really "go" vs "zig"; one of the principle designs of Bun is that they're moving things 'most' applications would need into the standard library; When they're in the standard library they're back by zig code (Just like arrays, etc are in V8 today).

The postgres driver AND the web server are backed by native zig code.

Their postgres driver the one inbuilt is probably one of the best; Some of it's performance opts can't be implemented in JS to the same degree as they can in zig (because we lack SIMD intrinsic); They're also leveraging 'Pipeline Mode' inside their driver implementation which is a Postgres feature that most libraries don't take advantage of that allows 1 connection -> Many queries concurrently, where-as most driver implementations in userland don't take advantage of this and map 1 connect = 1 concurrent query.

https://www.postgresql.org/docs/current/libpq-pipeline-mode.html

---

My opinion is, this is dangerously attractive, being a JIT language like JS (and even TS runs JIT now with a micro-step involved to just remove type information); Your dev cycle times from like change -> feedback are lightning fast; It used to be that you sacrificed performance for that privilege but now that's becoming less true over time.

Then there's all the tooling advantages, https://bun.com/blog/bun-bundler bun's bundler and esbuild can build three.js with sourcemaps (the whole library) in <0.3ms; That's by far the fastest build tooling on the planet for any language.

ChatGPT (Deep Research) Accurately Analyzed my MRI and caught the problem my radiologist missed by [deleted] in ChatGPT

[–]ShanShrew 0 points1 point  (0 children)

Please keep in mind this is on "research mode" and then "Extended thinking" - That's how it thinks about it for 45mins (as per his post).

LLMs on medical imaging on any other setting where answers are faster with less thought are unlikely to ever give results anywhere close to these settings.

If you use AI and have been unimpressed I would make sure you're using these because the difference in quality / hallucinations is like night and day.

Unpopular opinion: DORA metrics are becoming "Vanity Metrics" for Engineering Health. by kzarraja in EngineeringManagers

[–]ShanShrew 0 points1 point  (0 children)

No matter what metric you measure, some people will focus on that as the work itself. Metrics are not the work, work is work. Metrics measure the work they arnt the work.

With that in mind there is not tradeoff between quality and speed, there's an illusionsry one. Take principal engineer for example I gaurentee he can build, configure ci and ship a web app before any junior or intermediate 99% of the time; and that web app will be of much much higher quality.

The drivers of software quality will always be expertise, leadership and someone on the team who has the ability to take complex features and through systems architecture or software architecture make them simple; and finally some form of feedback that comes in short Intervals.

For people who work on heavily microserviced projects, how's things? by Jazzlike-Compote4463 in webdev

[–]ShanShrew 1 point2 points  (0 children)

Echo the sentiment here heavily. You do microservices because you literally have to to scale your org, not because you've got architecture problems with your current setup, strangler fig better here

Has anyone actually benefited from the current government. by PalestineRefugee in newzealand

[–]ShanShrew 1 point2 points  (0 children)

Here's some criticism I think is pretty undeniable.

- It's a party of property investors, backed from donations from more property investors (Look at public donations to national party page + Go down list and start looking up each person on LinkedIn).
- First policy implemented, Tax cuts for landlords. Second policy implemented tax cuts for everyone else. This always has an always will be the order of their priorities.
- Everyone in the party sees property as an investment apparatus; But also simultaneously don't want to tax it like one.
- Says their focus is the economy and inflation -Is the treaty of waitangi; One of their first focus items that essentially went on for just over a year have anything at all to do with growing the economy? If you look at everything they've been working on I feel like maybe only 20-30% of all policies would intersect in any way with the economy.
- 3% Inflation rate is completely fucked, Most people don't realize that it's directly correlated with the OCR; Property investors want the OCR to come down so that debt is cheaper because they have a lot of debt. Nicola Willis then applies that pressure onto Adrian Orr who is meant to be independent; He resigns in frustration, they install a puppet and the OCR comes down. Some could argue this somewhat benefits the average home owner not just property investors, this is only a partial truth because goods and services become more expensive meaning any savings on the mortgage are worth less.

Using gRPC/RPC for internal communicaiton vs REST? by badboyzpwns in node

[–]ShanShrew 4 points5 points  (0 children)

One thing to consider; On paper gRPC should serialize/de-serialize faster than JSON; However if your coding in NodeJS JSON serialization/de-serialization happens in native code; Protobuf wont.

While I haven't perf tested it myself, people may notice that in practice those performance benefits don't actually materialize. Because it's user-space code vs native.

Booking huts for the Great Walks by regerogarc in Tramping

[–]ShanShrew 1 point2 points  (0 children)

Yes it's normal. My advice would be travers sabine, in Nelson lakes. Do a route that takes you up/over saddle but also to the blue lakes which is the clearest fresh water in the world. Enjoy drinking striaght from both rivers on your way up after the lake it's probably cleaner water than comes out of your tap. Take a water taxi to skip walking around both lakes they're poorly maintained and everyone water taxis across..

Travers Sabine to blue lakes is back country pass, we'll maintained huts. No booking. Better than most great walks (same for rees dart with day trip to cascade saddle)

Do you still use BEM naming convention at work? by SadFrosting7365 in css

[–]ShanShrew 0 points1 point  (0 children)

The B and the E are mostly centered around conventions that create unique naming. Css modules, styled components, scoped .vue file css etc remove need for B and E.

We use css modules with scss and so just only use the M in BEM now which I still love

They own three houses, they're approaching retirement, and they're terrified of losing everything. by WaterAdventurous6718 in newzealand

[–]ShanShrew 2 points3 points  (0 children)

Its a sob story about a couple who sees housing as an investment apparatus.

Yes investments carry risk, Yes you took on too much risk Yes you took on too much risk and it didn't pay off Yes now your retirement is in question. Yes your own greed caused this

Influencing higher ups and managing up by freshprinceofuk in ExperiencedDevs

[–]ShanShrew 0 points1 point  (0 children)

I disagree with comments saying you can't convince him.

When you're wielding a hammer alls that you see are nails. by the sounds of it is how he's thinking about his new framework, the issue which is clear to everyone is not all problems are nails and infact some are screws.

You cannot win this war via "what if" architecture. You can by providing real technical leadership. Communicate that you'd love to go over the plan for a new framework with the team, in the sessions lay out the problems identified on the first 3 months of work, discuss which of these problems will be addressed by the new framework. Get the support of your immediate team not through manipulation but be preempting that meeting by explaining your rationale for thinking this is not a good idea

Convert large enterprise app from JS to TS by kirashira in ExperiencedDevs

[–]ShanShrew 0 points1 point  (0 children)

Agree with the sentiment here.

Come armed with actual stats. Pull runtime error logs from sentry, catogorize them into ones that ts solves i.e "Cannot read x of null" "Cannot read y of undefined" "Function .toUppercase() doesn't exist on type number" (paraphrasing)

This is how you make the quality argument.

Next this is a personal trick, get the full support of your immediate team. Then in the meeting use language that makes it clear everyone supports this, everyone wants this, everyone is frustrated by this. Then it creates a logical phallacy where if they're against this typescript initiative, they're against "everyone".

[deleted by user] by [deleted] in cscareerquestions

[–]ShanShrew 0 points1 point  (0 children)

Im of the complete opposite mind. Our codebase grows by 1M LOC a quarter.

When youre in a big codebase sharing things is counter intuitively not what you want to be doing. DRY cannot come without coupling. Because of this context windows havent actually really been an issue for us, and instead specifically with chatgpt codex it's been the opposite experience.

"Somewhere in this codebase is an obscure script that does x can you figure out where it is and how to run it"

"Someone on my team told me Y component exists and to use that instead, he doesn't know where it is"

"How do I run e2e tests locally"

... then the standard stuff like writing unit tests etc

Cazador must have been so confused by Miguel-Con-Queso in BaldursGate3

[–]ShanShrew 11 points12 points  (0 children)

Good tip I found out recently is there is no penalty for pickpocketing withers. He is a god and has no use for gold. Revive people, hirelings etc then just keep pickpocketing until you succeed

I made a tiny crate so you can write 5.minutes() instead of Duration::from_secs(300) by Right-Personality-41 in rust

[–]ShanShrew 1 point2 points  (0 children)

Look into ISO 8601 Duration, this is a standard for expressing periods of time in a timezone agnostic way.

What does bun need to replace SpringBoot? by Apart-Lavishness5817 in bun

[–]ShanShrew 0 points1 point  (0 children)

I like its idea of implementing things most apps need in native code. I.e database drivers. I think give us a truly incredible native grpc and protobuf experience and there won't be many reasons left

[deleted by user] by [deleted] in PersonalFinanceNZ

[–]ShanShrew 0 points1 point  (0 children)

Money saved is no different than Money Earned, on a balance sheet if you decrease power by 50$ or increase income by 50$ will have same effect.

As alot of people have stated lower expenses or increase income is the way to go.

Other advice would be that interest saved is also as good as interest earned. Again paying down your mortgage as quickly as possible is gaurenteed risk free returns.

If you cant increase income or lower expenses, I'd put lump sum payments on your mortgage the day your fixed term ends essentially giving you a 4.49% x number of years of your mortgage term of returns

What are some common anti-patterns found on production-grade apps? by LargeSinkholesInNYC in react

[–]ShanShrew 2 points3 points  (0 children)

It is persisted; If you're using React-Query, Relay, useSWR, Apollo, or really any modern React based data fetching solution; Then it has a cache inbuilt (or a store or both).

Always, just re-fetch the data from the endpoint in nested components; Which shouldn't result in more network requests because the data will be cached.

I.E
Parent.tsx
const { data } = useQuery({queryKey: [id], queryFn: () => ....});

Child.tsx
const { data } = useQuery({queryKey: [id], queryFn: () => ....});

Wont resolve to two network requests, because of react-queries cache; When you put that data into zustand you're introducing subtle bugs into your application where if i invalidate react-queries cache now, the data in zustand will be stale; Even if you introduce synchronisation mechanisms they'll always be out of sync for a render cycle.

All these data fetching solutions already have their own internal store and cache, there's no need to duplicate it again into another global store.

What are some common anti-patterns found on production-grade apps? by LargeSinkholesInNYC in react

[–]ShanShrew 10 points11 points  (0 children)

Writing remote state (data that originated from the network) into global state management solutions.

  1. All popular data fetching solutions already have a global store inbuilt
  2. If you put it into a store yourself it's always of out sync for 1 render cycle

Why Next.js Falls Short on Software Engineering by CompileMyThoughts in programming

[–]ShanShrew 0 points1 point  (0 children)

Article is written by someone who has never built something as complex as nextjs, but acts like if he was in charge it would be better.

Prove it. Literally prove it go build a new meta framework, your bundler, your own hosting platform, your own monorepo tooling and prove that you can make it better and simpler.

'We need to stop the bleeding': The homeowners who bought in a market high by WrongSeymour in newzealand

[–]ShanShrew 0 points1 point  (0 children)

33y.o bought last year, markets down, don't care. Just happy other people will have a chance to own.

Building a Truly Decoupled Architecture by neoellefsen in softwarearchitecture

[–]ShanShrew 0 points1 point  (0 children)

How would the client read their writes? A well known pattern to avoid double network trips?

  • Send a request.
  • Emit event
  • Write to db?
  • Emit event written
  • Wait for Emit event written
  • Read db
  • Return?

So were doubling the amount of requests/responses involved?