Posts

Flutter mobile - certificate and SSL exclusions for development domains

Image
Flutter mobile development gets twisty when working behind corporate firewalls and with self-signed development certificates. We look at a bit of code that can be used in debug builds that sets the emulator/simulator proxies and disables cert checks.   Example Code See  fs-dart-tools on GitHub  for the latest versions of this code. You can use this sample code wrapped in an `if (isKDebug)` when running Flutter on mobile.  It lets you exclude your self-signed certificates for your internal domains while leaving certificate checks enabled for production and external domains.  The code also sets the proxy when running in the Android Emulator or the iOS Simulator.  Setting the proxy is optional, enabled when you pass in the proxy port.   import 'dart:io' ; /// /// Ignores certificates in developermode for limited set of domains /// Simplifies development in corporate self signed environment /// Configures the emulator or simulator proxy if passed pr...

Building your brand - Being visibile in a cross ranking environment

Image
Your personal brand and reputation are the most reliable tools for succeeding and being perceived as succeeding in an organization. A lot of people rely on their nearest manager to do the heavy lifting. That can become a single point of career failure. They may move or be moved. They may not have the personality for ratings combat. A better plan is to help them help you when it comes time for new opportunities, promotions, and compensation.   Cross-group rankings are objective, in theory, but are really a cage match of discussions between management where they put everyone into a pool and rank them against each other.  This means management speaks up about their people to increase perception and question other management about their staff to create doubt about their people's relative position. The best way to come out on top of this is to have strong management and to be visible to others to create familiarity before the process.  This is especially true in envi...

Coding challenge accepted - game board navigation using open and completed tasks FIFOs

Image
I was involved in a couple of minor coding challenges that involved exploring a square space or board. I don't know any navigation algorithms so I implemented breadth first and depth first searching of the board using an open task list and a completed tasks list. Legal moves are added to the open task list. Each legal move is then checked to determine the following legal moves. Those are posted to the open task list where they are then picked up later and further explored. Two of those challenges involved taking a specific number of steps. One asked how many squares could be touched in a specific number of steps. The other asked how many places you could end up in exactly a specific number of steps. Sample `Dart` code can be found in this GitHub repo https://github.com/freemansoft/AdventOfCode-2023-Dart/tree/features/2023/solutions on the 2023 branch. Video Content I've been calling these open and completed tasks but you can also think of it as a FIFO of...

Using emojii for Yesterday, Today and Blockers on Slack and other channels

Image
Slack and other messaging platforms are mainstream platforms in many companies.  They provide great asynchronous ways of detailing activity and issues so that people can stay up to date while preserving standups or other meetings for interactive troubleshooting and planning. The teams I've been on have used Slack or other platforms to share  Yesterday, Today, and , Blockers for the last 5 years.  I've given up my geezer opposition to emojis and fallen in with using them to signify the category for everything reported.  As an example: Yesterday, Today, and Blockers the emoticon way 👈Yesterday Yesterday's events that affect others or the backlog 👉Today's Activity The main things we want to get done today ✋Blockers Things in my way that others can help with or that are holding us up 👊Thank you Callout for someone's timely help or them taking an extra effort.  Example for Joe's weekend Joe for 2023/MM/DD 👈Worked on Advent of Code 2023 👈Created content for blog...

The Crucible - Melting the status quo with targeted strategic ignorance

Image
Executives have several tools that can re-forge an organization from the top.  They can reorganize changing the boundaries created by Conway's law.  New executives can push out embedded interests and bring people in from the outside. They can brutally question everything through targeted ignorance.  A main tactic is to hire senior people with no knowledge of internal complexities or implementations. They come in questioning everyone and everything with an assumption that the hard stuff exists because of complacency or because people are locked it was always done that way. New people propose or demand refutation of approaches in past lives or other industries or with previous engagements.  The legacy organization's natural reaction is that the new ideas won't work and defend the status quo.  New people apply additional heat declaring that the status quo won't stand often replacing people who stand in the way. This applies indirect heat to the rest of the organiza...

Ask - Propose - Ask Why Not - Repeat - When new to a role

Image
You've just joined an org as an employee or a contractor and you want to contribute now. You have to contribute now to validate being there. now. This can lead to the urge to start spewing solutions based on your previous experience or what you saw others do somewhere successful.  Famous billionaires can force their will to what they want. The rest of us are best served by asking questions, asking the right questions, learning the language of the domain, and building credibility inside the organization. Then you have to differentiate the real from the imagined and drive towards improvement wall iteratively asking questions, proposing solutions, and teasing out the real from the imagined in the responses. I'm not saying to wait until you know everything until you contribute. Instead, work on two paths.  The one where you can make contributions now and the one where you increase your credibility, create relationships, and become deep enough to have an impact. I...

Advent of Code 2023 -- A bootstrap article

Image
Advent of Code is 25 days of coding problems, a kind of coding dojo with a daily exercise. You can use any language for any of the problems. The code isn't analyzed or shared.  Only the results count. I know people working in Python, Dart, Haskell, Rust, and C#.  There are two problems per day, solved in order. The second problem only becomes visible once the first problem is solved. Each problem is driven by an input data set customized to your login session. The solution is often a number or some other small piece of data.   You won't be able to copy someone else's answer. Any scoring or tracking is up to you. You can create your own team leader board or just do the problems without tracking against anyone else. The problem workflow is Go to the website to read today's problem. Request today's input data set using your session cookie Write some code to generate a result Post the result into to today's page Earn stars and accolades. Show me!  Don't make me ...

Programmers' Credo: "We do these things not because they are easy...

Image
Yet another tool in our understimation arsenal. We do these things not because they are easy, but because we  thought  they were going to be easy. This applies to more than programming.  I'm looking at you, my most recent repair project. Credit goes to Jeff Atwood  around 2016 Revision History 2023 11

The Crucible - Heating up teams with an agile coding dojo.

Image
An Agile coding dojo is a technique that can be used to create high-pressure software development situations at the team or project.  That pressure exposes weaknesses and forces change and adaptations in short iterations. The idea is to change the game and accelerate the lifecycle to force behavioral change. It is a crucible where you either learn to deal with transparency and change your model or you fail.  A coding dojo is a local optimization. The crucible operates at the team or set of teams level. It creates individual team cohesion and learning. It keeps the overall organization the same. It can only be the crucible for organizational change if more strategic and systemic re-forging is done above the effort. I was once involved in a 6-week Agile coding dojo where we compressed our standard 2-week iterations into 2.5-day iterations. All the work of a Scrum-style sprint in 2.5 days. Teams had to break down their work into smaller chunks and become fast at estimating, plan...

The Crucible - Reforming an organization with heat

Image
A  crucible  is where you melt down your existing metal and add new metals to create and cast a different alloy that fits the current need. This is often the only way to reshape an organization for the future. Major changes driven by external forces require dramatic adjustments outside the standard processes in order to drive change at a faster pace.  Corporations and groups are like an alloy comprised of the company's stated culture, its actual culture, and the attitudes and beliefs of the people who work for it.  The initial cast defines how a company operates and determines how it succeeds or fails. Big changes require attacking that historic casting. Mature organizations struggle with deep change because they have hardened around policies and behavior that are broadly executed but may not be well understood. There is strength in this as it can resist or overcome transient business, regulatory, or economic issues. That strength is a weakness that makes it difficul...