Posts

Showing posts from April, 2023

Tuning your Personal Technology Radar - Future proof your technical skills

Image
Technology tools, products, and techniques continue to advance.  The industry continually evolves and the people who want to be near the top of the industry must continually learn and grow.  Technology radar is a technique, pioneered by ThoughtWorks, for always paying attention to the technical horizon watching trends, trying to determine future technology winners, and learning more about different technologies as they become more and more likely to become important.  We have more confidence and learn with more depth for the nearer-term technologies.  We have less confidence and less depth for things farther out where we "just don't know" if they will catch on. This is tough because things like language-based ML seemed unlikely to many 5 years ago.  Technologists must continually sweep the current news and trends to determine where they will put the learning and future-proofing investment. Near-term are covered as part of today's work.  Mid-term items are going to hav

We are not here to drain the pool - Companies smother the culture they purchase.

Image
Large companies purchase smaller ones to enter new markets, buy IP or get an edge that they couldn't otherwise make happen.  It is crazy but then they often integrate  those acquisitions into themselves often killing the creative spark and culture that made that acquisition important, to begin with. Does anyone know of a company that succeeds with acquisitions without smothering the culture that they purchase?   ROLM and the pool metaphor that wasn't a metaphor IBM acquired ROLM in the mid-80s. ROLM was a market leader at that time and one of the companies that prided itself as a Great Place to Work (GPW). ROLM created a place with a completely different culture from that of IBM.  There was a story that IBM showed up to the first all-hands meeting with the employees and said  We are not here to drain the swimming pool. IBM then went on to do everything they could to make ROLM conform essentially draining the pool that didn't fit their model. IBM moved its people into ROLM b

entitopia - a Python tool that for loading, customizing and automating indexes and data loads into Elasticsearch

Image
ElasticSearch is an awesome extensible text search engine. It provides methods for loading data, customizing the data, applying analyzers, changing search weightings, and enriching data by merging subsets of multiple datasets. We can merge pieces of different datasets (indexes) into customized indexes to meet our data analysis needs.  We want to do all of that in a repeatable and automatable fashion with some level of flexibility.  The Python code lets us define pipelines that support multiple steps and customized operations.   This diagram shows a 3-step pipeline that represents data being loaded into two indexes (1,3) with an enrichment and resource manipulation step (2). Each step is driven from a config file that describes the phase processors and other configuration information.  {     "steps" : [         {             "name" : "doctors-clinicians" ,             "phases" : [                 "index-create" ,                 "in

RTO and a return to office hostility and micro-aggressions

Image
The office is a hostile environment for a lot of people especially if they don't totally fall into the majority behaviors, culture, appearance, or stereotypes. The Work From Home (WFH) shift, during the pandemic, made these people's lives better.  Post-pandemic management is calling for a Return to Office (RTO) to  foster corporate culture and accidental communication .  Return to Office  is sending people back to a place where their work is often less important than other factors more subjective factors.  Some communication is strongly negative and unwanted.  Executives and old line managers are pushing for  Return to Office (RTO).  They rightly call out the advantages of accidental communication and the higher bandwidth decision-making.  I suspect that we will find that the biggest advocates are older, lighter, and more male than those asking for more flexible working relationships. The people calling for RTO either don't understand the side channel stresses of being in

Baked-in Runtime Falure Identification and Remediation

Image
Web and other API-based applications are made up of some set of services, data stores and compute dependencies or partner business systems. We need some way of continually monitoring the components in isolation and in situ so that we can have automation repair or heal certain types of problems. Different control plane components have different requirements for the components that they manage. This means the instrumentation may be subtly different, shallower, or more detailed in order for the different control planes to take action for their particular needs.  Health checks are one technique for determining the current health of a component. They are in-service test endpoints or very specific external code that exercise some capability of a specific instance of a component service.  Each control plane or remediation touchpoint needs to be examined to understand what their actual area of concern is. This is refined into a set of health checks. Then the problems that can be identified by

Great teams are like woodchippers. We need to keep the wood stacked next to them to keep them fed.

Image
I've seen plenty of places where they avoided doing the repetitive work it takes to make sure that new tasks were ready to consume. They threw down work items in front of a team and told them to take care of it. This means that team didn't work at full speed during that time and missed the opportunity for some other incremental deliverable.  Great teams are like woodchippers.  We need to keep the wood stacked next to them to keep them fed. Agile has this notion of Definition of Ready, a set of criteria that must be met before a work item is ready to be picked up.  That DoR varies depending on the scope of the item, programmatic, vs quarterly vs individual task. The DoR is a checklist of criteria or check boxes that you need to satisfy in order for a team to pick it up and be successful in a short period of time.    There are two hard times when building a cadence in a project.  There is the initial time when you think you are going to just wing it and be successful where you st

Python Logging in Color

Image
Every Python programmer still using print statements should up their game and migrate to the Python logging module. That module lets you filter output based on severity settings, lets you send the output to different destinations, and lets you format and structure your output.   This formatting ability lets us create more regular and human-readable output.  A classic developer experience use case for this is to color code the output by severity level.  The following output shows 3 different logging levels in three different colors, INFO, WARNING and CRITICAL. The same output also shows an arrangement that includes: time formatting, module name, level and a logging message. Show me the code! We only need 2 lines of code     root_logger = logging . getLogger ()     CustomFormatter (). replace_formatter (root_logger) when we use this class derived from a thread on stackoverflow  and other places. import logging class CustomFormatter ( logging . Formatter ):     grey = " \x1b [38;

3D printing a geodesic dome base for a mason jar style firefly light

Image
We are still iterating on Mason jar firefly lights.  We wanted more light and the most obvious way to do that is to invert the jar so that light shines through the base of the jar.   I have zero CAD skills and only basic tools like Microsoft 3D Builder. This means I need to mix in publicly available components for any complicated shapes or surfaces. I resized the same dome and thinned it out by creating a sphere slightly smaller than the dome and then subtracting that from the dome. I then took a threaded model and inserted it through the top of the dome.  and extruded a hollow box into the back of the unit for the battery box.  The item at the right is the result.    Previously seen in Joe's modeling app A previous article https://joe.blog.freemansoft.com/2023/03/3d-printing-battery-box-holder-for.html was about printing a battery box that fits inside the mason jar.  It was simple but wasted much of the light that went through the bottom glass. The domed shape with the perforation