What role can Elixir play in reclaiming or building a better internet?

Hoarders are going to hoard. The world will be fine as long as there is still healthy amount of social mobility. I think the core of Aleksei’s point is that our job as hackers is not to go to the street, it is to evolve the reality, so the reality that beget those draconian laws no longer exist.

3 Likes

I took a look at ATProto and would be interested in working with it, but one blocker for me is that all accounts ultimately depend on the centralized Bluesky DID PLC directory. Bluesky recently accepted VC funding, which makes me think the incentives are going to be strongly towards keeping the platform closed.

2 Likes

Well, yes and no. Yes, our job in not to go all-street. No, I don’t believe the draconian laws are going to slim.

I have an experience living under 5 different regimes (Retiree USSR / Baby Russia / Communist Greece / Germany in Dotcom Bubble / Socialist Spain.) And I came to conclusion the only goodness I can bring to society is to enforce OSS everywhere I worked, teach, help, mentor. It’s all individual. Personal. It’s all absolutely orthogonal to what the regime does en masse.

I think, it brings more value to explain what first derivative means besides this idiotic explanation from lectures at the institute to some humanitarian person rather than to protest against anything. We have a wording in Russian “переведи бабушку через дорогу” which means “take the elderly woman across the street” and is roughly used to emphasize the goodwill action in the wild.

Helping one person is way more valuable than trying to fight the whole regime. And the worst regime ever still leaves a room for good deeds.

3 Likes

Yes, this is the big question: whether the network can successfully federate before the values of the company collapse under VC pressure (inevitable IMO). I want to emphasize that my own expectation was that they would fail, but thus far I have been absolutely overjoyed to watch people work hard to prove that expectation wrong.

WRT the directory specifically, they are transferring it to an independent entity. They are essentially building a new ICANN.

Skepticism is well deserved but thus far these people have largely done the right thing and I think it’s also important that we encourage and support that. There is a good timeline here.

2 Likes

We have similar proverb in Chinese. 勿以恶小而为之 勿以善小而不为. My rough translation: Do not allow yourself to dab in evil deeds because they are small; do not be lazy from making good deeds because they are small too.

Also, goodwill actions driven from the above will not be pure. Funny story: when I was a kid, I used to fight other kids for the right to take the elderly woman across the street. My school gave everyone a quota to meet.

3 Likes

Wow, I can’t believe I missed this thread… This is something that has been on the back of my mind for a long time (when I got to know RSS feeds) and back again when I started to learn Elixir.

This topic, and especially decentralization/federation, has always captured my attention, and it resonates with me even more these days. I think my country (Brazil) has been a prime example of political persecution in recent years, so this pops into my mind almost every week when reading the news.

You can’t really fix something with tech that most people don’t see as broken

IMO, this is the big issue; the reality is that people are choosing to trade freedom for convenience every day. But this is part of a bigger/ broader discussion I’m not feeling like having.

1 Like

As much as we like to tell ourselves we can change the world with code, history has not shown many such examples apart from “hackers” like Zuck (who stole the idea and part of the implementation from another person just to rub it in) using tech for their own ends.

Our skills don’t mean much if tomorrow they get criminalized or gated behind draconian licenses. And overnight the old-school censors of thought (that all of us who remember even just two years of communism know about) will be back. People love nothing more than telling others what to think.

I don’t share the optimism I am seeing here. If I manage to crawl out of the hole in my life I have ideas how to improve the internet as a whole as well but again, the internet is just series of devices. A regime can take over ISPs and only allow “approved” traffic.

What are we going to do then? Rediscover HAM radio? That can be tracked as well.

I am not saying the bad guys are omnipotent. They are often quite incompetent even! But their game is to gradually take over and start tightening the hold and NOBODY has done anything to stop their super slow, obvious and technically easy to counter strategy.

What makes you all think the next 1-5 years will be suddenly different? Barely anyone lifted a finger to help in the last 20 years.

3 Likes

It is a much longer game than that. What has happened repeatedly in the history is:

  1. Authoritarian took over a state
  2. Smart people fled said state
  3. Said state lose out in global competition due to the lack of smart people
  4. Said state collapsed because at some point it could not fool its citizen about its strength any more

Each stage may take decades.

1 Like

That doesn’t make it ok or that we should accept it or not try to do anything about it..

The thing is the world is not fine. I shared a video with our senior mods a while back as I was concerned about the impact of AI on dev jobs and how that could directly impact a large number of people in our community, unfortunately it looks like the video and his account are no longer available. IIRC the person is saying he’s tired (of living) because it feels like he’s not living and he feels like he’s not lived for a very long time - with him constantly having to make choices between things like either being able to afford to take his children out or to fix things around the home. It’s a similar story all over right now - young people can no longer afford to buy homes, people are having to choose between heating their homes and eating, and the rest of us seem to be getting ripped off (profits of supermarkets and oil companies have tripled here in the UK since the pandemic).

Most of us in the tech space are somewhat shielded - for now anyway. In all my life I have never witnessed times as uncertain as these. It’s very worrying, but to tie this back into the topic, when things get worse (which seems likely) the need for a free internet is going to be more important than ever.

I believe that’s what makes you a bit overworried :slight_smile:

I had. Imagine for once the times when your whole fatherland collapses, and say Manchester proclaims independence. I by no mean devalue your worries, but trust me, the cruel govt and tough laws are not the scariest occasion ever.

Define “free.” Even in USSR we have had FIDO over landline. Here in Spain I use torrents to download stuff I paid for before (due to many changes in my living location I left behind a ton of VHS, CDs, DVDs, books etc.) I never grab something I didn’t pay for, but for what I once bought I tell the authorities to go to hell with their “torrents are punished” stuff. I just don’t care. Once they came for me. I printed logs for my home server for the days in question (5kg of paper approx) and defended myself in the court in Spanish (which I honestly speak twice as bad as Elixir.) I outchattered them with infinite number of cross-references to my logs, and whatnot.

In general, it’s always better to live in great climate under smart humane govt. And frankly I am pretty sure the climate is more important, because one cannot outsmart a rain.

2 Likes

Accepting is a privilege enjoyed only by paying customer or the boss. I cope with it when I can, or vote with my feet when I no longer can. OK, vote with feet is also a privilege many do not enjoy. Life is tough.

I am skeptical about any activism because it is a game that favor dirty players. Play fair and die a martyr, or play dirty and become the new dark lord?

3 Likes

Ahem… I cannot be skeptical about activism more, but I don’t see any correlation about activism and fair play whatsoever. There is a huge room for playing fair and be a complete passivist (should I have used the word “idle” here?) in regard to any crowd actions. I mean, just eschew anything where your vote does not matter and put all the spared effort to something what really needs your skills and power.

1 Like

This just hit DT and looks interesting (not had a chance to look at it any detail yet)…

An open-source communications hardware & software initiative empowering the public to connect across the world by bouncing signals off the Moon—and more!

A New Frontier for Ham Radio

Bouncing signals off the Moon—known as Earth-Moon-Earth (EME) communication—has long been the ultimate challenge for radio amateurs. It required large antennas, expensive equipment, and accurate manual pointing and tracking. We try to bring this down to Earth, providing all the tools needed to experience the thrill of space communication, with an open source software-defined phased array.

Open-Source Hardware

Expected to ship: March 2026.

Our first kit is a low-cost digital phased array, with high transmit power and excellent receive sensitivity. It supports flexible transmission modes across any 40 MHz bandwidth in the C-band (4.9–6 GHz).

Array Development Kit

With a scalable architecture, you can pick an array size and grow later.

Quad: A Software-Defined Radio Tile

Single Tile SDR

13 cm

Price: $49 - 99 (TBD)

Overview

This 4-antenna SDR tile designed for arraying. Drop-in compatible with Raspberry Pi pipelines (GNU Radio, Python/C++, SoapySDR) .
Useful as a standalone SDR or as a building block for larger phased arrays.

Key features

  • Frequency: 4.9–6.0 GHz (C-band), full duplex
  • Per-antenna bandwidth: 40 MHz; 8+8-bit I/Q
  • Tx power: 1 W per antenna • Rx NF: ~1.2 dB
  • Polarization: RHCP (Tx), LHCP (Rx)
  • MEMS TCXO • Jitter ~1.4 ps
  • FPGA: Lattice ECP5 • Latency < 1 ms
  • Power: 12 V DC (≈25 W peak)

Standalone applications

  • General-purpose 4×4 MIMO Software-defined Radio
  • Fox-hunting, direction of arrival (DOA), RF exploration
  • Open Wi-Fi router, Open 4G/5G base station
  • Drone HD links, robotics communications
2 Likes

Anyone who is interested in smart contract development — I can build tools for creating smart contracts on the NEAR blockchain.
If this is something you’re interested in, please participate in the thread/poll.

NEAR Protocol Documentation | NEAR Documentation

And if you have any questions, I’ll be happy to answer them!

1 Like

This is an interesting discussion with a lot of sidebars, but thinking about the original question of the topic, I’ve always wanted REST to actually work.

REST is a beautiful idea. It takes advantage of how the web was actually designed as a “web of documents” and turns it into something that can be used to build a sort of mesh of applications that don’t feel like they have any clearly defined boundaries between them.

The problem with REST and why every “REST” app today is just a bespoke API serving JSON and not a walkable resource graph that any other application can automatically integrate with is because REST is actually really hard to get right. I feel like I understand it pretty well, but I’ve never actually built a decent REST api. And ultimately, REST only has value if lots of other apps are built with it because otherwise, you can’t integrate with them by automatically walking their resource graphs.

I think Elixir could actually solve this problem though.

Integration with third party services is the biggest PITA in professional web dev (next to the customer continuing to tell you that they cleared their cache when they 100% did NOT). This is because most APIs were built with a tight deadline, few resources, and even less design thought, so they generally suck. And there is no standard approach to integrating with a third-party service. If Elixir could enable something like REST but in a way that is actually feasible for the industry at large to adopt and get right, then it would make building and sharing web apps of any kind a lot easier for everyone.

Websockets have the ability to simplify these integrations by making the api malleable. If I could connect to a public websocket to integrate with a service and just send and listen for certain messages in a certain shape, I wouldn’t have to read through 10000 pages of poorly written user guide documentation or swagger api docs or write a parser for their whole resource tree. I wouldn’t have to bother with webhooks or some other kind of stateless event handling architecture. I would just need to know which subprotocol they use, how to authenticate if at all, and the shape of the one or two messages I care about for the app I’m building.

Websockets and HTTP{2|3} can’t create this kind of mesh of applications on their own though because making them reliable is just as hard as designing a proper REST api. This is where Elixir comes into the picture. The self-healing capabilities of the BEAM and the simple concurrency primitives in Elixir would make these usability and reliability problems feasible to solve for practical applications. If every integration was just a GenServer that sent and received messages over a websocket with a standard URL naming convention, then pretty much every third party integration would look almost exactly like this:

def start_link(opts) do
  GenServer.start_link(StripeIntegration, %{}, opts)
end

def handle_info({:stripe_api, {:payment_approved, %StripePayment{} = payment}}, state) do
  {:noreply, record_payment(state, payment)}
end

def handle_info({:stripe_api, msg_i_dont_care_about}, state) do
  {:noreply, state}
end

The business logic for what you do with that integration would ofc be as complicated as it always was, but that’s the point. This would allow us to focus on actually doing something useful with the integrated service instead of spending 75% of the sprint figuring out how to get a %StripePayment{} struct into our service layer.

There have already been efforts to define specific subprotocols to enable these kinds of app-app communications such as wamp but ultimately, handling websockets in most languages ends up falling short due to the hidden difficulty just like REST did, so we need a language and tools that are capable of abstracting away the reliability aspects of it. Because in order for it to work as a universal integration protocol, it needs to be easy to use for everyone. Even that one guy on every team who deploys on Saturday. :slight_smile: