<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.0.1">Jekyll</generator><link href="https://juanderson.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://juanderson.com/" rel="alternate" type="text/html" /><updated>2025-06-12T03:49:26+00:00</updated><id>https://juanderson.com/feed.xml</id><title type="html">Justin Anderson Blog</title><subtitle>My blog for random thoughts and ideas. I will post here insted of on social media.
</subtitle><author><name>Justin Anderson</name></author><entry><title type="html">Alaska Airlines Nighmare</title><link href="https://juanderson.com/travel/2025/06/11/alaska-airlines-nighmare.html" rel="alternate" type="text/html" title="Alaska Airlines Nighmare" /><published>2025-06-11T00:00:00+00:00</published><updated>2025-06-11T00:00:00+00:00</updated><id>https://juanderson.com/travel/2025/06/11/alaska-airlines-nighmare</id><content type="html" xml:base="https://juanderson.com/travel/2025/06/11/alaska-airlines-nighmare.html"><![CDATA[<h2 id="story">Story</h2>

<p>It all started when I got to Seattle Airport. I had about 1 hour 20 until departure, ya late I know. Alaska’s policy is 40 minutes before departure for domestic flights. 
I told the lady guarding the check-in line that I didn’t have much time but she just rolled her eyes and said get in line. I wait in line for about 10 minutes and it’s 
not moving. They have like 3 checkin agents that check in one passenger then go on break for like 5 minutes.</p>

<p>I tell the lady again and she just says stay in line. It gets down to 40 minutes before departure. I told the lady again and she said stay in line while telling 
other people to go to the business class line. The line moves a bit and a nice passenger in line lets me go in front of them.</p>

<p>Then I tell a check-in agent, Agent A, and she says talk to the next available person. They still only have 3 people. I go up to one agent, Agent B, and say I need help. 
She says “I’m not ready yet” and then yells at me, I go to another agent and she says “I’m not ready yet” while Agent B is helping somebody else.</p>

<p>I go back to Agent A and she helps me but by this point it’s passed the check-in cut off. She goes and gets the manager. The manager comes over and says “there’s nothing 
we can do” and tells me to call Qantas, the flight still hasn’t left yet. So I kept pushing him so he called the gate and asked if I could risk it. He issued me a boarding
pass with precheck and to just gate check my big suitcase. I take it and go off towards security.</p>

<p>I get to the TSA precheck line, there are no passengers in line. So I hand the agent my passport and the TSA agent says” there is no precheck on the ticket. And go to the
normal security or wait like 15 minutes.”</p>

<p>I exited the line and looked at the ticket and it had a precheck on it. I went back to the same agent. Tell her to check again.</p>

<p>It worked that time. I put my bag on the scanner and I forgot I had a wine opener in it. No big deal, tell them to toss it. I then ran for the gate. They were boarding
the final group. I got a bag tag and the guy was like “Oh you’re that guy that they called about, you got here quick”</p>

<p>I got on and took my seat sweating. I was able to get this picture. My bag is the red one.</p>

<p><img src="/images/2025-06-11-image1.jpeg" alt="Image" /></p>

<h2 id="takeaway">Takeaway</h2>

<p>I was planning to get to the airport sooner. So some of it is on me. I’ve flown other airlines that I arrived at the same time and didn’t have a problem.</p>

<p>So I think Alaska needs to train their check in staff hospitality. The entire situation could have been handled much better. Also, they need to have more staff
at check in, even the bag drop check-in was backed up.</p>

<p>I did file a complaint with Alaska Airlines but I don’t expect anything to change….</p>

<p>It does leave a bad taste in my mouth. I think I might cancel my Alaska Airlines credit card and just fly Delta from now on out of Seattle.</p>]]></content><author><name>Justin Anderson</name></author><category term="travel" /><summary type="html"><![CDATA[Story]]></summary></entry><entry><title type="html">Dry Rub Ribs</title><link href="https://juanderson.com/cooking/2025/05/31/dry-rub-ribs.html" rel="alternate" type="text/html" title="Dry Rub Ribs" /><published>2025-05-31T00:00:00+00:00</published><updated>2025-05-31T00:00:00+00:00</updated><id>https://juanderson.com/cooking/2025/05/31/dry-rub-ribs</id><content type="html" xml:base="https://juanderson.com/cooking/2025/05/31/dry-rub-ribs.html"><![CDATA[<h1 id="recipe">Recipe</h1>

<h2 id="seasoning">Seasoning</h2>
<ul>
  <li>Makes enough for 2 rack of ribs</li>
</ul>

<h3 id="ingredients">Ingredients:</h3>
<ul>
  <li>1/4 cup brown sugar</li>
  <li>2 tablespoons paprika</li>
  <li>2 tablespoons kosher salt</li>
  <li>1 tablespoon garlic powder</li>
  <li>1 tablespoon black pepper</li>
</ul>

<h3 id="directions">Directions</h3>
<ol>
  <li>In a bowl mix add the paprika, kosher salt, garlic powder, and black pepper</li>
  <li>Sift in the brown sugar</li>
  <li>Combine the mixture</li>
</ol>

<h2 id="ribs">Ribs</h2>
<ol>
  <li>Preheat the oven at 275ºF (135ºC)</li>
  <li>Remove the sliver skin if present</li>
  <li>Rub in the seasoning on to all the sides of the ribs</li>
  <li>Tightly wrap the seasoned ribs in aluminum foil</li>
  <li>Place the wrapped ribs on a baking sheet in the oven for 2:30 to 2:45. Don’t keep them in too long or they will get dry</li>
  <li>Remove the foil on the meat side of the ribs</li>
  <li>Place in the broiler on high for 5-8 minutes</li>
</ol>

<p><img src="/images/2025/05/2025-05-31-image1.jpeg" alt="Image" /></p>

<h1 id="story-time">Story time</h1>
<p>I was at the super market and they were having buy-one-get-one on ribs. So I bought 2 racks. When I got home I split each rack in half and froze them. Last weekend I made the <a href="https://www.tastinghistory.com/episodes/conclaveribs">Papal Conclave ribs</a> from tasting history. I didn’t follow the recipe particularly well and they tasted like ribs you make in a crockpot. It left me craving dry-rubbed ribs so I made this recipe this weekend. I think these came out better then those. Although I left them in the oven too long so some of them were a little dry.</p>]]></content><author><name>Justin Anderson</name></author><category term="cooking" /><summary type="html"><![CDATA[Recipe]]></summary></entry><entry><title type="html">Where have I’ve been</title><link href="https://juanderson.com/misc/2025/05/29/where-have-i-been.html" rel="alternate" type="text/html" title="Where have I’ve been" /><published>2025-05-29T00:00:00+00:00</published><updated>2025-05-29T00:00:00+00:00</updated><id>https://juanderson.com/misc/2025/05/29/where-have-i-been</id><content type="html" xml:base="https://juanderson.com/misc/2025/05/29/where-have-i-been.html"><![CDATA[<h2 id="long-time-no-update">Long time no update</h2>
<p>It has been a long time since I’ve updated this blog. I’ve just been busy with life. I still work at Google.</p>

<p>In no particular order,</p>

<ul>
  <li>I did end up taking that trip to Japan in 2021. That was a lot of fun.</li>
  <li>Got my pilots license and I am a flight instructor</li>
  <li>Went to New Zealand and Australia</li>
  <li>Moved from Boulder to Seattle</li>
  <li>etc</li>
</ul>

<h2 id="what-is-the-blog-going-to-be-now">What is the blog going to be now?</h2>
<p>I migrated from wordpress to Jekyll so hopefully it is easier to maintain going forward.</p>

<p>I’m still not sure what I want this blog to focus on, there will be travel, cooking, baking, etc. I want to try to write a blog post at least once per week but we’ll see.</p>

<p>I’ll end this post with a picture of Millie
<img src="/images/2025/05/2025-05-29-image1.jpeg" alt="Image" /></p>]]></content><author><name>Justin Anderson</name></author><category term="misc" /><summary type="html"><![CDATA[Long time no update It has been a long time since I’ve updated this blog. I’ve just been busy with life. I still work at Google.]]></summary></entry><entry><title type="html">My life story</title><link href="https://juanderson.com/misc/2022/02/12/my-life-story.html" rel="alternate" type="text/html" title="My life story" /><published>2022-02-12T00:00:00+00:00</published><updated>2022-02-12T00:00:00+00:00</updated><id>https://juanderson.com/misc/2022/02/12/my-life-story</id><content type="html" xml:base="https://juanderson.com/misc/2022/02/12/my-life-story.html"><![CDATA[<p>As I get ready to start my new job at Google. I thought it would be nice to go over how I got here. It all started around 2008 when I got my first laptop for Christmas. I mostly played games on that computer until spring break came around.</p>

<p>During that spring break I learned to Visual Basic .NET. At first it was simple stuff and jokes. I made an app that said “A virus has been detected on your computer” then it would shut down the computer. Then made a GPA calculator and such. Unfortunately all that code is I’m assuming lost. Then I went back to school after the break and never touched visual studio again that year. The next year I did the same thing with C#.net. I did .NET because my dad could get me a copy of Visual studio and knew C# and VB.</p>

<p>When I started high school, I got a MacBook. On that MacBook I installed Xcode and made a really simple game over the next year or so. The game was House Defender. There was a house in the middle of the screen and bugs would come and attack the house. The graphics sucked and the code was even worse but somehow I got it in the store. The code was a lot of copying and pasting from tutorials and stackoverflow. About halfway through I started figuring out how things worked and could really work on it. Looking at the code now, it is really bad. I could make probably make the app in a weekend now. But that’s not the point.</p>

<p>I took a C++ class in high school but I think I got a D or C in it because I just bored and didn’t do the work. Then I took AP computer science (Java) and the same thing happened. I already knew how to program at this point and could understand how it most things worked.</p>

<p>Also during this time my dad got me some work for the company he worked for. I made aviation charts for pilots. The job was really boring but for $15 per hour who complaining. I had to go on the website and find the airport and get the text for a procedure for an airport. Then map this procedure in Illustrator. I created a program to display these procedures. Then added on utilities to convert to different lat and long systems.</p>

<p>After high school I was hired by the company as an iOS developer and make the charts too, while going to college. I during college I was going to major in computer science. So I took a those classes, into to computer science I got 110% in. I didn’t really understand the data structures so I didn’t do as well in that class but still passed. After a semester of that I decided I would take fewer classes. Then later that next semester I decided to not enroll for fall classes and went full time working.</p>

<p>I worked for that company for another year. I also completely automated that chart making process. The company was fine for the most part but I wanted to try something else and didn’t want to be the only developer anymore. I interview at few companies, but then I tried Wayfair. I got the job as an iOS enginer. I quit my job and moved to Boston in 3 weeks.</p>

<p>Wayfair was fun to work at, I started working on adding comments to idea boards. (I don’t know if that feature is still around). The moved to work on the sales tab in the app. Then moved to core/infrastructure type features. I would finish all the work in the 2 week sprint in a few days then wouldn’t have anything to work on. However I had a few bad performance reviews so I thought I was going to be terminated so I started looking for other places to work. I bought cracking the coding interview and did a bunch code fights problems. I got an onsite at Google, I thought I did really good, but didn’t get the job.</p>

<p>During my spare time at Wayfair, I was working on Hexd. I got to a point that I couldn’t figure out for a while so I dropped it. Then I figured it out and released it to the app store. It’s still there if you’d like to try it.</p>

<p>About 5 months later I really stepped up looking for a new job, and interviewed at a Twitter. I didn’t think I did good enough to get the job at Twitter. I also had an offer from a startup but Twitters offer was so much better. I got hired on the Video data infrastructure team. That team did video analytics events. Then that team changed into the Client Event infrastructure team and changed charters to be all of analytics. We created new a system entirely. But the thing I’m most proud of is the Thrift library I created. https://github.com/twitter/ios-twitter-apache-thrift</p>

<p>I left Twitter because I didn’t feel like I got support from my manager to get a promotion. So I started interviewing. The funny thing is once you have a job at a big tech company, your applications are never ignored. For example, I applied for the job at Google and they reached out in 7 minutes after I applied. I remember when I was at the first company all my applications got ignored.</p>

<p>To be continued…</p>]]></content><author><name>Justin Anderson</name></author><category term="misc" /><summary type="html"><![CDATA[As I get ready to start my new job at Google. I thought it would be nice to go over how I got here. It all started around 2008 when I got my first laptop for Christmas. I mostly played games on that computer until spring break came around.]]></summary></entry><entry><title type="html">Google needs to get their shit together</title><link href="https://juanderson.com/misc/2020/12/05/google-needs-to-get-their-shit-together.html" rel="alternate" type="text/html" title="Google needs to get their shit together" /><published>2020-12-05T00:00:00+00:00</published><updated>2020-12-05T00:00:00+00:00</updated><id>https://juanderson.com/misc/2020/12/05/google-needs-to-get-their-shit-together</id><content type="html" xml:base="https://juanderson.com/misc/2020/12/05/google-needs-to-get-their-shit-together.html"><![CDATA[<p>I have a game in the app store, Hexd, that runs ads with admob and I reached the payment threshold to be paid of a full $100.</p>

<p>Complaint number 1: When ever I tried to add a payment account I get and error. No big deal right, I’ll just contact support. OH WAIT THERE IS NO SUPPORT, only forums.</p>

<p>Complaint number 2: I want to invite a new account to my adsense account. So I send the invite and the other account accidentally creates a new account. Now both account have a message that one of them needs to be closed. The help page says to go to account then close account. The problem is that the account button is disabled on that account that was opened accidentally. I’ll just contact support but again ONLY FORUMS NO ACTUAL SUPPORT PEOPLE.</p>

<p>At this point I don’t care about the $100 of ad money and delete the original account.</p>

<p>Complaint number 3: I try to setup my primary website mountainbuffalo.com with adsense because I want to reset up ads in the game and you need to have adsense account to have an admob account. But my website apparently doesn’t have content because it just points people to the app store to get the game. WTF I say.</p>

<p>So I applied for this site to adsence, I have no intention of running ads on this site. I just want to run ads in my app. I hope whoever is looking at this site from google takes pity. If not I will have to find someone else to run my ads that’s not google.</p>]]></content><author><name>Justin Anderson</name></author><category term="misc" /><summary type="html"><![CDATA[I have a game in the app store, Hexd, that runs ads with admob and I reached the payment threshold to be paid of a full $100.]]></summary></entry><entry><title type="html">WFH</title><link href="https://juanderson.com/misc/2020/07/29/wfh.html" rel="alternate" type="text/html" title="WFH" /><published>2020-07-29T00:00:00+00:00</published><updated>2020-07-29T00:00:00+00:00</updated><id>https://juanderson.com/misc/2020/07/29/wfh</id><content type="html" xml:base="https://juanderson.com/misc/2020/07/29/wfh.html"><![CDATA[<p>I’ve been forced to work from home now for 5 months, at time of writing, because of the global COVID-19 pandemic. I’m not going to go into detail what I think about the pandemic, expected for that it is very real and anyone who doesn’t think so is a moron.</p>

<p>In February, I was on the company ski trip and got a slack message from my manager on a Saturday, saying if I didn’t see the email from corporate security, that I need to cancel my upcoming work trip that was suppose to start on Monday. That when I stopped and read the email about all nonessential business travel is cancelled for the foreseeable future. That was unfortunate for me because I was scheduled to talk at a conference in September in Wales.</p>

<p>A few weeks later, when the mandate to work from home came out, on a Thursday, the offices closed well before the stay at home order in Colorado. I was mildly disappointed because that would mean no more free breakfast and lunch, but the precautions were completely appropriate. I figured it will be only for a few weeks to a month, 5 months later they are saying the offices will not be open until for awhile longer.</p>

<p>Since then I have been trying to adjust to the new life of working from my 400 sq ft apartment. At first it was a struggle, finding the best way to work. First I tried sitting in my Ikea PONG chair. Which let me tell you, it is uncomfortable after about 20 minutes. I was not using my desk in an attempt to separate my work from my personal life.</p>

<p>That became suboptimal after about a week so I switched to plug my work laptop into my ultra-wide monitor. I’ve been using that ever since. This was hard at first because I associated that setup with gaming on my gaming computer. To help dissociate that I used a different mouse and keyboard, as well as only gaming on the weekend. The next biggest thing was separating work and personal lives. I would sometimes work until 7 or 8 at night.</p>

<p>If your work-life balance tips to far in one direction. You have to ask yourself two questions, first are both things equally important to you and second how far are you willing to go to balance them out again?</p>

<p>First, I believe they are both equally important, having rest from work is very important.</p>

<p>Second, I have very specific cut offs that I try to conform to such as starting work at 9 than working until 5. Then not answering slack or emails outside these hours. Unfortunately programming is never has that clean of cutoffs, so I try to wrap things up around 5.</p>

<p>These are very first world problems, I am lucky that I work for a company that doesn’t make people go into an office where the employees might get sick. The essential workers are the real heroes, by reporting to work even though they might get sick.</p>]]></content><author><name>Justin Anderson</name></author><category term="misc" /><summary type="html"><![CDATA[I’ve been forced to work from home now for 5 months, at time of writing, because of the global COVID-19 pandemic. I’m not going to go into detail what I think about the pandemic, expected for that it is very real and anyone who doesn’t think so is a moron.]]></summary></entry><entry><title type="html">Xcode wackiness</title><link href="https://juanderson.com/development/2019/12/16/xcode-wackiness.html" rel="alternate" type="text/html" title="Xcode wackiness" /><published>2019-12-16T00:00:00+00:00</published><updated>2019-12-16T00:00:00+00:00</updated><id>https://juanderson.com/development/2019/12/16/xcode-wackiness</id><content type="html" xml:base="https://juanderson.com/development/2019/12/16/xcode-wackiness.html"><![CDATA[<h2 id="setup">Setup</h2>

<p>Let’s just say I have a protocol that conforms to NSObject and NSCoping. It was something like this.</p>

<div class="language-objc highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">@protocol</span> <span class="nc">MyProtocol</span> <span class="o">&lt;</span><span class="n">NSObject</span><span class="p">,</span> <span class="n">NSCopying</span><span class="o">&gt;</span>

<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">example_doSomethingWithMyProtocol</span><span class="p">:(</span><span class="n">id</span><span class="o">&lt;</span><span class="n">MyProtocol</span><span class="o">&gt;</span><span class="p">)</span><span class="nv">protocol</span><span class="p">;</span>

<span class="k">@end</span>
</code></pre></div></div>

<p>And also have a class, that has a method, and conforms to the protocol with a category.</p>

<div class="language-objc highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">@interface</span> <span class="nc">MyClass</span> <span class="p">:</span> <span class="nc">NSObject</span> <span class="o">&lt;</span><span class="n">NSCopying</span><span class="o">&gt;</span>

<span class="k">@property</span> <span class="p">(</span><span class="n">nonnull</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">myString</span><span class="p">;</span>

<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">string</span><span class="p">;</span>

<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">doSomethingWithMyClass</span><span class="p">:(</span><span class="n">MyClass</span> <span class="o">*</span><span class="p">)</span><span class="nv">myClass</span><span class="p">;</span>

<span class="k">@end</span>

<span class="k">@interface</span> <span class="nc">MyClass</span> <span class="p">(</span><span class="nl">Example</span><span class="p">)</span> <span class="o">&lt;</span><span class="n">MyProtocol</span><span class="o">&gt;</span>

<span class="k">@end</span>
</code></pre></div></div>
<p>And the implementation looks something like this</p>

<div class="language-objc highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">@implementation</span> <span class="nc">MyClass</span>

<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">string</span>
<span class="p">{</span>
    <span class="n">self</span> <span class="o">=</span> <span class="p">[</span><span class="n">super</span> <span class="nf">init</span><span class="p">];</span>
    <span class="k">if</span> <span class="p">(</span><span class="n">self</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">_myString</span> <span class="o">=</span> <span class="n">string</span><span class="p">;</span>
    <span class="p">}</span>
    <span class="k">return</span> <span class="n">self</span><span class="p">;</span>
<span class="p">}</span>

<span class="k">-</span><span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">doSomethingWithMyClass</span><span class="p">:(</span><span class="n">MyClass</span> <span class="o">*</span><span class="p">)</span><span class="nv">myClass</span>
<span class="p">{</span>
    <span class="k">return</span> <span class="p">[</span><span class="n">NSString</span> <span class="nf">stringWithFormat</span><span class="p">:</span><span class="s">@"%@ + %@"</span><span class="p">,</span> <span class="n">self</span><span class="p">.</span><span class="n">myString</span><span class="p">,</span> <span class="n">myClass</span><span class="p">.</span><span class="n">myString</span><span class="p">];</span>
<span class="p">}</span>

<span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">id</span><span class="p">)</span><span class="nf">copyWithZone</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSZone</span> <span class="o">*</span><span class="p">)</span><span class="nv">zone</span> <span class="p">{</span>
    <span class="k">return</span> <span class="n">self</span><span class="p">;</span>
<span class="p">}</span>

<span class="k">@end</span>

<span class="k">@implementation</span> <span class="nc">MyClass</span> <span class="p">(</span><span class="nl">Example</span><span class="p">)</span>

<span class="k">-</span> <span class="p">(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nf">example_doSomethingWithMyProtocol</span><span class="p">:(</span><span class="n">id</span><span class="o">&lt;</span><span class="n">MyProtocol</span><span class="o">&gt;</span><span class="p">)</span><span class="nv">protocol</span>
<span class="p">{</span>
    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="p">[</span><span class="n">protocol</span> <span class="nf">isKindOfClass</span><span class="p">:[</span><span class="n">MyClass</span> <span class="nf">class</span><span class="p">]]){</span>
        <span class="k">return</span> <span class="nb">nil</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="k">return</span> <span class="p">[</span><span class="n">self</span> <span class="nf">doSomethingWithMyClass</span><span class="p">:</span><span class="n">protocol</span><span class="p">];</span>
<span class="p">}</span>

<span class="k">@end</span>
</code></pre></div></div>
<p>So at this point, Xcode is happy. No warnings and no errors.
<img src="/images/2019/12/image.png" alt="Image" /></p>

<h2 id="lets-start-the-wackiness">Let’s start the wackiness.</h2>

<p>Let look at our protocol again. I don’t think we need to require NSCopying anymore, so let’s remove it. So our protocol now looks like this.</p>

<div class="language-objc highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">@protocol</span> <span class="nc">MyProtocol</span> <span class="o">&lt;</span><span class="n">NSObject</span><span class="o">&gt;</span>

<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">example_doSomethingWithMyProtocol</span><span class="p">:(</span><span class="n">id</span><span class="o">&lt;</span><span class="n">MyProtocol</span><span class="o">&gt;</span><span class="p">)</span><span class="nv">protocol</span><span class="p">;</span>

<span class="k">@end</span>
</code></pre></div></div>

<p>Let’s build and compile.
<img src="/images/2019/12/image-1.png" alt="Image" /></p>

<p>Whats this 1 warning! Heres the warning.
<img src="/images/2019/12/image-2.png" alt="Image" /></p>

<p>Why didn’t this warning show up before removing NSCopying. You could just cast it, sure but where is the fun in that. Ok lets rest our protocol to the original. Yay, the warning wen’t way. Let’s now remove NSCopying from our class.</p>

<div class="language-objc highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">@interface</span> <span class="nc">MyClass</span> <span class="p">:</span> <span class="nc">NSObject</span>
<span class="p">...</span>
<span class="k">@end</span>
</code></pre></div></div>
<p>Oh, no we have a new warning.
<img src="/images/2019/12/image-3.png" alt="Image" /></p>

<p>This one has a “fix it” so let’s apply it. It add a copy with zone, so let’s just return self. If you noticed from before we already have a copy with zone method. We’re going to compile now, ok no errors but we have a new linker warning.</p>

<p><code class="highlighter-rouge">instance method 'copyWithZone:' in category from /.../MyClass.o overrides method from class in /.../MyClass.o</code></p>

<p>Oh dear, that doesn’t look good. Why didn’t it find the original when implementation.</p>

<p>What was the point of this exercise, well nothing and what’s some conclusions we can make. Well we can conclude that Xcode is wacky and does wacky things but if you work with Xcode, you already knew that. If you want the code from this experiment to experience the wackiness for yourself, you can get it here.</p>]]></content><author><name>Justin Anderson</name></author><category term="Development" /><summary type="html"><![CDATA[Setup]]></summary></entry><entry><title type="html">Hello world!</title><link href="https://juanderson.com/misc/2019/09/03/hello-world.html" rel="alternate" type="text/html" title="Hello world!" /><published>2019-09-03T00:00:00+00:00</published><updated>2019-09-03T00:00:00+00:00</updated><id>https://juanderson.com/misc/2019/09/03/hello-world</id><content type="html" xml:base="https://juanderson.com/misc/2019/09/03/hello-world.html"><![CDATA[<p>Just setting up my blog. I can’t believe how easy this was to setup and why I didn’t do it sooner. Welcome to my blog, I don’t know what I’m going to be posting here. Probably random thoughts, tech related things, and/or tutorials. We’ll see how it goes.</p>

<p>Just about me, I’m Justin Anderson. I work at Twitter and I mostly do iOS development but I dabble in Android, web and backend. I’ve been doing iOS since iOS 4 and maybe before. I currently have an app in the store, Hexd. I also have a joke website artisanpasswords.com.</p>]]></content><author><name>Justin Anderson</name></author><category term="misc" /><summary type="html"><![CDATA[Just setting up my blog. I can’t believe how easy this was to setup and why I didn’t do it sooner. Welcome to my blog, I don’t know what I’m going to be posting here. Probably random thoughts, tech related things, and/or tutorials. We’ll see how it goes.]]></summary></entry><entry><title type="html">Japan for less then $1000</title><link href="https://juanderson.com/travel/2019/08/01/japan-for-less-then-1000-2.html" rel="alternate" type="text/html" title="Japan for less then $1000" /><published>2019-08-01T00:00:00+00:00</published><updated>2019-08-01T00:00:00+00:00</updated><id>https://juanderson.com/travel/2019/08/01/japan-for-less-then-1000-2</id><content type="html" xml:base="https://juanderson.com/travel/2019/08/01/japan-for-less-then-1000-2.html"><![CDATA[<p>It’s alway been a dream of mine to go to Japan but I’m not a fan of spending money. I hear Japan is expensive. I want to spend less than $1000 out of pocket for a two week trip.</p>

<p>How I plan to do this, three words, credit card points. Heres a breakdown of my points at the time of writing.</p>

<ul>
  <li>Chase - 112,000</li>
  <li>Amex - 60,000</li>
  <li>Marriott - 13,000</li>
</ul>

<p>Flights look to be about $800, since I have the Chase Sapphire Reserve I get 1.5 points per cent on travel, so ~52,000 points for the plane ticket. I also looked into transferring my points to an airline and I don’t get any more bang for the buck that way.</p>

<p>So If I use my chase point to get the flight that leaves the hotel. I need to think about the itinerary and what I want to see before I can make a decision on the hotel. However if I transfer all my points from remaining Chase and Amex to Marriott I’ll have 110,000. That will get me nowhere. Marriotts are really expensive in Japan.</p>

<p>Let’s look at booking the hotel through Amex. With my Amex points I can stay at trip adviser 4 star hotel for 5 nights in Tokyo. 5 nights down 9 to go. Ok, with my remaining Chase points I do 4 nights in Kyoto, 2 nights in Hiroshima, and 2 nights in Osaka.</p>

<p>Ok that just leaves when transportation between those cities, food, and things when I’m there which should come in under $1000. So I guess I’m going to Japan.</p>]]></content><author><name>Justin Anderson</name></author><category term="travel" /><summary type="html"><![CDATA[It’s alway been a dream of mine to go to Japan but I’m not a fan of spending money. I hear Japan is expensive. I want to spend less than $1000 out of pocket for a two week trip.]]></summary></entry></feed>