I really shouldn't laugh so much at someone else's misfortune or frustration. Still, as a 20+ year software developer, I have to wonder why anyone would have expected the plan to use a brand new “app” to count votes for the Iowa caucus to actually work out. It is never a good idea to make the first real-world use of a new application be something important and so publicly visible.The tagline of https://www.theregister.co.uk/2020/01/29/browser_security_enigma/ reads:
Brave, Google, Microsoft, Mozilla gather together to talk web privacy… and why we all shouldn't get too much of it
Browser makers keep coming back to the need to please advertisers
And therein lies the rub.
Websites cost money to run. Content costs money to create. Software, such as web browsers, cost time and frequently money to create and maintain.
As the saying goes, “there ain't no such thing as a free lunch.The Top Five Developer Skills That'll Make You a Hero (Hint: Involves LEGOs) by Jean-Paul Delimat is a great read. His advice for working on real-world software projects is spot-on. His LEGO analogies are both effective and some of the most amusing things that I have read all week.
I've been known to use Voltaire's quote “Perfect is the enemy of good” in the context of finding the line between beautiful code solutions and the pragmatics of delivering on-time.Everything that I needed to do to install and configure Drone.io in order to set up a simple CI/CD pipeline to rebuild and (eventaully) redeploy my website was documented somewhere on the Internet. I just had to piece the puzzle together from the information I found scattered among multiple sites. This post is my attempt to get everything documented in one place. I'm sure future-me will need the reminder. Hopefully, this information may be of some help to others as well.After publishing my original Nested Forms in Angular article, my friend and colleague Val Neekman suggested I add a fourth approach, where static factory methods on each of the child components are used instead of a separate factory service. So it is with my thanks to him for the idea, along with some sample code to look at and a much appreciated review of my implementation of the idea, that I am able to write up Part 2 in my Nested Forms in Angular series.It only took a few hours tonight to set up a new VPS machine with Docker, LetsEncrypt, and Drone.io to be able to build and deploy my Hugo blog to a test site. The whole CI/CD pipeline takes less than ten seconds to finish.
I will have to write up all of the details, including my docker-compose files, nginx configs, and .drone.yml later on this week. It's all super exciting to see it come together.
The official Angular documentation discussing Reactive Forms shows how one can use groups and arrays to organize a form, and to dynamically add to it. The drawback of the example on that page is that everything is in a single component.
Once a component starts to grow in size and complexity, it becomes desirable to decompose it into multiple smaller components. At this point, there are a number of ways to break up the form into a set of nested form elements.While waiting at the local Panera Bread shop for my lunch order, I noticed a fellow patron who was wearing a Miskatonic Observatory t-shirt. It made my day.
Inspired by the many blog sites out there that display a series of icons
linking to the site author's other sites and social media profiles, I
set out to add the same to my site.
Apparently, LinkedIn doesn't actually support
rel="me" links back to ones
personal website(s). How very disappointing.