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

Damned is this industry, when even _you_ say you have to show that "remoteness works".

I also measure meetings (counts, lengths, and mostly meeting minutes/outine jotted down by myself) and keep track of other metrics, exactly for this reason. However, I also don't happen to have written best selling books and stuff, so I really must do this, and you really shouldn't have to :-)


I have more respect for him because he chose to do this. It’s probably clear that he doesn’t have to, at all. But he’s choosing not to rely on his (somewhat) tech celebrity status and deliver on measurable outcomes.

Not that I've ever been especially religious about it but it's probably a good thing to keep track of activities, especially those that directly affect customers. It's pretty easy/low-effort and is useful to be able to pull out.

Davmail is the shim I used to proxy OWA / exchange ansmd present an IMAP interface towards neomutt. Used this setup with three companies, worked well, and unified the UX instead of the different Gmail and Outlook web slowness.


I'm tasked to amend a project written in ruby. With a python background (and some nice pydantic, type annotated, etc "strong" code bases behind my back), every day I spend with ruby is a minefield, a nightmare.

I hoped that ruby4 maybe implements stuff that python has, like type annotations or making the damn parens mandatory, but no. Not surprised that python has ten times more developers according to stackoverflow's survey... I can't possibly imagine a collaborative project where other people also have to work on the same code base, and not having any clue what a symbol under the cursor might be.

No type hints. No mandatory requires. No parens, so never know if something is a method or, callable, or variable. Basically IRB is a must for development, because in the editor, I'm blind.

And the ecosystem is just sad. Swagger-rails libraries out there are rookie jokes compared to what python has. At least there is decent GRPC / protobuf integration, so all new services I am writing can be in python. Or any sane language.


I used to be a big ruby/rails fan but I have to agree with you. I now write c-sharp and it's a lot less stressful than Ruby. If a Ruby/Rails codebases get to a large enough point it's really difficult to keep track of what types a method you wrote accepts. You end up just constantly double checking your own code. Or you end up with a few type checks and/or type conversions at the top of every method. And maybe I was doing it wrong because it was early on in my career. But when a method can accept literally anything and return literally anything, not even a strong IDE like RubyMine can save you.


I’ve sworn off Rails development for anything short of stupid-high compensation for similar reasons.

Implicit imports (“… which package defined this symbol? Who knows!”), dynamic definitions all over the place (“where’s this defined? Literally nowhere until the program runs!”), all that stuff. It’s awful. I feel blind not being able to answer basic questions about a codebase with grep. And that’s not even considering the lack of static typing.


This is a classic "I am used to language X. I am now trying language Y, but nothing in language Y is like language X! Why can't language Y be like language X?!"-type post. Yes, Ruby is a different language. It does things differently and priorities different aspects.


I don't know. In my experience, the real nightmare is when a competitor uses Rails and has strong developers. Their velocity is insane and I don't see things falling apart when the project gets bigger. Nowadays, I pray that my competitors use something like .NET or Spring Boot. And this comes from someone who never developed in or lead teams that use Rails.


> I hoped that ruby4 maybe implements stuff that python has, like type annotations

Ruby has had type annotations and typecheckers for quite a while. Unfortunately (IMO) the annotations are not inlinine.

> or making the damn parens mandatory, but no.

A linter/formatter can give the effect of that (and tune it for where it is appropraite) whether or not the language has it, though there are good reasons Ruby does not in general.

> No parens, so never know if something is a method or, callable, or variable.

Method and local variable are the only possibilities (callables are either the value of local variables or the return value of method calls),


Similar feelings here. Ruby's philosophy of providing a ton of different ways to do the same thing can lead to some pretty sweet-looking code, almost like poetry... but I'd rather have Python's stylistic consistency and better-integrated type hints. Now that Python has Poetry and uv, Ruby's main remaining advantage has evaporated and it's hard for me to justify using the language.

Another thing I don't like about Ruby is how much the community has embraced the Clean Code brand of readability snake oil. It's easy to come by the opinion that any function over 5 lines is a code smell and over 10 lines it's outright bad. I've even heard the view that if-else statements are a code smell and I should always try to replace them with different classes that have the same interface. To be fair, that only happened twice, but that's two more times than I've heard it from users of any other language. I think that the Python community usually strikes a better balance between avoiding excessive function/class length and avoiding excessive indirection.


> Another thing I don't like about Ruby is how much the community has embraced the Clean Code brand of readability snake oil.

This also puts me off every time, and I've dealt with people who embrace this a lot as a Ruby programmer. Fortunately, you can ignore them and still enjoy writing Ruby code the way you want.


I inherited a project where this was taken to the extreme. We have a class that's used to calculate final pricing taking into account discounts, coupons, shipping fees (or free shipping). Each one of those values was implemented as methods but then we have a call like: method_a - method_b + method_c, but it turns out, method_a may be adding shipping_cost for it to then be subtracted out in method_b. We ended up refactoring this and removing all the needless methods and just have a simple inline calculation. Definitely not "clean".


I feel you. Rubocop is certainly rather a bikeshedding tool than a linter at this point.

The forced if/else transformations drive me nuts.


What's with the downvotes? Every word here is true.


Because it's just generic complaining on a random Ruby post. It's just boring language flamewar bollocks that we can have on every post on every language.


I guess the relevant point I missed to emphasize is that I would have hoped that the situation is becoming better with the next major version, but as others also pointed out, it doesn't.


Truth <> Relevancy


People on HN seem to hate it whenever someone criticizes Ruby. But the language is a sad joke that's gone on for too long. I totally agree with your points and have many more I could mention (lack of proper debugger support and shitty tooling in general - these things exist, but they break every week)

The 4.0.0 release notes (TFA) are like a joke. Here are the language changes in their entirety:

Language changes: *nil no longer calls nil.to_a

That's it.


if you just need to write a few hundred lines of code to automate something ad hoc, or play with an idea, or do something exploratory like reverse engineering a file format, ruby is a truly gorgeous language. it just hasn't added the affordances you need to maintain a large code base, which is sad because python has shown that you really don't need that many of them - type annotations and explicit exports that act as namespaces would go a long way.


I actually love it for small scripts (not more than a couple hundred lines), including small web services and such. Much more pleasant than Python (though Python handles growing beyond a couple hundred lines way better than Ruby does)

I really like a few of its smaller libraries. Just not Rails.


Sure, it's probably great for small projects.

I worked for a company who had kept adding to their Ruby codebase for 10+ years, reaching about 50k files. At that point it becomes an unmanageable mess.


Yesterday I decided to finally write my makefiles to "mirror" (make available offline) the docs of the libraries I'm using. doc2dash for sphinx-enabled projects, and then using dash / zeal.

Then I was like... "when did I last time fly for 10+ hours and wanted to do programming, etc, so that I need offline docs?" So I gave up.

Today I can't browse the libs' docs quickly, so I'm resuming the work on my local mirroring :-)


Same, with an x1 gen5, upgraded NVME to 1TB

This boy is 8 year old today (bought in 2017 November) and still delivers me the €€€ at $consultingjob


Happened in the Netherlands: https://en.wikipedia.org/wiki/El_Al_Flight_1862

40+ people died in that one, it's a miracle it wasn't more.


Unrelated but this was interesting:

> It departed from runway 01L Zwanenburgbaan (now known as runway 36C)

Magnetic field change?


Yes, see relevant cgp grey video


I caught myself that most of my LLM usage is like this:

ask a loaded, "filter question" I more or less know the answer for, and mostly skip the prose and get to the links to its sources.


The "loaded question" approach works for getting MUCH better pro/con lists, too, in general, across all LLMs.


For those who struggle with the pay wall: check your local library's (online) membership, it might come with the worldwide library card, which might include the New Scientist magazine.

Mine does, and therefore I can "borrow" (read for free) articles that make it to the mag.


I've been doing this for New Scientist and a few other magazines and there's always a few articles that I have found interesting that don't make it to hacker news (the whole magazine with ads comes digitally), though many of the pieces are very short half page articles that mention something new that one has to follow up on one's own for detailed information and there's regular columns like book reviews. This magazine via Libby feature is the only thing that makes me miss having an ipad or larger mobile device for reading convenience. I assume the magazine is paid for by our local library system for access so in some small way there is compensation making its way to the creators which if someone is worried about supporting them, is one way besides a subscription. (I have stopped print subscriptions because I always end up with repository of stuff I need to recycle or throw away).


I got an iPad many years ago from my employer. I literally only use it for libby :-)


In this case we can just wave bye-bye to the magazine and head to the freely available Arxiv paper they are writing about.


If you use an ad blocker, just disable inline scripts


Or, you know, you could use a mechanism that actually guarantees them some revenue and doesn't just burn the publication to the ground because you feel entitled to free access.


Or just download the extension that bypasses pay walls lol


There are certain professions where the compilation process is (ab)used to optimize to a point where these bugs seemingly surface more often.

In the HFT sphere i haven't talked to a company that hasn't reported (bragged about finding) a super weird gcc/clang bug.

Well, also, at my last job we used a snapshot version of the compiler, bc... Any nanoseconds matters.


In HFT might you keep the bug fix secret so other HFTs cant benefit from it.


I saw both. One of the top firms wanted that, another I worked at we did report (of course with a scratched minimal reproducible example)

The thing is, it's quite unlikely that your competitor hits the exact same bug. The cost of us having to keep upstream patched, tested isn't justified.

Also in HFT world there are some very similar patterns across competing companies, yet, we just saw TernFS coming out from XTX, with not much fear of competitors benefiting from it more than they do.


This, and FoxyProxy for domain-based proxy settings is my go to when connecting to some websites (self-hosted bit bucket/confluence, etc) behind Corp intranet boundaries.


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

Search: