magnASCII.io Simone Magnaschi
Senior Full Stack Web Dev
Bookmarks tagged with #programming.
Show all

(11) A Philosophy of Software Design | John Ousterhout | Talks at Google -

John Ousterhout, Professor of Computer Science at Stanford University, discusses complex techniques on how to become a more confident coder. John is excited...
Saved on: 2023-10-25

The Grug Brained Developer

Tags: #programming
Saved on: 2023-10-25

Base64 Encoding, Explained

Base64 is an elegant way to convert binary data to text, making it easy to store and transport. This article covers the basics of Base64 encoding, including what it is, how it works and why it's important. It also shows how to encode and decode Base64 data in various programming languages.
Tags: #programming
Saved on: 2023-10-23

Choose Boring Technology

How to be old, for young people.
Tags: #programming
Saved on: 2023-10-02

Inside New Query Engine of MongoDB

Discussion on HackerNews and Lobsters. MongoDB has recently released a new query engine coming in version 7.0. I was one of the people working on this engine during my 2 years in MongoDB and I would like to share some technical details about it. Disclaimer: Prior to writing this article, I have contacted my ex-colleagues at MongoDB to ensure that it does not conflict with their plans. They gave me the green light, provided I send them the draft before publishing, which I did. They did not have any notes on it.
Saved on: 2023-09-21

Free for Developers

Developers and Open Source authors now have a massive amount of services offering free tiers, but it can be hard to find them all to make informed decisions.
Saved on: 2023-09-18

What I Have Changed My Mind About in Software Development

I really like this quote from Jeff Bezos: “Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in.” Lately I have been thinking about wha…
Tags: #programming
Saved on: 2023-09-11

Design Patterns in PHP 8 Series' Articles - DEV Community

View Design Patterns in PHP 8 Series' Articles on DEV Community
Saved on: 2023-09-08

Commit Mono. Neutral programming typeface.

Commit Mono is an anonymous and neutral programming typeface focused on creating a better reading experience.
Saved on: 2023-09-07

Benefits of separating core code from infrastructure code

When it comes to software design and software architecture, there are many theoretical approaches. One really concrete practice that is encouraged by almost all software design flavors is the separation of core and infrastructure code. This post will explore many of the benefits and challenges through a real-life, practical example, so that by the end you will have a better understanding of how and why any software system might implement this tenant of sustainable architecture.
Tags: #programming
Saved on: 2023-09-01

Hypermedia Systems

The revolutionary ideas that empowered the Web. A simpler approach to building applications on the Web and beyond with htmx and Hyperview. Enhancing web applications without using SPA frameworks.
Saved on: 2023-08-18

htmx ~ Locality of Behaviour (LoB)

Carson Gross explores the Locality of Behaviour (LoB) principle, which emphasizes making the behavior of code units obvious on inspection to enhance maintainability. He discusses the tradeoffs between LoB and other software design principles like DRY and SoC, offering insights on balancing clarity, abstraction, and maintainability in modern development.
Saved on: 2023-08-16

Testing without mocking frameworks.

Over the years, my coding practices have changed a lot. From hacking away until it works to TDD/BDD/DDD and everything in between. One of the biggest changes in my developer career has been when, why, and how I test my code. In particular, my view on mocking frameworks has changed a lot. A couple of years ago I was convinced I could not live without them, now I wish I could do just that. I've come to the point where I generally advise against the use of mocking frameworks. After a couple intera
Saved on: 2023-03-28

sarven/unit-testing-tips: Unit testing tips by examples in PHP

Unit testing tips by examples in PHP
Saved on: 2022-12-21

Steve vs Matt — How two developers approach the same problem | Laravel News

It's common to see two programmers who code the same feature differently. It's much less common for those two programmers to see eye-to-eye and remain friendly
Saved on: 2022-12-21

Hello, Video Codec!

In this post, we'll explore at a high level the key concepts and defining characteristics of video codecs. Then, to further demystify them, we'll even implement one from scratch in about a hundred lines of Rust.
Tags: #programming
Saved on: 2022-12-19

quine-relay/QR.rb at master · mame/quine-relay

An uroboros program with 100+ programming languages - mame/quine-relay
Saved on: 2022-10-06

Granular interfaces — Sebastian De Deyne

A few weeks ago a spec change for an application we're working on forced us to refactor part of the codebase. It was food for thought about the flexibility granular interfaces provide, and choosing the right abstraction at the right time. This is a short writeup on the thought…
Tags: #programming
Saved on: 2022-09-06

Patterns.dev - Modern Web App Design Patterns

Learn JavaScript design and performance patterns for building more powerful web applications.
Saved on: 2022-09-06

The mystery of “when women stopped coding” – the triketora press

NPR did a Planet Money podcast in 2014 posing the mystery of “When Women Stopped Coding”. The writeup online includes a striking graph of the percentages of women in different fields of…
Saved on: 2022-08-27

Why do arrays start at 0?

It's not the reason you think. No, it's not that reason either.
Tags: #programming
Saved on: 2022-08-25

DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together – @hgraca

In my last posts I’ve been writing about many of the concepts and principles that I’ve learned and a bit about how I reason about them. But I see these as just pieces of big a puzzle.  …
Saved on: 2022-08-17

“Code” 2nd Edition Now Available!

In a startling disruption of the space-time continuum — and a violation of the basic maxim of publishing that nothing is ever on time — the publication date of the 2nd edition of my book Code: The Hidden Language of Computer Hardware and Software was bumped up by 12 days. That means that the publication date is today and the book might be available from your favorite book vendor. (Or perhaps not quite yet.)
Saved on: 2022-08-08

Story Points Revisited

This is RonJeffries.com, the combination of new articles, XProgramming, SameElephant, and perhaps even some new items never before contemplated. Copyright © 1998-forever Ronald E Jeffries
Saved on: 2022-07-10

It's 1997 and you want to build a website - The History of the Web

You have a few options. How much time you got?
Saved on: 2022-07-06

Benchmarking serialization | PeakD

I benchmarked PHP's native serializer vs code export. You won't believe what I found!... by crell
Saved on: 2022-06-29

On the use of enums | PeakD

When should you use PHP enums, and when shouldn't you?... by crell
Saved on: 2022-06-29

Code vs. No-Code | Jason Morris

There was a conversation on Twitter this week that helped to clarify my thinking about something, and I wanted to share. There is a sort of tension between “code” and “no-code” (sometimes “low-code”) solutions. People who consider themselves software developers see people trying to use no-code solutions to do things that the no-code solutions are not good at, and they get frustrated that the capabilities of those tools has been overestimated.
Saved on: 2022-06-23

Running PHPStan on max with Laravel | Laravel News

Over the last few years static analysis in PHP, and more specifically Laravel, has become more and more popular. Follow this tutorial and start using it today
Saved on: 2022-06-21

Some Monolog logging best practices | Parthenon The Symfony SaaS Boilerplate

Logging can help to debug massively. Today, we'll go over some of the best practices for logging with Monolog I've learnt over the years.
Tags: #programming
Saved on: 2022-06-04

How do Video Games Stay in Sync? An Intro to the Fascinating Networking of Real Time Games.

Have you ever wondered how real-time games can keep multiple clients in sync even when there are large latencies between users? How can you see other players reacting to your actions near instantly…
Tags: #programming
Saved on: 2022-05-28

Much ado about null | PeakD

Null is problematic, but why? Let's see why, and let that guide us to new alternatives.... by crell
Tags: #programming
Saved on: 2022-05-16

Steve Schoger / User Interface Designer

Free HTTP Status Code Poster
Saved on: 2022-04-13

Hexagonal architecture and Domain Driven Design | Towards Dev

Introduction of the Hexagonal Architecture that implements the DDD (Domain Driven Design) introduced by Eric Evan in the “Bleu Book” : Domain-Driven Design: Tackling Complexity in the Heart of Software
Saved on: 2022-04-12

MonoLisa

A font family designed for software developers. Font follows function.
Saved on: 2022-02-15

Blog by Juliano Lima

I'd like to present five books that have changed my mind about software development showing me lots of concepts, techniques and tips. Let's see them and why I they were so valuable to me
Saved on: 2021-11-28

Power Fx: Open source now available - Microsoft Power Platform Blog

The preview release of Microsoft Power Fx is now available as open source on GitHub  You can now freely integrate this Excel-like, low code programming language in all of your own projects.
Tags: #programming
Saved on: 2021-11-18

The Dependency Injection Paradigm

Paradigm; a nice word that means “a theory or a group of ideas about how something should be done, made, or thought about” (Merriam-Webster). In software development we have them too. From the philosophy and history of science courses I’ve followed, I remember that scientists working with different paradigms have great difficulty understanding each other, and appreciating each other’s work. Paradigm Shifts An example of a paradigm is the theory that the sun revolves around the earth. To a certain extent this is a fruitful theory, and it has been used for thousands of years. There’s of course another paradigm: the theory that the earth revolves around the sun. This is also a fruitful theory, and it can be used to explain a lot of observations, more than the previous theory. Still, people got angry with each other for moving the earth out of the center of the universe. Paradigm changes, or shifts, occur when the old theory has been stretched too much. It becomes impossible to hold on to it. Then some people start to experiment with a completely different paradigm, one that sounds totally weird, but in the end proves to have more power.
Tags: #programming
Saved on: 2021-11-13

Culture matters

Saved on: 2021-11-09

Alan Kay on the context and catalysts of personal computing

Alan Kay — “father of personal computers" — is best known for his work on personal computing and for leading the team that developed Smalltalk.
Saved on: 2021-10-17

20 Things I've Learned in my 20 Years as a Software Engineer - Simple Threa

Important, Read This First You’re about to read a blog post with a lot of advice. Learning from those who came before us is instrumental to success, but we often forget an important caveat. Almost all advice is contextual, yet it is rarely delivered with any context. “You just need to charge more!” says the company […]
Saved on: 2021-10-08

Running in Production Podcast and Interviews

A site where folks talk about running small and large web apps in production. Topics include tech stacks and DevOps / deployment tips.
Saved on: 2021-09-23

How We Got to LiveView

I'm Chris McCord. I work at Fly.io and created Phoenix, an Elixir web framework. Phoenix provides features out-of-the-box that are difficult in other languages and frameworks. This is a post about how we created LiveView, our flagship feature.
Saved on: 2021-09-23

Where do types come from? — Matthias Noback - Blog

In essence, everything is a string. Well, you can always go one layer deeper and find out what a string really is, but for web apps I work on, both input data and output data are strings. The input is an HTTP request, which is a plain-text message that gets passed to the web server, the PHP server, the framework, and finally a user-land controller. The output is an HTTP response, which is also a plain-text message that gets passed to the client. If my app needs the database to load or store some data, that data too is in its initial form a string. It needs to be deserialized into objects to do something and later be serialized into strings so we can store the results.
Saved on: 2021-09-15

My Software Estimation Technique - Jacob Kaplan-Moss

Last time, I explained that, although estimating software project timelines is hard, you should do it anyway. With that background, I want to go into some detail and share the technique I use when I need to develop a project timeline. I don’t believe there’s a single “correct” technique; this is one system that works well for me. However, my system does have one critical characteristic that I believe any effective estimation technique should have: it captures both time and uncertainty.
Tags: #programming
Saved on: 2021-06-24

Software Estimation Is Hard. Do It Anyway. - Jacob Kaplan-Moss

It’s well established that estimating software projects is hard. This is true, but you should learn how anyway.
Tags: #programming
Saved on: 2021-06-24

An incomplete list of skills senior engineers need, beyond coding | by Cami

For varying levels of seniority, from senior, to staff, and beyond.. “An incomplete list of skills senior engineers need, beyond coding” is published by Camille Fournier.
Saved on: 2021-06-22

Writing better Regular Expressions in PHP • PHP.Watch

How to write more readable, self-explanatory, and effective regular expressions in PHP.
Saved on: 2021-06-16

What it means to run a monolith on AWS Lambda

A stable software development model combined with the elasticity of serverless solutions.
Saved on: 2021-05-31

The data model behind Notion's flexibility

Notion’s data model enables the product’s most foundational component: blocks. Through blocks, we allow users more flexibility over their information.
Saved on: 2021-05-19

Hosting SQLite databases on Github Pages - (or IPFS or any static file hoster) - phiresky's blog

I was writing a tiny website to display statistics of how much sponsored content a Youtube creator has over time when I noticed that I often write a small tool as a website that queries some data from a database and then displays it in a graph, a table, or similar. But if you want to use a
Saved on: 2021-05-03

When Objects Are Not Enough

Alan Kay mentions in a talk that the Smalltalk don't scale quite well to big teams and infrastructure. However, he had some ideas on how to make OOP scale.
Saved on: 2021-03-05

Testing your controllers when you have a decoupled core — Matthias Noback -

A lot can happen in 9 years. Back then I was still advocating that you should unit-test your controllers and that setter injection is very helpful when replacing controller dependencies with test doubles. I’ve changed my mind: constructor injection is the right way for any service object, including controllers. And controllers shouldn’t be unit tested, because: Those unit tests tend to be a one-to-one copy of the controller code itself. There is no healthy distance between the test and the implementation. Controllers need some form of integrated testing, because by zooming in on the class-level, you don’t know if the controller will behave well when the application is actually used. Is the routing configuration correct? Can the framework resolve all of the controller’s arguments? Will dependencies be injected properly? And so on. The alternative I mentioned in 2012 is to write functional tests for your controller. But this is not preferable in the end. These tests are slow and fragile, because you end up invoking much more code than just the domain logic.
Saved on: 2021-03-02

Does it belong in the application or domain layer? — Matthias Noback - Blog

Where should it go? If you’re one of those people who make a separation between an application and a domain layer in their code base (like I do), then a question you’ll often have is: does this service go in the application or in the domain layer? It sometimes makes you wonder if the distinction between these layers is superficial after all. I’m not going to write again about what the layers mean, but here is how I decide if a service goes into Application or Domain:
Tags: #programming
Saved on: 2021-02-25

Talk review: Thomas Pierrain at DDD Africa — Matthias Noback - Blog

As a rather unusual pastime for the Saturday night I attended the third Domain-Driven Design Africa online meetup. Thomas Pierrain a.k.a. use case driven spoke about his adaptation of Hexagonal architecture. “It’s not by the book,” as he said, but it solves a lot of the issues he encountered over the years. I’ll try to summarize his approach here, but I recommend watching the full talk as well. Hexagonal architecture Hexagonal architecture makes a distinction between the use cases of an application, and how they are connected to their surrounding infrastructure. Domain logic is represented by pure code (in the FP sense of the word), surrounded by a set of adapters that expose the use cases of the application to actual users and connect the application to databases, messages queues, and so on.
Saved on: 2021-02-23

Successful refactoring projects - Prepare to stop at any time — Matthias No

Refactoring projects A common case of refactoring-gone-wrong is when refactoring becomes a large project in a branch that can never be merged because the refactoring project is never completed. The refactoring project is considered a separate project, and soon starts to feel like “The Big Rewrite That Always Fails” from programming literature. The work happens in a branch because people actually fear the change. They want to see it before they believe it, and review every single part of it before it can be merged. This process may take months. Meanwhile, other developers keep making changes to the main branch, so merging the refactoring branch is going to be a very tedious, if not dangerous thing to do. A task that, on its own, can cause the failure of the refactoring project itself.
Tags: #programming
Saved on: 2021-02-17

Should we use a framework? — Matthias Noback - Blog

Since I’ve been writing a lot about decoupled application development it made sense that one of my readers asked the following question: “Why should we use a framework?” The quick answer is: because you need it. A summary of the reasons: It would be too much work to replace all the work that the framework does for you with code written by yourself. Software development is too costly for this. Framework maintainers have fixed many issues before you even encountered them. They have done everything to make the code secure, and when a new security issue pops up, they fix it so you can just pull the latest version of the framework. By not using a framework you will be decoupled from Symfony, Laravel, etc. but you will be coupled to Your Own Framework, which is a bigger problem since you’re the maintainer and it’s likely that you won’t actually maintain it (in my experience, this is what often happens to projects that use their own home-grown framework). So, yes, you/we need a framework. At the same time you may want to write framework-decoupled code whenever possible.
Saved on: 2021-02-17

Why I Built Litestream

Despite an exponential increase in computing power, our applications require more machines than ever because of architectural decisions made 25 years ago. You can eliminate much of your complexity and cost by using SQLite & Litestream for your production applications.
Saved on: 2021-02-12

About | Divio Documentation

Find the software documentation system for Divio. Includes comprehensive tutorials, how-to guides, technical reference and explanation. Learn more here.
Tags: #programming
Saved on: 2021-02-03

Software development topics I've changed my mind on after 6 years in the industry - Blogomatano

At some point, I realized I would've argued the exact opposite position on a lot of topics just a few years ago.
Tags: #programming
Saved on: 2021-01-24

Clean Application Development - Nomad PHP

Presented by Adam Culp @adamculp Presented on October 24,2013 No matter what level of development we are at in our careers we all face a daily battle to write good code for ourselves and others, deliver finished applications fast to satisfy business, and ensure everything is properly tested to prevent end-user fails. In this talk Adam Culp will discuss what “clean application development” is, and how it can help us win those battles. The talk will provide practical and usable examples to, integrate into your workflow, and continue to grow into good habits.
Saved on: 2021-01-19

Context switching costs more than we give it credit for. - Thinking Through

(4 min read) Batching things by function can skyrocket your productivity.
Saved on: 2021-01-18

Gitbar - Il podcast dei developer italiani

Gitbar è il podcast per sviluppatori italiani dedicato alla programmazione e allo sviluppo web. Ogni giovedì un nuovo argomento con brainrepo.
Saved on: 2021-01-15

It’s not legacy code — it’s PHP. Vimeo has been using PHP in production… |

In the last year, Vimeo developers have written backend code in lots of languages — PHP, Go, Ruby, Python, NodeJS, Java, C, C++, and a bit of Rust. In 2004, we started with just one: PHP. It was an…
Saved on: 2021-01-15

Build Your Own Text Editor

Tags: #programming
Saved on: 2021-01-10

Live Coding 12-Factor App

Emily Jiang performs live coding of building 12-factor microservices using MicroProfile programming mode and gets them running Open Liberty and Quarkus.
Saved on: 2020-12-20

Refactoring Am I Rent Stabilized

Revisiting the code of a five year old project.
Tags: #programming
Saved on: 2020-12-14

CloudConf 2020 Live Streaming

Registrazioni degli interventi live di novembre 2020...
Saved on: 2020-11-27

An Intuition for Lisp Syntax

Read Essays by Stepan Parunashvili
Tags: #programming
Saved on: 2020-10-26

Transparent Session Management with Sessionz - Nomad PHP

Sessionz is a new PHP library that adds a custom session manager to your application. On top of this custom manager, you can mix any number of specific handlers into a stack to deal with your data:- Write sessions out to the default, filesystem-based session store.- Cache session data in-memory for faster reads (and faster performance).- Encrypt stored data so it’s protected at rest. Synchronize data to an external storage system so multiple application servers can reference it.In this lightning talk I’ll cover both what Sessionz is (how it handles sessions transparently within your application), how it works (the SplStack implementation of callback handlers), and how you can extend it with your own custom handlers.
Saved on: 2020-10-26

(5) C Course (The Basics) - YouTube

Learn C++ by building a crossword construction program from scratch. Free and fun! 12 hours of video instruction plus exercises. See www.codingforcrosswords.com
Saved on: 2020-10-23

Casting JSON Columns to Value Objects with Laravel – Jess Archer

With the rise of JSON columns, it can be handy to safely cast to and from value objects.
Saved on: 2020-10-23

Managing technical quality in a codebase.

If there’s one thing that engineers, engineering managers, and technology executives are likely to agree on, it’s that there’s a crisis of technical quality. One diagnosis and cure is easy to identify: our engineers aren’t prioritizing quality, and we need to hire better engineers or retrain the ones we have. Of course, you should feel free to replace “engineers” with “Product Managers” or “executives” if that feels more comfortable. It’s a compelling narrative with a clear villain, and it conveniently shifts blame away from engineering leadership. Still, like most narratives that move accountability towards the folks with the least power, it’s both unhelpful and wrong.
Tags: #programming
Saved on: 2020-10-22

Readable Laravel | Spatie

In this **completely free** series, we'll explore best practices on how to write maintainable and readable code.
Tags: #programming
Saved on: 2020-10-21

PHP for Beginners: Data Handling - Nomad PHP

Join us as we discuss data handling in PHP
Saved on: 2020-10-13

Monolith -> Services: Theory & Practice - Kent Beck - Medium

Can’t answer that question. First, “quickly” is right out the window. You didn’t make this mess in a month; you’re not going to fix it in a month. Second, you want some benefit you aren’t currently…
Tags: #programming
Saved on: 2020-10-07

Are you a good Code Scout? - Nomad PHP

Speaker: Matt CockayneScouts are taught to be adventurous, considerate, thoughtful, effective, diligent, ingenious, thorough, earnest and effective! All of these qualities are ones that we should be striving for as a Developer.I will prove that being a Good Scout and being a Great developer are are the same thing. I’ll take you through the actions and attitudes taught to millions of kids aged 7-18 and how you can apply those practices to what you do in your code.
Saved on: 2020-09-30

Work on what matters | StaffEng

I’ve taken to using the word “energized” over “impactful.” “Impactful” feels company-centric, and while that’s important, “energized” is more inwards-looking. Finding energizing work is what has kept me at Stripe for so long, pursuing impactful work. - Michelle Bu We all have a finite amount of time to live, and within that mortal countdown, we devote some fraction towards our work. Even for the most career-focused, your life will be filled with many things beyond work: supporting your family, children, exercise, being a mentor and a mentee, hobbies, and so the list goes on. This is the sign of a rich life, but one side-effect is that time to do your work will become increasingly scarce as you get deeper into your career.
Saved on: 2020-09-25

A simple recipe for framework decoupling — Matthias Noback - Blog

If you want to write applications that are maintainable in the long run, you have to decouple from your framework, ORM, HTTP client, etc. because your application will outlive all of them. Three simple rules To accomplish framework decoupling you only have to follow these simple rules: All services should get all their dependencies and configuration values injected as constructor arguments. When a dependency uses IO, you have to introduce an abstraction for it. Other types of objects shouldn’t have service responsibilities. Contextual information should always be passed as method arguments. Explanations Rule 1 Following rule 1 ensures that you’ll never fetch a service ad hoc, e.g. by using Container::get(UserRepository::class). This is needed for framework decoupling because the global static facility that returns the service for you is by definition framework-specific. The same is true for fetching configuration values (e.g. Config::get('email.default_sender')).
Saved on: 2020-09-12

Violating the Dependency rule — Matthias Noback - Blog

I write about design rules a lot, but I sometimes forget to: Mention that these rules can’t always be applied, Describe when that would be the case, and Add examples of situations where the rule really doesn’t matter. The rules should work in most cases, but sometimes need to be “violated”. Which is too strong a word anyway. When someone points out to me that I violated a rule, I’m like: Wow! I violated the rule? I’m so sorry! Let’s fix this immediately. Whereas in practice it should be more like: Yeah, I know that rule, but it makes more sense to follow that other rule here, because […]. In other words, pointing out that a certain rule has been violated should not be a sufficient reason to adhere to that rule. My favorite example is “But that violates SRP!” (Single Responsibility Principle). Whoops, I wouldn’t want to do that! Or would I?
Saved on: 2020-09-08

Refactoring PHP - Christoph Rumpel

I've been programming in PHP now for almost ten years, and if there is one thing I learned over this period, it's that readability and simplicity are the keys for maintainable and sustainable code. Every first attempt to write code should be about making it work. Only after that, you should take some time to refactor. This is when I aim for readability and simplicity. Today I see refactoring as one of my main skills. In this post, I share with you my refactoring practices for PHP.
Tags: #programming
Saved on: 2020-09-03

MIT 18.S097: Programming with Categories

In this course we explain how category theory—a branch of mathematics known for its ability to organize the key abstractions that structure much of the mathematical universe—has become useful for writing elegant and maintainable code. In particular, we'll use examples from the Haskell programming language to motivate category-theoretic constructs, and then explain these constructs from a more abstract and inclusive viewpoint. Hands-on programming exercises will be used to demonstrate categorical ideas like 'the universal property of products' in working Haskell code.
Saved on: 2020-09-03
❤️
</>
2025