<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>I Read This Week - abemassry</title><link>abemassry.com</link><description>What abemassry read about this week</description><atom:link href="https://abemassry.com/rss" rel="self" type="application/rss+xml"></atom:link><item><title>I Read This Week - abemassry - 2025-06-01</title><link>abemassry.com/post/2025/06/01</link><guid>abemassry.com/post/2025/06/01</guid><description># Learning Art&#xA;A large part of gamedev is art, much more than I realized initially.&#xD;&#xA;At first I thought it was a lot of programming, being a programmer I&#xD;&#xA;started gamedev from a programming point of view. Little did I realize&#xD;&#xA;that half of the amount of time I was doing gamedev I was going to be&#xD;&#xA;working on art and the other half was programming (there&#39;s also a&#xD;&#xA;third half for music, but we&#39;ll get into that later).&#xD;&#xA;Out of the three my weakest area was art and most games are very art&#xD;&#xA;heavy so I looked into learning pixel art which seemed like the&#xD;&#xA;natural progression for the next games I&#39;d be working on and there was&#xD;&#xA;a quote from a pixel art book that read something like this:&#xD;&#xA;&#xD;&#xA;&gt; In order to learn pixel art you must first learn art. This book cannot teach you art.&#xD;&#xA;&#xD;&#xA;So I researched &#34;how to learn art&#34; and it pointed to &#34;learn how to&#xD;&#xA;draw.&#34; So I started researching how do I learn how to draw and I found&#xD;&#xA;a couple of books. After spending a few hours on each book the best&#xD;&#xA;one emerged out of the bunch and I decided to complete it because it&#xD;&#xA;seemed to have the best learning curve. Easy to get started, step by&#xD;&#xA;step instructions, and the only requirements were the ability to draw&#xD;&#xA;stick figures, perfect. The book mentioned multiple tools and pencils&#xD;&#xA;and if pencil drawing was my endgame I definitely would have taken the&#xD;&#xA;advice, but before investing in any of those I wanted to see if the&#xD;&#xA;ability to draw could even be acquired by someone like me, who&#xD;&#xA;possessed no natural drawing ability, so to speak. So I started with a&#xD;&#xA;simple number 2 pencil that was lying around the house, and an old&#xD;&#xA;sketchpad that my daughter was no longer using.&#xD;&#xA;&#xD;&#xA;This was an example of my natural drawing ability if I was&#xD;&#xA;concentrating super hard and using a straight edge for some of the&#xD;&#xA;lines while reading a different book about animation:&#xD;&#xA;![first drawing](https://wsnd.io/PuXDTY2M/bafkreifgxpcavbrmqiuiqtqozt3utstxmbf6ei5pbkdslod3gdu5qv2cta.jpg)&#xD;&#xA;&#xD;&#xA;The book is called [Drawing for the Absolute&#xD;&#xA;Beginner](https://bookshop.org/a/114194/9781581807899) and I highly,&#xD;&#xA;highly recommend it. I also recommend the paperback copy.&#xD;&#xA;&#xD;&#xA;This book took me from not being able to draw at all, to being&#xD;&#xA;confident enough to start sharing my drawings with others to being&#xD;&#xA;able to design logos, characters, and to replicate images that I see&#xD;&#xA;in nature, on a piece of paper with a pencil.&#xD;&#xA;&#xD;&#xA;Here are some examples of drawings that the book taught me:&#xD;&#xA;&#xD;&#xA;### First lesson:&#xD;&#xA;![first lesson](https://wsnd.io/DsDLGsUw/bafkreibrwrgcxlxa2uao5moygu5kgflh6pb4tmr3eqxulzb2zvaukvzw5y.jpg)&#xD;&#xA;&#xD;&#xA;### Mid lesson:&#xD;&#xA;![mid lesson](https://wsnd.io/px2BTHyL/48fe1161-4476-46f9-a135-1983fa115890.png)&#xD;&#xA;&#xD;&#xA;### Creature drawings:&#xD;&#xA;&#xD;&#xA;##### Cat:&#xD;&#xA;![cat](https://wsnd.io/PuEXdzFf/4bc6b96e-4eb8-447b-a084-d90c989cc7a7.png)&#xD;&#xA;&#xD;&#xA;##### Cow:&#xD;&#xA;![cow](https://wsnd.io/7R3o5DGA/aa76ccec-4626-467b-8da1-81df21f7ede7.png)&#xD;&#xA;&#xD;&#xA;##### Swan:&#xD;&#xA;![swan](https://wsnd.io/hVVV1pcR/93f3ae2a-c37a-46f0-9241-007c366d5c72.png)&#xD;&#xA;&#xD;&#xA;##### Wolf:&#xD;&#xA;![wolf](https://wsnd.io/DbMoaNug/b3bf4b64-d854-4fff-8465-a2d20565f22e.png)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;### Later lesson:&#xD;&#xA;![later lesson](https://wsnd.io/7blC7p54/8051ae7f-d17b-4570-b06b-9492fc6ca5d7.png)&#xD;&#xA;&#xD;&#xA;### Final Lesson:&#xD;&#xA;![final lesson](https://wsnd.io/NJWh5TPS/50d246f5-f3a0-42da-b6d5-0154c38f25ca.png)&#xD;&#xA;&#xD;&#xA;After using this book I started looking into what art style I wanted&#xD;&#xA;for the next game and I decided on&#xD;&#xA;[Kawaii](https://en.wikipedia.org/wiki/Kawaii) characters. So I&#xD;&#xA;started working on this book [How to Draw Cute Kawaii in Simple&#xD;&#xA;Steps](https://bookshop.org/a/114194/9781782219460). Now you might&#xD;&#xA;look at some of the drawings and want to start out with this book, but&#xD;&#xA;remember I couldn&#39;t draw at all. I highly highly recommend starting&#xD;&#xA;out with [Drawing for the Absolute&#xD;&#xA;Beginner]()https://bookshop.org/a/114194/9781581807899 and then going&#xD;&#xA;the next book, I would not have been able to start drawing if I had&#xD;&#xA;done it a different way.&#xD;&#xA;&#xD;&#xA;### The first Kawaii drawing:&#xD;&#xA;![kawaii fox](https://wsnd.io/rFgTGuka/a4a72df3-289b-4f69-b2ec-ca1296db34e8.png)&#xD;&#xA;&#xD;&#xA;After that you can specialize in whichever type of art you&#39;d like. I&#xD;&#xA;went for pixel art and now I have the confidence and ability to&#xD;&#xA;re-read the first pixel art book. The next post will be documenting&#xD;&#xA;learning pixel art.&#xD;&#xA;&#xD;&#xA;Most of what I draw is digital now, while I continue to hone my pencil&#xD;&#xA;and paper drawing skills. Every so often I&#39;ll feel the need to draw&#xD;&#xA;something physically because I&#39;m afraid my skills will disappear&#xD;&#xA;because I spent so many years without the ability to draw. But it&#39;s&#xD;&#xA;the same as many sayings, &#34;practice makes perfect,&#34; &#34;if you don&#39;t use&#xD;&#xA;it you lose it,&#34; etc.&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2024-09-02</title><link>abemassry.com/post/2024/09/02</link><guid>abemassry.com/post/2024/09/02</guid><description># The Beginning&#xA;The beginning of my gamedev journey started with an idea. When I was a&#xD;&#xA;kid I had this idea of a 3d rendered rain drop falling from the sky.&#xD;&#xA;Absorbing other rain drops, splitting, dispersing, and coming back&#xD;&#xA;together as it fell through the blue sky. Eventually it hit the&#xD;&#xA;ground, landed in a puddle, and the puddle was run over by a car. It&#xD;&#xA;was a car commercial. My big idea was a car commercial.&#xD;&#xA;&#xD;&#xA;Now what does this have to do with gamedev you might ask? Absolutely&#xD;&#xA;nothing. But I thought it would be cool to make a videogame.&#xD;&#xA;&#xD;&#xA;A year earlier my daughter wanted to make a videogame with me, I had&#xD;&#xA;recently found out about the&#xD;&#xA;[PICO-8](https://www.lexaloffle.com/pico-8.php) game engine and&#xD;&#xA;thought it would be the perfect opportunity for both of us to learn&#xD;&#xA;game development. She was enthusiastic about drawing the characters&#xD;&#xA;and the game map, and creating the sound and music. I was familiar&#xD;&#xA;with programming but as a web developer, we weren&#39;t sure if we would&#xD;&#xA;succeed but we tried anyway.&#xD;&#xA;&#xD;&#xA;Several months later we finished the game. She decided to move on to&#xD;&#xA;other interests but now that we had created one game all of a sudden I&#xD;&#xA;had so many other ideas for games. The car commercial idea I had in&#xD;&#xA;mind I thought might make a good first game, so I decided to start&#xD;&#xA;developing it. I have always liked the&#xD;&#xA;[shump](https://en.wikipedia.org/wiki/Shoot_%27em_up) genre of&#xD;&#xA;videogames and I really liked the game&#xD;&#xA;[Osmos](https://www.osmos-game.com/) which after beating I still&#xD;&#xA;wanted more. What about some type of mashup, but rendered and&#xD;&#xA;developed for a retro fantasy console?&#xD;&#xA;&#xD;&#xA;At the same time the pandemic hit and we were in lock down. Isolated&#xD;&#xA;from family and friends, I decided to take our hangout sessions&#xD;&#xA;online. My friends and I had always thought it would be cool to make a&#xD;&#xA;videogame, we liked playing them. Maybe this was the impetus to get&#xD;&#xA;started.&#xD;&#xA;&#xD;&#xA;So I would share my screen on&#xD;&#xA;[Twitch](https://www.twitch.tv/abemassry) and they would tune in,&#xD;&#xA;sometimes joining through chat and sometimes through voice and I would&#xD;&#xA;live code and draw the game and they would give me real time feedback.&#xD;&#xA;This was also essential as we composed the music. It was truly a&#xD;&#xA;collaborative game development effort. Other people would drop in on&#xD;&#xA;Twitch and also give us feedback. We&#39;d go on all sorts of tangents.&#xD;&#xA;Six months later we had a finished game [Rain&#xD;&#xA;Drop](https://abemassry.itch.io/rain-drop) for the&#xD;&#xA;[PICO-8](https://www.lexaloffle.com/pico-8.php). With 90% of the&#xD;&#xA;development effort done live online.&#xD;&#xA;&#xD;&#xA;It was a lot of fun working with a tight knit team and also having a&#xD;&#xA;bunch of outside collaborators on&#xD;&#xA;[Twitch](https://www.twitch.tv/abemassry). If you get a chance to&#xD;&#xA;check out the [credits](https://github.com/abemassry/rain-drop?tab=readme-ov-file#credits)&#xD;&#xA;you can see everyone who had a hand in this game.&#xD;&#xA;&#xD;&#xA;The album: In addition to the game we also dropped an&#xD;&#xA;[album](https://abemassry.bandcamp.com/album/rain-drop-original-video-game-soundtrack)&#xD;&#xA;a little while afterwards featuring the soundtrack of the game.&#xD;&#xA;&#xD;&#xA;Our first sale. A couple of months after launch we made our first&#xD;&#xA;sale, this was released on [itch.io](https://itch.io/) and we weren&#39;t&#xD;&#xA;even expecting the general public to play the game much less buy it.&#xD;&#xA;We made one sale so far, but a sale is a sale. We were now officially&#xD;&#xA;game developers. We couldn&#39;t just stop at one game, now that we had&#xD;&#xA;all these ideas and the ability to bring those ideas to life. You&#39;ll&#xD;&#xA;have to wait for the next post to find out what happens next.&#xD;&#xA;&#xD;&#xA;![rain-drop](https://wsnd.io/3efAXNF1/rain-drop.png)&#xD;&#xA;&#xD;&#xA;Play Rain Drop on [Mobile](https://www.lexaloffle.com/bbs/?tid@898)&#xD;&#xA;and [PC](https://abemassry.itch.io/rain-drop)&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2024-08-01</title><link>abemassry.com/post/2024/08/01</link><guid>abemassry.com/post/2024/08/01</guid><description># First Post&#xA;Here’s the first post of my game dev blog. I decided to go the lowest&#xD;&#xA;effort route and turn my normal blog into my game dev blog. Or more&#xD;&#xA;like this space is my blog and right now it’s chronicling my journey&#xD;&#xA;through game dev. Maybe in the future it will become something&#xD;&#xA;different.&#xD;&#xA;&#xD;&#xA;Blogging has always been a challenge for me, the primary reason is I&#xD;&#xA;don’t feel like I have anything interesting to say. As soon as I do&#xD;&#xA;have something interesting to say, I say it, I don’t use that many&#xD;&#xA;words to say it, and then I’m done. I’m sure some of you reading this&#xD;&#xA;have felt the same way. In fact I’ve talked to others that said this&#xD;&#xA;very sentence before I could.&#xD;&#xA;&#xD;&#xA;So now that I have a new thing I’m working on, I have something to&#xD;&#xA;write about and I get to share it with you. Follow my [RSS&#xD;&#xA;feed](https://abemassry.com/rss) for updates.&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2023-01-09</title><link>abemassry.com/post/2023/01/09</link><guid>abemassry.com/post/2023/01/09</guid><description># How to Review Pull Requests, Effectively, While Still Being a Nice Person&#xA;This guide will attempt to show you how to effectively review Pull&#xD;&#xA;Requests (PRs) while still being a nice person. This guide is aimed at&#xD;&#xA;junior developers that have just gotten a task of reviewing a PR for&#xD;&#xA;the first time. More senior developers can also refer to this guide as&#xD;&#xA;a refresher; and I will be referring to this guide in the future when&#xD;&#xA;I need a refresher.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;This guide is centered around Git but is applicable to other version&#xD;&#xA;control systems like Mercurial. However I’ll be specifically talking&#xD;&#xA;about the web interface of GitHub.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Step 1: Take a look at the title.&#xD;&#xA;&#xD;&#xA;Sometimes the title says everything you need, something like “Move the&#xD;&#xA;navbar up 1px.” With a title like that you hardly even need a&#xD;&#xA;description. But most of the time the title will give you an idea of&#xD;&#xA;what the PR is about and we’ll need to read the description as well.&#xD;&#xA;So we’ll move on to the next step.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Step 2: Read the description.&#xD;&#xA;&#xD;&#xA;The description should give you all the information you need to&#xD;&#xA;determine what the goal of the PR is. If it’s not clear what this&#xD;&#xA;change is or why it’s needed, reach out to the author of the PR in a&#xD;&#xA;direct message in another channel. They’ll be much more receptive and&#xD;&#xA;would probably really like the chance to tell you about it. If they&#xD;&#xA;give you enough information where you understand it, add a comment&#xD;&#xA;that clarifies it for anyone else reading. Start it with “spoke&#xD;&#xA;offline and …”.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;The last option should be to leave a comment asking this. The reason&#xD;&#xA;is, it’s a public comment and it might be taken the wrong way.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;### Step 2a: Read the comments as well.&#xD;&#xA;&#xD;&#xA;The questions that you have may have been answered already.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Step 3: Read the Code&#xD;&#xA;&#xD;&#xA;In order to find out what the code does after you find out what the&#xD;&#xA;code is attempting to do you have to determine if the code actually&#xD;&#xA;does this. This is the first part of reading the code. The second part&#xD;&#xA;of reading the code is to find out where the changes are specifically&#xD;&#xA;when you go to test the code.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Now at this point if there is something in the code that you don’t&#xD;&#xA;understand how it works it’s perfectly fine to write a comment saying&#xD;&#xA;something like: “I don’t understand how this works” or “How does this&#xD;&#xA;section work?” You can also highlight and use markdown for specific&#xD;&#xA;parts. If there are large sections of the code that need explanation&#xD;&#xA;then you should probably pair with the author to explain the pieces,&#xD;&#xA;if you’re able, or even better screenshare. This can also be done&#xD;&#xA;after running the code.&#xD;&#xA;&#xD;&#xA;![how does this code&#xD;&#xA;work](https://wsnd.io/825yq3ly/Screen%20Shot%202023-01-06%20at%2010.39.40%20PM.png)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Step 4: Run the code&#xD;&#xA;&#xD;&#xA;To really evaluate the code you’ll need to pull the code down and run&#xD;&#xA;it. The GitHub CLI makes this easy and there are other&#xD;&#xA;[tools](https://github.com/abemassry/git-cpr) to make it easy to pull&#xD;&#xA;down someone’s branch.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Hopefully you and the team have a development environment set up that&#xD;&#xA;makes this easy. If not, that&#39;s an area of improvement. In order to&#xD;&#xA;truly evaluate the PR and not just give it a rubber stamp (merge&#xD;&#xA;without looking) the code needs to be fully read, run, and evaluated.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Since you’ve read the code and the title and description it should&#xD;&#xA;make sense where to look when running the code to see what the&#xD;&#xA;behavior is. If it fixes something make sure it’s broken first, then&#xD;&#xA;pull the code down and make sure the code fixes the broken thing. If&#xD;&#xA;there is an addition make sure it does what the description, code, and&#xD;&#xA;title says it’s supposed to do. If there’s a change or non behavioral&#xD;&#xA;refactor, check where the changes might be.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;### Step 4a: If you find a problem&#xD;&#xA;&#xD;&#xA;When running the code you might find an issue, the most helpful thing&#xD;&#xA;you can do is figure out where the problem is, by doing a little&#xD;&#xA;debugging you might be able to help find out where the problem is.&#xD;&#xA;Very often it’s something small that has an exact location in the PR&#xD;&#xA;where the problem occurs, after debugging the problem you might be&#xD;&#xA;able to find a fix. If you do find a fix, suggest a change inline in&#xD;&#xA;the GitHub web interface. This makes it super easy for the author&#xD;&#xA;because they only have to click 2 buttons to accept your change. You&#xD;&#xA;can also provide them with how you ran the code, what you saw, and how&#xD;&#xA;you changed it.&#xD;&#xA;&#xD;&#xA;#### Suggest Changes Button&#xD;&#xA;![suggest changes](https://wsnd.io/ze30SpXO/suggest_changes%20(1).png)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;#### Suggesting Changes&#xD;&#xA;![suggesting changes](https://wsnd.io/nOt61Szt/Screen%20Shot%202023-01-06%20at%2010.53.11%20PM.png)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;#### Suggested Changes&#xD;&#xA;&#xD;&#xA;![suggested changes](https://wsnd.io/kKQGAFuw/Screen%20Shot%202023-01-06%20at%2010.54.36%20PM.png)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;#### The author committing the suggestion&#xD;&#xA;&#xD;&#xA;![commit suggestion](https://wsnd.io/65P27j4g/Screen%20Shot%202023-01-06%20at%2010.56.00%20PM.png)&#xD;&#xA;&#xD;&#xA;If you can’t determine where in the code the problem is occurring, let&#xD;&#xA;them know and provide full details on how they can reproduce what you&#xD;&#xA;found. After leaving all of the info you might want to reach out to&#xD;&#xA;them with a direct message in case they want to pair with you so they&#xD;&#xA;can see the issue happening in real time.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Step 5: Re-read the code&#xD;&#xA;&#xD;&#xA;You read the code the first time, you checked everything before,&#xD;&#xA;title, description, etc. you’ve very familiar with this PR. You’ve&#xD;&#xA;even run the code and it works, might as well say “looks good to me”&#xD;&#xA;(LGTM) and hit the merge button (don’t do this). This would be wrong&#xD;&#xA;to do at this point and you’d miss out on a thorough evaluation of the&#xD;&#xA;code and a learning opportunity for yourself.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Now that you’re familiar with the code and you’ve run the code and&#xD;&#xA;know what it does, take a second detailed look at it. Figure out which&#xD;&#xA;pieces do what. While you’re reading it at this point several items&#xD;&#xA;might appear that pop out at you now, that you might not have seen&#xD;&#xA;before. Things that might not be a problem now might become a problem&#xD;&#xA;in the future. Global variables, scoping issues, confusing naming&#xD;&#xA;issues, off by one errors, implicit variable declaration (if that’s a&#xD;&#xA;problem for your codebase), incorrect type casting (ints vs floats),&#xD;&#xA;freeing resources (memory, objects, sockets, etc.), incorrect bracing&#xD;&#xA;around if statements that works now but is a problem waiting to happen&#xD;&#xA;(or works only on the [happy&#xD;&#xA;path](https://en.wikipedia.org/wiki/Happy_path)), regex that misses&#xD;&#xA;some edge case, using after freeing, etc.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;If everything looks good then do a quick summary of everything you’ve&#xD;&#xA;tried and run and evaluated and state it should do what the PR says.&#xD;&#xA;Write this in the review. You’re safe to approve and/or merge the code&#xD;&#xA;and deploy it if you have the power.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;If the codebase supports unit tests, integration tests, and end-to-end&#xD;&#xA;tests those should be included as well and they should be run as well.&#xD;&#xA;If there’s an automated way that they run, that’s good too, but for a&#xD;&#xA;code review, don’t rely on them. Pretend they don’t exist if you have&#xD;&#xA;to, that way you can truly evaluate the code because at the end of the&#xD;&#xA;day, the customers or end-users or game players, or people other than&#xD;&#xA;the team will be using the real code that you helped evaluate and/or&#xD;&#xA;write.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;With all this negativity it’s also important to look at the positive&#xD;&#xA;aspects. What did the author write that was innovative? How did they&#xD;&#xA;solve this specific problem? What takeaways can you see and remember&#xD;&#xA;for yourself for the future? This is another learning opportunity, one&#xD;&#xA;of many, on your development journey.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Note on direct messaging (DM)&#xD;&#xA;&#xD;&#xA;Use whatever format the team is comfortable with (email, Slack,&#xD;&#xA;Discord, etc), if in doubt DM first and discuss what you or the author&#xD;&#xA;will be posting on the GitHub web interface, remember the GitHub web&#xD;&#xA;interface is public and emails are sent out for public activity, so&#xD;&#xA;even though you can edit something that’s posted there the original&#xD;&#xA;text will still be available.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;In a written medium sometimes you miss out on tone of voice.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;When working on open source software sometimes the web interface, or&#xD;&#xA;mailing list, is the only option. So try to be as polite as the&#xD;&#xA;written form allows. And take others&#39; messages and feedback with&#xD;&#xA;grains of salt.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Note on pairing&#xD;&#xA;&#xD;&#xA;If your team’s culture supports pair reviewing it really helps speed&#xD;&#xA;up the review process, especially for large PRs.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Note on Screen Sharing&#xD;&#xA;&#xD;&#xA;I and teams that I’ve worked on and people I’ve worked with have found&#xD;&#xA;that screen sharing is indispensable. Screen sharing is even more&#xD;&#xA;effective at code review when done on separate computers using screen&#xD;&#xA;sharing rather than shoulder to shoulder for the simple fact that you&#xD;&#xA;can both see the screen better.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;If you’re worried about the bandwidth involved in screen sharing some&#xD;&#xA;of the most productive screenshares I’ve been on have been using&#xD;&#xA;[tmux](https://github.com/tmux/tmux/wiki/Installing) with both people&#xD;&#xA;logged into one machine and calling on the phone. I was using a cell&#xD;&#xA;phone but the same thing could have been done on a landline, or the&#xD;&#xA;Plain Old Telephone System (POTS). Nowadays there’s a plethora of&#xD;&#xA;screen sharing options, [Zoom](https://zoom.us/),&#xD;&#xA;[Slack](https://slack.com/), [Discord](https://discord.com/),&#xD;&#xA;[Twitch](https://www.twitch.tv/), [obs](https://obsproject.com/),&#xD;&#xA;[ping.gg](https://ping.gg/), [Pop](https://pop.com/), [vscode live&#xD;&#xA;share](https://visualstudio.microsoft.com/services/live-share/),&#xD;&#xA;[Google Meet](https://meet.google.com/), even open source self hosted&#xD;&#xA;video chat / screensharing apps like&#xD;&#xA;[tlk](https://github.com/vasanthv/tlk).&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Conclusion&#xD;&#xA;&#xD;&#xA;If you’re reading this and thinking “by following this guide it will&#xD;&#xA;take forever to review a PR!”, you’re right. If a PR took a week to&#xD;&#xA;write it’s not going to get a thorough review in 20 minutes, set aside&#xD;&#xA;several hours to review. You’ll catch more bugs before they hit prod,&#xD;&#xA;you’ll learn more, and the time between opening a PR to getting it&#xD;&#xA;merged and deployed will actually shrink.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;### Tip to managers and senior developers&#xD;&#xA;&#xD;&#xA;If you’re a manager or a senior developer that can suggest work roles,&#xD;&#xA;consider assigning someone (if they want to) or yourself (volunteer)&#xD;&#xA;to only do reviews for a week or two if you envision a lot of PRs&#xD;&#xA;being generated that week. If programming is truly a team sport and&#xD;&#xA;we’re all on the same team then we should succeed together too.&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-12-27</title><link>abemassry.com/post/2022/12/27</link><guid>abemassry.com/post/2022/12/27</guid><description># First Blog Post&#xA;This will be the first of many blog posts. This is the first blog post&#xD;&#xA;of this very fine blog, this content will also come out in a&#xD;&#xA;newsletter as well. Thanks for reading and stay tuned for more, new,&#xD;&#xA;fresh content.&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-09-19</title><link>abemassry.com/post/2022/09/19</link><guid>abemassry.com/post/2022/09/19</guid><description>&#xA;##### Internet access through a WireGuard VPN tunnel – Keenetic&#xA;https://help.keenetic.com/hc/en-us/articles/360010551419-Internet-access-through-a-WireGuard-VPN-tunnel&#xD;&#xA;&#xA;##### JSON Crack - Crack your data into pieces&#xA;https://jsoncrack.com/&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-08-08</title><link>abemassry.com/post/2022/08/08</link><guid>abemassry.com/post/2022/08/08</guid><description>&#xA;##### How to Recreate the Ripple Effect of Material Design Buttons | CSS-Tricks - CSS-Tricks&#xA;https://css-tricks.com/how-to-recreate-the-ripple-effect-of-material-design-buttons/&#xD;&#xA;&#xA;##### Ripple effect JavaScript - GeeksforGeeks&#xA;https://www.geeksforgeeks.org/ripple-effect-javascript/&#xD;&#xA;&#xA;##### Capture &#34;tap&#34; event with pure JavaScript - Stack Overflow&#xA;https://stackoverflow.com/questions/13358292/capture-tap-event-with-pure-javascript&#xD;&#xA;&#xA;##### mmohades/VenmoApiDocumentation: Venmo API Documentation&#xA;https://github.com/mmohades/VenmoApiDocumentation&#xD;&#xA;&#xA;##### Venmo API — Venmo 0.1.0 documentation&#xA;https://venmo.readthedocs.io/en/latest/&#xD;&#xA;&#xA;##### venmo-api · PyPI&#xA;https://pypi.org/project/venmo-api/&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-03-07</title><link>abemassry.com/post/2022/03/07</link><guid>abemassry.com/post/2022/03/07</guid><description>&#xA;##### Huemint - AI color palette generator&#xA;https://huemint.com/&#xD;&#xA;&#xA;##### MagicaVoxel&#xA;https://ephtracy.github.io/index.html?page=mv_main&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-02-21</title><link>abemassry.com/post/2022/02/21</link><guid>abemassry.com/post/2022/02/21</guid><description>&#xA;##### Timeout Command in Linux | Linuxize&#xA;https://linuxize.com/post/timeout-command-in-linux/&#xD;&#xA;&#xA;##### Lua (programming language) - Wikipedia&#xA;https://en.wikipedia.org/wiki/Lua_(programming_language)&#xD;&#xA;&#xA;##### Rectfill | PICO-8 Wiki | Fandom&#xA;https://pico-8.fandom.com/wiki/Rectfill&#xD;&#xA;&#xA;##### AeroCool AeroRacer Pro PC Case Review - Legit Reviews&#xA;https://www.legitreviews.com/aerocool-aeroracer-pro-pc-case-review_843&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-02-14</title><link>abemassry.com/post/2022/02/14</link><guid>abemassry.com/post/2022/02/14</guid><description>&#xA;##### Wildlife Photographer of the Year People&#39;s Choice Award 2021 winner | CNN Travel&#xA;https://www.cnn.com/travel/article/wildlife-photographer-peoples-choice-intl-scli-scn/index.html&#xD;&#xA;&#xA;##### A Lonely Universe | Charles Lineweaver | Inference&#xA;https://inference-review.com/article/a-lonely-universe&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-02-07</title><link>abemassry.com/post/2022/02/07</link><guid>abemassry.com/post/2022/02/07</guid><description>&#xA;##### Voyager - Voyager 2 Illuminates Boundary of Interstellar Space&#xA;&#xD;&#xA;https://voyager.jpl.nasa.gov/news/details.php?article_id�6&#xD;&#xA;&#xA;##### List of Sega Genesis games - Wikipedia&#xA;&#xD;&#xA;https://en.wikipedia.org/wiki/List_of_Sega_Genesis_games&#xD;&#xA;&#xA;##### Bzzzt on Steam&#xA;&#xD;&#xA;https://store.steampowered.com/app/1293170/Bzzzt/&#xD;&#xA;&#xA;&#xA;&#xD;&#xA;https://web.archive.org/web/20010124092100/http://www.zilo.com/games/&#xD;&#xA;&#xA;##### What&#39;s the lyrics to the Halo theme? - Quora&#xA;&#xD;&#xA;https://www.quora.com/Whats-the-lyrics-to-the-Halo-theme&#xD;&#xA;&#xA;##### Compact Disc Explained - Everything You Need To Know&#xA;&#xD;&#xA;https://history-computer.com/compact-disc/&#xD;&#xA;&#xA;##### CONSTRUCT - YouTube&#xA;&#xD;&#xA;https://m.youtube.com/watch?vJYl3VOAU6g&#xD;&#xA;&#xA;##### Lambda calculus - Wikipedia&#xA;&#xD;&#xA;https://en.wikipedia.org/wiki/Lambda_calculus&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-01-24</title><link>abemassry.com/post/2022/01/24</link><guid>abemassry.com/post/2022/01/24</guid><description>&#xA;##### The Horizon Problem for Faster than Light Travel&#xA;https://eriklentzphd.blogspot.com/2022/01/the-horizon-problem-for-faster-than.html&#xD;&#xA;&#xA;##### Oxide Tracker by Paranoid Cactus&#xA;&#xD;&#xA;https://paranoidcactus.itch.io/oxidetracker&#xD;&#xA;&#xA;##### NFTs solve real problems (just not elegantly) | Medium&#xA;&#xD;&#xA;https://cantrell.medium.com/nfts-solve-a-very-real-problem-just-not-very-elegantly-82722d97b459&#xA;##### The Dunning-Kruger Effect Is Probably Not Real | Office for Science and Society - McGill University&#xA;&#xD;&#xA;https://www.mcgill.ca/oss/article/critical-thinking/dunning-kruger-effect-probably-not-real</description></item><item><title>I Read This Week - abemassry - 2022-01-17</title><link>abemassry.com/post/2022/01/17</link><guid>abemassry.com/post/2022/01/17</guid><description>&#xA;##### Many Americans don&#39;t know what to make of the filibuster, polls find - CNNPolitics&#xA;https://www.cnn.com/2022/01/12/politics/filibuster-polls-analysis/index.html&#xD;&#xA;&#xA;##### Blood donations are critical as Red Cross faces major shortage - CNN&#xA;https://www.cnn.com/2022/01/12/health/red-cross-blood-shortage-wellness/index.html&#xD;&#xA;&#xA;##### Web3Auth secures $13M from Sequoia India to simplify crypto onboarding and authentication | TechCrunch&#xA;https://techcrunch.com/2022/01/12/web3auth-secures-13m-to-drive-mass-adoption-of-web3-apps-and-wallets-through-non-custodial-authentication-infrastructure/&#xD;&#xA;&#xA;##### Snapchat adds bitmoji reactions and threaded replies to chats | Engadget&#xA;https://www.engadget.com/snapchat-bitmoji-reactions-chat-replies-182903027.html?src=rss&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-01-10</title><link>abemassry.com/post/2022/01/10</link><guid>abemassry.com/post/2022/01/10</guid><description>&#xA;##### This $199 laser pointer points out mosquitos without harming them | TechCrunch&#xA;https://techcrunch.com/2022/01/06/look-there-it-is-the-little-flying-jerk/&#xD;&#xA;&#xA;##### E3 will be online-only again this year | Engadget&#xA;https://www.engadget.com/e3-2022-online-only-esa-210210288.html?src=rss&#xD;&#xA;&#xA;##### Kelvin Harrison Jr. to star in new Jean-Michel Basquiat biopic - CNN Style&#xA;https://www.cnn.com/style/article/basquiat-biopic-samo-lives-julius-onah/index.html&#xD;&#xA;&#xA;##### How to Get the Size of a Directory in Linux | Linuxize&#xA;https://linuxize.com/post/how-get-size-of-file-directory-linux/&#xD;&#xA;&#xA;##### OpenResty - Getting Started&#xA;https://openresty.org/en/getting-started.html&#xD;&#xA;&#xA;##### Top Stuff List&#xA;https://topstufflist.com/&#xD;&#xA;&#xA;##### javascript - Failed to execute &#39;createObjectURL&#39; on &#39;URL&#39;: - Stack Overflow&#xA;https://stackoverflow.com/questions/27120757/failed-to-execute-createobjecturl-on-url&#xD;&#xA;&#xA;##### Meta Tags — Preview, Edit and Generate&#xA;&#xD;&#xA;https://metatags.io/&#xD;&#xA;&#xA;##### Moxie Marlinspike &gt;&gt; Blog &gt;&gt; My first impressions of web3&#xA;&#xD;&#xA;https://moxie.org/2022/01/07/web3-first-impressions.html&#xD;&#xA;&#xA;##### KyleTryon/OpenCanv: An Open-Source Alternative to Canva&#xA;https://github.com/KyleTryon/OpenCanv&#xD;&#xA;&#xA;##### Introduction to the Sam Text Editor&#xA;https://blog.matthewdmiller.net/introduction-to-the-sam-text-editor&#xD;&#xA;&#xA;##### Using Web Workers - Web APIs | MDN&#xA;https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers&#xD;&#xA;&#xA;##### MediaDevices.getUserMedia() - Web APIs | MDN&#xA;https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia&#xD;&#xA;&#xA;##### Crontab.guru - The cron schedule expression editor&#xA;https://crontab.guru/&#xD;&#xA;&#xA;##### Certbot | Certbot&#xA;https://certbot.eff.org/&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2022-01-03</title><link>abemassry.com/post/2022/01/03</link><guid>abemassry.com/post/2022/01/03</guid><description>&#xA;##### Branching on a GPU. If you consult the internet about… | by Jason Booth | Dec, 2021 | Medium&#xA;&#xD;&#xA;https://medium.com/@jasonbooth_86226/branching-on-a-gpu-18bfc83694f2&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-12-27</title><link>abemassry.com/post/2021/12/27</link><guid>abemassry.com/post/2021/12/27</guid><description>&#xA;##### barrettotte/bootjack: A bootable Blackjack written in 508 bytes&#xA;https://github.com/barrettotte/bootjack&#xD;&#xA;&#xA;##### Honeycomb, a private social app for families, raises $4M seed round | TechCrunch&#xA;https://techcrunch.com/2021/12/13/honeycomb-a-private-social-app-for-families-raises-4m-seed-round/&#xD;&#xA;&#xA;##### The Tesla Cybertruck now has a single hilariously large windshield wiper | Boing Boing&#xA;https://boingboing.net/2021/12/13/the-tesla-cybertruck-now-has-a-single-hilariously-large-windscreen-wiper.html&#xD;&#xA;&#xA;##### Consoles, Collectibles, Video Games, and More – Buy, Sell or Trade | GameStop&#xA;&#xD;&#xA;https://www.gamestop.com/&#xD;&#xA;&#xA;##### GitHub - retronx-team/love-nx: Switch port of the 2D game engine&#xA;https://github.com/retronx-team/love-nx&#xD;&#xA;&#xA;##### Consoles, Collectibles, Video Games, and More – Buy, Sell or Trade | GameStop&#xA;&#xD;&#xA;https://www.gamestop.com/&#xD;&#xA;&#xA;##### Parade: Social Media, Email Marketing, Website,&#xA;https://www.getparade.com/&#xD;&#xA;&#xA;##### Burger-to-Bun Ratio | POPSUGAR Food&#xA;https://www.popsugar.com/food/Burger--Bun-Ratio-30669079&#xD;&#xA;&#xA;##### Consoles, Collectibles, Video Games, and More – Buy, Sell or Trade | GameStop&#xA;&#xD;&#xA;https://www.gamestop.com/&#xD;&#xA;&#xA;##### LaTeX Cookbook – Collection of LaTeX recipes&#xA;&#xD;&#xA;https://latex-cookbook.net/&#xD;&#xA;&#xA;##### How to Remove All Child Nodes in JavaScript&#xA;https://www.javascripttutorial.net/dom/manipulating/remove-all-child-nodes/&#xD;&#xA;&#xA;##### Is the paper that comes with Candy Buttons edible? &gt; OffTopic | Forums | Bungie.net&#xA;&#xD;&#xA;https://www.bungie.net/en/Forums/Post/3141043?sort=0&amp;page=0&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-12-20</title><link>abemassry.com/post/2021/12/20</link><guid>abemassry.com/post/2021/12/20</guid><description>&#xA;##### codestagram&#xA;https://codestagram.com/&#xD;&#xA;&#xA;##### ascii-movie&#xA;http://web.archive.org/web/20050813003324/http://www.justbewise.net/matrix.html&#xD;&#xA;&#xA;##### Dream pop - Wikipedia&#xA;https://en.wikipedia.org/wiki/Dream_pop&#xD;&#xA;&#xA;##### Home - MegaCorp Logistics&#xA;https://www.megacorplogistics.com/&#xD;&#xA;&#xA;##### Ropsten Ethereum (rETH) Faucet&#xA;https://faucet.dimensions.network/&#xD;&#xA;&#xA;##### Ocean: A Visual Encyclopedia: DK, Woodward, John: 0790778035945: Amazon.com: Books&#xA;https://www.amazon.com/dp/1465435948/ref=cm_sw_r_awdo_navT_a_H8B4V20697WHB1440194?ie=UTF8&amp;linkCode=sl1&amp;tag=massindustrie-20&#xD;&#xA;&#xA;##### Back To The 80&#39;s&#39; - Retro Wave [ A Synthwave/ Chillwave/ Retrowave mix ] #135 - YouTube&#xA;https://www.youtube.com/watch?v=3yOCk4Kn-Ss&#xD;&#xA;&#xA;##### Gaming PC vs. Space Heater Efficiency&#xA;https://www.pugetsystems.com/labs/articles/Gaming-PC-vs-Space-Heater-Efficiency-511/&#xD;&#xA;&#xA;##### Magazines - Club Nintendo Archives&#xA;https://clubnintendoarchives.neocities.org/magazines/magazines.htm&#xD;&#xA;&#xA;##### Beautiful Free Images&#xA;https://unsplash.com/&#xD;&#xA;&#xA;##### How to Use &#39;fsck&#39; to Repair File System Errors in Linux&#xA;https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/&#xD;&#xA;&#xA;##### Consoles, Collectibles, Video Games, and More – Buy, Sell or Trade | GameStop&#xA;&#xD;&#xA;https://www.gamestop.com/&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-12-13</title><link>abemassry.com/post/2021/12/13</link><guid>abemassry.com/post/2021/12/13</guid><description>&#xA;##### GitHub - tzarc/djinn: Djinn Split Keyboard&#xA;https://github.com/tzarc/djinn&#xD;&#xA;&#xA;##### How David Perell writes an essay - Superorganizers - Every&#xA;&#xD;&#xA;https://every.to/superorganizers/how-david-perell-writes-an-essay&#xD;&#xA;&#xA;##### raspberry pi hall effect sensor - Google Search&#xA;&#xD;&#xA;https://www.google.com/search?q=raspberry+pi+hall+effect+sensor&amp;client=safari&amp;hl=en-us&amp;ei=_D2BYavON4qm_QaypomgCQ&amp;oq=raspberry+pi+hall+&amp;gs_lcp=ChNtb2JpbGUtZ3dzLXdpei1zZXJwEAEYADIFCAAQgAQyBQgAEIAEMgUIABCABDIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgUIIRCgAToECAAQRzoCCCk6CAgAEIAEELEDOgUILhCABDoICC4QgAQQsQM6CAgAELEDEIMBOgsILhCABBCxAxCDAToFCAAQkQJQ_V5YgHpgooIBaABwAXgAgAG3AYgB_A2SAQM4LjmYAQCgAQHIAQjAAQE&amp;sclient=mobile-gws-wiz-serp&#xA;##### Renesas introduces sub 50 cents FPGA family with free Yosys-based development tools - CNX Software&#xA;https://www.cnx-software.com/2021/11/22/renesas-50-cents-fpga-forgefpga-yosys-development-tools/&#xD;&#xA;&#xA;##### Add to Home screen - Progressive web apps (PWAs) | MDN&#xA;&#xD;&#xA;https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Add_to_home_screen&#xA;##### Rebooting the Magic Way | Linux Journal&#xA;&#xD;&#xA;https://www.linuxjournal.com/content/rebooting-magic-way&#xD;&#xA;&#xA;##### Thundercat (musician) - Wikipedia&#xA;&#xD;&#xA;https://en.wikipedia.org/wiki/Thundercat_(musician)&#xD;&#xA;&#xA;##### Consoles, Collectibles, Video Games, and More – Buy, Sell or Trade | GameStop&#xA;&#xD;&#xA;https://www.gamestop.com/&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-12-06</title><link>abemassry.com/post/2021/12/06</link><guid>abemassry.com/post/2021/12/06</guid><description>&#xA;##### Rain Drop (Original Video Game Soundtrack) | Abe Massry &amp; Kenji Hasegawa&#xA;&#xD;&#xA;https://abemassry.bandcamp.com/album/rain-drop-original-video-game-soundtrack&#xD;&#xA;&#xA;##### wrl files - Google Search&#xA;&#xD;&#xA;https://www.google.com/search?q=wrl+files&amp;ie=UTF-8&amp;oe=UTF-8&amp;hl=en-us&amp;client=safari&#xA;##### The Metaverse Canon: Reading Guide | by Jon Radoff | Building the Metaverse | Oct, 2021 | Medium&#xA;&#xD;&#xA;https://medium.com/building-the-metaverse/the-metaverse-canon-reading-guide-9eb1b371b505&#xA;##### GUN — the database for freedom fighters - Docs v2.0&#xA;&#xD;&#xA;https://gun.eco/docs/Introduction&#xD;&#xA;&#xA;##### Is the paper that comes with Candy Buttons edible? &gt; OffTopic | Forums | Bungie.net&#xA;&#xD;&#xA;https://www.bungie.net/en/Forums/Post/3141043?sort=0&amp;page=0&#xD;&#xA;&#xA;##### prometheus | Josh Sager&#xA;&#xD;&#xA;https://joshsager.bandcamp.com/album/prometheus&#xD;&#xA;&#xA;##### Chocolate Chip Cookie Dough Cupcakes&#xA;&#xD;&#xA;https://life-in-the-lofthouse.com/chocolate-chip-cookie-dough-cupcakes-with-classic-vanilla-buttercream-frosting/&#xA;##### Raindrop Cake Kit | The World Famous Raindrop Cake | Jiggle Jiggle&#xA;&#xD;&#xA;https://raindropcake.com/&#xD;&#xA;&#xA;##### dvtm - dynamic virtual terminal manager · Marc André Tanner&#xA;&#xD;&#xA;https://www.brain-dump.org/projects/dvtm/&#xD;&#xA;&#xA;##### How to Get Better at Estimating Software Development Time | Hacker Noon&#xA;&#xD;&#xA;https://hackernoon.com/barriers-to-effective-software-effort-estimation-and-how-to-avoid-them-4abd39f09f26&#xA;##### Artflow&#xA;&#xD;&#xA;https://artflow.ai/?utm_source=clubhouse&#xD;&#xA;&#xA;##### An Internet Troll Told Marvel Studio&#39;s First Solo Female Superhero To Smile, So She Shut Him Down In Epic Way | Bored Panda&#xA;&#xD;&#xA;https://www.boredpanda.com/smile-marvel-characters-brie-larson/&#xD;&#xA;&#xA;##### Recurrent neural network - Wikipedia&#xA;&#xD;&#xA;https://en.wikipedia.org/wiki/Recurrent_neural_network&#xD;&#xA;&#xA;##### MASARY Studios&#xA;&#xD;&#xA;https://www.masarystudios.com/&#xD;&#xA;&#xA;##### Elon Musk To Offer $100 Million Prize For &#39;Best&#39; Carbon Capture Tech - Slashdot&#xA;&#xD;&#xA;https://news.slashdot.org/story/21/01/22/0059223/elon-musk-to-offer-100-million-prize-for-best-carbon-capture-tech&#xA;##### How to Solve the &#34;Where Should We Eat?&#34; Argument Once and For All&#xA;&#xD;&#xA;https://lifehacker.com/how-to-solve-the-where-should-we-eat-argument-once-a-1634801417&#xA;##### Every Great Business Person Has The Same Mental Model of Business - Commonplace - The Commoncog Blog&#xA;&#xD;&#xA;https://commoncog.com/blog/business-mental-model/&#xD;&#xA;&#xA;##### max temperature of south pole - Google Search&#xA;&#xD;&#xA;https://www.google.com/search?q=max+temperature+of+south+pole&amp;ie=UTF-8&amp;oe=UTF-8&amp;hl=en-us&amp;client=safari&#xA;##### Responsive images - Learn web development | MDN&#xA;&#xD;&#xA;https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images&#xA;##### My Favorite Brownie Cookies - Sally&#39;s Baking Addiction&#xA;&#xD;&#xA;https://sallysbakingaddiction.com/brownie-cookies/&#xD;&#xA;&#xA;##### Digital Snow - Rarible | Rarible&#xA;&#xD;&#xA;https://rarible.com/token/0x60f80121c31a0d46b5279700f9df786054aa5ee5:334195:0x9258a575dfa392c1f3791c9950577f22b016e09e?tab=details&#xA;##### PeerJS - Simple peer-to-peer with WebRTC&#xA;&#xD;&#xA;https://peerjs.com/&#xD;&#xA;&#xA;##### Reddit - Showerthoughts - Why does the sun wear sunglasses in cartoons? What is it shielding its eyes from?&#xA;&#xD;&#xA;https://www.reddit.com/r/Showerthoughts/comments/7adwmt/why_does_the_sun_wear_sunglasses_in_cartoons_what/&#xA;##### Why is Italian cuisine so popular and well known compared to other cuisines? - Quora&#xA;&#xD;&#xA;https://www.quora.com/Why-is-Italian-cuisine-so-popular-and-well-known-compared-to-other-cuisines&#xA;##### List of highest-grossing media franchises - Wikipedia&#xA;&#xD;&#xA;https://en.wikipedia.org/wiki/List_of_highest-grossing_media_franchises&#xD;&#xA;&#xA;##### OXO (video game) - Wikipedia&#xA;&#xD;&#xA;https://en.wikipedia.org/wiki/OXO_(video_game)&#xD;&#xA;&#xA;##### Mike&#39;s RPG Center - Dragon Warrior III - Walkthrough&#xA;&#xD;&#xA;https://mikesrpgcenter.com/dw3/walkthrough.html&#xD;&#xA;&#xA;##### Elijah Wood And Daniel Radcliffe Unite For Empire’s Harry Potter And Lord Of The Rings 20th Anniversary Issue | Movies | Empire&#xA;&#xD;&#xA;https://www.empireonline.com/movies/news/empire-elijah-wood-daniel-radcliffe-harry-potter-lord-rings-anniversary-issue/&#xA;##### Facebook as a Metaverse Company. Facebook has large investments in at… | by Jon Radoff | Building the Metaverse | Oct, 2021 | Medium&#xA;&#xD;&#xA;https://medium.com/building-the-metaverse/facebook-as-a-metaverse-company-d5712198b22d&#xA;##### What is the Inverse of a Vector?&#xA;&#xD;&#xA;https://mattferraro.dev/posts/geometric-algebra&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-11-22</title><link>abemassry.com/post/2021/11/22</link><guid>abemassry.com/post/2021/11/22</guid><description>&#xA;##### Interfacing Hall Sensor with Raspberry Pi&#xA;https://circuitdigest.com/microcontroller-projects/interfacing-hall-sensor-with-raspberry-pi&#xD;&#xA;&#xA;##### A gentle introduction to the FFT | EarLevel Engineering&#xA;https://www.earlevel.com/main/2002/08/31/a-gentle-introduction-to-the-fft/&#xD;&#xA;&#xA;##### Cloudflare Pages Goes Full Stack&#xA;https://blog.cloudflare.com/cloudflare-pages-goes-full-stack/&#xD;&#xA;&#xA;##### Wobbly Wednesday Pt. 2 📦 💥 Deanscrap | Popshop Live - Shop, Sell, Stream!&#xA;https://popshop.live/upcomingShow_er9f7AEYtYb8iFmQsrY2?c=S1ABfytGTCXOmri8BWRQ&#xD;&#xA;&#xA;##### tldraw&#xA;https://www.tldraw.com/&#xD;&#xA;&#xA;##### Quickstart — PyTorch Tutorials 1.10.0 cu102 documentation&#xA;https://pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html&#xD;&#xA;&#xA;&#xA;Brands might identify broad demographic groups as their core target: Mountain Dew is reaching different people than Naked juice, but they are both owned by the same company&#xA;##### How Oatly Wins: Stories that Create Binding Commitments - Masterful Storytelling - Every&#xA;&#xD;&#xA;https://every.to/masterful-storytelling/how-oatly-wins-stories-that-create-binding-commitments</description></item><item><title>I Read This Week - abemassry - 2021-11-15</title><link>abemassry.com/post/2021/11/15</link><guid>abemassry.com/post/2021/11/15</guid><description>&#xA;##### Faraday Rotation | Harvard Natural Sciences Lecture Demonstrations&#xA;https://sciencedemonstrations.fas.harvard.edu/presentations/faraday-rotation&#xD;&#xA;&#xA;##### Introduction To Induction&#xA;https://electricalengineering123.com/introduction-to-induction-ac-electric-motor-working-principle-types/&#xD;&#xA;&#xA;##### City of Long Beach allows logistics companies to stack containers higher - FreightWaves&#xA;https://www.freightwaves.com/news/city-of-long-beach-allows-logistics-companies-to-stack-containers-higher&#xD;&#xA;&#xA;##### Easily Make Video Games with GameMaker Studio 2&#xA;https://www.yoyogames.com/en/gamemaker&#xD;&#xA;&#xA;##### Lesser Known PostgreSQL Features | Haki Benita&#xA;https://hakibenita.com/postgresql-unknown-features&#xD;&#xA;&#xA;##### Best Switch Video Games of All Time - Metacritic&#xA;https://www.metacritic.com/browse/games/score/metascore/all/switch/filtered&#xD;&#xA;&#xA;##### Socialist Cyborgs&#xA;https://logicmag.io/kids/socialist-cyborgs/&#xD;&#xA;&#xA;##### How to make your own game engine (and why) | by Tyler Glaiel | Nov, 2021 | Medium&#xA;&#xD;&#xA;https://medium.com/@tglaiel/how-to-make-your-own-game-engine-and-why-ddf0acbc5f3</description></item><item><title>I Read This Week - abemassry - 2021-11-08</title><link>abemassry.com/post/2021/11/08</link><guid>abemassry.com/post/2021/11/08</guid><description>&#xA;##### xkcd: Land Mammals&#xA;&#xD;&#xA;https://xkcd.com/1338/&#xD;&#xA;&#xA;##### Facebook as a Metaverse Company. Facebook has large investments in at… | by Jon Radoff | Building the Metaverse | Oct, 2021 | Medium&#xA;&#xD;&#xA;https://medium.com/building-the-metaverse/facebook-as-a-metaverse-company-d5712198b22d&#xA;##### maxvfischer/DIY-CNC-machine: How to build your own CNC machine from scratch&#xA;https://github.com/maxvfischer/DIY-CNC-machine&#xD;&#xA;&#xA;##### The Promise and Paradox of Decentralization - by Byrne Hobart - The Diff&#xA;https://www.thediff.co/p/the-promise-and-paradox-of-decentralization&#xD;&#xA;&#xA;##### GitHub - aramperes/onetun: Access your WireGuard network from any device, without root access or having to install WireGuard locally.&#xA;https://github.com/aramperes/onetun&#xD;&#xA;&#xA;##### Crafting Interpreters&#xA;http://craftinginterpreters.com/&#xD;&#xA;&#xA;##### FamiTracker&#xA;http://famitracker.com/index.php&#xD;&#xA;&#xA;##### Aseprite - Animated sprite editor&#xA;https://www.aseprite.org/&#xD;&#xA;&#xA;##### Home&#xA;https://boscaceoil.net/&#xD;&#xA;&#xA;##### MilkyTracker | Screenshots&#xA;https://milkytracker.org/screenshots/&#xD;&#xA;&#xA;##### BeepBox&#xA;https://www.beepbox.co/#9n31s0k0l00e03t2ma7g0fj07r1i0o432T1v1u92f30o21962pcq0x10w02d16A8F4B3Qd107P5a93E2b9639T7v1u23f10q4q011d08H_RRtrAyAAAsArrh3IaE0T0v1u98f10i7q83231d4aw5h2E0T4v1uf0f0q011z6666ji8k8k3jSBKSJJAArriiiiii07JCABrzrrrrrrr00YrkqHrsrrrrjr005zrAqzrjzrrqr1jRjrqGGrrzsrsA099ijrABJJJIAzrrtirqrqjqixzsrAjrqjiqaqqysttAJqjikikrizrHtBJJAzArzrIsRCITKSS099ijrAJS____Qg99habbCAYrDzh00E0b4h400000000h4g000000014h000000004h400000000p16000000&#xD;&#xA;&#xA;##### Panic Blog » The Story of Playdate&#xA;&#xD;&#xA;https://panic.com/blog/the-story-of-playdate/&#xD;&#xA;&#xA;##### Add to Home screen - Progressive web apps (PWAs) | MDN&#xA;&#xD;&#xA;https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Add_to_home_screen</description></item><item><title>I Read This Week - abemassry - 2021-11-01</title><link>abemassry.com/post/2021/11/01</link><guid>abemassry.com/post/2021/11/01</guid><description>&#xA;##### heterodox | Josh Sager&#xA;https://joshsager.bandcamp.com/album/heterodox&#xD;&#xA;&#xA;##### GPU architecture types explained – RasterGrid&#xA;https://www.rastergrid.com/blog/gpu-tech/2021/07/gpu-architecture-types-explained/&#xD;&#xA;&#xA;##### Gaming graphics card allows faster, more precise control of fusion energy experiments | UW News&#xA;https://www.washington.edu/news/2021/07/22/gaming-graphics-card-allows-faster-more-precise-control-of-fusion-energy-experiments/&#xD;&#xA;&#xA;##### Humaaans: Mix-&#xA;https://www.humaaans.com/&#xD;&#xA;&#xA;##### Free Stock Photos, Royalty Free Stock Images&#xA;https://www.pexels.com/&#xD;&#xA;&#xA;##### The Bottom Feeder: Getting Sweet Patron Money On the Modern Internet&#xA;https://jeff-vogel.blogspot.com/2020/02/getting-sweet-patron-money-on-modern.html&#xD;&#xA;&#xA;##### Learn While Playing the Sliding Tile Game Kanji Swipe&#xA;https://appadvice.com/post/learn-playing-sliding-tile-game-kanji-swipe/771596&#xD;&#xA;&#xA;##### GitHub - NvChad/NvChad: An attempt to make neovim cli as functional as an IDE while being very beautiful , blazing fast.&#xA;https://github.com/NvChad/NvChad&#xD;&#xA;&#xA;##### GitHub - sonic-pi-net/sonic-pi: Code. Music. Live.&#xA;https://github.com/sonic-pi-net/sonic-pi&#xD;&#xA;&#xA;##### Solidity — Solidity 0.8.7 documentation&#xA;https://docs.soliditylang.org/en/v0.8.7/&#xD;&#xA;&#xA;##### Welcome to Speed Week and a Waitless Internet&#xA;https://blog.cloudflare.com/fastest-internet/&#xD;&#xA;&#xA;##### Learn Solidity in Y Minutes&#xA;https://learnxinyminutes.com/docs/solidity/&#xD;&#xA;&#xA;##### The Predecessor to Google Earth Was Clumsy, Yet Powerful&#xA;https://www.vice.com/en/article/53vgbb/the-predecessor-to-google-earth-was-clumsy-yet-powerful&#xD;&#xA;&#xA;##### New tool: an nginx playground&#xA;https://jvns.ca/blog/2021/09/24/new-tool--an-nginx-playground/&#xD;&#xA;&#xA;##### luxe engine | A lovingly crafted game engine&#xA;https://luxeengine.com/about/#top&#xD;&#xA;&#xA;##### PICO-8 lighting, part 1: thin dark line | Hacker Noon&#xA;https://hackernoon.com/pico-8-lighting-part-1-thin-dark-line-8ea15d21fed7&#xD;&#xA;&#xA;##### New product: Raspberry Pi Zero 2 W on sale now at $15 - Raspberry Pi&#xA;https://www.raspberrypi.com/news/new-raspberry-pi-zero-2-w-2/&#xD;&#xA;&#xA;##### Response caching with Gin and Golang — Saturn Five Software&#xA;https://www.saturnfive.io/blog/response-caching-with-gin-and-golang&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-10-11</title><link>abemassry.com/post/2021/10/11</link><guid>abemassry.com/post/2021/10/11</guid><description>&#xA;##### Hurl - Run and Test HTTP Requests&#xA;https://hurl.dev/index.html&#xD;&#xA;&#xA;##### _______________🚗_____&#xA;https://bruno-simon.com/&#xD;&#xA;&#xA;##### Hello World Smart Contract for Beginners | ethereum.org&#xA;https://ethereum.org/en/developers/tutorials/hello-world-smart-contract/&#xD;&#xA;&#xA;##### About Us | ethereum.org&#xA;https://ethereum.org/en/about/&#xD;&#xA;&#xA;##### 💸 Sending Transactions Using Web3 - Alchemy Documentation&#xA;https://docs.alchemy.com/alchemy/tutorials/sending-txs&#xD;&#xA;&#xA;##### Programming PIC32 Microcontroller with Rust - Harry Gill&#xA;https://gill.net.in/posts/pic32-blink-led-rust/&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-10-04</title><link>abemassry.com/post/2021/10/04</link><guid>abemassry.com/post/2021/10/04</guid><description>&#xA;##### JSON5 | JSON for Humans&#xA;https://json5.org/&#xD;&#xA;&#xA;##### The Speed of Time&#xA;https://www.brendangregg.com/blog/2021-09-26/the-speed-of-time.html&#xD;&#xA;&#xA;##### The Mom Test - How to talk to customers. A Summary&#xA;https://sandro.volpee.de/the-mom-test-summary-validate-ideas&#xD;&#xA;&#xA;##### Report: Nation&#39;s Gentrified Neighborhoods Threatened By Aristocratization&#xA;&#xD;&#xA;https://www.theonion.com/report-nations-gentrified-neighborhoods-threatened-by-1819569723&#xA;##### The-Art-of-Linear-Algebra.pdf&#xA;https://raw.githubusercontent.com/kenjihiranabe/The-Art-of-Linear-Algebra/main/The-Art-of-Linear-Algebra.pdf&#xD;&#xA;&#xA;##### How to test secure (https) services from localhost | by Satish Verma | 47Billion | Medium&#xA;&#xD;&#xA;https://medium.com/47billion/how-to-work-with-https-on-localhost-7f1d2a11be6&#xD;&#xA;&#xA;##### This is what a solid made of electrons looks like&#xA;https://www.nature.com/articles/d41586-021-02657-6&#xD;&#xA;&#xA;##### I Tried 30 Mustards This Summer. This Is What I Learned. - InsideHook&#xA;https://www.insidehook.com/article/food-and-drink/30-best-mustards-tried-summer&#xD;&#xA;&#xA;##### Place1/wg-access-server: An all-in-one WireGuard VPN solution with a web ui for connecting devices&#xA;https://github.com/Place1/wg-access-server&#xD;&#xA;&#xA;##### Ep 215: Redirecting Asteroids | NASA&#xA;&#xD;&#xA;https://www.nasa.gov/johnson/HWHAP/redirecting-asteroids&#xD;&#xA;&#xA;##### Phil Collins – In the Air Tonight Lyrics | Genius Lyrics&#xA;&#xD;&#xA;https://genius.com/Phil-collins-in-the-air-tonight-lyrics&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-09-27</title><link>abemassry.com/post/2021/09/27</link><guid>abemassry.com/post/2021/09/27</guid><description># The complete guide on how to submit an NGINX change using Mercurial&#xD;&#xA;&#xD;&#xA;![NGINX](https://wsnd.io/xyVi2ohE/NGINX-product-icon-317x360%402x.png)&#xD;&#xA;&#xD;&#xA;## Step 1&#xD;&#xA;Clone the repo&#xD;&#xA;```&#xD;&#xA;hg clone http://hg.nginx.org/nginx&#xD;&#xA;```&#xD;&#xA;&#xD;&#xA;## Step 2&#xD;&#xA;make the change&#xD;&#xA;```&#xD;&#xA;vim conf/mime.types&#xD;&#xA;hg diff&#xD;&#xA;```&#xD;&#xA;See your change&#xD;&#xA;&#xD;&#xA;## Step 3&#xD;&#xA;Make a new branch&#xD;&#xA;```&#xD;&#xA;hg branch update-mime-types&#xD;&#xA;```&#xD;&#xA;&#xD;&#xA;## Step 4&#xD;&#xA;Edit the config and add username&#xD;&#xA;```&#xD;&#xA;hg config --edit&#xD;&#xA;```&#xD;&#xA;Inside the config file&#xD;&#xA;```&#xD;&#xA;[ui]&#xD;&#xA;username = Person McPersonface &lt;pmcpersonface@gmail.com&gt;&#xD;&#xA;```&#xD;&#xA;&#xD;&#xA;## Step 5&#xD;&#xA;Make the commit&#xD;&#xA;```&#xD;&#xA;hg ci&#xD;&#xA;```&#xD;&#xA;This should open up your editor and you can write your commit message, the first line is the subject of less than 67 characters.&#xD;&#xA;Add a blank line and then add a paragraph with no more than 67 characters per line explaining the change&#xD;&#xA;&#xD;&#xA;## Step 6&#xD;&#xA;View the patch&#xD;&#xA;```&#xD;&#xA;hg export&#xD;&#xA;```&#xD;&#xA;Make sure it looks the way you want, if it doesn’t follow step 6a.&#xD;&#xA;## Step 6a&#xD;&#xA;If you need to make changes&#xD;&#xA;```&#xD;&#xA;hg export # copy your commit message and save it somewhere&#xD;&#xA;hg rollback&#xD;&#xA;vim conf/mime.types&#xD;&#xA;```&#xD;&#xA;edit the file to make changes&#xD;&#xA;```&#xD;&#xA;hg ci&#xD;&#xA;```&#xD;&#xA;Edit the commit message again with a new one or the one you copied over&#xD;&#xA;&#xD;&#xA;## Step 7&#xD;&#xA;Set up email to email the patch over&#xD;&#xA;```&#xD;&#xA;vim ~/.hgrc&#xD;&#xA;```&#xD;&#xA;Add this into the config file&#xD;&#xA;```&#xD;&#xA;[extensions]&#xD;&#xA;hgext.patchbomb =&#xD;&#xA;&#xD;&#xA;[email]&#xD;&#xA;from=Person McPersonface &lt;pmcpersonface@gmail.com&gt;&#xD;&#xA;method=smtp&#xD;&#xA;&#xD;&#xA;[smtp]&#xD;&#xA;host=smtp.gmail.com&#xD;&#xA;port=587&#xD;&#xA;username=pmcpersonface@gmail.com&#xD;&#xA;password=SuperSecretPassword@!@#1234&#xD;&#xA;tls=True&#xD;&#xA;```&#xD;&#xA;If you’re using gmail you’ll have to temporarily enable “less secure app access” by going to google account -&gt; security -&gt; less secure app access&#xD;&#xA;&#xD;&#xA;## Step 8&#xD;&#xA;Email the patch.&#xD;&#xA;&#xD;&#xA;First sign up for the mailing list and change “Receive acknowledgement mail when you send mail to the list?” to yes and click save in the mailing list subscriber settings.&#xD;&#xA;&#xD;&#xA;Then wait 30 minutes.&#xD;&#xA;&#xD;&#xA;Then&#xD;&#xA;```&#xD;&#xA;hg email --to nginx-devel@nginx.org -r tip --confirm&#xD;&#xA;```&#xD;&#xA;Make sure it looks the way you want (the entire diff won’t be shown)&#xD;&#xA;&#xD;&#xA;I hit enter when I saw the `Cc:` line&#xD;&#xA;&#xD;&#xA;And then hit “y” then enter&#xD;&#xA;&#xD;&#xA;You should get a confirmation email in your inbox.&#xD;&#xA;&#xD;&#xA;## Step 9&#xD;&#xA;Don’t forget to turn off less secure app access</description></item><item><title>I Read This Week - abemassry - 2021-09-20</title><link>abemassry.com/post/2021/09/20</link><guid>abemassry.com/post/2021/09/20</guid><description>&#xA;##### Bespoke Synth&#xA;https://www.bespokesynth.com/&#xD;&#xA;&#xA;##### Hello World Smart Contract for Beginners | ethereum.org&#xA;https://ethereum.org/en/developers/tutorials/hello-world-smart-contract/&#xD;&#xA;&#xA;##### shellharden/how_to_do_things_safely_in_bash.md at master · anordal/shellharden · GitHub&#xA;&#xD;&#xA;https://github.com/anordal/shellharden/blob/master/how_to_do_things_safely_in_bash.md&#xA;##### The Free Fall Research Page: Unplanned Freefall? Some Survival Tips by David Carkeet&#xA;http://www.greenharbor.com/fffolder/carkeet.html&#xD;&#xA;&#xA;##### Michelin&#39;s Airless Tires Hit the Streets For the First Time&#xA;https://interestingengineering.com/michelin-airless-tires-hit-public-streets-for-first-time?_source=newsletter&amp;_campaign=4yVo2pDYZvnrN&amp;_uid=LDdwmgxga1&amp;_h=ea90de89f1bceca46d02cad80716fb4006725c29&amp;utm_source=newsletter&amp;utm_medium=mailing&amp;utm_campaign=Newsletter-14-09-2021&#xD;&#xA;&#xA;##### Smoke testing (software) - Wikipedia&#xA;https://en.wikipedia.org/wiki/Smoke_testing_(software)&#xD;&#xA;&#xA;##### How To Rapidly Improve At Any Programming Language&#xA;&#xD;&#xA;https://www.cbui.dev/how-to-rapidly-improve-at-any-programming-language/&#xD;&#xA;&#xA;##### Rect | PICO-8 Wiki | Fandom&#xA;https://pico-8.fandom.com/wiki/Rect&#xD;&#xA;&#xA;##### Line | PICO-8 Wiki | Fandom&#xA;https://pico-8.fandom.com/wiki/Line&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-09-13</title><link>abemassry.com/post/2021/09/13</link><guid>abemassry.com/post/2021/09/13</guid><description>##### “Rewilding Your Attention”. To find truly interesting ideas, step… | by Clive Thompson | Aug, 2021 | Medium&#xD;&#xA;&#xD;&#xA;https://clivethompson.medium.com/rewilding-your-attention-d518ede18855&#xD;&#xA;&#xD;&#xA;##### WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO&#xD;&#xA;https://webdriver.io/&#xD;&#xA;&#xD;&#xA;##### RBAC like it was meant to be · Tailscale&#xD;&#xA;https://tailscale.com/blog/rbac-like-it-was-meant-to-be/&#xD;&#xA;&#xD;&#xA;##### Sonic Pi - The Live Coding Music Synth for Everyone&#xD;&#xA;https://sonic-pi.net/&#xD;&#xA;&#xD;&#xA;##### Sleeping in Go – How to Pause Execution · GolangCode&#xD;&#xA;https://golangcode.com/sleeping-with-go/&#xD;&#xA;&#xD;&#xA;##### Mailtrap - Email Testing Tool #1&#xD;&#xA;https://mailtrap.io/&#xD;&#xA;&#xD;&#xA;##### regexp package - regexp - pkg.go.dev&#xD;&#xA;https://pkg.go.dev/regexp#example-MatchString&#xD;&#xA;&#xD;&#xA;##### PostgreSQL IN - Matching Against a List of Values&#xD;&#xA;https://www.postgresqltutorial.com/postgresql-in/&#xD;&#xA;&#xD;&#xA;##### postgresql - Postgres: check if array field contains value? - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/39643454/postgres-check-if-array-field-contains-value&#xD;&#xA;&#xD;&#xA;##### PostgresQL ANY / SOME Operator By Practical Examples&#xD;&#xA;https://www.postgresqltutorial.com/postgresql-any/&#xD;&#xA;&#xD;&#xA;##### if statement - Does Go have &#34;if x in&#34; construct similar to Python? - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/15323767/does-go-have-if-x-in-construct-similar-to-python&#xD;&#xA;&#xD;&#xA;##### PostgreSQL: Documentation: 9.3: Pattern Matching&#xD;&#xA;https://www.postgresql.org/docs/9.3/functions-matching.html&#xD;&#xA;&#xD;&#xA;##### PostgreSQL LIKE - Querying Data by Using Pattern Matching Techniques&#xD;&#xA;https://www.postgresqltutorial.com/postgresql-like/&#xD;&#xA;&#xD;&#xA;##### Getting Started | Markdown Guide&#xD;&#xA;https://www.markdownguide.org/getting-started/&#xD;&#xA;&#xD;&#xA;##### Create a Landing Page on Mobile&#xD;&#xA;https://mailchimp.com/help/create-landing-page-mobile/&#xD;&#xA;&#xD;&#xA;##### Nano ID CC&#xD;&#xA;https://zelark.github.io/nano-id-cc/&#xD;&#xA;&#xD;&#xA;##### RangeError: radix must be an integer - JavaScript | MDN&#xD;&#xA;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Bad_radix&#xD;&#xA;&#xD;&#xA;##### Serving Static Content | NGINX Plus&#xD;&#xA;https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/&#xD;&#xA;&#xD;&#xA;##### Module ngx_http_core_module&#xD;&#xA;https://nginx.org/en/docs/http/ngx_http_core_module.html#sendfile_max_chunk&#xD;&#xA;&#xD;&#xA;##### Linux - How to recursively chmod a folder? - Super User&#xD;&#xA;https://superuser.com/questions/1325221/linux-how-to-recursively-chmod-a-folder&#xD;&#xA;&#xD;&#xA;##### file command in Linux with examples - GeeksforGeeks&#xD;&#xA;https://www.geeksforgeeks.org/file-command-in-linux-with-examples/&#xD;&#xA;&#xD;&#xA;##### Proxima Nova | Adobe Fonts&#xD;&#xA;https://fonts.adobe.com/fonts/proxima-nova&#xD;&#xA;&#xD;&#xA;##### Converting Error to String in Go Lang - SysTutorials&#xD;&#xA;https://www.systutorials.com/in-golang-how-to-convert-an-error-to-a-string/&#xD;&#xA;&#xD;&#xA;##### The Go Programming Language Specification - The Go Programming Language&#xD;&#xA;https://golang.org/ref/spec&#xD;&#xA;&#xD;&#xA;##### GitHub - adur1990/Pass-for-macOS: macOS wrapper for pass, the standard UNIX password manager&#xD;&#xA;https://github.com/adur1990/Pass-for-macOS#installation&#xD;&#xA;&#xD;&#xA;##### Panel Attack&#xD;&#xA;http://panelattack.com/&#xD;&#xA;&#xD;&#xA;##### xkeyideal/captcha: Go package captcha generation and verification of image, Refer from https://github.com/dchest/captcha. Use captcha pool generation&#xD;&#xA;https://github.com/xkeyideal/captcha&#xD;&#xA;&#xD;&#xA;##### Crontab.guru - The cron schedule expression editor&#xD;&#xA;https://crontab.guru/#0_4_*_*_1&#xD;&#xA;&#xD;&#xA;##### How to Escape the Confines of Time and Space According to the CIA&#xD;&#xA;https://www.vice.com/en/article/7k9qag/how-to-escape-the-confines-of-time-and-space-according-to-the-cia&#xD;&#xA;&#xD;&#xA;##### Images in RSS feed - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/483675/images-in-rss-feed&#xD;&#xA;&#xD;&#xA;##### html - Vertically align text next to an image? - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/489340/vertically-align-text-next-to-an-image&#xD;&#xA;&#xD;&#xA;##### HTML textarea tag&#xD;&#xA;https://www.w3schools.com/tags/tag_textarea.asp&#xD;&#xA;&#xD;&#xA;##### Cali Cat - The Calibration Cat by Dezign - Thingiverse&#xD;&#xA;https://www.thingiverse.com/thing:1545913&#xD;&#xA;&#xD;&#xA;##### Here’s why superposition and entanglement have nothing to do with understanding quantum computers | by Chris Ferrie | Medium&#xD;&#xA;https://csferrie.medium.com/heres-why-superposition-and-entanglement-have-nothing-to-do-with-understanding-quantum-computers-b2557ed7b5a2&#xD;&#xA;&#xD;&#xA;##### Favicon Generator - Image to Favicon - favicon.io&#xD;&#xA;https://favicon.io/favicon-converter/&#xD;&#xA;&#xD;&#xA;##### zavoloklom/material-design-iconic-font: Material Design Iconic Font and CSS toolkit&#xD;&#xA;https://github.com/zavoloklom/material-design-iconic-font&#xD;&#xA;&#xD;&#xA;##### Create and submit a robots.txt file | Google Search Central&#xD;&#xA;https://developers.google.com/search/docs/advanced/robots/create-robots-txt&#xD;&#xA;&#xD;&#xA;##### Learn about sitemaps  |  Search Central  |  Google Developers&#xD;&#xA;https://developers.google.com/search/docs/advanced/sitemaps/overview&#xD;&#xA;&#xD;&#xA;##### Two Ways to Play Non-VR Games With the Oculus Rift or HTC Vive&#xD;&#xA;https://www.roadtovr.com/play-non-vr-traditional-games-on-oculus-rift-htc-vive/&#xD;&#xA;&#xD;&#xA;##### sitemaps.org - Protocol&#xD;&#xA;https://www.sitemaps.org/protocol.html&#xD;&#xA;&#xD;&#xA;##### Using different delimiters in sed « \1&#xD;&#xA;https://backreference.org/2010/02/20/using-different-delimiters-in-sed/&#xD;&#xA;&#xD;&#xA;##### How to Forward or eMail a Webpage URL in Google Chrome | Daniel B. Curran Jr.&#xD;&#xA;https://danielcurran.com/how-to-forward-or-email-a-webpage-url-in-google-chrome/&#xD;&#xA;&#xD;&#xA;##### Open URL in new window with JavaScript - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/14132122/open-url-in-new-window-with-javascript&#xD;&#xA;&#xD;&#xA;##### CSS word-break property&#xD;&#xA;https://www.w3schools.com/cssref/css3_pr_word-break.asp&#xD;&#xA;&#xD;&#xA;##### time package - time - pkg.go.dev&#xD;&#xA;https://pkg.go.dev/time#Time.Format&#xD;&#xA;&#xD;&#xA;##### How to add days to date in GoLang | 234 Developer&#xD;&#xA;https://234developer.wordpress.com/2019/09/12/how-to-add-days-to-date-in-golang/&#xD;&#xA;&#xD;&#xA;##### RSS - Wikipedia&#xD;&#xA;https://en.wikipedia.org/wiki/RSS&#xD;&#xA;&#xD;&#xA;##### RSS Validator&#xD;&#xA;https://www.rssboard.org/rss-validator/&#xD;&#xA;&#xD;&#xA;##### Notarize | Product design and development case study&#xD;&#xA;https://www.metalab.com/projects/notarize&#xD;&#xA;&#xD;&#xA;##### PostgreSQL Rename Table: A Step-by-step Guide&#xD;&#xA;https://www.postgresqltutorial.com/postgresql-rename-table/&#xD;&#xA;&#xD;&#xA;##### MJML - The Responsive Email Framework&#xD;&#xA;https://mjml.io/&#xD;&#xA;&#xD;&#xA;##### Golang | Replacing all String which Matches with Regular Expression - GeeksforGeeks&#xD;&#xA;https://www.geeksforgeeks.org/golang-replacing-all-string-which-matches-with-regular-expression/&#xD;&#xA;&#xD;&#xA;##### PostgreSQL FULL OUTER JOIN: Its Usages and Practical Examples&#xD;&#xA;https://www.postgresqltutorial.com/postgresql-full-outer-join/&#xD;&#xA;&#xD;&#xA;##### Is there an equivalent of CSS max-width that works in HTML emails? - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/2426072/is-there-an-equivalent-of-css-max-width-that-works-in-html-emails&#xD;&#xA;&#xD;&#xA;##### PostgreSQL Upsert Using INSERT ON CONFLICT statement&#xD;&#xA;https://www.postgresqltutorial.com/postgresql-upsert/&#xD;&#xA;&#xD;&#xA;##### PostgreSQL ADD COLUMN: Add One Or More Columns To a Table&#xD;&#xA;https://www.postgresqltutorial.com/postgresql-add-column/&#xD;&#xA;&#xD;&#xA;##### regexp package - regexp - pkg.go.dev&#xD;&#xA;https://pkg.go.dev/regexp#Regexp.FindStringSubmatch&#xD;&#xA;&#xD;&#xA;##### quotedprintable package - mime/quotedprintable - pkg.go.dev&#xD;&#xA;https://pkg.go.dev/mime/quotedprintable&#xD;&#xA;&#xD;&#xA;##### go - Regex newline and whitespace in golang - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/43706322/regex-newline-and-whitespace-in-golang&#xD;&#xA;&#xD;&#xA;##### Golang | Replacing all String which Matches with Regular Expression - GeeksforGeeks&#xD;&#xA;https://www.geeksforgeeks.org/golang-replacing-all-string-which-matches-with-regular-expression/&#xD;&#xA;&#xD;&#xA;##### Image file type and format guide - Web media technologies | MDN&#xD;&#xA;https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types&#xD;&#xA;&#xD;&#xA;##### base64 package - encoding/base64 - pkg.go.dev&#xD;&#xA;https://pkg.go.dev/encoding/base64#Encoding.DecodeString&#xD;&#xA;&#xD;&#xA;##### RFC 4648: The Base16, Base32, and Base64 Data Encodings&#xD;&#xA;https://www.rfc-editor.org/rfc/rfc4648.html#section-3.2&#xD;&#xA;&#xD;&#xA;##### How to Strip Newline Characters from a String in Golang · GitHub&#xD;&#xA;https://gist.github.com/topherPedersen/a6d1f4f9a9e95852a3d1907b4e505625&#xD;&#xA;&#xD;&#xA;##### package management - Not enough space in /var/cache/apt/archives/ - Ask Ubuntu&#xD;&#xA;https://askubuntu.com/questions/178909/not-enough-space-in-var-cache-apt-archives&#xD;&#xA;&#xD;&#xA;##### Guide to Pronunciation&#xD;&#xA;https://www.merriam-webster.com/assets/mw/static/pdf/help/guide-to-pronunciation.pdf&#xD;&#xA;&#xD;&#xA;##### How to Create a Responsive Background Image With CSS [Guide]&#xD;&#xA;https://www.webfx.com/blog/web-design/responsive-background-image/&#xD;&#xA;&#xD;&#xA;##### CSS Colors&#xD;&#xA;https://www.w3schools.com/css/css3_colors.asp&#xD;&#xA;&#xD;&#xA;##### How To Use CSS Hex Code Colors with Alpha Values | DigitalOcean&#xD;&#xA;https://www.digitalocean.com/community/tutorials/css-hex-code-colors-alpha-values&#xD;&#xA;&#xD;&#xA;##### Reset/remove CSS styles for element only - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/15901030/reset-remove-css-styles-for-element-only&#xD;&#xA;&#xD;&#xA;##### Representing SHA-256 Hashes As Avatars | François Best&#xD;&#xA;https://francoisbest.com/posts/2021/hashvatars&#xD;&#xA;&#xD;&#xA;##### Zero-downtime schema migrations in Postgres using views – Fabian Lindfors&#xD;&#xA;https://fabianlindfors.se/blog/schema-migrations-in-postgres/&#xD;&#xA;&#xD;&#xA;##### StarQueue&#xD;&#xA;https://www.starqueue.org/&#xD;&#xA;&#xD;&#xA;##### Quote by Groucho Marx: “I&#39;m not crazy about reality, but it&#39;s still the...”&#xD;&#xA;https://www.goodreads.com/quotes/75966-i-m-not-crazy-about-reality-but-it-s-still-the-only&#xD;&#xA;&#xD;&#xA;##### Functors and Monads For People Who Have Read Too Many &#34;Tutorials&#34; - iRi&#xD;&#xA;http://www.jerf.org/iri/post/2958&#xD;&#xA;&#xD;&#xA;##### GitHub - gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.&#xD;&#xA;https://github.com/gin-gonic/gin#serving-static-files&#xD;&#xA;&#xD;&#xA;##### vertical-align | CSS-Tricks&#xD;&#xA;https://css-tricks.com/almanac/properties/v/vertical-align/&#xD;&#xA;&#xD;&#xA;##### CSS Minifier&#xD;&#xA;https://cssminifier.com/&#xD;&#xA;&#xD;&#xA;##### KornShell - Wikipedia&#xD;&#xA;https://en.wikipedia.org/wiki/KornShell&#xD;&#xA;&#xD;&#xA;##### The anatomy of Functions in Go. Like JavaScript, functions in Go are… | by Uday Hiwarale | RunGo | Medium&#xD;&#xA;https://medium.com/rungo/the-anatomy-of-functions-in-go-de56c050fe11&#xD;&#xA;&#xD;&#xA;##### CSS Support Guide for Email Clients [ Checklist] | Campaign Monitor&#xD;&#xA;https://www.campaignmonitor.com/css/&#xD;&#xA;&#xD;&#xA;##### Using CSS in HTML Emails: The Real Story | CSS-Tricks&#xD;&#xA;https://css-tricks.com/using-css-in-html-emails-the-real-story/&#xD;&#xA;&#xD;&#xA;##### The True Guide to True and False in PostgreSQL - DEV Community&#xD;&#xA;https://dev.to/discdiver/the-true-guide-to-true-and-false-in-postgresql-1p69&#xD;&#xA;&#xD;&#xA;##### How to Find Top Directories and Files (Disk Space) in Linux&#xD;&#xA;https://www.tecmint.com/find-top-large-directories-and-files-sizes-in-linux/&#xD;&#xA;&#xD;&#xA;##### How To Hide Scrollbars With CSS&#xD;&#xA;https://www.w3schools.com/howto/howto_css_hide_scrollbars.asp&#xD;&#xA;&#xD;&#xA;##### html - How to prevent new window/tab opening after form post - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/21765865/how-to-prevent-new-window-tab-opening-after-form-post/47578006&#xD;&#xA;&#xD;&#xA;##### nginx/mime.types at master · nginx/nginx · GitHub&#xD;&#xA;https://github.com/nginx/nginx/blob/master/conf/mime.types&#xD;&#xA;&#xD;&#xA;##### Raspberry Pi Documentation - Configuration&#xD;&#xA;https://www.raspberrypi.org/documentation/computers/configuration.html&#xD;&#xA;&#xD;&#xA;##### Raspberry Pi DS18B20 Temperature Sensor Tutorial - Circuit Basics&#xD;&#xA;https://www.circuitbasics.com/raspberry-pi-ds18b20-temperature-sensor-tutorial/&#xD;&#xA;&#xD;&#xA;##### Belkin Wemo API? - Internet of Things Stack Exchange&#xD;&#xA;https://iot.stackexchange.com/questions/4542/belkin-wemo-api&#xD;&#xA;&#xD;&#xA;##### i3 - Reference Card&#xD;&#xA;https://i3wm.org/docs/refcard.html&#xD;&#xA;&#xD;&#xA;##### wemo – Ben&#39;s Place&#xD;&#xA;https://www.hardill.me.uk/wordpress/tag/wemo/&#xD;&#xA;&#xD;&#xA;##### How to make a SOAP Call to your instance using the CURL Command - Support and Troubleshooting&#xD;&#xA;https://support.servicenow.com/kb?id=kb_article_view&amp;sysparm_article=KB0690780&#xD;&#xA;&#xD;&#xA;##### whitespace - Tab key == 4 spaces and auto-indent after curly braces in Vim - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/234564/tab-key-4-spaces-and-auto-indent-after-curly-braces-in-vim&#xD;&#xA;&#xD;&#xA;##### python - Assign output of os.system to a variable and prevent it from being displayed on the screen - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/3503879/assign-output-of-os-system-to-a-variable-and-prevent-it-from-being-displayed-on&#xD;&#xA;&#xD;&#xA;##### Controlling Wemo Smart Plugs with Arduino · Alex Meub&#xD;&#xA;https://alexmeub.com/controlling-wemo-with-esp8266/&#xD;&#xA;&#xD;&#xA;##### How To: Connect your Raspberry Pi to WiFi | Raspberry Pi HQ&#xD;&#xA;https://raspberrypihq.com/how-to-connect-your-raspberry-pi-to-wifi/&#xD;&#xA;&#xD;&#xA;##### debian - Configure localtime. dpkg-reconfigure tzdata - Unix&#xD;&#xA;https://unix.stackexchange.com/questions/140734/configure-localtime-dpkg-reconfigure-tzdata&#xD;&#xA;&#xD;&#xA;##### ip COMMAND CHEAT SHEET&#xD;&#xA;https://access.redhat.com/sites/default/files/attachments/rh_ip_command_cheatsheet_1214_jcs_print.pdf&#xD;&#xA;&#xD;&#xA;##### BASH Shell Redirect Output and Errors To /dev/null - nixCraft&#xD;&#xA;https://www.cyberciti.biz/faq/how-to-redirect-output-and-errors-to-devnull/&#xD;&#xA;&#xD;&#xA;##### How to configure logging to syslog in Python? - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/3968669/how-to-configure-logging-to-syslog-in-python&#xD;&#xA;&#xD;&#xA;##### In a bash script, using the conditional &#34;or&#34; in an &#34;if&#34; statement - Unix&#xD;&#xA;https://unix.stackexchange.com/questions/47584/in-a-bash-script-using-the-conditional-or-in-an-if-statement&#xD;&#xA;&#xD;&#xA;##### Bash Exit Command and Exit Codes | Linuxize&#xD;&#xA;https://linuxize.com/post/bash-exit/&#xD;&#xA;&#xD;&#xA;##### command line - Perl flags -pe, -pi, -p, -w, -d, -i, -t? - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/6302025/perl-flags-pe-pi-p-w-d-i-t&#xD;&#xA;&#xD;&#xA;##### How to Run Your Own Git Server - Linux.com&#xD;&#xA;https://www.linux.com/training-tutorials/how-run-your-own-git-server/&#xD;&#xA;&#xD;&#xA;##### How to compare times in Python? - Stack Overflow&#xD;&#xA;https://stackoverflow.com/questions/1831410/how-to-compare-times-in-python&#xD;&#xA;&#xD;&#xA;##### gloss3d | Gloss3D - 3D Modeler for Linux and Windows&#xD;&#xA;http://gloss3d.net/&#xD;&#xA;&#xD;&#xA;##### Git - Setting Up the Server&#xD;&#xA;https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server&#xD;&#xA;&#xD;&#xA;##### build-essential in Arch Linux&#xD;&#xA;https://www.garron.me/en/bits/build-essential-arch-linux.html&#xD;&#xA;&#xD;&#xA;##### GitHub - bee-san/pyWhat: 🐸 Identify anything. pyWhat easily lets you identify emails, IP addresses, and more. Feed it a .pcap file or some text and it&#39;ll tell you what it is! 🧙‍♀️&#xD;&#xA;https://github.com/bee-san/pyWhat&#xD;&#xA;&#xD;&#xA;##### How To Actually Boost Low Self-Esteem&#xD;&#xA;https://neuralshifter.com/posts/boost-self-esteem-stop-procrastination&#xD;&#xA;&#xD;&#xA;##### Using Gmail with hg&#39;s Patchbomb Extension | The Unheralded Perspective&#xD;&#xA;http://blog.sidkalra.com/2009/02/using-gmail-with-hgs-patchbomb-extension/&#xD;&#xA;&#xD;&#xA;##### Bushiden on Steam&#xD;&#xA;&#xD;&#xA;https://store.steampowered.com/app/1046920/Bushiden/&#xD;&#xA;&#xD;&#xA;##### Tig cheatsheet&#xD;&#xA;https://devhints.io/tig&#xD;&#xA;&#xD;&#xA;##### Devhints — TL;DR for developer documentation&#xD;&#xA;https://devhints.io/&#xD;&#xA;&#xD;&#xA;##### code2flow - interactive code to flowchart converter&#xD;&#xA;https://code2flow.com/&#xD;&#xA;&#xD;&#xA;##### How to extract text from an image using JavaScript - LogRocket Blog&#xD;&#xA;https://blog.logrocket.com/how-to-extract-text-from-an-image-using-javascript-8fe282fb0e71/&#xD;&#xA;&#xD;&#xA;##### How To Include HTML&#xD;&#xA;https://www.w3schools.com/howto/howto_html_include.asp&#xD;&#xA;&#xD;&#xA;##### Bauds and Bits&#xD;&#xA;http://www.physics.udel.edu/~watson/scen103/projects/96s/thosguys/baud.html&#xD;&#xA;&#xA;##### Syntax · google/re2 Wiki · GitHub&#xA;https://github.com/google/re2/wiki/Syntax&#xD;&#xA;&#xA;##### regexp package - regexp - pkg.go.dev&#xA;https://pkg.go.dev/regexp#Regexp.Match&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-09-06</title><link>abemassry.com/post/2021/09/06</link><guid>abemassry.com/post/2021/09/06</guid><description>&#xA;##### Inside the Reese&#39;s Puffs cereal beatboxes - and yeah, they made real instruments - CDM Create Digital Music&#xA;&#xD;&#xA;https://cdm.link/2021/08/inside-the-resses-puffs-cereal-beatboxes-and-yeah-they-made-real-instruments/&#xA;##### DataStation | The Data IDE for Developers&#xA;https://datastation.multiprocess.io/&#xD;&#xA;&#xA;##### HTC Vive Pro 2 Review | PCMag&#xA;https://www.pcmag.com/reviews/htc-vive-pro-2&#xD;&#xA;&#xA;##### OnLive - Wikipedia&#xA;https://en.wikipedia.org/wiki/OnLive&#xD;&#xA;&#xA;##### sql - How do you find results that occurred in the past week? - Stack Overflow&#xA;https://stackoverflow.com/questions/8732517/how-do-you-find-results-that-occurred-in-the-past-week&#xD;&#xA;&#xA;##### How to Download Files to Specific Directory Using Wget&#xA;https://www.tecmint.com/wget-download-file-to-specific-directory/&#xD;&#xA;&#xA;##### mktemp - Make a Temporary File or Directory&#xA;https://www.gnu.org/software/autogen/mktemp.html&#xD;&#xA;&#xA;##### Imagemagick: Convert to fixed width, proportional height - Stack Overflow&#xA;https://stackoverflow.com/questions/7200909/imagemagick-convert-to-fixed-width-proportional-height&#xD;&#xA;&#xA;##### Home - kitty&#xA;https://sw.kovidgoyal.net/kitty/&#xD;&#xA;&#xA;##### Browsh - A Modern Text Browser That Supports Graphics And Video&#xA;https://ostechnix.com/browsh-a-modern-text-browser-that-supports-graphics-and-video/&#xD;&#xA;&#xA;##### O.MG Cable - * to USB-A - Hak5&#xA;&#xD;&#xA;https://shop.hak5.org/products/o-mg-cable-usb-a&#xD;&#xA;&#xA;##### Noteflakes: How I Write Code: Pen &amp; Paper&#xA;&#xD;&#xA;https://noteflakes.com/articles/2021-09-02-how-i-write-code-pen-paper&#xD;&#xA;&#xA;##### Using Paper for Everyday Tasks - Xe&#xA;&#xD;&#xA;https://christine.website/blog/gtd-on-paper-2021-06-13&#xD;&#xA;&#xA;##### Tweet by John Siracusa on Twitter&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;John Siracusa&#xD;&#xA;⁦‪@siracusa‬⁩&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Oh, just reading an article about how “old movies” were paced differently…💀 pic.twitter.com/FqFbHlTd2X&#xD;&#xA;&#xD;&#xA;9/3/21, 5:49 PM&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xA;##### In Praise Of Movies That Just End (Because They Used To Know When To End)&#xA;&#xD;&#xA;https://uproxx.com/movies/modern-movie-endings/&#xD;&#xA;&#xA;##### GitHub - golanlevin/generative_covers: A resource about large-run books with generative covers&#xA;&#xD;&#xA;https://github.com/golanlevin/generative_covers&#xD;&#xA;&#xA;##### Tweet by kc 💐 wishlist A YEAR OF SPRINGS on steam! on Twitter&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;kc 💐 wishlist A YEAR OF SPRINGS on steam!&#xD;&#xA;⁦‪@npckc‬⁩&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;i made a carrd press kit template for people like me who just want a page for their press kit without dealing with code/file servers/&amp;c.! it&#39;s very simple to set up &amp; requires no coding whatsoever.&#xD;&#xA;&#xD;&#xA;carrd template: carrd.co/build/55e12b43…&#xD;&#xA;demo site: 55e12b43fc183814.demo.carrd.co pic.twitter.com/taEtJcFhqM&#xD;&#xA;&#xD;&#xA;9/3/21, 8:01 PM&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;</description></item><item><title>I Read This Week - abemassry - 2021-08-30</title><link>abemassry.com/post/2021/08/30</link><guid>abemassry.com/post/2021/08/30</guid><description># The State of DIY Cloud Gaming&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;The idea of Cloud Gaming started out as this elusive goal, always a&#xD;&#xA;step away from being ready. The draw being, you don’t need to buy an&#xD;&#xA;expensive desktop computer housing an equally (if not more) expensive&#xD;&#xA;graphics card. You could game on your console, laptop, or even&#xD;&#xA;smartphone while the game runs on a very powerful computer in a&#xD;&#xA;datacenter located in the cloud.&#xD;&#xA;&#xD;&#xA;That goal is no longer elusive though, now, there are several Cloud&#xD;&#xA;Gaming services that allow you to do this. The first time I came&#xD;&#xA;across this technology was through a service called&#xD;&#xA;[OnLive](https://en.wikipedia.org/wiki/OnLive) they were one of the&#xD;&#xA;first, if not the first, Cloud Gaming companies.&#xD;&#xA;&#xD;&#xA;What if you wanted to set this up yourself though? I have developed a&#xD;&#xA;couple of methods for doing this which I’ll walk you through, as well&#xD;&#xA;as some ideas for the future of DIY Cloud Gaming.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Method One: Parsec Cloud Gaming&#xD;&#xA;&#xD;&#xA;[Parsec](https://parsec.app) is not a Cloud Gaming service like the&#xD;&#xA;others, it’s much more. It’s a piece of software that allows low&#xD;&#xA;latency remote desktop connections, it’s even more than this though.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;My friend [@kenjihasegawa](https://twitter.com/kenjihasegawa) would&#xD;&#xA;play 2-player local co-op games with me during quarantine, even though&#xD;&#xA;we were 40 miles apart, we were able to play local co-op. We’re big&#xD;&#xA;fans of the [shmup genre, which we broadcasted playing on&#xD;&#xA;Twitch](https://www.twitch.tv/abemassry). How did we play locally even&#xD;&#xA;though we were separated so far apart, you ask?&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;When I started the Parsec server on my desktop and&#xD;&#xA;[@kenjihasegawa](https://twitter.com/kenjihasegawa) connected to my&#xD;&#xA;machine with the Parsec client he could see a video feed of my desktop&#xD;&#xA;and hear the in game music and sound effects, in addition his USB&#xD;&#xA;controller showed up as a USB controller on my machine. He also&#xD;&#xA;remarked that there was virtually no lag between pressing a button on&#xD;&#xA;the controller and having his character move on screen.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;If I had to step away for a sec though it’s like he was using a Cloud&#xD;&#xA;Gaming service, except it was his friend’s machine. Though the&#xD;&#xA;difference between this service and the others is it brought us&#xD;&#xA;together, even though we were physically distant. It was like sitting&#xD;&#xA;next to your friend on the couch and playing video games, even though&#xD;&#xA;the internet was making it possible, it felt like you were right next&#xD;&#xA;to each other.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Method Two: Rent a Machine in the Cloud&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;A few years ago I was lucky enough to be given access to a [Cloud&#xD;&#xA;GPU](https://www.linode.com/products/gpu/) Virtual Machine provided by&#xD;&#xA;[Linode](https://www.linode.com/). This allowed me to install an OS&#xD;&#xA;and see if the machine could be used for Cloud Gaming. The results&#xD;&#xA;ended up being very successful.&#xD;&#xA;&#xD;&#xA;The local hardware that is needed in your home is a [Steam Link](link&#xD;&#xA;to steam link) (or a Raspberry Pi, or a computer running the steam&#xD;&#xA;link software) and a separate Raspberry Pi (or Linux machine).&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;The goal of all of this is to bring the virtual machine into your home&#xD;&#xA;and make the Steam Link think that Steam is running locally, even&#xD;&#xA;though it’s running in the Cloud.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;For this method of the guide the “Server” is actually the RaspberryPI&#xD;&#xA;and the “Client” is actually the Cloud GPU instance you are renting.&#xD;&#xA;The Server and Client roles are what wireguard calls them and what&#xD;&#xA;you’re doing is basically bringing the Cloud GPU instance into your&#xD;&#xA;living room.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;![diy-cloud-gpu](https://wsnd.io/DkTztqg0/diy_cloud_gpu.png)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;### Step 1: Setup a wireguard server on the Raspberry Pi&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;I started out by following this guide&#xD;&#xA;https://www.stavros.io/posts/how-to-configure-wireguard/.&#xD;&#xA;&#xD;&#xA;The official install docs actually worked well:&#xD;&#xA;https://www.wireguard.com/install/&#xD;&#xA;&#xD;&#xA;In the guide they go over these steps for the public and private key&#xD;&#xA;on the server:&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;```&#xD;&#xA;umask 077  # This makes sure credentials don&#39;t leak in a race condition.&#xD;&#xA;&#xD;&#xA;wg genkey | tee privatekey | wg pubkey &gt; publickey&#xD;&#xA;```&#xD;&#xA;Here is my wg0.conf file with the keys removed:&#xD;&#xA;```&#xD;&#xA;sudo cat /etc/wireguard/wg0.conf&#xD;&#xA;&#xD;&#xA;[Interface]&#xD;&#xA;&#xD;&#xA;Address = 192.168.2.1/24&#xD;&#xA;&#xD;&#xA;PrivateKey = &lt;Server Private Key&gt;&#xD;&#xA;&#xD;&#xA;ListenPort = 51820&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o&#xD;&#xA;%i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&#xD;&#xA;&#xD;&#xA;PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o&#xD;&#xA;%i -j ACCEPT; iptables -t nat -D PREROUTING -i eth0 -j DNAT&#xD;&#xA;--to-destination 192.168.2.2; iptables -t nat -D POSTROUTING -o eth0&#xD;&#xA;-j MASQUERADE&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;[Peer]&#xD;&#xA;&#xD;&#xA;PublicKey = &lt;Client Public Key&gt;&#xD;&#xA;&#xD;&#xA;AllowedIPs = 192.168.2.2/32&#xD;&#xA;```&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;replace the above eth0 with the main interface for the Raspberry Pi,&#xD;&#xA;it may be different&#xD;&#xA;&#xD;&#xA;Then enable IP forwarding, as root:&#xD;&#xA;```&#xD;&#xA;echo 1 &gt; /proc/sys/net/ipv4/ip_forward&#xD;&#xA;```&#xD;&#xA;Enable port forwarding on the router for the wireguard&#39;s server&#39;s IP&#xD;&#xA;address to 51820&#xD;&#xA;This is where you have to go into your router’s setup and enable port&#xD;&#xA;forwarding, this part of the guide is difficult to describe because&#xD;&#xA;each router has a different page to set this up, usually it’s a&#xD;&#xA;webpage accessible on the local network.&#xD;&#xA;&#xD;&#xA;Then test it out:&#xD;&#xA;```&#xD;&#xA;sudo wg-quick up wg0&#xD;&#xA;```&#xD;&#xA;There is more server config we&#39;ll get to later&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;### Step 2: Set up the Client&#xD;&#xA;&#xD;&#xA;The Cloud GPU instance was running Ubuntu 18.10 when I set this up,&#xD;&#xA;which is now EOL, but a recent version should work the same.&#xD;&#xA;&#xD;&#xA;```&#xD;&#xA;sudo apt update&#xD;&#xA;&#xD;&#xA;sudo apt install ubuntu-unity-desktop build-essential x11vnc&#xD;&#xA;&#xD;&#xA;wget http://us.download.nvidia.com/XFree86/Linux-x86_64/430.14/NVIDIA-Linux-x86_64-430.14.run&#xD;&#xA;&#xD;&#xA;chmod +x NVIDIA-Linux-x86_64-430.14.run&#xD;&#xA;&#xD;&#xA;./NVIDIA-Linux-x86_64-430.14.run --compat32-libdir /opt&#xD;&#xA;```&#xD;&#xA;Enter this into /etc/X11/xorg.conf&#xD;&#xA;```&#xD;&#xA;# nvidia-xconfig: X configuration file generated by nvidia-xconfig&#xD;&#xA;&#xD;&#xA;# nvidia-xconfig:  version 430.14&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Section &#34;ServerLayout&#34;&#xD;&#xA;&#xD;&#xA;    Identifier     &#34;Layout0&#34;&#xD;&#xA;&#xD;&#xA;    Screen      0  &#34;Screen0&#34;&#xD;&#xA;&#xD;&#xA;    InputDevice    &#34;Keyboard0&#34; &#34;CoreKeyboard&#34;&#xD;&#xA;&#xD;&#xA;    InputDevice    &#34;Mouse0&#34; &#34;CorePointer&#34;&#xD;&#xA;&#xD;&#xA;EndSection&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Section &#34;Files&#34;&#xD;&#xA;&#xD;&#xA;EndSection&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Section &#34;InputDevice&#34;&#xD;&#xA;&#xD;&#xA;    # generated from default&#xD;&#xA;&#xD;&#xA;    Identifier     &#34;Mouse0&#34;&#xD;&#xA;&#xD;&#xA;    Driver         &#34;mouse&#34;&#xD;&#xA;&#xD;&#xA;    Option         &#34;Protocol&#34; &#34;auto&#34;&#xD;&#xA;&#xD;&#xA;    Option         &#34;Device&#34; &#34;/dev/psaux&#34;&#xD;&#xA;&#xD;&#xA;    Option         &#34;Emulate3Buttons&#34; &#34;no&#34;&#xD;&#xA;&#xD;&#xA;    Option         &#34;ZAxisMapping&#34; &#34;4 5&#34;&#xD;&#xA;&#xD;&#xA;EndSection&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Section &#34;InputDevice&#34;&#xD;&#xA;&#xD;&#xA;    # generated from default&#xD;&#xA;&#xD;&#xA;    Identifier     &#34;Keyboard0&#34;&#xD;&#xA;&#xD;&#xA;    Driver         &#34;kbd&#34;&#xD;&#xA;&#xD;&#xA;EndSection&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Section &#34;Monitor&#34;&#xD;&#xA;&#xD;&#xA;    Identifier     &#34;Monitor0&#34;&#xD;&#xA;&#xD;&#xA;    VendorName     &#34;Unknown&#34;&#xD;&#xA;&#xD;&#xA;    ModelName      &#34;Unknown&#34;&#xD;&#xA;&#xD;&#xA;    Option         &#34;DPMS&#34;&#xD;&#xA;&#xD;&#xA;EndSection&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Section &#34;Device&#34;&#xD;&#xA;&#xD;&#xA;    Identifier     &#34;Device0&#34;&#xD;&#xA;&#xD;&#xA;    Driver         &#34;nvidia&#34;&#xD;&#xA;&#xD;&#xA;    VendorName     &#34;NVIDIA Corporation&#34;&#xD;&#xA;&#xD;&#xA;    BoardName      &#34;Quadro RTX 6000&#34;&#xD;&#xA;&#xD;&#xA;    BusID          &#34;PCI:0:3:0&#34;&#xD;&#xA;&#xD;&#xA;EndSection&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Section &#34;Screen&#34;&#xD;&#xA;&#xD;&#xA;    Identifier     &#34;Screen0&#34;&#xD;&#xA;&#xD;&#xA;    Device         &#34;Device0&#34;&#xD;&#xA;&#xD;&#xA;    Monitor        &#34;Monitor0&#34;&#xD;&#xA;&#xD;&#xA;    DefaultDepth    24&#xD;&#xA;&#xD;&#xA;    Option         &#34;AllowEmptyInitialConfiguration&#34; &#34;True&#34;&#xD;&#xA;&#xD;&#xA;    SubSection     &#34;Display&#34;&#xD;&#xA;&#xD;&#xA;        Virtual      1920 1080&#xD;&#xA;&#xD;&#xA;    EndSubSection&#xD;&#xA;&#xD;&#xA;EndSection&#xD;&#xA;```&#xD;&#xA;The Specific important section is the &#34;Screen&#34; section.&#xD;&#xA;&#xD;&#xA;You can replace abe with your name below&#xD;&#xA;&#xD;&#xA;```&#xD;&#xA;adduser abe&#xD;&#xA;```&#xD;&#xA;then reboot the Cloud GPU Instance&#xD;&#xA;once it comes back up, log in and run this:&#xD;&#xA;```&#xD;&#xA;screen&#xD;&#xA;&#xD;&#xA;sudo x11vnc -storepasswd $&amp;*^(SuperSecretPassword1234PleaseChange&amp;#^@$&#xD;&#xA; /etc/x11vnc.pass&#xD;&#xA;&#xD;&#xA;/usr/bin/x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display&#xD;&#xA;:0 -rfbauth /etc/x11vnc.pass -rfbport 5900 -bg -o /var/log/x11vnc.log&#xD;&#xA;```&#xD;&#xA;and you should be able to connect via vnc and install steam and download games.&#xD;&#xA;&#xD;&#xA;Install wireguard according to the official docs&#xD;&#xA;&#xD;&#xA;Private and public keys have to be generated on the client as well,&#xD;&#xA;here is the wg0 conf file:&#xD;&#xA;&#xD;&#xA;```&#xD;&#xA;cat /etc/wireguard/wg0.conf&#xD;&#xA;&#xD;&#xA;[Interface]&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;PrivateKey = &lt;Client Private Key&gt;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;ListenPort = 21841&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;# The addresses to bind to. Either IPv4 or IPv6. /31 and /32 are not supported.&#xD;&#xA;&#xD;&#xA;Address = 192.168.2.2/24&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;[Peer]&#xD;&#xA;&#xD;&#xA;PublicKey = &lt;Server Public Key&gt;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;# The IP range that we may send packets to for this peer.&#xD;&#xA;&#xD;&#xA;AllowedIPs = 0.0.0.0/0&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;# Address of the server&#xD;&#xA;&#xD;&#xA;# Internet address&#xD;&#xA;&#xD;&#xA;Endpoint = 123.456.789.100:51820&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;# Send periodic keepalives to ensure connection stays up behind NAT.&#xD;&#xA;&#xD;&#xA;PersistentKeepalive = 25&#xD;&#xA;```&#xD;&#xA;then run:&#xD;&#xA;```&#xD;&#xA;sudo wg-quick up wg0&#xD;&#xA;```&#xD;&#xA;&#xD;&#xA;### Step 3:  Now back on the wg server (RaspberryPi)&#xD;&#xA;&#xD;&#xA;```&#xD;&#xA;sudo iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 192.168.2.2&#xD;&#xA;```&#xD;&#xA;This will make it so that everyone on the local network will think&#xD;&#xA;that your local IP address for the wireguard server is actually the&#xD;&#xA;Cloud GPU Instance, in my case my local IP was 192.168.1.101 but that&#xD;&#xA;line made the packets get forwarded to 192.168.2.2 and the pings from&#xD;&#xA;other machines showed up on the Cloud GPU Instance, this can be viewed&#xD;&#xA;with:&#xD;&#xA;```&#xD;&#xA;sudo tcpdump -i wg0&#xD;&#xA;```&#xD;&#xA;Now vnc might disconnect so you&#39;ll have to reconnect to vnc at your&#xD;&#xA;local address in my case it was 192.168.1.101:5900&#xD;&#xA;After logging into the window manager in VNC open up a terminal window and type:&#xD;&#xA;&#xD;&#xA;```&#xD;&#xA;steam -compat -nochatui -nofriendsui&#xD;&#xA;```&#xD;&#xA;Connect the steam link up and it should find the PC it might be called&#xD;&#xA;localhost as it was in my case, it will show up as a Linux steam host&#xD;&#xA;&#xD;&#xA;Then I think I had to start the game up separately and then connect to&#xD;&#xA;it, this part of the UX was the most difficult to pin down and needed&#xD;&#xA;more work.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;### Thoughts on the second method&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;While not 100% ready for primetime, the technology does work.&#xD;&#xA;Wireguard worked flawlessly and was by far the most straightforward&#xD;&#xA;piece of the project. Xorg running on a headless display was the least&#xD;&#xA;straightforward. The proprietary NVIDIA driver worked well for me. The&#xD;&#xA;Linux Steam client was the most inconsistent in behavior. But finally&#xD;&#xA;once it was up and running the graphics were very good and the&#xD;&#xA;response time was imperceptible vs playing locally on a console.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;One thing that might have made the Steam experience better was&#xD;&#xA;installing Windows on the Cloud GPU Instance. I tried this but could&#xD;&#xA;not get the Steam Link to connect to it in fullscreen mode because the&#xD;&#xA;Cloud GPU Instance needed one of&#xD;&#xA;[these](https://www.amazon.com/FREEGENE-DisplayPort-Headless-Emulator-3840x2160/dp/B075873RJR?_encoding=UTF8&amp;colid=IQ5D798OGK0L&amp;coliid=IEFNM4PJ2EJ5B&amp;psc=1&amp;_encoding=UTF8&amp;tag=massindustrie-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325)&#xD;&#xA;to make the software think a monitor was connected. Linux did not have&#xD;&#xA;this need and is able to trick it in software with the `xorg` config.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;## Final Thoughts&#xD;&#xA;&#xD;&#xA;After comparing the two methods you might be able to see where I’m&#xD;&#xA;going with this. The outcome is to have a powerful desktop possibly&#xD;&#xA;with an equally powerful GPU with the special&#xD;&#xA;[adapter](https://www.amazon.com/FREEGENE-DisplayPort-Headless-Emulator-3840x2160/dp/B075873RJR?_encoding=UTF8&amp;colid=IQ5D798OGK0L&amp;coliid=IEFNM4PJ2EJ5B&amp;psc=1&amp;_encoding=UTF8&amp;tag=massindustrie-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325)&#xD;&#xA;connected, with Parsec and steam installed, so you or your friend can&#xD;&#xA;game from anywhere.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;There might even be services on the horizon that work with something&#xD;&#xA;like XBox Game Pass which gives you access to all the games for a&#xD;&#xA;monthly fee. When you combine a monthly service for the hardware and&#xD;&#xA;the software it starts to make sense that everything can be rented. As&#xD;&#xA;opposed to the scenario above and the first method I’ve provided above&#xD;&#xA;where you own everything, the hardware, the software and the remote&#xD;&#xA;devices. Owning everything does come with its issues as well because&#xD;&#xA;if there’s a problem, there’s no one else to solve it.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;The second method I’ve provided shows you how you might start to build&#xD;&#xA;your own Cloud Gaming company basing it off of Cloud GPU Instances&#xD;&#xA;that you can rent. One could build services on top of this that spin&#xD;&#xA;up installations on demand so people could take their entire library&#xD;&#xA;of games they already have and start playing them in the cloud.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;The major game changer that has allowed all of this is internet speed.&#xD;&#xA;Writing this now in 2021 internet speed has picked up enough where&#xD;&#xA;Cloud Gaming is viable. In the past the latency was too high and the&#xD;&#xA;necessary broadband speeds were not fast enough, nor widely&#xD;&#xA;distributed enough. Now you can find a server farm or a friend&#39;s house&#xD;&#xA;with broadband that has the speed necessary to do Cloud Gaming.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;In addition everything that I’ve mentioned was within a 100 mile (161&#xD;&#xA;km) radius to my Steam Link and desktop PC. In the future the extreme&#xD;&#xA;computing resources are going to move closer to where they are going&#xD;&#xA;to be consumed and where it makes sense geographically and population&#xD;&#xA;density wise. This is currently called Edge Computing in the industry,&#xD;&#xA;and what it means for the average gamer is Cloud Gaming resources&#xD;&#xA;closer to where they live.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;The reason these hyper local computing resources are needed to combat&#xD;&#xA;latency is because of the speed of light. But going deep into&#xD;&#xA;Einstein’s relativity theory is a post for a different time.&#xD;&#xA;</description></item></channel></rss>