@qcoding@iosdev.space
@qcoding@iosdev.space avatar

qcoding

@qcoding@iosdev.space

Technical agile coach at Industrial Logic. Author of iOS Unit Testing by Example. Over 20 years of #TDD. Code with joy, drive down your cost of change. he/him

This profile is from a federated server and may be incomplete. Browse more on the original instance.

qcoding, to random
@qcoding@iosdev.space avatar

I just pushed a failing test. Why? To confirm that it does indeed block deployment.

qcoding, to random
@qcoding@iosdev.space avatar

Trunk-based development works well with small commits when you only have a few groups committing. As the number of groups climb, the "push wars" ensue.

Traditional CI used a commit token of some kind, like a plush toy. "I have the commit frog, it's my turn."

What do folks use these days? Where are the remote commit tokens, where you wait in line for your turn to commit?

qcoding,
@qcoding@iosdev.space avatar

@GeePawHill I think you nailed it.
There were times on the last project I wish we had a virtual Commit Froggie. But we the push wars didn't happen THAT often. May not be worth coding.
On the other hand, it might not be hard…

marick, to random
@marick@mstdn.social avatar

Sure is a lot of “spooky action at a distance” in SwiftUI. (GUI apps have never really come naturally to me.)

qcoding,
@qcoding@iosdev.space avatar

@cammerman @marick Supposedly people had trouble with imperative UI and getting into "impossible state." I never saw that as an issue. But declarative UI has become more popular with React Native, Jetpack Compose, and SwiftUI.

One thing to keep an eye on is how often something is rerendered. When you're not doing it yourself, it's easy to lose sight of this because "it's done for you."

qcoding,
@qcoding@iosdev.space avatar

@marick @cammerman The declarative way would be an "event to process" in your observed data. When it's unprocessed, show Thing then set it to nil or empty. This then triggers another rerender, "Oh there are no more events, so I should hide Thing."

There's nothing wrong with AppKit, and it's not going to vanish anytime soon.

qcoding,
@qcoding@iosdev.space avatar

@marick Well, something outside of SwiftUI MIGHT be able to capture keyboard events. …Honestly though, I think this kind of thing would be easier with AppKit.

qcoding,
@qcoding@iosdev.space avatar

@marick Ooh thank you. Most of it should map to AppKit fairly easily. 🤞

qcoding,
@qcoding@iosdev.space avatar

@marick Swift is a slow bugger to build.

It's always this thought, more often than any other, that makes me miss Objective-C.

But don't stand in the way of @mlevison, he needs a good excuse!

qcoding, to random
@qcoding@iosdev.space avatar

What the hell is doing spending 96.8 seconds here when there was nothing to build? Talk about a TDD killer.
Is there any workaround? It's not consistent, but boy is it annoying.

claresudbery, to random
@claresudbery@mastodon.social avatar
qcoding,
@qcoding@iosdev.space avatar

@claresudbery Let the wild rumpus begin!

claresudbery, to random
@claresudbery@mastodon.social avatar

I AM A GRANDMA!!!

Meet Nina. 7.5lb. Born this afternoon.

My son's partner, holding and gazing at her new baby with a calm smile of love.

qcoding,
@qcoding@iosdev.space avatar

@claresudbery Congratulations! My father-in-law said, “If I’d known grandchildren were this much fun, I would have started with them.”

qcoding, to random
@qcoding@iosdev.space avatar

I LOVE Hadestown. The characters raise a toast during the first act:
"To the world we dream of."
-pause-
"And"
-facing the audience-
"to the one we live in now."

qcoding,
@qcoding@iosdev.space avatar

For most of my career, I had zero encouragement to practice . So why did I persist?

Faith.

I believed that the world as it is sucks. That there must be a better way. A way that is more humane. Maybe a way that is more effective.

And that maybe TDD is a better way.

I sometimes paid a career price. But the personal benefits made it worth it right away.

qcoding,
@qcoding@iosdev.space avatar

Same for faith in other things.

I believed that the world as it is sucks. That there must be a better way. A way that is more humane. Maybe a way that is more effective.

And that maybe Jesus is a better way.

So I became a missionary. Though I'm no longer a professional, I still carry the missionary heart.

qcoding,
@qcoding@iosdev.space avatar

There are TDD zealots. There are Christian zealots. Neither have done any favors to their cause, because they broke an important rule:

It's the people, stupid. Never put your cause above people.

qcoding,
@qcoding@iosdev.space avatar

The missionary heart is inquisitive, not prescriptive. I believe Jesus is the answer… but what is the question? That depends on the people. They need to discover their question. And if Jesus is the answer, they need to discover their own answer.

I'm just a midwife.

qcoding,
@qcoding@iosdev.space avatar

Sooo what about TDD? Or Extreme Programming? After 20 years of faith in XP, I'm finally, FINALLY on an XP team and absolutely loving it.

But here's the thing corporations get wrong about agility: you can't prescribe it. You can't impose it. You can't cargo-cult certain practices and slap them somewhere else and expect anything to work.

In fact, you may make things even worse.

This is where I, as a coach, have to be very careful:

I'm just a midwife. It's going to be your baby.

qcoding, to random
@qcoding@iosdev.space avatar

Is pod trunk register broken for everyone? It emails me a link, which fails with an internal error.

qcoding,
@qcoding@iosdev.space avatar

@brennansv So many projects still rely on it, but… I don't know.

qcoding, to random
@qcoding@iosdev.space avatar

My mother-in-law kept folders on her Mac, organized into folders and subfolders. But now she's on an iPad. If I just AirDrop all these photos into her album, it flattens everything. And many files lack internal dates because they predate EXIF.

Heck, I had to do Photoshop automation to convert old file formats, like TIFF, BMP, and the old Mac PICT. So these converted files definitely lack EXIF information.

So what does a geek do? Write a program to give them "good enough" EXIF dates, of course.

qcoding, to random
@qcoding@iosdev.space avatar

Cameras on. The facial expressions and body postures of the folks you're coding with is important information. Otherwise the person who talks the most "wins." Working as a team means learning to read each other.

qcoding,
@qcoding@iosdev.space avatar

@marick In-person yields way, way clearer signals, for sure.

My grump is that cameras-off is a cultural norm across many (most?) companies.

qcoding,
@qcoding@iosdev.space avatar

@marick For me, I find they are a key to camaraderie. I have a hard time forming connections with faceless squares.

qcoding,
@qcoding@iosdev.space avatar

@itsjoshbruce @marick I am not proposing mandates. There is no substitute for safe conversations and deciding together.

What I would like to do is reverse the default.

qcoding, to random
@qcoding@iosdev.space avatar

In a r/SoftwareEngineering thread on " is a generalized approach not an ideal solution for all systems" I touch on why and haven't taken over.

My rebuttal boils down to this: Does the lack of XP among businesses really mean it's less effective? Or are there other reasons it hasn't spread?

Here's the middle of the thread where it gets really interesting: https://www.reddit.com/r/SoftwareEngineering/comments/165dv8k/comment/k1o6mfj/?utm_source=share&utm_medium=web2x&context=3

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • osvaldo12
  • InstantRegret
  • thenastyranch
  • magazineikmin
  • everett
  • rosin
  • Youngstown
  • slotface
  • cubers
  • cisconetworking
  • kavyap
  • GTA5RPClips
  • DreamBathrooms
  • megavids
  • tacticalgear
  • khanakhh
  • mdbf
  • Durango
  • ngwrru68w68
  • tester
  • normalnudes
  • ethstaker
  • provamag3
  • modclub
  • Leos
  • anitta
  • lostlight
  • All magazines