Coding Blocks
We dive into what it takes to adhere to minimum viable continuous delivery while Michael isn’t going to quit his day job, Allen catches the earworm, and Joe is experiencing full-on Stockholm syndrome.

The full show notes for this episode are available at https://www.codingblocks.net/episode179.

Sponsors

  • Shortcut – Project management has never been easier. Check out how Shortcut is project management without all the management.

Survey Says

How mature is your CI/CD pipeline?

Take the survey at: https://www.codingblocks.net/episode179.

Sidebar

  • Revisiting unit testing private methods in 2022, what would you do?

Minimum Viable Continuous Integration

CD is the engineering discipline of delivering all changes in a standard way safely.

minimumcd.org
  • The belief is that you must at least put a certain core set of pieces in play to reap the benefits of Continuous Delivery.
  • The outcome that they’re looking for is the improved speed, quality, and safety of the deployment pipeline.
  • Minimum requirements:
    • Use continuous integration, continuously integrating work into the trunk of your version control and ensuring, as much as possible, that the product is releasable.
    • The application pipeline is the ONLY way to deploy to an environment.
    • The pipeline decides if the work is releasable.
    • The artifacts created by the pipeline meet the organization’s requirement for being deployable.
    • The artifacts are considered immutable, nobody may change them after they were created by the pipeline.
    • All feature work stops if the pipeline status is red.
    • Must have a production like test environment.
    • Must have rollback on demand capability.
    • Application configuration is deployed with the artifacts.

If the pipeline says everything looks good, that should be enough – it forces the focus on what ‘releasable’ means.

Dave Farley

Continuous Integration

  • Use trunk based development.
  • Integrated daily at a minimum.
  • Automated testing before merging work code to the trunk.
  • Work is tested with other work automatically during a merge.
  • All feature work stops when the build is red.
  • New work does not break already delivered work.

Trunk Based development

  • What is trunk based development?
  • Developers collaborate on a single branch, usually named trunk, main, or something similar.
  • You must resist any pressure to create other long-lived development branches.
  • The argument is that the simplicity of this structure is more than worth anything you might gain by any other structure.
  • For small teams, this is easy, each committer commits straight to trunk, after a build/test gate.
  • For larger teams, you use short-lived feature branches that might live for a couple days max and end with a PR review and build/test gate.
  • What does this buy us?
    • The codebase is always releasable on demand.
    • Google, Facebook, authors of Continuous Delivery and The DevOps Handbook advocate for it.
  • But how do we …
    • Big feature? Feature flag it off.
    • Hot fix? Fix forward.
  • But …
    • What if you need multiple CONSECUTIVE releases? i.e. think of the Kubernetes release cycle.
    • What if you need multiple CONCURRENT releases? i.e. think of Microsoft support for multiple versions of Windows.

Resources we Like

  • Minimum Viable CD (MinimumCD.org)
  • What Is a Deployment Pipeline? (Informit)
  • Trunk Based Development: Introduction (TrunkBasedDevelopment.com)
  • Real Example of a Deployment Pipeline in the Fintech Industry (YouTube)
  • The Twelve-Factor App, III. Config (12Factor.net)
  • Kubernetes Best Practices: Blueprints for Building Successful Applications on Kubernetes (Amazon)
  • Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Amazon)
  • Comparing Git Workflows (episode 90)
  • Our discussions of The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations (Coding Blocks)

Tip of the Week

  • Did you know you cannot set environment variables in Java?
  • Terms & Conditions Apply is a game where you have to avoid giving up all your juicy data to Evil Corp by carefully avoiding accepting the terms and conditions. Good luck. Thanks Lars Onselius! (TermsAndConditions.game)
  • Test Containers is a Java library that gives you a way to interact with and automate containers for testing purposes. Thanks Rionmonster! (TestContainers.org)
  • Maybe it’s time for JSON to die? YAML is finicky, but it’s easier to read and it allows comments.
    • YamlDotNet is a library that makes this easy in C#. (YamlDotNet.org)
  • PowerToys are a collection of utilities from Microsoft that extend Window with some really powerful and easy to use features. Thanks Scott Harden! (Microsoft)
  • Did you know you can now include diagrams inside your markdown files on Github? Mermaid is the name and you can create the diagrams directly in your files and keep it versioned along with your code. Thanks Murali and Scott Harden! (github.blog)
Direct download: coding-blocks-episode-179.mp3
Category:Software Development -- posted at: 8:01pm EDT

We have a retrospective about our recent Game Ja Ja Ja Jam, while Michael doesn’t know his A from his CNAME, Allen could be a nun, and Joe still wants to be a game developer.

The full show notes for this episode are available at https://www.codingblocks.net/episode178.

Sponsors

  • Datadog – Sign up today for a free 14 day trial and get a free Datadog t-shirt after creating your first dashboard.
  • Shortcut – Project management has never been easier. Check out how Shortcut is project management without all the management.

Survey Says

What percentage of time does your team devote to technical debt per release cycle?

Take the survey at: https://www.codingblocks.net/episode178.

News

  • Thanks for the review!
    • iTunes: €l£M£N$!
  • All CBJam Games are playable now! (itch.io)
  • You can see a review of the top games we’ll be talking about as well as a montage of all the games on YouTube.
Check out all of the games!

Lessons Learned

  • itch.io is a social network(!) where you can follow other developers, learn about other game jams, etc.
  • Most games are playable in a browser.
  • Writing copy is hard!
  • Playtesting – lots of games are hard!
  • Game Duration – aim for a really good, well paced 1-5 minutes.
    • Time zones – Start, end, defaulting to a little extra
    • Teams – submissions, collaborators, voting
    • How much is too much?
  • Does theme skew voting?
  • What do we get from competition?
  • Durations
    • Would you think making the event longer would get more submissions?
    • How long should you get to vote?

Breakdowns

Platform
Editor
Rendering
Submitted By
CBJam 22 Stats

Top 5 Overall

Followers

5: Followers (itch.io)

Followers is a clever 2D platformer puzzle game where you play as 2 different characters in 2 different levels at the same time. You hit the jump button, they both jump. You move left or right, they both attempt to move left or right. The task is to safely collect all the fruit in the level but you “safely” is the keyword here because you have to be really thoughtful about your actions. The trick is utilize the various obstacles in the different levels to position your characters just right to get through. Doing this is a real mind bender, but it’s really satisfying when you figure out how to get through. The art and music fit perfectly and it’s such a cool riff on the the theme since both characters literally follow along with whatever you tell them…which usually leads to their demise!

 

Knock ‘Em

4: Knock ‘Em (itch.io)

  • Eike Kriesel
  • Leon Arndt (itch.io)

Knock ‘Em is a 3D arcade style action game where you play as a bowling ball tasked with knocking down bowling pins…that sounds pretty normal, but once you start the game you realize that you are in for a treat. You have full reign of the bowling alley, and the characters in this game are all bowling pins. That’s right, you are a bowling ball blasting around in an alley full of bowling pins that are…bowling! You get a point for every pin and are chased by alley staff pins and police pins that will ultimately wear down your health and end the game. The action is frantic and fun and funny, with a lot of attention to details.

Just Down the Hall


3: Just Down the Hall (itch.io)

  • Michael M. – Programming Lead, Game Design, Level Design, UI Design
  • Cheyenne M. – Art, Programming, Game Design, Sound Design
  • Alex M. – Game Testing, Special Thanks


Just Down the Hall is a spooky 2D action platformer. In the game a deadly shadow is following behind you, jumping when you jump. If you clear an obstacle the shadow will plow into it, slowing it down. If you hit an obstacle, you slow down and the shadow catches up. The game has a really cool split screen feature where you can watch the shadow following you and smacking into obstacles. This is really cool to watch and it leads to some really tense and rewarding moments as it gets closer and closer to you. The art is beautiful as well so it actually feels good when it inevitably ends.

Live & Evil


2: Live & Evil (itch.io)

  • Zaksley – Developer and Game Designer (itch.io)
  • Drenaya – Developer and Pixel Artist (itch.io)
  • Thalia Music (itch.io)

Live & Evil is a 2D puzzle platformer game about a robot named “Live” and their show “Evil”…which is also the word “live” spelled backwards and the the logo reflects that in a cool way. This is important to note because in this game you swap between the two characters by hitting the Q button. Live walks on top of the platforms, Evil on the bottom. Items like collectables, switches or platforms may only be visible or usable by one of the characters so you’ll have to use both of them to win. This plays out in increasingly interesting ways as the game progresses…and again, you’ll have to see it to believe it.

Light of the World

1: Light of the World (itch.io)

  • Nelson L: Lead Programmer (itch.io)
  • Michael P: Lead Designer (itch.io)

Light of the World is a 2D puzzle platformer with dark atmospheric and spooky levels, you are charged with rushing between beautiful beacons of light before the your enemy can attack. It has a light but powerful narrative with a really cool bouncing shield mechanic that you can throw and retrieve to solve some light, but clever, puzzles. It’s hard to really talk about this game because every aspect of it is done so well that your jaw is on the floor the whole time. Even the YouTube video trailer for the game was expertly done and you can tell that user experience was always the top priority. This game was rated highest in all 3 categories!

Fun

a path alone

a path alone (itch.io)

“a path alone” is a thoughtful 2D box pushing puzzle game. It’s dark, and moody, and beautiful and strange. Every level features a beautiful pixel art animal that will grant you a new ability in exchange for a favor. The advice they give you is somber and there’s something about the music and the animations and the mood that gives these interactions some emotional weight, so you are feeling something as you play this game. It’s hard to pin down exactly what that feeling is, and that’s part of the fun. The amount of polish is really evident here and you can really see how much that care and attention given to user experience pays off.

Creativity

What am I supposed to do!?

What am I supposed to do!? (itch.io)

What am I supposed to do is 2D drag and drop puzzle / action game in which the player is charged with helping a character escape from a terrifying and really cool looking “windy monstrosity”. You don’t directly control the character, but you do have items that you can drop into the stages to help the character out. Drop a sword and a character will slash, drop a cloud if there’s a long fall to help your character land softly. The music adds to the frantic pace and the game really steps it up in later levels where you get random items and have to quickly figure out how to make do with what you have available.

It Follows Me

It Follows Me (itch.io)

It Follows Me from Fussenkuh was a really fun and unique take on the theme, where you have to thumbs up or thumbs down pairs of words based on whether the first word has the letters “me” and the second word has “it”. Get it? You up vote the pairs of words where “it” follows “me”. You only have a few seconds to make each decision so even though this is a word game, I’m probably more likely to classify it as an action game. Slapping the thumbs up and thumbs down actions are reminiscent of social media, and given the popularity of a little game called wordle, this game has an interesting contemporary tone that gives you this odd feeling that you’re playing an fun artifact from…right now.

Quirk

I became a Treasure Hunter to Pay Off My Student Debt, but now an Immortal Snail is Coming after me with a Knife

I became a Treasure Hunter to Pay Off My Student Debt, but now an Immortal Snail is Coming after me with a Knife (itch.io)

“I became a Treasure Hunter to Pay Off My Student Debt, but now an Immortal Snail is Coming after me with a Knife”, which also wins the award for best title. In this game you try to collect all the treasure before you are caught by a knife wielding snail. The snail is slow at first, but speeds up as you collect each treasure making for a really tense end game experience.

Ducks in Space

Ducks in Space (itch.io)

Ducks in Space is a beautiful 3D snake like game where you gather little ducklings who follow you as you swim around a cool spherical planet. If you run into your duckling tail, the game is over, but you also have to avoid some hungry herons. The game looks, sounds, and plays great and was written in native html and JavaScript, which makes everything even the game even more impressive!

Tip of the Week

We just couldn’t help ourselves and we took all of our tips from Simon Barker this week!

  • Tons of free icons! (flaticon.com)
  • More great icons for material themes! (materialdesignicons.com)
  • Having a tough time trying to figure out a name for your new app? Check out this site, it’ll help you find that name and tell you what platforms are available for it! (namae.dev)
  • Check out the rebranded/relaunched podcast “All The Code” from Simon Barker (podcasts.apple.com)
  • Crontab guru makes it easy to build and understand cron schedule expressions (crontab.guru)
Direct download: coding-blocks-episode-178.mp3
Category:Software Development -- posted at: 10:12pm EDT

1