Saturday, October 27, 2018

2018-10-27 Saturday - 10 Lessons from Sailing, for IT

Recently I had some work done on my mast - and I took some time this morning to ponder some of the lessons I've learned from sailing (either through direct experience, or by studying the historical accounts of the voyages of others)...and how those might apply to the world of IT...

1) Preventive Maintenance: On a sailboat, preventative maintenance is a lot like taking care of Technical Debt in IT. Avoid or ignore it at your peril. A mast failure, when sailing in storm conditions - much like a performance/load failure for your IT systems. It all comes crashing down.

2) Keeping a Weather Eye: Means to monitor the horizon for developing weather conditions. Within the world of IT that can mean observing closely which projects/areas of IT are gaining/losing funding, organizational restructuring, and whenever new external third-party IT vendors are being introduced into the organization.

3) Sometimes You Must Tack: On a sailboat, you must often tack (change course) to reach your target destination - because the wind changes direction, or you are trying to make way against a current that is not in your favor. Your career, much like the track of a sailboat - will rarely run on a straight path for very long. Often, you may find that you need to sail away from your destination, or even sail backwards. In your IT career, this can take the form of willingly taking what might appear as a demotion (lower job title, less pay) - so that you can make "headway" in gaining new skills and experience - as well as gaining important connections.

4) Faster Doesn't Always Win (or Finish) The Race. If you focus only on speed in sailing - you are much more likely to experience catastrophic failure of essential equipment - or, your crew will become exhausted and burned-out to the point of making catastrophically bad decisions. Same goes for your IT staff.

5) Compasses Can Lie. On a boat, the accuracy of your compass can be skewed by magnetic declination and/or magnetic deviation. So too, in IT - While you may have your 3 or 5 year IT Roadmap all planned out - and you may have your Key Performance Indicators (KPIs) established to help you measure your progress and alignment with your plan - your "compass" can be skewed by underlying market forces, or competitors bypassing your strategy entirely by focusing on something that is even more fundamentally important to your customers.

6) You Need A Course Plotted Out. Leaving the harbor on a boat for a leisurely afternoon sail is fine - but if you expect to cross great expanses of open ocean - you will have to contend with weather patterns, shipping traffic, and currents - and you need to plan for enough provisions, fuel, and electrical power management to keep your crew healthy, happy, well fed - and all of your essential systems operational. Often in IT, we see a pattern of constantly changing priorities - and poorly charted courses - with apparently no thought to the sustainability of making any voyage - nor any intent in reaching a destination. You'll soon find your "crew" abandoning ship as soon as the first habitable "island" appears on the horizon.

7) Things Break, Have Contingency Plans. Before embarking on a long voyage, the prudent skipper has already charted a primary course (and alternative courses to safe harbors), laid on sufficient provisions, and has gone over the game plan for making the voyage with the crew. But preparations for making a voyage don't end there. The prudent skipper has also planned for various emergencies that may arise - emergency pumps, emergency locator beacons, a life raft, emergency provisions, an emergency watermaker, signaling devices, solar battery chargers for emergency communication gear, etc. Within IT, having third-party relationships established - to provide supplemental staffing in case key team members are lost could be part of your contingency plan - or ensuring that you have active-passive fail-over strategies for your cloud-hosted infrastructure. Or implementing abstraction layers over a cloud-vendor's specific implementation of a particular service - so that you may more easily swap out another cloud service provider's service - without requiring rip-and-replace throughout your application architecture.

8) Expertise, Competence, Passion - Beats Size, Every Day. Given the choice to crew aboard a small ship, or a huge mega yacht - it all comes down to who else in onboard. The size of the ship - or the number of crew - or the fancy amenities offered onboard are of little concern - what matters is whether the selected crew members brings the right mix of expertise, competence - and passion. Without those three things, a ship can breakdown in the middle of a voyage and become a floating prison - or a floating hell. With those three things - even a small ship with a good crew can make a faster passage than a huge crew who forever fights among themselves - shirking their duties - and finding fault rather than pitching in and doing the tasks at hand that need doing. Ships that must make long voyages must be run as efficiently as possible, that means you cannot afford to have dead-weight onboard - consuming resources, but not adding to the operation of the ship. There are many analogies in this - in the way many IT organizations are often mismanaged.

9) Selection of Crew and Crew Cohesion. On a long voyage - the fit, temperament, and cohesiveness of the crew is vital and of paramount importance to the success of the endeavor. For a master treatise on leadership, the importance of crew selection, and the importance of leadership in maintaining crew cohesion - you can do no better than to read Ernest Henry Shackleton's own written account of the 1914 voyage of the Endurance to the Antartic, "South: The Story of Shackleton's 1914-1917 Expedition"

10) Sometimes Your Ship Sinks. No matter how diligently you plan, no matter how much care and attention you give to the maintenance of your ship - sometimes catastrophically bad things will happen - after which, events unfold in ways that you cannot manage (for example, the rate of water ingress may exceed the capacity of your pumps to keep up with the inflow). That's when your planning and approach to voyage preparation may spell the difference between hoping for rescue, or rescuing yourself. I always prefer to have a sailing dinghy on deck, in lieu of a life raft (for several excellent historical accounts of why this is my preferred choice, please see: The Voyage of Bounty's Launch; Dougal Robertson: Survive The Savage Sea; 438 Days: An Extraordinary True Story of Survival at Sea; Adrift: Seventy-six Days Lost at Sea; Once Is Enough). Within the world of IT, a Death March Project is a comparable event - but so too are much slower scenarios of your own personal "ship" sinking - such as being pigeon holed into roles (for years, or decades) that don't allow you to be exposed to new technologies, learn, grow, and gain in responsibility.

Tuesday, October 23, 2018

2018-10-23 Tuesday - Camtasia Tips & Tutorials

I watched an interesting tutorial on Youtube recently, and I was impressed by some of the tricks and techniques that were used to make the video more engaging (like zooming in and out of different parts of a screen). 

This post is a placeholder for links to interesting resources, collections of tips, documentation, and tutorials on becoming a more proficient user of Camtasia...

    • "Make sure to set your project dimensions (i.e. the size of the video you will produce) smaller than the media you’re working with. Any videos or images you choose will look best when displayed at their natural size, that is, 100% scale."
    • "Add zooms to a video in Camtasia by changing the scale (think: relative size) of a clip over a period of time. As the scale of the clip increases or decreases, it gives the effect of getting closer to or farther away from the subject."
    • "Create a zoom effect by adding an animation to a clip on the Camtasia timeline. Animations allow you to change the properties of a clip over a period of time. To add an animation go to the Animations tab and drag a Custom animation to a clip."
    • "The next step is to edit the clip’s properties at the end of the animation. First, place the playhead to the right of the animation.
    • "To create the effect of zooming in on the clip, go to the Properties panel and increase the scale by dragging the slider to the right. If you want to zoom out, decrease the scale by dragging the slider to the left."
 Animations & Effects:
 Trim Videos:

Alternative Tools:

Thursday, October 11, 2018

2018-10-11 Thursday - Proposed Talk for O'Reilly AI Conference 2019

A proposed talk I've submitted for the O'Reilly Artificial Intelligence Conference in New York, April 15-18, 2019

JAGS vs Edward for Markov Chain Monte Carlo (MCMC) Simulation

An AI neophyte's experience exploring the capabilities and features  of JAGS vs Edward for Markov Chain Monte Carlo Simulation.  Lessons learned. A discussion of my approach to tackling the various learning materials I found useful to gaining a level of working knowledge.
This presentation will compare and contrast the utility of JAGS vs Edward for implementing Markov chain Monte Carlo (MCMC) simulation.

In statistics, Markov chain Monte Carlo (MCMC) methods comprise a class of algorithms for sampling from a probability distribution. By constructing a Markov chain that has the desired distribution as its equilibrium distribution, one can obtain a sample of the desired distribution by observing the chain after a number of steps. The more steps there are, the more closely the distribution of the sample matches the actual desired distribution.

Edward is a Python library for probabilistic modeling, inference, and criticism. It is a testbed for fast experimentation and research with probabilistic models, ranging from classical hierarchical models on small data sets to complex deep probabilistic models on large data sets. Edward fuses three fields: Bayesian statistics and machine learning, deep learning, and probabilistic programming.

JAGS is Just Another Gibbs Sampler. It is a program for analysis of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.

Sunday, October 07, 2018

2018-10-07 Sunday - Serverless Architectures on AWS, Second Edition

"Serverless Architectures on AWS, Second Edition teaches you how to design, secure and manage serverless backends that can power the most demanding web and mobile apps! This new edition has been fully-updated to include new chapters on current best practices and innovative use-cases, along with full coverage of the latest changes to AWS."

some additional links that may be of interest:

Saturday, October 06, 2018

2018-10-06 Saturday - Evaluating Open Broadcaster Software

This weekend I'm evaluating OBS (Open Broadcaster Software, GPLv2 license) - as a possible alternative to TechSmith's Camtasia commercial product.
  • Capabilities:
    • "High performance real time video/audio capturing and mixing. Create scenes made up of multiple sources including window captures, images, text, browser windows, webcams, capture cards and more."
    • "Set up an unlimited number of scenes you can switch between seamlessly via custom transitions."
    • "Intuitive audio mixer with per-source filters such as noise gate, noise suppression, and gain. Take full control with VST plugin support."
    • "Powerful and easy to use configuration options. Add new Sources, duplicate existing ones, and adjust their properties effortlessly."
    • "Streamlined Settings panel gives you access to a wide array of configuration options to tweak every aspect of your broadcast or recording."
    • "Choose from a number of different and customizable transitions for when you switch between your scenes or add your own stinger video files."
    • "Set hotkeys for nearly every sort of action, such as switching between scenes, starting/stopping streams or recordings, muting audio sources, push to talk, and more."
    • "Studio Mode lets you preview your scenes and sources before pushing them live. Adjust your scenes and sources or create new ones and ensure they're perfect before your viewers ever see them."
    • "Get a high level view of your production using the Multiview. Monitor 8 different scenes and easily cue or transition to any of them with merely a single or double click."
    • "OBS Studio is equipped with a powerful API, enabling plugins and scripts to provide further customization and functionality specific to your needs."
    • "Utilize native plugins for high performance integrations or scripts written with Lua or Python that interface with existing sources."

I've been using Camtasia for some client work - and while I think it does a decent job - the UI /UX  isn't always intuitively obvious (or, I just need to spend more time reading the documentation and going through their tutorials...) - so I'm hopeful that OBS may be a viable alternative.

These are the Recording configuration settings that I've settled on for the moment (which reduced the recording size from ~6MB to 837 kb)

So far I'm very pleased with the ease-of-use - it took me about 5 minutes to become productive with the tool.

Thursday, October 04, 2018

2018-10-04 Thursday - Computation Modeling, Two Suggested Books

Based on the reviews, table of contents, etc. - I've ordered the two following books:

Computational Modeling of Cognition and Behavior
by Simon Farrell (Author), Stephan Lewandowsky

"Computational modeling is now ubiquitous in psychology, and researchers who are not modelers may find it increasingly difficult to follow the theoretical developments in their field. This book presents an integrated framework for the development and application of models in psychology and related disciplines. Researchers and students are given the knowledge and tools to interpret models published in their area, as well as to develop, fit, and test their own models. Both the development of models and key features of any model are covered, as are the applications of models in a variety of domains across the behavioural sciences. A number of chapters are devoted to fitting models using maximum likelihood and Bayesian estimation, including fitting hierarchical and mixture models. Model comparison is described as a core philosophy of scientific inference, and the use of models to understand theories and advance scientific discourse is explained."

Doing Bayesian Data Analysis: A Tutorial with R, JAGS, and Stan 2nd Edition

"Doing Bayesian Data Analysis: A Tutorial with R, JAGS, and Stan, Second Edition provides an accessible approach for conducting Bayesian data analysis, as material is explained clearly with concrete examples. Included are step-by-step instructions on how to carry out Bayesian data analyses in the popular and free software R and WinBugs, as well as new programs in JAGS and Stan. The new programs are designed to be much easier to use than the scripts in the first edition. In particular, there are now compact high-level scripts that make it easy to run the programs on your own data sets."


© 2001-2021 International Technology Ventures, Inc., All Rights Reserved.