HNHacker News
TopNewBestAskShowJobs

ralmidani

2,811 karma · joined May 8, 2014

submissionscomments
ralmidani··on Airtable acquires Airplane
Airplanes don’t need traction, they need lift.
ralmidani··on Police get medical records without a warrant
No problem, and thank you!

For what it’s worth, I don’t think changing a political stance should be considered “flip-flopping” unless it’s done for a self-serving purpose. Reevaluating should be considered an attempt to learn and grow. That’s why wisdom is often (but not always) associated with age and/or experience.

ralmidani··on Police get medical records without a warrant
I love it!

And I’ll do you one better:

US Supreme Court Justice Antonin Scalia, for all his faults (which are numerous), supported the 5-4 majority in a landmark case regarding flag burning.

https://en.m.wikipedia.org/wiki/Texas_v._Johnson

Imagine if Justice William Brennan, who wrote the majority opinion, said to Scalia rudely and dismissively “you don’t really believe in civil liberties, you’re only an absolutist on free speech”. It could have led to it being illegal today to burn the flag (which I don’t approve of on a personal level) - and presumably many other ways of expressing disapproval with how the US government conducts itself.

ralmidani··on Police get medical records without a warrant
Thank you!

Retroactive shaming of anyone who was ever against your political position seems like some folks are devolving toward something even worse than cancel culture. The rudeness, as you put it, is not going to change my mind about the issue itself, but it does make me want to avoid the impossible-to-reason-with zealots.

ralmidani··on Apple allows some iOS apps to track user locations via lists of nearby SSIDs
This is one of the majors problems with completely locked-down platforms. Assurances that the owner of the platform respects your privacy and prevents others from violating it are really just a pinky promise.
ralmidani··on Police get medical records without a warrant
I thought it was pretty clear from the context that I meant conformist in regard to HN, not Ohio.

I also don’t think of myself as a hero by any means.

ralmidani··on Police get medical records without a warrant
Thanks!

Being a hacker and/or entrepreneur, even loosely defined, doesn’t imply you’re a conformist. In fact, I think what makes HN one of the most desirable places to engage with on the internet is that it’s less of an echo chamber than most.

ralmidani··on Police get medical records without a warrant
> your all-powerful, all-benevolent god

As OP I agree that government has no business getting involved in these debates. But don’t you think insulting and ridiculing religious people, including those who agree with you on the general issue, is a bit much? You’re not really helping your cause by alienating those folks.

ralmidani··on Police get medical records without a warrant
Who decides if life begins at conception? Usually it’s fundamentalists and extremists who insist on that, and as a mainstream Sunni Muslim, I’ve not heard convincing evidence that Jewish, Christian, or Muslim texts support that position. In fact, I know that in Sunni Muslim tradition there is wide disagreement on when ensoulment of a fetus occurs. https://en.m.wikipedia.org/wiki/Islam_and_abortion

And let’s assume, for the sake of argument, that life does begin at conception. Isn’t the life and/or welfare of the mother also important? And who would you want making such a specific determination, a healthcare professional or Ron DeSantis?

ralmidani··on Police get medical records without a warrant
The second paragraph regarding abortion is terrifying:

> The revelation raises grave medical privacy concerns, particularly in a post-Dobbs era in which many states are working to criminalize reproductive health care. Even if people in states with restrictive laws cross state lines for care, pharmacists in massive chains, such as CVS, can access records across borders.

I was “pro-life” from as long as I can remember thinking about the issue (I still recall the Bush v. Gore debates) until I voted last month in favor of making free access to abortion a constitutional right in Ohio. It initially took some coaxing from my wife, who helped me try to understand the issue from a woman’s perspective, and for a while I had doubts about whether I had done the right thing, but reading about far-right shenanigans (or potential shenanigans) makes me 100% confident I’m now on the correct side on abortion.

Wherever power __can__ be abused, it __will__ be abused. I wish abortion was less common, and we should work on making it less common, but the last thing we need is ideologues and extremist politicians second-guessing healthcare professionals and harassing women in what is one of the most desperate times in their lives.

————————————————————————

Edit: reading some of the strident and confrontational comments from some of those with whom I actually agree on the issue, it’s clear that “the cause”, if you will, doesn’t always have effective advocates.

I have a fairly thick skin, some I’m avoiding engaging in a similarly mean-spirited way, but extremists (on both sides) are their own worst enemy. In the same way that I was pushed away from being “pro-life”, in part by far-right extremists, I imagine the extremists on the far-left are also losing friends and alienating people.

ralmidani··on VanJS – A no-JSX framework based on vanilla JavaScript
This looks great! I love having the ability to bring existing React/JSX knowledge and be productive with VanJS, while also ditching the transpilation and build tool wildness that has afflicted the ecosystem.

React and JSX were needed in 2013, but with the power and convenience packed into new ES standards and supported by modern browsers, React and JSX should be viewed as bloated polyfills at this point.

It’s really heartening to see things trending back toward single script tags that help you avoid build tools, churn, and dependency hell. To that end, I’m leaning toward htmx for my own project, but what you’ve come up with looks really enticing as well.

ralmidani··on Volkswagen Will Bring Back Physical Buttons in New Cars
I’m really not against touchscreens, but cramming more and more functionality into them, indiscriminately, is deplorable and just not good UX/UI.

I’m very far from being a usability expert, but I think a good rule of thumb would be putting less-essential __digital__ functions like maps and audio in the touchscreen, but essential __mechanical__ functions like climate control (which includes seat heating/ventilation) be controlled by physical buttons, switches, sliders, and/or knobs. This makes it more intuitive and also more safe to control frequently-modified functionality while keeping eyes on the road.

I believe this is an essential safety issue, and it’s infuriating that companies with billions of dollars in resources and, presumably, lots of engineers and designers and usability experts with concerns that are probably ignored. Especially as cars continue to include more headline safety features (i.e. used to sell and even upsell) which are far more expensive than the components they’re skimping on. It’s very petty and irresponsible.

The US government has more or less abdicated its responsibility to keep corporate greed in check. Hopefully, the EU will step in and fill that void.

ralmidani··on Volkswagen Will Bring Back Physical Buttons in New Cars
Even the small area argument is questionable; yes, cars these days have more functionality than they did in 1993, but the center console has also gotten progressively larger.
ralmidani··on PostgREST: Providing HTML Content Using Htmx
I would argue the “more capable” frameworks, while invented with the best of intentions, have become unmanageable, unmaintainable monstrosities that just keep rolling out, as you put it, solutions in search of a problem.

htmx is not meant to do anything fancy that you can’t do with Ember/Angular/React/Vue/etc.

The main motives for me deciding to go with htmx:

- No duplication of data models and routing, and all business logic stays on the server-side where it belongs.

- Locality of behavior: you can see exactly where a request will be triggered and what will be done with the response, so less jumping between files or scrolling up and down.

- No build step, no dependency hell, and no outrageous churn; just include one JS file that browsers should be able to run indefinitely.

ralmidani··on More product, fewer product managers
Not related to number of PMs, but rather the type that I prefer to work with:

I’ve worked at 4 different companies in the industry, ranging from < 40 person startups all the way up to JP Morgan Chase.

I reject the idea that “technical” folks are smarter than “non-technical” folks - in fact, as an engineer I often get caught in the weeds and lose sight of the big picture, and need a PM to help pull me out.

However, in my experience, the easiest PMs to work with as an engineer are ones who have at least __some__ actual exposure to code. Nothing fancy, it could have been building a website with HTML and CSS many years ago, writing some ad hoc SQL queries, or taking a Python class while doing a Master’s degree. __something__ that helps a PM understand that writing code is neither an exact science nor outright wizardry.

These PMs tend to advocate for the engineers they work with, or at least try to strike a balance between business demands and engineering realities. Those who get into PM with zero technical exposure tend to be more “business-oriented”, which may be exactly what a business needs at a given time, but not all the time, and as an engineer I would rather work with someone who has a better understanding of my perspective as well.

ralmidani··on Idea to App Store in 7 days
Not sure why this is getting downvoted. It’s a comment from OP explaining what the article is about.
ralmidani··on Templ: A language for writing HTML user interfaces in Go
Astro needs a better elevator pitch. I spent several minutes on the site, clicking and scrolling, but sample code was minimal and not easy to find. This is not effective marketing in 2023. If a developer has no idea what developing with your tech stack feels like after ~60 seconds, more times than not that developer will leave. Sorry, Astro sounds cool conceptually, but in this case I think brutally honest feedback is warranted.

For what it’s worth, I also think Django needs a better elevator pitch, but Django captured me in 2010. I might try pushing for a home page improvement. Django does have tenure and mindshare working in its favor, though.

ralmidani··on Templ: A language for writing HTML user interfaces in Go
There is a very intense backlash against technology like React, due to the unbelievable complexity that has crept into building “modern” JS apps.

This backlash is quite understandable. I believe Ember/React/Vue/Angular/etc. were all created with good intentions, but with the ecosystems of bolted-on technologies and now-necessary build tools, they have all become unmanageable monstrosities.

So people want to go “back to basics”. Personally, while I loved Ember with CoffeeScript (talking to a Django server via JSON) in 2015-2017, I can’t even revive the app I built without a massive effort to upgrade and ditch all the deprecated, unsupported dependencies (which might take more time than modifying my actual app code).

So I’m just going to rewrite the Web client with htmx (with Django rendering the actual templates). No churn and dependency hell, no build tools, no nonsense. Just a single script tag and some HTML attributes. For special cases that can’t be covered by htmx, there’s hyperscript (just add another script tag). Since browsers intend to maintain backward compatibility indefinitely, forced upgrades should be minimal to non-existent.

It’s a shame JS ended up being perceived as a villain, because it was meant to enable rich client applications within browsers, which are the most universally-compatible and commodified client you can possibly run such apps in.

ralmidani··on Django 5.0
I don’t know if I would “never look back” to Django (I’m a sentimental person). But admin is one aspect, the other big one is auth. I also like DTL better than EEx/HEEx. And all the pieces of Django just fit together really nicely; where Ecto happens to be the preferred way to interact with a database from Elixir, and Phoenix happens to be the preferred way to build Web apps using Elixir, (maybe with Ash layered on top), they weren’t designed by the same people, so you have packages like ecto_phoenix, ash_phoenix, etc. to make them all play together in an elegant way.

I will admit, Elixir and Phoenix have better real-time and scalability stories.

If I had a choice I would probably prefer Elixir/Phoenix/LiveView when joining an org to work on an established codebase that may have actual scalability needs and concerns. But I would probably prefer Django when starting from scratch.

ralmidani··on Django 5.0
Thanks for sharing that! I also just finished watching Carlton’s talk from DjangoCon EU (linked in the repo) and it is gold: https://youtu.be/_3oGI4RC52s
ralmidani··on Django 5.0
There is a header that htmx injects to indicate you want a partial render, and it’s really not that hard to add an if on the server-side to check for it. A larger codebase would probably break templates up anyway for maintainability, so it’s just a tiny amount of extra work if you want to reduce the amount of HTML being sent over the wire and swapped in.
ralmidani··on Django 5.0
Yes, jQuery is often derided as outdated, but it worked quite well for a very long time, with minimal hassle for developers. In fact, I was working full-time on static Elixir/Phoenix pages with jQuery sprinkled on top as late as 2022… it felt a bit clunky but it worked as advertised and wasn’t frustrating in any significant way.
ralmidani··on Django 5.0
If you want a heavyweight JS framework, Ember is the most stable and best supported. I enjoyed Ember when I used it in the 2015-2017 time frame.

But I’m abandoning the heavy JS paradigm in favor of htmx. Aside from the fact that I don’t want to duplicate routing and data validation across client and server, htmx is intentionally a single JS file with no build step, so in theory it should run fine as long as browsers maintain backward compatibility.

ralmidani··on Django 5.0
Not who you’re asking, but I’ve used all 3. I think in terms of query interface you can’t go wrong with any of them. In fact, I like Ecto the most because of its separation between the concept of a “Query” (super flexible and composable) vs. a “Repo” (the module where you call an actual database operation). This helps you avoid hitting the database until you’re sure you want to.

Where Django’s ORM shines is in the modeling stage: classes in models.py are your single source of truth, relationships only need to be defined once, no separate “schema” file, and most of the time migrations can be generated automatically. It’s truly top-notch.

ralmidani··on Django 5.0
Django made me fall in love with programming 13 years ago, and since then it has always had a special place in my heart.

I’m revisiting a business idea I was working on for a couple years, before I sought and found employment in the industry (where I used Java for a couple years, then Elixir for a couple more). My project was built with Django and Django REST Framework, and Ember on the client-side. 6 years later, the Django side needed minimal changes and is up and running (I jumped all the way from 1.11 to 5.0 beta).

Meanwhile, the Ember part is “lost in time… like tears in rain”. I tried everything, downloading older versions of Node and even the now-deprecated Bower. I don’t fault Ember (which is actually the most stable of the major JS client frameworks). But the JS (especially Node) ecosystem is beyond redemption in my eyes.

For my rewrite of the client, I’m going to skip the drama and just use htmx. Render Django templates server-side, include a single JS script, thrown in some HTML attributes, distinguish between full page requests vs. requests for a partial with updated data, and call it a day. No TypeScript, no Webpack, none of that nonsense. If I need special interactivity I can throw in some hyperscript.

At work I’ve used Elixir/Phoenix/LiveView and it’s revolutionary, truly awesome tech. But to get to market I would rather not have to customize an auth system and build a decent admin interface myself (I tried Ash; its auth and admin are not mature enough to be compared to what “just works” with Django). Yeah, it won’t be as scalable as a Phoenix app, but to me, Django seems like the most clean and rapid way to get to a point where you’ll actually need scalability.

ralmidani··on From airlines to ticket sellers, companies fight U.S. to keep junk fees
After overdraft fees, probably the most egregious abuse of fees I’ve seen is being forced to pay an “online course fee” on top of university tuition. It made sense when online education was in its infancy, but these days it’s much, much cheaper to deliver online courses - less instructor time, more “scalable”, and less need for large lecture halls. Not to mention that many professors don’t even bother to record any lectures and the assignments are often graded by TAs. So we’re paying you $1,500+ a course plus fees for... what, exactly?

Anyway, are universities covered by these policies as well?

ralmidani··on Rivian software update bricks infotainment system, fix not obvious
I know, I just thought it was a decent pun.
ralmidani··on A decade of developing a programming language
A sibling addresses the nuance expressed in “for new languages”. But even if the original author’s opinion was that gradual typing is always bad, why does that mean we should dismiss the Elixir team’s efforts?

I have opinions about Elixir, mostly around aesthetics (for context, I started programming in Python, not Ruby), but that doesn’t mean my opinions are objectively more valid than those of a genius like José Valim.

I’ve actually found Elixir to be very well-designed and internally consistent, and after two years using it, it’s obvious to me that José and team are very thoughtful and deliberative. I don’t think they want to introduce gradual typing because it’s trendy.

ralmidani··on Rivian software update bricks infotainment system, fix not obvious
Move fast and break things that move fast…

I don’t really like or trust most (if not all) of the established automakers, but there is something to be said for having several decades (over a century in some cases) of experience building potential killing machines vs. a company that’s not even 15 years old. The established players have put out cars which suffered freak malfunctions, but Rivian (and Tesla) seem to be struggling more with QA.

Non-rhetorical question: do companies have safeguards for critical components like braking systems, or are they also prone to catastrophic failure if a software engineer pushes a bad commit?

ralmidani··on HTML First
I’m not able to make a page look nice (or even decent) without a CSS framework. But I think I’m at least OK at understanding how to make the interactions and workflows follow the “Principle of Least Astonishment”.

In other words, I’m not scared of UX in general, just not confident in my current abilities in UI (which is just one aspect of UX).

← PreviousPage 3 of 22Next →