The implications for healthcare, treatment, restoring capabilities - are staggering
2020-08-28
2020-08-26
2020-08-26 Wednesday - Vim Tips
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.
2020-08-25
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.
- My current working draft (admittedly, I've "boiled the ocean" - and it is a bit of overkill. As always, take what works for you - and discard the rest):
2020-08-19
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.
1.0 Travel
1.1. General Travel Strategy Ideas
- 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).
- 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.
- 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.
- Plan Ahead / Do Your Research - Useful Travel Guide Resources
1.2 Credit Cards
- 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.
- Minimally, I would suggest getting three business credit cards. Here are few examples - several of which have no annual fee:
- American Express Business Card
- Chase Visa Business Card
- Wells Fargo Business Credit Card
- CapitalOne Spark Business Card
- Bank of America Business Card (Mastercard)
- Why?
- 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.
- I have encountered situations (usually on international trips) - in which one or the other major credit card - was not accepted at a particular establishment.
- As another backup, consider opening a Schwab Checking account:
- https://www.schwab.com/checking
- No service fees or account minimums
- No foreign transaction fees
- 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.- 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).
- 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
- 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.
- 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.
- AARP also frequently offers great discounts on a number of other services
Additional travel reservation resources that you might consider:
- https://www.cheapair.com/
- https://www.agoda.com/
- https://www.oyster.com/
- https://www.kayak.com/
- https://www.priceline.com
- 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:
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:
- Embassy Suites
- Any of the Marriott brands, but in particular, I've enjoyed the Marriott Courtyard and Residence Inn
- Crowne Plaza
Of course, there are other alternative strategies for arranging accommodations - particularly if you need to plan for long-duration stays:
- Aibnb.com
- 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:
- 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.4 Airport Lounges
- Priority Pass
- Over 1,000 lounges, in over 130 countries
- 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.
- Escape Lounges
1.5 Air Travel
- Frequent Flyer Information & Deals
- Airport Codes
- Flight Information Resources
- https://www.seatguru.com/
- https://www.flightstats.com/v2
- www.flightarrivals.com/
- https://flightaware.com/
- https://www.flightradar24.com
- Checked Luggage:
- 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:
- Photocopies of any important travel documents:
- Passport
- Visa
- Work Permit
- Contract
- Drivers License
- Insurance Policiies
- Auto
- Health
- Professional/liability
1.6 Communications
- Personal Broadband Device
- 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.
- You can also use your smart phone's capability to create your own personal hotspot network connection.
- Suggested VPN Services (prompted by Arron Rouse's suggestion at the bottom of this post):
- 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.
- <todo: add links>
- Staying connected while traveling internationally:
- Skype
- Zoom
- Google Hangouts
- 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.
- I did this in 2004 and 2007 - when I did two different 5-month sabbaticals on my sailboat in Mexico.
- Alternatively, wait until you arrive in-country - and just purchase a disposable phone.
- This was a much better strategy - when I spent 6-months in Warsaw Poland.
1.7 Car Rentals
- 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.
- 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
- AAA Plus membership ($99)
- 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
- UPS Mailboxes
- 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.
- 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
Regus Lounge Membership ($100/month, or $89/month - annually)
2.3 Concierge Services
- <todo: add items here>
3.0 Packing
3.1 General
- 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.
- This creates a repeatable process - and increases the efficiency, quality, and speed of your ability to consistently pack for a trip.
- 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] heavy duty, mesh laundry bags
- Personal, everyday carry
- Kershaw Pocket Knife (suggested: RJ Tactical, or the Kuro)
- Pull-Apart Silver Key Ring Easy Detach Double Spring Split Snap Separate Chain
- Gerber 30-000469 Dime Mini Multi-Tool, Black
- LED Small Flashlight, 500Lumens Bright Mini Keychain Light, Portable USB Rechargeable
- Encrypted USB Backup Dongle (see Personal Security, below)
3.2 Carry-On Luggage
3.3 Checked Luggage
- Sturdy
- Rolling wheels
- Expandable zipper
- Make it easy to spot - with brightly colored luggage strap
- Make it easy to identify - with Luggage Tags
3.4 Road Warrior Luggage
3.4.1 Folding Luggage Cart
- RMS Folding Luggage Cart
- Samsonite Luggage Cart - my #1 recommendation
3.4.2 Backpack
- North Face
- Patagonia
- SwissGear
- Tortuga
- Jansport
- Targus (Targus backpacks have consistently been one of the most satisfying purchases for me)
- AmazonBasics Laptop Computer Backpack - Fits Up To 17 Inch Laptops
- Tocode Laptop Backpack 17-Inch Bag with USB Charging Port & Headphone Port
- Targus Drifter II Backpack Design for Business Professional Commuter
- SWISSGEAR 1900 ScanSmart Laptop Backpack
- YOREPEK 18.4 Laptop Backpack
- YOREPEK Rolling Backpack, 17 Inch Large Roller Backpack
- SOLDIERKNIFE Extra Large Durable 50L Travel
3.5 When Commuting by Car
- Car Clothes Hanger Bar
- Auxiliary Cable Cord for iPod/iPhone/Zune/Car Stereo/MP3
- For
toiletries, and misc. things that you'll want to keep organized
together - and to make packing, unpacking easier - I like to use the Voyager 12 inch Tool Bag on sale at Harbor Freight ($7.99, 2023-03-31)
[image credit: HarborFreight.com] |
4.0 Mobile Office Gear (re: Backpack)
- Client Engagement Journal
- Boorum & Pease Record Book, 21 Series, Record Ruled, 8-1/8" x 10-3/8", 300 Pages
- Read "the why" I use this particular type of journal
- Post-It Notes, Canary Yellow, 3" x 3"
- Mesh zippered bags (or this, or this, or this, or this)
- Bag "A" - office supplies
- Paper Mate Profile 1.4mm, black, ink pens
- A fine writing instrument, less prone to smudge
- Small 5" scissors
- Small stapler
- Measuring tape, for example:
- Sharpie 25162PP Accent Tank-Style Highlighter, Fluorescent Yellow, 2-Pack
- Bag "B" - misc. USB cables and adapters
- VeLLBox Gold Plated HDMI to VGA Adapter Cable with Micro-USB & 3.5mm
- Spare USB cables and wall socket adapters for charging mobile devices
- Amazon Fire Tablet
- iPod
- High Capacity Portable USB Charger, for example
- Case Logic QHDC-101 Portable EVA Hard Drive Case - Black
- WD 2TB My Passport Portable External Hard Drive, Black
- Note: Password protection + 256-bit AES hardware encryption
- PortaPow USB Charger for AA + AAA Rechargeable Batteries
- [2] extension chords (min. 6 ft each)
- Power Strip with USB charging ports
- For example:
- GE UltraPro Surge Protector, 10 Outlet Power Strip, 2 USB Charging Ports, Extra Long 6ft Extension Cord, 3 Prong, Grounded, Flat Plug, 3000 Joules
- Bototek Power Strip Surge Protector with 4 AC Outlets and 4 USB Charging Ports
- AmazonBasics 6-Outlet Surge Protector Power Strip with 2 USB Ports - 1000 Joule
- Logitech Wireless Keyboard and Mouse Combo (for example: MK270, MK545, MK345)
- Mouse pad (for those shiny surfaces that are problematic)
- Soho KVM Switch 4 Port USB 3.0 Sharing Box Selector
- Allows easily switching the mouse and keyboard between two computers.
- Hermitshell Hard EVA Travel Case
- Travel Sewing Kit
- Wet Ones Antibacterial Hand Wipes
- Small First Aid Kit
- Small zipper pouch
5.0 Comfort
6.0 Sleep
- Gel Eye Mask
- 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
- 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.
- I've used a couple of different brands over the years - some
are more effective than others:
- 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.
- Soothing background noise (a few of my favorites, played on my laptop, on loop) - these are also useful when I need to concentrate and do deep work:
- Rain Sounds, Ocean Waves and Distant Thunders
- Rain & Thunder with Ocean Waves Sounds
- Splashing Waves All Day on Playa Encuentro
- Cozy Cabin Ambience - Rain and Fireplace Sounds
- Thunderstorm At Sea Sounds For Sleeping, Relaxing
- Night Rain on a Car
- AWESOME SEATTLE CITY RAIN SOUNDS
- Rainy Night Coffee Shop Ambience with Relaxing Jazz Music
7.0 Personal Security
- ***NEVER*** use your Bank Debit Card - anywhere, but an ATM.
- Use your Business Credit Card for all other purchases for services, supplies, transactions.
- This one unbreakable rule gives peace of mind.
- Personal Alarm Devices
- Carry a Personal Alarm with you when walking anywhere outside of your hotel, client office, etc.
- Something like this:
- Door Stop/Alarm Devices
- Something like this:
- Encrypted USB Backup Dongle
- This is something you should put on your key chain (or, hidden in your secret stash, see below) - and it should contain scanned copies of your essential documents, contracts, identifications papers, insurance policies, etc.
- For the Advanced Road Warrior - add a 2nd dongle - containing a bootable image of Ubuntu Linux - so that you can stick it into any PC, reboot - and have a secure working computer.
- There are many products on the market that are pretty comparable - but I have used SanDisk USB's for many years:
- Secret Stash: [minimally: Cash, spare Credit Card, Encrypted USB]
- Assume one of the following scenarios:
- After a long day of working at the client location, you've stopped somewhere to get a bite to eat. As you walk to your car in the restaurant's parking lot - someone moves from out of the shadows and robs you.
- You wake-up in the middle of the night to discover that someone has broken into your room and taken your wallet/purse.
- Question:
- What would you want to have, safely hidden in your room - that would allow you to continue your mission - without skipping a beat?
- A few possible examples for a secret stash:
8.0 International Travel
Photo by Sven Scheuermeier on Unsplash https://unsplash.com/photos/AXsJBByg4Ic |
8.1 Foreign Languages
8.1.1 Apple Store
8.1.2 Google Play Store
8.2 Passports & Visa Resources
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):
- https://www.itseasy.com/
- https://www.dcpassportsandvisas.com/
- https://www.passportvisasexpress.com/
- https://www.washingtonexpressvisas.com/visaservices/
- https://www.rushmypassport.com/
8.3 International Mail Forwarding/Delivery
- DHL.com
- Alternate Delivery Destinations:
- 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.
- This worked wonderfully when having mail securely arranged for for delivery to Warsaw Poland, over a 6-month consulting engagement (2001-2002).
- Your hotel front desk
8.4 Additional Gear
- 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:
- Universal Travel Adapter - International Worldwide Plug Kit, Type C + 3 USB Power Wall Charger, 200 Countries
- Ceptics Adapter Plug Set for World Wide International Travel Use
- Ceptics 12Pcs International Travel Worldwide Grounded Universal Plug Adapter Set
9.0 Orienting Yourself and Situational Awareness
- Location of cab stands
- Location of bus stops
- Possible evacuation paths
- Nearby conference facilities
- Other hotels in the immediate area
- Potential "hard shelter" locations (e.g. subways, parking garages, below-ground tunnels, shopping facilities)
- Restaurants
- Coffee shops
- Convenience shops
- Retail stores
- Office supply stores
- Barber shops
- Shoe repair shops
- Mobile phone stores
- Health Clubs / Gym Facilities
- Urgent Care / Medical facilities
- Police stations
- 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
11.0 Online Resources and References
- Travel Advisories & Summary Information
- https://www.cia.gov/library/publications/the-world-factbook/index.html
- U.S. Department of State, Overseas Security Advisory Council (OSAC)
- U.S. Department of State, Travel Advisories
- World Clocks
- Currency Converters
- Voltage Referneces
- Weather Resources
- Distance Calculators
12.0 Tips From My Global Professional Network, on LinkedIn
With Gratitude! (and, in order of submissions received)
- 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."
- 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."
2020-08-08
2020-08-08 Saturday - Researching: Azure DevOps Build Pipelines
Photo by JJ Ying on Unsplash https://unsplash.com/photos/4XvAZN8_WHo |
This
weekend I'm doing a bit of a deep-dive research into the current
state of features, capabilities, and limitations - in Azure DevOps Build Pipelines - and researching additional
capabilities that are offered by plugins in the Azure DevOps section of
the Visual Studio Marketplace.
My corresponding LinkedIn post.
Going forward, I'll continue gathering information on this topic in my Lab.Cloud.Azure github repository, in this file:
https://github.com/intltechventures/Lab.Cloud.Azure/blob/master/Pipelines.md
1.0 Azure DevOps Build Pipelines
1.1 References
- https://azure.microsoft.com/en-us/services/devops/pipelines/
- Azure Pipelines Documentation
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/?view=azure-devops
- What is Azure Pipelines?
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops
* "Azure Pipelines is a cloud service that you can use to automatically
build and test your code project and make it available to other users."
- Key Concepts
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started/key-pipelines-concepts?view=azure-devops
- Getting Started
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started/pipelines-get-started?view=azure-devops
* "You define your pipeline in a YAML file called azure-pipelines.yml with the rest of your app."
* See "Feature Availability" table
- Task Types & Usage
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/process/tasks?view=azure-devops&tabs=yaml
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/?view=azure-devops
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/?view=azure-devops#tool
* https://github.com/Microsoft/azure-pipelines-tasks
+ Build & Release Tasks:
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/?view=azure-devops
* Android Signing Build & Release Task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/android-signing?view=azure-devops
+ Add a Build or Release Task
* https://docs.microsoft.com/en-us/azure/devops/extend/develop/add-build-task?view=azure-devops
+ Download Pipeline Artifacts task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/download-pipeline-artifact?view=azure-devops
+ Download Secure File Task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/download-secure-file?view=azure-devops
+ Jenkins Queue Job task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/jenkins-queue-job?view=azure-devops
+ Jenkins Download Artifacts task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/jenkins-download-artifacts?view=azure-devops
+ File Upload Task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/ftp-upload?view=azure-devops
+ Copy Files Task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/copy-files?view=azure-devops&tabs=yaml
+ Publish Pipeline Artifacts task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/publish-pipeline-artifact?view=azure-devops
+ Publish Build Artifacts task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/publish-build-artifacts?view=azure-devops
+ Install Apple Provisioning Profile task
* https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/install-apple-provisioning-profile?view=azure-devops
- Expressions
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops#functions
* Re: https://stackoverflow.com/questions/54931739/task-custom-condition-does-a-given-file-exist
* "There is no built in condition or function that operates off of the presence or absence of a file."
* "You can write and run a script that sets a variable, then check the contents of the variable."
* Example:
$fileExists = Test-Path -Path "$(System.DefaultWorkingDirectory)/file.txt"
Write-Output "##vso[task.setvariable variable=FileExists]$fileExists"
See posting for secondary task
- Integration Applications
+ https://docs.microsoft.com/en-us/azure/devops/integrate/?view=azure-devops
* "You can build custom applications or services that integrate with
your Azure DevOps and Team Foundation Server (TFS) accounts by using the
REST APIs to make direct HTTP calls, or utilize our .NET Client
Libraries."
+ Service Hooks in Azure DevOps Services
* https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/service-hooks?view=azure-devops
* "Using the Subscriptions REST APIs, you can programmatically create a
subscription that performs an action on an external (consumer) service
when a specific event occurs in a project."
+ Service hook consumers for Azure DevOps Services
* https://docs.microsoft.com/en-us/azure/devops/service-hooks/consumers?view=azure-devops
* "Use service hook consumers to programmatically create a
subscription. The subscription specifies the event, the consumer and the
action. Select the consumer that you want to use in your subscription
from the following consumers:..."
* Web Hooks, POST via HTTP
* https://docs.microsoft.com/en-us/azure/devops/service-hooks/consumers?view=azure-devops#webhooks
- Specify events that trigger pipelines
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops
* CI Triggers in Github
* https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/github?view=azure-devops&tabs=yaml#ci-triggers
- Notifications
+ https://docs.microsoft.com/en-us/azure/devops/notifications/about-notifications?view=azure-devops
* "Notifications help you and your team stay informed about activity
that occurs within your Azure DevOps projects. You're notified when
changes occur to work items, code reviews, pull requests, source control
files, and builds. You can be notified via email."
- File matching patterns reference
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/file-matching-patterns?view=azure-devops
- YAML schema reference
+ https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema%2Cparameter-schema
* "This article is a detailed reference guide to Azure Pipelines YAML
pipelines. It includes a catalog of all supported YAML capabilities and
the available options."
1.2 Visual Studio Marketplace - Azure DevOps
- https://marketplace.visualstudio.com/search?target=AzureDevOps&category=Azure%20Pipelines&sortBy=Installs
- AWS Toolkit for Azure DevOps
+ https://github.com/aws/aws-toolkit-azure-devops
+ https://docs.aws.amazon.com/vsts/latest/userguide/welcome.html
+ https://marketplace.visualstudio.com/items?itemName=AmazonWebServices.aws-vsts-tools
* "Tasks for Amazon S3, AWS Elastic Beanstalk, AWS CodeDeploy, AWS
Lambda and AWS CloudFormation and more, and running commands in the AWS
Tools for Windows PowerShell module and the AWS CLI."
* "AWSCLI - Interact with the AWSCLI (Windows hosts only)"
* "AWS Powershell Module - Interact with AWS through powershell (Windows hosts only)"
* "Beanstalk - Deploy ElasticBeanstalk applications"
* "CodeDeploy - Deploy with CodeDeploy"
* "CloudFormation - Create/Delete/Update CloudFormation stacks"
* "ECR - Push an image to an ECR repository"
* "Lambda - Deploy from S3, .net core applications, or any other language that builds on Azure DevOps"
* "S3 - Upload/Download to/from S3 buckets"
* "Secrets Manager - Create and retrieve secrets"
* "SQS - Send SQS messages"
* "SNS - Send SNS messages"
* "Systems manager - Get/set parameters and run commands"
- Publishing to Apple Store
+ https://github.com/microsoft/app-store-vsts-extension
* "Visual Studio Team Services (VSTS) extension for performing
continuous delivery to the App Store store from your automated CI
builds"
+ https://marketplace.visualstudio.com/items?itemName=ms-vsclient.app-store
* "Provides tasks for publishing to Apple's App Store from a TFS/Azure DevOps build or release pipeline"
* "The tasks install and use fastlane tools. fastlane requires Ruby
2.0.0 or above and recommends having the latest Xcode command line tools
installed on the MacOS computer."
+ https://github.com/fastlane/fastlane
* "The easiest way to automate building and releasing your iOS and Android apps"
- AWS S3 Upload
+ https://marketplace.visualstudio.com/items?itemName=MFelling.AWSS3Upload
- File Utilities Build Tasks
+ https://marketplace.visualstudio.com/items?itemName=richardfennellBM.BM-VSTS-FileCopier-Tasks
- Changed files
+ https://marketplace.visualstudio.com/items?itemName=touchify.vsts-changed-files
- Download a file
+ https://marketplace.visualstudio.com/items?itemName=Fizcko.azure-devops-download-a-file
- File Operations
+ https://marketplace.visualstudio.com/items?itemName=KirKone.fileoperations
1.3 Azure DevOps Feature Requests - and possible workarounds
- Run task if file/directory exists #1877
+ https://github.com/MicrosoftDocs/azure-devops-docs/issues/1877
+ See pseudo code example suggested, using script task
- bash: |
if [ -f your-file-here.txt ]; then
echo "##vso[task.setVariable variable=FILEEXISTS]true"
fi
- task: Foo@1
condition: eq(variables.FILEEXISTS, 'true')
- Add an exists() on Task Custom Condition
+ https://developercommunity.visualstudio.com/idea/366095/add-an-exists-on-task-custom-condition.html
1.4 Third-Party Solutions
- WinScp
+ SFTP/FTPS file transfers in Microsoft Azure WebJob
* Re: Azure WebJob
* https://docs.microsoft.com/en-us/azure/app-service/webjobs-create
* "Starts immediately when the WebJob is created."
+ https://winscp.net/eng/docs/guide_microsoft_azure_webjob_sftp
1.5 Training Resources
- https://azuredevopslabs.com/
1.6 For Comparison: Jenkins Pipeline Capabilities
- https://www.jenkins.io/doc/book/getting-started/
- https://plugins.jenkins.io/
+ File System Trigger
* https://github.com/jenkinsci/fstrigger-plugin
* https://plugins.jenkins.io/fstrigger/
* "The plug-in makes it possible to monitor changes of a file or a set of files in a folder."
- Pipeline Steps Reference
+ https://www.jenkins.io/doc/pipeline/steps/
1.7 Suggested Books
- Hands-on Azure Pipelines: Understanding Continuous Integration and Deployment in Azure DevOps 1st ed. Edition (July 2020)
+ https://www.amazon.com/Hands-Azure-Pipelines-Understanding-Integration/dp/1484259017/
- Agile Project Management with Azure DevOps: Concepts, Templates, and Metrics Paperback – (April 2019)
+ https://www.amazon.com/Agile-Project-Management-Azure-DevOps/dp/1484244826/
- Operations Anti-Patterns, DevOps Solutions, Jeffrey D. Smith, Manning Publications (MEAP, est. Fall 2020)
+ https://www.manning.com/books/operations-anti-patterns-devops-solutions
- Effective DevOps at Scale, Jennifer Davis, Ryan Daniels, O'Reilly Publishing (2016)
+ https://azure.microsoft.com/en-us/resources/effective-devops/
+ Note: 410 pages, *Free Book*
1.8 Articles of possible interest
2019
- How I Failed My Way to Success with Azure Pipelines+ https://toastit.dev/2019/02/06/how-i-failed-my-way-to-success-with-azure-pipelines/
+ https://toastit.dev/2019/02/17/how-i-failed-my-way-to-success-with-azure-pipelines-part-2-release/