HN user

ralmidani

2,811 karma
Posts57
Comments660
View on HN
hexdocs.pm 2mo ago

Show HN: Deterministic, Replayable Demos for Phoenix LiveView

ralmidani
3pts0
store.repebble.com 1y ago

RePebble Announcement Tomorrow at 9am PDT

ralmidani
8pts0
assets.mozilla.net 1y ago

Edit PDFs in Firefox

ralmidani
17pts1
pragmaticstudio.com 1y ago

Full-Stack Phoenix Course by Mike and Nicole Clark (Early Access)

ralmidani
2pts1
www.arabnews.com 2y ago

Arabic software pioneer Mohammed Al-Sharekh dies

ralmidani
2pts0
kevinavignon.com 2y ago

Beware of Dragons: A Distributed Systems Adventure

ralmidani
8pts0
www.visitbritain.com 3y ago

Fake Brit till You Make it

ralmidani
3pts1
news.ycombinator.com 3y ago

Tell HN: macOS is degrading fast, and GNU/Linux is now better for most uses

ralmidani
27pts46
isbingaiavailable.com 3y ago

Is Bing AI available? (Neeva marketing site)

ralmidani
2pts0
news.ycombinator.com 3y ago

Ask HN: Web dev looking to learn new skills for job security, what should I do?

ralmidani
6pts4
world.hey.com 3y ago

The bubble has popped for unprofitable software companies

ralmidani
18pts1
impostor.ly 3y ago

The Professional Impostor Manifesto

ralmidani
1pts0
news.ycombinator.com 3y ago

Ask HN: is learning Elixir suitable for a kid who currently uses MIT’s Scratch?

ralmidani
3pts4
www.personneltoday.com 4y ago

Netherlands on track to approve working from home as a legal right

ralmidani
5pts1
docs.djangoproject.com 4y ago

Django 4.1 release notes: Asynchronous ORM interface

ralmidani
19pts2
www.edgedb.com 4y ago

EdgeDB 1.0 (launch event on February 10)

ralmidani
4pts6
news.ycombinator.com 4y ago

Ask HN: Which News Sources Do You Pay For?

ralmidani
4pts6
www.gog.com 4y ago

The Captain

ralmidani
1pts0
www.theatlantic.com 6y ago

What America Asks of Working Parents Is Impossible

ralmidani
8pts0
developer.apple.com 6y ago

What's New in SwiftUI (video)

ralmidani
1pts0
dev.to 7y ago

Building a Simple Virtual DOM from Scratch

ralmidani
1pts0
london.ac.uk 7y ago

University of London BSc in Computer Science (100% Online via Coursera)

ralmidani
2pts0
www.axios.com 7y ago

Tech's diversity crisis: 40% of VCs went to Harvard or Stanford

ralmidani
45pts21
www.cio.com 7y ago

10 reasons to ignore computer science degrees

ralmidani
3pts0
www.forbes.com 8y ago

Silicon Valley Firms Make It Nearly 'Impossible' for Cambridge to Hire AI Staff

ralmidani
12pts4
www.fastcodesign.com 8y ago

How electronic medical records went so wrong

ralmidani
1pts0
github.com 8y ago

LitElement (from Google's Polymer team)

ralmidani
1pts0
news.ycombinator.com 8y ago

Ask HN: How Do I Stick with GNU/Linux If Important Apps Crash Frequently?

ralmidani
1pts4
medium.com 8y ago

Prototyping a declarative data modeling and validation library (with TypeScript)

ralmidani
1pts0
news.ycombinator.com 8y ago

Ask HN: Best way to teach someone Python and Data Science in about a month?

ralmidani
1pts2

I'm working on an Arabic-language Electronic Health Records system (moving to Syria in about 2 months and planning to market to clinics there). No current plans to release as Free/Open-Source, but the stack is Elixir/Ash/Phoenix/LiveView/Bootstrap.

While working on it, I realized I should build a small Hex package for authoring and playing demos right in a Phoenix app (it's very easy to author scripts with AI or by hand):

https://news.ycombinator.com/item?id=48087389

The first time I looked at Elixir, I thought it was hideous (I was really into Python and Ruby, and still admire them while liking Elixir much more). But I kept hearing about the virtues of Elixir (and of the BEAM) and coming back. Finally, it clicked, and I’m now in my 3rd year of doing Elixir full-time. I hope to never again use a language that doesn’t have pipes.

The moral of the story? Let’s give this new SQL syntax a chance.

This is not by any means a “complete” picture. There was no consensus that Jesus is divine, or about the nature of the divinity ascribed to him, even after the declaration in 325 of the Nicene Creed - from which 5 bishops abstained and were at least temporarily exiled. This NPR interview with Bart Ehrman, a former Evangelical who later became a historian and wrote “How Jesus Became God: The Exaltation of a Jewish Preacher from Galilee” is very illuminating:

https://www.npr.org/2014/04/07/300246095/if-jesus-never-call...

Excerpts:

During his lifetime, Jesus himself didn't call himself God and didn't consider himself God, and ... none of his disciples had any inkling at all that he was God. ...

You do find Jesus calling himself God in the Gospel of John, or the last Gospel. Jesus says things like, "Before Abraham was, I am." And, "I and the Father are one," and, "If you've seen me, you've seen the Father." These are all statements you find only in the Gospel of John, and that's striking because we have earlier gospels and we have the writings of Paul, and in none of them is there any indication that Jesus said such things.

I think it's completely implausible that Matthew, Mark and Luke would not mention that Jesus called himself God if that's what he was declaring about himself. That would be a rather important point to make. This is not an unusual view amongst scholars; it's simply the view that the Gospel of John is providing a theological understanding of Jesus that is not what was historically accurate.

Right at the same time that Christians were calling Jesus "God" is exactly when Romans started calling their emperors "God." So these Christians were not doing this in a vacuum; they were actually doing it in a context. I don't think this could be an accident that this is a point at which the emperors are being called "God." So by calling Jesus "God," in fact, it was a competition between your God, the emperor, and our God, Jesus.

“Islam” as a named religion with its own prescribed rituals and laws is specific to the message preached in Arabia in the 7th century.

“Muslim” is a more transcendent term that encompasses all the prophets mentioned in the Quran, as well as those not mentioned. Their creed and state of mind (absolute submission to God’s will) is the same, but they did not follow a religion called “Islam”. Earlier prophets and their followers prayed, fasted, and gave charity. Some even made the pilgrimage to Makkah. However, certain details of these rituals may have differed between them and today’s Islam, and between one another.

Even Muslims do not claim their religion is completely novel. The rituals may differ, but the creed preached by Muhammad (peace and blessings upon him) is the same preached by Adam, Noah, Abraham, Ismail, Isaac, Jacob, Joseph, Moses, Aaron, David, Solomon, John, Jesus, and countless other prophets (peace be upon them all): worship The One True God (Allah, Yahweh) with no partners.

As far as prayer rugs and other accessories, those are not actually part of our rituals as Muslims. Some people use them for practical purposes (prayer rugs help you avoid prostrating on dirt, asphalt, a potentially unclean carpet, etc. and prayer beads make it easier to keep count), while some others may have cultural reasons, and some just want to enhance their spiritual experience (e.g. incense and perfume).

Wait til you have a legacy system and a newer system and need to, among other things:

- Implement redirects from the old login screen to the new one - Keep sessions in sync - Make sure all internal and external users know how to clear cookies - Remind everyone to update bookmarks on all devices - Troubleshoot edge cases

My head is spinning after skimming the sections on shared memory, locks, mutexes, etc. Implementation and adoption would probably be a decade-long saga. Not to mention teaching folks when to use these and how to use them correctly.

In e.g. Elixir these are non-issues. Please, just give us declarative structs that are immutable by default (if they’re really needed, make constructors and mutability opt-in). Isn’t the trend already toward more FP in JS?

Why Elixir? 2 years ago

I work with Elixir full-time and agree with all of these. I just want to add:

- Elixir docs are top notch, both the existing docs for the language and its ecosystem, and the ease of generating your own docs for your projects and libraries.

- The only thing that is not currently top notch in Elixir is the Language Server and therefore IDE support. This will hopefully improve soon after the formation of an official Language Server team to unify previously disparate efforts (https://elixir-lang.org/blog/2024/08/15/welcome-elixir-langu...).

I mention the Language Server and IDE support because, IMO, it is the biggest __technical__ hurdle preventing widespread adoption. If you’re considering learning Elixir, I think now is a great time!

I’m almost 44 and becoming decent at writing Arabic poetry in the classical style. Along with intricate grammatical rules in the language itself, there are strict conventions for meter and rhyme.

I enjoyed reading and memorizing when I lived in Syria for 5 years (7th-11th grade), then had a hiatus until my mid-20s when I suddenly started reading and memorizing again, and added reading more explanation and commentary and criticism. I tried to write my own but it was mostly cringe.

Every now and then my interest in Arabic poetry has been rekindled. This year, I finally started feeling confident enough to share my poetry with not just with family and close friends, but also on social media.

I don’t have a formal learning method as I tend to learn by repetition and osmosis (same with programming), but a few tips:

- Examine and study other folks’ work, especially of those who are famous or whom you personally admire. Don’t just examine the works of art themselves, but also seek out any resources that can help you understand the underlying history, tools, conventions, etc.

- Balance that with learning via your own endeavors. You’ll probably do better working on things that actually interest you. Personally, I can’t imagine enjoying or doing a good job writing poetry on a subject that doesn’t excite me.

- Don’t be shy about seeking feedback. Earlier this year I wrote a poem I was very proud of, but a friend of a friend (a top authority in Arabic and a poet in his own right) picked it apart quite thoroughly. It was humbling, but I internalized the feedback and came back stronger and more confident.

I’ve been using Elixir professionally for a couple of years and honestly, the only area where Elixir is not top-notch is the language server, which runs the risk of alienating folks who hear the hype and want to try it out.

I’m optimistic that LS will finally be done right, and that should help convince those curious about Elixir to stick around and __actually__ use it.

It should also make it easier to sell decision makers on Elixir as a serious language.

Hi Bob, I haven’t completed the book yet, but I wanted to note I appreciate you making it available for free online. I do my best to support authors like you (I have the book in print, PDF, and Kindle editions) and encourage others to do the same. Thank you!

If it doesn’t break backward-compatibility there wouldn’t be a need to release a new major version (which very few people have the stomach for anyway).

I can only speak to Elixir. Elixir/Erlang/BEAM/OTP have less raw horsepower than, say, Rust, but they can potentially leapfrog “faster” platforms when under load due to predictable latency and almost linear scaling and system resource utilization.

I’ve developed with Elixir professionally for 2 years and it’s a really enjoyable language and ecosystem. So much thought has gone into the design of the language and its standard libraries, and that meticulousness has extended to most of the popular 3rd-party packages. Stability is great; I remember reading or hearing that there is no intent to ever make an Elixir 2.0. Devtools are great with the only major exception being IDE/LSP integration (still a WIP). The community is also less fragmented than other.

If the BEAM becomes a bottleneck, Elixir also lets you write NIFs (Natively Implemented Functions) in Rust (using Rustler) or other languages like Zig (using Zigler).

Are you trying to find a new role or build something for yourself?

Is an SPA actually required? You might be able to build what you need using tools that involve less mental and technical overhead. Take a look at htmx, UnPoly, Rails/Hotwire, Phoenix LiveView, and/or Laravel LiveWire. Or maybe even good old-fashioned server-rendered HTML if you don’t need to build something that’s highly interactive.

I’m not against people being billionaires if they pay a fair share of their wealth in taxes every year. The reality in America is that the tax system is lopsided.

Even in the lowest tax brackets, workers still have to deal with payroll taxes. On the other hand, if your income is derived from investments, you escape payroll taxes __and__ you pay less in capital gains taxes than you would in normal income taxes. In other words, we pay a higher share of our income that we earn from doing actual work than many billionaires do on passive income.

Not to mention all the loopholes tailor-made for billionaires and corporations.

Anyways, regarding the mechanics of trickle-down economics, concentrating more wealth in the hands of the wealthy is, from a morally neutral “let’s just grow our GDP” standpoint, bad for the economy. Folks who already have everything they need/want may, given a few more billion dollars, buy a mega yacht here or make a trip to space there, but most of it will be hoarded away or, worse, used to influence policy so they can rake in more billions. If you spread those billions among the less wealthy, they’re more likely to go out and spend it on necessities, which puts more money in the hands of people who need it, and so on. The faster that money circulates, the more GDP grows.

Source: https://en.m.wikipedia.org/wiki/Velocity_of_money

It’s shocking how many Americans can be persuaded to hand over their hard-earned money and worship the thieves at the same time. As if they’ll somehow be getting that money back.

hand wave away front-end state management as something that no longer applies

Does client-side state often need to exist independently of server-side state? I’m having trouble imagining a shopping cart or email draft being optimal UX-wise without the ability to resume on a different device.

For things like dropdowns and modals, you can bring in _hyperscript, Bootstrap, Alpine, or even CSS hacks (my preferred approach).

the rich and bountiful lands of JSX and TypeScript

One person’s richness is another person’s needless complexity.

JSX is cool when you first try it, but the novelty wears off (at least for me it did). There are superior templating languages (Django, Jinja, EEx, erb) that don’t require bizarre syntax such as nested ternaries, and they make it feel like you’re just using a slightly-enhanced superset of HTML (not to mention being able to use them to render things other than HTML).

As for TypeScript, with the checks stripped out at runtime, you’ll still need to validate and test the assumptions your typed code is making. Frankly, TS seems like busywork to me.

Finally, Progressive Enhancement is a thing with htmx. You might be able to have it with React, but then you introduce even more complexity into the build system.

I’m fairly sold on abolishing time zones, but arguing that they make a programmer’s job harder is not a compelling argument when we’re a small percentage of the population. Yeah, it’s annoying, but that’s just part of our job. What’s really important is the impact on the general population.

AlKhawarizmi lived in Baghdad and was head Astronomer of the House of Wisdom there. Persia and Mesopotamia (modern-day Iraq) were under one political entity, along with Arabia, the Levant (modern-day Palestine, Syria, Jordan, and Lebanon), Egypt, and others. Even today, many Muslims identify with their faith more than their race, ethnicity, or nationality.

“Sheafra” is the Arabic word for “Cipher”, which is, in turn, translated from the Arabic word “Sifr”, which means Zero.

One of the first detailed explanations of Zero was made by Persian Muslim polymath AlKhawarizmi, whose name went through multiple translations, eventually giving us the word “Algorithm”.

I don’t have much insight into htmx + Tailwind, since the last time I worked with Tailwind was like 8 months ago at my prior job - and even then I did very little styling work. With that said, it’s not really clear to me what the connection is between HATEOAS and Tailwind.

FWIW, for the app I’m working on currently, I’m outsourcing most of my styles to Bootstrap, while pushing hard for progressive enhancement via CSS hacks (for effects like expanding/collapsing menus and switching tabs). I’m using htmx when JS is enabled, and regular HTTP for when it’s disabled (the Django back-end renders partial or full pages based on request type). Bootstrap and htmx don’t really step on each other’s toes, and I don’t see why htmx + Tailwind to be different.

If in doubt, experiment!

When you say you want to build something simple with a few pages, you might be able to get by with something minimalist like Flask and maybe DataTables: https://datatables.net/

If you don’t expect to have scalability or real-time needs, I would not really recommend Elixir/Phoenix. The core language, dev tools, docs, and OTP are best-in-class, but there’s a learning curve, and the ecosystem has less mindshare than Python and Ruby.

I personally prefer Python/Django with htmx for client-side interactivity (if you need it), but if you want something better-integrated out of the box, you can’t go wrong with Ruby/Rails/Hotwire either.

Using a VPS is cheap and initially simple, but keep in mind you have to do more setup and maintenance on the OS, Web server, database, etc. yourself. I’ve had a great experience with DigitalOcean VPSs in the past, but for the app I’m building now, I am leaning toward using their managed app platform to minimize sysadmin/infra work on my part.