August 2021

359 tweets

My top 3 feature improvements for @GitHub actions:

  • Make it easier to re-use steps with multiple jobs
  • Make it possible to re-run individual failed jobs (e.g. only one of a matrix
    build)
  • add the ability to define UNECRYPTED environment variables
Replying to @liran_tal

@liran_tal
@github I do have configurable stuff (like
endpoints, regions) which should not be part of the source, but are actually
helpful to be readable in plaintext. And Actions make it impossible to use these
values in outputs, which makes me jump through extra hoops.

Anybody else seeing issues with GitHub Container registry right now?

Some jobs fail with "Error response from daemon: Get https://ghcr.io/v2/:
net/http: request canceled while waiting for connection (Client.Timeout exceeded
while awaiting headers)"

Want! πŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”ŒπŸ”Œ
Embedded Photo

Replying to @emsuiko

@emsuiko It's hard to make a decision about
something that you haven't tried, so if you can, give it a try for a limited
time. You could also talk to people that have gone through these roles about the
pros and cons.

Update on this: I am now knee-deep into refactoring towards render props, and if
have this one big component (the main app screen) where it becomes really ugly,
especially because there is cascaded async loading of data, which also needs to
be user controlled.
/status/1418577489555767297

Replying to @coderbyheart

I have the additional problem of wanting to provide an app for two different
backends, so custom hooks in UI components would not work (hooks are imported
from a static module).

Maybe: controller uses custom cloud specific hook and renders stateless UI
component.

Replying to @AstridSawatzky

@AstridSawatzky Basically, it makes more
sense to recreate the app from scratch (because I also need to update the UI
library) and through that introduce the separation, instead of migrating to
render props. I also have other needs (turn app into separate code bases per
cloud backend) ...

Replying to @nelisboucke

@nelisboucke I was working remotely for
@dotHIV and it had been a few months working
without meeting her. When I did then in real life I literally blurted out: "Wow,
you are tall!". I felt really bad for saying that, afterwards. But, yeah,
certain dimensions are totally not present remotely.

Companies need to understand that hiring is deeply personal. They are building a
community of professionals, not filling headcounts. If they don't put their team
members in the spotlight, they miss out showing the world who they are and who
people can learn from if they join.
Embedded Photo

Replying to @coderbyheart

Technologies, products, markets are changing rapidly, but it's relationships
that last.

How many of you ask a new hire: "Who would you like hire for your team?" and
prepare an offer for them?

Replying to @pati_gallardo

@pati_gallardo Education and specialisation
in their studies. Most recent focus of work, and especially which languages,
tools they mention. This is the most important part, because I will talk with
the candidate about this in the interview. Spoken languages. Don't care:
hobbies, picture.

Replying to @_francied

@_francied If they bring all the
qualifications needed for the job I would and they are the best candidate for
the role. Personal connection develops over time, so they should get a chance.
And after all, this is what probation period is for.

Replying to @_francied

@_francied I have a written lists of questions
I ask every candidate, and technical assignments which make sure that I have
similar more objective data for every applicant. The "do they match our team and
company" question is decided in the team, so I don't have too much singular
influence.

Replying to @YesVirginia_

@YesVirginia_ @PolyworkHQ I was an early
tester, and it works best for people who want (and can) share their
contributions. This is ideal for content creators, and freelancers. But for me
it did not provide an use over the existing platforms I already manage
(homepage, twitter, LinkedIn).

Replying to @pati_gallardo

@pati_gallardo Yeah, I'm fed up with this
attitude to not be bothered with criticism if it doesn't adhere to the standard
of the person being criticised.

It's like "Hey we made this shitty biased AI which punishes you, and now you
need to tell us how to fix it."

Implement the thing, doesn't work. Must be my fault. Run the reference
implementation, doesn't work.

The kind of relief which is not really a relief.

Replying to @noopkat

@noopkat TL makes decisions no others can,
because they are impossible to make in the first place, but then makes sure it
doesn't end in a complete disaster. Usually involves swearing a lot, yes.

Replying to @renegadevi

@renegadevi I'd say that there is only one
CTO, and they are the person paid to take the blame when things go to shit, but
make sure the team gets praised for successes. They are also the ones to sit in
endless meetings with board, investors and customers. They are not allowed to
swear.

This is wild: Germany tax authorities can only send your tax report via email IF
YOU LIVE IN GERMANY. If you live abroad, you must select the paper variant.
Embedded Photo

Replying to @_francied

@_francied It's such a great reminder how
obscure the technology can be we are creating every day, when they struggle with
the concepts. This provides great feedback for me, where to improve and also
provides me with great opportunities to become better at explaining it.

Travel plans to Germany for October are getting more concrete, looking forward
to spending some quality time with the family after over a year...

I think we need a platform where you can book flights without getting scammed by
ad networks, and affiliate fees.

I'd pay e.g. 5% of my flight's price, if I'd a) knew to get the best price b)
get the COβ‚‚ emissions compensated c) the platforms profits were donated

Replying to @kotzendekrabbe

@kotzendekrabbe Yeah, I know what you
mean. But I think we also need women in tech to deliver tech talks. Not because
I don't want to be reminded, but to underline that you are indeed as technical
as any dude on top of the shit you have to deal with daily.

People who make elaborate forms for team members to fill out about their skills
so they can figure out who can contribute where ...

Have you tried talking to them?

Like: "We need someone to do X, who can do that?"

Replying to @coderbyheart

Continuing on this, and I am not looking into using Docker with
@sloppyIO ... made good progress so far, DB and
webserver are running. Now I need to figure out the proper way to initialize the
PostgreSQL database.

Replying to @coderbyheart

A typical JavaScript repo has a 1:10 or worse relation of feature to development
dependency changes (if you do continuous dependency updates, which you should).
Only feature changes / (non-dev-)dependency updates trigger releases and
therefore should actually be deployed.

Replying to @pati_gallardo

@pati_gallardo You are taking the coach
role: making them discover the flaw in their response themselves. The "trick" is
to hold back that you know that they are not telling you the root cause and help
them see that there is more to it than what they believe to be true.

Replying to @coderbyheart

Basically I want push-to-deploy of this Node.js backend + React frontend app
(with a PostgreSQL database), and also need backups of the database. It will be
fairly low volume, scalability is not key. Hit me up if you have done this
before, we can't be the first ones to do that.

There is this widely held believe that ESM will no longer enable you to load
modules at runtime and therefore we can't switch, because with require() you can
do:

const name = 'awesome' const module = require(my- + name)

and require will load my-awesome.js as a module.

Replying to @coderbyheart

However your code that does this is most likely a shorthand switch statement:

let module switch(name) { case 'awesome': module = require('my-awesome') }

Because you do not really want to load an arbitrary module, but one that is very
much already known.

Replying to @coderbyheart

You know which modules are "dynamically" loaded, so you can convert logic like
this at compile time to a static import construct as shown above, by iterating
over all your possible imports and generating the module loader.

That way you can use import with "dynamic" modules.

So many developers just put posts on http://dev.to to crap on others. Telling
"You should do X". This is not moving forward, but it's divisive. Don't put
other developers against something, take your time and write from your
perspective: >

Replying to @coderbyheart

explain why this particular thing you are bashing didn't work for you, and you
will be amazed what you can learn from others.

There is a reason why a specific solution exists, it might not be obvious to
you, but that doesn't mean it is not valuable.

Another day fighting weird state issues in lower level networking code in
Node.js. This time mqtts.js not cleaning up instances properly so later
invocations will reuse the wrong instance when trying to deal with ECONNRESET
TLS errors...

Replying to @fquednau

@fquednau Well, for example the request.user
object which is set by a passport.js middleware. This is magic, which happens
behind the scenes and there is no way to set this properly, the only workaround
is to cast it locally.

Replying to @coderbyheart

Coworker 1: "If I suspect a faulty USB cable, I immediately throw it away." Me:
"Oh, it's THAT bad?!" Coworker 2: "Where are you getting your cables from?! Talk
to $coworker, he has the best ones."

Replying to @SamirTalwar

@SamirTalwar πŸ’™ I'm dreading the feeling
being in Zoom all day. It's uncanny to want to connect to the other human, but
having cut off 85% off my abilities to communicate. I miss the physical dance of
real events, being close, taking a step back, getting soaked in the sauna.

Replying to @LeaRosema

@terabaud You could do more a11y related work in your current job, I'd think
they would welcome this in their product and there should be some room in any
web project to improve accessibility. That could give your more experience, but
also increase awareness in the team.

Moving conferences like #SoCraTes2021 to an online space is a huge opportunity
to grow the community and meet new friends and allies to make the SW industry
better. I want to try to bring online and physical participants together on the
next event that takes place in Soltau.

We use @spatialchatteam for #SoCraTes2021 and what's really cool is that we can
include online whiteboards like @Mural and see what's happening on the board in
real time. Makes it much easier for people who join to discover what's going on.
Embedded Photo

Replying to @lucianadrian

@lucianadrian Well, it's totally different.
But it's great that people can attend who normally wouldn't (like those with
babies, can't afford the time and money to travel). The worst thing is the
disconnect after the sessions are over... It's much nicer if you can carry on
discussions.

So impressed by the session lead by
@Kitina127001 on #feminism at #SoCraTes2021
... She opened a safe space by sharing her story and others joined in sharing
their stories. I'm so grateful that we can have this in an online event that has
software as the main topics. πŸ’™

We are now having a small, but great discussion about having difficult
conversations, which wasn't really on the agenda. So great that this developed
on the spot. Pretty close to the physical event! #SoCraTes2021

For an event about diversity I am thinking about interviewing sponsors to
highlight their activities related to diversity and inclusion.

Would you be interested in reading this about a sponsor of an event you attend?

When I have a day full of meetings and people tasks (not bad at all) I try out
things in the codebase that might work, to get a feeling of how much effort it
would be. I'm happy to throw the changes away if it doesn't feel right.