Thursday, December 31, 2020

2020-12-31 Thursday - End-of-Year Personal Metrics for 2020

 

  • 67 technology research notebook blog posts
  • 46 sailing-related blog posts

  • 413 git commits (mostly in my personal knowledge management repositories)

  • 17,688 lines (including blanks) in my private "2020 Technology Reading List" notes file. (4,585 links to articles, videos, etc.) - a catch-all of what I've read/found to be interesting - and may want to be able to find/recall/reference in the future.

Saturday, December 26, 2020

2020-12-26 Saturday - Advice for 2021 Graduates

 

Photo by Simon English on Unsplash
https://unsplash.com/photos/48nerZQCHgo

 If I had a child, that would be graduating in 2021 - and going out into the professional world...I would spend the next 6-8 months finding different ways to communicate, illustrate, and educate them on these most important lessons that took me decades to learn:


What you will earn is largely limited by your own perceptions of your limitations - and not the perception of other's of your abilities.

Effort is necessary - but not all efforts are compensated equally, nor in a consistently linear fashion.

While you need to earn a decent living - always value learning, new challenges that will cause you to stretch and grow, and new experiences - over a mere title, or a salary.

Never stop learning.

Who you collaborate with - is one of the most important factors in your future growth - and fitness for future opportunities.

Value building relationships over transactions.

 

Sunday, December 13, 2020

2020-12-13 Sunday - Containerize Your Go Developer Environment

 Updating my personal development toolchain today with Docker 3.0.0 and reading this excellent series of articles by Christopher Crone (from the Docker blog's go-env-series):

Containerize Your Go Developer Environment (parts 1,2,3)

 

Saturday, December 05, 2020

2020-12-05 Saturday - Variations in API Filter Syntax

Variations in API Filter Syntax

Doing a bit of research today on variations in how different API implementations have chosen to support filter syntax. This blog post is a placeholder for organizing additional examples that I am working collect and organize.

1.0 References

  1. https://en.wikipedia.org/wiki/Query_string 
    1. " Various ad hoc limitations on request-line length are found in practice."
    2. "The common workaround for these problems is to use POST instead of GET and store the parameters in the request body."
  2. RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax
  3. https://www.programmableweb.com/category/all/apis 

2.0 Query Syntax Examples

2.1 Elastic Search Query Syntax:

2.2 Github.com 

  1. https://docs.github.com/en/free-pro-team@latest/rest/reference/search  
    • NOTE: Syntax, request & response examples shows on this page
    • The Search API does not support queries that:
      • "are longer than 256 characters (not including operators or qualifiers)."
      • "have more than five AND, OR, or NOT operators."
    • "GitHub Search API provides up to 1,000 results for each search."
    • Note: Uses the page metaphor: "Results per page (max 100)
    • TO-DO: verify if the API still uses the "per_page" parameter
  2. https://docs.github.com/en/free-pro-team@latest/github/searching-for-information-on-github/understanding-the-search-syntax
  3. https://docs.github.com/en/free-pro-team@latest/github/searching-for-information-on-github/searching-on-github

3.0 Review Backlog: Other API collections to examine:

  1. Wikipedia
  2. Twitter
  3. YouTube 
  4. Box
  5. DropBox
  6. LinkedIn
  7. Yelp 
  8. Indeed
  9. Fadcebook
  10. Twilio 
  11. Etsy
  12. PayPal
  13. Ebay
  14. Concur
  15. Uber
  16. SoundCloud
  17. Rotten Tomatoes 
  18. Reddit
  19. Thomson Reuters
  20. Basecamp
  21. Kiva
  22. Fitbit
  23. Vimeo
  24. Stripe
  25. Salesforce
  26. Coupa.com
  27. SAP
  28. Google
  29. AWS
  30. Azure

4.0 Additional Suggested Reading

  1. https://apievangelist.com/
  2. http://apistylebook.com/  
  3. https://www.moesif.com/blog/technical/api-design/REST-API-Design-Filtering-Sorting-and-Pagination/ 
  4. https://www.progress.com/blogs/rest-api-industry-debate-odata-vs-graphql-vs-ords
 

5.0 Suggested Books


 


Sunday, November 29, 2020

2020-11-29 Sunday - Load Balancing Concerns and Considerations

{work-in-progress post - I'll continue to elaborate on this post in the future, with additional sections and narrative text}

 In response to this recent article on DZone: Load Balancer Explained – Simplified Through Comics - I prepared this blog post.

A few additional suggested background reading articles that may be of interest for those who want to understand load balancing - and some of the related concerns/considerations - a bit deeper:

Background Reading

Misc. Forum Q&A 

Load Balancing Solution Vendors

NGINX

CloudFlare

F5

Broadcom CA Enterprise Software

Cloud Computing  Platforms

Microsoft Azure

AWS Cloud

Google Cloud

Saturday, November 21, 2020

2020-11-21 Saturday - Interesting Finds Today

 

Photo by iMattSmart on Unsplash

Today I've spent some time browsing through Stack Overflow questions - looking for interesting questions that I might take a stab at answering. 

An outcome of that effort has been the serendipity of learning about the following...

Puppeteer

"Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default, but can be configured to run full (non-headless) Chrome or Chromium."

What can it do?

  • Generate screenshots and PDFs of pages.
  • Crawl a SPA (Single-Page Application) and generate pre-rendered content (i.e. "SSR" (Server-Side Rendering)).
  • Automate form submission, UI testing, keyboard input, etc.
  • Create an up-to-date, automated testing environment. Run your tests directly in the latest version of Chrome using the latest JavaScript and browser features.
  • Capture a timeline trace of your site to help diagnose performance issues.
  • Test Chrome Extensions.

Here are some interesting links:

Additionally, these tutorial resources might be of interest
Nitay Neeman has some interesting Puppeteer content:

Playwright

🎭

  •  https://playwright.dev/
    • Playwright is a Node.js library to automate Chromium, Firefox and WebKit with a single API.
    • Playwright is built to enable cross-browser web automation that is ever-green, capable, reliable and fast.

Chrome 87, 88

Toledo JavaScript Chess Game

JS1K - The JavaScript Code Golfing Competition

I perused the code of some of the past competition winners - and was inspired by the level of conciseness and creativity. Note: It appears the competition's last year was 2019.

TCP/IP Port Database Resources

The SpeedGuide.net resource is a wealth of aggregated information - and includes links to additional resources (such as information on the SANS Internet Storm Center)

Friday, November 20, 2020

2020-11-20 Friday - REST API Design Guidance (PUT, POST, or PATCH for update?)

Photo by Ryan Quintal on Unsplash


I spent some time this evening assembling a response to a Stackoverflow question:

My answer:

Reading the RFCs is highly recommended

RFC 7231 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

https://tools.ietf.org/html/rfc7231

In particular, pay close attention to Section 4.3 Method Definitions

https://tools.ietf.org/html/rfc7231#section-4.3

    • "The POST method requests that the target resource process the representation enclosed in the request according to the resource's own specific semantics."
    • "The PUT method requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload."

Which is to say - that you will find variation in how an update action is processed (some folks use POST, some use PATCH, many use PUT), depending on their implementation-specific resource semantics.

In your example, it appears that the PUT resource-specific semantic implementation is treating the submitted data element as a full replacement - and since you did not include the age element - it is left as null.

PATCH is indeed intended as the verb for doing a partial update, refer to:

RFC 5789 PATCH Method for HTTP

https://tools.ietf.org/html/rfc5789

    • "The PATCH method requests that a set of changes described in the request entity be applied to the resource identified by the Request-URI. The set of changes is represented in a format called a "patch document" identified by a media type."
    • "The difference between the PUT and PATCH requests is reflected in the way the server processes the enclosed entity to modify the resource identified by the Request-URI. In a PUT request, the enclosed entity is considered to be a modified version of the resource stored on the origin server, and the client is requesting that the stored version be replaced. With PATCH, however, the enclosed entity contains a set of instructions describing how a resource currently residing on the origin server should be modified to produce a new version. The PATCH method affects the resource identified by the Request-URI, and it also MAY have side effects on other resources; i.e., new resources may be created, or existing ones modified, by the application of a PATCH."
    • "PATCH is neither safe nor idempotent"
    • "There is no guarantee that a resource can be modified with PATCH. Further, it is expected that different patch document formats will be appropriate for different types of resources and that no single format will be appropriate for all types of resources. Therefore, there is no single default patch document format that implementations are required to support."
    • "Clients need to choose when to use PATCH rather than PUT. For example, if the patch document size is larger than the size of the new resource data that would be used in a PUT, then it might make sense to use PUT instead of PATCH. A comparison to POST is even more difficult, because POST is used in widely varying ways and can encompass PUT and PATCH-like operations if the server chooses. If the operation does not modify the resource identified by the Request-URI in a predictable way, POST should be considered instead of PATCH or PUT."

When using PATCH for JSON type documents, see

RFC 6909 - JavaScript Object Notation (JSON) Patch

https://tools.ietf.org/html/rfc6902

    • "JSON Patch defines a JSON document structure for expressing a sequence of operations to apply to a JavaScript Object Notation (JSON) document; it is suitable for use with the HTTP PATCH method. The "application/json-patch+json" media type is used to identify such patch documents."

Additionally, you may find these resources useful

  1. https://restfulapi.net/http-methods/
  2. https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
  3. https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH
  4. https://en.wikipedia.org/wiki/Patch_verb
  5. http://jsonpatch.com/
  6. https://microservices.io/book

 

Interesting API Update Examples 

Okta

 


Sunday, November 08, 2020

2020-11-08 Sunday - Researching Azure API Gateway - Hybrid and Multi-Cloud Deployment

 
 
Hybrid, multi-cloud management platform for APIs across all environments

API Management in a Hybrid and Multi-Cloud World

Bring Azure services and management to any infrastructure
"For customers who want to simplify complex and distributed environments across on-premises, edge and multicloud, Azure Arc enables deployment of Azure services anywhere and extends Azure management to any infrastructure."
 
"The following functionality found in the managed gateways is not available in the self-hosted gateways:...", (KM: see article for details)

"When connectivity to Azure is lost, self-hosted gateway will be unable to receive configuration updates, report its status, or upload telemetry."

 
Deploy an Azure API Management self-hosted gateway to Docker
"Hosting self-hosted gateway in Docker is best suited for evaluation and development use cases. Kubernetes is recommended for production use."
 
Deploy a self-hosted gateway to Kubernetes

"The self-hosted gateway sends telemetry to Azure Monitor and Azure Application Insights according to configuration settings in the associated API Management service. When connectivity to Azure is temporarily lost, the flow of telemetry to Azure is interrupted and the data is lost for the duration of the outage. Consider setting up local monitoring to ensure the ability to observe API traffic and prevent telemetry loss during Azure connectivity outages."

Integrate API Management in an internal VNET with Application Gateway

How to use Azure API Management with virtual networks

"Azure Virtual Networks (VNETs) allow you to place any of your Azure resources in a non-internet routable network that you control access to. These networks can then be connected to your on-premises networks using various VPN technologies."


Azure Tips & Tricks #197:Getting started with Azure API Management

 

Sunday, October 25, 2020

2020-10-25 Sunday - GNU Compiler Collection (GCC) 10.2


 

For one who seeks to be a master of their craft - you must continually attend to sharpening the saw.

Today: A deep dive back into C++ POSIX threaded programming, using the G++ compiler, available with the GNU Compiler Collection (GCC 10.2) - and exploring the differences in C++17, and the experimental implementation of some C++20 features.

GCC References

Eclipse: C/C++ Development Toolkit (CDT) Resources

Although I usually rely on Microsoft Visual Studio (or Visual Studio Code) as my primary IDEs - I'm forcing myself to use Eclipse ("2020-09" CDT release) - so that I maintain familiarity & proficiency:

  • https://www.eclipse.org/cdt/
    • https://www.eclipse.org/cdt/documentation.php  
      • "The C/C++ Development Toolkit (CDT) is a collection of Eclipse-based features that provides the capability to create, edit, navigate, build, and debug projects that use C and/or C++ as a programming language."
      • "The CDT does not include the necessary compilers and debuggers to convert C/C++ code into executable programs and to debug those programs, but it does provide the frameworks that allow such tools to be integrated in a consistent fashion. This allows you to mix and match such tools depending on your project requirements."
  •  ...which leads to suggesting:

Cygwin

  • https://cygwin.com/
  • Once you have the GCC G++ elements installed, run "g++ -v" at the command line, and you should get something like this:

Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-cygwin/10/lto-wrapper.exe
Target: x86_64-pc-cygwin
Configured with: /mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0/configure --srcdir=/mnt/share/cygpkgs/gcc/gcc.x86_64/src/gcc-10.2.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=x86_64-pc-cygwin --host=x86_64-pc-cygwin --target=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --with-gcc-major-version-only --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.0 (GCC)

Or, alternatively, you may wish to try LLVM

LLVM & Clang

"The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines. The name "LLVM" itself is not an acronym; it is the full name of the project."

"LLVM began as a research project at the University of Illinois, with the goal of providing a modern, SSA-based compilation strategy capable of supporting both static and dynamic compilation of arbitrary programming languages. Since then, LLVM has grown to be an umbrella project consisting of a number of subprojects, many of which are being used in production by a wide variety of commercial and open source projects as well as being widely used in academic research. Code in the LLVM project is licensed under the "Apache 2.0 License with LLVM exceptions" "

  • "clang fully implements all of standard C++98 except for exported templates (which were removed in C++11), all of standard C++11, C++14, and C++17, and most of C++20."

Suggested Books:


  • "Coverage begins with the basics, then ranges widely through more advanced topics, including many that are new in C++17, such as move semantics, uniform initialization, lambda expressions, improved containers, random numbers, and concurrency. The tour even covers some extensions being made for C++20, such as concepts and modules, and ends with a discussion of the design and evolution of C++."
Some older books, that may also be of interest as background reading:

Useful Tutorials - General C++

Useful Tutorials - POSIX Threads

References

Tuesday, October 20, 2020

2020-10-20 Tuesday - Do One Good Thing - Before The Sun Sets Tomorrow

 

Photo by Diego PH on Unsplash 
 

A meditation for tomorrow:

Do one good thing before the sun sets tomorrow - for someone else - without any expectation of reward.

Plant a seed.
Offer a suggestion.
Make a recommendation.
Send a thank you.
Remind someone of the impact they had on your life, your career.
Reach out to someone and offer your help.
Volunteer.
Speak words of encouragement.
Offer praise for a job that was truly well done.
Pause for a moment and find something in another - for which you are grateful.

Be the thread of inspiration.

Be The Light For Others.

 

Friday, October 16, 2020

2020-10-16 Friday - Today's Meditation: Building Complex Things

 
There are many different schools of thought in the world of IT, software engineering, and architecture today.

The pendulum has swung so far in the direction of "Continuous delivery of throwing spaghetti against the wall - to see what sticks" - that many have lost sight of the need (and value) of doing __any__ deep design work.

That has an often predictable outcome: "Continuous Rework".

Which is neither agile, lean, efficient, or economical.

Consider this feat of engineering:

"This digital model was created for the project of the virtual exhibition 'Prague at the time of Charles IV' and shows how the construction of the Charles Bridge took place in the 14th century"


"construction began at 5:31am on 9 July 1357...[and] was completed 45 years later in 1402" https://en.wikipedia.org/wiki/Charles_Bridge

 

 Analysis. Design. Architecture. Planning. Calculations. Engineering. 

 All went into this effort. 

Much good would accrue - if we make a distinction between what is appropriate for trial-and-error engineering - and what benefits may accrue to valuing some judicious levels of investment in deep design work. 

Flailing may create the appearance of a lot of activity (and perhaps may seem to imply progress) - but, it is not a very efficient operating model.

Saturday, October 10, 2020

2020-10-10 Saturday - Free O'Reilly Book - Chaos Engineering by Casey Rosenthal & Nora Jones

 


Chaos Engineering: System Resiliency in Practice

https://www.verica.io/book/

 

Also see: 

The github repo ("A curated list of Chaos Engineering resources.") maintained by Pavlos Ratis

https://github.com/dastergon/awesome-chaos-engineering  

and:

https://principlesofchaos.org/

https://github.com/chaos-eng/chaos-eng.github.io/

and:

"The Chaos Toolkit aims to be the simplest and easiest way
to explore building your own Chaos Engineering Experiments."

https://chaostoolkit.org/



Tuesday, September 15, 2020

2020-09-15 Tuesday - Nature Vol 585: Healthcare and Ambient Intelligence

 Illuminating the dark spaces of healthcare with ambient intelligence
Nature  |  Vol  585  |  10  September  2020 (p-193)
https://www.nature.com/articles/s41586-020-2669-y.pdf

"Advances in machine learning and contactless sensors have given rise to ambient intelligence—physical spaces that are sensitive and responsive to the presence of humans. Here we review how this technology could improve our understanding of the metaphorically dark, unobserved spaces of healthcare. In hospital spaces, early applications could soon enable more efficient clinical workflows and improved patient safety in intensive care units and operating rooms. In daily living spaces, ambient intelligence could prolong the independence of older individuals and improve the management of individuals with a chronic disease by understanding everyday behaviour. Similar to other technologies, transformation into clinical applications at scale must overcome challenges such as rigorous clinical validation, appropriate data privacy and model transparency. Thoughtful use of this technology would enable us to understand the complex interplay between the physical environment and health-critical human behaviours"

Wednesday, August 26, 2020

2020-08-26 Wednesday - Vim Tips

 

Some years ago I adopted a habit of editing text/config/markdown files with the vim editing tool - to force me to develop and maintain some skill with that tool - for when I need to do some work inside a Linux machine.
Reading this article tonight - help reinforce some tips that I have read about - but just hadn't quite memorized. 
https://initialcommit.com/blog/7-versatile-vim-commands

 

I also have a Tips.VIM.md file that I maintain in my Tips repository on github.

 


 

Tuesday, August 25, 2020

2020-08-25 Tuesday - Ideas for Architecture Diagram Title Blocks

Photo by Sergey Zolkin on Unsplash
https://unsplash.com/photos/m9qMoh-scfE
 

 I've begun drafting some ideas for what kind of information may be useful to include in "Title Block" for architecture diagrams. 

  • I think that the current state (or, lack thereof) of annotating software design architectural drawings - is abysmal - and much might be gleaned by looking left-and-right - and seeing how other industries annotate their diagrams.

  • Problem Statement:

    • Diagrams that are exported from authoring tools, culled form PowerPoint, Visio, etc. - usually do not have a proper "Title Block" included.
    • These diagrams are then uploaded to various places, emailed, shared, embedded (e.g. in PPT, Word, web sites, etc.).
    • Thus, the thread of context is lost - and they become orphans, once separated - with no clear traceability (i.e. Who, What, When, Where, Why)
  • I've done a brief survey of different Title Block styles - from various construction blueprints and building architecture diagrams - to gather some examples - as input to writing this document.

Wednesday, August 19, 2020

2020-08-19 Wednesday - Road Warrior Travel Tips

Writing this post was cathartic for me. It is an expression of hope, of optimism - that COVID-19 is only a temporary condition - and that we will be able to travel safely and freely again - at some point in the future.

Photo by Callum Chapman on Unsplash
https://unsplash.com/photos/R01A9PJQNIM

STATUS OF THIS POST: WORKING DRAFT

The motivation for writing this blog posting arose this evening - when I learned that a family member will soon begin joining the ranks of Road Warriors (as a traveling nurse). This is written to provide her with some tips, suggestions, ideas.

In the last decade, I've had several years in which I spent 46-48 weeks traveling - staying in hotels over the course of most of the year. Over the course of my 30+ year career - my international experience has included frequent travel to work with clients in Australia, Bermuda, Canada, the Caribbean (Antigua, West Indies), China, England, Germany, Lebanon, Pakistan, Poland, and Turkey. In addition, my travels have included spending time in the Czech Republic, Egypt, Indonesia, France, Malaysia, Mexico, Thailand, the Netherlands, and Russia.
 
What follows - are the essential tips that I would give to anyone that was just starting out in their professional career - anticipating frequent domestic / international travel.

1.0 Travel 

1.1. General Travel Strategy Ideas

  1. When I look back over the business travel I've done over the last 30+ years - the one thing that I regret - was not adding a few extra days to some of those trips to far-off/distant places. Even just an extra day - after my business meetings were concluded - would have allowed some time for sight-seeing - and explore so much more of some of those unique destinations. In some cases, a week or two, would have been so very appropriate (my many 3-week trips to Australia, my many trips to London, that far-too-short 2-week trip to Istanbul, that all-too-brief rushed weekend trip via night train to Prague in winter). 
  2. For many years, I was far too frugal to pay the small upgrade fee for a bump to business class. Only in later years did I fully appreciate how much more rested I would be - and the food, wine, and service - made a significant difference - even on flights that were just under 2-hours long.
  3. Only in very recent years - as my body became less resilient to the rigors of frequent travel - have I allowed myself a rare self-indulgent luxury - of checking into a hotel, near the airport, the night before - allowing an opportunity to take advantage of the hotel's reasonable parking rates, and having a good dinner - and breakfast the following morning - before heading to the airport for an early departure. This is primarily due to the 2-hour drive required to get to the main airport, when I am beginning my travel from my sailboat.
  4. Plan Ahead / Do Your Research - Useful Travel Guide Resources
    1. https://www.tripadvisor.com
    2. https://www.lonelyplanet.com/ 
    3. https://www.fodors.com/
    4. https://www.travelfish.org/ 
    5. https://www.planetware.com/
    6. https://www.expatica.com/

1.2 Credit Cards

  1. As you'll be traveling for business - I strongly encourage you to open a business credit card account - it will help make tracking your business expenses so much easier.
  2. Minimally, I would suggest getting three business credit cards.  Here are few examples - several of which have no annual fee:
    1. American Express Business Card
    2. Chase Visa Business Card
    3. Wells Fargo Business Credit Card
    4. CapitalOne Spark Business Card 
    5. Bank of America Business Card (Mastercard)
    6. Why
      1. There was a day, many years ago, when I had flown to the Main Island of Bermuda  (which consisists of 181 islands) for a consulting engagement with the Bank of Butterfield in Hamilton. When I went to check-in, I discovered that all of the credit cards I carried (I think it was five) - had expired dates. Fortunately, I was traveling with a colleague - who was able to put my room on his card - until I could make arrangements with my card providers to expedite delivery of new cards to me...which they did...arriving within ~3 days...after my frantic calls that night. 
      2. I have encountered situations (usually on international trips) - in which one or the other major credit card - was not accepted at a particular establishment. 
  3. As another backup, consider opening a Schwab Checking account:
    1. https://www.schwab.com/checking
      1. No service fees or account minimums 
      2. No foreign transaction fees
      3. Unlimited ATM fee rebates worldwide

1.3 Booking Reservations

My first choice in booking travel reservations is Expedia.com - (and, if you are 50+, and have AARP membership, you can use the AARP Expedia site - which usually will reflect the typical 10% AARP discounted rate)

My rationale:

While booking through a third-party service provider, such as Expedia, means that you will forego earning points with a hotel's own rewards program - I find the peace of mind (in the following points) to be a primary factor in my decision.
  1. When/if you need to cancel a reservation - my decades of experience using Expedia - has been completely painless and stress-free (as long as your reservation does include a cancellation policy).  
  2. The one time that a hotel had overbooked - and could not honor my Expedia-booked reservation - Expedia called - as I drove to the hotel - and advised that they could modify the reservation and book a nearby (and better!) hotel - at no additional cost. Two words: Customer Service
  3. I've found the reviews on Expedia to be very useful - in avoiding marginal/bad hotels - and often there are comments about the safety of the area, and notes on nearby services, restaurants, etc. 
  4. The description of the hotel on Expedia is very helpful in verifying if the room will include an ironing board, microwave, and fridge - or, if those are optional - or, if those are available at a different price tier. The descriptions have also been helpful in identifying hotels that have on-premise, self-service, coin-operated, laundry machines.
  5. AARP also frequently offers great discounts on a number of other services

Additional travel reservation resources that you might consider:

  1. https://www.cheapair.com/
  2. https://www.agoda.com/
  3. https://www.oyster.com/ 
  4. https://www.kayak.com/ 
  5. https://www.priceline.com
  6. https://www.tripit.com/web

 If you will be paying your travel expenses out of your own pocket - then, for convenience, value, quality, and comfort - here are my recommendations for hotels, in order of preference:

  1. Best Western Plus
  2. Comfort Inn 
  3. Wyndham La Quinta

However, If the client will be reimbursing you for your travel costs, here are a few additional hotel recommendations - offering a higher tier of services, quality, comfort, and convenience:

  1. Embassy Suites
  2. Any of the Marriott brands, but in particular, I've enjoyed the Marriott Courtyard and Residence Inn
  3. Crowne Plaza

Of course, there are other alternative strategies for arranging accommodations - particularly if you need to plan for long-duration stays:

  1. Aibnb.com
  2. Craigslist can be a very useful tool for short-term, or long-term rentals - and I've even used it to find just a room to rent, on a month-to-month basis, in the past:
    1. https://www.craigslist.org/about/sites
  3. By the time you factor in the costs for an apartment (usually first and last month rent, renters insurance, cleaning fee, possible additional required security deposits, parking fees, utilities, furnishings - and the possible need to pay an early termination fee - if the gig ends early) - you may find that long-term rates with some hotels - are actually very cost-competitive - on a weekly, or monthly basis. I once kept a hotel room in Olympia, WA for 18 months - instead of renting an apartment - because I wasn't sure how long the engagement was going to last. For example, Extended Stay America offers a few different rate plans for longer-term stays.
    1. https://www.extendedstayamerica.com/about/weekly-rate-hotels.html
    2. https://www.extendedstayamerica.com/monthly-rate-hotels

1.4 Airport Lounges

If you will be flying frequently - and will be starting (or connecting) through major city hubs - it may be beneficial to consider purchasing a membership that grants you access (for a small nominal fee, per use) - to the first/business class lounges.
  1. Priority Pass
    1. Over 1,000 lounges, in over 130 countries
  2. American Express Platinum cardholders have access to the American Express Global Lounge Collection - which includes free membership to Priority Pass, as well as several other lounge programs. 
  3. Escape Lounges

1.5 Air Travel

    1. Print copies of your itinerary (to include your destination hotel address/phone), and a "Contact Me" page (minimum: Phone, Email) - placed on top of the contents - so that if your luggage becomes lost - and someone opens it - they'll see how to contact you - and where it needs to be delivered.
  • Carry-on Luggage:
    1. Photocopies of any important travel documents:
      1. Passport
      2. Visa 
      3. Work Permit
      4. Contract
      5. Drivers License
      6. Insurance Policiies
        1. Auto
        2. Health
        3. Professional/liability

1.6 Communications

  1. Personal Broadband Device
    1. For many years, I have carried an AT&T Broadband device - that is combined with my cell phone plan - which currently provides 45 GB of data per month - which has been more than sufficient for my internet connectivity needs while traveling on business.   
    2. You can also use your smart phone's capability to create your own personal hotspot network connection.
      1. Apple iPhone or iPad
      2. Android
  2. Suggested VPN Services (prompted by Arron Rouse's suggestion at the bottom of this post):  
    1. If your mobile data plan is quite limited (e.g. 2 GB per month, or less) - you may find yourself tempted to leverage the hotel internet, or other public internet access points (e.g. Starbucks). This is fine for most of your internet browsing needs - but when you need to conduct financial transactions - or any thing that involves your personal/sensitive information - you'll want to have an additional layer of security. This is where a Virtual Private Network (VPN) will be beneficial.
    2. <todo: add links>
  3. Staying connected while traveling internationally:
    1. Skype
    2. Zoom 
    3. Google Hangouts
    4. Check with your phone provider - and determine if you can temporarily add your destination country to your current billing plan. This can save you quite a bit of money.
      1. I did this in 2004 and 2007 - when I did two different 5-month sabbaticals on my sailboat in Mexico.
    5. Alternatively, wait until you arrive in-country - and just purchase a disposable phone.
      1. This was a much better strategy - when I spent 6-months in Warsaw Poland.

1.7 Car Rentals

  1. Check with your auto insurance agent - and ask if your policy covers car rentals. If not, ask about adding that as an additional benefit - even for short duration trips - this can save you quite a bit of money. You'll want to print-out several copies of that insurance policy coverage. This strategy is probably best for car rentals in the United States. When I've rented a car in Canada - I paid the car rental agency the additional fee for their additional insurance coverage. My personal auto policy would have been sufficient - but in the event of an accident - I had peace of mind that I was covered - with certainty. 
  2. Your credit card may also include additional benefits for car rental insurance coverage. However, those benefits have been changed on a few of my credit cards in recent years - so double check. Also be certain that the language doesn't exclude certain rental usage classifications (e.g. business vs. personal).

1.8 Using Your Personal Automobile

    • If you will be frequently driving long distances for your commute.
    • If you are driving an older model car - and have any concerns about it possibly having issues - and leaving you stranded somewhere
    • If you will be commuting to geographic regions that may have very cold winter weather - with a greater risk of a dead car battery.

2.0 Additional Support Systems

2.1 Mail Delivery

  1. UPS Mailboxes
    1. For my professional business, I have a UPS Mailbox setup in my home town. They take care of forwarding my mail - where ever I may need to travel - and provide a great peace of mind that mail isn't accumulating on my doorstep - or being stolen out of a mailbox that isn't secured.
    2. Additionally, when working at a client's remote office - spending weeks, or months, on the road - I often setup a local UPS Mailbox in that city as well. This also offers great peace of mind - and avoids worrying about mail sitting unsecured at a hotel front desk, or having it delivered  to rental location - that may change frequently - or periodically.  

2.2. Temporary/Local Office Accommodations

  1. Regus Lounge Membership ($100/month,  or $89/month - annually)  

     

2.3 Concierge Services

  1. <todo: add items here>

3.0 Packing

3.1  General 

  1. Create a packing list - this will help ensure that you have everything packed - both before departing - and before returning - and avoid leaving things behind in hotel rooms.
    1. This creates a repeatable process - and increases the efficiency, quality, and speed of your ability to consistently pack for a trip. 
    2. Because I have put in place the mechanisms, arrangements, the organizational structure, and have invested in the proper preparation and tooling - I can be packed, and on the road - for a multi-week, or multi-month trip - in about 30 minutes.
  2. [2] heavy duty, mesh laundry bags  
  3. Personal, everyday carry
    1. Kershaw Pocket Knife  (suggested: RJ Tactical, or the Kuro)
    2. Pull-Apart Silver Key Ring Easy Detach Double Spring Split Snap Separate Chain 

3.2 Carry-On Luggage

Here are a few suggested options:

3.3  Checked Luggage

There are plenty of options - but here are some important things to look for:
  1. Sturdy
  2. Rolling wheels
  3. Expandable zipper
  4. Make it easy to spot - with brightly colored luggage strap
  5. Make it easy to identify - with Luggage Tags
A few examples:

3.4 Road Warrior Luggage

3.4.1 Folding Luggage Cart

As I often need to travel with a client laptop, my own business laptop, and a backpack - I have found that one of the best travel equipment purchases of my entire career - was a folding luggage cart. 
 

3.4.2 Backpack

I am very particular about my choice of backpack. It must have lots of compartments, be able to accommodate a 17" laptop - and be able to hold most of my "mobile office" accessories.  
 
Some of the best brands (12) include:
  • North Face 
  • Patagonia
  • SwissGear
  • Tortuga 
  • Jansport
  • Targus (Targus backpacks have consistently been one of the most satisfying purchases for me)
One requirement that I will probably add when I need to replace my current backpack - wheels and an extending handle. 

A few examples of backpacks that you might consider:
 

3.5 When Commuting by Car

[image credit: HarborFreight.com] 


4.0 Mobile Office Gear (re: Backpack)

5.0 Comfort

When you are on the road, constantly, small things can make a difference in your comfort level - and help reduce stress. Here are a few ideas:

 

6.0 Sleep 

When you travel enough to qualify for the "Road Warrior" designation - you'll quickly learn to appreciate the impact that frequent travel can have on your sleep patterns. Especially if you are waking-up at 2am to catch a shuttle to an airport that is over 2-hours away - for playing your part in the 2-hour Security Theater that is performed by the TSA, and catching your flight so that you can arrive in your destination city, pick-up your luggage, pick-up your rental car, negotiate the morning rush-hour traffic, and still arrive at the client's office by 9am - ready to put in a full 9-10 hour day. 

These are the "essentials" for getting a good night's sleep. No more tossing and turning - praying for the "sleep elves" to come and sprinkle their magic dust...
  • Gel Eye Mask
    1. Target, Gel Eye Mask Gray, by Design ($9.00)
 

  • Ear plugs
    • https://www.amazon.com/dp/B07RDK9V58/
      • "Reusable Silicone Ear Plugs - ANBOW Waterproof Noise Reduction Earplugs for Sleeping, Swimming, Snoring, Concerts, 32dB Highest NRR, 3 Pairs with Bonus Travel Pouch"
  • Sleeping pills
    1. There may be times, when at least one sleeping pill is essential - to help you get that critical 3-5 hours of deep sleep - that includes some solid REM phase recovery sleep - that you need to operate at minimally optimal performance levels.  
    2. I've used a couple of different brands over the years - some are more effective than others:
      1. Recently I've had good experiences with the Equate Acetaminophen PM brand, sold by Walmart (80 gelcaps, 500 mg Acetaminophen, 25 mg Diphenhyrdamine).
      • Motrin PM (80 coated caplets, 200 mg Ibuprofen, 38 mg Diphenhyrdamine citate) may also be a viable alternative.

7.0 Personal Security  

8.0 International Travel

Photo by Sven Scheuermeier on Unsplash
https://unsplash.com/photos/AXsJBByg4Ic

 

8.1 Foreign Languages

8.2 Passports & Visa Resources

For international travel, this is a nice addition to your travel gear - and adds a professional touch to the impression you make (whether at immigration, or at your hotel check-in):
When traveling to regions that have notorious pick-pocket problems, I use an alternative, like this:

With COVID-19 interrupting many government services - you should check the current status of the U.S. Passport office phased reopening:
 
For express services - when needing to get a new/renewed passport - or to obtain required travel
visas - I've used the following Washington D.C. service in the past:
  • <todo: add details>

Additional passport services that may be useful to know about (however, I suggest checking their latest reviews on Yelp, first):

8.3 International Mail Forwarding/Delivery

  1. DHL.com
  2. Alternate Delivery Destinations
    1. A local American Express office (if you are an Amex card holder) - check with the local office in your foreign-destination city and confirm if they will allow you to have mail delivered to their office. They'll store it in their secure vault - and you'll have one less thing to worry about.
      1. This worked wonderfully when having mail securely arranged for for delivery to Warsaw Poland, over a 6-month consulting engagement (2001-2002).
    2. Your hotel front desk

8.4 Additional Gear

  1. International Universal Plug Adapter Set
    • I strongly suggest that you carefully check the product reviews. This is one purchase - that you do not want to take chances on - and I wold be hesitant to leave a hotel room with something plugged in. 
      • While attending a conference, I happened to be sitting in my hotel room in San Francisco during a break in between sessions - when I noticed my relatively new replacement laptop power supply started smoking. I was lucky that I had not yet left the room - to return downstairs for the next session.
      • While staying in an apartment in Warsaw Poland - all of the bulbs in the bathroom suddenly exploded due to a power surge.
      • While in Istanbul Turkey - I got a severe electrical shock while connecting a computer to an improperly grounded outlet - this was at the offices of a major bank.
    • Some example products:

9.0 Orienting Yourself and Situational Awareness

 Whenever I arrive in a new city for a new client engagement - once I've unpacked - I will usually do a perimeter walk - at a distance of about 2-blocks from where I'm staying. This allows me to identify several things:
  1. Location of cab stands
  2. Location of bus stops
  3. Possible evacuation paths
  4. Nearby conference facilities
  5. Other hotels in the immediate area
  6. Potential "hard shelter" locations (e.g. subways, parking garages, below-ground tunnels, shopping facilities)
  7. Restaurants
  8. Coffee shops 
  9. Convenience shops 
  10. Retail stores
  11. Office supply stores
  12. Barber shops
  13. Shoe repair shops
  14. Mobile phone stores
  15. Health Clubs / Gym Facilities
  16. Urgent Care / Medical facilities
  17. Police stations
  18. Libraries

For any of the  above that I don't find immediately nearby - I'll spend an hour putting together a file in a /Locations directory that I maintain (part of a personal "knowledge management" process I've developed over the years) - that will then be my handy list for organizing information that I discover about that particular area - should I need to find something quickly in the future, or return after some time may have passed.

An additional  goal of my perimeter walk is to assess the vibe of the neighborhood - and assess its relative safety - and identify any potential risks or threats. Noting the safe, and possibly less safe - passages.

Within a week - I will have made a personal connection with a number of people in that immediate neighborhood - including the hotel front desk personnel - establishing a network of potential information resources.

10.0 Building A Network In New Places 

There are a number of ways that you can take advantage of a business trip to expand your personal and professional network of connections. 

A couple of the resources that you may find beneficial:

11.0 Online Resources and References

12.0 Tips From My Global Professional Network, on LinkedIn

With Gratitude!  (and, in order of submissions received)

  1. Terry Brown,  Senior Business Architect at Legal & General
    (Redhill, United Kingdom)
    •  "At least one outfit in hand luggage in case of lost bag. Wear one, wash one. Friend of mine had none for whole family and very little available to buy. Plus always drink the local beer." 
  2. Arron Rouse, Consultant GRC Enterprise Architect and Managing Director at ClassiQ Ltd
    (Chichester, England, United Kingdom)
    • "Buy a second set of everything for your toiletries bag so that you don't have to unpack/pack it every time you go home"
    • "Travel as light as possible. If you can keep it to hand luggage, your life will be happier. "
    • "Travel as light as possible part 2. If you have the chance, only take your laundry home with you."
    • " If you're staying in a hotel, do your ironing there."
    • "Even if you get expenses, do not eat out every night unless you want to get fat. An easy way to achieve this is to have your main meal at lunchtime and a sandwich in the evening."
    • "Subscribe to a VPN service if you're going anywhere remotely dodgy or oppressive." 
    • "While abroad, Skype Out is often much cheaper than making phone calls home if you need to call a landline."

 


Copyright

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