OPRETO BLOG

Content Addressing: Marvels & Magic

Content Addressing: Marvels & Magic

4 minute read

The technology of Content Addressing is marvellous. It is, ex post facto, a simple and powerful concept, demonstrably elegant and the basis for many of the most interesting and powerful technologies of the past two decades. I have already written about Why I love the InterPlanetary File System, and touched on Content Addressing in my post about Installing and Running an IPFS node, but it is constantly remarkable to me that this approach underpins blockchain networks like Bitcoin, version control systems like Git, and file distribution networks like BitTorrent as well. Content Addressing has changed the way we interact with and share key data, but I don’t think it gets the recognition it deserves, as a seminal building material of the modern Internet. Luckily, there is one surefire way in 2023 to communicate just how cool something is - describing it in terms of a Dungeons & Dragons tabletop roleplaying game! Let’s imagine each of my favorite four modern software technologies,...

The Scaling Paradox

The Scaling Paradox

7 minute read

Companies like Google, X (Twitter), Spotify, and Atlassian have created very popular and brilliant product lines, and often embody Agile, DevOps, and software architecture best practices. Yet, the quality of their products has witnessed noticeable erosion. It’s called the Scaling Paradox, and a large degree of it is an unavoidable byproduct of scale and success, but some organizations handle it much better than others. In this post, I’ll discuss my barometer for software quality and briefly analyze companies that are failing and others that are succeeding at building good software. The Quality Barometer The Software Quality Barometer is fundamentally anchored in a feedback-driven approach, with customer sentiment as its core indicator. At its core, this barometer is not just a set of quantitative metrics; it’s a dynamic, adaptive framework that prioritizes understanding user needs and frustrations. From a user experience standpoint, the barometer mandates a clean, simple, and ef...

Solve It In Software

Solve It In Software

3 minute read

The philosopher Bill Rapaport identifies four great insights of computer science, culminating with the Church-Turing thesis, which says that any real-world computation can be translated into an equivalent Turing machine program. The idea of universal hardware is incredibly powerful. It substantially decouples the work of building computers, and of iterating on their efficiency, from the work of doing computations. Once the computer is built, provided it is fast enough, whatever your problem is, we can solve it in software. In her notes on Charles Babbage’s Analytical Engine, Ada Lovelace famously saw beyond number crunching and imagined computers doing all sorts of things for people, provided the right data representations and algorithms. Of course, this has turned out to overwhelmingly be the rule: the vast majority of what computers do today is difficult to mentally map back onto operations in the ALU. I have understood the machine down to its semiconductor physics, and yet even ...

Building Trust in Remote Agile Teams: Best Practices from Opreto

Building Trust in Remote Agile Teams: Best Practices from Opreto

4 minute read

The heartbeat of an Agile team is its people, and trust is the rhythm that binds them. It isn’t just about believing in each other’s capabilities but about fostering a shared vision and mutual respect. At Opreto, we’ve recognized that trust is the bedrock of every successful Agile team. Whether our teams work in person or are separated by thousands of kilometers, this trust remains pivotal. Through our journey, we’ve discovered practices that nurture this bond, ensuring cohesion and drive, regardless of distance. We’re excited to share the methods that have solidified trust within our teams, leading to consistent excellence. Trust isn’t merely a byproduct in the Agile framework—it’s foundational. The very principles and values that underpin Agile emphasize transparency, respect, and collaboration. Trust is the channel that brings these principles to life, influencing every interaction, decision, and outcome. When trust is present, teams are empowered to perform at their peak, leadi...

Agile Software Development is a Horse

Agile Software Development is a Horse

8 minute read

As part of the struggle of being the founding partner of a new company in the 2020s, there is the everpresent looming question of how to market yourself. This is true both of yourself as an individual - as an executive you should embody and represent at least some slice of the value of my company’s meta on LinkedIn and the whole shebang; and you need to know how to position your company in order to attract new clients and feed yourself reliably over the long term. The sales must flow. We have a special marketing problem at Opreto that we share with any agile software development agency trying to work in the agile way: the customer’s expectations for what they are purchasing are rarely aligned with the way we work, and we often need to communicate a paradigm change before our value becomes truly apparent. In order for us to be ultimately salable, we must bring them somehow completely onside before working together, changing hearts and minds as part of a larger sales process. In orde...

The confluence of UX and DX for API Design

The confluence of UX and DX for API Design

7 minute read

Do you know what happens when a group of people connect to a Chromecast device through Spotify? Nobody knows. The outcome is evenly distributed between wiping your queue, playing something random from your device, connecting only a subset of the group to the device, moving a random group member’s queue onto your device, or establishing a group connection as expected. It’s a big User Experience (UX) problem because it breaks the Principle Of Least Astonishment (POLA), among other things. In fact, I’ve taken the liberty to mock up a revamped Spotify user interface for Chromecast group sessions, free of charge: The new UI does nothing to fix the broken functionality but improves the UX by making it clear to the user that anything could happen if any UI element is interacted with once the session begins. It also makes it clear that the connection may or may not be established at all. You’ll sometimes even hear the familiar “ding” on the target device, and the app will tell you it’s ...

Software Bloat: The Red Queen's Race

Software Bloat: The Red Queen’s Race

6 minute read

For decades, computers have been growing in power at a meteoric pace, and the army of programmers writing software for them is now twenty-eight million strong. So why does it feel like the applications we use every day—not even the brand new, bleeding-edge stuff, just basic things we’ve had forever, like word processors and e-mail clients—are slower and clunkier than ever? “Well, in our country,” said Alice, still panting a little, “you’d generally get to somewhere else—if you run very fast for a long time, as we’ve been doing.” “A slow sort of country!” said the Queen. “Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!” By 1987, the distinction between microcomputers and their larger cousins was beginning to blur, as the micros became increasingly capable. Geoffrey Welsh opined in the Toronto PET Users Group newsletter that the line could be drawn at the new ge...

The AI Tsunami Threatening Google

The AI Tsunami Threatening Google

2 minute read

Google has always been the gateway to content visibility on the internet, making optimization for Google Search a golden rule in content creation. But today, Artificial Intelligence is changing the game, and it’s time for Google, and all of us, to sit up and take note. Only a few months ago, getting noticed by Google was simple. You’d draft your content, publish it, sprinkle in some links, and just like magic, Google’s search crawlers would find you. For brand-new domains, a nudge to Google, a request to index the site. It was dance steps that everyone had learned, and it worked. But things are changing fast. Artificial Intelligence, particularly a flavor called GPT, has changed the face of content creation. People are using AI to turn out articles, blog posts, and more at an astonishing speed. This year, in particular, has seen a staggering surge in content creation, largely thanks to our AI-using friends. There’s a ton of speculation that AI will be the thing to knock Google of...

Installing and Running an IPFS Node

Installing and Running an IPFS Node

5 minute read

IPFS, the InterPlanetary File System, might evoke grand images of cosmic networking, but its true significance lies in ignoring topological boundaries altogether and making them irrelevant. While the name might come off as grandiose, it emphasizes IPFS’s capability to create a global, decentralized network where data can be stored, accessed, and shared completely independently of considerations about physical location. The underlying technology becomes secondary, as content-addressable storage takes center stage in ensuring the sanctity and robustness of the system. Content addressing is a core concept in IPFS that plays a crucial role in its functioning: instead of relying on traditional hierarchical file paths and domain-based naming, IPFS identifies files based on their cryptographic hash. Every file in the IPFS network is assigned a unique hash derived from its content. This hash is used as the file’s address, making it immutable and resistant to tampering. In the digital age, ...

Why I love the InterPlanetary File System

Why I love the InterPlanetary File System

8 minute read

IPFS (InterPlanetary File System) is a decentralized, peer-to-peer protocol that redefines how we handle data on the internet, enabling us to break free from reliance upon tech giants like Google and Amazon for hosting our data. By adopting a content-addressed storage approach and eliminating the traditional server-client model, IPFS offers a more independent and resilient solution for storing, sharing, and accessing information online. I run a dedicated node for the InterPlanetary FileSystem, and you should too. In another post, I will describe the technical setup, and some of the experiences I’ve had and lessons I have learned from the last six months of participation in the network. In this post I would like to discuss my rationale and to describe some of the dynamics of the greater technosphere that drove my own decision to dedicate my own storage, bandwidth and processing power and my own time and expertise to the task of participating in a headless, notionally unbreakable, d...