<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Christopher Vasquez</title>
<subtitle>Posts and notes from christophervasquez.net</subtitle>
<link href="https://christophervasquez.net/feed.xml" rel="self"/>
<link href="https://christophervasquez.net/"/>
<id>https://christophervasquez.net/</id>
<updated>2026-11-09T20:55:00-08:00</updated>
<author><name>Christopher Vasquez</name><uri>https://christophervasquez.net/</uri></author>
<entry>
<title></title>
<link href="https://christophervasquez.net/notes/2026-11-09-hello-fediverse.html"/>
<id>https://christophervasquez.net/notes/2026-11-09-hello-fediverse.html</id>
<published>2026-11-09T20:55:00-08:00</published>
<updated>2026-11-09T20:55:00-08:00</updated>
<content type="html">&lt;p&gt;This site is now on the fediverse. If you're reading this on Mastodon, you followed @christophervasquez.net@christophervasquez.net — short notes and blog posts published here on my own website first, bridged over by Bridgy Fed. The site stays the source of truth; the fediverse is a window into it.&lt;/p&gt;</content>
</entry>
<entry>
<title>From Casual Drinker to Coffee Connoisseur: A Guide to Appreciating Flavor, Aroma, and Mouthfeel</title>
<link href="https://christophervasquez.net/blog/from-casual-drinker-to-coffee-connoisseur-a-guide-to-appreciating-flavor-aroma-and-mouthfe.html"/>
<id>https://christophervasquez.net/blog/from-casual-drinker-to-coffee-connoisseur-a-guide-to-appreciating-flavor-aroma-and-mouthfe.html</id>
<published>2026-04-28T00:00:00-07:00</published>
<updated>2026-04-28T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/from-casual-drinker-to-coffee-connoisseur-a-guide-to-appreciating-flavor-aroma-and-mouthfe-0.webp" alt="from-casual-drinker-to-coffee-connoisseur-a-guide-to-appreciating-flavor-aroma-and-mouthfe image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;For many, a morning cup of coffee is simply a caffeine delivery system—a warm, bitter necessity to kickstart the day. However, coffee is one of the most chemically complex beverages in the world, containing over 1,000 aromatic compounds that contribute to its diverse flavor profile (Specialty Coffee Association [SCA], 2016). Transitioning from simply liking the jolt of coffee to genuinely appreciating its nuanced flavor notes, aromas, and mouthfeels requires a shift in both mindset and technique. By understanding the established language of coffee, the physical mechanics of tasting, the science of brewing, and the agricultural roots of the bean, anyone can elevate their daily cup into a refined sensory experience.&lt;/p&gt;
&lt;h3&gt;The World Coffee Lexicon and Flavor Wheel&lt;/h3&gt;
&lt;p&gt;The first step in coffee appreciation is developing a vocabulary to describe what is happening on the palate. Without the right words, a coffee might just taste "like coffee." To solve this, industry experts created the World Coffee Research Sensory Lexicon, which subsequently informed the modern Coffee Taster's Flavor Wheel (World Coffee Research, 2017).&lt;/p&gt;
&lt;p&gt;The flavor wheel is a visual tool designed to help tasters move from broad categories to highly specific notes. When tasting a new coffee, it is best to start at the center of the wheel, which features general descriptors like "Fruity," "Nutty/Cocoa," or "Floral." As the flavors become clearer, the taster moves outward. For example, a "Fruity" note might be narrowed down to "Berry," and finally pinpointed as "Strawberry" or "Blueberry." Using the lexicon ensures that terms are grounded in objective, universally understood references rather than purely subjective memories.&lt;/p&gt;
&lt;h3&gt;The Mechanics of Tasting: Smell, Slurp, Locate&lt;/h3&gt;
&lt;p&gt;Tasting coffee is an active, intentional process that goes far beyond taking a simple sip. Professional coffee tasters, known as Q Graders, use a standardized method called "cupping" to evaluate coffee, but the underlying mechanics—smell, slurp, and locate—can be applied to a standard mug at home.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Smell (Aroma): Much of what humans perceive as flavor is actually derived from the olfactory system. Before tasting, it is essential to inhale deeply. Assess the "dry aroma" of the ground beans, and then the "wet aroma" once water is introduced.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Slurp (Aeration): While slurping is considered impolite at the dinner table, it is a requirement in coffee tasting. Taking a swift, loud slurp forcefully introduces oxygen into the liquid, spraying it across the entire palate. This aeration process releases volatile aromatic compounds into the retro-nasal passage, maximizing the perception of flavor (SCA, 2016).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Locate (Mouthfeel and Finish): Once the coffee is on the palate, focus on where the flavors land and how the liquid feels. This tactile sensation is known as "mouthfeel" or body. Is it heavy and syrupy, or light and tea-like? Finally, note the finish or aftertaste—does the flavor dissipate quickly, or does a pleasant, lingering sweetness remain?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The Impact of Brew Methods&lt;/h3&gt;
&lt;p&gt;Even the highest-quality coffee beans can taste flat or overly bitter if brewed incorrectly. The brewing process is an exercise in extraction—using water as a solvent to pull flavors out of the roasted bean. Different brew methods manipulate variables like pressure, gravity, and time to highlight different aspects of the coffee's profile.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Immersion (e.g., French Press): In immersion brewing, coffee grounds steep directly in water. Because this method often uses metal filters, more oils and insoluble particles end up in the cup, resulting in a heavier mouthfeel and robust, chocolatey notes.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Percolation/Pour-Over (e.g., V60, Chemex): Pour-overs rely on gravity to pull water through a bed of coffee and a paper filter. Paper filters trap heavy oils, resulting in a cup with a very clean, light body. This method is highly favored for highlighting bright acidity and delicate floral or fruity notes.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Pressure (e.g., Espresso): Espresso forces highly pressurized water through tightly packed, finely ground coffee. This creates a highly concentrated beverage with intense flavors and a thick, creamy mouthfeel.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Precise control over water temperature, grind size, and brew time is necessary across all methods to ensure the coffee is neither under-extracted (sour and thin) nor over-extracted (bitter and astringent).&lt;/p&gt;
&lt;h3&gt;Coffee Quality, Sourcing, Varietals, and Regions&lt;/h3&gt;
&lt;p&gt;The final piece of the coffee appreciation puzzle lies in understanding the agricultural origins of the bean. Coffee is a fruit, and like wine, its flavor is heavily dictated by terroir—the environmental factors, soil, and climate in which it is grown.&lt;/p&gt;
&lt;p&gt;Most commercial coffee is a blend of beans designed for uniformity and shelf stability. In contrast, specialty coffee focuses on traceability. Knowing the specific region, altitude, and processing method provides crucial context for the flavors in the cup (Hoffmann, 2018).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Regions: Coffee grown in Latin America is traditionally known for balanced notes of chocolate, nuts, and mild caramel. African coffees, particularly those from Ethiopia and Kenya, are famous for their bright acidity, complex fruitiness, and floral aromas. Coffees from the Asia/Pacific region often exhibit heavier bodies with earthy, spicy, or herbal characteristics.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Varietals and Processing: Just as there are different types of apples, there are different botanical varietals of the Coffea arabica plant (such as Bourbon, Typica, or Gesha), each with inherent flavor traits. Furthermore, how the coffee cherry is processed after harvesting—whether the fruit is washed off immediately (producing a clean, bright flavor) or left to dry naturally on the bean (producing a heavy, wine-like fruitiness)—drastically alters the final taste.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By combining a working knowledge of origins with the proper tasting techniques and brewing methods, the act of drinking coffee transforms from a mundane routine into a daily exploration of craft and agriculture.&lt;/p&gt;
&lt;p&gt;References&lt;/p&gt;
&lt;p&gt;Hoffmann, J. (2018). The world atlas of coffee: From beans to brewing - coffees explored, explained and enjoyed (2nd ed.). Mitchell Beazley.&lt;/p&gt;</content>
</entry>
<entry>
<title>6 Things A Product Manager Must Do</title>
<link href="https://christophervasquez.net/blog/6-things-a-product-manager-must-do.html"/>
<id>https://christophervasquez.net/blog/6-things-a-product-manager-must-do.html</id>
<published>2022-08-01T00:00:00-07:00</published>
<updated>2022-08-01T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;I've been mentoring people that are new to product management and more than a few times lately have found myself giving an hour long crash course on what the heck I think product management actually is. So, after a few attempts, I've boiled down all of the things a product manager should do into 6 things. In reality, a product manager does a million things, or at least way more than six. These are more like 6 categories of things a product manager does. In truth it's a bit of an arbitrary number of buckets, but I've found it really useful when trying to boil it all down. I'll give you a quick pithy definition of each thing, and a suggestion of an artifact to create to get started in each domain.&lt;/p&gt;
&lt;h2&gt;1) Own The Strategy and Roadmap&lt;/h2&gt;
&lt;p&gt;A product manager has to be own the Strategy and Roadmap of their product. The word "own" might mean different things in different situations. Almost everyone has bosses, and different roles have different levels of ownership and autonomy. But, at the end of the day, whether you're the Chief Product Officer of a 5-person tech startup and own the whole decision, or a product manager in a big tech company and own part or all of the decision, you're practicing the same discipline.&lt;/p&gt;
&lt;h3&gt;Strategy&lt;/h3&gt;
&lt;p&gt;When creating a strategy, you're trying to answer a few questions:&lt;/p&gt;
&lt;p&gt;Where are we now? Where do we want to go? How do we get there? What might happen along the way? What is your product's purpose? Who are your customers? What are you finances? What is the competition? What resources do you have?&lt;/p&gt;
&lt;p&gt;Required Artifact: To get started defining and/or communicating your product strategy you may create a strategy deck or one-pager. There are many schools of thought around strategy definition which I won't go into here. The important thing to do is pick one, and write it down. Writing down your strategy in an artifact is part of the table stakes of being a product manager.&lt;/p&gt;
&lt;h3&gt;Roadmap&lt;/h3&gt;
&lt;p&gt;A roadmap is a graphical representation of what features your product will have over time. Usually the x-axis is time, and you're showing customers and/or stakeholders what will be built into your product over time.&lt;/p&gt;
&lt;p&gt;Required Artifact: A roadmap! Fire up PowerPoint and use a roadmap template, or find one on google. Pick one, and write it down.&lt;/p&gt;
&lt;h2&gt;2) Be The Voice of The Customer&lt;/h2&gt;
&lt;p&gt;It can't be stressed enough: Product managers should know their customers. Like really know them. What's important to them? What do they spend their time on? What do they like? What don't they like? What do they eat for breakfast? Ultimately it's the product manager's job to ensure their product works well for the customer, and the only way to do that is to know what customers need. There are two kinds of customers: Stakeholders and users. You should know both.&lt;/p&gt;
&lt;h3&gt;Stakeholders&lt;/h3&gt;
&lt;p&gt;Stakeholders are people that represent a contingency of your users. For example, if your product is an HRIS system, your end users might be employees, but your stakeholders might be the HR managers that decide which HRIS system to use and which features are important to their business unit.&lt;/p&gt;
&lt;h3&gt;Users&lt;/h3&gt;
&lt;p&gt;Users are simply the people who are actually using your project day-in and day out. They're the ones logging in, pressing the buttons, and presumably getting value out of your product. If we continue with the HRIS example, they're the employees that have to log in to change their address, or download their W2, or check their goals for the quarter.&lt;/p&gt;
&lt;p&gt;Product managers typically write user stories in the backlog to represent features that users want. (Hey, that's number 3!) The user is a major component of a user story, and it is extremely important to understand what your user wants, and why, so that you know why your product exists. Did you learn all about your target user? Write that down.&lt;/p&gt;
&lt;p&gt;Required Artifact: User Persona Document&lt;/p&gt;
&lt;h2&gt;3) Manage the Backlog&lt;/h2&gt;
&lt;p&gt;What's a backlog? It's an ever-evolving list of all of the work there is to do on your product. Ideally, it's stack-ranked with the most important work to do at the top of the backlog. As a product manager, it's your job to define what features your product needs to have, and to order those features in priority order.&lt;/p&gt;
&lt;h3&gt;User Stories&lt;/h3&gt;
&lt;p&gt;If you're managing a software product, the written work is usually represented in the &lt;a href="https://www.atlassian.com"&gt;user story format&lt;/a&gt;. There are many user story templates. Pick one, adopt it, and iterate that template as the needs of the team change. Fundamentally the story should contain 5 things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The user - Ideally, the "user" that is referenced in the user story is a documented persona that you wrote down in number 2 above!&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Description of what the user needs to do - This can range from simply a plain description to a fully-designed UI with components that should be used and mocked up screens for how it should look.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;The value that it will bring the user - In other words, why the heck does the user want to do this?&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;The definition of done - This tells the engineer implementing the feature what success criteria they must meet in order to call this work complete.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Required Artifact: A stack-ranked list of user stories for what features you need to build for your product. This is usually housed in an issue tracker like Jira, GitHub, Azure DevOps, Asana, etc. But, you can start with Excel if that seems overwhelming. The point is you have to write down and decide what features are most important.&lt;/p&gt;
&lt;h2&gt;4) Market and Evangelize&lt;/h2&gt;
&lt;p&gt;So you built an amazing product. How the heck to people know that it exists? That's where you come in! Users and stakeholders have to find out about your product. This can look different depending on what kind of products you build, who your users are, and what sort of organization you are in. If your organization is a profit center and you have consumer-facing products a product manager often works on marketing campaigns to acquire new users through ads, often called &lt;a href="https://www.ronsela.com"&gt;acquisition funnel marketing&lt;/a&gt;. If your organization is a cost center and you make products that support internal groups of a company then you need to figure out how to message your target users and stakeholders. For stakeholders, hopefully you have some cadence of meeting with them like a quarterly business review, or 1on1s with key stakeholders, where you can showcase what your product is, what's coming, the strategy, etc. For end-users, you might need to create newsletters, or post on internal company social media, etc.&lt;/p&gt;
&lt;p&gt;Required Artifact: Product Onepager - a product onepager should be a one-page document that at a glance communicates key details about your product&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Product Description - a plain-English definition of what your product is in a few sentences&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Key Features - Expand a little about what are the important aspects of the product&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Use Cases - When and why would users get value from your product?&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;SLAs - What level of service do you guarantee?&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Cost - How much does it cost?&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;How do I sign up? - Where do I go to buy, get, or request the product?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;5) Understand the Market&lt;/h2&gt;
&lt;p&gt;You should aspire to be an expert in the market space that your product occupies. What products compete with your product? What are your product's differentiators compared to the competition? What products are adjacent in the market or in the user's experience? For example, you might be a product manager for observability tools for a large organization. Are you aware of the big hitters in the market and their features? You might use market research firms like Gartner to brush up on the market space. Which vendors make the &lt;a href="https://www.gartner.com"&gt;Gartner listings and Observability Magic Quadrant&lt;/a&gt;? Are your customers using these products? Might it make sense for you to sunset an existing product for one of it's competitors? What's the cost difference? This helps in many ways. If you're competing with these products you can understand what your competition has done, what features are differentiators, and what space of the market might be ripe for your product positioned against theirs.&lt;/p&gt;
&lt;p&gt;Required Artifact: Market positioning onepager - a onepager that describes how your product is positioned in the market against competitors or adjacent products&lt;/p&gt;
&lt;h2&gt;6) Own the Business Metrics&lt;/h2&gt;
&lt;p&gt;Business metrics define how your product is doing. They can be broken down into two broad categories: Financials and Performance.&lt;/p&gt;
&lt;h3&gt;Financials&lt;/h3&gt;
&lt;p&gt;If you have an external-facing product, you super care about your Profit and Loss (P&amp;L). What's your profit this year? What's the loss? What is your burn rate? Burn rate, simply put, is negative cash flow—the amount by which expenses exceed revenue. How long can your product go on in this manner?&lt;/p&gt;
&lt;p&gt;If you have an internal-facing product, you super care about your budget. Do you have enough budget to deliver on the promises to the business you've made? How are you tracking the budget? What is the cost model for your product? Maybe you have to show back costs to business units that use your product, or maybe you have a chargeback model where you literally charge those business units based on consumption. The product manager must define these.&lt;/p&gt;
&lt;h3&gt;Performance&lt;/h3&gt;
&lt;p&gt;Aside from financials, how is your product performing? You probably guarantee some level of service to your customers. Sometimes that guarantee is in a contract or agreement with your customers. This called a &lt;a href="https://en.wikipedia.org"&gt;Service Level Agreement&lt;/a&gt;. How do you know whether or not your product is providing that service? Customers might access your product over the web and you guarantee that the page will load in less than 5 seconds. Do you have monitoring in place such that you know when you breach that agreement? What's your product's current average pageload time? When should you start sounding the alarm to your support team? At 4 seconds? At 4.9 seconds?&lt;/p&gt;
&lt;p&gt;Required Artifacts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Financial - Budget or P&amp;L&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Performance - A list of SLOs and KPIs&lt;/li&gt;
&lt;/ul&gt;</content>
</entry>
<entry>
<title>How I learned to design and 3d print custom prototypes in one day, and you can too!</title>
<link href="https://christophervasquez.net/blog/how-i-learned-to-design-and-3d-print-custom-prototypes-in-one-day-and-you-can-too.html"/>
<id>https://christophervasquez.net/blog/how-i-learned-to-design-and-3d-print-custom-prototypes-in-one-day-and-you-can-too.html</id>
<published>2022-06-17T00:00:00-07:00</published>
<updated>2022-06-17T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;The stars aligned this weekend to provide childcare for my brood, the perfect Seattle snow storm, quarantine, and a cool project that's just aching for that custom part to be 3d printed. So, I dove in, failed fast, learned a lot at each step, and rapidly iterated towards some successful custom designed 3d printed prototypes. After one day I feel like I can design almost anything functional in TinkerCAD and print that bad boy on the Ultimaker 3. Below is the approach that I took, and I hope it might help some of you on a similar journey.&lt;/p&gt;
&lt;h2&gt;Acquire a 3D printer and filament&lt;/h2&gt;
&lt;p&gt;I got off easy on this one. Due to my office closing for COVID we had an Ultimaker 3 that was looking for a home and fell into my lap. I never went through the process of endlessly researching different printers before acquiring one, so I don't have much advice for this step in the journey. Obviously this can be a big investment and a big decision and I'm lucky I didn't have to make either. I can say that the Ultimaker 3 is amazingly powerful and versatile. Everything from PVA, to ABS, to special supports that dissolve in water, this thing can make almost anything that isn't metal. I'm not sure I would have landed on this printer if I were doing the cost/benefit analysis, but it is more than capable for my uses. To get acquainted I decided to Youtube a review of the Ultimaker 3 and I learned a ton.&lt;/p&gt;
&lt;h2&gt;Things I learned&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;3D printers can be expensive&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Basic jargon - what's a printhead, filament, PVA vs ABS, supports, infill, slicing, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;3D printers get hot - they melt plastic!&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;My printer's basic capability according to the review&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;The software I needed to print a model (&lt;a href="https://ultimaker.com"&gt;Cura&lt;/a&gt; for my Ultimaker 3)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Print a premade model and learn your printer's strengths, weaknesses, and basic settings&lt;/h2&gt;
&lt;p&gt;The first step I had to take (besides connecting to the thing and watching Youtube) was to get acquainted with how to print something. A great way to do that is to print a premade design that you can download from the internet. Thingsverse is a great repository and community that has a plethora of useful and cute things for your printer to crank out. I recommend one of the many calibration models that are designed to showcase your printers strengths and weaknesses. &lt;a href="https://m.all3dp.com"&gt;This article has a great selection&lt;/a&gt; of options and ultimately I chose the Calicat from this list. It would function as both a calibration test and be a cute critter I could keep on my shelf and show my friends.&lt;/p&gt;
&lt;h2&gt;Things I learned&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;How to find and download a model&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;How to send a print job to the printer&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Basic print job settings&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;How to add filament&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;What the puddle of material is at the bottom of my model (It's called "adhesion" and it adheres the print to the print bed so it doesn't move around - you have to cut it off at the end)&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;What actually happens during a print&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;At the beginning the print head pushes out a "booger" or print material and wipes it on the print bed&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Sometimes (always?) there's little hairs and print inaccuracies and mistakes in the print&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;The printer can struggle with fine detail&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;I can make things!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pick an attainable prototype design goal&lt;/h2&gt;
&lt;p&gt;I've been working on building a coffee roaster and I wanted to 3d print a custom chaff collector. This seemed to the sweet spot of attainable, and also just beyond the level of "my first 3D print." Having a goal in mind will guide your next steps. Which software should you use? Which tutorials should you follow? These questions will have different answers based on what you're hoping to make.&lt;/p&gt;
&lt;h2&gt;Choose your CAD or modeling software&lt;/h2&gt;
&lt;p&gt;There's an overwhelming number of CAD and 3D modeling software options out there, each with their own quirks and learning curves. &lt;a href="https://www.youtube.com"&gt;This video was a great survey of the options.&lt;/a&gt; If you're a beginner starting my from scratch, I can't recommend &lt;a href="https://www.tinkercad.com"&gt;TinkerCAD&lt;/a&gt; enough. It was super easy to pick up and learn, and it had excellent tutorials already built in. It was free, and runs in a browser. These all make TinkerCAD an obvious first choice. If you already have experience using another CAD software, try that one! If you hate it, try another! There are no wrong turns, and many things to learn.&lt;/p&gt;
&lt;h2&gt;Things I learned&lt;/h2&gt;
&lt;p&gt;If you're a beginner, use TinkerCAD, its...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Free&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Runs in a browser&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Easy to learn&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Really powerful&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Free&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Follow a couple of tutorials&lt;/h2&gt;
&lt;p&gt;Try to find some tutorials that help you learn how to design the things you actually want to prototype. TinkerCAD had built-in tutorials. Once you follow 3 or 4 of the built-in tutorials coupled with some that help with more specialized designs you should be prepared to design almost any basic shape. Personally, I followed the &lt;a href="https://www.tinkercad.com"&gt;direct starter tutorials&lt;/a&gt; followed by the &lt;a href="https://www.tinkercad.com"&gt;Die From Scratch&lt;/a&gt; and &lt;a href="https://www.instructables.com"&gt;Chess Pawn&lt;/a&gt; tutorials. &lt;a href="https://www.youtube.com"&gt;This YouTube video&lt;/a&gt; was also really enlightening for how to create any size nuts and bolts in TinkerCAD. After these, and actually printing the chess pawn, I was confident enough to start designing my own prototypes from scratch.&lt;/p&gt;
&lt;h2&gt;Things I learned&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The basics of how to CAD an object with TinkerCAD&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;How to custom design basic shapes&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;How to design somewhat complex shapes&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;How to export the design to a .STL file and 3d print it&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;More complex 3d prints take hours&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;I can customize designs!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Design and print a couple of prototypes&lt;/h2&gt;
&lt;p&gt;At this point I could start designing and prototyping to see what worked and what didn't. Expect to fail a few times, and learn in the process. I suggest starting small. For example, I printed only the bottom portion of my chaff collector prototype a couple of times until I got the threads correct. The first time, I learned that my printer prototype actually shrank about a millimeter cooling after the printer. I had to account for this little ideosyncrasy in the following prints. You'll have to fail, learn little things like that, and try again. That's ok, it's part of the process!&lt;/p&gt;
&lt;h2&gt;Things I learned&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Holes shrink a tiny bit on my printer&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Print the minimum thing you need to test. Just printing the bottom portion of my prototype saved me hours of unnecessary printing that would have been scrap anyway because I messed up an aspect of the design&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Measure with a precise caliper any dimensions you need your print to adhere to&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;I can design things from scratch!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Success is learning&lt;/h2&gt;
&lt;p&gt;I was lucky enough to iterate towards a prototype that worked, and I'm really proud of it! But, many prototypes didn't. Some, I had to cut with a razor blade and adjust. Some didn't work at all, but each time I learned something and adjusted. Finally I ended up with something that worked. I learned SO MUCH just trying to custom design and print a prototype, and that, to me, is success. In the end, you may or may not have a prototype that works for you after day 1 of 3D printing, but you will have at least learned how to start that journey (and hopefully you aren't too far off). That is much more valuable.&lt;/p&gt;</content>
</entry>
<entry>
<title>The radiator's sojourn</title>
<link href="https://christophervasquez.net/blog/the-radiator-s-sojourn.html"/>
<id>https://christophervasquez.net/blog/the-radiator-s-sojourn.html</id>
<published>2022-06-17T00:00:00-07:00</published>
<updated>2022-06-17T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;Sometimes, a man troubleshoots a Jeep cooling system. Sometimes he thinks the water pump and thermostat need replacing, and sometimes it's actually the radiator. Sometimes there's only one way to get the radiator, and fix his Jeep before the weekend is over. Sometimes that one way is sitting in a warehouse in Kent.&lt;/p&gt;</content>
</entry>
<entry>
<title>A Primer on Parallax Scrolling</title>
<link href="https://christophervasquez.net/blog/a-primer-on-parallax-scrolling.html"/>
<id>https://christophervasquez.net/blog/a-primer-on-parallax-scrolling.html</id>
<published>2022-04-10T00:00:00-07:00</published>
<updated>2022-04-10T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;I've done a little more game development lately, and one of the first things I did was reimplement parallax scrolling. Reimplementing gave me a newfound appreciation for the technique, and it occurred to me that some folks might not know what parallax scrolling is, or where it game from. So, I thought it might be nice to write a quick primer to share and show off some cool game art in the process.&lt;/p&gt;
&lt;h2&gt;What is parallax scrolling?&lt;/h2&gt;
&lt;p&gt;Parallax scrolling is a technique that tricks the viewer into believing that there is 3d depth to a 2d scene. A scene is composed of multiple layers. Each layer scrolls horizontally in one direction, which gives a sense of movement. Layers that are supposed to be farther from the viewer in the distance scroll slower than layers that are supposed to be closer to the viewer in the foreground. This gives the illusion of depth.&lt;/p&gt;
&lt;p&gt;Here is a preview of the layers I've been working with:&lt;/p&gt;
&lt;p&gt;And here they are put in motion: &lt;img src="https://christophervasquez.net/assets/a-primer-on-parallax-scrolling-0.gif" alt="a-primer-on-parallax-scrolling image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Parallax scrolling allows us to play with the depth in the scene in subtle ways. The big clouds appear to be farther away because they're scrolling more slowly than the small, faster scrolling clouds. When we combine the layer order with parallax we can get even more playful. The viewer gets a sense that the moon is hung in the atmosphere. The big clouds that are farther away are drifting by at some distance behind the moon, and the smaller clouds which are moving faster are actually transiting in front of the moon. We can show the viewer precisely where the moon is in this fantastical planet's atmosphere with just parallax and layer order.&lt;/p&gt;
&lt;h2&gt;Parallax scrolling in history&lt;/h2&gt;
&lt;p&gt;This was historically applied to film and movies made for a screen, and then later video games. One of the first video games to implement parallax scrolling was Moon Patrol in 1982.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/a-primer-on-parallax-scrolling-1.gif" alt="a-primer-on-parallax-scrolling image 1" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;I can stare at that pixel art scroll in parallax all day...&lt;/p&gt;
&lt;p&gt;We can also see parallax scrolling in action in Super Mario World. The geometric mountains in the distance scroll much slower than the ground and trees in the foreground. Though, in my opinion, Mario didn't improve on Moon Patrol's implementation a decade earlier.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/a-primer-on-parallax-scrolling-2.gif" alt="a-primer-on-parallax-scrolling image 2" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Hopefully you understand parallax scrolling by now, and have enjoyed examples from my own game dev as well as games in history.&lt;/p&gt;</content>
</entry>
<entry>
<title>How to easily record your PC screen to a GIF with free and open-source software</title>
<link href="https://christophervasquez.net/blog/how-to-easily-record-your-pc-screen-to-a-gif-with-free-and-open-source-software.html"/>
<id>https://christophervasquez.net/blog/how-to-easily-record-your-pc-screen-to-a-gif-with-free-and-open-source-software.html</id>
<published>2021-02-08T00:00:00-08:00</published>
<updated>2021-02-08T00:00:00-08:00</updated>
<content type="html">&lt;p&gt;A couple of folks have asked how I quickly post a snippet of my recorded screen in Slack or how I created the gifs in my previous posts. The software I use is free and open source, so I'm happy to share &lt;a href="https://www.screentogif.com"&gt;ScreenToGif&lt;/a&gt; and give the dev, &lt;a href="https://twitter.com"&gt;@NickeManarin&lt;/a&gt; some love.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-easily-record-your-pc-screen-to-a-gif-with-free-and-open-source-software-0.jpg" alt="how-to-easily-record-your-pc-screen-to-a-gif-with-free-and-open-source-software image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com"&gt;ScreenToGif Installer Link (Windows msi)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com"&gt;ScreenToGif's Source Code is posted on GitHub&lt;/a&gt; and the installers (Windows only, it appears) can be found on it's &lt;a href="https://screentogif.com"&gt;website&lt;/a&gt;. What's even cooler, is Nicke Manarin's website for ScreenToGif itself is open-source. You can find &lt;a href="https://github.com"&gt;it's repo here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-easily-record-your-pc-screen-to-a-gif-with-free-and-open-source-software-1.gif" alt="how-to-easily-record-your-pc-screen-to-a-gif-with-free-and-open-source-software image 1" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;You too can make gifs that look this cool, or websites that look this good, thanks to Nicke Manarin.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-easily-record-your-pc-screen-to-a-gif-with-free-and-open-source-software-2.gif" alt="how-to-easily-record-your-pc-screen-to-a-gif-with-free-and-open-source-software image 2" loading="lazy"&gt;&lt;/p&gt;</content>
</entry>
<entry>
<title>Braised Beef and Borscht</title>
<link href="https://christophervasquez.net/blog/braised-beef-and-borscht.html"/>
<id>https://christophervasquez.net/blog/braised-beef-and-borscht.html</id>
<published>2021-02-07T00:00:00-08:00</published>
<updated>2021-02-07T00:00:00-08:00</updated>
<content type="html">&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/braised-beef-and-borscht-1.jpg" alt="braised-beef-and-borscht image 1" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Someone voluntold me I was part of a monthly cook book club and I needed a January entry for "Beef and Vegetable Stew." Variations were encouraged, so I decided to braised beef and try to call it a borscht without the Украииe или Русские боги culinary gods angry at me.&lt;/p&gt;
&lt;p&gt;It tasted great, but the beats weren't as beautiful and red as a true borscht. I think I need to add them later as the colorful juices leach out a bit during the low and slow cook time I needed for tender braised beef. Delicious nonetheless in the end.&lt;/p&gt;</content>
</entry>
<entry>
<title>Total Addressable Market for Typical and Enterprise Product Managers</title>
<link href="https://christophervasquez.net/blog/total-addressable-market-for-typical-and-enterprise-product-managers.html"/>
<id>https://christophervasquez.net/blog/total-addressable-market-for-typical-and-enterprise-product-managers.html</id>
<published>2020-02-09T00:00:00-08:00</published>
<updated>2020-02-09T00:00:00-08:00</updated>
<content type="html">&lt;p&gt;Enterprise product managers, or product managers focused on internal products and services for the enterprise organization, often have a difficult time applying traditional product management principles to their space. Most contemporary product management literature focuses on the typical scenario of a product manager bringing a new product to market in order to gain revenue, profit, and market share. For the enterprise product manager, the product in development is often internally-facing and designed to enable capabilities and reduce cost. Enterprise product managers often track savings and outcomes more than revenue and users, so the "market" in this context is different than the market for a typical product.&lt;/p&gt;
&lt;p&gt;Terms:&lt;/p&gt;
&lt;p&gt;Below are the typical terms used in product management when sizing a market and opportunity.&lt;/p&gt;
&lt;p&gt;Total Addressable Market: The sum total of all revenue for all products in the market. If your product had 100% market share, this would be the amount&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Served by all products in the market&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Serviceable Addressable Market: The revenue generated by group of customer personas within the Total Addressable Market that could buy your product&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Served by your product once it's full vision is realized&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Target Market: The group of customer personas within the Serviceable Market at which you prioritize your product's feature development and marketing efforts.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Served by your product and it's near-term iterations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Target Niche Market: The group of customer personas within the Target Market at which you prioritize your MVP features and marketing efforts&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Served by your product's Minimum Viable Product (MVP)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/total-addressable-market-for-typical-and-enterprise-product-managers-0.png" alt="total-addressable-market-for-typical-and-enterprise-product-managers image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Below are the exact same concepts, but applied to the enterprise product manager with an internal-facing product designed to reduce cost.&lt;/p&gt;
&lt;p&gt;Total Addressable Opportunity: The sum total of all cost for the target opportunity area. If your product reduced cost to zero, this would be the amount saved&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Served by all products in the capability area&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Serviceable Addressable Opportunity: The sum total of all savings possible in the opportunity area. If your product vision is fully realized, this would be the amount of dollars your product will save the enterprise&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Served by your product once it's full vision is realized&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Target Opportunity: The group of customer personas within the Total Serviceable Opportunity at which you prioritize your product's feature development and marketing efforts&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Served by your product and it's near-term iterations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Target Niche Opportunity: The group of customer personas within the Target Opportunity at which you prioritize your MVP's feature development and marketing efforts&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Served by your product's Minimum Viable Product (MVP)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/total-addressable-market-for-typical-and-enterprise-product-managers-1.png" alt="total-addressable-market-for-typical-and-enterprise-product-managers image 1" loading="lazy"&gt;&lt;/p&gt;</content>
</entry>
<entry>
<title>Four Surprising Uses For Cryptography - Part 4: Non-repudiation</title>
<link href="https://christophervasquez.net/blog/four-surprising-uses-for-cryptography-part-4-non-repudiation.html"/>
<id>https://christophervasquez.net/blog/four-surprising-uses-for-cryptography-part-4-non-repudiation.html</id>
<published>2020-02-03T00:00:00-08:00</published>
<updated>2020-02-03T00:00:00-08:00</updated>
<content type="html">&lt;p&gt;I've been studying &lt;a href="https://en.wikipedia.org"&gt;CISSP&lt;/a&gt; materials (&lt;a href="https://www.linkedin.com"&gt;turns out I passed&lt;/a&gt;. Yay!), and this series is an attempt to synthesize my studies and notes into something consumable. I hope that it helps you as much as it helped me cement my own understanding. If you haven't read the earlier parts of this series, you might want to check them out first:&lt;/p&gt;
&lt;h2&gt;Part 4: Non-repudiation&lt;/h2&gt;
&lt;p&gt;Non-repudiation - ensuring proof that a specific actor took action&lt;/p&gt;
&lt;p&gt;We can use cryptography to to prove that some actor took a specific action, and that actor can't reject, or "repudiate" that they took the action. This is more important than you may first realize.&lt;/p&gt;
&lt;p&gt;It is very important to be able to prove an actor said or agreed to something. In the old days, we would use signatures to do this. You would sign a check to prove you agreed to transfer funds from your bank account to the grocery store, or you might sign a contract to prove that you agreed to it. If the contract signee repudiated, or asserted that it was never them who agreed, they could be taken to court and proven that their signature was in fact authentic. Today, we transact, contract, and generally do business remotely via the internet. We can instead provide non-repudiation via encryption.&lt;/p&gt;
&lt;p&gt;Asymmetric Encryption&lt;/p&gt;
&lt;p&gt;The math behind asymmetric encryption is beyond the scope of this article, but Wikipedia has a &lt;a href="https://en.wikipedia.org"&gt;somewhat understandable example on the page for RSA&lt;/a&gt;, one of the most widely used encryption algorithms. Here's the important bit to understand: With some neat math, we can make a private and public key.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Public Key - a number that you allow everyone to see to use for encryption. It can be used to decrypt data that was encrypted with the private key.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Private Key - a number that you keep secret and use for encryption yourself. It can be used to decrypt data that was encrypted with the public key.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These keys are a pair of numbers that have a special relationship to each other. If some information is encrypted with one of these keys, it can only be decrypted with the other key. One key should be kept private known only to one's self, and the other can be published for all the world to see.&lt;/p&gt;
&lt;p&gt;Now, let's imagine that Alice wants to agree to a contract with Bob. They both want to ensure that it can be proven in a court of law that they both agreed to the contract terms. They want to do this over the internet because they don't live near each other. They can use encryption.&lt;/p&gt;
&lt;p&gt;All they have to do is keep their private keys secret, post their public key somewhere everyone can see (&lt;a href="https://en.wikipedia.org"&gt;PKI&lt;/a&gt; is used for this, but that's a topic for another time) and encrypt a small message like "I agree to this contract" with their private keys.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/four-surprising-uses-for-cryptography-part-4-non-repudiation-0.png" alt="four-surprising-uses-for-cryptography-part-4-non-repudiation image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;A picture describing non-repudiation with asymmetric Cryptography&lt;/p&gt;
&lt;p&gt;Because of the special mathematical relationship between the private and public keys, we have irrefutable mathematical proof that only someone in possession of the private keys could have agreed to the contract.&lt;/p&gt;</content>
</entry>
<entry>
<title>Four Surprising Uses For Cryptography - Part 3: Authentication</title>
<link href="https://christophervasquez.net/blog/four-surprising-uses-for-cryptography-part-3-authentication.html"/>
<id>https://christophervasquez.net/blog/four-surprising-uses-for-cryptography-part-3-authentication.html</id>
<published>2019-11-14T00:00:00-08:00</published>
<updated>2019-11-14T00:00:00-08:00</updated>
<content type="html">&lt;p&gt;I've been studying &lt;a href="https://en.wikipedia.org"&gt;CISSP&lt;/a&gt; materials, and this series is an attempt to synthesize my studies and notes into something consumable. I hope that it helps you as much as it helps me cement my own understanding.&lt;/p&gt;
&lt;p&gt;If you haven't read the earlier parts of this series, you might want to check them out first:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="four-surprising-uses-for-cryptography-part-1-confidentiality.html"&gt;Four Surprising Uses For Cryptography - Part 1: Confidentiality&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="four-surprising-uses-for-cryptography-part-2-integrity.html"&gt;Four Surprising Uses For Cryptography - Part 2: Integrity&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Part 3: Authentication&lt;/h2&gt;
&lt;p&gt;Authentication - ensuring one's claimed identity is valid&lt;/p&gt;
&lt;p&gt;We can use cryptography to "authenticate," or check if someone is who they claim to be. A simple example of this is sharing a secret with someone that you'll use to authenticate each other in the future.&lt;/p&gt;
&lt;p&gt;Imagine that I'm indoctrinated into the "Skull and Cross Bones" club. The club might share with me a secret with which they'll challenge me when I knock on the clubhouse door. When I knock on the door, the club wants me to use the Caeser Cypher that we discussed in &lt;a href="four-surprising-uses-for-cryptography-part-1-confidentiality.html"&gt;Four Surprising Uses For Cryptography - Part 1: Confidentiality&lt;/a&gt; on whatever word or phrase they give me. The process is diagrammed below: &lt;img src="https://christophervasquez.net/assets/four-surprising-uses-for-cryptography-part-3-authentication-0.png" alt="four-surprising-uses-for-cryptography-part-3-authentication image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Since I responded with what the club expected, they can be reasonably sure it is me at the door. This is a simple example of what's known as a Challenge Response Authentication Protocol, or &lt;a href="https://en.wikipedia.org"&gt;Challenge-response authentication&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As you can imagine, there are all sorts of problems with the above protocol. What if someone is eavesdropping? They've heard the challenge and response, and can easily deduce the shared secret. There are all sorts of more advanced Challenge Response Authentication Protocols in use today. If you'd like further reading, you can dive into the one used every day in &lt;a href="https://en.wikipedia.org"&gt;Open SSH Key Management&lt;/a&gt;.&lt;/p&gt;</content>
</entry>
<entry>
<title>Four Surprising Uses For Cryptography - Part 2: Integrity</title>
<link href="https://christophervasquez.net/blog/four-surprising-uses-for-cryptography-part-2-integrity.html"/>
<id>https://christophervasquez.net/blog/four-surprising-uses-for-cryptography-part-2-integrity.html</id>
<published>2019-09-20T00:00:00-07:00</published>
<updated>2019-09-20T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;I've been studying CISSP materials, and this series is an attempt to synthesize my studies and notes into something consumable. I hope that it helps you as much as it helps me cement my own understanding.&lt;/p&gt;
&lt;p&gt;If you haven't read part 1 of this series, you might want to &lt;a href="four-surprising-uses-for-cryptography-part-1-confidentiality.html"&gt;check it out&lt;/a&gt; first.&lt;/p&gt;
&lt;h2&gt;Part 2: Integrity&lt;/h2&gt;
&lt;p&gt;Integrity - ensuring data is not altered without one's knowledge&lt;/p&gt;
&lt;p&gt;We can use cryptography to check the integrity of data. When integrity measures are in place, we can be sure that...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a message that was sent wasn't altered before receiving it&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;files stored for a long time haven't been altered since we accessed them&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;the file we're downloading hasn't been infected with malware since it was uploaded to a website&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can think of a hash as a mathematical thumbprint or digital signature of a piece of data. When we apply a hashing algorithm to a piece of data, it will always generate the same hash. If the data is altered in any way (even adding a space or a period), the hash or "thumbprint" will be different.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/four-surprising-uses-for-cryptography-part-2-integrity-0.png" alt="four-surprising-uses-for-cryptography-part-2-integrity image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Assuming we receive the hash along with the message in a secure way (there are many fun tricks that cryptosystems use to ensure this, but those are out of scope for this topic) we can compare the message data with the hash by hashing it ourselves with the same algorithm. If we get a different hash, we know the message data has been altered in some way.&lt;/p&gt;
&lt;h2&gt;P.S.&lt;/h2&gt;
&lt;p&gt;When googling for SHA-256 hash calculators I ran across &lt;a href="https://www.danielefavi.com"&gt;Daniele Favi's site&lt;/a&gt;. In addition to the neat calculator linked above, they have a ton of great blog posts on cryptography, blockchain, and development. Additionally, when editing the HTML of their site to squish the form small enough for a reasonable screenshot size, I stumbled across this GOLDEN joke, and instantly became a fan. Check out Daniele's site and their work. They deserve it.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/four-surprising-uses-for-cryptography-part-2-integrity-1.png" alt="four-surprising-uses-for-cryptography-part-2-integrity image 1" loading="lazy"&gt;&lt;/p&gt;</content>
</entry>
<entry>
<title>Four Surprising Uses For Cryptography - Part 1: Confidentiality</title>
<link href="https://christophervasquez.net/blog/four-surprising-uses-for-cryptography-part-1-confidentiality.html"/>
<id>https://christophervasquez.net/blog/four-surprising-uses-for-cryptography-part-1-confidentiality.html</id>
<published>2019-09-13T00:00:00-07:00</published>
<updated>2019-09-13T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;I believe it's important to understand the fundamentals of cybersecurity, and I've been studying CISSP materials to that end. This series is an attempt to synthesize my studies and notes into something consumable. I hope that it helps you as much as it helps me cement my own understanding.&lt;/p&gt;
&lt;p&gt;From blockchain to cyber warfare, cryptography is often in the news. The most common understanding of cryptography's utility is to enable confidentiality, but it does much more than that.&lt;/p&gt;
&lt;p&gt;Four usages of cryptography:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confidentiality - ensuring data is secret to only the individuals intended&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Integrity - ensuring data is not altered without one's knowledge&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Authentication - ensuring one's claimed identity is valid&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Non-repudiation - ensuring proof that a specific actor took action&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this article, I'll cover confidentiality.&lt;/p&gt;
&lt;p&gt;Confidentiality&lt;/p&gt;
&lt;p&gt;The most commonly thought of uses for cryptography is confidentiality. This is the classic usage of encoding a message with an algorithm before sending it to ensure that anyone intercepting the message in transit can't read the message's meaning. One of the most ubiquitous example of this usage today is &lt;a href="https://en.wikipedia.org"&gt;TLS&lt;/a&gt;. TLS ensures that the data your browser sends to a web server can't be read by someone intercepting that data.&lt;/p&gt;
&lt;p&gt;A more understandable and oft-cited example of cryptography usage for confidentiality is the &lt;a href="https://en.wikipedia.org"&gt;Caeser Cypher&lt;/a&gt;. The Caeser Cypher uses a simple algorithm: It replaces a letter in the alphabet with a letter 3 positions earlier in the alphabet. For example, W would be replaced by T, O would be replaced by L, and so on. "TLOA" encoded with this algorithm, would be decrypted to "WORD."&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/four-surprising-uses-for-cryptography-part-1-confidentiality-0.png" alt="four-surprising-uses-for-cryptography-part-1-confidentiality image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Thanks for riding along. I'll survey the other usages in future posts.&lt;/p&gt;</content>
</entry>
<entry>
<title>Business Capabilities and Product Management</title>
<link href="https://christophervasquez.net/blog/business-capabilities-and-product-management.html"/>
<id>https://christophervasquez.net/blog/business-capabilities-and-product-management.html</id>
<published>2019-09-11T00:00:00-07:00</published>
<updated>2019-09-11T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;I referenced capabilities in my post "&lt;a href="total-addressable-market-for-typical-and-enterprise-product-managers.html"&gt;Total Addressable Market for Typical and Enterprise Product Managers&lt;/a&gt;," but what the heck is a capability, and how does it relate to product managers? While it may be less critical for traditional product managers, enterprise product managers, or product managers focused on internal products and services, need to have a critical understanding of how their products serve business capabilities.&lt;/p&gt;
&lt;p&gt;What is a business capability?&lt;/p&gt;
&lt;p&gt;There's an entire discipline around business capability management, and much ink has been spilled. If you search the internet it's possible to go down any number of rabbit holes. For example, understanding how capability management fits into the "&lt;a href="https://en.wikipedia.org"&gt;theory of the firm&lt;/a&gt;" or how &lt;a href="https://pubs.opengroup.org"&gt;The Open Group Architecture Framework (TOGAF) utilizes a map of business capabilities&lt;/a&gt; to ensure a holistic enterprise architecture. For our purposes, it is sufficient to use a simple definition:&lt;/p&gt;
&lt;h2&gt;Capabilities are the firm's abilities to do things that are considered valuable (in and by the market).&lt;/h2&gt;
&lt;p&gt;Its common for large enterprises to organize themselves along the lines of capabilities. For example, one capability of The Coca-Cola Company might be the ability to manufacture soda. Others might include marketing, distribution, sales, vending, and so forth.&lt;/p&gt;
&lt;p&gt;Manufacturing soda comes with a plethora of needs and associated costs that enable this capability. These may be served by a product or service, or portfolio of products and services.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/business-capabilities-and-product-management-0.png" alt="business-capabilities-and-product-management image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;The Coca-Cola Company may have a product manager for Inventory Management. That product manager may have a product portfolio that consists of&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Inventory Management Software&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Handheld Scanners and Scanner Management Software&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;RFID Tags and RFID Scanners&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In this way, products can be aligned to capabilities. This can help in many scenarios that are sometimes murky for enterprise product mangers. It can help draw a line to business value a product provides to the enterprise, clarify key customers, and assist in discovering the total addressable opportunity of a product.&lt;/p&gt;</content>
</entry>
<entry>
<title>How To Create A Diverging Stacked Bar Chart In Excel</title>
<link href="https://christophervasquez.net/blog/how-to-create-a-diverging-stacked-bar-chart-in-excel.html"/>
<id>https://christophervasquez.net/blog/how-to-create-a-diverging-stacked-bar-chart-in-excel.html</id>
<published>2019-04-07T00:00:00-07:00</published>
<updated>2019-04-07T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;Why a diverging stacked bar chart? It's important to use a diverging stacked bar chart in this scenario because I want to illustrate the divergence between the positive and negative responses in user satisfaction Likert data. "Neutral" responses will act as the centerline.&lt;/p&gt;
&lt;p&gt;When we get response data it is usually in a format like this: &lt;img src="https://christophervasquez.net/assets/how-to-create-a-diverging-stacked-bar-chart-in-excel-0.png" alt="how-to-create-a-diverging-stacked-bar-chart-in-excel image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Since we want to center the bars on the Neutral line, we're going to have to split the Neutral values into two columns, each half of the value of Neutral. These columns will represent half of the Neutral dataset on the positive and negative sides of the center line.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-create-a-diverging-stacked-bar-chart-in-excel-1.gif" alt="how-to-create-a-diverging-stacked-bar-chart-in-excel image 1" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;We want Extremely dissatisfied, Somewhat dissatisfied, and half of the Neutral values to be plotted to the left of the center line, so we need to make their values negative.&lt;/p&gt;
&lt;p&gt;Here's an Excel-Fu Protip: You can quickly change to negative by copying -1 and doing a Paste Special &gt; Multiplication Operation.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-create-a-diverging-stacked-bar-chart-in-excel-2.gif" alt="how-to-create-a-diverging-stacked-bar-chart-in-excel image 2" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;In order to ensure our categories are stacked correctly, we need to reverse the order of our negative categories. For example, we want Extremely dissatisfied to be plotted on the extreme left of the center line. If we don't reverse the order, it will be plotted adjacent to the center line.&lt;/p&gt;
&lt;p&gt;Excel-Fu Protip: In order to move columns around without replacing values (effectively cutting and inserting the selected column) hold Shift while dragging the edge of the column.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-create-a-diverging-stacked-bar-chart-in-excel-3.gif" alt="how-to-create-a-diverging-stacked-bar-chart-in-excel image 3" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Select all of the data except the original Neutral column and insert a standard stacked bar chart from Insert &gt; Insert Column or Bar Chart &gt; 2D Bar&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-create-a-diverging-stacked-bar-chart-in-excel-4.gif" alt="how-to-create-a-diverging-stacked-bar-chart-in-excel image 4" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;To fix the Labels, Right Click &gt; Format Axis and change the Label Position to Low.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-create-a-diverging-stacked-bar-chart-in-excel-5.gif" alt="how-to-create-a-diverging-stacked-bar-chart-in-excel image 5" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Now all that's left is to change the colors as you like, ensure the Neutral data are the same color, and delete one of the Neutral Labels.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-create-a-diverging-stacked-bar-chart-in-excel-6.gif" alt="how-to-create-a-diverging-stacked-bar-chart-in-excel image 6" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Edit to your liking and Voila!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/how-to-create-a-diverging-stacked-bar-chart-in-excel-7.png" alt="how-to-create-a-diverging-stacked-bar-chart-in-excel image 7" loading="lazy"&gt;&lt;/p&gt;</content>
</entry>
<entry>
<title>The Best Way to Graph Likert Scale Data: Diverging Stacked Bar Charts</title>
<link href="https://christophervasquez.net/blog/the-best-way-to-graph-likert-scale-data-diverging-stacked-bar-charts.html"/>
<id>https://christophervasquez.net/blog/the-best-way-to-graph-likert-scale-data-diverging-stacked-bar-charts.html</id>
<published>2019-04-04T00:00:00-07:00</published>
<updated>2019-04-04T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;The two most common ordered categorical scales that a product manager is likely to come across are the &lt;a href="https://en.wikipedia.org"&gt;Net Promoter Scale&lt;/a&gt; and &lt;a href="https://en.wikipedia.org"&gt;Likert Scale&lt;/a&gt;. This article will focus on graphing Likert scale data. Likert data are very common in market research, user satisfaction, opinion, and and other quantitative research. The most authoritative guidance for the best way to graph Likert data is probably from &lt;a href="https://www.linkedin.com"&gt;Richard Heiberger&lt;/a&gt; and &lt;a href="https://twitter.com"&gt;Naomi Robbins&lt;/a&gt;' paper in The Journal of Statistical Software, "&lt;a href="https://www.jstatsoft.org"&gt;Design of Diverging Stacked Bar Charts for Likert Scales and Other Applications&lt;/a&gt;."&lt;/p&gt;
&lt;p&gt;The diverging stacked bar chart allows the viewer to easily compare divergence in response from the "zero" or "neutral" line. Divergence between "Strongly Agree" and "Agree" is secondary in most scenarios where Likert scales are used, but divergence from "No Opinion" is paramount. For example, in the figure below, from Heiberger and Robbin's example &lt;a href="https://public.tableau.com"&gt;generously published to a public Tableau gallery&lt;/a&gt;, respondents were asked to answer on one of five levels of agreement or disagreement to the question "Is your job professionally challenging?" It is more valuable to the viewer to discern whether or not respondents agree or disagree that their job is challenging. Discerning the difference between "Strongly Disagree" and "Disagree" is secondary. "No Opinion" is the "zero" or "neutral" line in this example.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/the-best-way-to-graph-likert-scale-data-diverging-stacked-bar-charts-0.png" alt="the-best-way-to-graph-likert-scale-data-diverging-stacked-bar-charts image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;Diverging stacked bar charts aren't the only way to graph Likert data. The reader should note that &lt;a href="https://blog.datawrapper.de"&gt;there are dissenting opinions on the subject&lt;/a&gt;. However, it is difficult to equivocate their usefulness when divergence from the center line is the goal of one's chart, as the above example clearly illustrates.&lt;/p&gt;</content>
</entry>
<entry>
<title>Bedridden and Russian Comics</title>
<link href="https://christophervasquez.net/blog/bedridden-and-russian-comics.html"/>
<id>https://christophervasquez.net/blog/bedridden-and-russian-comics.html</id>
<published>2019-03-11T00:00:00-07:00</published>
<updated>2019-03-11T00:00:00-07:00</updated>
<content type="html">&lt;p&gt;Last month I had a combination of flu, bronchitis, and pneumonia for four weeks. I had a rough go at it, and I still haven't quite recovered my aerobic fitness. If I had to run a 5k right now I'd be in trouble. I basically spent three weeks in bed without much movement beyond the necessities. Thank you to my wonderful mother who took care of the house and children when I couldn't. I pulled some muscles in my abdomen the second week, so I couldn't do much beyond lay on my side, wince from the coughing, and stare at my phone.&lt;/p&gt;
&lt;p&gt;I took the opportunity to study Russian on Duolingo. A lot of Russian. I took a couple of quarters of Russian back at Seattle Pacific University in ~2006, and I had dabbled in Duolingo here and there since, but I'm now more proficient than I ever was. I'm proud to say I've achieved every achievement, including completing the tree.&lt;/p&gt;
&lt;p&gt;Anyway, with my newfound proficiency I thought it would be fun to translate some Russian comics. I learned about &lt;a href="https://bubblecomics.com"&gt;Bubble Comics&lt;/a&gt; sometime in the past year or so. I found some online at comics.ru which looks super illegal, but I don't know enough about Russian copyright or the Russian equivalent to the DMCA to verify. I also found them &lt;a href="https://bubblecomics.com"&gt;here&lt;/a&gt; which looks pretty legit.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://christophervasquez.net/assets/bedridden-and-russian-comics-0.jpg" alt="bedridden-and-russian-comics image 0" loading="lazy"&gt;&lt;/p&gt;
&lt;p&gt;The problem was that these comics were pretty difficult for my level. I got a few pages in and super enjoyed it, but it was very slow going. I needed something more tailored for the young grade school level reader I am in Russian. So, I googled the history of Russian comics, and found &lt;a href="https://comicsforum.org"&gt;this wonderful 3 part series by Maria Evdokimova&lt;/a&gt; on comicsforum.org which I found to be a super enlightening about the history and current state of Russian comics. This lead me to the Nu Pogodi comics in the early 2000s which is one of the first "modern style" Russian comics I've seen. It's also more Archie than Watchman, so almost exactly what I was looking for. The characters date back much farther than the comic series. You can find the original cartoons on YouTube.&lt;/p&gt;
&lt;p&gt;Freaking hilarious. I got through the whole thing. It's about a wolf who's chasing a rabbit a la Wyle E. Coyote, and in this episode he buys problematic magic items from a mouse. Prat falls abound, it was pretty satisfying. Then, I found out there's a mini pastiche of the Ninja Turtles about ninja cockroaches. The ninja cockroaches are named after Russian Renaissance-era painters. Just look at it.&lt;/p&gt;
&lt;p&gt;I translated them for Hermione for bedtime stories, and she loves them. She's asking for more, so it is great motivation for me to keep it up. I'm not fluent enough to translate them for her as I read them for the first time, but if I discern them beforehand I can read fast enough for a decent bedtime story. If I get some time, perhaps I'll upload some &lt;a href="https://en.wikipedia.org"&gt;scanlations&lt;/a&gt;.&lt;/p&gt;</content>
</entry>
</feed>
