Elixir v1.20 released! Now officially a gradually typed language: Elixir type checks every single line of code, finding bugs and dead code, without developer overhead (no typing signatures) and extremely low false positives rate. Plus a faster compiler! Links and reports below.
Much of the dysfunction you find in organizations, and most of the problems you find in software development, come from the fact that people—engineers in particular—believe that complex systems (in the Cynefin sense) can be understood and controlled. They can not. You cannot predict how a complex system, be it organizational or software, will behave. Put another way, a metric-focused analytical approach to improvement or control does not work and never will work. Metrics are always weak indicators, too focused on a single aspect of the system as a whole, and actions taken on those metrics are always unpredictable at the system level. At best, you can observe the system and continuously adapt to the inevitable surprises.
There is a connection between complication and complexity, of course. Simpler complex systems are easier to manage than complicated ones. Good architecture _should_ move you towards simplicity. No architecture, however, resolves the inherent complexity of a large software or organizational system. The best it can do is reduce the complexity.
LLMs (and many of the people who use them) do not understand architecture. Consequently, LLM-based code generation usually results in overly complicated, hard-to-manage solutions. To my thinking, you cannot use an LLM effectively in a production environment unless you are able to review and refactor the generated code through an architectural lens. Being a "great coder" is not sufficient. You want to keep your job in an AI world? Learn software architecture.
<rant> A periodic reminder that Sprints, Backlogs, Daily Scrums, Scrum Boards, Scrum Masters, Product Owners, Points, Velocity, PIs, etc., have NOTHING AT ALL to do with "Agile." Agility comes from working small, delivering frequently for feedback from actual customers, and adapting based on that feedback. It has to do with teams working in whatever way they see fit to get stuff into the customer's hands as quickly as possible and acting on the feedback without bureaucratic obstacles. Any way that you can accomplish that is fine. All that garbage I listed in the first sentence just gets in your way.</rant>
@igorvfil@mikehostetler Anyone with experience with a functional language will pick it up quickly. For example Clojure is very similar to Elixir in terms of semantics, so you have to learn only syntax.
Electron is everywhere until observed/measured is the worst myth in quantum mechanics, spread by so-called science YouTubers who oversimplify everything for clicks.
They make it sound like consciousness makes things come into reality. First of all, in Quantum Physics, "observed" does not mean some conscious being watching it.
In Quantum Physics, observed means interaction. Interaction with another particle like a photon, electron, or anything that exchanges energy or information.
Come back to our main topic.
The electron is not everywhere until observed or measured.
First we need to know, what actually is electron?
Electron is nothing but localised excitation in electron field at some location of space time fabric.
Electron is not a tiny ball.
Now you might think, what is the electron field?
Electron field is energy configuration at every location of space-time fabric (x, y, z, t).
x, y, z are Spatial dimensions
t is the Time dimension.
There are other fields also:
- Electromagnetic (EM) field
- Higgs field
- Many more
Photon is excitation in the EM field.
Mass arises due to excitation in the Higgs field.
The electron field itself is everywhere, but the excitation, that ripple which represents one electron, is not spread across the entire space-time fabric.
When we talk about where the electron might be, we don't talk about its location. We talk about its wave function.
Wave function is not something physical. It is a mathematical function that tells about the probability amplitude of finding the electron at each position if you were to check.
For example:
You visit three stores:
- Grocery store
- Medical store
- Electronics store
You come back home and realize you left your wallet in one of those stores but don't know which one.
You assign probability of finding the wallet to grocery, medical, and electronic stores.
We all know probability formula:
P = number of favorable outcomes / total outcomes
So P = 1/3 (33.3%)
You go to the electronics store and check the CCTV and find out this is not where you left your wallet.
Now probability of finding the wallet at the electronics store becomes 0.
And for the medical and grocery stores, it becomes 1/2 (50%) because the number of total outcomes decreased from 3 to 2.
Now you go to the medical store and find your wallet there. That means probability of finding your wallet at the medical store becomes 1 (100%) and for the grocery store it becomes 0, because there is no way you can find your wallet in two places at once.
That’s exactly how wavefunction collapse works.
Before measurement, the electron’s position is uncertain, it’s described by probabilities.
Once you measure it (meaning once it interacts with something), the probability at that point becomes 1, and everywhere else becomes 0.
You didn’t summon the electron into existence; You just forced the field excitation to reveal its position through interaction.
Electrons aren’t 'everywhere until observed', they’re localized excitations in a field. We just don’t know where until they interact.
No consciousness. No magic. Just physics.
@obie@gyrerenwick@jasonfried@dan_manges@obie if you get the job and need a Ruby/Elixir lead engineering please let me know. You did a presentation on my Ruby library, wisper, in the past 🙏
Last week, I received a box full of the new printed book "Architecture for Flow" by Susanne Kaiser.
I hoped Susanne would receive hers before I posted, but you need to know it's available:
Order from InformIT(.com) now and from Amazon with 1-2 day delay, which is likely because it's selling like hotcakes:
#8 in Software Design & Engineering
⭐️⭐️⭐️⭐️⭐️
Order yours today!
GenAI isn't just a technology; it's an informational pollutant—a pervasive cognitive smog that touches and corrupts every aspect of the Internet. It's not just a productivity tool; it's a kind of digital acid rain, silently eroding the value of all information.
Every image is no longer a glimpse of reality, but a potential vector for synthetic deception. Every article is no longer a unique voice, but a soulless permutation of data, a hollow echo in the digital chamber. This isn't just content creation; it's the flattening of the entire vibrant ecosystem of human expression, transforming a rich tapestry of ideas into a uniform, gray slurry of derivative, algorithmically optimized outputs.
This isn't just innovation; it's the systematic contamination of our data streams, a semantic sludge that clogs the channels of genuine communication and cheapens the value of human thought—leaving us to sift through a digital landfill for a single original idea.
@_m_b_j_ we can manage uncertainty, as you say, by "starting" small experiments based on coherent hypothesis. If the experiment is successful do more iterations. We know least now, discover by doing 👍
Software development in a nutshell:
People simply do not like uncertainty, and thus create an elaborate tree of (self-)deceptions that turn a raw, at times even unknown, probability into:
A mostly emotional driven decision.