
    
    
    
        
                
    
    
        
                
    
    
        
            
    
    
        
            
    
    
        
            
    
    
    
                
    
    
        
                
    
    
        
                
    
    
        
                
    
    
        
            
{"version":"https:\/\/jsonfeed.org\/version\/1","title":"My Feed Title","home_page_url":"https:\/\/matthewminer.name\/blog\/","feed_url":"https:\/\/matthewminer.name\/blog\/blog\/.json","description":"My Blog","author":{"name":"Matthew Miner"},"items":[{"title":"What Is the Second Drive for on My Automatic Gear Shifter?","date_published":"2025-08-25T15:15:00+00:00","id":"https:\/\/matthewminer.name\/blog\/what-is-the-second-drive-for-on-my-automatic-gear-shifter","url":"https:\/\/matthewminer.name\/blog\/what-is-the-second-drive-for-on-my-automatic-gear-shifter","content_html":"<p>On many cars you may notice that the gear shifter has two <em>D<\/em>s. You know what park, reverse, &amp; neutral are. You hopefully also know that the numbers are for explicit downshifting, but why does drive appear twice? <\/p>\n<p>The first <em>D<\/em> with a white background is really meant to be a <em>D<\/em> inside of an <em>O<\/em> for \"overdrive.\" This enables all of the gears in your transmission and allows you to go into the highest gear, which is sometimes called \"overdrive,\" to optimize your MPG on the highway. The lower, plain <em>D<\/em> essentially is downshifting as well, as it prevents your transmission from shifting into the highest, overdrive gear. <\/p>\n<h2>When Should I Use Which?<\/h2>\n<p>For those who aren't gear heads, you may not intuitively grasp the benefits of each.<\/p>\n<p>If you are at highway speeds (like over 45 mph) for a significant period of time, you definitely want to use overdrive, as this will greatly improve your mileage. Every higher gear it can shift into allows it to spin its wheels more times for fewer engine rotations, allowing more fuel to be used actually moving you forward versus just spinning the engine with torque you don't need. Overdrive is so named because its the only gear that spins the wheel more than once per time the engine spins, so it increases their <abbr title=\"Rotations Per Minute\">RPM<\/abbr> over the engine's.<\/p>\n<p>You only ever really want to use the non-overdrive drive when your vehicle is struggling. If you are pulling a trailer or going up steep hills at high speeds, your engine may try to shift into overdrive, realize it cannot power that, shift back, and then try again. Modern cars do their best to avoid such miscalculations, but if you are going up and down hills it can become able to upshift and then not be able to handle it back and forth frequently. It is something you literally have to play by ear and listen whether your vehicle is shifting back and forth often. If you notice such, you may wish to use the plain <em>D<\/em> to maximize your transmission's lifespan by avoiding unnecessary high-speed shifts. The benefit in fuel savings gained by briefly shifting into overdrive in such situations is likely to be outweighed by the added wear on your transmission, causing an early very expensive repair.<\/p>\n<p>If you don't want to think about it and just want to stick with one, always use the overdrive mode, the first <em>D<\/em> with a white background. While you may get some avoidable wear on your tranny, it is designed to be used and the gas savings will far make up for it. Especially if you avoid towing too-heavy loads with vehicles not designed for it, you shouldn't have to worry about using anything but the first, overdrive option.<\/p>","tags":["automobiles"],"image":"\/blog\/user\/pages\/01.blog\/what-is-the-second-drive-for-on-my-automatic-gear-shifter\/PXL_20250822_170848584.jpg"},{"title":"Cookie Confusion","date_published":"2025-06-03T11:09:00+00:00","id":"https:\/\/matthewminer.name\/blog\/cookie-confusion","url":"https:\/\/matthewminer.name\/blog\/cookie-confusion","content_html":"<p>The recent news that Mondel\u0113z International\u2014parent company of Nabisco and producer of Oreos, Chips Ahoy, Nutter Butter, and many other snack goods\u2014<a href=\"https:\/\/abcnews.go.com\/Business\/wireStory\/oreo-maker-mondelez-sues-aldi-alleging-grocery-chain-122343636\">is suing Aldi<\/a>, popular budget-friendly grocery store. This is not for just copying cookies. There's nothing illegal about producing such similar products, or else Nabisco would itself be in trouble for cloning Hydrox. Instead, it is for allegedly infringing Nabisco's products' trade dress.<\/p>\n<p>Trade dress is a sister concept to trade mark which, instead of protecting a name or other mark, protects distinctive packaging. Like trademark, the test for trade dress infringement is <a href=\"https:\/\/matthewminer.name\/law\/outlines\/2L\/Summer+Term\/LAW+783-001+\u2013+Trademark+Law+and+Practice\/Likelihood+of+Confusion\">likelihood of confusion<\/a>. If you saw store brand \"cr\u00e8me-filled chocolate sandwich cookies\" on the shelves, is it likely that you would think them to be genuine Oreos?<\/p>\n<p>Ultimately, this is a question for a jury, but I thought it would be interesting to present the following table of such packagings, along with other major store brands' so you can compare for yourself.<\/p>\n<style>\n    table.cookies td {\n        width: 16%;\n        padding: 0;\n    }\n<\/style>\n<table class=\"cookies\">\n    <thead>\n        <tr>\n            <th>Mondel\u0113z<\/th>\n            <th>Aldi<\/th>\n            <th>Walmart<\/th>\n            <th>Kroger<\/th>\n            <th>Amazon<\/th>\n            <th>Dollar General<\/th>\n        <\/tr>\n    <\/thead>\n    <tbody>\n        <tr>\n            <td><a href=\"https:\/\/amzn.to\/45CFY76\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_sandwich_nabisco.webp\" alt=\"Nabisco Oreo Chocolate Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/shop.aldi.us\/store\/aldi\/products\/20733565-benton-s-original-chocolate-cremes-sandwich-14-3-oz\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_sandwich_aldi.webp\" alt=\"Aldi Chocolate Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.walmart.com\/ip\/Great-Value-Twist-Shout-Chocolate-Flavor-Sandwich-Cookies-14-3-oz\/22027005\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_sandwich_walmart.webp\" alt=\"Walmart Chocolate Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.kroger.com\/p\/kroger-kaleidos-original-chocolate-sandwich-cookies\/0001111009508\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_sandwich_kroger.webp\" alt=\"Kroger Chocolate Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/amzn.to\/4dIRKii\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_sandwich_whole_foods.webp\" alt=\"Whole Foods Chocolate Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.dollargeneral.com\/p\/clover-valley-chocolate-sandwich-cr-me-cookies-oz\/21600106589\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_sandwich_dollar_general.webp\" alt=\"Dollar General Chocolate Sandwich Cookies\"><\/a><\/td>\n        <\/tr>\n        <tr>\n            <td><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/wheat_thins.webp\" alt=\"Nabisco Wheat Thins\"><\/td>\n            <td><a href=\"https:\/\/shop.aldi.us\/store\/aldi\/products\/20865549-savoritz-original-thin-wheat-crackers-9-1-oz\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/thin_wheat_aldi.webp\" alt=\"Aldi Thin Wheat Crackers\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.walmart.com\/ip\/Great-Value-Thin-Wheat-Baked-Snack-Crackers-9-1-oz\/49943203\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/thin_wheat_walmart.webp\" alt=\"Walmart Thin Wheat Crackers\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.kroger.com\/p\/kroger-baked-wheat-crisp-crackers\/0001111010272\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/thin_wheat_kroger.webp\" alt=\"Kroger Thin Wheat Crackers\"><\/a><\/td>\n            <td><a href=\"https:\/\/amzn.to\/3FGGCWH\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/thin_wheat_whole_foods.webp\" alt=\"Whole Foods Thin Wheat Crackers\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.dollargeneral.com\/p\/clover-valley-thin-wheats-7-oz\/21600105902\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/thin_wheat_dollar_general.webp\" alt=\"Dollar General Thin Wheat Crackers\"><\/a><\/td>\n        <\/tr>\n        <tr>\n            <td><a href=\"https:\/\/www.walmart.com\/ip\/Nutter-Butter-Family-Size-Peanut-Butter-Sandwich-Cookies-16-oz\/10292092\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/peanut_butter_sandwich_nabisco.webp\" alt=\"Nabisco Nutter Butter Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/shop.aldi.us\/store\/aldi\/products\/35295621-benton-s-peanut-butter-sandwich-cremes-16-oz\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/peanut_butter_sandwich_aldi.webp\" alt=\"Aldi Peanut Butter Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.walmart.com\/ip\/Great-Value-Peanut-Butter-Sandwich-Cookies-16-oz-Shelf-Stable-Ambient-Whole-36-Count\/52796299\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/peanut_butter_sandwich_walmart.webp\" alt=\"Walmart Peanut Butter Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.kroger.com\/p\/kroger-really-nutty-peanut-butter-sandwich-cookies\/0001111007778\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/peanut_butter_sandwich_kroger.webp\" alt=\"Kroger Peanut Butter Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/amzn.to\/4kQOUKI\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/peanut_butter_sandwich_amazon.jpg\" alt=\"Amazon Peanut Butter Sandwich Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.dollargeneral.com\/p\/clover-valley-peanut-butter-sandwich-cookies-oz\/86106013113\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/peanut_butter_sandwich_dollar_general.jpg\" alt=\"Dollar General Peanut Butter Sandwich Cookies\"><\/a><\/td>\n        <\/tr>\n        <tr>\n            <td><a href=\"https:\/\/www.walmart.com\/ip\/CHIPS-AHOY-Original-Chocolate-Chip-Cookies-Family-Size-18-2-oz\/23658443\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_chip_nabisco.webp\" alt=\"Nabisco Chips Ahoy Chocolate Chip Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/shop.aldi.us\/store\/aldi\/products\/20693105-benton-s-chocolate-chip-cookie-13-oz\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_chip_aldi.webp\" alt=\"Aldi Chocolate Chip Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.walmart.com\/ip\/Great-Value-Classic-Chocolate-Chip-Cookies-18-2-oz\/46083057\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_chip_walmart.webp\" alt=\"Walmart Chocolate Chip Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.kroger.com\/p\/kroger-chipmates-original-chocolate-chip-cookies\/0001111001587\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_chip_kroger.webp\" alt=\"Kroger Chocolate Chip Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/amzn.to\/3Sz3kTy\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_chip_amazon.webp\" alt=\"Amazon Chocolate Chip Cookies\"><\/a><\/td>\n            <td><a href=\"https:\/\/www.dollargeneral.com\/p\/clover-valley-original-chocolate-chip-cookies-10-5-oz\/86106052501\"><img src=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_chip_dollar_general.jpg\" alt=\"Dollar General Chocolate Chip Cookies\"><\/a><\/td>\n        <\/tr>\n    <\/tbody>\n<\/table>\n<p>Bonus: <a href=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_sandwich_hydrox.jpg\">Hydrox's packaging<\/a><\/p>","tags":["products","law"],"image":"\/blog\/user\/pages\/01.blog\/cookie-confusion\/chocolate_sandwich_aldi.webp"},{"title":"The Ohtani 50\/50 Ball is Unlikely to Be Split 50\/50","date_published":"2024-10-25T15:29:00+00:00","id":"https:\/\/matthewminer.name\/blog\/the-ohtani-50-50-ball-is-unlikely-to-be-split-50-50","url":"https:\/\/matthewminer.name\/blog\/the-ohtani-50-50-ball-is-unlikely-to-be-split-50-50","content_html":"<p>Last month, Los Angeles Dodgers star Shohei Ohtani hit his 50th season home run, becoming the first player to hit 50 home runs and steal 50 bases in a single season. The ball flew into the stands, a ruckus emerged trying to grab it, and Chris Belanski emerged holding the legendary ball. It has since <a href=\"https:\/\/www.espn.com\/mlb\/story\/_\/id\/41954437\/dodgers-star-shohei-ohtani-50-50-ball-fetches-439-million-auction\">sold at auction for an eye-watering $4.39 million<\/a>, but Belanski can't retire peacefully yet.<\/p>\n<p>Since the catch, there have been two lawsuits quickly filed by nearby persons claiming they caught the ball first and that $4.4 million really belongs to them. The first was case number 2024-018488-CA-01 by Max Matus, a fellow fan celebrating his 18th birthday at the game. <a href=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/the-ohtani-50-50-ball-is-unlikely-to-be-split-50-50\/2024-018488-CA-01-DIN02.PDF\">His complaint<\/a> says he really picked the ball up first but Mr. Belanski grabbed his arm and pried the ball away. The Plaintiff cites <a href=\"https:\/\/x.com\/cllctMedia\/status\/1837078442308784245\">a bystander's video<\/a> which shows a struggle, but sadly not the actual grabbing of the ball. Did Mr. Belanski wrap himself around this poor teen's hand and steal the ball or did he actually grab the ball first and just defend it from Max's attempt to steal it from him?<\/p>\n<p>The second lawsuit, filed two days later as case number 2024-018734-CA-01, is by a Joseph Davidov. <a href=\"https:\/\/matthewminer.name\/blog\/user\/pages\/01.blog\/the-ohtani-50-50-ball-is-unlikely-to-be-split-50-50\/2024-018734-CA-01-DIN02.PDF\">His complaint<\/a> recount a similar tale of misfortune: <em>he<\/em> really grabbed the ball first before a stranger knocked it out of his hand, it rolled away, and Belanski picked it up. He cites another video which doesn't seem to be public, but it doesn't seem obvious to me to show any grabbing still.<\/p>\n<p>These cases naturally draw parallels to the most famous home run ball dispute&mdash;<a href=\"https:\/\/matthewminer.name\/law\/briefs\/1L\/1st+Semester\/LAW+515-001+%E2%80%93+Property+I\/Popov+v.+Hayashi\"><em>Popov v. Hayashi<\/em><\/a>. There, Barry Bonds hit his 73rd home run, Popov stopped it with his glove but got swarmed before he could grasp it, and Hayashi innocently picked it up off of the ground. The law usually is that the first person to possess unowned property becomes its owner, regardless of what happens after. Once you own the ball, someone knocking it out of your hand doesn't make it fair game again, just like your phone wouldn't be finders-keepers if someone knocked it to the ground. The twist in <em>Popov<\/em> was that Mr. Popov stopped the ball and presumably would have completed the catch if no one tackled him. The San Fransisco Superior Court therefore saw fit to honor this pre-possessory interest and force the proceeds to split between the parties.<\/p>\n<p>Many may be wondering if that could happen here. If there's an argument, just split the proceeds to settle it, and everyone walks away a happy millionaire right? However, this appears legally baseless based on the different facts. No one is claiming to have a pre-possessory interest&mdash;to have done significant but incomplete steps to obtain possession of it. They're saying they grabbed it <em>first<\/em>. If the judge\/jury find they're lying about that or that someone else grabbed it first, its hard to imagine where any rights to the ball could come from. And if,...<\/p>","tags":["law"]},{"title":"What I Wish I Knew about IRIS","date_published":"2024-03-22T09:54:00+00:00","id":"https:\/\/matthewminer.name\/blog\/what-i-wish-i-knew-about-iris","url":"https:\/\/matthewminer.name\/blog\/what-i-wish-i-knew-about-iris","content_html":"<p>This year, <a href=\"https:\/\/www.irs.gov\/newsroom\/irs-and-treasury-issue-final-regulations-on-e-file-for-businesses\">the IRS has mandated e-filing 1099s if you have 10 or more.<\/a> The natural way to do this is with the IRS's new <a href=\"https:\/\/www.irs.gov\/filing\/e-file-forms-1099-with-iris\">IRIS system<\/a>, which has a built-in web interface to file them. Doing this is very straightforward at times and complete guess-work at others.<\/p>\n<p>The first step is to get authorized to use IRIS. To do this, you <a href=\"https:\/\/www.irs.gov\/tax-professionals\/iris-application-for-tcc\">apply at the TCC portal.<\/a> You'll have to sign in with your ID.me account, meaning creating an account if you don't already have one. This can be a bit of a challenge for some situations, but is pretty straightforward and you can call them easily for help. Then you select individual or create an organization, and fill out the form. This is easy enough, but note that most organizations will need two people to sign the application so another person will have to also make an ID.me account and sign. To sign, you'll enter your PIN. I had no idea what my PIN was and got initially concerned, but it's not actually a security feature or anything. All you have to do is go back to the main screen after selecting your organization and click \"Modify PIN\" in the navigation bar and you can just make a new one without any work.<\/p>\n<p>One more thing to note is to be very sure before submitting the application. If you make a mistake (potentially with the other person who needs to sign), there's no way to correct it on your own after signing. You'll have to call the IRS, wait on hold forever, and get someone to get their manager to manually unsubmit it.<\/p>\n<p>After you apply for a TCC, there's a wait. It me about a week and half to get accepted. You'll get a physical letter in the mail with your TCC(s), which are five-uppercase-letter codes. You should probably save this letter, but practically I haven't found a need for it or even knowledge of my TCC. Instead you'll just log in to the <a href=\"https:\/\/la.www4.irs.gov\/irportal\/\">Information Return Portal<\/a> with your ID.me account, and it will just have your TCC linked to your account already. Then you can start a new 1099 of any type right there. Also, a tip is that if you are doing a few, click \"Issuer Management\" at the bottom and put your issuer's information in to save it as a preset option. Otherwise, you'll have to enter it every single time. It's then pretty simple to manually enter 1099s.<\/p>\n<p>One thing to note is that if you are issuing multiple 1099s to the same entity, you are apparently required to put an account number on each of those to delineate them. It will give you an error afterwards if you don't.<\/p>\n<p>If you have a list of 1099s to issue, that is where things get complicated. There is an option to \"Upload CSV with Form Data\" and you can then download templates, but they only consist of a header row and there is little...<\/p>","tags":["taxes"]},{"title":"PHP Arrays&#039; Primitive Reference Conversions","date_published":"2023-12-22T16:45:00+00:00","id":"https:\/\/matthewminer.name\/blog\/php-arrays-primitive-conversions","url":"https:\/\/matthewminer.name\/blog\/php-arrays-primitive-conversions","content_html":"<p>Last year, my brother discovered a seemingly unexplainable quirk\/bug with PHP. He was manipulating an array with references to some items, then making a copy of the array and manipulating that afterwards. Bafflingly, this was somehow modifying the original array too. He certainly knows what he's doing, and there weren't any rookie mistakes like shallow copying of objects going on. He was just working with primitive types like ints. A simple example of what was happening can be <a href=\"https:\/\/onlinephp.io\/?s=s7EvyCjg5eLlUkksKlKwVQCSiZUaSolKmta8XMoqiUAhNZBUtEGsNUSREVAIRMO4QBmgiFKSElCgoCgzryS-SAMkoWkNAA%2C%2C&amp;v=8.1.6\">run online here<\/a>, or you can see it below:<\/p>\n<pre><code class=\"language-php\">$arr = array(\"a\");\n$a = &amp;$arr[0];\n$arr2 = $arr;\n$arr2[0] = \"b\";\nprint_r($arr);<\/code><\/pre>\n<p>This simple code prints:<\/p>\n<pre><code>Array\n(\n    [0] =&gt; b\n)<\/code><\/pre>\n<p>If you don't have the reference in there, it remains \"a\". Somehow the mere act of assigning a reference to an int in an array changes the behavior of any future copies thereof. How can that possibly make any sense?<\/p>\n<p>It took a while to figure out, but <code>vardump()<\/code> is a very handy function for these situations. If we <a href=\"https:\/\/onlinephp.io\/?s=s7EvyCjg5eLlUkksKlKwVYhWSlZSsLVTUEpUirXm5SpLLIpPKc0t0ABJa1qDlAEVqYF4IJVYlAAA&amp;v=8.1.6\">dump the array<\/a> before and after assigning the reference, we can see what's going on:<\/p>\n<pre><code>array(1) {\n  [\"c\"]=&gt;\n  string(1) \"a\"\n}\narray(1) {\n  [\"c\"]=&gt;\n  &amp;string(1) \"a\"\n}<\/code><\/pre>\n<p>Since PHP arrays can be either lists or dictionaries, its engine does not have a way to just reference the address of an item therein. Instead when you create a reference to a primitive in an array, PHP converts the primitive to a reference to that primitive. Then both the array and the other variable can have a pointer to this stored value. <em>Usually<\/em>, this is fine enough. You can use a reference to an int seamlessly as if were the int itself usually. However, the fact that you cannot even see that anything changed is what makes this bug so insidious. If you thereafter copy the reference, you will think it is still a raw int. Since array copies are shallow, any modification to the array copy will modify the pointed-to value, modifying it everywhere.<\/p>\n<p>This is a reported, if little-known, bug. <a href=\"https:\/\/bugs.php.net\/bug.php\" id=\"20993\">The proposed fix<\/a> was to make arrays deep copy by default, but this was deemed to costly. I would advocate that a far better fix would be to supplement arrays in some way to allow references to point to items thereof without modifying the array, but I am blissfully unaware of how challenging this would be to implement.<\/p>\n<p>If you do want to work around this, there is no clear, right way to do so. Not only does PHP shallow clone by default, it does not have a built-in way to deep clone an array, nor to dereference a reference.<\/p>\n<p>Obviously, the first&mdash;and probably best&mdash;option is to avoid ever making a reference to an array item. This behavior means it will almost inevitably come back to bite you, and the hassle of just storing a key and\/or reference to the array is surely less than the hassle of trying to figure out how your data is being secretly corrupted....<\/p>","tags":["programming"]},{"title":"What You Need to Tell Employers in Interviews","date_published":"2023-11-18T11:24:00+00:00","id":"https:\/\/matthewminer.name\/blog\/what-you-need-to-tell-employers-in-interviews","url":"https:\/\/matthewminer.name\/blog\/what-you-need-to-tell-employers-in-interviews","content_html":"<p>Interviews are usually pretty structured affairs, with the interviewers asking most of the questions, and the interviewees just doing their best to answer them. However, they're not like tests. There's no one right answer. There's typically no scores. Those being interviewed simply need to convince the interviewers that they are the best candidates for the job.<\/p>\n<p>Therefore, you shouldn't view questions as a checklist to be checked off like if you have a passable answer to every question you'll get the job. What if someone else has a passable answer to every question too? Instead you need to figure out how you can use the questions to explain why you're the best person for the job. The questions are just a means to an end for both sides.<\/p>\n<p>What do employers look for when determining who would be best? I would abstract it to three things: who can do the job, who would do the job, and who wouldn't interfere with other people doing their jobs. With each answer, you should be seeking to further your case in one of these areas.<\/p>\n<h2>Skill<\/h2>\n<p>The most important thing you need to communicate is that you are capable of doing the job. For some jobs, this might simply mean you can follow instructions, while for many it will be convincing them of your skill, knowledge, and talent.<\/p>\n<p>For this, you want to be narrow and focus on experience, experience, experience. Ideally, you've done this job before and did it well. Bring that up as much as possible. Use people who witnessed such as references. Make them convinced that you can jump right in without a worry.<\/p>\n<p>If you haven't done the job before, talk about the closest thing to the job you've done, and why you know how to do it. If you're new to the workforce, focus on your education in relevant areas.<\/p>\n<p>Most importantly, you need to show that you know how to do <em>that<\/em> specific job. If you have been jumping between fields or doing a hobby, talking about those other fields won't convince them of your skill at this job at all. Mentioning such things can be good for the other two goals, but those are less important. If you can answer a question with an example in a relevant job, do it, even if it doesn't seem as great an answer. If they ask what your work experience, disproportionately talk about jobs in that field. If they ask you about your strengths, your strengths are things that could help at this job. If they ask what you enjoy about an unrelated job, include something that is also true about the job you are applying to. If they ask for an example of something (problem-solving, conflict resolution, etc.), use an example of something at a job in that field. Make them feel like you eat, sleep, and breathe relevant job experience.<\/p>\n<p>Sometimes you may clearly be under-qualified for a job. This isn't always a death sentence for your...<\/p>","image":"\/blog\/user\/pages\/01.blog\/what-you-need-to-tell-employers-in-interviews\/image.jpg"},{"title":"Home Assistant&#039;s Logic-Lacking Variables","date_published":"2023-10-24T18:17:00+00:00","id":"https:\/\/matthewminer.name\/blog\/home-assistants-logic-lacking-variables","url":"https:\/\/matthewminer.name\/blog\/home-assistants-logic-lacking-variables","content_html":"<p>The whole point of home automation is to do things conditionally. Maybe you want to change the light color depending on the time of day. Maybe you want to play a noise when someone hits a button. Or, in my case, I want to adjust the thermostat based on the temperature and people's locations. Regardless of what you want to do, the go-to software is the mostly-lovely <a href=\"https:\/\/www.home-assistant.io\/\">Home Assistant<\/a>. It makes it easy to integrate all your devices with whatever setup you want and then lets you run automations to&hellip;automate them.<\/p>\n<p>Typically automations are controlled by simple triggers. If a button is pushed, then do this. If the temperature changes, then do this. Home Assistant's GUI makes this fairly easy to set up, but it's also pretty limited. You can set triggers, conditions, and actions, but that doesn't let you really program things. It has a simple if-then action, but limited to this, it's hard to do things with more than a couple possibilities. It would be impractical to make many, many branches to do something like gradually change the color and brightness of a light based on the time of day.<\/p>\n<p>Home Assistant's solution to this problem is its scripts. However, this name is misleading. It's not really a scripting language like one may think of like bash or Python or PHP or Javascript. For instance, to setup my thermostat to be 73&deg; in the day, 3&deg; cooler at night, and 10&deg; less when we're not home, I would naturally write something like this:<\/p>\n<pre><code class=\"language-python\">from datetime import datetime\n\ntarget_temperature = 73\nif (datetime.now() &gt; datetime.strptime(\"7:00AM\", \"%I:%M%p\") and\n    datetime.now() &lt; datetime.strptime(\"10:00PM\", \"%I:%M%p\")):\n    target_temperature -= 3\nif state.zones.home == 0:\n    target_temperature -= 10\nclimate.set_temperature(target_temperature)<\/code><\/pre>\n<p>This is very simple and straight-forward logic. You set the temperature you want and then adjust it. It would be easy to put a conditional in there to set it to hot or cool depending on the current temperature and change the initial target temperature accordingly. You could easily add another intermediate zone with a different temperature change.<\/p>\n<p>Scripts cannot easily do this. They are not very different from automations really. They're just YAML files with a series of commands and optionally conditions. One of these commands is setting a variable, but it has serious limitations. You might naturally think you could implement the same thing with the following:<\/p>\n<pre><code class=\"language-yaml\">sequence:\n  - variables:\n      target_temperature: 73\n  - if:\n      - condition: template\n        value_template: \"{{ now().hour &gt;= 7 and now().hour &lt; 22 }}\"\n    then:\n      - target_temperature: \"{{ target_temperature - 3 }}\" \n  - if:\n      - condition: template\n        value_template: \"{{ int(states('zone.home')) == 0 }}\"\n    then:\n      - target_temperature: \"{{ target_temperature - 10 }}\"\n  - service: climate.set_temperature\n    data:\n      temperature: \"{{ float(target_temperature) }}\"\n    target:\n      device_id: \"{{ device_id }}\"<\/code><\/pre>\n<p>Sure it's horribly ugly and a pain to write, but that should at least do what you want, right? Nope, that script will always set the temperature to 73&deg; without even a warning. If you try setting <code>target_temperature<\/code> in an if statement, you'll get an error. How...<\/p>","tags":["tech","programming","home assistant"],"image":"\/blog\/user\/pages\/01.blog\/home-assistants-logic-lacking-variables\/robot-looking-at-home-over-maze.jpg"},{"title":"How Much Postage Do I Need for a Card?","date_published":"2023-09-12T17:34:00+00:00","id":"https:\/\/matthewminer.name\/blog\/how-much-postage-do-i-need-for-a-card","url":"https:\/\/matthewminer.name\/blog\/how-much-postage-do-i-need-for-a-card","content_html":"<p>Since 2007, applying postage for most mail has been extraordinarily easy. You buy one Forever Stamp and put it on. It doesn't matter if you bought the stamp five years ago. You don't have to think about what the current rate is. You don't have to see any numbers at all. It's just one letter, one stamp.<\/p>\n<p>However this simple rule only applies for what the post office calls <a href=\"https:\/\/pe.usps.com\/text\/qsg300\/q201.htm\">\"standard-sized\" letters<\/a>. For most mail, that's fine, but there are a couple of rules that greeting cards often don't comply with, making you have to research why it got sent back and either guess how much to pay or else do <em>math<\/em>.<\/p>\n<h3>Weight<\/h3>\n<p>The first standard of standard mail is that a letter must weigh less than 1 oz. Unless you're using really cheap paper, this is about 4 sheets of letter-sized paper. Most greeting cards are thick cardstock and will be over this. You can <em>guesstimate<\/em> with a kitchen scale, but err on the heavy side as these are not accurate enough to be sure.<\/p>\n<p>Assuming you are over, you have to pay extra postage. Currently, the fee is <a href=\"https:\/\/pe.usps.com\/text\/dmm300\/Notice123.htm#a_Letters\">28&cent; per ounce over<\/a>, although this will surely increase in the future. Since standard stamps are currently 73&cent;, <strong>mailing a card usually costs $1.01 postage.<\/strong> If you're not a big card person, just slapping an extra Forever Stamp is a safe bet which will cover it 1&frac12; times over and only donate 45&cent; to the government unnecessarily. However, if you mail a lot of cards, it may be worth it to pick up some neato <a href=\"https:\/\/store.usps.com\/store\/product\/wedding-blooms-stamps-S_585804\">\"Two Ounce\" stamps<\/a> or <a href=\"https:\/\/store.usps.com\/store\/product\/buy-stamps\/school-bus-stamps-S_122404\">\"Additional Ounce\" stamps<\/a> the next time you're at the post office to save a little money and add a little flair to your letters. Like Forever Stamps, Two Ounce and Additional Ounce stamps will always cover a a two-ounce letter and an additional ounce, respectively, no matter what the Postal Service increases the rate to. It's quite the handy stamp secret.<\/p>\n<h3>Size<\/h3>\n<p>The other issue you might run into with cards are the size standards. A \"standard-sized\" envelope must not be more than 6&#8539; inches tall and must have an aspect ratio of at least 1.3 (E.g., if your card is 5\" tall, it must be at least 6&frac12;\" long). I would guess neither of these size restrictions is an issue with most cards, but it's good to be aware of.<\/p>\n<p>If you do have a large or square card, it instead becomes a \"large envelope\", also known as a \"flat\". These are quite a bit more expensive. Instead of the current 73&cent; rate for letters, <a href=\"https:\/\/pe.usps.com\/text\/dmm300\/Notice123.htm#a_Large%20Envelopes%20(Flats)\">large envelopes cost $1.50 to mail<\/a>. Assuming it's also at least 2 oz, that's $1.77 total.<\/p>\n<p>Unfortunately, there is no simple \"large envelope stamp\". You have choose a less-ideal option:<\/p>\n<ul>\n<li>You can take the traditional method and track the current rates and buy stamps of various denominations to add up to it. You could do a Forever Stamp + a <a href=\"https:\/\/store.usps.com\/store\/product\/1-dollar-floral-geometry-stamps-S_121804\">$1 stamp<\/a>...<\/li><\/ul>","tags":["products","law"],"image":"\/blog\/user\/pages\/01.blog\/how-much-postage-do-i-need-for-a-card\/stamped-card.jpg"},{"title":"Bemoaning Beyond Burgers","date_published":"2023-08-10T17:00:00+00:00","id":"https:\/\/matthewminer.name\/blog\/bemoaning-beyond-burgers","url":"https:\/\/matthewminer.name\/blog\/bemoaning-beyond-burgers","content_html":"<p>I, like any American, love burgers. I'm not very picky. Obviously, some burgers are a lot better than others, but I like basically all of them, whether it's Five Guys, Wendy's, Steak and Shake, Dairy Queen, a local smashburger, or even McDonald's. I like all styles&mdash;from a plain cheeseburger to a Big Mac to a blue cheeseburger to a peanut butter royale burger. However, I believe that there is a core element to a burger&mdash;primarily comprising the burger patty itself. In light of this, I believe a burger should taste like a burger.<\/p>\n<p>I understand the inhumane treatments often found in factory farms. Growing up on a farm with cattle myself makes the factory facsimile appear even more grotesque. However, I do not believe that eating meat on its own is inherently immoral. In fact, I often find myself leaning more towards being the opposite of a vegetarian. (In law school I lived on a ketogenic diet for a number of months.)<\/p>\n<p>That being said, I do like the idea of vegetarian meat substitutes being an option. If offered such, I will often pick them if they are of comparable price for environmental reasons if nothing else. However, the success of their mission is very inconsistent.<\/p>\n<p>The first plant-based, meat-substitute burger I tried was Burger King's Impossible Whopper in 2019. I am not a big fan of Burger King as a restaurant, but back then it was a fair bit better. (Actually, 2019 was probably the last time I had a good experience at a Burger King.) I got a free coupon in Burger King's app to either get a regular Whopper or an Impossible Whopper. My palate is nothing if not adventurous, and it was more expensive otherwise, so I chose the vegetarian option. To be honest, I could not tell a difference. It tasted just as good as real meat, at least what they serve at Burger King and if it wasn't for the price and the rest of the shortcomings of Burger King, I would probably get it fairly often.<\/p>\n<p>Starting off on a high note, my next plant-based meat substitute experience was at KFC. They came out with Beyond Chicken from Impossible's competitor, and I had to try them too. These were&hellip;less impressive. They still tasted like meat, albeit mediocre meat. However, they were unnaturally tough. Obviously, they lacked the fibers and texture that real quality chicken has, so they were more like expensive, tough McNuggets. Not a worthwhile replacement, in my opinion.<\/p>\n<p>That brings me to the meat (heh) of this article. A couple of weeks ago I was at Costco to buy a bunch of frozen burger patties to take advantage of my new chest freezer when I saw that Beyond Meat patties were on sale, making them only a little more expensive than beef patties. Again, being adventurous and seeking the option more friendly to both the environment and my diet, I bought two packs. I had to finish off my pre-existing Kirkland...<\/p>","tags":["personal","products","cooking"],"image":"\/blog\/user\/pages\/01.blog\/bemoaning-beyond-burgers\/frying-a-beyond-burger.jpg"},{"title":"Dunkin&#039;s Double Sweet Surprise App Orders","date_published":"2023-07-14T23:14:24+00:00","id":"https:\/\/matthewminer.name\/blog\/dunkins-double-sweet-surprise-app-orders","url":"https:\/\/matthewminer.name\/blog\/dunkins-double-sweet-surprise-app-orders","content_html":"<p>If you order lattes or macchiatos, you probably like a little sugar (or a similar substitute sweetener) in your coffee. When you order one on the Dunkin' Donuts app it asks you what sweetener you want. Somewhat oddly, the default is none. You are likely quite inclined to change this so you don't get just bitter bean juice you could get far cheaper elsewhere. However, this would be a mistake if you have added one of the sweetened flavor shots. If you turn your drink into a mocha latte and still add the recommended four packets of sugar to your drink, be warned: it will be really, really, really sweet.<\/p>\n<p><img alt=\"Screenshot of Dunkin&#039; app with &quot;Sweetened Flavors&quot; and &quot;Sweetener&quot; circled and a warning of &quot;Don&#039;t add both of these&quot;\" src=\"\/blog\/user\/pages\/01.blog\/dunkins-double-sweet-surprise-app-orders\/dunkin-sweeteners.png\" \/><\/p>\n<p>The reason for this is that the sweetened flavor shots are intended to replace the sweetener. A large latte's mocha flavor shot contains 45 grams of sugar! The caramel swirl has 51 grams!<\/p>\n<p>You might be able to tell this yourself from the name \"sweetened flavors\", but it's a bit ridiculous just how much sugar they put into them. If you order just a large iced macchiato, it will have 12g of sugar. If you order an iced macchiato and add the recommended amount of sugar, it will have 47g. If you order a caramel iced macchiato, it will have 63g!  If you order a caramel iced macchiato and add the recommended amount of sugar it will have <em>98g of sugar<\/em>!<\/p>\n<p>While this isn't really a flaw in the app, and it's good to have the flexibility, I think it could be communicated a bit more clearly. Maybe it could add the recommended sugar by default and take it away when you add the sweetened flavor shot, or at least say the recommended amount of sugar for a drink with a sweet and flavor is zero packets. I will give Dunkin' credit that the current names for the shots are much better than what they used to be. Only the unsweetened flavor shots used to actually be called \"flavor shots\", while the sweetened flavors were called \"flavor swirls\". It was much more like playing sugar roulette before they realized the error of their ways.<\/p>\n<p>Regardless, I think it's important for a coffee enjoyer to be aware of what you're really ordering to ensure you get something good. If you don't want flavor and you want sugar, add sugar. If you want flavor and sugar say you want no sugar because the flavor will include it.<\/p>","tags":["products"],"image":"\/blog\/user\/pages\/01.blog\/dunkins-double-sweet-surprise-app-orders\/disposable coffee cup sitting in a pile of white sugar on a bright orange background.png"}]}
