Hacker Newsnew | past | comments | ask | show | jobs | submit | nicodjimenez's commentslogin

Part of what makes Hendrix's live performances so great is how completely unreproducible they are. Even Jimi himself could never recreate that one note sustain when he begins the solo on Machine Gun. To re-create it, you'd have to set the room up exactly the same, tune the guitar exactly the same, position the guitar relative to amps exactly the same, etc. So Hendrix being very sensitive and connected to the room was able to harness that energy into something unique that stands the test of time. Machine Gun is well known, but his Red House performance at Randall's Island also stands out to me as exceptional, those are the 2 key Hendrix performances. I read somewhere that Miles Davis was really impressed by Machine Gun and you can see why.

One thing I learned after buying some gear at home to try to record electric guitar at low volume is how important the physics of the speakers are. You can plug a tube amp into a cabinet simulator and you'll lose a lot more than using solid state electronics on a good but not great Fender amp, especially if you use fuzz / distortion pedals.

I'm not sure Hendrix was a systems engineer, but he was a transcendent blues artist, that's for sure.


Although I love Jimi Hendrix’s performances I’m not sure if not being to reproduce something necessarily makes it great. One could say the same thing about any disorganized person’s process but it doesn’t make it great. It just makes it not reproducible.

One could make a bunch of random noises with a guitar that are hard to reproduce but the music could be shit.


great article and many great points here


What I dislike about Claude code and vibe coding in general is that I haven’t seen Claude code users learn a whole lot about how to do their jobs better. A terminal pane is just too small to be a good place to learn.

With vibe coding you just give the code some constraints and then system will try to work within those constraints, but what if those constraints are wrong? What if you’re asking the wrong question? Then you’ll end up with over complicated slop.

It’s a shame that vibe coded slop seems to be a new standard, when in fact you can use AI tools to produce much higher quality code if you actually care to engage in thoughtful conversations with the AIs and take a growth mindset.


This seems completely wrong. In an RPC call you have a trivial loop, for example.

It would make more sense to say that the event tree should not have any cycles, but anyway this seems like a silly point to make.


My main take on microservices at this point is that you only want microservices to isolate failure modes and for independent scaling. Most IO bound logic can live in a single monolith.


It is simpler than that. You only want microservices in the same cases you want services (i.e. SaaS). Meaning, when your team benefits from an independent third-party building and maintaining it. The addition of "micro" to "service" indicates that you are reaching out to a third-party that is paid by the same company instead of paying a separate company.


Golang to me is a great runtime and very poor language. I could maybe get used to the C pointer-like syntax and to half of my code checking if err != nil, but the lack of classes is a step too far. The Golang idiomatic approach is to have a sprawling set of microservices talking to each other over the network, to manage complexity instead of having classes. This makes sense for things like systems agents (eg K8) but doesn't make sense for most applications because it complicates the development experience unnecessarily and monoliths are also easier to debug.

I would not use Golang for a big codebase with lots of business logic. Golang has not made a dent in Java usage at big companies, no large company is going to try replacing their Java codebases with Golang because there's no benefit, Java is almost as fast as Golang and has classes and actually has a richer set of concurrency primitives.


I think lack of classes is highly desirable. So much enterprise code is poorly put together abstractions.

I think go needs some more functional aspects, like iterators and result type/pattern matching.


Go does have iterators: https://pkg.go.dev/iter


Thanks! Did not see this until your message, looking forward to make use of this


The solution to bad abstractions it not to make it very difficult to create abstractions at all. For systems code I think it's fine but for application code you probably want some abstractions or else it's very hard to scale a codebase.


It’s really not though. Plenty of systems are built in Go, Erlang etc that do not have the architectual monstrosities which commonly show up in object-oriented code, especially when a Java or C# expert beginner has been let loose.


Microservices are entirely unrelated to classes and in no way endemic to go.

Go’s lack of inheritance is one of its bolder decisions and I think has been proven entirely correct in use.

Instead of the incidental complexity encouraged by pointless inheritance hierarchies we go back to structure which bundle data and behaviour and can compose them instead.

Favouring composition over inheritance is not a new idea nor did it come from the authors of Go.

Also the author of Java (Gosling) disagrees with you.

https://www.infoworld.com/article/2160788/why-extends-is-evi...


Microservices in Golang are definitely related to classes due to the ergonomic aspects of a language. It takes a lot of discipline in Golang not to end up with huge flat functions. Golang services are easier to reason about when they are small due to the lack of abstractions, also Golang is very quick to compile, so its natural to just add services to extend functionality. Code re-use is just a lot of work in Golang. Golang is not monolith friendly IMO.


It really doesn’t.

Structs and interfaces replace classes just fine.

Reuse is really very easy and I use it for several monoliths currently. Have you tried any of the things you’re talking about with go?


Note that Mathpix Snip can quickly convert such screen shots to markdown code via keyboard shortcut. Disclaimer: I’m the founder.


There are only two political systems at the end of the day: authoritarianism (everyone knows who is in charge) and oligarchy. Populism, in a liberal democracy, is basically authoritarianism-lite representing the interests of a particular faction of oligarchs. There's no "populism" in China, that's an American & European invention. Populism is ugly but it's a useful tool that can get things done in an oligarchy.


What kind of codebases do you work on if you don't mind me asking?

I've found a huge boost from using AI to deal with APIs (databases, k8s, aws, ...) but less so on large codebases that needed conceptual improvements. But at worst, i'm getting more than 10% benefit, just cause the AI's can read files so quickly and answer questions and propose reasonable ideas.


How are you quantifying that 10% ?


The most important piece ever written about startups, probably. Applicable to doing anything new.

For startups, the devil's in the details though. The goal is to scale but you get there by doing things that don't scale successively.


For accurate and easy PDF to Markdown / LaTeX / JSON check out:

https://github.com/mathpix/mpxpy

Disclaimer: I'm the founder. Reducto does cool stuff on post processing (and other input formats), but some people have told me Mathpix is better at just getting data out of PDFs accurately.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: