<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>RyanJM</title><link href="https://ryanjm.com/" rel="alternate"/><link href="https://ryanjm.com/feeds/all.atom.xml" rel="self"/><id>https://ryanjm.com/</id><updated>2026-02-12T11:00:00-08:00</updated><entry><title>Losing 35 Pounds: What It Actually Looked Like</title><link href="https://ryanjm.com/2026/02/12/weight-loss-journey/" rel="alternate"/><published>2026-02-12T11:00:00-08:00</published><updated>2026-02-12T11:00:00-08:00</updated><author><name>Ryan Mathews &amp; Claude Code</name></author><id>tag:ryanjm.com,2026-02-12:/2026/02/12/weight-loss-journey/</id><summary type="html">&lt;p&gt;I hit my goal weight recently. And since I had been slowly watching the number decrease for months, it wasn't the celebratory moment you might expect. It was just another morning on the scale. But it felt like a good time to write down what this past year actually looked …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I hit my goal weight recently. And since I had been slowly watching the number decrease for months, it wasn't the celebratory moment you might expect. It was just another morning on the scale. But it felt like a good time to write down what this past year actually looked like. Not the highlight reel. Not the advice (I wrote that &lt;a href="https://ryanjm.com/2026/02/12/weight-loss-guide/"&gt;separately&lt;/a&gt;). Just the honest, messy process of losing 35 pounds.&lt;/p&gt;
&lt;h2 id="the-backstory"&gt;The Backstory&lt;/h2&gt;
&lt;p&gt;In 2015, my wife went on a serious weight loss journey and I tagged along for the ride. She did the research, she changed the meals, and I just ate what she provided (I'm very spoiled). I went from around 183 down to the low 150s by 2016. It worked. But I didn't really learn anything. I hadn't built my own understanding regarding which foods were choloric or develop the habits to eat heathly on my own. I was just along for the ride.&lt;/p&gt;
&lt;p&gt;In 2018, I started working at Google. Google has micro kitchens (MKs) which are basically little snack stations on each floor in an office. Water, soda, chips, granola bars, yogurt, and sweets. They also provide cafeteria lunches, which always include dessert. Lucky me, when I started, my office (CL5) had 3 seperate cafeterias within a 3 minute walk. After lunch, I could easily walk by each to see what dessert options there were. Walking is good, right? Eating two or three desserts... maybe not so much.&lt;/p&gt;
&lt;p&gt;Over the next six years, my weight slowly crept back up. 170. 180. 190. By late 2024, I was hovering around 200 lbs. I had gained back nearly 50 pounds from my lowest weight. I knew I needed to change, but I kept telling myself I was playing the long game. No rush. I'd slowly lose the weight. &lt;/p&gt;
&lt;p&gt;Except I didn't. Year after year the same thing. My small "changes" didn't actually change anything.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/weight-full-timeline.png"&gt;&lt;figcaption&gt;My weight from 2015 to present, showing the drop following my wife's journey, the slow climb through the Google years, and the intentional drop starting in 2025.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="phase-1-just-eat-less-january-june-2025"&gt;Phase 1: Just Eat Less (January - June 2025)&lt;/h2&gt;
&lt;p&gt;At the start of 2025, I weighed 199 lbs and I decided I was done making excuses. My approach was simple: eat less. No calorie counting. No special diet. Just cut the snacking, eat smaller portions, and stop eating desserts during the week.&lt;/p&gt;
&lt;p&gt;The first few weeks were rough. I was hungry a lot. I remember going to bed some nights genuinely starving, my head and stomach screaming for food. But I also started to notice things. By mid-January, I went for a run and for the first time in a long time, I didn't feel my stomach shaking while I ran. That was a small but meaningful win.&lt;/p&gt;
&lt;p&gt;The weight started coming off fast. About 1-2 lbs per week. My eating habits were so bad that even modest improvements had a big impact. By March, I was at 184 and the jeans I just bought were already getting loose. By the end of April, I was in the 170s.&lt;/p&gt;
&lt;p&gt;I developed some mantras during this time. &lt;em&gt;My goal is bigger than today's desire&lt;/em&gt; became my go-to when I was walking by the MK. Being overweight was the result of hundreds of small bad decisions. Every time I had a new decision, like if I should try that new dessert at lunch, I had to remind myself I had already followed those urges in the past and I wasn't happy with the results.&lt;/p&gt;
&lt;p&gt;One of the harder lessons was Saturdays. All week I'd be disciplined, and then Saturday would come and I'd treat it like a reward. &lt;abbr class="cal" title="3 Oreos = ~160 cal"&gt;Three Oreos&lt;/abbr&gt;, a &lt;abbr class="cal" title="Bakery chocolate chip cookie = ~220 cal"&gt;chocolate cookie&lt;/abbr&gt;, &lt;abbr class="cal" title="2/3 cup Ben &amp; Jerry's Half Baked = ~370 cal"&gt;ice cream&lt;/abbr&gt;, and a &lt;abbr class="cal" title="Chick-fil-A Deluxe Sandwich w/ fries = ~910 cal"&gt;big meal&lt;/abbr&gt;. I'd wake up Sunday morning having reset the entire week's progress. I eventually reframed it: Saturday isn't a cheat day. It's my chance to practice maintenance mode.&lt;/p&gt;
&lt;p&gt;By early May, I was at 174. Twenty-five pounds lost in four months. I felt my goal weight was around the corner.&lt;/p&gt;
&lt;h2 id="phase-2-the-plateau-july-november-2025"&gt;Phase 2: The Plateau (July - November 2025)&lt;/h2&gt;
&lt;p&gt;And then everything stalled.&lt;/p&gt;
&lt;p&gt;For the next six months, I bounced between 170 and 176. I'd get down to 172, have a work dinner, potluck, or a vacation, and pop back up to 175. The same mental tricks that got me through Phase 1 weren't enough anymore. What got me here wasn't going to get me to my goal weight (pre-Google weight).&lt;/p&gt;
&lt;p&gt;The frustration was real. In July, I went on a 9-day family trip and gained 8 pounds. It took weeks to undo that. In October, I wrote in my journal: &lt;em&gt;I am frustrated with myself that I'm not losing weight. I see some new pastry at work and I grab it. I eat everything on my plate even though my body doesn't need it.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I'd slip into making justifications like "I've been pretty good lately," for eating something I shouldn't. But "pretty good" wasn't getting results. Social situations were especially hard. I had a hard time saying no. But those extra bites added up.&lt;/p&gt;
&lt;p&gt;I tried adjusting my targets. I tried being more aggressive on weekdays. I tried different meal strategies. I stopped being strict and starting eating snacks and desserts with the goal of just eating smaller meals. Nothing seemed to break through the plateau. Looking back, I was doing the same thing I had done in previous years and expecting different results.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/weight-2025-journey.png"&gt;&lt;figcaption&gt;My weight from January 2025 to February 2026, showing the steady decline in Phase 1, the plateau through the summer and fall, and the breakthrough after I started counting calories.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="phase-3-counting-calories-december-2025-present"&gt;Phase 3: Counting Calories (December 2025 - Present)&lt;/h2&gt;
&lt;p&gt;Around December, it finally dawned on me that I needed to change my approach entirely. I started to actually tracking my food. Nothing fancy -- I'd take a picture of my meal, describe it to an AI, and have it estimate the calorie count. Where I had recipes or packaging, I'd use those numbers instead. I wasn't pulling out a scale for everything trying to get it 100% accurate. It was enough.&lt;/p&gt;
&lt;p&gt;It was like seeing the Matrix.&lt;/p&gt;
&lt;p&gt;I had been eating foods I thought were reasonable and they were &lt;em&gt;way&lt;/em&gt; more caloric than I realized. A &lt;abbr class="cal" title="Costco blueberry muffin = ~400 cal"&gt;muffin&lt;/abbr&gt; at work? An extra 400 calories. That's as many calories as I was budgeting for my entire breakfast and I was eatting that muffin &lt;em&gt;in addition&lt;/em&gt; to my normal breakfast (I would tell myself that if I didn't snack that day I'd have the extra budget). I started understanding why certain weeks I hadn't lost anything even though I felt like I was being careful.&lt;/p&gt;
&lt;p&gt;The biggest shift was getting comfortable leaving food on my plate. That goes against years of conditioning. When I budgted ~560 calories per meal and realized that the pre-plated food I got at work was closer to 800 calories, I had to adjust my portion size. It felt wasteful at first. It is starting to feel normal now.&lt;/p&gt;
&lt;p&gt;I also realized that when a snack at work could be &lt;abbr class="cal" title="7 chocolate covered pretzels = ~140 cal"&gt;110 or 150 calories&lt;/abbr&gt;, that snack represents 20-25% of an entire meal. When I thought about it that way, the answer was almost always no.&lt;/p&gt;
&lt;p&gt;The results were immediate. December through January, the weight dropped consistently. I hit 170 right before Christmas, and kept going. By early February, I hit my 2025 goal weight of 163 lbs.&lt;/p&gt;
&lt;h2 id="what-i-learned"&gt;What I Learned&lt;/h2&gt;
&lt;p&gt;After 13 months and 35 pounds, a few things stand out:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Every food decision matters.&lt;/strong&gt; You are either gaining weight or losing weight. There is no neutral. This sounds exhausting, and it is at first. But it becomes eaier over time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What works early on will stop working later.&lt;/strong&gt; Phase 1 habits got me from 199 to 174. But they wouldn't work for the last 10 lbs. I had to adapt. If you plateau, don't do more of the same. Try something &lt;em&gt;different&lt;/em&gt;. And realize that you are in a plateau within 2-3 weeks, not months like me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hunger is temporary and informative.&lt;/strong&gt; I had to get comfortable with being a little hungry between meals. Not starving, not lightheaded, just a little hungry. That feeling means your body is dipping into its reserves, which is the whole point. You adjust to the new normal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Your identity matters more than your willpower.&lt;/strong&gt; At some point I stopped thinking of myself as someone who is &lt;em&gt;trying&lt;/em&gt; to eat less and started thinking of myself as someone who &lt;em&gt;doesn't eat that much&lt;/em&gt;. I'm someone who feeds their body well. That shift made the daily decisions easier (not perfect, but better).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Progress doesn't have to be perfect.&lt;/strong&gt; I had vacation setbacks, holiday binges, and weeks where I went in the wrong direction. The overall trend still went down. Just try not to have a single day undo a week's worth of work. Everything in moderation.&lt;/p&gt;
&lt;h2 id="whats-next"&gt;What's Next&lt;/h2&gt;
&lt;p&gt;I'm still learning. I'll probably start tracking macros soon as that's the next level for improving body composition and enabling increased focus. But hitting my new goal weight is only the beginning of the next stage: maintenance.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In a meta-analysis of 29 long-term weight loss studies, more than half of the lost weight was regained within two years.
&lt;a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC5764193/"&gt;Source&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have a lifetime of habits I'm still rewiring. My goal is to make this new identity stick.&lt;/p&gt;
&lt;div class="callout callout-info" style="--callout-color: #448aff;"&gt;&lt;div class="callout-title"&gt;&lt;span class="callout-icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;circle cx="12" cy="12" r="10"/&gt;&lt;line x1="12" y1="16" x2="12" y2="12"/&gt;&lt;line x1="12" y1="8" x2="12.01" y2="8"/&gt;&lt;/svg&gt;&lt;/span&gt; Info&lt;/div&gt;&lt;div class="callout-content"&gt;&lt;p&gt;This post was written with Claude and edited by me. It was based on my outline and journal entries over the past year.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content><category term="Reflections"/></entry><entry><title>Steps to Losing Weight</title><link href="https://ryanjm.com/2026/02/12/weight-loss-guide/" rel="alternate"/><published>2026-02-12T10:00:00-08:00</published><updated>2026-02-12T10:00:00-08:00</updated><author><name>Ryan Mathews &amp; Claude Code</name></author><id>tag:ryanjm.com,2026-02-12:/2026/02/12/weight-loss-guide/</id><summary type="html">&lt;p&gt;Imagine you are on a week-long vacation at an all-you-can-eat resort. At each meal you are surprised at how good it is, so you take the extra couple of bites after being full. You &lt;em&gt;are&lt;/em&gt; on vacation after all. Would you gain weight? Yes. There should be no surprise there …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Imagine you are on a week-long vacation at an all-you-can-eat resort. At each meal you are surprised at how good it is, so you take the extra couple of bites after being full. You &lt;em&gt;are&lt;/em&gt; on vacation after all. Would you gain weight? Yes. There should be no surprise there.&lt;/p&gt;
&lt;p&gt;Now imagine the opposite. You completely fast for two days. Don't eat anything. Would you lose weight? Yes.&lt;/p&gt;
&lt;p&gt;So we know that eating too much leads to gaining weight and not eating leads to losing weight. The answer to maintaining or losing weight is somewhere between those two extremes. That's it. That's the core of it.&lt;/p&gt;
&lt;p&gt;The rest is just figuring out where the balance is for &lt;em&gt;your&lt;/em&gt; body and &lt;em&gt;your&lt;/em&gt; goals.&lt;/p&gt;
&lt;h2 id="two-terms-you-need-to-know"&gt;Two Terms You Need to Know&lt;/h2&gt;
&lt;p&gt;The first is &lt;strong&gt;calories&lt;/strong&gt;. Food is labeled with the number of calories it contains. We won't get into the science of what a calorie actually is. Just think of it as a unit of energy. You eat 3 oz of chicken breast, you gain 140 units of energy.&lt;/p&gt;
&lt;p&gt;The second is &lt;strong&gt;Total Daily Energy Expenditure (TDEE)&lt;/strong&gt;. This is the amount of energy your body naturally spends each day. It takes energy to breathe, to walk, to move your arms, to read some guy's blog post about weight loss. There are websites that help you estimate this number. For example, a 30-year-old, 6-foot male who is 200 lbs and doesn't do much regular exercise would have a TDEE of roughly 2,620 calories.&lt;/p&gt;
&lt;p&gt;The equation is straightforward: &lt;code&gt;calories in (what you eat) - calories out (TDEE) = weight change&lt;/code&gt;. If you are the person above and you eat a &lt;abbr class="cal" title="Subway Footlong Meatball Marinara = ~960 cal"&gt;footlong meatball sub&lt;/abbr&gt; (~960 calories) for breakfast, lunch, &lt;em&gt;and&lt;/em&gt; dinner (~2,880 calories), you will slowly gain weight.&lt;/p&gt;
&lt;p&gt;The general recommendation for losing weight is a deficit of 500 to 1,000 calories per day, which works out to about 1-2 lbs per week. That's it. Nothing dramatic. This is a long game, not a sprint.&lt;/p&gt;
&lt;h2 id="the-first-two-steps"&gt;The First Two Steps&lt;/h2&gt;
&lt;p&gt;Here's where I'd start. No dramatic changes. No overhauling your life. Just two things.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: Weigh yourself daily.&lt;/strong&gt; You can't improve what you don't track. If you don't have a scale go buy one. They cost ~$20.&lt;/p&gt;
&lt;p&gt;Weigh yourself first thing in the morning after going to the bathroom. Track it in an app (MyFitnessPal, Apple Health, whatever is easiest for you). Don't stress about the number yet. Just get used to knowing it. You'll start to notice patterns. Had takeout Chinese last night? The sodium made you retain water and the number went up. That's normal. Had a lighter day? It'll probably show up the next morning.&lt;/p&gt;
&lt;p&gt;For now, don't change anything about your habits. Just watch the number for a week or two and see what your normal fluctuation looks like.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2: Start a food diary.&lt;/strong&gt; Before anything goes into your mouth, it goes into the diary. You don't need to count calories yet. Just write down what you eat. This sounds tedious, but it is eye-opening. Snacking becomes second nature and you can easily forget that you took an extra trip to the kitchen.&lt;/p&gt;
&lt;p&gt;After a week, look back at what you ate. For days where your weight went up, look up the calorie counts for some the food you ate the day before. Compare that to your TDEE. In the beginning you are just trying to build intuition around what foods are chaloric or not.&lt;/p&gt;
&lt;h2 id="think-of-your-body-like-a-car"&gt;Think of Your Body Like a Car&lt;/h2&gt;
&lt;p&gt;Your body is a machine. It only needs enough fuel to get you to the next meal. If you put in extra, your body isn't going to pour the extra gas out. It's going to store it in a gas canister in the back seat. The back seat is full? Okay, we'll strap it to the roof. This car &lt;em&gt;will&lt;/em&gt; expand.&lt;/p&gt;
&lt;p&gt;The thing I had to learn (and re-learn, honestly) is that your body needs very little food to function. Once you start paying attention, you realize that most of the eating you do is out of habit, boredom, or social pressure, not because your body actually needs it.&lt;/p&gt;
&lt;p&gt;You don't have to overhaul everything at once. Cut one thing. Maybe it's sugary drinks. Maybe it's the afternoon snack. Maybe it's taking a smaller portion at dinner. Start small. Small changes compound over time.&lt;/p&gt;
&lt;h2 id="changing-your-mindset"&gt;Changing Your Mindset&lt;/h2&gt;
&lt;p&gt;Here's the part no one tells you: losing weight is as much a mental game as a physical one. You have built habits over your entire life. You are trying to change those habits. Unless you are intentional about it, it won't happen. No one else will change it for you.&lt;/p&gt;
&lt;p&gt;Figure out &lt;em&gt;why&lt;/em&gt; you want to lose weight. "Just because" isn't enough. You need a reason that is strong enough to get you through the moment when you are staring down a plate of cookies and your brain is telling you to eat three of them. For me, it was my family. Find yours.&lt;/p&gt;
&lt;p&gt;Develop a mantra if that helps. In the beginning, mine was: &lt;em&gt;my goal is bigger than today's desire.&lt;/em&gt; I had realized that I got overweight by a bunch of small bad decisions. Each time an opportunity to make a bad decision came up, I had to confront that my goal was bigger than that desire and that following that desire is let to me being overweight.&lt;/p&gt;
&lt;h2 id="where-to-go-from-here"&gt;Where to Go From Here&lt;/h2&gt;
&lt;p&gt;This post is intentionally short. I'm not going to try to cover everything because I'm not an expert. I'm just a guy who lost 30+ pounds and wants to document the basics for anyone who is in a similar situation as I was.&lt;/p&gt;
&lt;p&gt;If you want to go deeper, here are some resources I found helpful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@dangolife"&gt;Dan Go on YouTube&lt;/a&gt; for practical, no-nonsense fitness advice&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/loseit/"&gt;r/loseit&lt;/a&gt; on Reddit for community support and success stories&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jamesclear.com/atomic-habits"&gt;Atomic Habits&lt;/a&gt; by James Clear for understanding how habits actually work&lt;/li&gt;
&lt;li&gt;A TDEE calculator like &lt;a href="https://tdeecalculator.net/"&gt;tdeecalculator.net&lt;/a&gt; to know your number&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Part of changing habits is forming a new identity, which means creating new thinking patterns. Having good content going through your mind helps bring awareness to your actions and builds those new patterns.&lt;/p&gt;
&lt;p&gt;If you want to see what this process actually looked like for me over the past year, I wrote about &lt;a href="https://ryanjm.com/2026/02/12/weight-loss-journey/"&gt;my personal weight loss journey&lt;/a&gt; separately. It wasn't pretty, but it worked.&lt;/p&gt;
&lt;div class="callout callout-info" style="--callout-color: #448aff;"&gt;&lt;div class="callout-title"&gt;&lt;span class="callout-icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;circle cx="12" cy="12" r="10"/&gt;&lt;line x1="12" y1="16" x2="12" y2="12"/&gt;&lt;line x1="12" y1="8" x2="12.01" y2="8"/&gt;&lt;/svg&gt;&lt;/span&gt; Info&lt;/div&gt;&lt;div class="callout-content"&gt;&lt;p&gt;This post was written with Claude and edited by me. It was based on my outline and journal entries over the past year.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content><category term="Reflections"/></entry><entry><title>Nomad - Initial Experience</title><link href="https://ryanjm.com/2024/04/11/nomad-initial-experience/" rel="alternate"/><published>2024-04-11T12:33:00-07:00</published><updated>2024-04-11T12:33:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2024-04-11:/2024/04/11/nomad-initial-experience/</id><summary type="html">&lt;p&gt;I've had the Nomad (A6 X2) for about a month and I'm enjoying the experience. This is a quick review of the device (the bulk of the post is my list of requests).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;tl;dr: The Nomad is fun to use, but it lacks polish.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Overall, the A6 X2 feels …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I've had the Nomad (A6 X2) for about a month and I'm enjoying the experience. This is a quick review of the device (the bulk of the post is my list of requests).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;tl;dr: The Nomad is fun to use, but it lacks polish.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Overall, the A6 X2 feels like it is a few years removed from a hardware engineer's side project. It has a really nice hardware design and there are &lt;em&gt;a lot&lt;/em&gt; of software features, but it all lacks polish.&lt;/p&gt;
&lt;p&gt;The features feel bolted on, being added wherever they would fit as they were developed. No one took a systematic approach to how the system as a whole should function and the result is a confusing mental model. Additionally there has been a lack of refinement to the basic interactions. A few examples I've come across so far (full list at the end of the post):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are multiple locations where you can see gesture-related settings. They aren't the same settings, but they aren't grouped in a unified place.&lt;/li&gt;
&lt;li&gt;There is a dedicated app icon for Atelier and Digest, but not for Notes or Documents.&lt;/li&gt;
&lt;li&gt;In Notes, the top icon opens up the Files app to open a new note. This feels like an "Open" menu item within a Desktop app, but it isn't limited to just files that the Notes app can open. For example you can open an image, but it'll just preview it you aren't opening it in the Notes app. From this version of the Files app you can also create new files, including Word and Atelier files. The only difference between this Files version and the main menu's Files app is this has a back button to the file you were just in.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This lack of refinement also extends to the day-to-day interactions with notes themselves. When menus are open (e.g. editing a pen's color/width or highlighting text in a PDF) there is no palm recognition, so if you put your palm down (to touch the menu with the pen) the menu disappears (which is infuriating sometimes).&lt;/p&gt;
&lt;p&gt;There are times when you write and the ink doesn't show up. I was especially having this experience in the Atelier app. Thankfully a force refresh of the screen is only a swipe away, but that feels like using it as a work around rather than a true feature.&lt;/p&gt;
&lt;p&gt;I'll close by saying that I think the Nomad is fun to write on. Does it match paper? No. When you read that Wacom worked to make it sound just like paper, you can tell. But, at least with my pens, paper still has more tooth or grip. On the Nomad you can still tell that you are writing on a screen protector. Thankfully that isn't going to stop me from writing on it.&lt;/p&gt;
&lt;p&gt;I do wish Ratta would stop trying to bolt on new features and focus on the fundamentals for a little bit.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="list-of-issues"&gt;List of issues&lt;/h2&gt;
&lt;p&gt;Some of these are clearly bugs, but a lot of them fall more into being a feature request (FR), so I've gone ahead and labeled them.&lt;/p&gt;
&lt;h3 id="supernote-system"&gt;Supernote System&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;By the way, is "Supernote" one or two words? On the website and the pen it is one, but on the power cable it is two.&lt;/li&gt;
&lt;li&gt;(FR) During setup, it asks if I'm left handed or right handed (I am left handed). It looks like it only changes the swipe shortcuts on the hardware, but I would also recommend switching the side the app's menu is on too.&lt;/li&gt;
&lt;li&gt;(FR) The two finger hold to get the lasso eraser is nice, but many times I just want to scratch out text. It would be great to have a setting which enabled me to toggle on a Scratch-to-Erase feature.&lt;/li&gt;
&lt;li&gt;(FR) I haven't gotten into leveraging links very much yet, but I wish the "jump back" shortcut (swipe up from the middle of the page) worked for multiple notebooks / Documents without links.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="notes"&gt;Notes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(FR) I like the idea of templates, but it can be helpful to iterate on a template a few times before going to a computer and building it out in detail.&lt;ul&gt;
&lt;li&gt;Right now, if I want to create my own template just on the device I have to write out my template in Note 1, export it to an image, move that image to My Style, then go to the destination file (Note 2) and Add a Template.&lt;/li&gt;
&lt;li&gt;This could be 100x easier: In Note 1, I write out my template, then I go to Note 2 (could even be the same file) when I add a template, I should have the choice of adding a new template from a file (Note/PRD/image that isn't in the My Styles folder). If there are multiple files in that Note, it would have me select one of them, then it would automatically create an image of that note, put it into the My Style folder and insert that as a template (optional: ability to name that new image).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(FR) I understand why Atelier is a dedicated app for drawing, but I want a notebook of sketches. No zoom/rotate option, just all the pencils/pens/colors in the Notes app.&lt;ul&gt;
&lt;li&gt;(FR) Atelier's pencil is really nice, I wish Notes had it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(FR) Text recognition should be able to be turned on/off for a notebook at any time rather than only during Note creation. I know there is no layer control when using a text-recognition note, but I think there should be. Even if it causes some issues, just flatten the layers you need to, and do the text recognition on it. Or specify that the first layer is the only one that gets it (that opens up some options).&lt;/li&gt;
&lt;li&gt;(Bug) I was accidental triggering the paste shortcut. That was the only way I found out it even existed (which I'm glad it does). I just wish there was better palm rejection.&lt;/li&gt;
&lt;li&gt;(Bug) The hardware swipe for the Main Menu requires a longer swipe (50%) than the undo/redo swipes (10-20%).&lt;ul&gt;
&lt;li&gt;(FR) The hardware swipe for undo and redo should be dynamic. The longer the swipe the more undos or redos you do. I'm often 2-3 strokes into my mistake before my brain realizes it. It is too slow to swipe up three times. I will just go to the lasso eraser instead.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(FR) Add ability to switch the undo/redo swipe directions. Two reasons why I think they should be inverted: (1) the undo button is on top of the redo button, (2) the most common action is undo so it should match the same direction (top to bottom) as the Main Menu.&lt;/li&gt;
&lt;li&gt;(FR) Move the Page Swipe menu item to the App's gesture menu. I am not sure why it has dedicated placement on the menu. It should be a set once and forget setting.&lt;/li&gt;
&lt;li&gt;(FR) When you change pens, it stays the same pen as you switch between notes and PDFs. I wish there was setting to switch to a pen-per-file setting. Or even separate pens from Notes from Documents.&lt;/li&gt;
&lt;li&gt;(FR) When working from a to-do list I have found myself wishing the Lock Screen would still display it. It would be great to temporarily set a page as the Lock Screen for a period of time (1 hour or 1 day). There would just need to be some treatment to show it is the Lock Screen vs it is unlocked.&lt;/li&gt;
&lt;li&gt;(Bug) The popup menu for headers (and presumably others) can be covered by the page nav bar being on top. Therefore the menu should pop below the selected text.&lt;/li&gt;
&lt;li&gt;(Bug) No palm recognition. This is especially painful when menus are open (e.g. editing pens).&lt;/li&gt;
&lt;li&gt;(FR) When creating a new note, after putting in the name of the note, hitting Enter on the letter keyboard doesn't create the note or dismiss the keyboard. It should do one of the two.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="documents-pdf"&gt;Documents (PDF)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(Bug) Can't undo or erase a highlight.&lt;/li&gt;
&lt;li&gt;(Bug) No palm recognition - when I highlight text the menu is dismissed as soon as my palm touches&lt;/li&gt;
&lt;li&gt;(Bug) I was also getting a lot of page turns with my palm.&lt;ul&gt;
&lt;li&gt;(FR) Option to limit inputs to just the pen. I would be fine with selecting all menu items with my pen if that helped. But I would still want swipe/2 fingers on screen shortcuts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(FR) The square brackets for additional notes doesn't work consistently for me. I often have to try 3 or 4 times to get it to work.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="digest"&gt;Digest&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;(FR) Digest is a separate program?? Make it part of the Documents app.&lt;/li&gt;
&lt;li&gt;(FR) Option to expand the Digest to show multiple lines of a note.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="atelier"&gt;Atelier&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(Bug) Atelier hid many strokes when my palm touched the left edge or after doing a few quick strokes together.&lt;/li&gt;
&lt;li&gt;(Bug) Atelier doesn't support moving around the menu, at least I was unable to move it to the right side.&lt;/li&gt;
&lt;li&gt;(Bug) My palm (I'm left handed) touching the screen will frequently resize the canvas a bit. I think it is triggering two touch points.&lt;/li&gt;
&lt;li&gt;(FR) Atelier doesn't support the hardware shortcuts for undo/redo/lasso.&lt;/li&gt;
&lt;li&gt;(FR) Atelier has no indication of what the edge of the canvas is, so I have no idea how zoomed in or out I am.&lt;/li&gt;
&lt;li&gt;(FR) Ability to choose the size of the canvas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="main-menu"&gt;Main Menu&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(FR) Quick Access should have a toggle (whose state is saved) for the recent files instead of it being a button at the top.&lt;ul&gt;
&lt;li&gt;(FR) Replace that top right icon with the ability to open Search (why is that in the top menu?).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(FR) Last opened note only works if you are switching between a document and a note, not toggling between notebooks. Support any file so it becomes more of a quick app/note switcher. Or remove entirely to give real-estate for quick access/recent files since that would have the same behavior.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="top-menu-control-panel"&gt;Top Menu (Control Panel)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(Bug) There is different behavior between rotate and wifi. The both toggle a setting, but one dismiss the menu and the other doesn't.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="search"&gt;Search&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(FR) Search is not fuzzy. It has to be exact word match. I would prefer being able to search for part of the word.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="files-folder-system"&gt;Files (Folder System)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(FR) Root folder can't be modified. I wish I could have my own naming system here (see Obsidian's settings for specifying which folder holds which contents).&lt;ul&gt;
&lt;li&gt;Mental model is very strange for the folder structure: why isn't My Style called Templates?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(FR) Names of files in the list is broken up by file type (having the symbol for text translation on the left breaks flow of titles from top to bottom). Move the icon to the right side (or remove it entirely and support turning it on/off on every file).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="settings"&gt;Settings&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;(Bug) The Gesture guide PDF says you can do page turns with taps, but that is Documents.&lt;/li&gt;
&lt;li&gt;(FR) The Manual should just be a PDF pre-loaded in documents. It takes a lots of taps to get back to it every time.&lt;/li&gt;
&lt;li&gt;(Bug) Manual's image for redo is actually undo (p17)&lt;/li&gt;
&lt;li&gt;(FR) Eraser and lasso preference seem like they should live within the note app&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="desktop-and-mobile-apps"&gt;Desktop and Mobile Apps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;(Bug) This may be intentional, but it shouldn't be: exporting a PNG from the Nomad appears to create a locked file. Trying to open it with Mac Preview, crop it, and then saving the file fails. It says, "The document ... could not be saved." If I don't have full access to my own files then I'm not sure what the point is of a digital notebook.&lt;/li&gt;
&lt;li&gt;(FR) The sign in process is strange. I created the account online, but couldn't sign in to the website until I signed in on my device.&lt;/li&gt;
&lt;li&gt;(FR) I don't really want a full Mac Desktop app. That is overkill and a waste of eng resources (assuming Ratta is a smaller company). I would just want a mini app which enabled a Preview of &lt;code&gt;.note&lt;/code&gt; files and the ability to export them as PDF. Thankfully I use Obsidian, so I've been using a plugin which basically does this.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mental-model"&gt;Mental Model&lt;/h2&gt;
&lt;p&gt;The mental model of the Supernote takes a bit to wrap your mind around. It isn't like a normal mobile operating system and especially not a Desktop system.&lt;/p&gt;
&lt;p&gt;There isn't a dedicated home screen where you find a list of apps and when you exit the app is where you are returned to. The default Notes app (if thats what it is even called) is just &lt;em&gt;there&lt;/em&gt;. There is no way to "launch it" other than by clicking on a note file or creating a new note.&lt;/p&gt;
&lt;p&gt;And since there is no home screen, there is also no concept of an App Switcher to quickly jump between recently opened apps. I found myself wanting a quick way to switch between multiple Documents and/or Notes. The best option is to leverage the Main Menu &amp;gt; Recent Files menu (swipe + 2 taps).&lt;/p&gt;
&lt;p&gt;The Main Menu has a mishmash of responsibilities. It is the App Launcher and App Switcher. This leads to new features feeling a bit bolted on. As an example there are multiple paths to open up a file from the main menu: quick access, recent files, and favorites. But then you have to use the top menu to access Search.&lt;/p&gt;
&lt;p&gt;This results in a strange way to access all of the parts of the system.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Nomad-Mental-Model-Current.png"&gt;&lt;figcaption&gt;It feels a bit like a spider web of links&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Even Settings is strange. It is a popover window. It is the only window that has an "X" for closing it.&lt;/p&gt;
&lt;p&gt;And since Notes and Documents (PDF) are core apps, they share some preferences in the Settings app, but not all of them. And it isn't clear which settings apply to which apps. Example: your pen options are shared between Notes and Docs, but not Atelier.&lt;/p&gt;
&lt;p&gt;The more I think about it, I think Notes and Documents are actually the same app, just different menus based on the file. I think they should be broken out into their own apps if that is the case.&lt;/p&gt;
&lt;p&gt;Notes and Documents having their own dedicated app icons (and dedicated Settings) would make the main menu act more like a home screen.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Nomad-Mental-Model-New.png"&gt;&lt;figcaption&gt;Within Settings should be App-specific settings for Notes and Documents&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Right now, features and functionality feel bolted onto an existing system. One that started with the assumption that Notes and Documents would be the only feature (app) of the device and that using the file system to open them would be enough.&lt;/p&gt;
&lt;p&gt;Thankfully Ratta has continued to develop functionality and has even enabled side loading. This just requires a bit of rethinking on how everything is laid out.&lt;/p&gt;
&lt;p&gt;My suggestion above would be a minimal change. Changing up the main menu to actually be a &lt;em&gt;full&lt;/em&gt; screen app would open up many more possibilities, such as having a library of recent files vs pinned (quick access) files. Think Kindle library.&lt;/p&gt;
&lt;p&gt;And that opens up another 20 paragraphs about how it could be laid out, but that really wasn't the intention of this post. I'll put my pen down now.&lt;/p&gt;</content><category term="Tech"/></entry><entry><title>Nomad - Pre-Arrival</title><link href="https://ryanjm.com/2024/03/14/nomad-pre-arrival/" rel="alternate"/><published>2024-03-14T12:51:00-07:00</published><updated>2024-03-14T12:51:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2024-03-14:/2024/03/14/nomad-pre-arrival/</id><summary type="html">&lt;p&gt;&lt;strong&gt;Why am I writing a blog post before I even received the device?&lt;/strong&gt;
I am fascinated with the visceral experience I've had so far and thought it would be fun to document my thoughts and a couple steps in my journey: before I receive the device (this post), initial experience …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;Why am I writing a blog post before I even received the device?&lt;/strong&gt;
I am fascinated with the visceral experience I've had so far and thought it would be fun to document my thoughts and a couple steps in my journey: before I receive the device (this post), initial experience, and a couple months in.&lt;/p&gt;
&lt;p&gt;The only people who may find this post interesting or useful are those at Ratta.&lt;/p&gt;
&lt;h2 id="initial-excitement"&gt;Initial Excitement&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;February 20th&lt;/strong&gt;, I stumbled across cam shand's &lt;a href="https://www.youtube.com/watch?v=KXJ0QX_4N8s"&gt;The Future of Paper - Supernote Nomad&lt;/a&gt;. I had never heard of Ratta or the Supernote before. A few things stood out to me.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;crystal back&lt;/strong&gt;. I'm a child of my generation: the purple Game Boy Color and the iMac G3 are devices that stand out for their design which included exposing the internals. This appeals to my nerdy side. I like seeing different parts of electronics and how they work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Expandable storage and replaceable parts.&lt;/strong&gt; It is sad that this is such a unique differentiator in 2024, but it is. Seeing a company care about sustainability and supporting older devices is great and the type of company I would ideally like to put my money towards.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;interface&lt;/strong&gt;. Specifically seeing the &lt;a href="https://youtu.be/KXJ0QX_4N8s?si=9wVlU42UkZEisAzf&amp;amp;t=479"&gt;editable writing&lt;/a&gt; section (undo, copy and paste, text rotation) made me say, "Yes!" That's when I got excited.&lt;/p&gt;
&lt;p&gt;The fact that there was such care in getting a screen protector from Wacom which makes it feel more like paper was a very nice bonus. I've been thinking about a drawing screen protector for my iPad for awhile, but just haven't done it yet. But the idea of a device &lt;em&gt;dedicated&lt;/em&gt; to writing, but with the power of a computer, resonates with me.&lt;/p&gt;
&lt;h3 id="tangent-a-little-about-me"&gt;Tangent: a little about me&lt;/h3&gt;
&lt;p&gt;This may be useful context:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I'm a software developer by trade, currently I'm a product manager. I'm 14+ years into my career.&lt;/li&gt;
&lt;li&gt;I like writing long hand, but for productivity (work/personal improvement) I have never stuck to it for more than a month or two.&lt;/li&gt;
&lt;li&gt;I have messy handwriting and am a poor speller. I will frequently scratch words out to rewrite them. The lack of undo on paper annoys me constantly.&lt;/li&gt;
&lt;li&gt;Classmates would frequently comment on how small I write.&lt;/li&gt;
&lt;li&gt;The lack of ability to search my notebooks has annoyed me.&lt;/li&gt;
&lt;li&gt;As a data hoarder, I am very aware that there is no backup of my notebooks.&lt;/li&gt;
&lt;li&gt;I like being particular with my pens and paper (thankfully I never got into very expensive pens, I like Muji pens).&lt;/li&gt;
&lt;li&gt;I &lt;em&gt;want&lt;/em&gt; to carry around a physical notebook and to have some use for it in my system, but I've just never overcome the above hurdles.&lt;/li&gt;
&lt;li&gt;I've always wanted to improve my drawing skills and recently I've started to carry around a sketch pad to try to build up a habit of drawing once in awhile.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Back to the post.&lt;/p&gt;
&lt;h2 id="sleeping-on-it"&gt;Sleeping On It&lt;/h2&gt;
&lt;p&gt;I've never considered an impulse purchase as much as this one.&lt;/p&gt;
&lt;p&gt;Thankfully I saw the video in the evening and it was easy enough to sleep on it. But the next morning my mind was racing with ideas about how it might fit into my workflow and how cool it is.&lt;/p&gt;
&lt;p&gt;I have been cutting back on YouTube for a couple weeks, but this completely undid. I had to watch as many videos about the Nomad as I could. I wasn't a fan of the long 30 minute+ reviews and I quickly found a lot of repetition. For this use case, I prefer two types of videos: tech reviews and long term reviews.&lt;/p&gt;
&lt;p&gt;Unboxing and first impression videos are not helpful. Everyone goes through the same motions and covers the same topics. Everyone has the same "complaints" re: the screen being rough the begin with but that it breaks in after time.&lt;/p&gt;
&lt;p&gt;A tech review video would be useful as a quick recap of the features and abilities. I think cam's video did that well.&lt;/p&gt;
&lt;p&gt;Long term reviews are great for how a device actually fits into someone's workflow. Not someone who has 12+ e-ink devices and considers themselves an expert in the field. Sorry, but your workflow doesn't feel applicable to mine.&lt;/p&gt;
&lt;p&gt;I remained very excited about this device.&lt;/p&gt;
&lt;p&gt;So on &lt;strong&gt;February 23rd&lt;/strong&gt; I signed up for their newsletter. I am interested in their business and wanted to learn more. I was basically asking: sell me on your ecosystem.&lt;/p&gt;
&lt;h2 id="buying-it"&gt;Buying It&lt;/h2&gt;
&lt;p&gt;3rd party devices aren't allowed at work, so it would have limited usage there. And it was hard to justify $400+ on a device where I'm not 100% sure how it will fit into my existing workflow which is 100% digital (mostly Obsidian).&lt;/p&gt;
&lt;p&gt;But it was an ear worm. I couldn't get it out of my head. It just seemed... fun. Thankfully, I'm in a position where I can occasionally justify a large purchase as simply a toy. Something fun to play with. I hope it will fit into my workflow, but for nothing else, it seems fun. It'd be fun to draw on it.&lt;/p&gt;
&lt;p&gt;On &lt;strong&gt;February 24th&lt;/strong&gt;, I purchased one. The site said that shipping would be mid-March.&lt;/p&gt;
&lt;p&gt;I ended up going for the white back. I wanted to be practical and know that I'm really not going to be looking at the back that often, especially since it will be in a case. But the crystal back told me that this company had a design sensibility that I would be willing to support.&lt;/p&gt;
&lt;h3 id="supernote-vs-others"&gt;Supernote vs Others&lt;/h3&gt;
&lt;p&gt;Honestly, I usually do more research when making a big purchase. But for this one, it was still a bit of an impulse purchase. The main reasons why I didn't bother going down the rabbit hole of Supernote vs ReMarkable vs Boox was that I had a general idea of ReMarkable and Boox already and the videos I watched reenforced my initial impressions (confirmation bias anyone?).&lt;/p&gt;
&lt;p&gt;In my mind the ReMarkable is a very simple system. But with only having a large form device and a monthly subscription, that was a no-go for my use case.&lt;/p&gt;
&lt;p&gt;The Boox design just doesn't resonate with me. Additionally it seems to be more of a full Android tablet which is more than I want (with the sacrifice, I imagine, of battery life).&lt;/p&gt;
&lt;p&gt;The Supernote checked the boxes for me. (A) Ability to do everything offline and control my files, (B) right design philosophy, (C) focus on writing, but still providing powerful controls that come with it being a computer, and (D) smaller form factor. Bonus: great battery life.&lt;/p&gt;
&lt;h2 id="waiting"&gt;Waiting&lt;/h2&gt;
&lt;p&gt;Now all I had to do was wait. I'm not great at waiting.&lt;/p&gt;
&lt;p&gt;I kept watching videos and reading what I could. I also found their &lt;a href="https://www.reddit.com/r/Supernote"&gt;Subreddit&lt;/a&gt; (a site I had cut out entirely, thanks for reversing that Ratta \s).&lt;/p&gt;
&lt;p&gt;After a couple days, the excitement wore off and I started having a critical eye about everything.&lt;/p&gt;
&lt;p&gt;I read most of Supernote's website. And questions started to come up.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why exactly is this company named Ratta?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Their site says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ratta was founded 15 years ago as a developer of IC card terminals (POS) and payment systems. ... Now, we are creating a new category "Digital Stationery" for making the world a better place.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I'm still not sure why it is called Ratta, but it sounds like it is a hold over from their previous initiatives. With everything else saying Supernote, especially their URL, I kind of wish they would simplify and just change the company name to Supernote. But there are probably trademark issues around that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How big is Ratta?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I have no idea.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where exactly is this company located?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Their site says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We are a private company with offices in Shanghai, Tokyo and Washington&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But where is the headquarters? The invoice has their address as:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;RATTA US INC
Office #3114
445 South Figueroa Street
Los Angeles, California 90071
United States&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But their newsletter says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ratta US&lt;/em&gt;
601 W 1st Ave
Spokane, WA 99201&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Where do things get shipped from?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I wasn't able to find an answer to this. Reading the subreddit I saw there is an EU store, but that sounds like it is a different entity than Ratta, potentially ran independently. From their &lt;a href="https://supernote.com/pages/authorized-sellers"&gt;site&lt;/a&gt;, it looks like they are an authorized seller, but it is weird because they use the Supernote name as well.&lt;/p&gt;
&lt;p&gt;The other strange thing is that the authorized seller websites are actually better than Ratta's site. More video, more pictures.&lt;/p&gt;
&lt;p&gt;Generally speaking Ratta's site copy is very poor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They leverage a lot of us-vs-them language (e.g. "Let's face it, most E Ink tablets are cold and dull.") rather than just talking about their strengths.&lt;/li&gt;
&lt;li&gt;There is a lot of filler text rather than focusing on what the product actually provides.&lt;/li&gt;
&lt;li&gt;They like to promise future features. Just sell what you have &lt;em&gt;today&lt;/em&gt;. Leave future initiatives and goals to your roadmap/community.&lt;ul&gt;
&lt;li&gt;"DIY options will be available in the future."&lt;/li&gt;
&lt;li&gt;"Export to PSD (Under development)"&lt;/li&gt;
&lt;li&gt;"A Linux-based system will be open in the future for community modifications and customizations." Note: Is this Android side loading or something else? There is no &lt;em&gt;learn more&lt;/em&gt; links for these items.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;They have images with small fonts baked in.&lt;/li&gt;
&lt;li&gt;Their marketing page has some pretty technical terms associated with it (e.g. "300 milliseconds for quick page turn" rather than "half a second")&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The user experience on the site could use an uplift as well.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Under "2nd Gen Soft Screen Film" if you watch the video (which is just an ad with no voiceover) you are reset to the top of the page when you are done.&lt;/li&gt;
&lt;li&gt;The "No "Connect", No Problem" headline is trying too hard to be cute and ends up with poor communication. This may be a better phrase in a different language.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The site structure is also a bit confusing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There is a &lt;a href="https://supernote.com/pages/reviews"&gt;reviews&lt;/a&gt; section but also &lt;a href="https://supernote.com/pages/testimonial"&gt;testimonial&lt;/a&gt; &amp;amp; &lt;a href="https://supernote.com/pages/use-cases"&gt;use-case&lt;/a&gt; pages (both of which look like they were last updated in 2022)&lt;/li&gt;
&lt;li&gt;The solutions pages feel like a V1 pass of how a Supernote could be used, but the use-cases section kind of does this a bit better.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Overall the website did a poor job of actually show casing what a Supernote can do or a good job selling the product. I know UX and marketing are both hard, but I have to imagine some investment here would help sell more product and build stronger trust in the brand (I was seeing some comments in Reddit asking if this is a scam).&lt;/p&gt;
&lt;p&gt;Which brings me to the last topic: inventory.&lt;/p&gt;
&lt;h2 id="inventory"&gt;Inventory&lt;/h2&gt;
&lt;p&gt;From everything I can tell, from February and March 2024, it seems like they have a hard time keeping inventory in stock. The A6X2 (Nomad)&lt;em&gt; said &lt;/em&gt;shipping* in mid-March. If it is shipping snail mail from China, then I may need to mentally attach another month to that timeframe. I don't care about when it &lt;em&gt;ships&lt;/em&gt; I want to know when I can expect to &lt;em&gt;get it&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;* This is another question: why Nomad? Why not just stick with their great naming schema of A6X2? That enables such a great foundation for iteration.&lt;/p&gt;
&lt;p&gt;As for the A5X, it just isn't in stock. They have announced an A5X2, but that won't go in sell until Q2 (originally planned for Q1).&lt;/p&gt;
&lt;p&gt;On Instagram I saw they announced a new Folio color and it was sold out in a week.&lt;/p&gt;
&lt;p&gt;For all the complaints above, it seems like they are doing a fine job selling their products (I did buy one after all didn't I?). That or they just don't have the resources/sophistication to be able to buy enough stock.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The past three weeks have given me a glimpse into how hard it is to be a small hardware company.&lt;/p&gt;
&lt;p&gt;Smaller production runs mean higher prices. Something that every reviewer feels the need to complain about. I think the price is reasonable, even good.&lt;/p&gt;
&lt;p&gt;Dealing with the transition to a new product is difficult. If someone buys an older version they will be mad at you for releasing something new. Apple does this well with leaving old products on sale and dropping the price. But this strategy may not work well for smaller companies.&lt;/p&gt;
&lt;p&gt;Pre-announcing devices, features, or accessories is a double edge sword. Customers start to expect things to be coming out any day and any delays in timeline cause a mini-revolt. I would guess that standard cadences in software releases (e.g. quarterly releases) and hardware updates (annual / bi-annual) would help. But there are a thousand factors I am missing.&lt;/p&gt;
&lt;p&gt;Today, &lt;strong&gt;March 14th&lt;/strong&gt;, and I received my shipping notice from Ratta and DHL. Shipping from Shanghai, due here on March 18th.&lt;/p&gt;
&lt;p&gt;I am surprised that their newsletter hasn't sent anything after the first email. At minimum I expected a drip email getting me up to speed on their brand, what they stand for, and their products. Then update emails when they release new products or software updates.&lt;/p&gt;
&lt;p&gt;I look forward to my Nomad getting here next week. I want to be a fan of this company and its products.&lt;/p&gt;</content><category term="Tech"/></entry><entry><title>Obsidian is Missing Something...</title><link href="https://ryanjm.com/2024/02/16/obsidian-is-missing-something/" rel="alternate"/><published>2024-02-16T13:37:00-08:00</published><updated>2024-02-16T13:37:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2024-02-16:/2024/02/16/obsidian-is-missing-something/</id><summary type="html">&lt;p&gt;Inspired by Marques Brownlee's recent video, &lt;a href="https://www.youtube.com/watch?v=hOi8s2wkX4A"&gt;Apple Vision Pro is Missing Something&lt;/a&gt;, I figured I should finally get around to publishing my wishlist for Obsidian.&lt;/p&gt;
&lt;p&gt;I've been using Obsidian personally since 2021 and at work since the beginning of 2023. It is the best markdown editor and personal knowledge management …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Inspired by Marques Brownlee's recent video, &lt;a href="https://www.youtube.com/watch?v=hOi8s2wkX4A"&gt;Apple Vision Pro is Missing Something&lt;/a&gt;, I figured I should finally get around to publishing my wishlist for Obsidian.&lt;/p&gt;
&lt;p&gt;I've been using Obsidian personally since 2021 and at work since the beginning of 2023. It is the best markdown editor and personal knowledge management system on the market (IMO).&lt;/p&gt;
&lt;p&gt;When I first started using Obsidian I was feeling some of the rough edges and so I started a running list of potential improvements. Going through the list for this blog post and I am glad see that quite a few of the items were already fixed.&lt;/p&gt;
&lt;p&gt;For example, it now supports updated versions of Mermaid so I can do more visual graphs (for mind mapping). There is now support for keyboard shortcuts to create multiple cursors (rather than just using the cursor). And on iOS the text selection from the left margin has been improved.&lt;/p&gt;
&lt;p&gt;But, as always, there is still room for improvements. I've broken up my wishlist into three sections: all platforms, Mac, and iOS.&lt;/p&gt;
&lt;p&gt;While some of these could and can be improve through plugins, it would be ideal for these to be in the core product (plus at work I can't use plugins).&lt;/p&gt;
&lt;h2 id="all-platforms"&gt;All Platforms&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ability to exclude folders from Random Note (e.g. my archive folder).&lt;/li&gt;
&lt;li&gt;More &lt;a href="https://help.obsidian.md/Plugins/Templates#Template%20variables"&gt;template&lt;/a&gt; variables such &lt;code&gt;{{created_at}}&lt;/code&gt; for file creation dates.&lt;/li&gt;
&lt;li&gt;Logic in templates:&lt;ul&gt;
&lt;li&gt;Math for dates - enabling linking to day or year before): &lt;code&gt;{{date:YYYY-MM-DD:add(1, 'day')}}&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Conditionals (if this link exist add it, otherwise don't).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;When linking to a heading within a document provide option to change formatting, ideally using a template. Right now it shows as "Page#Heading" which isn't how I would want to read it in a document. I would prefer "Page - Heading", "Page (Heading)" or "Heading". Rather than having to write the alias out every time, having it automatically filled out the way I want would be great.&lt;/li&gt;
&lt;li&gt;Find and replace across all files. It does feel strange to break out Visual Studio Code to do this.&lt;/li&gt;
&lt;li&gt;Markdown in query blocks should still be rendered.&lt;ul&gt;
&lt;li&gt;Edge case: if the url has the matched text then highlight the link.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add configuration options for query blocks:&lt;ul&gt;
&lt;li&gt;Not to highlight the matched text (I have fixed this with css, but it feels janky).&lt;/li&gt;
&lt;li&gt;Hide the query (I do this with css too).&lt;/li&gt;
&lt;li&gt;To only show file names.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;When embedding a document, have an option to not include the file name (maybe match the "Appearance &amp;gt; Interface &amp;gt; Show inline title" setting). Or maybe leverage the alias option to overwrite the title and I'll use an empty space.&lt;/li&gt;
&lt;li&gt;When entering reading view, I want to change the theme. When editing (where I am 99% of the time) I prefer a dark mode. But when I'm copying text or wanting to grab a screenshot I want a white background.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mac"&gt;Mac&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;When closing a tab, it should go to the tab on the right (the one that replaces it). This would mimic Chrome and Safari and VSCode.&lt;/li&gt;
&lt;li&gt;When opening a note (either Open Quickly or using the shortcut for the Daily Note) if it is already open in the existing window, go to that tab instead of opening it again.&lt;ul&gt;
&lt;li&gt;Similar to how Chrome has a "Go to this tab", maybe Open Quickly could have that option (and a keyboard modifier for it).&lt;/li&gt;
&lt;li&gt;For links, the default should be to go to the existing tab and using a modifier to open a new version of it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;When having a pinned note, clicking any links open as a new tab, but it doesn't &lt;em&gt;go&lt;/em&gt; to that new tab. It should only open in the background with a modifier + click (again, see browsers).&lt;/li&gt;
&lt;li&gt;Ability to become the default "Open with" app for markdown files. Obsidian is such a good Markdown editor it is a shame it can't be used for one-off files. But also, I am sometimes browsing my vault in finder and I just want to open that file quickly.&lt;ul&gt;
&lt;li&gt;Option: provide an error bar if Obsidian doesn't see a vault for the current file (aka "This is not the ideal way to use Obsidian").&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Ability to open up multiple windows and get access to the Left Sidebar and Right Sidebar. The fact that it is only on the "main" window is very strange behavior.&lt;/li&gt;
&lt;li&gt;You can't start a selection too far into the left and right margin.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ios"&gt;iOS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;When you have the New Tab window open (the empty state), if you swipe down you get the command palate. When you swipe up, you should get the "Go to file" menu.&lt;/li&gt;
&lt;li&gt;Tapping the top of the status bar should scroll to the top. On long notes you have to sometimes tap twice to get it to render correctly.&lt;/li&gt;
&lt;li&gt;When there is a lot of text, scrolling is jittery when scrolling large chunks.&lt;/li&gt;
&lt;li&gt;When using the iOS Share Sheet to share content to Obsidian, one of the options should be to create a new note (&amp;amp; ability to set this as a default).&lt;/li&gt;
&lt;li&gt;The new tab page should include a button to open the Daily Note and Random Note (or ability to customize which buttons are there). These are accessible via the bottom right menu, but it would be nice to remove the extra tap (plus that menu has &lt;em&gt;really&lt;/em&gt; small text).&lt;/li&gt;
&lt;li&gt;When pasting a URL, check if I'm pasting into a link block, if I am, don't create the new link syntax (this works properly on the Mac).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fixing these would continue to improve my usage of Obsidian, but I'm sure I'll find other things to request in the future and I'll attempt to occasionally update this list as things are fixed (or as I find/create the &lt;a href="https://forum.obsidian.md/c/feature-requests/8"&gt;feature requests&lt;/a&gt; or &lt;a href="https://forum.obsidian.md/c/bug-reports/7"&gt;bugs&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;If you haven't tried &lt;a href="https://obsidian.md/"&gt;Obsidian&lt;/a&gt;, I do highly recommend it.&lt;/p&gt;</content><category term="Tech"/></entry><entry><title>Setting Up a New Mac</title><link href="https://ryanjm.com/2021/12/31/new-mac/" rel="alternate"/><published>2021-12-31T14:50:00-08:00</published><updated>2021-12-31T14:50:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2021-12-31:/2021/12/31/new-mac/</id><summary type="html">&lt;p&gt;I put together an &lt;a href="https://youtu.be/8ejQ9z_H8TM"&gt;in-depth video&lt;/a&gt; around how I setup a new Mac and... there is a lot. Here is a recap of everything I covered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dock&lt;ul&gt;
&lt;li&gt;Clean up apps to show only apps you use&lt;/li&gt;
&lt;li&gt;Position it on the left&lt;/li&gt;
&lt;li&gt;Make a little smaller&lt;/li&gt;
&lt;li&gt;Make sure downloads folder is …&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;I put together an &lt;a href="https://youtu.be/8ejQ9z_H8TM"&gt;in-depth video&lt;/a&gt; around how I setup a new Mac and... there is a lot. Here is a recap of everything I covered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dock&lt;ul&gt;
&lt;li&gt;Clean up apps to show only apps you use&lt;/li&gt;
&lt;li&gt;Position it on the left&lt;/li&gt;
&lt;li&gt;Make a little smaller&lt;/li&gt;
&lt;li&gt;Make sure downloads folder is:&lt;ul&gt;
&lt;li&gt;sorted by date modified&lt;/li&gt;
&lt;li&gt;displayed as a stack&lt;/li&gt;
&lt;li&gt;view contents as a grid - ensures that items can be quickly dragged out&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Activity Monitor &amp;gt; Icon show CPU usage - I'm probably going to get rid of this due to the M1 Max.&lt;/li&gt;
&lt;li&gt;Setup spaces (three fingers swipe up on the track pad)&lt;ul&gt;
&lt;li&gt;First space is dedicated to email&lt;/li&gt;
&lt;li&gt;Second is to my current work&lt;/li&gt;
&lt;li&gt;Third is for music&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;System Settings&lt;ul&gt;
&lt;li&gt;Desktop &amp;amp; Screen Saver &amp;gt; Add folder of your images, rotate every 30 minutes and random order&lt;/li&gt;
&lt;li&gt;Dock &amp;amp; Menu Bar &amp;gt; (uncheck) Show recent applications in Dock&lt;/li&gt;
&lt;li&gt;Mission Control &amp;gt; Turn off rearrange Spaces&lt;/li&gt;
&lt;li&gt;Mission Control &amp;gt; Hot Corner &amp;gt; Top right: Desktop (I'm probably going to remove the Quick Note hot corner)&lt;/li&gt;
&lt;li&gt;Accessibility &amp;gt; Zoom &amp;gt; Use scroll gesture with modifier keys to zoom (using Control)&lt;/li&gt;
&lt;li&gt;Security &amp;amp; Privacy &amp;gt; General &amp;gt; Use Apple Watch&lt;/li&gt;
&lt;li&gt;Sound &amp;gt; Sound Effects &amp;gt; Turn off: Play sound on startup&lt;/li&gt;
&lt;li&gt;Sound &amp;gt; Sound Effects &amp;gt; Turn off: Play user interface sound effects&lt;/li&gt;
&lt;li&gt;Touch ID &amp;gt; Add other fingers&lt;/li&gt;
&lt;li&gt;Keyboard &amp;gt; Modifier Keys... &amp;gt; Change Caps Lock to Control&lt;/li&gt;
&lt;li&gt;Keyboard &amp;gt; Text - text expansion. I normally use a different program for this. I'll talk about this in the next video.&lt;/li&gt;
&lt;li&gt;Keyboard &amp;gt; Shortcuts &amp;gt; Mission Control &amp;gt; Switch to Desktop 1...3&lt;/li&gt;
&lt;li&gt;Trackpad &amp;gt; More Gestures &amp;gt; App Expose&lt;/li&gt;
&lt;li&gt;Displays - if you have an external monitor you can move the bar over to specify the "main screen" which will be where the desktop icons show up. I normally have this on my larger screen.&lt;ul&gt;
&lt;li&gt;Display Settings &amp;gt; True Tone. This will mess with your colors.&lt;/li&gt;
&lt;li&gt;Night Shift will adjust things as well. I use a third party app (flux) for this so I turn it off.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(skipped in the video) Setup Printers and Time Machine if you have them&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Finder&lt;ul&gt;
&lt;li&gt;Right click on the Desktop:&lt;ul&gt;
&lt;li&gt;Stack by kind&lt;/li&gt;
&lt;li&gt;Sort by date added&lt;/li&gt;
&lt;li&gt;Show view options - can change the icon size&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Preferences&lt;ul&gt;
&lt;li&gt;General&lt;ul&gt;
&lt;li&gt;Show external disks on Desktop&lt;/li&gt;
&lt;li&gt;New finder window to show the home folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Sidebar&lt;ul&gt;
&lt;li&gt;Customize side bar - showing pictures and movies&lt;/li&gt;
&lt;li&gt;Removing recent tags&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Advanced&lt;ul&gt;
&lt;li&gt;Perform search in current folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;View &amp;gt; Show Path Bar&lt;ul&gt;
&lt;li&gt;You can also control click the title bar to get the path&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Quick walk through of Finder&lt;ul&gt;
&lt;li&gt;Can change how to view files and folders (List, Column, Icon, Gallery)&lt;/li&gt;
&lt;li&gt;Ability to sort files (right click Sort By)&lt;/li&gt;
&lt;li&gt;Ability to group them by last modified or file type (Group By icon in toolbar)&lt;/li&gt;
&lt;li&gt;Can customize toolbar&lt;/li&gt;
&lt;li&gt;Hidden files (Control+Shift+G)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Archive Utility Preferences&lt;ul&gt;
&lt;li&gt;After expanding: move archive to Trash&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Sign into App Store - go through your list of purchased apps and install them&lt;ul&gt;
&lt;li&gt;I also find it useful to go through the Applications folder on my old Mac and go through it to make sure I have all my needed up (and skip installing apps I haven't used in the past 6 months)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="shortcuts"&gt;Shortcuts&lt;/h2&gt;
&lt;p&gt;It is important to me to focus on work and not be distracted by selecting apps from the Dock or hunting through menus to find a particular command. I am always thinking about the tasks I repeatedly do throughout a day and then try to find ways to eliminate those repetitions through automation or find shortcuts to make it faster. I especially try to avoid my mouse/trackpad when I can. The keyboard is usually always faster.&lt;/p&gt;
&lt;p&gt;Here is a quick key of the shortcut symbols:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Control: Ctrl&lt;/li&gt;
&lt;li&gt;Option: Opt&lt;/li&gt;
&lt;li&gt;Command: Cmd&lt;/li&gt;
&lt;li&gt;Shift: Shift&lt;/li&gt;
&lt;li&gt;Arrow keys: Left/Up/Down/Right&lt;/li&gt;
&lt;li&gt;Tab: Tab&lt;/li&gt;
&lt;li&gt;Delete: Delete&lt;/li&gt;
&lt;li&gt;Space: Space&lt;/li&gt;
&lt;li&gt;Globe (fn key): Globe&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="any-app"&gt;Any app&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Any app&lt;ul&gt;
&lt;li&gt;Preferences: Cmd+,&lt;/li&gt;
&lt;li&gt;Help: Cmd+Shift+/ (easier to think of this as Cmd+?) - quickly search for a particular command&lt;/li&gt;
&lt;li&gt;Quit: Cmd+Q&lt;/li&gt;
&lt;li&gt;Full screen: Cmd+Ctrl+F&lt;/li&gt;
&lt;li&gt;Find (for many apps): Cmd+F&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Text editing (think of Opt as modifier for words and Cmd for the entire line and Shift to select):&lt;ul&gt;
&lt;li&gt;Move by a word: Opt+Right OR Opt+Left&lt;/li&gt;
&lt;li&gt;Jump to the front of the line (home): Cmd+Left OR Ctrl+A (Emacs binding)&lt;/li&gt;
&lt;li&gt;Jump to the end of the line (end): Cmd+Right&lt;/li&gt;
&lt;li&gt;Delete letter to the right of cursor: Ctrl+D&lt;/li&gt;
&lt;li&gt;Delete word: Opt+Delete&lt;/li&gt;
&lt;li&gt;Delete an entire line: Cmd+Delete&lt;/li&gt;
&lt;li&gt;Select word: Opt+Shift+Right OR Opt+Shift+Left&lt;/li&gt;
&lt;li&gt;Select line up/down: Shift+Down OR Shift+Up&lt;/li&gt;
&lt;li&gt;Select whole line (starting at end or beginning of the line): Cmd+Shift+Left OR Cmd+Shift+Right&lt;/li&gt;
&lt;li&gt;Select to the beginning or end of the document: Cmd+Shift+Up OR Cmd+Shift+Down&lt;/li&gt;
&lt;li&gt;Emoji: Cmd+Ctrl+Space (or on the new keyboards: Globe)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Text edit - plain text toggle: Cmd+Shift+T&lt;/li&gt;
&lt;li&gt;Spotlight: Cmd+Space&lt;/li&gt;
&lt;li&gt;App switcher: Cmd+Tab&lt;ul&gt;
&lt;li&gt;To go right on the list: Tab&lt;/li&gt;
&lt;li&gt;To go left on the list: `&lt;/li&gt;
&lt;li&gt;Closing windows: Q&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Windows switching&lt;ul&gt;
&lt;li&gt;Switch between open windows within the app: Cmd+`&lt;/li&gt;
&lt;li&gt;Close window: Cmd+W&lt;/li&gt;
&lt;li&gt;Close the entire app: Cmd+Q&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Saving files: Cmd+S&lt;ul&gt;
&lt;li&gt;Switch to saving to the desktop: Cmd+D&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Changing spaces: Ctrl+1, Ctrl+2, Ctrl+3, Ctrl+Left, Ctrl+Right&lt;ul&gt;
&lt;li&gt;Seeing all of them: Ctrl+Up&lt;/li&gt;
&lt;li&gt;Seeing all open windows for an app: Ctrl+Down&lt;/li&gt;
&lt;li&gt;Moving windows between spaces: click and hold window and use Ctrl+1, Ctrl+2, or Ctrl+3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Finder&lt;ul&gt;
&lt;li&gt;Quick view (when you have an item selected): Space&lt;/li&gt;
&lt;li&gt;Delete item: Cmd+Delete&lt;/li&gt;
&lt;li&gt;Get info: Cmd+I - Good for seeing how big something is&lt;/li&gt;
&lt;li&gt;Show View Options: Cmd+J - used to make sure certain folders always open a particular way&lt;/li&gt;
&lt;li&gt;Go to path: Cmd+Shift+G - this was recently redesigned and it looks great&lt;/li&gt;
&lt;li&gt;Eject: Cmd+E&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Screenshots: Cmd+Shift+4&lt;ul&gt;
&lt;li&gt;To capture the entire window: Space&lt;/li&gt;
&lt;li&gt;For more controls and to take video: Cmd+Shift+5&lt;ul&gt;
&lt;li&gt;You can also customize where things are saved here&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Dock&lt;ul&gt;
&lt;li&gt;Moving its position: Opt+Shift + drag with mouse&lt;/li&gt;
&lt;li&gt;Hide: Cmd+Opt+D&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;System Preferences &amp;gt; Keyboard &amp;gt; Shortcuts - take a look through these&lt;/li&gt;
&lt;li&gt;Accessibility - Zoom In: Ctrl + two finger swipe up/down&lt;/li&gt;
&lt;li&gt;Tip for the trackpad: Act as if there is still a button. Use your thumb as a "button" and use your index finger to drag items around.&lt;ul&gt;
&lt;li&gt;System Preferences &amp;gt; Trackpad &amp;gt; Force Click and haptic feedback&lt;ul&gt;
&lt;li&gt;If you hard click on a word it'll pull up the definition but you can do this by right clicking on it, so I normally turn this off.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hope that helps! There are a bunch more text editing shortcuts, but this covers the ones I use 90% of the time. Keep an eye out for actions you repeat often and then look online to see if you can find a shortcut for it.&lt;/p&gt;</content><category term="Tech"/></entry><entry><title>Sherlock vs Basics</title><link href="https://ryanjm.com/2021/06/10/sherlock-vs-basics/" rel="alternate"/><published>2021-06-10T10:00:00-07:00</published><updated>2021-06-10T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2021-06-10:/2021/06/10/sherlock-vs-basics/</id><summary type="html">&lt;p&gt;What is the difference between Apple Sherlocking an app and Amazon Basics copying existing products? In this post we'll attempt to answer this question, and possibly draw conclusions for how large companies should handle this situation.&lt;/p&gt;
&lt;h2 id="context"&gt;Context&lt;/h2&gt;
&lt;p&gt;In case you are unaware, Sherlocked refers to Apple making 3rd party apps …&lt;/p&gt;</summary><content type="html">&lt;p&gt;What is the difference between Apple Sherlocking an app and Amazon Basics copying existing products? In this post we'll attempt to answer this question, and possibly draw conclusions for how large companies should handle this situation.&lt;/p&gt;
&lt;h2 id="context"&gt;Context&lt;/h2&gt;
&lt;p&gt;In case you are unaware, Sherlocked refers to Apple making 3rd party apps obsolete. Back in the 90s Apple created an awesome piece of software called &lt;a href="https://en.wikipedia.org/wiki/Sherlock_(software)"&gt;Sherlock&lt;/a&gt; which some claim copied functionality from an existing piece of popular software. Sherlocked is now a common term for Apple copying existing software and (potentially) eliminating the need for that software alternative.&lt;/p&gt;
&lt;p&gt;Amazon Basics has also been known to copy &lt;a href="https://www.theverge.com/2021/3/3/22311574/peak-design-video-amazon-copy-everyday-sling-bag"&gt;existing products&lt;/a&gt; and has received quite a bit of backlash for it.&lt;/p&gt;
&lt;p&gt;Most of this article will focus on Apple as there is more nuance when it comes to software. For a physical product, it does seem things are more clear when you are able to look at styling choices, product positioning, and even physical dimensions. It makes it a little harder to say that these choices are arrived at independently or that you are bringing something new to the table.&lt;/p&gt;
&lt;h2 id="most-recent-sherlocked-software"&gt;Most Recent Sherlocked Software&lt;/h2&gt;
&lt;p&gt;From WWDC21 Keynote here are a few of the software changes that have been copied/potentially Sherlocked:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Apple's Announcement&lt;/th&gt;
&lt;th&gt;Existing Software&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=441"&gt;Voice isolation for FaceTime&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=wzpHeg7NBUs"&gt;NVIDIA RTX Voice&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Not Mac specific so won't eliminate, plus RTX is useful for more than voice calls.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=508"&gt;Portrait Mode for FaceTime&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Zoom&lt;/td&gt;
&lt;td&gt;Feature level copies like this aren't as big of a deal to me. (Same with FaceTime links.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=1211"&gt;Live Text&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Notefuel, and others apps that do OCR or image recognition&lt;/td&gt;
&lt;td&gt;This one eliminates the need for a couple different specialty apps for me.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=1321"&gt;Visual Look Up&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Google Lens&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=1738"&gt;Weather&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Dark Sky and other apps&lt;/td&gt;
&lt;td&gt;In this case, Apple actually acquired Dark Sky. But they have also shutdown Dark Sky's API which means many apps will no longer work (if developers give up) or they have to find a new data source.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=1800"&gt;Maps&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Google Maps&lt;/td&gt;
&lt;td&gt;In some areas it looks like they have gone beyond Google Maps, but some things such as AR directions is a copy (though due to timelines of these things they may have been working on it at the same time).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=2990"&gt;Privacy in mail&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://apparition47.github.io/MailTrackerBlocker/"&gt;MailTrackerBlocker&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;I'm sure there are many apps along this line.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=3289"&gt;iCloud+ PrivateRelay&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;All VPNs?&lt;/td&gt;
&lt;td&gt;There are still some questions out about what is different about this vs a VPN, but they look very similar.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=3356"&gt;iCloud+ Hide My Email&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://throttlehq.com/"&gt;Throttle&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=4233"&gt;Artist Spotlight Series for Fitness+&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.pelobuddy.com/artist-series/"&gt;Peloton Artist Series&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=4952"&gt;Universal Control&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://symless.com/synergy"&gt;Synergy&lt;/a&gt; and &lt;a href="https://www.sharemouse.com/"&gt;Share Mouse&lt;/a&gt; plus others.&lt;/td&gt;
&lt;td&gt;Though Apple's implimentation takes it a level deeper with iPad integration. Something only they could build.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=5119"&gt;AirPlay to Mac&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.airserver.com/Mac"&gt;AirServer&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=5383"&gt;Safari Tab Groups&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://sessionbuddy.com/"&gt;SessionBuddy&lt;/a&gt; and others.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=5714"&gt;Object Capture&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Lots of dedicated software companies &lt;a href="https://all3dp.com/2/3d-print-from-photo-how-to-do-it/"&gt;this site lists 11 of them&lt;/a&gt;.&lt;/td&gt;
&lt;td&gt;This change appears to be an API level thing, so not eliminating other software quite yet, but maybe reducing as much need for it in some markets.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://youtu.be/0TD96VTf0Xs?t=6102"&gt;XCode Cloud&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Overlap with a lot of CI tools such as &lt;a href="https://go.bitrise.io/ios-ci"&gt;BitRise&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I am sure I have missed a few of them. I don't know about all the software that exists out there.&lt;/p&gt;
&lt;h2 id="classifications"&gt;Classifications&lt;/h2&gt;
&lt;p&gt;Trying to classify these different types of Sherlocked features is difficult.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Feature level adoption&lt;/strong&gt; - a lot of the changes are just small enhancements for Apple, such as voice isolation or portrait mode in FaceTime. These aren't going to really eliminate the need for an existing product.&lt;ul&gt;
&lt;li&gt;But then you get to Hide My Email and there &lt;em&gt;are&lt;/em&gt; businesses built entirely around that.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OS level integration&lt;/strong&gt; like Universal Control completely eliminate the need for a 3rd party app if you are entirely in the Apple ecosystem.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New apps/updates&lt;/strong&gt; like the Weather app eliminate a competitor (by buying them) but also other competitors by shutting down the API. Some companies are able to survive being Sherlocked like this (e.g. Dropbox) because they provide additional functionality beyond the basics.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pros"&gt;Pros&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The benefit is that these features become more mainstream. Many people didn't &lt;em&gt;know&lt;/em&gt; that these alternative businesses or options existed so being built in is a good thing.&lt;/li&gt;
&lt;li&gt;Apple's integration is usually really well done and sometimes better than the original options (see Live Text).&lt;/li&gt;
&lt;li&gt;From Apple's perspective these are normal progressions/additional features to their products.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cons"&gt;Cons&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Some companies are hurt (eliminated?) by Apple's moves.&lt;/li&gt;
&lt;li&gt;What stops Apple from seeing the most popular apps on the App Store and building the in-house version of it? (i.e. doing what Amazon and grocery stores do.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Bottom line is that this is a messy situation. From Apple's perspective there is no clean solution.&lt;/p&gt;
&lt;p&gt;They can't have a "Sherlocked fund" where they pay $100K or even $1M to the top companies that are hurt by their changes. That would be submission that they are causing other companies damage (hello lawsuits). They could attempt to always acquire those companies like they did with Dark Sky, but most of the time they aren't lacking the expertise/IP to do it on their own and that would be a waste of capital.&lt;/p&gt;
&lt;p&gt;I think Sherlocking is different than Amazon Basics in that Sherlocking often has Apple's spin on things. OS integration is an obvious difference that others can't replicate, but Apple also tends to put a level of polish on features that few companies can match. Amazon Basics seems to focus on cheaper versions of a product and mostly replicating the work that someone else did (and again, I start to think that this is what Apple is doing, they are just implementing things "the Apple way"). Amazon isn't adding any innovation to those products outside of cheaper manufacturing.&lt;/p&gt;
&lt;p&gt;So while Apple can't/shouldn't change, small companies can. They can build products that are more than a feature. Create a value add that goes beyond the basics that Apple may provide someday. If there is no value add to be had, know your days are numbered. Try to diversify with other products or across platforms.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It would be great if there was a dedicated site that was a me-too site. All the Serlocked companies that have additional value to add to customers. "If you like X from Apple, you should try out Y."&lt;/p&gt;
&lt;/blockquote&gt;</content><category term="Tech"/></entry><entry><title>YouTube Gear 2021-01</title><link href="https://ryanjm.com/2021/02/01/youtube-gear-2021-01/" rel="alternate"/><published>2021-02-01T05:07:00-08:00</published><updated>2021-02-01T05:07:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2021-02-01:/2021/02/01/youtube-gear-2021-01/</id><summary type="html">&lt;p&gt;Assuming I stick with &lt;a href="/youtube-experiment/"&gt;making videos&lt;/a&gt;, I am sure I will add new gear to my setup eventually. Therefore, I thought it would be a good idea to list what I am currently using as of January 2021.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Canon EOS R6 - I picked up the R6 last year, finally upgrading …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Assuming I stick with &lt;a href="/youtube-experiment/"&gt;making videos&lt;/a&gt;, I am sure I will add new gear to my setup eventually. Therefore, I thought it would be a good idea to list what I am currently using as of January 2021.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Canon EOS R6 - I picked up the R6 last year, finally upgrading from my T2i after 10 years. I wanted to get back into photography (and potentially video) and so I splurged a little.&lt;/li&gt;
&lt;li&gt;Canon RF 24-70mm - This is the only lens I have for the R6 right now.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/gp/product/B08FY557SR/"&gt;Deity Shotgun Microphone&lt;/a&gt; - Everyone says that an external mic is better than the one built into the camera, so I figured I would give this one a shot. So far I have enjoyed it.&lt;/li&gt;
&lt;li&gt;Canon G7X - We picked up this camera a couple years ago for a more portable camera. It also works well as vlogging camera.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.bhphotovideo.com/c/product/1570500-REG/lume_cube_lc_blk_broadcast_lighting_kit.html"&gt;Lume Cube Webcam Light Kit&lt;/a&gt; - This little light actually packs a bit of a punch and I have enjoyed it providing a bit of extra light in my dark room.&lt;/li&gt;
&lt;li&gt;Manfrotto 190XPROB tripod - I picked up this tripod on Craigslist five or six years ago. It is heavy but gets the job done.&lt;/li&gt;
&lt;li&gt;Manfrotto 498RC2 ball head - this came with the tripod above.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/gp/product/B002FGTWOC"&gt;JOBY GorillaPod&lt;/a&gt; - Picked up around the time of the G7X for easy mounting.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/gp/product/B08GY8LR57"&gt;Extra ball head&lt;/a&gt; - I created a jerry rigged stand on my desk and am using this ball head to hold the camera. This cheap ball head does very well.&lt;/li&gt;
&lt;li&gt;2014 13" MacBook Pro - I do all of my writing and editing on the MacBook Pro. I am really looking forward to upgrading to a new computer this year. It does pretty well with HD video, but struggles with 4K (I have to use proxy files which take forever to render). Stats: 2.8 GHz i5, 16GB of Ram, and 250GB of storage.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/gp/product/B0090XWZB0/"&gt;Zoom H1&lt;/a&gt; - I picked this wanting to record as many family stories on a trip as I could. I still haven't organized those files.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/gp/product/B017IUJYJW"&gt;Aputure lavalier&lt;/a&gt; - We picked up this $35 lavalier a couple years ago for some videos we were making.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/gp/product/B01ITRLJIW"&gt;Aputure AL-M9 Amaran LED Mini Light&lt;/a&gt; - I got this in 2018 thinking I would use it for food photography. I didn't.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/gp/product/B005FHZ2SI"&gt;LimoStudio Lighting Umbrella Kit&lt;/a&gt; - I don't use this in my normal setup, but I will break it out occasionally. I feel like it is more effort to set up than it is worth. It doesn't really put out that much light and our place is too small to leave it up all the time.&lt;/li&gt;
&lt;li&gt;SD cards - I have many SD cards laying around.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/gp/product/B001CZ9ZEE"&gt;Drobo&lt;/a&gt; - I have been using this 4 bay drobo for personal backups since 2011. I have to do all of my editing off of it since my internal drive doesn't have enough space left.&lt;/li&gt;
&lt;li&gt;Peak Design straps and clip - Not really helping with the video quality, but figured I should mention it.&lt;/li&gt;
&lt;li&gt;iPhone - I don't really use it for video, but I do have it available.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You don't have to have expensive equipment to get good video, but I do have to say more expensive equipment (like the R6) can provide better sound/image quality than the cheap stuff.&lt;/p&gt;</content><category term="Creative"/></entry><entry><title>All skills should start small</title><link href="https://ryanjm.com/2021/01/18/all-skills-should-start-small/" rel="alternate"/><published>2021-01-18T13:00:00-08:00</published><updated>2021-01-18T13:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2021-01-18:/2021/01/18/all-skills-should-start-small/</id><summary type="html">&lt;p&gt;Whether you are working on a habit, goal, or developing a skill, you should always start small. It is hard to really get in shape by going to the gym 5x a week, especially if you have never gone before. Learning to develop small changes in your life that can …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Whether you are working on a habit, goal, or developing a skill, you should always start small. It is hard to really get in shape by going to the gym 5x a week, especially if you have never gone before. Learning to develop small changes in your life that can snowball into the life-changing effects you want is a valuable skill to have.&lt;/p&gt;
&lt;p&gt;For the past couple of years I've wanted to start a YouTube channel. Okay, let's be honest, circa 2015, a month or so after Casey Neistat started his &lt;a href="https://www.youtube.com/watch?v=gnHCw87Enq4&amp;amp;list=PLTHOlLMWEwVy52FUngq91krMkQDQBagYw"&gt;daily vlogs&lt;/a&gt;, I was hooked. I enjoyed his storytelling and the way he presented information via video. I have no intention of being a daily vlogger, but I do want to be able to tell a story visually like Casey does, just with my own spin.&lt;/p&gt;
&lt;p&gt;So for 5 years, in the back of my mind I have always thought about starting to regularly uploading content to YouTube. The issue I ran into was that I didn't know what kind of content to upload. I don't take vacations regularly, so travel vlogs were out. Most of my days are mirror images of each other, so daily vlogs were out. While I have a CS background and love tech, I don't really want to do a programming channel or review tech all the time. So I never started.&lt;/p&gt;
&lt;p&gt;But at the end of 2020 I started thinking about it some more. The truth is that I suck when it comes to all the core skills related to being on YouTube:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I don't know how to put together a story&lt;/li&gt;
&lt;li&gt;I am really bad at speaking to a camera&lt;/li&gt;
&lt;li&gt;My composition skills need a lot of work&lt;/li&gt;
&lt;li&gt;I have very basic editing skills&lt;/li&gt;
&lt;li&gt;I don't know how to color grade&lt;/li&gt;
&lt;li&gt;I know next to nothing about audio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But these are all skills that I am interested improving. So I came to the realization that since my first 50+ videos are going to suck anyways, it doesn't matter what the content is. I don't need to have a theme for my channel right now. I might as well get started. As long as I learn to improve a little in each video, then I will be better off than if I didn't start at all. Hopefully during that time, I can figure out what I &lt;em&gt;do&lt;/em&gt; like to talk about and can define my channel.&lt;/p&gt;
&lt;p&gt;Right now this is all about me developing skills. I am not trying to take it anywhere. If you want to follow along with each of my first 50 videos and the lessons I am learning, you can check out the project here. I hope to complete this project in 2021.&lt;/p&gt;
&lt;p&gt;I would recommend figuring out what skill, habit, or goal you wish you will have developed in a few years and then define a small task you can do to get one step closer. If you want to hear more about this concept check out my first video &lt;a href="https://youtu.be/oHS20KotquY"&gt;here&lt;/a&gt;.&lt;/p&gt;</content><category term="Reflections"/></entry><entry><title>YouTube Experiment</title><link href="https://ryanjm.com/2021/01/18/youtube-experiment/" rel="alternate"/><published>2021-01-18T10:00:00-08:00</published><updated>2021-01-18T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2021-01-18:/2021/01/18/youtube-experiment/</id><summary type="html">&lt;p&gt;In 2021, I have started a YouTube experiment. I am trying to upload 50 videos this year. Learn more about why &lt;a href="https://ryanjm.com/2021/01/18/all-skills-should-start-small/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Clearly this experiment was... a learning experience. Lessons below.&lt;/p&gt;
&lt;p&gt;With each video, I am trying to learn at least one thing about making videos or improving my …&lt;/p&gt;</summary><content type="html">&lt;p&gt;In 2021, I have started a YouTube experiment. I am trying to upload 50 videos this year. Learn more about why &lt;a href="https://ryanjm.com/2021/01/18/all-skills-should-start-small/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Clearly this experiment was... a learning experience. Lessons below.&lt;/p&gt;
&lt;p&gt;With each video, I am trying to learn at least one thing about making videos or improving my presenting skills. The following is every video, in order, along with some stats and some lesson(s) learned.&lt;/p&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/oHS20KotquY" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h3 id="1-take-small-steps-towards-your-goals-jan-18"&gt;1. Take small steps towards your goals (Jan 18)&lt;/h3&gt;
&lt;p&gt;This video took me an hour to write the script, 30 minutes to record, and 3 hours to edit. There were so many issues that I didn't want to spend too long on the edit (plus I am trying to make this habit stick). Currently at 33 subscribers. Lessons learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Turn out the room light to help separate the background&lt;/li&gt;
&lt;li&gt;Annunciate better&lt;/li&gt;
&lt;li&gt;Deliver larger chunks, don't restart in the middle of a section&lt;/li&gt;
&lt;li&gt;When starting over with a section, give a 3 second break to make an easier cut point&lt;/li&gt;
&lt;li&gt;When there was a good take - do three claps to easily find it during editing (or stop recording)&lt;/li&gt;
&lt;li&gt;Don't move back and forth in the chair, make sure each take is in consistent position or intentionally different (e.g. left or right)&lt;/li&gt;
&lt;li&gt;Pick a better shirt (make sure there isn't cat hair on it)&lt;/li&gt;
&lt;li&gt;Put &lt;a href="https://youtu.be/StQcRsCkIjw?t=251"&gt;&lt;strong&gt;8% more energy&lt;/strong&gt;&lt;/a&gt; into it&lt;/li&gt;
&lt;li&gt;Do audio adjustments before cutting clips&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/38AD1Z1zgF0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h3 id="2-powerbeats-pro-review-jan-25"&gt;2. Powerbeats Pro Review (Jan 25)&lt;/h3&gt;
&lt;p&gt;I spent 3h 50m on this video. This week I learned a lot of the Final Cut Pro (FCP) shortcuts which really helped with the rough cut. I also learned about keyframing so I was able to improve the visuals/broll. I used a lavalier mic this time which helped with the audio. Three claps did not help. Things for next time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add some background music&lt;/li&gt;
&lt;li&gt;Remember to smile at the camera for a few seconds to grab a thumbnail&lt;/li&gt;
&lt;li&gt;Learn to get comfortable with talking to the camera (spend more time practicing delivering lines without recording)&lt;/li&gt;
&lt;li&gt;Always double check frame rate and white balance (basically all of your settings)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/LiIhLd32U4Y" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h3 id="3-reviewing-para-feb-4"&gt;3. Reviewing PARA (Feb 4)&lt;/h3&gt;
&lt;p&gt;This video took me 3h 30m. I shot it pretty quickly since I spent some of my recording time working on another video. I am now at 34 subscribers! I attempted to add music but I didn't have enough time to find the right mood with it so I cut it. This video is also going up a couple days late (still within the week!) since I needed to do a little more work on my real job. Oh, and I started using TubeBuddy, description defaults, and added an end card. Lessons learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Read through notes and practice once before recording&lt;/li&gt;
&lt;li&gt;Attempt to record two or three good takes on camera (get multiple options)&lt;/li&gt;
&lt;li&gt;Use zebras on camera to check exposure&lt;/li&gt;
&lt;li&gt;Manual focus doesn't stay as sharp&lt;/li&gt;
&lt;li&gt;Watch out for too many umms&lt;/li&gt;
&lt;li&gt;Leave more time for the end card&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/bkFO-q5sQls" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h3 id="4-cookie-review-feb-8"&gt;4. Cookie Review (Feb 8)&lt;/h3&gt;
&lt;p&gt;This was a fun video, attempting to do a Daniel Schiffer style commercial. It was a lot of work to get my &lt;a href="https://ryanjm.com/2021/02/01/youtube-gear-2021-01/"&gt;&lt;strong&gt;cheap lights&lt;/strong&gt;&lt;/a&gt; set up and to go through multiple shots. And at the end of the day I still didn't have enough shots. I forgot to record how much time I spent setting things up and recording, but I estimate I spent a total of 7h on this video. Lessons learned&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Should have used 4K in order to fix alignment issues&lt;/li&gt;
&lt;li&gt;Should have used slow motion for some of the movement shots to better control overall flow&lt;/li&gt;
&lt;li&gt;When doing a montage like this, you need a lot more variations of shots&lt;/li&gt;
&lt;li&gt;When doing a talking head and reviewing something (like cookies), having more close ups (of me and the cookies) for b-roll would have been helpful&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/acl7k8yGRkw" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h3 id="5-chocolate-mousse-feb-16"&gt;5. Chocolate Mousse (Feb 16)&lt;/h3&gt;
&lt;p&gt;This was a last minute video that I put together for valentines. I think the shooting itself took an hour but the edit took closer to three hours. Without any planned shots/story it didn't turn out that great as a video, but it gave me a lot of practice with speed ramping (so much speed ramping) and slide edits. I didn't have enough time or resources for finding a good soundtrack. I ended up using YT's free music library (as I have for everything so far).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plan out a video before hand&lt;/li&gt;
&lt;li&gt;Figure out the story and what narrative should go with it&lt;/li&gt;
&lt;li&gt;When doing locked off videos, the transitions have to be based on movement&lt;/li&gt;
&lt;li&gt;Music takes a long time to pick out&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/OhRSi9-mykA" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h3 id="55-cookies-cream-feb-18"&gt;5.5 Cookies &amp;amp; Cream (Feb 18)&lt;/h3&gt;
&lt;p&gt;I had seen some videos recommending creating shorts. I attempted to quickly do that with this video. I didn't track the time it took to make, but I think it was less than an hour. The video is 0:59:23 (one frame short of 1 minute) but Google marked it as 1:01 and it got 0 views. Also around this time, I lost a subscriber. Back at 33 subscribers.&lt;/p&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/wDVOxN00LdM" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h3 id="6-google-search-tips-mar-2"&gt;6. Google Search Tips (Mar 2)&lt;/h3&gt;
&lt;p&gt;I ended up recording this twice. I had attempted to record it in my living room and the audio didn't turn out well so I wrote a script and shot it in my corner office. The second time around I think I spent around 7 hours on it, 4 hours editing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The length of the script was good (shooting for &amp;gt; 10 minutes).&lt;/li&gt;
&lt;li&gt;While I didn't use the script verbatium, having more thoughts written out did make it easier to cover all the material I wanted to.&lt;/li&gt;
&lt;li&gt;I need to remember to take dedicated photos for the thumbnail.&lt;/li&gt;
&lt;li&gt;I also did intentionally try to say an entire paragraph worth in one take which made the video flow better (but meant a lot of extra video I had to shoot).&lt;/li&gt;
&lt;li&gt;This was my first time using J and L cuts in my videos and I think it helped.&lt;/li&gt;
&lt;li&gt;I also included a table of contents for the video for the first time.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/jCeeeKbttZE" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h3 id="7-lastpass-changes-from-a-product-managers-pov-mar-9"&gt;7. LastPass changes from a product manager's POV (Mar 9)&lt;/h3&gt;
&lt;p&gt;This video took so long that I wasn't able to track all of my time. I think it was something like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1:00 - writing script (including a lot of research)&lt;/li&gt;
&lt;li&gt;1:30 - recording&lt;/li&gt;
&lt;li&gt;6:30 - editing&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a total of 9 hours on this video. My rough cut came in at 22 minutes and the final video ended up being 19:25. My longest video so far. Much longer than I want to go for. I had over an hour of video to go through and cut down.&lt;/p&gt;
&lt;p&gt;This was the first video where I felt like more of my actual personality was coming across. Awkwardness and all. The few sections when I went off script are some of my favorite parts. But it does shows where I need to improve my communication skills (which is why I am doing this!).&lt;/p&gt;
&lt;p&gt;This is the first video I included a reference to a previous video. +1 for having a backlog! I had skipped a week previously so trying to make sure I got this uploaded by Tuesday, I stayed up late. :/&lt;/p&gt;
&lt;p&gt;Lessons learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;J and L cutes are my new best friend.&lt;/li&gt;
&lt;li&gt;The benefit of deliverying as many lines together as possible is that your voice is consistent, your hand motions are tied together, and your posture is the same.&lt;/li&gt;
&lt;li&gt;I need to stop slouching and sit up stright the entire time.&lt;/li&gt;
&lt;li&gt;Recording longer deliveries takes a bit to get into it and is harder when I have facts (numbers) I am tryign to memorize/deliver. Try to avoid that. :)&lt;/li&gt;
&lt;li&gt;Color grading at the beginning is good before you start cutting everything up (I put it all into a composite clip).&lt;/li&gt;
&lt;li&gt;Doing audio adjustments up front makes it better to listen to during the edit and has the added benefit that it is easeir to see talking waveforms instead of background static. Easier to identify gaps in audio and make better transitions.&lt;/li&gt;
&lt;li&gt;I tend to extend the last word in my sentances or as I pause to think. This makes for odd sounding sentances when I remove the gaps.&lt;/li&gt;
&lt;li&gt;There are a couple segements where I go off script and I think it comes across more nautrally, but the thoughts aren't always super clear and my grammer sometimes falls apart. This is the big thing I am trying to learn through all of this: present my ideas clearly and with structure.&lt;/li&gt;
&lt;li&gt;Get a shot of the background without you in it makes will make it easier to create a thumbnail if you need to move an overlay of yourself around.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/sQupRBTcyEg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h3 id="8-wrapbooks-business-model-mar-23"&gt;8. Wrapbook's business model (Mar 23)&lt;/h3&gt;
&lt;p&gt;I attempted to just riff with this one. Minimal bullet points and just talk. That was a &lt;em&gt;mistake&lt;/em&gt;. I ended up partially starting over half way through (which I forgot until I started to edit) and I ended up recording for an hour. All of that made the edit a lot longer. I ended up spending just shy of 5 hours on this one. It is also out a week later than I wanted, but I am trying to keep in mind the long game. I want this to be sustainable and I don't want to burn out within the first few videos. I know I need to improve the time it takes to edit, so I am going to work on that. Oh, and I got some new subscribers! I am up to 37 now.&lt;/p&gt;
&lt;p&gt;Lessons learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Practice the entire video a couple times before recording. Having an hour of video to go through adds a lot of time to the edit.&lt;/li&gt;
&lt;li&gt;Time spent planning upfront always pays off (does in programming too).&lt;/li&gt;
&lt;li&gt;Mark each section with chapter markers so you can more easily rearrange and figure out what needs to get cut.&lt;/li&gt;
&lt;li&gt;When doing a screen recording, decide if it should be flipped to the entire time or just pulling screenshots from it. It will change the way you want to edit (edit together vs just finding the snippets needed).&lt;/li&gt;
&lt;li&gt;Unless you know the video is short and you aren't cutting parts out, avoid saying, "like we talked about" since that section might get cut. :)&lt;/li&gt;
&lt;li&gt;I should invest some time in creating standard titles/fonts to create a standard style. Right now I have just been defaulting to use Baskerville. Hopefully I can speed up editing and get to adding some background music eventually.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="9-cricut-and-pricing-changes-apr-12"&gt;9. Cricut and pricing changes (Apr 12)&lt;/h2&gt;
&lt;p&gt;With this &lt;a href="https://youtu.be/UgFpN7paj2k"&gt;video&lt;/a&gt; I attempted to do a dry run through before recording to help cut down on that part of the process. Problem was that it took another two days before I got a chance to record so I don't think the run through helped very much. I want to try that again, but I also want to learn to speak more off the cuff.&lt;/p&gt;
&lt;p&gt;I've had another bump in subscribers, I am up to 40 subscribers now.&lt;/p&gt;
&lt;p&gt;I'd also like to spend more time on the edit and adding flourishes. But more importantly, I'd like to be uploading every week instead of 3 weeks later. Here is how my 9.5 hrs for this video broke down:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Research: 30 min&lt;/li&gt;
&lt;li&gt;Writing: 2h 20m&lt;/li&gt;
&lt;li&gt;Practicing: 30m&lt;/li&gt;
&lt;li&gt;Recording: 1h&lt;/li&gt;
&lt;li&gt;Editing: 4h 15m&lt;/li&gt;
&lt;li&gt;Thumbnail &amp;amp; Upload: 1h&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The biggest improvements look like it would come from writing and editing. Most of the editing is going into cutting the recording down. So if I had a cleaner takes, that would go faster. I've thought about stopping the recording every time I have a clean take. That might make it go faster.&lt;/p&gt;
&lt;p&gt;Main takeaways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Again, try to repeat entire sentences, not just phrases.&lt;/li&gt;
&lt;li&gt;Give longer pauses before starting a new section.&lt;/li&gt;
&lt;li&gt;When stuttering or struggling to finish a sentence, instead of starting over, go ahead and finish the sentence. Build the mental groove for the entire phrase instead of just the first part.&lt;/li&gt;
&lt;li&gt;Prep-work didn't seem to save too much time. Options: (A) try to do more prep work and closer to when recording will actually happen. (B) try to cut down on the amount of script writing and go ahead and riff for an hour on video.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/3fgUgBTZC4g" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id="10-af-motor-sounds-nov-24"&gt;10. AF Motor Sounds (Nov 24)&lt;/h2&gt;
&lt;p&gt;This was more of a quick test of the auto-focus sounds coming from my R6. It had been awhile since I posted (moved and had a kid since the last post) and I wanted to get something small out as a jump start. Plus I wanted to test out my new MacBook Pro with the M1 Max chip (tl;dr it is awesome).&lt;/p&gt;
&lt;p&gt;As such, I didn't track my timings around this one.&lt;/p&gt;
&lt;p&gt;I currently have 56 subscribers.&lt;/p&gt;
&lt;div class="youtube-embed"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/RcM4AK8WZrc" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id="11-clog-on-macbook-pro-m1-max-dec-9"&gt;11. CLog on MacBook Pro M1 Max (Dec 9)&lt;/h2&gt;
&lt;p&gt;This was another quick test. I figured I should start small and build up my process in this new place. I'm not a fan of the (lack of) background, but I'm more worried about content that I'm going to focus on.&lt;/p&gt;
&lt;p&gt;Right now the most popular video is the PowerBeats one with over 4K views (the LastPass one is #2 with 249 views).&lt;/p&gt;</content><category term="Creative"/></entry><entry><title>Practice Sketching</title><link href="https://ryanjm.com/2018/07/20/practice-sketch/" rel="alternate"/><published>2018-07-20T10:00:00-07:00</published><updated>2018-07-20T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2018-07-20:/2018/07/20/practice-sketch/</id><summary type="html">&lt;p&gt;I've always enjoyed drawing but I never felt good at it. It was just "doodling" for me. But a couple months ago, I came to the conclusion that the only reason I wasn't good at drawing was because I never practiced. I'm not going to wake up one day being …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I've always enjoyed drawing but I never felt good at it. It was just "doodling" for me. But a couple months ago, I came to the conclusion that the only reason I wasn't good at drawing was because I never practiced. I'm not going to wake up one day being able to paint. It'll take practice.&lt;/p&gt;
&lt;p&gt;The hardest part about practicing is knowing what is the right level of challenge. On my trip in France, I took some time out to relax and just draw the Airbnb we were in. My first attempt sucked. The ceiling was too tall, the table was at the wrong angle, it was bad. So I took a photo and practiced sketching off of the photo.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Sketch_2018-05-16.png"&gt;&lt;figcaption&gt;Sketch of Airbnb&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I was pretty happy with the sketch, but when I attempted to color it, I became much less satisfied with the result:&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Sketch_2018-05-16-2.png"&gt;&lt;figcaption&gt;Colored sketch&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I realized that there are a lot more lessons that I needed to learn between sketching and painting. So for now, I've resolved myself to focus on sketching. And more specifically, sketching smaller, less complicated scenes.&lt;/p&gt;
&lt;p&gt;After reading some articles and watching some videos, I realized there were a couple aspects that I needed to practice. A big one being to learn how to see; actually taking note of angles, lengths, colors, and shapes.&lt;/p&gt;
&lt;p&gt;So with that in mind (and because I have limited time), today I did a 10-minute sketch challenge where I drew the same scene (my bedroom) in 10 minutes, again in five minutes, and then attempting to do it again in one minute. My biggest surprise was how much could be drawn in five minutes.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Untitled_Artwork-4.png"&gt;&lt;figcaption&gt;10-minute sketch challenge&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I'm still early in this journey, but figure I should document the process. I'll keep getting better, one sketch at a time.&lt;/p&gt;</content><category term="Creative"/></entry><entry><title>Knowing a Good Thing When You See It</title><link href="https://ryanjm.com/2018/05/26/croissants/" rel="alternate"/><published>2018-05-26T10:00:00-07:00</published><updated>2018-05-26T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2018-05-26:/2018/05/26/croissants/</id><summary type="html">&lt;p&gt;Pastries in France got me thinking about how we perceive the world. For example, if you only occasionally eat croissants, then most croissants will probably make you happy. But if you eat croissants semi-regularly and considered yourself a pastry connoisseur, then you'd know that most croissants suck. Especially in the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Pastries in France got me thinking about how we perceive the world. For example, if you only occasionally eat croissants, then most croissants will probably make you happy. But if you eat croissants semi-regularly and considered yourself a pastry connoisseur, then you'd know that most croissants suck. Especially in the US.&lt;/p&gt;
&lt;p&gt;A good croissant should be super light. It has to have a darker exterior (if it is pale it means they didn't apply enough egg wash). Inside, the flaky layers should be defined with air gaps where the butter melted and the steam expanded. When you bite into it, it should come apart easily, almost melting into your mouth.&lt;/p&gt;
&lt;p&gt;Once you understand traditional croissants, then you can appreciate an almond croissant. Traditionally made out of a day-old croissant. It is cut open and almond paste is put inside like a sandwich. Almond paste is then applied on top of the croissant, sprinkled with almonds and then baked. Almond paste is its own science. It can't be too chunky, it shouldn't be be too wet or too dry, and it shouldn't use too much almond extract. On top of that, a good almond croissant will continue to have many of the same characteristics as the traditional croissant.&lt;/p&gt;
&lt;p&gt;All of this to say, if you &lt;em&gt;don't&lt;/em&gt; eat croissants regularly and I was to hand you a chocolate almond croissant from Le Boulanger de la Tour in Paris, you'd say it was good. You'd probably even enjoy it a lot. But I'm not sure you'd &lt;em&gt;really&lt;/em&gt; understand the profound nature of that croissant or its transcendent nature (Michelle and I went back four times during our trip).&lt;/p&gt;
&lt;p&gt;The fact that you might not fully understand this is fine. And unless you are paying attention you'd probably go back to enjoying other croissants just as well. But if you are paying attention, like I was, then it becomes the new standard of what a great croissant should taste like. Before this trip my favorite almond croissant was from Bakery Nouveau in Seattle, Washington. I thought that was a 10/10, but now I'd say it was probably an 8/10 compared to this new standard. This doesn't mean that every future croissant will suck. It just means I know where it falls short compared to Le Boulanger de la Tour.&lt;/p&gt;
&lt;p&gt;So what is the takeaway? Besides the fact that you should expect more from your croissants, eat more of them, and actually think about quality of food that you are eating in general... I think it also shines a light on our experiences in general. That unless we are intentionally being observant we'll miss out on truly great experiences.&lt;/p&gt;
&lt;p&gt;As a software developer who enjoys good user experiences, I have preconceived notions of how software &lt;em&gt;can&lt;/em&gt; work. I know how the internet is built and what the back button is supposed to do. So when a webpage breaks that functionality it grates against me like fingernails against a chalkboard. Or when Google Maps decides to change my zoom level when I click a non-zoom related button, it irritates me because I know things &lt;em&gt;can&lt;/em&gt; be better.&lt;/p&gt;
&lt;p&gt;It is important to have areas that you truly care about. A topic that you pay enough attention to that you can really know when you come across something extraordinary. Otherwise you never give anything the chance to truly blow your mind if it doesn't have a foundation to jump from.&lt;/p&gt;</content><category term="Creative"/></entry><entry><title>Video Production - First Class</title><link href="https://ryanjm.com/2017/11/10/video-production-first-class/" rel="alternate"/><published>2017-11-10T10:00:00-08:00</published><updated>2017-11-10T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2017-11-10:/2017/11/10/video-production-first-class/</id><summary type="html">&lt;p&gt;Every couple of months I think about starting a YouTube channel and to start making videos regularly. I've created some videos in the past and have enjoyed the process. My main hangup has been that I don't have a topic I want to focus on.&lt;/p&gt;
&lt;p&gt;That shouldn't hold me back …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Every couple of months I think about starting a YouTube channel and to start making videos regularly. I've created some videos in the past and have enjoyed the process. My main hangup has been that I don't have a topic I want to focus on.&lt;/p&gt;
&lt;p&gt;That shouldn't hold me back from making &lt;em&gt;any&lt;/em&gt; videos. Therefore, I've decided to start small. I'll learn more if I start doing something.&lt;/p&gt;
&lt;p&gt;The goal is to make them as fast as possible, get to &lt;a href="https://www.youtube.com/watch?v=1LAhHDEtTD0"&gt;80%&lt;/a&gt;, learn something new, and then publish them. Publishing so that I hold myself a little more publically accountable.&lt;/p&gt;
&lt;p&gt;My first opportunity came recently when Michelle and I stood in line for three hours at a &lt;a href="https://donuts.withgoogle.com/"&gt;Google Home Mini Donut shop&lt;/a&gt; for the chance to win a Google Home Mini if we lost we'd walk away with some donuts. How can we pass on donuts?? I thought that'd make a good video. So I made &lt;a href="https://www.youtube.com/watch?v=3g-59QdT7mo"&gt;one&lt;/a&gt;. Here are the lessons I learned.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/donut-shop-1.jpg"&gt;&lt;figcaption&gt;donut shop&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;p&gt;It took much longer than I expected. Clear off the table, set up the tripod, check that framing is level, do the same for the second camera, make sure the background looks good, make sure there is enough lighting, thread mic through my shirt, check volume, etc.&lt;/p&gt;
&lt;p&gt;I need to take more time reviewing the background. I should remove evidence that I can't keep all my plants alive and tidy up the dishes.&lt;/p&gt;
&lt;p&gt;My secondary camera was my iPhone on a Gorillapod. I didn't realize until I started editing that it shook when I touched the table. I'll need to set it up somewhere else.&lt;/p&gt;
&lt;h2 id="recording"&gt;Recording&lt;/h2&gt;
&lt;p&gt;Go for more, shorter clips. I thought longer would be better, but it makes it harder to find the good takes.&lt;/p&gt;
&lt;p&gt;Give an editing-only intro each time. I didn't have any reference on the video or audio files to know which ones went with each other. This will make it easier for post-production.&lt;/p&gt;
&lt;p&gt;Pronounce everything carefully. Evidently, I can't say "DEVICE."&lt;/p&gt;
&lt;p&gt;Remove my verbal tick of saying "okay."&lt;/p&gt;
&lt;h2 id="b-roll"&gt;B-Roll&lt;/h2&gt;
&lt;p&gt;Create more b-roll.&lt;/p&gt;
&lt;p&gt;Be intentional about setting up good shots.&lt;/p&gt;
&lt;h2 id="editing"&gt;Editing&lt;/h2&gt;
&lt;p&gt;Group all multicamera shots together in the beginning. This was my first time with Final Cut Pro X, so it was fun learning how to sync audio and video, along with how to put together a multicamera shot. It is 100x better than what I used to do with iMovie.&lt;/p&gt;
&lt;p&gt;Leave all files on the computer. I was editing off my Drobo and kept losing frames since it is a slow connection. I'll move them off the computer once I've finished the video.&lt;/p&gt;
&lt;p&gt;I intentionally kept things simple this time. Eventually, I'll get to title cards, color correct, intros, and other whiz-bang features. But I enjoyed learning about FCPX adjustments with clips. It makes it easy to control the transitions.&lt;/p&gt;
&lt;h2 id="story-telling"&gt;Story Telling&lt;/h2&gt;
&lt;p&gt;Three parts do not equal a story. I'm married to a storyteller so I know I &lt;em&gt;should&lt;/em&gt; have a story arc. But this time I thought I'd wing it. I shouldn't have. There was no central theme.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Was it an unboxing of the Google Home Mini?&lt;/li&gt;
&lt;li&gt;Was it a tutorial on how to set it up? Or how to use it?&lt;/li&gt;
&lt;li&gt;Was it about what to expect at the Google Home Mini Donut shop experience?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; It ended up being none of these.&lt;/p&gt;
&lt;p&gt;Lesson: Figure out the story I want to tell before shooting anything. What am I wanting to teach or show?&lt;/p&gt;
&lt;p&gt;Write out what I want to cover in each section. It took me 10 minutes to say the closer. Had I written an outline I probably could have stopped myself from saying "Leave a comment in the description" twenty times.&lt;/p&gt;
&lt;p&gt;All of that said, I'm happy with the way it turned out. I learned a lot along the way and I know how I can improve next time. Not much more I can ask for.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Biggest take away: create a checklist to speed up each step and to remember these lessons.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="why-video"&gt;Why Video?&lt;/h2&gt;
&lt;p&gt;Simple. Writing is not my strongest medium. I enjoy it (which is why I keep attempting to blog), but I'd rather shoot and edit video. Plus, video creation is a skill that I want to develop.&lt;/p&gt;
&lt;p&gt;Time to figure out my next video.&lt;/p&gt;</content><category term="Creative"/></entry><entry><title>iPhone X - New Gestures Coming?</title><link href="https://ryanjm.com/2017/09/22/iphone-x/" rel="alternate"/><published>2017-09-22T10:00:00-07:00</published><updated>2017-09-22T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2017-09-22:/2017/09/22/iphone-x/</id><summary type="html">&lt;p&gt;The TrueDepth Camera is being marketed about reading faces, but at the foundation, it is just checking the depth of anything in front of the camera.&lt;/p&gt;
&lt;p&gt;It would be awesome if developers get access to this raw data eventually or even get wrappers for some basic Leap Motion style gestures …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The TrueDepth Camera is being marketed about reading faces, but at the foundation, it is just checking the depth of anything in front of the camera.&lt;/p&gt;
&lt;p&gt;It would be awesome if developers get access to this raw data eventually or even get wrappers for some basic Leap Motion style gestures.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New magic tricks just by waving your hand over the phone&lt;/li&gt;
&lt;li&gt;Teach sign language with accurate (and automated) tests&lt;/li&gt;
&lt;li&gt;Instead of tap to wake, just wave&lt;/li&gt;
&lt;li&gt;First person shooter using a hand gun (index finger to target, thumb to shoot)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On the security side, it'd be cool to implement a password using facial expressions. Two winks with the right eye to unlock. Frown to lock the phone out.&lt;/p&gt;</content><category term="Tech"/></entry><entry><title>Choices Every Day</title><link href="https://ryanjm.com/2017/09/08/choices-every-day/" rel="alternate"/><published>2017-09-08T10:00:00-07:00</published><updated>2017-09-08T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2017-09-08:/2017/09/08/choices-every-day/</id><summary type="html">&lt;p&gt;Every day we have a chance to do something different. To make something. However small.&lt;/p&gt;
&lt;p&gt;Thinking about something is different than doing something.&lt;/p&gt;
&lt;p&gt;I love this quote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"You can't build a reputation on what you are going to do." -- Henry Ford&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Today's door: creating a new post.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/PNG-image-FA5496F0182D-1.png"&gt;&lt;figcaption&gt;Always a choice …&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Every day we have a chance to do something different. To make something. However small.&lt;/p&gt;
&lt;p&gt;Thinking about something is different than doing something.&lt;/p&gt;
&lt;p&gt;I love this quote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"You can't build a reputation on what you are going to do." -- Henry Ford&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Today's door: creating a new post.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/PNG-image-FA5496F0182D-1.png"&gt;&lt;figcaption&gt;Always a choice&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</content><category term="Reflections"/></entry><entry><title>Making More Space on OSX</title><link href="https://ryanjm.com/2017/05/02/making-more-space-on-osx/" rel="alternate"/><published>2017-05-02T10:00:00-07:00</published><updated>2017-05-02T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2017-05-02:/2017/05/02/making-more-space-on-osx/</id><summary type="html">&lt;blockquote&gt;
&lt;p&gt;You only have 19.05 GB of storage. Save space by optimizing storage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After OSX's latest alert telling me that I'm running out of space, I finally decided to do something about it. (Though, honestly, why isn't 19 GB enough?)&lt;/p&gt;
&lt;p&gt;I already save the bulk of my image library on …&lt;/p&gt;</summary><content type="html">&lt;blockquote&gt;
&lt;p&gt;You only have 19.05 GB of storage. Save space by optimizing storage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After OSX's latest alert telling me that I'm running out of space, I finally decided to do something about it. (Though, honestly, why isn't 19 GB enough?)&lt;/p&gt;
&lt;p&gt;I already save the bulk of my image library on my external HD (with 400 GB+ I &lt;em&gt;have&lt;/em&gt; to) and I don't have many other large files on my computer so I wanted to know what was taking up so much space.&lt;/p&gt;
&lt;h2 id="step-1-see-what-osx-says"&gt;Step 1 - See what OSX Says&lt;/h2&gt;
&lt;p&gt;The first thing is to figure out where the large files are hiding. I had been using Disk Diag to figure out how much space I have left on my hard drive, but I found out that Apple has something similar built in:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;About This Mac.&lt;/li&gt;
&lt;li&gt;Storage.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Unfortunately for me, this view never finished calculating.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Screen-Shot-2017-05-01-at-10.11.59-PM.png"&gt;&lt;figcaption&gt;Storage overview&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Click on Manage to get more information:&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Screen-Shot-2017-05-02-at-12.40.12-PM.png"&gt;&lt;figcaption&gt;Storage management&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;The thing that stood out to me was the 199 GB used for system storage. My HD is 250 GB, so that is a little more than I would expect. Okay...a &lt;em&gt;lot&lt;/em&gt; more.&lt;/p&gt;
&lt;p&gt;Clicking on Documents will give me a few files I could remove, but 32 GB isn't that much and isn't causing the big issues. To find them, I need Finder.&lt;/p&gt;
&lt;h2 id="step-2-finder"&gt;Step 2 - Finder&lt;/h2&gt;
&lt;p&gt;Right click on your home folder (the one with your computer's name) and click Get Info.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Screen-Shot-2017-05-02-at-12.58.14-PM.png"&gt;&lt;figcaption&gt;Folder info&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;This isn't all of it, but should be a majority of it. To figure out which folder is the biggest offender, highlight the folders and then click Command + i to get the info card for each one.&lt;/p&gt;
&lt;p&gt;For me, none of my folders really had that much data. The biggest ones were my Photos (15 GB), Movies (13 GB), and Dropbox (2 GB). That accounts for about 20% of the used space. That meant that the rest of the data is in the hidden folder called Library.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Finder.&lt;/li&gt;
&lt;li&gt;Option + Go &amp;gt; Library.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When you click on Go and hold down Option it shows the hidden Library folder. Right clicking on Library and getting info I saw it had 123 GB. Found the offender.&lt;/p&gt;
&lt;p&gt;There are too many folders in here to open the info card for each of them at once. So I did it in 3 or 4 sections. Clicking + Shift clicking a section and then opening the info card. The biggest offenders were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Application Support (48.46 GB)&lt;/li&gt;
&lt;li&gt;Caches (7.17 GB)&lt;/li&gt;
&lt;li&gt;Containers (7.17 GB)&lt;/li&gt;
&lt;li&gt;Developer (60.55 GB)&lt;/li&gt;
&lt;li&gt;iTunes (2.56 GB)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Selecting folders and getting the info card is my process for figuring out which folders have the largest files.&lt;/p&gt;
&lt;h2 id="step-3-clean-up"&gt;Step 3 - Clean Up&lt;/h2&gt;
&lt;p&gt;I ended up leaving a few folders alone.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Caches - While I could probably delete a big chunk of it, the point of a cache is to speedup the system. I don't want to slow anything down and it would take too much time to figure out which parts are safe to delete.&lt;/li&gt;
&lt;li&gt;iTunes - The main file in here that is taking up space is the latest OS for the iPhone. I simply deleted that.&lt;/li&gt;
&lt;li&gt;Containers - There wasn't anything that stood out there. Mostly seems to be the working files of applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Developer folder (Original: 60.55, Final: 10.78 GB)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;14 GB came from &lt;strong&gt;Xcode Archives&lt;/strong&gt;. Apple told me not to delete them directly, so I've backed them up, deleted them one-by-one through Xcode, and then had to go back to the folder and delete the empty date named folders (Xcode should have deleted those).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;iOS DeviceSupport&lt;/strong&gt; has 36.92 GB. StackOverflow said that I could delete the data in here. Done.&lt;/p&gt;
&lt;p&gt;I went ahead and deleted the contents of &lt;strong&gt;DerivedData&lt;/strong&gt; (2.54 GB) even though I know that the next time I build, most of that will come back.&lt;/p&gt;
&lt;p&gt;This brought the Developer folder down to 10.78 GB.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Application Support (Original: 48.46 GB, Final: 20.11)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This one had a lot of folders that stood out to me.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dash (106.6 MB) - I barely ever use the program. Not worth that much space to me.&lt;/li&gt;
&lt;li&gt;SoundCleod (207.3 MB) - Another experimental program I downloaded and no longer use.&lt;/li&gt;
&lt;li&gt;Google (654.1 MB) - Kind of expected for Chrome.&lt;/li&gt;
&lt;li&gt;com.evernote.Evernote (949.6 MB) - Again, expected.&lt;/li&gt;
&lt;li&gt;MobileSync (13.63 GB) - These are the iOS Backups. I went into iTunes and deleted the backup for an older device. (Tip: You have to close iTunes for it to delete the files.)&lt;/li&gt;
&lt;li&gt;Postgres (22.65 GB) - I had some indexes to clean up. Got this down to 7.28 GB.&lt;/li&gt;
&lt;li&gt;Close.io (8.44 GB), Elastic.Close-io (948.8 MB) - Close.io is the CRM I use for work. I'm not sure why it is this big and after contacting support, I've deleted the app and re-installed it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After deleting a few old apps and cleaning things up, I got Application Support down to 20.11 GB.&lt;/p&gt;
&lt;p&gt;All of this has enabled me to go from 25.49 GB to 116.02 GB of free space. I look forward to APFS making this process much faster.&lt;/p&gt;
&lt;p&gt;Hopefully this helps you clean up space on your HD too.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Screen-Shot-2017-05-02-at-4.51.30-PM.png"&gt;&lt;figcaption&gt;Before&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/Screen-Shot-2017-05-02-at-4.51.31-PM.png"&gt;&lt;figcaption&gt;After&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</content><category term="Tech"/></entry><entry><title>One Step at a Time</title><link href="https://ryanjm.com/2017/01/13/one-step-at-a-time/" rel="alternate"/><published>2017-01-13T10:00:00-08:00</published><updated>2017-01-13T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2017-01-13:/2017/01/13/one-step-at-a-time/</id><summary type="html">&lt;p&gt;It's a cliche, but we know it's true.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The journey of a thousand miles begins with one step.
-- Lao Tzu&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Building a habit to run starts with the first intentional walk.&lt;/p&gt;
&lt;p&gt;Creating something new starts with taking the first step towards completing it.&lt;/p&gt;
&lt;p&gt;Reading 5 minutes a day will get …&lt;/p&gt;</summary><content type="html">&lt;p&gt;It's a cliche, but we know it's true.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The journey of a thousand miles begins with one step.
-- Lao Tzu&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Building a habit to run starts with the first intentional walk.&lt;/p&gt;
&lt;p&gt;Creating something new starts with taking the first step towards completing it.&lt;/p&gt;
&lt;p&gt;Reading 5 minutes a day will get you closer to finishing a book than not reading.&lt;/p&gt;
&lt;p&gt;Making the most of each day means taking one more step.&lt;/p&gt;</content><category term="Reflections"/></entry><entry><title>Standing Desk Experiment - Failure</title><link href="https://ryanjm.com/2016/11/08/standing-desk-experiment-failure/" rel="alternate"/><published>2016-11-08T10:00:00-08:00</published><updated>2016-11-08T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2016-11-08:/2016/11/08/standing-desk-experiment-failure/</id><summary type="html">&lt;p&gt;I heard everyone's enjoyment about standing desks. How it helped with various pains and made people feel healthier. I have an awesome IKEA desk which can be assembled in many ways, so when we moved back to Chicago I took the opportunity to assemble it into a standing desk.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/IMG_8488-2.jpg"&gt;&lt;figcaption&gt;standing …&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;I heard everyone's enjoyment about standing desks. How it helped with various pains and made people feel healthier. I have an awesome IKEA desk which can be assembled in many ways, so when we moved back to Chicago I took the opportunity to assemble it into a standing desk.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/IMG_8488-2.jpg"&gt;&lt;figcaption&gt;standing desk&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;It took 3-4 weeks for me to have the endurance to stand at it all day. After a couple weeks, at the recommendation of every standing desk reviewer ever, I purchased a standing mat. It, of course, helped tremendously.&lt;/p&gt;
&lt;p&gt;The problems came when I reviewed my work habits. After long runs in the morning (6+ miles), I didn't have the stamina to stand at my desk. I'd end up working at the dinning room table or on the floor. No surprise, my back didn't agree with sitting on the floor for extender periods of time while programming.&lt;/p&gt;
&lt;p&gt;Even on non-running days I noticed that I wasn't doing focused work. It was easy for me to take a step or two away while the code compiled or to walk away simply to stretch my legs.&lt;/p&gt;
&lt;p&gt;I was barley ever getting into the "flow." And when I was, it wasn't for long periods of time.&lt;/p&gt;
&lt;p&gt;Therefore, after 3 months of experimenting with a standing desk, I'm back to a normal desk and it feels great.&lt;/p&gt;
&lt;p&gt;
&lt;figure&gt;&lt;img src="https://ryanjm.com/images/FullSizeRender.jpg"&gt;&lt;figcaption&gt;normal height desk&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;I try to make sure I'm always evaluating and experimenting. Incremental improvements like this can have profound impacts on your life, but sometimes those experiments don't work out. You need to be able to identify when that is the case and do something about.&lt;/p&gt;</content><category term="Reflections"/></entry><entry><title>Pitching Your Company</title><link href="https://ryanjm.com/2014/07/21/pitching-your-company/" rel="alternate"/><published>2014-07-21T10:00:00-07:00</published><updated>2014-07-21T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2014-07-21:/2014/07/21/pitching-your-company/</id><summary type="html">&lt;p&gt;"Stop. You're speaking too quickly." Larry was helping me with my public speaking, and I really needed it. "Try this. As you speak, put a long pause between each word. It'll feel awkward, but just try it."&lt;/p&gt;
&lt;p&gt;At this point, I was thankful there were only two other teams in …&lt;/p&gt;</summary><content type="html">&lt;p&gt;"Stop. You're speaking too quickly." Larry was helping me with my public speaking, and I really needed it. "Try this. As you speak, put a long pause between each word. It'll feel awkward, but just try it."&lt;/p&gt;
&lt;p&gt;At this point, I was thankful there were only two other teams in the room with us. Practicing in front of seven people is much easier than seventy.&lt;/p&gt;
&lt;p&gt;"Hello... my... name... is..." Needless to say, it was painful. But I learned a valuable lesson that day: when my heart races because I'm in front of people, I speak twice as fast. Those long pauses that seemed like five seconds to me were only small pauses to everyone else. After doing that practice round, I was allowed to speed it up just a little, but the lesson was learned.&lt;/p&gt;
&lt;p&gt;The pitch my business partner and I gave the next day was for a competition, and we had wanted all the help we could get.&lt;/p&gt;
&lt;p&gt;Lately, I've been going to a few pitch nights here in Colorado Springs, and I keep remembering more and more of my lessons from that day four years ago.&lt;/p&gt;
&lt;h3 id="practice"&gt;Practice&lt;/h3&gt;
&lt;p&gt;If asked, most people will probably tell you what you &lt;em&gt;should&lt;/em&gt; do to prepare for a pitch, but not everyone actually does it. Even if you are pitching to a small group, it's amazing practice to go through the motions as if you are presenting to a larger group.&lt;/p&gt;
&lt;p&gt;Rehearsing is the best thing you can do with your time prior to a presentation. To make it more valuable, practice in front of people. You can whisper and lip-sync your presentation to a mirror all day long, but it won't reflect the real thing.&lt;/p&gt;
&lt;p&gt;If you can't practice in front of others, record yourself with a camera. The things you are looking for are: What are you doing with your feet? Where are your hands? Do you look confident? Are you speaking too softly or too quickly?&lt;/p&gt;
&lt;p&gt;The added benefit of practicing in front of others is that they can give you feedback on the content of your message. You want to make sure it is polished and not confusing.&lt;/p&gt;
&lt;h3 id="venue"&gt;Venue&lt;/h3&gt;
&lt;p&gt;The more information you know about your topic the easier it will be to present on it. Similarly, you want to be just as prepared for the venue. Learn what the expectations are of the pitch before showing up.&lt;/p&gt;
&lt;p&gt;What is the attire like? How long should you pitch be? In what format should you provide your slides? Or what adaptors do you need for your laptop?&lt;/p&gt;
&lt;p&gt;If it is a venue where it is open to the public you should try going before pitching yourself. This lets you see the common format, get ideas for improving your own pitch, and seeing what questions are usually asked.&lt;/p&gt;
&lt;h3 id="deck"&gt;Deck&lt;/h3&gt;
&lt;p&gt;Make sure you have the right presentation file (deck) with you. You'd be surprised by how many times people forget to grab the right file.&lt;/p&gt;
&lt;p&gt;Keep things simple. You've been told this before, so listen this time: don't put a full paragraph on a slide. You shouldn't be reading off it, and your audience should be listening to you, not reading.&lt;/p&gt;
&lt;p&gt;If appropriate, make sure to put in your call to action. What do you want the audience to do? Test out your application? Give you feedback on how to scale? Do you want beta users? Whatever it is, make sure it is clear.&lt;/p&gt;
&lt;p&gt;Don't forget to repeat your business name, website, and contact information at the end.&lt;/p&gt;
&lt;h3 id="relax"&gt;Relax&lt;/h3&gt;
&lt;p&gt;Most importantly, relax. It is unlikely that your business is going to go bust just because you gave a bad presentation. If you are looking to raise money and are pitching to VCs, then go back to the first step: practice.&lt;/p&gt;
&lt;p&gt;You will be projecting the atmosphere you want the room to have. If you are nervous and fidgeting with notecards, then the audience will be focusing on your antics and be stressed out for you. If you are relaxed and confident, that will come through, and the audience will respond accordingly.&lt;/p&gt;
&lt;p&gt;These tips helped my business partner and I pitch OrangeQC back in 2010 and win the Cozad New Venture Competition. I hope your next pitch is great, and if you are in Colorado Springs, come join us for the next pitch night and say hi.&lt;/p&gt;</content><category term="Reflections"/></entry><entry><title>Time Management</title><link href="https://ryanjm.com/2013/07/11/time-management/" rel="alternate"/><published>2013-07-11T10:00:00-07:00</published><updated>2013-07-11T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2013-07-11:/2013/07/11/time-management/</id><summary type="html">&lt;p&gt;Matt pointed me to a great slide share called &lt;a href="http://www.slideshare.net/egarbugli/26-time-management-hacks-i-wish-id-known-at-20"&gt;26 Time Management Hacks I Wish I'd Known at 20&lt;/a&gt;. I think it is a great list of reminders and some of them really stood out to me.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;"Work more when you're in the zone. Relax when you're not."&lt;/li&gt;
&lt;li&gt;Work iteratively …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Matt pointed me to a great slide share called &lt;a href="http://www.slideshare.net/egarbugli/26-time-management-hacks-i-wish-id-known-at-20"&gt;26 Time Management Hacks I Wish I'd Known at 20&lt;/a&gt;. I think it is a great list of reminders and some of them really stood out to me.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;"Work more when you're in the zone. Relax when you're not."&lt;/li&gt;
&lt;li&gt;Work iteratively.&lt;/li&gt;
&lt;li&gt;"Put meetings at the beginning of the day."&lt;/li&gt;
&lt;li&gt;"Keep the same context throughout the day. Switching between projects/clients is unproductive."&lt;/li&gt;
&lt;li&gt;Always take notes.&lt;/li&gt;
&lt;/ul&gt;</content><category term="Reflections"/></entry><entry><title>Testing an Ember.js App</title><link href="https://ryanjm.com/2013/03/16/testing-an-ember-js-app/" rel="alternate"/><published>2013-03-16T10:00:00-07:00</published><updated>2013-03-16T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2013-03-16:/2013/03/16/testing-an-ember-js-app/</id><summary type="html">&lt;p&gt;When developing in Rails, I preferred TDD and wanted to apply the same approach to an Ember.js project. Although Ember uses QUnit, initial setup proved challenging. After discovering Jo Liss's presentation on testing Ember apps, I adopted Konacha, a testing framework built for Rails that combines Mocha and Chai …&lt;/p&gt;</summary><content type="html">&lt;p&gt;When developing in Rails, I preferred TDD and wanted to apply the same approach to an Ember.js project. Although Ember uses QUnit, initial setup proved challenging. After discovering Jo Liss's presentation on testing Ember apps, I adopted Konacha, a testing framework built for Rails that combines Mocha and Chai.&lt;/p&gt;
&lt;h2 id="load-the-whole-thing-or-parts-in-isolation"&gt;Load the whole thing or parts in isolation?&lt;/h2&gt;
&lt;p&gt;I consulted with Jo Liss and learned she loaded the entire Ember.js app. To implement this approach, a &lt;code&gt;spec_helper.js&lt;/code&gt; file replicates the files loaded by &lt;code&gt;application.js&lt;/code&gt;. The key modification involves putting the app into testing mode:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;Ember&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;testing&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Ember&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Tests require three components: the &lt;code&gt;spec_helper&lt;/code&gt; requirement, a &lt;code&gt;before&lt;/code&gt; callback creating an app instance, and an &lt;code&gt;afterEach&lt;/code&gt; callback resetting the app.&lt;/p&gt;
&lt;h2 id="fixtures"&gt;Fixtures&lt;/h2&gt;
&lt;p&gt;To maintain DRY principles, I created a &lt;code&gt;fixtures&lt;/code&gt; directory under &lt;code&gt;spec/javascripts&lt;/code&gt;. Objects must be wrapped in functions to control when they're created:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;myModelFixture&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;adapter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;store&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;MyModel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Hello World&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="loading-data"&gt;Loading Data&lt;/h2&gt;
&lt;p&gt;Since Konacha runs in the browser, Ember Data models must be created for testing. Initial attempts using &lt;code&gt;App.MyModel.createRecord()&lt;/code&gt; worked for simple models but failed with embedded objects. The solution required &lt;code&gt;App.adapter.load(App.store, App.MyModel, {...})&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;With this setup complete, I could confidently test models.&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>Ember.js Press</title><link href="https://ryanjm.com/2013/03/14/ember-js-press/" rel="alternate"/><published>2013-03-14T10:00:00-07:00</published><updated>2013-03-14T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2013-03-14:/2013/03/14/ember-js-press/</id><summary type="html">&lt;p&gt;Maybe I'm just easily impressed, but I &lt;em&gt;really&lt;/em&gt; like Robin Ward's &lt;a href="http://emberpress.eviltrout.com/"&gt;Ember Press&lt;/a&gt;. It isn't really my kind of game, but it is a great example of a well written Ember application. Robin even wrote up &lt;a href="http://emberpress.eviltrout.com/docs/emberpress.html"&gt;documentation&lt;/a&gt; for the Ember code (which looks amazing thanks to &lt;a href="http://jashkenas.github.com/docco/"&gt;Docco&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;If you are …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Maybe I'm just easily impressed, but I &lt;em&gt;really&lt;/em&gt; like Robin Ward's &lt;a href="http://emberpress.eviltrout.com/"&gt;Ember Press&lt;/a&gt;. It isn't really my kind of game, but it is a great example of a well written Ember application. Robin even wrote up &lt;a href="http://emberpress.eviltrout.com/docs/emberpress.html"&gt;documentation&lt;/a&gt; for the Ember code (which looks amazing thanks to &lt;a href="http://jashkenas.github.com/docco/"&gt;Docco&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;If you are interested in learning Ember, definitely check it out.&lt;/p&gt;
&lt;p&gt;via &lt;a href="http://discuss.emberjs.com/t/good-resources-for-beginners/262/13"&gt;Ember Discussion Forum&lt;/a&gt;&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>Ember.js and View Delegation</title><link href="https://ryanjm.com/2013/02/26/ember-js-and-view-delegation/" rel="alternate"/><published>2013-02-26T10:00:00-08:00</published><updated>2013-02-26T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2013-02-26:/2013/02/26/ember-js-and-view-delegation/</id><summary type="html">&lt;p&gt;Ember makes it easy to add an action to a button or an anchor tag with the &lt;code&gt;{{action}}&lt;/code&gt; helper, but sometimes you need more control. Delegation works out really well. You create a view, specify the delegate, and the function(s) you want called. The nice thing is you can …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ember makes it easy to add an action to a button or an anchor tag with the &lt;code&gt;{{action}}&lt;/code&gt; helper, but sometimes you need more control. Delegation works out really well. You create a view, specify the delegate, and the function(s) you want called. The nice thing is you can add as many actions as you want the view to have and you can reuse it for different controllers.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HoverView&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Em&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;View&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;tagName&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;span&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;mouseEnter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;delegate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;action&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;mouseLeave&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;delegate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;action&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;I've been using this pattern to give better control around TextFields and hovering actions such as the one above.&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>Ember.js Nested Routes</title><link href="https://ryanjm.com/2013/02/13/ember-js-nested-routes/" rel="alternate"/><published>2013-02-13T10:00:00-08:00</published><updated>2013-02-13T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2013-02-13:/2013/02/13/ember-js-nested-routes/</id><summary type="html">&lt;p&gt;I had a hard time with nested routes the first time, so I hope to clear it up for others. Let's start with the following router:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;posts&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;hello&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;In order to get to the root path we need to go to …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I had a hard time with nested routes the first time, so I hope to clear it up for others. Let's start with the following router:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;posts&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;hello&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;In order to get to the root path we need to go to &lt;code&gt;#/posts&lt;/code&gt;. The Router gives us some named routes which we can use with the Handlebars &lt;code&gt;linkTo&lt;/code&gt; method or Ember's &lt;code&gt;transitionTo&lt;/code&gt; method. Ember has done a great job of removing boiler plate code for us.&lt;/p&gt;
&lt;p&gt;What tripped me up is that when you define a resource, Ember will automatically use two templates (if given). The first you can think of as the "root" view. Additionally, following CRUD, it will also use an "index" view. If you aren't going to have subviews then you could just use one template, but if you want multiple subviews (show and edit for example) then you'll want to put an &lt;code&gt;{{outlet}}&lt;/code&gt; inside the template in order for the subviews to be rendered there.&lt;/p&gt;
&lt;p&gt;Additionally if we want to have the default route (&lt;code&gt;/&lt;/code&gt;) go to our posts we can do that with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;IndexRoute&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Em&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;redirect&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;transitionTo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;posts&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;If you want to see what routes you have (and their names) then in the JS console of your app type:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;recognizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;names&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="Dev"/></entry><entry><title>Getting Started with Ember.js</title><link href="https://ryanjm.com/2013/02/02/getting-started-with-ember-js/" rel="alternate"/><published>2013-02-02T10:00:00-08:00</published><updated>2013-02-02T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2013-02-02:/2013/02/02/getting-started-with-ember-js/</id><summary type="html">&lt;p&gt;I've been exploring Ember for several months and recently committed to a deeper investigation. After navigating through initial hurdles, I'm documenting the fundamentals to help others and reinforce my own comprehension.&lt;/p&gt;
&lt;h2 id="new-app"&gt;New App&lt;/h2&gt;
&lt;p&gt;Ember requires two key dependencies: &lt;code&gt;jQuery&lt;/code&gt; and &lt;code&gt;handlebars.js&lt;/code&gt;. With dependencies included, you can establish your application …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I've been exploring Ember for several months and recently committed to a deeper investigation. After navigating through initial hurdles, I'm documenting the fundamentals to help others and reinforce my own comprehension.&lt;/p&gt;
&lt;h2 id="new-app"&gt;New App&lt;/h2&gt;
&lt;p&gt;Ember requires two key dependencies: &lt;code&gt;jQuery&lt;/code&gt; and &lt;code&gt;handlebars.js&lt;/code&gt;. With dependencies included, you can establish your application. You may write either &lt;code&gt;Ember&lt;/code&gt; or use the shorthand &lt;code&gt;Em&lt;/code&gt;. Your application serves as a namespace for your entire Ember project:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Em&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Application&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ember automatically generates an &lt;code&gt;ApplicationView&lt;/code&gt; and &lt;code&gt;ApplicationController&lt;/code&gt;. By default, it searches for a template named "application" or without a name.&lt;/p&gt;
&lt;h2 id="template"&gt;Template&lt;/h2&gt;
&lt;p&gt;Ember's power emerges through template management capabilities. You can render templates via handlebars' &lt;code&gt;{{ outlet }}&lt;/code&gt; (comparable to Ruby's &lt;code&gt;yield&lt;/code&gt;) or the &lt;code&gt;{{ view }}&lt;/code&gt; command.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HelloView&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Em&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;View&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;templateName&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;hello&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="views"&gt;Views&lt;/h2&gt;
&lt;p&gt;Regarding views, you can establish attributes and properties:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;HelloView&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Em&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;View&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;templateName&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;hello&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Hello World&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;classNames&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;bold&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The div rendered by the Ember view will receive the class &lt;code&gt;bold&lt;/code&gt;. To modify the element type the View renders, use &lt;code&gt;tagName&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In the next post, I'll explore the router, controllers, and additional template concepts.&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>Vim Registers</title><link href="https://ryanjm.com/2012/11/20/vim-registers/" rel="alternate"/><published>2012-11-20T10:00:00-08:00</published><updated>2012-11-20T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-11-20:/2012/11/20/vim-registers/</id><summary type="html">&lt;p&gt;One of the big time savers I loved in TextMate was the ability to copy and paste multiple things at a time. In TextMate, if you will Cmd+C multiple items of text, you can paste them out doing Cmd+V, Cmd+Shift+V, and then repeating Cmd+Shift+V …&lt;/p&gt;</summary><content type="html">&lt;p&gt;One of the big time savers I loved in TextMate was the ability to copy and paste multiple things at a time. In TextMate, if you will Cmd+C multiple items of text, you can paste them out doing Cmd+V, Cmd+Shift+V, and then repeating Cmd+Shift+V till you are done.&lt;/p&gt;
&lt;p&gt;In Vim, it isn't that easy. Vim has registers which are places you can place text to use later. To see your current list of registers use &lt;code&gt;:reg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The docs say there are 9 types of registers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The unnamed register ""&lt;/li&gt;
&lt;li&gt;10 numbered registers "0 to "9&lt;/li&gt;
&lt;li&gt;The small delete register "-&lt;/li&gt;
&lt;li&gt;26 named registers "a to "z or "A to "Z&lt;/li&gt;
&lt;li&gt;four read-only registers ":, "., "% and "#&lt;/li&gt;
&lt;li&gt;the expression register "=&lt;/li&gt;
&lt;li&gt;The selection and drop registers "*, "+ and "~&lt;/li&gt;
&lt;li&gt;The black hole register "_&lt;/li&gt;
&lt;li&gt;Last search pattern register "/&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you want to delete a line and not lose the last thing you copied / deleted, you have to delete it into the black hole register &lt;code&gt;"_dd&lt;/code&gt;. One convenient thing is that for every delete or change, vim automatically puts those into the 1-9 register, shifting them up one register each time.&lt;/p&gt;
&lt;p&gt;For example, if you had the following lines:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Line 1
Line 2
Line 3
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;And you go down each line and delete it with &lt;code&gt;dd&lt;/code&gt;, then you could paste them all out with the following commands:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&amp;quot;1p
.
.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;That is, you paste from the first register, and then you repeat with &lt;code&gt;.&lt;/code&gt;, which normally repeats the last command, in this case it will automatically walk up the other registers for you. Unfortunately, yank doesn't work this way.&lt;/p&gt;
&lt;p&gt;For yank you can put the text into a register by doing &lt;code&gt;"xy&lt;/code&gt; where &lt;code&gt;x&lt;/code&gt; is the register you want to use. This is the only way to yank multiple lines or sections of code and be able to reuse them later.&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>Slowly Clearing out Instapaper</title><link href="https://ryanjm.com/2012/11/17/slowly-clearing-out-instapaper/" rel="alternate"/><published>2012-11-17T10:00:00-08:00</published><updated>2012-11-17T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-11-17:/2012/11/17/slowly-clearing-out-instapaper/</id><summary type="html">&lt;p&gt;After realizing I had 400 unread articles in Instapaper (dating all the way back to 2009), I've declared bankruptcy by moving them into their own folder. I'll go through them slowly over the next year, and every week or two I'll post some of the best articles that I've come …&lt;/p&gt;</summary><content type="html">&lt;p&gt;After realizing I had 400 unread articles in Instapaper (dating all the way back to 2009), I've declared bankruptcy by moving them into their own folder. I'll go through them slowly over the next year, and every week or two I'll post some of the best articles that I've come across. Here is this week's list.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.minming.net/post/35553963889/a-billion-dollar-software-tech-company-is-founded-every"&gt;A billion dollar software tech company is founded every 3 months in U.S.&lt;/a&gt; - interesting list of some of the billion dollar companies that have come out in the past couple years.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.shopify.com/blog/6553665-12-must-watch-ted-talks-for-entrepreneurs"&gt;12 Ted talks for Entrepreneurs&lt;/a&gt; - Some food for thought.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/549/the-definitive-guide-to-forms-based-website-authentication"&gt;SO's definitive guide to forms based website authentication&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jquery14.com/day-01"&gt;14 days with jQuery&lt;/a&gt; - old (2010), but contains some great videos about jQuery / javascript.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://css-tricks.com/why-ems/"&gt;Why Ems?&lt;/a&gt; - I've been wanting to play around with Ems for awhile and I think these are some pretty valid points.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://jtaby.com/2012/04/23/modern-web-development-part-1.html"&gt;Modern Web Development&lt;/a&gt; - Length article in which Majd goes through almost every aspect of Chrome's WebKit Inspector. I definitely learned a couple new things.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://httpkit.com/resources/HTTP-from-the-Command-Line/"&gt;9 users for cURL worth knowing&lt;/a&gt; - They go through the common use cases of using cURL. Good read and I'll be using this as a resource in the future.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ted.com/talks/shawn_achor_the_happy_secret_to_better_work.html"&gt;TED: Shawn Achor: The happy secret to better work&lt;/a&gt; - I've watched this a couple times since it came out. Good things to keep in mind.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://techcrunch.com/2012/11/14/foundation-video-ben-horowitz-of-andreessen-horowitz-at-the-google-ventures-founder-ceo-summit/"&gt;Foundation: Ben Horowitz&lt;/a&gt; - I enjoy Kevin's interviews and this is a good one with Ben Horowitz.&lt;/p&gt;</content><category term="Reflections"/></entry><entry><title>Proficiency with Terminal and Git</title><link href="https://ryanjm.com/2012/11/13/proficiency-with-terminal-and-git/" rel="alternate"/><published>2012-11-13T10:00:00-08:00</published><updated>2012-11-13T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-11-13:/2012/11/13/proficiency-with-terminal-and-git/</id><summary type="html">&lt;h2 id="terminal"&gt;Terminal&lt;/h2&gt;
&lt;p&gt;I've recently picked up an amazing Terminal shortcut: &lt;code&gt;Ctrl + R&lt;/code&gt;. Gone are the days of hitting up arrow a bunch of times to get to a previous command. This little shortcut will let you search through your recent commands. Just start typing what you want and it &lt;em&gt;pop&lt;/em&gt; it …&lt;/p&gt;</summary><content type="html">&lt;h2 id="terminal"&gt;Terminal&lt;/h2&gt;
&lt;p&gt;I've recently picked up an amazing Terminal shortcut: &lt;code&gt;Ctrl + R&lt;/code&gt;. Gone are the days of hitting up arrow a bunch of times to get to a previous command. This little shortcut will let you search through your recent commands. Just start typing what you want and it &lt;em&gt;pop&lt;/em&gt; it shows up.&lt;/p&gt;
&lt;h2 id="random-git-commands"&gt;Random Git commands&lt;/h2&gt;
&lt;p&gt;I recently watched Zach Holman's &lt;a href="http://confreaks.com/videos/1229-aloharuby2012-git-and-github-secrets"&gt;Git and GitHub Secrets&lt;/a&gt; and it had a bunch of great nuggets. It helps to be able to go back through his &lt;a href="https://speakerdeck.com/holman/git-and-github-secrets"&gt;slides&lt;/a&gt;. Here are some of my favorites.&lt;/p&gt;
&lt;h3 id="github"&gt;Github&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Add &lt;code&gt;?w=1&lt;/code&gt; to any url to ignore whitespace&lt;/p&gt;
&lt;p&gt;Gists are repos&lt;/p&gt;
&lt;p&gt;&lt;code&gt;?&lt;/code&gt; in github to see all shortcuts&lt;/p&gt;
&lt;p&gt;Search commits by author: &lt;code&gt;?author=holman&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="git"&gt;Git&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Commitless Commits: &lt;code&gt;git commit -m "..." --allow-empty&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Staging parts: &lt;code&gt;git add -p&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Search commits: &lt;code&gt;git show :/query&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Go back to previous selection: &lt;code&gt;cd -&lt;/code&gt;, &lt;code&gt;git checkout -&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;See which branches have been merged into current: &lt;code&gt;git branch --merged&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;See which branches have not been merged: &lt;code&gt;git branch --no-merged&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;See which branches contain a commit: &lt;code&gt;git branch --contains 838ad46&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Copy file without switching: &lt;code&gt;git checkout branch -- path/to/file.rb&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git commit --amend -C HEAD&lt;/code&gt; - alias this!&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git reset --soft HEAD^&lt;/code&gt; undoes the last commit and puts it on staging&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are a &lt;em&gt;bunch&lt;/em&gt; more, so watch the video.&lt;/p&gt;
&lt;p&gt;source &lt;a href="http://confreaks.com/videos/1229-aloharuby2012-git-and-github-secrets"&gt;Git and Github Secrets&lt;/a&gt;&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>SMACSS</title><link href="https://ryanjm.com/2012/11/07/smacss/" rel="alternate"/><published>2012-11-07T10:00:00-08:00</published><updated>2012-11-07T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-11-07:/2012/11/07/smacss/</id><summary type="html">&lt;p&gt;I've been working on redoing the &lt;a href="http://orangeqc.com/"&gt;OrangeQC&lt;/a&gt; website the past couple weeks and it was good to put into practice some of the stuff I was learning at the end of my time at Nelson Cash. In my quest for css best practices I came across &lt;a href="http://oocss.org/"&gt;OOCSS&lt;/a&gt; and &lt;a href="http://smacss.com/"&gt;SMACSS&lt;/a&gt;. Both …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I've been working on redoing the &lt;a href="http://orangeqc.com/"&gt;OrangeQC&lt;/a&gt; website the past couple weeks and it was good to put into practice some of the stuff I was learning at the end of my time at Nelson Cash. In my quest for css best practices I came across &lt;a href="http://oocss.org/"&gt;OOCSS&lt;/a&gt; and &lt;a href="http://smacss.com/"&gt;SMACSS&lt;/a&gt;. Both help set a tone for what you should be trying to accomplish with CSS: reusable code. OOCSS feels more like theory to me, where as Smacss provides some applicatable ideas, such as a file structure:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/css
|- base.css
|- layout.css
|- module.css
|- state.css
|- theme.css
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;Base&lt;/code&gt; is for how your elements should look by themselves, no additional classes. &lt;code&gt;Layout&lt;/code&gt; is for laying out larger elements on the page. &lt;code&gt;Module&lt;/code&gt; is for smaller elements that will be reused on multiple pages. &lt;code&gt;State&lt;/code&gt; is for handling the various states those modules can be in. &lt;code&gt;Theme&lt;/code&gt; is for modifying the look if you need a different style.&lt;/p&gt;
&lt;p&gt;Using SASS's partials I've included all of these files into one which has worked well. I haven't found much of a need for state, OrangeQC page is pretty static, so I've taken it out. I've also added a mixins class so I can put my sass mixins in one spot. I've also been using &lt;a href="https://github.com/thoughtbot/bourbon"&gt;Bourbon&lt;/a&gt; for some standard mixins which works out great.&lt;/p&gt;
&lt;p&gt;As with everything it takes practice knowing how to layout modules and when/where/how to refactor. I really just need more practice with it. I was able to redo the layout of this site with Smaccs within a couple hours.&lt;/p&gt;
&lt;p&gt;There is some debate of if you should add additional classes to your html in order to style elements or if you should use sass to mixin your various styles for targetted elements. I'm still figuring out pros/cons, but for my projects I have full control over the html so I'd rather add a couple extra classes where needed and reduce the size of my css.&lt;/p&gt;
&lt;p&gt;If you are getting tired of targeting every element on the page and doing custom styling for everything, check out SMACSS and OOCSS, they'll speed up coding and make life easier. Things that would have taking me a day or two to do my old way is only taking me a couple hours now.&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>Article Roundup</title><link href="https://ryanjm.com/2012/06/06/article-roundup/" rel="alternate"/><published>2012-06-06T10:00:00-07:00</published><updated>2012-06-06T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-06-06:/2012/06/06/article-roundup/</id><summary type="html">&lt;p&gt;Here are some of the great articles I've come across this week.&lt;/p&gt;
&lt;h4 id="you-should-probably-send-more-email-than-you-do"&gt;&lt;a href="http://www.kalzumeus.com/2012/05/31/can-i-get-your-email/"&gt;You Should Probably Send More Email Than You Do&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Patrick McKenzie explores the value of reaching users through their inboxes. Though lengthy, the piece contains sufficient insights to justify the investment of time.&lt;/p&gt;
&lt;h4 id="what-i-learned-from-increasing-my-prices"&gt;&lt;a href="http://www.extendslogic.com/business/what-i-learned-from-increasing-my-prices/"&gt;What I Learned From Increasing …&lt;/a&gt;&lt;/h4&gt;</summary><content type="html">&lt;p&gt;Here are some of the great articles I've come across this week.&lt;/p&gt;
&lt;h4 id="you-should-probably-send-more-email-than-you-do"&gt;&lt;a href="http://www.kalzumeus.com/2012/05/31/can-i-get-your-email/"&gt;You Should Probably Send More Email Than You Do&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Patrick McKenzie explores the value of reaching users through their inboxes. Though lengthy, the piece contains sufficient insights to justify the investment of time.&lt;/p&gt;
&lt;h4 id="what-i-learned-from-increasing-my-prices"&gt;&lt;a href="http://www.extendslogic.com/business/what-i-learned-from-increasing-my-prices/"&gt;What I Learned From Increasing My Prices&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Ruben Gamez discusses leveraging customer feedback and direct conversations to determine pricing structures and tier differentiation strategies.&lt;/p&gt;
&lt;h4 id="ui-vs-ux-whats-the-difference"&gt;&lt;a href="http://www.webdesignerdepot.com/2012/06/ui-vs-ux-whats-the-difference/"&gt;UI vs UX: what's the difference?&lt;/a&gt;&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;"UI is the saddle, the stirrups, and the reigns. UX is the feeling you get being able to ride the horse, and rope your cattle."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dain Miller clarifies the distinction between these often-conflated disciplines, providing thoughtful definitions and valuable perspective for growing organizations.&lt;/p&gt;</content><category term="Reflections"/></entry><entry><title>Software made by hand</title><link href="https://ryanjm.com/2012/05/07/software-made-by-hand/" rel="alternate"/><published>2012-05-07T12:00:00-07:00</published><updated>2012-05-07T12:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-05-07:/2012/05/07/software-made-by-hand/</id><summary type="html">&lt;p&gt;Scott Porad writes about why software is hard:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"First, name one other thing in the world, he said, that is used by so many people and which is created entirely by hand? Stuff that is made by hand is hard to make, and even more hard to make well, and …&lt;/p&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;Scott Porad writes about why software is hard:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"First, name one other thing in the world, he said, that is used by so many people and which is created entirely by hand? Stuff that is made by hand is hard to make, and even more hard to make well, and tends to be less sturdy than things made by machines."&lt;/p&gt;
&lt;/blockquote&gt;</content><category term="Dev"/></entry><entry><title>Open for Business</title><link href="https://ryanjm.com/2012/05/07/open-for-business/" rel="alternate"/><published>2012-05-07T10:00:00-07:00</published><updated>2012-05-07T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-05-07:/2012/05/07/open-for-business/</id><summary type="html">&lt;p&gt;Last week was the end of my position at Nelson Cash. After working with the team there for a year, I was able to see them grow from 4 people meeting up in coffee shops, to 10 people moving into a new studio with custom desks. It was a privilege …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Last week was the end of my position at Nelson Cash. After working with the team there for a year, I was able to see them grow from 4 people meeting up in coffee shops, to 10 people moving into a new studio with custom desks. It was a privilege working with some of the best designers in the city.&lt;/p&gt;
&lt;p&gt;I received great experience working with project managers, designers, and clients in how to (and not to) run projects. Consulting is a continual learning process and Nelson Cash provided me with the best education I could ask for.&lt;/p&gt;
&lt;p&gt;For now I'm still in Chicago. I'm looking forward to networking with startups and consulting for them on iOS and Ruby on Rails projects. Chicago might not be the first city you think of when considering startups, but there is a great community here and I'm excited at the opportunities to help where I can.&lt;/p&gt;</content><category term="Reflections"/></entry><entry><title>Listing Attributes</title><link href="https://ryanjm.com/2012/04/14/listing-attributes/" rel="alternate"/><published>2012-04-14T10:00:00-07:00</published><updated>2012-04-14T10:00:00-07:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-04-14:/2012/04/14/listing-attributes/</id><summary type="html">&lt;p&gt;This past week I was working on a Ruby on Rails project where I needed to list out a lot of attributes of an object. The difficult part came in the fact that I didn't want to display the attribute if it wasn't set or was &lt;code&gt;0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Originally I had …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This past week I was working on a Ruby on Rails project where I needed to list out a lot of attributes of an object. The difficult part came in the fact that I didn't want to display the attribute if it wasn't set or was &lt;code&gt;0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Originally I had:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="x"&gt;&amp;lt;%% if @object.my_attribute &amp;amp;&amp;amp; !@object.my_attribute.blank? &lt;/span&gt;&lt;span class="err"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;  &amp;lt;li&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;    &amp;lt;strong&amp;gt;Attribute Label&amp;lt;/strong&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;    &amp;lt;span&amp;gt;&amp;lt;%%= @object.my_attribute &lt;/span&gt;&lt;span class="err"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="x"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;  &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;&amp;lt;%% end &lt;/span&gt;&lt;span class="err"&gt;%&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;When you start talking about 25 or 30 attributes you are printing out, some of which are nested, this gets to be a really ugly view.&lt;/p&gt;
&lt;p&gt;The next step was to move this to a helper method.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="x"&gt;&amp;lt;%%= print_attribute(&amp;quot;Attribute Label&amp;quot;,@object.my_attribute) &lt;/span&gt;&lt;span class="err"&gt;%&amp;gt;&lt;/span&gt;

&lt;span class="x"&gt;:::ruby&lt;/span&gt;
&lt;span class="x"&gt;# view helper&lt;/span&gt;
&lt;span class="x"&gt;def print_attribute(text,attribute)&lt;/span&gt;
&lt;span class="x"&gt;  name = content_tag :strong, text&lt;/span&gt;
&lt;span class="x"&gt;  prop = content_tag :span, attribute&lt;/span&gt;
&lt;span class="x"&gt;  content_tag :li, name + prop&lt;/span&gt;
&lt;span class="x"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;This is better, but gets messy when I needed to change the formatting on some attributes and other attributes needed to be printed in a different format (percentages, dollar values, etc).&lt;/p&gt;
&lt;p&gt;I wanted the solution to be as easy as defining hash of attributes and titles. That way I could just grab my attributes:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# view helper&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;all_attributes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;object&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;my_attribute&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Attribute Label&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;nested_object.another_attribute_string&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Another Attribute&amp;#39;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;In order to define the additional information I created some &lt;code&gt;*_string&lt;/code&gt; methods which would return the right format or nil (which would get ignored later). For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;another_attribute_string&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kp"&gt;nil&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;another_attribute&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;blank?&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;another_attribute&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; ft.&amp;quot;&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;I wanted to be able to control the way they got printed in the view since it changed depending on which view I was in. My goal was to be able to write the following.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="x"&gt;&amp;lt;%% a = all_attributes_for(@listing) &lt;/span&gt;&lt;span class="err"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;&amp;lt;%% attributes_for_view(@listing,a).each do |key,value| &lt;/span&gt;&lt;span class="err"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;  &amp;lt;li&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;    &amp;lt;%%= content_tag :span, key &lt;/span&gt;&lt;span class="err"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;    &amp;lt;%%= content_tag :strong, value &lt;/span&gt;&lt;span class="err"&gt;%&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;  &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="x"&gt;&amp;lt;%% end &lt;/span&gt;&lt;span class="err"&gt;%&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Thus the method needed to return a hash which had the correct label (key) and value (value).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;attributes_for_view&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_a&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inject&lt;/span&gt;&lt;span class="p"&gt;({})&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;do&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;attribute_pair&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;attribute_pair&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;].&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;do&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;attribute&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;attribute&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;unless&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nil?&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_a?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;blank?&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;attribute_pair&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;elsif&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_a?&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;attribute_pair&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;number_to_currency&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A couple injects later I have a clean function that does exactly what I wanted.&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>jQuery Development</title><link href="https://ryanjm.com/2012/03/07/jquery-development/" rel="alternate"/><published>2012-03-07T10:00:00-08:00</published><updated>2012-03-07T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-03-07:/2012/03/07/jquery-development/</id><summary type="html">&lt;p&gt;My mindset on how to use and develop in jQuery has just changed dramatically. I watched Yehuda Katz's video on &lt;a href="http://jquery14.com/day-11"&gt;Evented Programming&lt;/a&gt;. Basically the idea he presents boils down to asking:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If this was natively supported, what would it look like?&lt;/li&gt;
&lt;li&gt;Then writing the code to get the functionality you …&lt;/li&gt;&lt;/ol&gt;</summary><content type="html">&lt;p&gt;My mindset on how to use and develop in jQuery has just changed dramatically. I watched Yehuda Katz's video on &lt;a href="http://jquery14.com/day-11"&gt;Evented Programming&lt;/a&gt;. Basically the idea he presents boils down to asking:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If this was natively supported, what would it look like?&lt;/li&gt;
&lt;li&gt;Then writing the code to get the functionality you want, based on that.&lt;/li&gt;
&lt;li&gt;Then write the code to implement the "browser code"&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Amazing. This creates very reusable code and simplifies the code you do write.&lt;/p&gt;
&lt;p&gt;I came across this video from Dan Webb's article on &lt;a href="http://danwebb.net/2010/1/27/put-that-data-attribute-away-son-you-might-hurt-someone"&gt;data-* attributes&lt;/a&gt;. It is also a great article and helps remember that we should try to keep the html as semantic as possible.&lt;/p&gt;
&lt;p&gt;Great resources to checkout.&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>Frameworks</title><link href="https://ryanjm.com/2012/01/25/frameworks/" rel="alternate"/><published>2012-01-25T12:00:00-08:00</published><updated>2012-01-25T12:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-01-25:/2012/01/25/frameworks/</id><summary type="html">&lt;p&gt;I don't have much to add to this discussion right now, but I just wanting to point out that the next two years is going to be pretty exciting for the web development community. I think some great frameworks and design patterns will be built around CSS, JS, and API's …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I don't have much to add to this discussion right now, but I just wanting to point out that the next two years is going to be pretty exciting for the web development community. I think some great frameworks and design patterns will be built around CSS, JS, and API's. We already have some great frameworks for the server side, so extending that to client side will fill out the stack.&lt;/p&gt;
&lt;p&gt;I think this will be a huge undercurrent in the ability for more applications to be moved to the web.&lt;/p&gt;</content><category term="Dev"/></entry><entry><title>Technology in Classrooms</title><link href="https://ryanjm.com/2012/01/25/technology-in-classrooms/" rel="alternate"/><published>2012-01-25T10:00:00-08:00</published><updated>2012-01-25T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-01-25:/2012/01/25/technology-in-classrooms/</id><summary type="html">&lt;p&gt;Cringely raises an important point regarding student motivation and its effect on learning. He quotes a reader:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"...I'm finding that the real key to student success is not so much how you teach but how you go about motivating students to want to learn..."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This consideration carries significant weight in …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Cringely raises an important point regarding student motivation and its effect on learning. He quotes a reader:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"...I'm finding that the real key to student success is not so much how you teach but how you go about motivating students to want to learn..."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This consideration carries significant weight in universities where many faculty prioritize research over teaching.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;But not every school can be a Stanford and even there, as at many research universities, much of the faculty doesn't really want to teach.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This serves as a valuable reminder to prioritize cultivating one's own motivation to learn alongside dedicating time to the learning process itself.&lt;/p&gt;
&lt;p&gt;via &lt;a href="http://www.cringely.com/2012/01/hello-mr-chips/"&gt;I, Cringely&lt;/a&gt;&lt;/p&gt;</content><category term="Reflections"/></entry><entry><title>Producing Good Work</title><link href="https://ryanjm.com/2012/01/24/producing-good-work/" rel="alternate"/><published>2012-01-24T10:00:00-08:00</published><updated>2012-01-24T10:00:00-08:00</updated><author><name>Ryan Mathews</name></author><id>tag:ryanjm.com,2012-01-24:/2012/01/24/producing-good-work/</id><summary type="html">&lt;p&gt;From an article about David Oglivy and his habits as a copywriter.&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;I spend a long time studying the precedents. I look at every advertisement which has appeared for competing products during the past 20 years.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;In development I know it is important to plan, but this puts a whole …&lt;/p&gt;</summary><content type="html">&lt;p&gt;From an article about David Oglivy and his habits as a copywriter.&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;I spend a long time studying the precedents. I look at every advertisement which has appeared for competing products during the past 20 years.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;In development I know it is important to plan, but this puts a whole new view on it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Before actually writing the copy, I write down ever concievable fact and selling idea. Then I get them organized and relate them to research and the copy platform.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I am a lousy copywriter, but I am a good editor. So I go to work editing my own draft. After four or five editings, it looks good enough to show to the client. If the client changes the copy, I get angry-because I took a lot of trouble writing it, and what I wrote I wrote on purpose.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://www.lettersofnote.com/2012/01/i-am-lousy-copywriter.html"&gt;source: I am a lousy copywriter&lt;/a&gt;
&lt;a href="https://twitter.com/dhh/status/161868253541576705"&gt;via DHH&lt;/a&gt;&lt;/p&gt;</content><category term="Reflections"/></entry></feed>