A typical onboarding experience: documentation goose-chases. (Read this one, it's hilarious)
A devcontainer is executable documentation for all the installations, libraries, tools, etc etc that are needed for day-to-day development on the project. @avdi#QConPlus
Does your app need a Redis instance, and a particular version of Postgres with extensions installed?
Put them in the devcontainer! @avdi#QConPlus
me: Please don't make me install that on my laptop.
Besides, some other project needs a different version.
"I haven't had to touch a language version manager since I started using devcontainers, and let me tell you, I do not miss it." @avdi#QConPlus
@avdi Coud-based development is a thing now, and it's only going to be more of a thing.
Devcontainers work locally AND in the cloud. @avdi#QConPlus
@avdi If you want people to contribute to your OSS, give them a devcontainer that runs the tests locally immediately. @avdi#QConPlus
@avdi DO NOT try to use your deployment container as your devcontainer. They have very different needs!
Deployment container: thin, locked-down.
Devcontainer: full of tools, changes often, ports open. @avdi#QConPlus
@avdi "There are certain techs that when they get adopted
change the development state-of-the-art.
dvcs
ThenvCI and CD
In five years, we'll laugh about how it was normal to spend days getting our laptop set up before we could make our first commit to a project." @avdi#QConPlus
@PhillipaAvery@netflix In the Startup and Growth phases, it's all about velocity. In Maturity, it gets interesting. We need stability without killing velocity.
@PhillipaAvery@netflix In renewal/decline, parts of the software need stability while other parts need velocity.
(I missed the cool picture, it was pretty great)
Today at #QConPlus , @girba shows graphs that reveal hidden dependencies in code.
Somehow this code reveals its own properties and relationships in custom-made developer experiences
Glamourous toolkit: gtoolkit.com
"empowering developers to create their own tools for every one of their problems" @girba#QConPlus
This is a superpower of developers: we can craft our own work environment.
For example, when viewing build logs: as you find a new problem, add some custom highlighting so that next time it jumps right out at you.
Anyone who says to you “this architecture is universally applicable”
is probably selling something,
and not doing a very good job at selling something.
Don’t use event-driven architecture for a small system or for an exploratory spike.
“learn what you’re trying to do before you elaborate your architecture.” @tlberglund#DevoxxPL
Databases don’t go away when you’re using events.
If nothing else: when you need lookup by multiple keys, databases are necessary views on the system of record (which is the event log).
Adding people scales at best linearly upward, at worst geometrically _downward_.
Two things you must constantly seek in order to get more done with more people:
1. "Constant pursuit of force multipliers"
Instead of adding more people to the same task, change the task to be done.
Develop more-complex internal structures, such as tooling teams that facilitate many development teams.
It's a holiday, I get to do what I want, so let's see what else is in the CSS 2.1 Spec!
It's time for backgrounds and fonts...
background-color is a friendly property. Use it even when you also specify the image, in case the image doesn't load/hasn't loaded.
Defaults to 'transparent' so the stuff behind it shows through.
The background fills the margins and the borders. (It shows under dashed borders)
background-image: url("where-is-it.jpg")
makes a picture show.
How big the picture is depends on the intrinsic properties of the image (width, height, ratio). Anybody know how to find out whether an image file has these?