<rss version="2.0">
  <channel>
    <title>Lawrence Gimenez</title>
    <link>https://law.gmnz.xyz/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Sat, 10 Feb 2024 17:44:01 +0800</lastBuildDate>
    <item>
      <title>Rate My Setup</title>
      <link>https://law.gmnz.xyz/2024/02/10/rate-my-setup.html</link>
      <pubDate>Sat, 10 Feb 2024 17:44:01 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2024/02/10/rate-my-setup.html</guid>
      <description>&lt;p&gt;Coding on TV might be one of my favorite developer setups. This was done via Apple&amp;rsquo;s Mirror feature using AirPlay.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2024/752a30bd77.jpg&#34; width=&#34;600&#34; height=&#34;1066&#34; alt=&#34;&#34;&gt;
</description>
    </item>
    
    <item>
      <title>iOS Panic</title>
      <link>https://law.gmnz.xyz/2024/02/07/ios-panic.html</link>
      <pubDate>Wed, 07 Feb 2024 19:59:16 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2024/02/07/ios-panic.html</guid>
      <description>&lt;p&gt;My phone suddenly restarted and went into a full-blown panic. After restarting, there were some missing icons, I am on 17.4 beta 1. It&amp;rsquo;s amazing how seldom iOS crashes, but when it does I also get a sense of panic.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2024/9d2bb80f2d.png&#34; width=&#34;600&#34; height=&#34;1298&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2024/65c412dbef.png&#34; width=&#34;600&#34; height=&#34;1298&#34; alt=&#34;&#34;&gt;
</description>
    </item>
    
    <item>
      <title>Lucas app v0.1</title>
      <link>https://law.gmnz.xyz/2024/01/07/wrote-a-new.html</link>
      <pubDate>Sun, 07 Jan 2024 15:31:32 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2024/01/07/wrote-a-new.html</guid>
      <description>&lt;p&gt;Yesterday I developed a new typing notepad app for my kid with text-to-speech feature. I wrote a working prototype in under an hour. It&amp;rsquo;s amazing how quickly you can create an app in SwiftUI.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2024/screenshot-2024-01-06-at-6.19.40pm.png&#34; width=&#34;600&#34; height=&#34;461&#34; alt=&#34;&#34;&gt;
&lt;p&gt;Our kid testing his app.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2024/c7fb04d952.png&#34; width=&#34;600&#34; height=&#34;1298&#34; alt=&#34;&#34;&gt;
</description>
    </item>
    
    <item>
      <title>2024 Goals</title>
      <link>https://law.gmnz.xyz/2024/01/04/goals.html</link>
      <pubDate>Thu, 04 Jan 2024 11:42:37 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2024/01/04/goals.html</guid>
      <description>&lt;p&gt;I should write here more often. This is one of the few goals I have for 2024, personally.&lt;/p&gt;
&lt;p&gt;2023 was just a very hectic year for me and my family. Half of it was spent preparing for our new house, in terms of time and money. Now that we are settled in, this year should be all about upgrading and fixing our home. Make it more comfy, etc.&lt;/p&gt;
&lt;p&gt;One major goal for this year is for our family to start traveling, either on vacation or some errands. I am not sure if I should write about this too but who&amp;rsquo;s reading anyway.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Thank you Retro</title>
      <link>https://law.gmnz.xyz/2023/12/17/retroapp-postcard.html</link>
      <pubDate>Sun, 17 Dec 2023 17:48:39 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/12/17/retroapp-postcard.html</guid>
      <description>&lt;p&gt;I just want to say thank you to &lt;a href=&#34;https://retro.app/&#34;&gt;Retro App&lt;/a&gt; for their Postcard feature. I was able to send a postcard to my parents in the US, while I am currently on the other side of the world.&lt;/p&gt;
&lt;p&gt;I sent it for $0.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/63109fe73a.jpg&#34; width=&#34;600&#34; height=&#34;1298&#34; alt=&#34;&#34;&gt;
&lt;p&gt;I missed them so much, and something physical from here would be nice to send to them this Christmas. After, 6-7 days, they were able to receive it.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/7da9b8b5e7.jpg&#34; width=&#34;600&#34; height=&#34;800&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/0a620c8778.jpg&#34; width=&#34;600&#34; height=&#34;403&#34; alt=&#34;&#34;&gt;
&lt;p&gt;To be honest, I would gladly pay for this service again in the future.&lt;/p&gt;
&lt;p&gt;Thank you Retro!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Single Dot Crash</title>
      <link>https://law.gmnz.xyz/2023/12/08/just-a-single.html</link>
      <pubDate>Fri, 08 Dec 2023 16:25:25 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/12/08/just-a-single.html</guid>
      <description>&lt;p&gt;It&amp;rsquo;s amazing how a single dot can crash the whole app. Xcode should throw a compile error, but not sure why it did not.&lt;/p&gt;
&lt;p&gt;Looking at the &lt;code&gt;git diff&lt;/code&gt;, you can see the difference is just a &lt;code&gt;.&lt;/code&gt;.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/screenshot-2023-12-08-at-4.18.00pm.png&#34; width=&#34;600&#34; height=&#34;462&#34; alt=&#34;&#34;&gt;
&lt;p&gt;Xcode crash logs are not helping.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/screenshot-2023-12-08-at-4.24.24pm.png&#34; width=&#34;600&#34; height=&#34;272&#34; alt=&#34;&#34;&gt;
</description>
    </item>
    
    <item>
      <title>My 2023 Spotify Wrapped</title>
      <link>https://law.gmnz.xyz/2023/11/30/my-spotify-wrapped.html</link>
      <pubDate>Thu, 30 Nov 2023 15:47:52 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/11/30/my-spotify-wrapped.html</guid>
      <description>&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/453bed0b9d.jpg&#34; width=&#34;600&#34; height=&#34;1066&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/f60f08a9fc.jpg&#34; width=&#34;600&#34; height=&#34;1066&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/d0e8b459c3.jpg&#34; width=&#34;600&#34; height=&#34;1066&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/74d8adef50.jpg&#34; width=&#34;600&#34; height=&#34;1066&#34; alt=&#34;&#34;&gt;
</description>
    </item>
    
    <item>
      <title>cook-canton.go</title>
      <link>https://law.gmnz.xyz/2023/10/01/cookcantongo.html</link>
      <pubDate>Sun, 01 Oct 2023 11:35:43 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/10/01/cookcantongo.html</guid>
      <description>&lt;p&gt;Found a funny reel on Facebook titled &lt;code&gt;From Coder to Cooker&lt;/code&gt;. The person was cooking pancit canton with the help of codes. You can watch it &lt;a href=&#34;https://www.facebook.com/reel/3573374636244292&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I believe he was using C# on this one. Anyway, here&amp;rsquo;s my version in &lt;a href=&#34;https://go.dev/&#34;&gt;Go language&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;color:#f92672&#34;&gt;package&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;

&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; (&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;; 	&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;time&amp;#34;&lt;/span&gt;)

&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;boilingWaterDone&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;waterIsBoiling&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;

&lt;span style=&#34;color:#66d9ef&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Step&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt;
&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;Boil&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Step&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;iota&lt;/span&gt;; &lt;span style=&#34;color:#a6e22e&#34;&gt;CookNoodles&lt;/span&gt;; &lt;span style=&#34;color:#a6e22e&#34;&gt;DrainWater&lt;/span&gt;; &lt;span style=&#34;color:#a6e22e&#34;&gt;MixSeasoning&lt;/span&gt;; &lt;span style=&#34;color:#a6e22e&#34;&gt;MixWell&lt;/span&gt;)

&lt;span style=&#34;color:#66d9ef&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {
	&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; {
		&lt;span style=&#34;color:#a6e22e&#34;&gt;runStep&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;Boil&lt;/span&gt;)
		&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;boilingWaterDone&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt; {
			&lt;span style=&#34;color:#a6e22e&#34;&gt;waterIsBoiling&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
			&lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;
		}
	}
	&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;waterIsBoiling&lt;/span&gt; {
		&lt;span style=&#34;color:#a6e22e&#34;&gt;runStep&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;CookNoodles&lt;/span&gt;)
		&lt;span style=&#34;color:#a6e22e&#34;&gt;runStep&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;DrainWater&lt;/span&gt;)
		&lt;span style=&#34;color:#a6e22e&#34;&gt;runStep&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;MixSeasoning&lt;/span&gt;)
		&lt;span style=&#34;color:#a6e22e&#34;&gt;runStep&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;MixWell&lt;/span&gt;)
	}
}

&lt;span style=&#34;color:#66d9ef&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;runStep&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;step&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Step&lt;/span&gt;) {
	&lt;span style=&#34;color:#66d9ef&#34;&gt;switch&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;step&lt;/span&gt; {
	&lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Boil&lt;/span&gt;:
		&lt;span style=&#34;color:#a6e22e&#34;&gt;fmt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Println&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Boiling water...&amp;#34;&lt;/span&gt;)
	&lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;CookNoodles&lt;/span&gt;:
		&lt;span style=&#34;color:#a6e22e&#34;&gt;fmt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Println&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Cooking noodles...&amp;#34;&lt;/span&gt;)
		&lt;span style=&#34;color:#a6e22e&#34;&gt;time&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Sleep&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;time&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Minute&lt;/span&gt;) &lt;span style=&#34;color:#75715e&#34;&gt;// Cook noodles for 5 minutes
&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;	&lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;DrainWater&lt;/span&gt;:
		&lt;span style=&#34;color:#a6e22e&#34;&gt;fmt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Println&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Drain water...&amp;#34;&lt;/span&gt;)
	&lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;MixSeasoning&lt;/span&gt;:
		&lt;span style=&#34;color:#a6e22e&#34;&gt;fmt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Println&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Mix seasoning...&amp;#34;&lt;/span&gt;)
	&lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;MixWell&lt;/span&gt;:
		&lt;span style=&#34;color:#a6e22e&#34;&gt;fmt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Println&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Mix well...&amp;#34;&lt;/span&gt;)
	}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Apple Vision Ready</title>
      <link>https://law.gmnz.xyz/2023/09/06/apple-vision-ready.html</link>
      <pubDate>Wed, 06 Sep 2023 10:37:14 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/09/06/apple-vision-ready.html</guid>
      <description>&lt;p&gt;OnlineJobs app now works on &lt;a href=&#34;https://developer.apple.com/visionos/&#34;&gt;Apple&amp;rsquo;s visionOS&lt;/a&gt;.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/simulator-screenshotapple-vision-pro2023-09-06-at-09.56.12.png&#34; width=&#34;600&#34; height=&#34;449&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/simulator-screenshotapple-vision-pro2023-09-06-at-09.55.25.png&#34; width=&#34;600&#34; height=&#34;449&#34; alt=&#34;&#34;&gt;
</description>
    </item>
    
    <item>
      <title>VersionedSchema Protocol Updates</title>
      <link>https://law.gmnz.xyz/2023/08/23/versionedschema-protocol-updates.html</link>
      <pubDate>Wed, 23 Aug 2023 23:11:35 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/08/23/versionedschema-protocol-updates.html</guid>
      <description>&lt;p&gt;After updating to Xcode 15 beta 7, I got a &lt;code&gt;VersionedSchema&lt;/code&gt; error saying that&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;does not conform to protocol &#39;VersionedSchema&#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Previously, the variable &lt;code&gt;versionIdentifier&lt;/code&gt; was of the type String.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;static var versionIdentifier: String = &amp;quot;v1&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;On the latest Xcode 15 beta 7, &lt;code&gt;versionIdentifier&lt;/code&gt; is now of the type &lt;code&gt;Schema.Version&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;static var versionIdentifier: Schema.Version = Schema.Version(1, 0, 0)
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    
    <item>
      <title>Build Go programs with GitHub modules present</title>
      <link>https://law.gmnz.xyz/2023/08/07/build-go-programs.html</link>
      <pubDate>Mon, 07 Aug 2023 10:35:37 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/08/07/build-go-programs.html</guid>
      <description>&lt;p&gt;I was hit with an error when I try to run a Go script, &lt;code&gt;go run somescript.go&lt;/code&gt;. This is a note to my future self, in case I totally forgot.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;no required module provides package github.com/gofrs/uuid: go.mod file not found in current directory or any parent directory; see &#39;go help modules&#39;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I need to run the command below.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;mod&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;init&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;somescript&lt;/span&gt;.&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then it will output the following lines.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt;: &lt;span style=&#34;color:#a6e22e&#34;&gt;creating&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;new&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;mod&lt;/span&gt;: &lt;span style=&#34;color:#a6e22e&#34;&gt;module&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;somescript&lt;/span&gt;.&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt;
&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt;: &lt;span style=&#34;color:#a6e22e&#34;&gt;to&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;add&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;module&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;requirements&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;sums&lt;/span&gt;:
	&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;mod&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;tidy&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then run mod tidy.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;go mod tidy
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And the output will be.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt;: &lt;span style=&#34;color:#a6e22e&#34;&gt;finding&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;module&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;package&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;github&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;com&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;gofrs&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;uuid&lt;/span&gt;
&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt;: &lt;span style=&#34;color:#a6e22e&#34;&gt;downloading&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;github&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;com&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;gofrs&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;uuid&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;v4&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;.4.0&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;incompatible&lt;/span&gt;
&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt;: &lt;span style=&#34;color:#a6e22e&#34;&gt;found&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;github&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;com&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;gofrs&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;uuid&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;github&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;com&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;gofrs&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;uuid&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;v4&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;.4.0&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;incompatible&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then build it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;build&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;somescript&lt;/span&gt;.&lt;span style=&#34;color:#66d9ef&#34;&gt;go&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It will create the following files&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ls
go.mod		go.sum		somescript	 somescript.go
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Run the compiled script.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;./somescript
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    
    <item>
      <title>Throwback Android Developer Google Group</title>
      <link>https://law.gmnz.xyz/2023/08/07/throwback-android-developer.html</link>
      <pubDate>Mon, 07 Aug 2023 09:57:52 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/08/07/throwback-android-developer.html</guid>
      <description>&lt;p&gt;Out of the blue, I remember that I was in a Google Group community of Filipino Android developers back in 2011-ish. After some quick Googling, I found the group. This was in 2011? Wow.&lt;/p&gt;
&lt;p&gt;I am &lt;a href=&#34;https://groups.google.com/g/philippine-android-developers/c/w-qVYh5ciqY/m/Uf7swh-QLHYJ&#34;&gt;surprised the link is still alive&lt;/a&gt;, knowing Google&amp;rsquo;s history of shutting down things.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/screenshot-2023-08-07-at-9.49.50am.png&#34; width=&#34;600&#34; height=&#34;296&#34; alt=&#34;&#34;&gt;
&lt;p&gt;Yeah, the post feels kinda lonely. There weren&amp;rsquo;t that many Android developers in my area back then. At this point in time I am not even entirely sure if I could make a living out of this profession. The majority was going into PHP web development.&lt;/p&gt;
&lt;p&gt;But my sister always told me to &amp;ldquo;swim against the current&amp;rdquo;. So, that&amp;rsquo;s what I did. 12 years later I am still developing Android. And, iOS development.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>That Annoying Xcode 15 IDELogRedirectionPolicy</title>
      <link>https://law.gmnz.xyz/2023/08/05/that-annoying-xcode.html</link>
      <pubDate>Sat, 05 Aug 2023 21:32:16 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/08/05/that-annoying-xcode.html</guid>
      <description>&lt;p&gt;This issue will cause debugging on either device or simulator to slow down to a crawl.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/screenshot-2023-08-05-at-9.14.15pm.png&#34; width=&#34;600&#34; height=&#34;90&#34; alt=&#34;&#34;&gt;
&lt;p&gt;For future reference, here&amp;rsquo;s how I fixed it.&lt;/p&gt;
&lt;p&gt;Edit the current scheme by going to Manage Schemes.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/screenshot-2023-08-05-at-9.17.28pm.png&#34; width=&#34;442&#34; height=&#34;360&#34; alt=&#34;&#34;&gt;
&lt;p&gt;In your run scheme, add the environment variable &lt;code&gt;IDELogRedirectionPolicy&lt;/code&gt; with a value of &lt;code&gt;oslogToStdio&lt;/code&gt;. It should fix that issue now.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/screenshot-2023-08-05-at-9.19.08pm.png&#34; width=&#34;600&#34; height=&#34;324&#34; alt=&#34;&#34;&gt;
</description>
    </item>
    
    <item>
      <title>Chess Milestone: Advanced to Legend</title>
      <link>https://law.gmnz.xyz/2023/07/27/chess-milestone-advanced.html</link>
      <pubDate>Thu, 27 Jul 2023 10:21:23 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/07/27/chess-milestone-advanced.html</guid>
      <description>&lt;p&gt;A few days ago, I was able to advance to the most elite division of chess.com, the legend division. After playing a few games from this division, as I predicted, the games are so hard to win.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/3135519597.png&#34; width=&#34;600&#34; height=&#34;1298&#34; alt=&#34;&#34;&gt;
&lt;p&gt;Previously: &lt;a href=&#34;https://law.gmnz.xyz/2023/04/25/chess-milestone.html&#34;&gt;https://law.gmnz.xyz/2023/04/25/chess-milestone&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Sharing from Linux to macOS</title>
      <link>https://law.gmnz.xyz/2023/07/26/sharing-between-linux.html</link>
      <pubDate>Wed, 26 Jul 2023 11:34:25 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/07/26/sharing-between-linux.html</guid>
      <description>&lt;p&gt;Note: The OS versions I used here are macOS Sonoma 14 Beta 3 and Fedora Workstation 38.&lt;/p&gt;
&lt;p&gt;On the first try, I was supposed to enable file sharing from macOS and access it on my Fedora machine. But Apple&amp;rsquo;s Samba did not work. So, I tried the opposite instead.&lt;/p&gt;
&lt;h4 id=&#34;install-and-setup-samba-on-fedora&#34;&gt;Install and Setup Samba on Fedora&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;sudo dnf install samba
sudo systemctl enable smb --now
firewall-cmd --get-active-zones
sudo firewall-cmd --permanent --zone&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;FedoraWorkstation --add-service&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;samba
sudo firewall-cmd --reload
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Make sure the user already exists in fedora, in my case lwgmnz@fedora.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;sudo smbpasswd -a lwgmnz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Create the shared folder.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;mkdir /home/lwgmnz/share
sudo semanage fcontext --add --type &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;samba_share_t&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/home/lwgmnz/share(/.*)?&amp;#34;&lt;/span&gt;
sudo restorecon -R /home/lwgmnz/share
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Open &lt;code&gt;smb.conf&lt;/code&gt; and add the values below.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;sudo vim /etc/samba/smb.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Add the following settings at the end of the file.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-vim&#34; data-lang=&#34;vim&#34;&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;share&lt;/span&gt;]&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;comment&lt;/span&gt; = &lt;span style=&#34;color:#a6e22e&#34;&gt;My&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Share&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;path&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;/home/&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;lwgmnz&lt;/span&gt;/&lt;span style=&#34;color:#a6e22e&#34;&gt;share&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;writeable&lt;/span&gt; = &lt;span style=&#34;color:#a6e22e&#34;&gt;yes&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;browseable&lt;/span&gt; = &lt;span style=&#34;color:#a6e22e&#34;&gt;yes&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;public&lt;/span&gt; = &lt;span style=&#34;color:#a6e22e&#34;&gt;yes&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;create&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;mask&lt;/span&gt; = &lt;span style=&#34;color:#ae81ff&#34;&gt;0644&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;directory&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;mask&lt;/span&gt; = &lt;span style=&#34;color:#ae81ff&#34;&gt;0755&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#a6e22e&#34;&gt;write&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;list&lt;/span&gt; = &lt;span style=&#34;color:#a6e22e&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Restart Samba.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;sudo systemctl restart smb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;access-time&#34;&gt;Access time&lt;/h4&gt;
&lt;p&gt;Get Linux&amp;rsquo;s local IP address, in my case it is 192.168.0.112&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;ifconfig -a
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On macOS, open Finder, Go - Connect to Server and enter smb://192.168.0.112 and enter the username and password from the command line above.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/screenshot-2023-07-26-at-10.59.32am.png&#34; width=&#34;600&#34; height=&#34;344&#34; alt=&#34;&#34;&gt;
&lt;p&gt;The &lt;em&gt;share&lt;/em&gt; folder will now appear.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/screenshot-2023-07-26-at-10.59.42am.png&#34; width=&#34;600&#34; height=&#34;530&#34; alt=&#34;&#34;&gt;
</description>
    </item>
    
    <item>
      <title>Last.fm API</title>
      <link>https://law.gmnz.xyz/2023/07/08/lastfm-api.html</link>
      <pubDate>Sun, 09 Jul 2023 09:35:26 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/07/08/lastfm-api.html</guid>
      <description>&lt;p&gt;I recently recovered my Last.fm account, which was one of the top music services before Spotify or streaming in general. It says my account has been around since 2010, thus the cringy username &lt;a href=&#34;https://www.last.fm/user/xthekingisdeadx&#34;&gt;&lt;code&gt;xthekingisdeadx&lt;/code&gt;&lt;/a&gt;. My profile picture and username still stay the same.&lt;/p&gt;
&lt;p&gt;I want to retrieve my Last.fm data, particularly from my top artists and albums I have listened to for the past week or month. So I could share it somewhere.&lt;/p&gt;
&lt;p&gt;I am going to write my script using Go. I started this project in Python but encountered a couple of errors and I am just not in the mood to debug or solve them. Weekend projects should be fun, no?&lt;/p&gt;
&lt;h4 id=&#34;get-data&#34;&gt;GET data&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;package&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;

&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;net/http&amp;#34;&lt;/span&gt;

&lt;span style=&#34;color:#66d9ef&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {
    &lt;span style=&#34;color:#a6e22e&#34;&gt;response&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;error&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;http&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Get&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://ws.audioscrobbler.com/2.0/?method=user.gettopalbums&amp;amp;user=xthekingisdeadx&amp;amp;api_key=[api-key-here]&amp;amp;format=json&amp;amp;period=7day&amp;#34;&lt;/span&gt;)
    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;error&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;nil&lt;/span&gt; {

    }
    &lt;span style=&#34;color:#66d9ef&#34;&gt;defer&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;response&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Body&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Close&lt;/span&gt;()
    &lt;span style=&#34;color:#a6e22e&#34;&gt;body&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;error&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ioutil&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;ReadAll&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;response&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Body&lt;/span&gt;)
    &lt;span style=&#34;color:#a6e22e&#34;&gt;fmt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Println&lt;/span&gt;(string(&lt;span style=&#34;color:#a6e22e&#34;&gt;body&lt;/span&gt;))
}

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So far so good, script compiled. Now I can retrieve the data, but no parsing yet. Time to Google, &amp;ldquo;golang parse JSON&amp;rdquo;.&lt;/p&gt;
&lt;h4 id=&#34;json-parsing&#34;&gt;JSON parsing&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;package&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;

&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;net/http&amp;#34;&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;io/ioutil&amp;#34;&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;encoding/json&amp;#34;&lt;/span&gt;

&lt;span style=&#34;color:#66d9ef&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;main&lt;/span&gt;() {
    &lt;span style=&#34;color:#a6e22e&#34;&gt;response&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;error&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;http&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Get&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://ws.audioscrobbler.com/2.0/?method=user.gettopalbums&amp;amp;user=xthekingisdeadx&amp;amp;api_key=[api-key-here]&amp;amp;format=json&amp;amp;period=7day&amp;#34;&lt;/span&gt;)
    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;error&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;nil&lt;/span&gt; {

    }
    &lt;span style=&#34;color:#66d9ef&#34;&gt;defer&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;response&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Body&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Close&lt;/span&gt;()
    &lt;span style=&#34;color:#a6e22e&#34;&gt;body&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;error&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ioutil&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;ReadAll&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;response&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Body&lt;/span&gt;)
    &lt;span style=&#34;color:#75715e&#34;&gt;// fmt.Println(string(body))
&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
    &lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;jsonResponse&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Response&lt;/span&gt;
    &lt;span style=&#34;color:#a6e22e&#34;&gt;json&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Unmarshal&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;body&lt;/span&gt;, &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;jsonResponse&lt;/span&gt;)

    &lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;albums&lt;/span&gt; = &lt;span style=&#34;color:#a6e22e&#34;&gt;jsonResponse&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;TopAlbums&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Album&lt;/span&gt;
    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;_&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;album&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;range&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;albums&lt;/span&gt; {
        &lt;span style=&#34;color:#a6e22e&#34;&gt;fmt&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Println&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;album&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Artist&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;Name&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;:&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;album&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;PlayCount&lt;/span&gt;)
    }
}

&lt;span style=&#34;color:#66d9ef&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Response&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; {
    &lt;span style=&#34;color:#a6e22e&#34;&gt;TopAlbums&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;TopAlbums&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`json:&amp;#34;topalbums&amp;#34;`&lt;/span&gt;
}

&lt;span style=&#34;color:#66d9ef&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;TopAlbums&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; {
    &lt;span style=&#34;color:#a6e22e&#34;&gt;Album&lt;/span&gt; []&lt;span style=&#34;color:#a6e22e&#34;&gt;Album&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`json:album`&lt;/span&gt;
}

&lt;span style=&#34;color:#66d9ef&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Album&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; {
    &lt;span style=&#34;color:#a6e22e&#34;&gt;Artist&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Artist&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`json:&amp;#34;artist&amp;#34;`&lt;/span&gt;
    &lt;span style=&#34;color:#a6e22e&#34;&gt;Image&lt;/span&gt; []&lt;span style=&#34;color:#a6e22e&#34;&gt;Image&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`json:&amp;#34;image&amp;#34;`&lt;/span&gt;
    &lt;span style=&#34;color:#a6e22e&#34;&gt;PlayCount&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;
}

&lt;span style=&#34;color:#66d9ef&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Artist&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; {
    &lt;span style=&#34;color:#a6e22e&#34;&gt;ArtistUrl&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`json:&amp;#34;url&amp;#34;`&lt;/span&gt;
    &lt;span style=&#34;color:#a6e22e&#34;&gt;Name&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt;
}

&lt;span style=&#34;color:#66d9ef&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Image&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;struct&lt;/span&gt; {
    &lt;span style=&#34;color:#a6e22e&#34;&gt;Size&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`json:&amp;#34;size&amp;#34;`&lt;/span&gt;
    &lt;span style=&#34;color:#a6e22e&#34;&gt;Text&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;string&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;`json:&amp;#34;#text&amp;#34;`&lt;/span&gt;
}

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;gui-toolkit&#34;&gt;GUI Toolkit&lt;/h4&gt;
&lt;p&gt;Since I only have very minimal experience with the Go language, I am not sure what my next steps are. Either, I will go with the GUI toolkit route or image manipulation.&lt;/p&gt;
&lt;h4 id=&#34;switching-to-swiftui&#34;&gt;Switching to SwiftUI&lt;/h4&gt;
&lt;p&gt;After researching Go UI frameworks, I eventually decided to use what I am currently familiar and, that is SwiftUI. Another reason is the sad state of native UI frameworks using the Go language because it seems they aren&amp;rsquo;t many options available. I don&amp;rsquo;t want to use cross-platforms or UI frameworks using web technologies for this is just a simple project.&lt;/p&gt;
&lt;h4 id=&#34;one-hour-later&#34;&gt;One hour later&lt;/h4&gt;
&lt;p&gt;Using &lt;code&gt;LazyHGrid&lt;/code&gt;, this is what it looks like now.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/screenshot-2023-07-08-at-9.37.16pm.png&#34; width=&#34;600&#34; height=&#34;276&#34; alt=&#34;&#34;&gt;
&lt;h4 id=&#34;next&#34;&gt;Next&lt;/h4&gt;
&lt;p&gt;My next step would be to be able to export this whole &lt;code&gt;View&lt;/code&gt; into an image.&lt;/p&gt;
&lt;h4 id=&#34;source-code&#34;&gt;Source Code&lt;/h4&gt;
&lt;p&gt;Code can be found here: &lt;a href=&#34;https://github.com/lawgimenez/lastfmdata&#34;&gt;https://github.com/lawgimenez/lastfmdata&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>WWDC 2023</title>
      <link>https://law.gmnz.xyz/2023/07/05/wwdc.html</link>
      <pubDate>Wed, 05 Jul 2023 18:42:56 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/07/05/wwdc.html</guid>
      <description>&lt;p&gt;I just realized that I have not written something or anything about Apple&amp;rsquo;s WWDC 2023. I was too busy catching up with the WWDC sessions and some fatherly stuff I have to deal with.&lt;/p&gt;
&lt;p&gt;Overall, I am impressed by the event and the news coming out of it. I just want to write down a couple of thoughts before I forget.&lt;/p&gt;
&lt;h4 id=&#34;xcode-15&#34;&gt;Xcode 15&lt;/h4&gt;
&lt;p&gt;Xcode 15 is buggy as hell. Running an emulator or preview &lt;a href=&#34;https://developer.apple.com/forums/thread/731219&#34;&gt;makes my machine overheat&lt;/a&gt;. As of this writing, I am on the second beta release of Xcode 15, and still have the same overheating issue.&lt;/p&gt;
&lt;h4 id=&#34;betas&#34;&gt;Betas&lt;/h4&gt;
&lt;p&gt;I installed the beta releases right away, iOS 17 and, Sonoma. My first actually. So I ended up not being able to release new versions on Xcode 14. Luckily, we are currently rewriting the app for the upcoming version of iOS and iPadOS 17. Remind me next time not to do this shit again.&lt;/p&gt;
&lt;h4 id=&#34;notes-codeblock&#34;&gt;Notes codeblock&lt;/h4&gt;
&lt;p&gt;Notes has already the long-awaited code block feature. For me, it is a sort of a code block-ish attempt, Apple called it &lt;code&gt;monostyled&lt;/code&gt;. Now my code won&amp;rsquo;t look awkward anymore on my notes.&lt;/p&gt;
&lt;h4 id=&#34;symbols-5&#34;&gt;Symbols 5&lt;/h4&gt;
&lt;p&gt;It has been a joy to use Symbols 5 with its animations. But, I wish &lt;code&gt;symbolEffect()&lt;/code&gt; will work inside &lt;code&gt;TabView&lt;/code&gt;. I haven&amp;rsquo;t yet figured out how to make it work.&lt;/p&gt;
&lt;h4 id=&#34;assets-static-access&#34;&gt;Assets static access&lt;/h4&gt;
&lt;p&gt;One of the best lowkey features of Xcode 15, I don&amp;rsquo;t have to risk misspelling my assets while accessing them in my code.&lt;/p&gt;
&lt;h4 id=&#34;others&#34;&gt;Others&lt;/h4&gt;
&lt;p&gt;I can&amp;rsquo;t wait to play with SwiftUI animations, SwiftData, and the not yet released TipKit. And Macros.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Thoughts on Stack Overflow 2023 Survey</title>
      <link>https://law.gmnz.xyz/2023/06/14/philippines-developer-count.html</link>
      <pubDate>Wed, 14 Jun 2023 10:37:59 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/06/14/philippines-developer-count.html</guid>
      <description>&lt;p&gt;Note: I always participate in this survey every year.&lt;/p&gt;
&lt;h3 id=&#34;developer-type&#34;&gt;Developer Type&lt;/h3&gt;
&lt;p&gt;On the developer type question, there is only 3.38% that consider themselves mobile developers. This is good I think? It means less competition for me. It has almost the same percentage as students.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/0f3fdde3e4.png&#34; width=&#34;600&#34; height=&#34;443&#34; alt=&#34;&#34; /&gt;
&lt;h3 id=&#34;geography&#34;&gt;Geography&lt;/h3&gt;
&lt;p&gt;The Philippines has only 0.4% of the respondents who participated in this survey.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/e34b67e424.png&#34; width=&#34;600&#34; height=&#34;168&#34; alt=&#34;&#34; /&gt;
&lt;h3 id=&#34;age&#34;&gt;Age&lt;/h3&gt;
&lt;p&gt;My age bracket is still a significant percentage of the professional developer category.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/5cd4d9d871.png&#34; width=&#34;600&#34; height=&#34;463&#34; alt=&#34;&#34; /&gt;
&lt;h3 id=&#34;programming-language&#34;&gt;Programming Language&lt;/h3&gt;
&lt;p&gt;I code in Kotlin and Swift professionally. Kotlin still holds a significant lead over Swift.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/08ea00233b.png&#34; width=&#34;600&#34; height=&#34;512&#34; alt=&#34;&#34; /&gt;
&lt;h3 id=&#34;other-frameworks&#34;&gt;Other Frameworks&lt;/h3&gt;
&lt;p&gt;I believe this is the first time SwiftUI has appeared in the other frameworks section. As someone who&amp;rsquo;s coding on SwiftUI for the past several months, this is a huge step and hopefully will continue to increase significantly in the next several years.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/5b5dc02a3c.png&#34; width=&#34;600&#34; height=&#34;442&#34; alt=&#34;&#34; /&gt;
&lt;h3 id=&#34;ide&#34;&gt;IDE&lt;/h3&gt;
&lt;p&gt;I agree with this one, Android Studio is way much better and more fun to use than Xcode.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/a46c0347c9.png&#34; width=&#34;600&#34; height=&#34;313&#34; alt=&#34;&#34; /&gt;
</description>
    </item>
    
    <item>
      <title>Stack Overflow Keycap Reward</title>
      <link>https://law.gmnz.xyz/2023/06/08/stackoverflow-keycap-reward.html</link>
      <pubDate>Thu, 08 Jun 2023 08:51:33 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/06/08/stackoverflow-keycap-reward.html</guid>
      <description>&lt;p&gt;My tiny reward from Stack Overflow arrived yesterday, a small single keycap. I won it when I answered their Saved the Day story. I did not remember when, it was a long time ago.&lt;/p&gt;
&lt;p&gt;Initially, I told them to not even bother shipping a small item overseas, the Philippines&#39; Customs are not worth the trouble.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/a154ed6907.png&#34; width=&#34;600&#34; height=&#34;310&#34; alt=&#34;&#34; /&gt;
&lt;p&gt;But they insisted. Thanks!&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/ca811cbc6f.jpg&#34; width=&#34;600&#34; height=&#34;1066&#34; alt=&#34;&#34; /&gt;
</description>
    </item>
    
    <item>
      <title>r/BusinessPH will be going dark</title>
      <link>https://law.gmnz.xyz/2023/06/05/reddit-blackout.html</link>
      <pubDate>Mon, 05 Jun 2023 19:57:11 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/06/05/reddit-blackout.html</guid>
      <description>&lt;p&gt;The sub r/BusinessPH will join the Reddit blackout on June 12 - 14, 2023, this is in solidarity with developers of third-party clients who will have to pay a hefty price for access to Reddit’s APIs.&lt;/p&gt;
&lt;p&gt;For more details, &lt;a href=&#34;https://www.reddit.com/r/Save3rdPartyApps/comments/13yh0jf/dont_let_reddit_kill_3rd_party_apps/&#34;&gt;you can read it here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As a mobile developer myself and an Apollo app user, I feel and understand very well their current plight. If you have any questions, or comments don&amp;rsquo;t hesitate to contact the mods.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>dSYM workaround in Xcode 14</title>
      <link>https://law.gmnz.xyz/2023/05/23/dsym-workaround-in.html</link>
      <pubDate>Tue, 23 May 2023 08:59:55 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/05/23/dsym-workaround-in.html</guid>
      <description>&lt;p&gt;Starting with Xcode 14, &lt;a href=&#34;https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes#Deprecations&#34;&gt;Bitcode has been deprecated&lt;/a&gt;. So, in our team&amp;rsquo;s case, it is impossible to download dSYM files for debugging crash logs. If you are using Crashlytics or Bugsnag, this is a requirement to make sense of the received crash logs from iOS.&lt;/p&gt;
&lt;p&gt;But there is a workaround. Previously, all you have to do was go to App Store Connect and download the dSYMs directly from there. But that option is not available anymore.&lt;/p&gt;
&lt;p&gt;But there is a workaround.&lt;/p&gt;
&lt;h3 id=&#34;workaround&#34;&gt;Workaround&lt;/h3&gt;
&lt;p&gt;Open the Window organizer in your Xcode and go to the Archive option and right-click on a particular build. Then, select Show in Finder option.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/c3bfbdf39c.png&#34; width=&#34;600&#34; height=&#34;161&#34; alt=&#34;&#34; /&gt;
&lt;p&gt;You will see files with &lt;code&gt;.xcarchive&lt;/code&gt; extensions. Right-click on one of those and select Show Package Contents. There you will see a dSYMs folder. It should contain the dSYMs file needed for your debugging.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Underwhelming Google I/O 2023</title>
      <link>https://law.gmnz.xyz/2023/05/18/underwhelming-google-io.html</link>
      <pubDate>Thu, 18 May 2023 09:52:20 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/05/18/underwhelming-google-io.html</guid>
      <description>&lt;p&gt;After watching half of the Google I/O Keynote, I had to close the video because it was starting to bore me. There was no excitement for me, AI/ML is a topic I am not interested in. I took notes of the keynote while watching, and I just wanted to publish it here for keepsake purposes.&lt;/p&gt;
&lt;h3 id=&#34;google-io-2023-notes&#34;&gt;Google IO 2023 Notes&lt;/h3&gt;
&lt;p&gt;Keynote&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;So many AI/ML keynotes and features. Not interested. Bard? Does not interest me.&lt;/li&gt;
&lt;li&gt;Bard is available now in 180 countries. Philippines?&lt;/li&gt;
&lt;li&gt;Why would I like to edit photos? It seems fake.&lt;/li&gt;
&lt;li&gt;Help me write. Nice, now spams will feel more real.&lt;/li&gt;
&lt;li&gt;There is gonna be AI also in Google Search. Does this means I don’t have to concatenate “Reddit” in every search query?&lt;/li&gt;
&lt;li&gt;AI on Google Cloud. Of course. Google AI.&lt;/li&gt;
&lt;li&gt;AI on Android.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Stuffs to check out&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Android design hub: UI Design  |  Android Developers&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Download Android Studio beta**&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>SwiftUI Tap Anywhere</title>
      <link>https://law.gmnz.xyz/2023/05/12/swiftui-tap-anywhere.html</link>
      <pubDate>Fri, 12 May 2023 10:19:12 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/05/12/swiftui-tap-anywhere.html</guid>
      <description>&lt;p&gt;Today I learned how to implement tap anywhere to dismiss the keyboard on SwiftUI.&lt;/p&gt;
&lt;p&gt;In your parent stack, either &lt;code&gt;VStack&lt;/code&gt; or &lt;code&gt;HStack&lt;/code&gt;, add the following code.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;.contentShape(Rectangle())
.onTapGesture {
     UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The most important thing to take note here is the contentShape modifier or tap gesture will not work.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>YouTube Coding</title>
      <link>https://law.gmnz.xyz/2023/05/10/youtube-coding.html</link>
      <pubDate>Wed, 10 May 2023 08:23:53 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/05/10/youtube-coding.html</guid>
      <description>&lt;p&gt;3 days ago I uploaded on YouTube my coding in SwiftUI, working on a couple of simple bug fixes for my hobby project.&lt;/p&gt;
&lt;p&gt;My wife gave me this idea and also I remember I have some coding sessions in Loom from 2 years ago, where I did a coding demo for a client. And, looking back at those videos is really cool and nostalgic.&lt;/p&gt;
&lt;p&gt;So, I decided why not upload it on YouTube.&lt;/p&gt;
&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/5cn09JumclA&#34; title=&#34;YouTube video player&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen&gt;&lt;/iframe&gt;
</description>
    </item>
    
    <item>
      <title>Chess Milestone</title>
      <link>https://law.gmnz.xyz/2023/04/25/chess-milestone.html</link>
      <pubDate>Wed, 26 Apr 2023 10:44:12 +0800</pubDate>
      
      <guid>http://lwgmnz.micro.blog/2023/04/25/chess-milestone.html</guid>
      <description>&lt;p&gt;I achieved a very rare milestone last night. I had a 10-game winning streak in a &amp;ldquo;Champions&amp;rdquo; Division. I am not entirely privy to the division but I am pretty sure this is not a beginner&amp;rsquo;s division.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/81671ee145.png&#34; width=&#34;600&#34; height=&#34;1298&#34; alt=&#34;&#34; /&gt;
&lt;p&gt;My new routine for the past several months is to play a couple of chess games before going to sleep or after putting our son to sleep at night.&lt;/p&gt;
&lt;p&gt;And I am also currently no. 1 as of last night.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/67704/2023/3b7f0148dd.png&#34; width=&#34;600&#34; height=&#34;1298&#34; alt=&#34;&#34; /&gt;
</description>
    </item>
    
  </channel>
</rss>
