<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[The Joy of Programming]]></title><description><![CDATA[The Joy of Programming is a personal journey, as I overcome my fears of the bits and bytes of programming and experience the joy of solving problems with code.]]></description><link>https://thejoyofprogramming.com/</link><image><url>https://thejoyofprogramming.com/favicon.png</url><title>The Joy of Programming</title><link>https://thejoyofprogramming.com/</link></image><generator>Ghost 3.22</generator><lastBuildDate>Thu, 26 Feb 2026 13:46:06 GMT</lastBuildDate><atom:link href="https://thejoyofprogramming.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[#038 - Hitting the Reset Button #100DaysOfCode]]></title><description><![CDATA[Hello World! I am well. I recently hit the reset button on my workstation. I now sport a Samsung 2TB M.2 NVMe SSD, which is a big upgrade from my 512GB SSD.]]></description><link>https://thejoyofprogramming.com/038-hitting-the-reset-button-100daysofcode/</link><guid isPermaLink="false">5f0230b96212e00748b4f055</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Thu, 26 Dec 2019 16:02:49 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/38-jose-antonio-gallego-vazquez-HQpzT47S7Vo-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/38-jose-antonio-gallego-vazquez-HQpzT47S7Vo-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/38-jose-antonio-gallego-vazquez-HQpzT47S7Vo-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/38-jose-antonio-gallego-vazquez-HQpzT47S7Vo-unsplash.jpg 1200w"></figure><p>Hello World! I am well. I recently hit the reset button on my workstation. I now sport a Samsung 2TB M.2 NVMe SSD, which is a big upgrade from my 512GB SSD.</p><p>It was a lovely feeling to deploy a clean copy of Windows 10 Pro to my primary hard disk drive. One of the reasons for rejuvenating my workstation PC is the lack of hard drive space for creative and development purposes. The other reason is that I am anticipating a potential move away from the nest, but I will learn of my new adventures come 2020, God willing.</p><p>I also pushed the big red reset button to my coding workflow. Currently, I have been using a cloud storage platform with end-to-end encryption to house my source code and projects. This past week, I have since gutted out my old repos on GitHub to create new master repos.</p><p>I realised that I was maintaining my repos like a complete novice, as every commit and push resulted in a new clone of my name and differing e-mail address. It also explains why my GitHub activity calendar wouldn't fully populate with green squares to reflect my true contributions on GitHub.</p><p>As a coding newbie, I consulted GitHub's documentation wiki. I used the following guide to start from scratch and generate a new SSH key pair and assign this to a SSH agent on my local workstation PC.</p><p>Source: <a href="https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent">https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent</a></p><p>I soon realised from the wider community that there is a technical issue when using a SSH key pair with a passphrase with Git GUI clients. The same issue was apparent when I tried to clone my own private repos from GitHub via Visual Studio Code.</p><p>It should be noted there are no issue when working from the command line from start to finish. Everything is hunky-dory from the command line, but when using the GUI  tools that mere mortals have at their disposal - SSH keys with passphrases don't function nicely out of the box. Why? Seemingly, this has been raised with Microsoft since <a href="https://github.com/microsoft/vscode/issues/13680">October 2016</a>.</p><p>You either adopt a command line only approach, or you remove the passphrase from the SSH key. I opted for the latter, but I am using a higher bit value to give me a false sense of security. However, I am also using basic Git commands via the Terminal within VS Code and from the Git Bash terminal. Once I develop a confident grasp of the commands, I will return back to using a passphrase on the same SSH key and fully depend on the command line exclusively - unless, of course, Microsoft can fix the bug for all developers. And yes, I have consulted many tutorials of folk utilising SSH keys with passphrases, but the setup doesn't work for me.</p><p>Anyhow, I am giddy to be using GitHub again, as I want to focus my development and time on some side projects for 2020.</p><p>To those who want to avoid my novice mishap, when working with Git-integrated applications. First, you want to ensure that your Git config file is using the same profile name and e-mail address as your primary GitHub account. It would also appeal to developers who are likely to develop across multiple devices using the same Git credentials throughout your coding workflow (i.e. laptop, desktop, etc).</p><p>Within Git, be sure to define your user.name and user.email to match the same name and e-mail address as your primary GitHub / GitLab account. I opted to use the noreply e-mail from GitHub, as I don't want to reveal my personal e-mail address, which I suspect would be attached to repo commits and config files.</p><blockquote>$ git config --global user.name "John Appleseed"<br>$ git config --global user.email <a>"johnappleseed@users.noreply.github.com</a>"</blockquote><p>You can confirm these details from the global Git config file and echo the values with the following commands.</p><blockquote>$ git config --global user.name<br>John Appleseed</blockquote><blockquote>$ git config --global user.email<br><a>johnappleseed@users.noreply.github.com</a></blockquote><p>I also used the same noreply e-mail address when generating a new SSH keygen.</p><blockquote>ssh-keygen -t rsa -b 4096 -C <a>"johnappleseed@users.noreply.github.com</a>"</blockquote><p>You may also find it useful to generate a GPG key to your GitHub account. With a GPG key, you can verify signature commits within Git. I suspect this option is more appreciated when collaborating with others across different projects and repos. For a solo developer, I don't think it is necessary, but I am choosing to learn another feature as I want to learn more about software development as a whole.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#037 - SQL Data Mining #100DaysOfCode]]></title><description><![CDATA[SQL queries are genuinely fun! I am settled with the foundations of SQL as I continue to tinker with custom SQL reports for commercial partnerships at work.]]></description><link>https://thejoyofprogramming.com/037-sql-data-mining-100daysofcode/</link><guid isPermaLink="false">5f0230b96212e00748b4f054</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Sun, 17 Nov 2019 08:48:55 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/37-webaroo-com-au-2kH-6T6x_0I-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/37-webaroo-com-au-2kH-6T6x_0I-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/37-webaroo-com-au-2kH-6T6x_0I-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/37-webaroo-com-au-2kH-6T6x_0I-unsplash.jpg 1200w"></figure><p>SQL queries are genuinely fun! I am settled with the foundations of SQL as I continue to tinker with custom SQL reports for commercial partnerships at work.</p><p>I am beginning to appreciate that data is knowledge, and with knowledge comes power.</p><p>I like how SQL is structured in nature when retrieving datasets and transforming selected data in tabular views. I find SQL similar to CSS to the extent that SQL appears to run sequentially, otherwise you will run into errors.</p><p>What I really find fascinating in my learning of SQL as a programming language is the Inception-inspired query when using JOIN ON statements based on unique identifiers from other tables. After all these years of using and installing web-based platforms that utilise SQL databases, I now know the importance of the primary key.</p><p>Of course, the more JOINS your deploy to your custom SQL, as you scope the bigger picture - you secretly wish you owned a panoramic monitor to view the SELECT columns from a given table, but it also underlines the need to design smart databases.</p><p>I have yet to watch and learn the advanced course material on security practices and designing databases, but I am glad I am choosing to explore a fantasy football project as a new portfolio work during my spare time.</p><p>When I process my custom SQL query reports for our commercial partners at work, I am inspired to refine my queries to capture the most relevant data needed. The other thing that I had to Google help for was converting datestamps within a MySQL database.</p><p>So yeah, databases are fun when querying data. However, I think when deploying new systems using off-the-shelf products, or when designing a new system from scratch - I believe data and security and database design are all paramount. You can focus too much on the cosmetic design for the end user, but if you can't extract custom data at the request of the end user, whilst allowing the options to customise user data, it defeats the purpose of software development. Speaking of which... I should really start to design my database for this fantasy football project.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#036 - SQL, Node.js & JavaScript #100DaysOfCode]]></title><description><![CDATA[I am currently diving with multiple web technologies, mostly JavaScript, Node.js and SQL. I hope to learn how to secure databases and prevent SQL injection.]]></description><link>https://thejoyofprogramming.com/036-sql-node-js-javascript-100daysofcode/</link><guid isPermaLink="false">5f0230b96212e00748b4f053</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Mon, 21 Oct 2019 17:09:22 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/36-thomas-serer-r-xKieMqL34-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/36-thomas-serer-r-xKieMqL34-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/36-thomas-serer-r-xKieMqL34-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/36-thomas-serer-r-xKieMqL34-unsplash.jpg 1200w"></figure><p>I am currently diving with multiple web technologies, mostly JavaScript, Node.js and SQL. I hope to learn how to secure databases and prevent SQL injection.</p><p>Well, that is part of my underlying intention, as I dip my twinkle toes on yet another ambitious side project. This time, I wish to recreate a fantasy football league. I'm not talking about the New England Patriots vs the Seattle Seahawks, but a traditional fantasy football (aka soccer) league.</p><p>You see, I grew up playing Championship Manager as a kid. The video game series was developed by Sports Interactive and I was captivated by the game logic that grew complex at every iteration in times with the ever-evolving game of football. After the split between Sports Interactive and former publisher, Eidos Interactive - Sports Interactive teamed up with SEGA and retained the database, engine and source code (which is a win-win for any games studio). The British games developer then rebranded the game to Football Manager, which in my opinion is more marketable than Championship Manager.</p><p>I am obviously not competing with the lads at Sports Interactive, but I am keen to expand my technical skills and explore database design and how to integrate a fully-fledged database in the form of a web application.</p><p>Security will be a personal issue for me, as I swivel my cybersecurity hat like a classic baseball cap.</p><p>However, I am keen to learn the ramifications of a dynamic dataset with multiple query calls. I will likely leave the UI design to the end (again) and focus more on the game logic. I will use Microsoft Excel to build my database and export it as a CSV to build my SQL database.</p><p>I have already coded an objectified framework of various classes using JavaScript. I am not sure whether to develop everything in JavaScript and (eventually) look to JavaScript frameworks to build certain components for rapid prototyping. Or should I use both JavaScript and PHP to build the web pages and screens?</p><p>My gut tells me to use JavaScript exclusively and leave behind extra programming language overheads. Provided that I configure the web server and database correctly and securely, whilst develop the game logic to restrict user input, then I should be golden.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#035 - Jack of All Trades, Master of None]]></title><description><![CDATA[It's an honest phrase that I'm convinced would not go down too well with the HR team when reviewing your job application, never mind during a job interview.]]></description><link>https://thejoyofprogramming.com/035-jack-of-all-trades-master-of-none/</link><guid isPermaLink="false">5f0230b96212e00748b4f052</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Sun, 20 Oct 2019 11:18:15 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/35-dan-meyers-WGfhyaORzh0-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/35-dan-meyers-WGfhyaORzh0-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/35-dan-meyers-WGfhyaORzh0-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/35-dan-meyers-WGfhyaORzh0-unsplash.jpg 1200w"></figure><p>It's an honest phrase that I'm convinced would not go down too well with the HR team when reviewing your job application, never mind during a job interview.</p><p>However, the reality is - if someone is SO good, they wouldn't be applying for a 'regular' job in the public sector. Instead, that top-notcher would likely reach out to a Fortune 500 company or become an entrepreneur and pursue their great ambition.</p><p>For organisations and establishments within the public sector, soft skills typically trump technical skills.</p><p>When I was revising my curriculum vitae recently, I chose to scrap my list of 'skills' which consisted of a shopping list of software and technologies that I have used in the past. Instead, I chose to weave these worded technologies and software as part of my descriptive duties and responsibilities throughout my given roles.</p><p>I shared in last week's reflection that I also made the effort to update my non-disclosed portfolio website. I say non-disclosed, because I don't advertise it freely. I like my false sense of anonymity on the Interweb.</p><p>I have also been deliberate to NOT reveal my source code for my personal side projects in the form of a GitHub profile link. The reason being is that I use private repos on GitHub. And at the time of writing, I am not involved in any open source projects. However, it doesn't stop me from using open source technologies to create working solutions and viable prototypes.</p><p>Nonetheless, I will happily disclose the web links to commercial projects that I have been involved in. I personally believe this is typically what prospective employers care about (i.e. work-related projects that they can contact your referees to confirm your involvement).</p><p>I am not afraid to share my source code of my personal projects with prospective employers ONLY if they take a genuine interest in my self-taught knowledge and practical skills in software development. For an advertised technical role, you do hope that the prospective employer will explicitly request to see your code and/or projects. My only personal annoyance with my side projects is that I have been weaving a secondary project in the form of a custom API and it's something that I am experimenting for a potential commercial product.</p><p>I also have a pet peeve about technical roles for organisations and establishments within the public sector, because there are hardly any technical or practical tests. Why is that?</p><p>Why should a candidate appear to bluff their way in verbal conversation, when it's easier to test them on the spot and ask them to code a simple program (or discuss the intricate code of their portfolio project), or sit with someone from the interview panel in the form of pair programming, or browse through a team mailbox, or study a project design brief, or respond to live tickets and queries in a real-world environment.</p><p>It is my long-term personal ambition to work for a specific multinational company with the view to work alongside smart boffins and creative individuals and contribute to assistive technologies and educational tools for all users.</p><p>Perhaps I am setting my own bar too highly as I scope out a very niche but important role, but I would rather use my skills for good and make a positive impact in life. I hope to pilot such prototypes using open source technologies, which I will likely target for 2020. My only hindrance is accelerating my foundational knowledge in JavaScript and C# to achieve this short-term goal.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#034 - LEGO Johnny 5 In Da House!]]></title><description><![CDATA[Two weeks ago, I purchased the LEGO Mindstorms EV3 for £200. I have been eyeing the toy for 2 years and decided to buy it after seeing a £50 discount.]]></description><link>https://thejoyofprogramming.com/034-lego-johnny-5-in-da-house/</link><guid isPermaLink="false">5f0230b96212e00748b4f051</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Sat, 12 Oct 2019 07:04:37 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/34-hello-i-m-nik-vSUc4FmgkDg-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/34-hello-i-m-nik-vSUc4FmgkDg-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/34-hello-i-m-nik-vSUc4FmgkDg-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/34-hello-i-m-nik-vSUc4FmgkDg-unsplash.jpg 1200w"></figure><p>Two weeks ago, I purchased the LEGO Mindstorms EV3 for £200. I have been eyeing the toy for 2 years and decided to buy it after seeing a £50 discount.</p><p>So, why have I been inspired to buy a toy that was originally released in 2013? Quite simply, I enjoy tinkering with gadgets and I love learning new things. This blog is a testament to my learning process - and admittedly, I have a whole backlog of entries that I have yet to share.</p><p>Concerning the LEGO EV3, I have ALWAYS wanted to learn robotics since seeing a LEGO technic demo in high school (which we never seen in computing class). And at the original time of writing this reflective draft, I have finally purchased the new Raspberry Pi 4 alongside another Arduino Uno R3 IoT microcontroller board.</p><p>I am swithering in building and coding a custom R2-D2, as a fun side project to add to my digital portfolio. There are several open source solutions that extend the functionality of the LEGO EV3 brick.</p><p>One option is the EV3 Dev OS which acts as a dual boot OS. The good thing about this option is the widely supported programming languages including Python, Java, Go, C++, C.</p><p>There is also BrickPi which is a special board that snaps on to your Raspberry Pi 3 (RPi 4 is not yet supported). The good thing about the BrickPi is that you leave behind the EV3 brick, which may be ideal in some cases (like the hefty battery kit), and seemingly it offers a diverse selection of programming languages including Scratch, Python, C, Java, Node.js, Ruby... and a few others. The Node.js appeals to me because I can harness JavaScript code, but Python seems like a safer bet, as Python is traditionally used in electronics and IoT devices.</p><p>Since my arrangement with work has changed to a 'overtime' hours during my study days, I can only commit to working on my side projects at the weekend. I would like to tinker at the evenings, but after a full-time shift of 8 hours staring at a screen and the daily commute to work and back, I am learning to rest my body to recharge for the next day.</p><p>This is partly why I have sought for a developer opportunity, so at least I can exercise my coding skills on the job. In addition, I urgently want to widen my understanding and exposure of cloud technologies (especially Microsoft Azure).</p><p>I could be kicked in the head by a horse and be a hot-shot programmer overnight, but if I don't understand how code, protocols, algorithms, data integrity, security all link across and between systems, servers and users... then I am just a hot-shot programmer who can write nice clean code.</p><p>The demands and expectation of modern-day coders advertise themselves as "jack-of-all-trades, master of none". I also want to learn and work with others in a disciplined development role. Unfortunately, my current role is extremely limited for personal development, especially when we are hit with budget cuts across the board.</p><p>So yeah, I will decide to buy a legacy LEGO kit that contains the physical appearance of a licensed R2-D2 from the Star Wars universe. The main appeal for me is the personality of R2-D2 in trying to recreate the beeps, the boops, and the <a href="https://www.youtube.com/watch?v=B6mh45mA_JY">amusing screams</a>.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#033 - Refreshing My Portfolio Like It's 2019]]></title><description><![CDATA[I decided to update my personal portfolio two weekends ago. However, I didn't expect the process to consume a week of granularity and tender loving care.]]></description><link>https://thejoyofprogramming.com/033-refreshing-my-portfolio-like-its-2019/</link><guid isPermaLink="false">5f0230b96212e00748b4f050</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Fri, 04 Oct 2019 06:12:00 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/33-raychan-kJQ6cDyodAM-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/33-raychan-kJQ6cDyodAM-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/33-raychan-kJQ6cDyodAM-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/33-raychan-kJQ6cDyodAM-unsplash.jpg 1200w"></figure><p>I decided to update my personal portfolio two weekends ago. However, I didn't expect the process to consume a week of granularity and tender loving care.</p><p>I still wanted the same minimalistic look and feel of my previous portfolio website, which featured a grid of dynamic squares. Each square corresponds to a separate webpage that details more about my work and project. I opted to buy a theme, due to the constraints of my available time and the need to apply for an opportunity that I would like to be considered for.</p><p>I stumbled upon a WordPress theme that fits the bill and it offers dozens of customised options. I spent a great deal of time writing a sufficient blurb for each work and project. I also wanted to capture new hi-res images for important projects that I wanted to showcase.</p><p>I have cautiously held off uploading my code projects to GitHub, as the opportunity doesn't imply coding as an essential skill - but rather the experience of using web technologies and applications. You would naturally think they both co-exist as a single requirement, but then the pay would dramatically increase in value if it was solely a programming job. Nonetheless, I have offered to share my private GitHub repos should I be considered.</p><p>I'm glad I decided to refresh my portfolio out of the blue - and before I seen the advert for the recent opportunity. As a result, I have since revised my two JavaScript projects: the 'Deluxe Quiz' and the 'Boggle Generator'. I realised that I didn't have any nice CSS formatting, especially my prized quiz project - so I coded some CSS to make it look appealing.</p><p>GitHub is an interesting platform since Microsoft bought the platform. For one, it hosts a ludicrous amount of code for popular open source technologies and people's contribution to hundreds of thousands of repos. I have learnt from others that you don't need to upload public repos to be considered for coding jobs. Yes, I'm sure it helps to see that you may have contributed to open source, but even then - I know of folk who don't even have a GitHub account and yet, they are handsomely-paid software developers.</p><p>I do appreciate the value of a community-based pool of shared code, but there are also many abandoned repos. I have the impression that companies would rather see a finished product which can be confirmed by a referee - like a mobile app or a website, something that regular people (mainly the HR team) can click through and acknowledge the existence of a given project.</p><p>I hope to contribute to IoT projects and electronics (i.e. Raspberry Pi, Arduino, etc). I am convinced those communities will be less hot-headed than the big name players of open source technologies.</p><p>Anyhow, I know my portfolio has helped me in the past and it will serve me well in the future.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#032 - Going BATty with Cryptocurrencies]]></title><description><![CDATA[I unintentionally own some crypto all because I wanted to learn about JSON data and Excel. I now understand the great rabbit hole of YouTube.]]></description><link>https://thejoyofprogramming.com/032-going-batty-with-cryptocurrencies/</link><guid isPermaLink="false">5f0230b96212e00748b4f04f</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Tue, 01 Oct 2019 08:49:08 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/32-andre-francois-mckenzie-iGYiBhdNTpE-unsplash-2-.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/32-andre-francois-mckenzie-iGYiBhdNTpE-unsplash-2-.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/32-andre-francois-mckenzie-iGYiBhdNTpE-unsplash-2-.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/32-andre-francois-mckenzie-iGYiBhdNTpE-unsplash-2-.jpg 1200w"></figure><p>I unintentionally own some crypto all because I wanted to learn about JSON data and Excel. I now understand the great rabbit hole of YouTube.</p><p>It all started 3 months ago when I stumbled upon a tutorial video from SyntaxByte on YouTube regarding 'Import JSON Data Into Excel 2016 Using a Get &amp; Transform Query'.</p><p>Of course, my eyes were also directed to a freshly uploaded video about Coinbase and $50. Not knowing whether it was a trending scam, I couldn't help but watch the whole video as I actually have a Coinbase account that was setup many moons ago in a galaxy far, far away. I was convinced by the genuine content that I ended up following through the same tutorial videos on Coinbase.</p><p>In a nutshell, Coinbase have created a smart promotion to distribute free cryptocurrency upon completing a brief quiz at the end of each tutorial video from select cryptocurrencies (i.e. Dai, EOS, Stellar Lumens, Zcash, Basic Attention Token, and Ox).</p><p>The promotion has obviously proved to be successful and very popular, so much so that I didn't claim the full $50 at the time. Perhaps around $40 worth of free money, which at the end of the day is £30 more than what I had... if I didn't jump the rabbit hole of YouTube videos.</p><p>I looked at the crypto markets, which seems pointless due to the volatile nature and decided to convert lesser known cryptos to Bitcoin. I now have a balance between Bitcoin and EOS. I believe EOS is part Ethereum and it would be interesting to toy around blockchain technology (for a side code project), hence why I'm not wanting to cash in anything.</p><p>From the list of freebies, I only recognise Basic Attention Token (BAT), which I was still accumulating on my Brave web browser. I registered myself as a Brave Creator and linked my details with an Uphold account, so I can now administer my BAT coins. I have a few content-driven websites, which now accept BAT. Personally, I'm not depending my living on BAT and I'm not going preach to people to send my their BAT.</p><p>I'm going to call it, but I suspect we will soon be hearing folk on YouTube... "So yeah, thanks for watching. Hit the 'Like' button and be sure to 'Subscribe'. You can also 'Follow' me on Facebook, Twitter, Instagram... and you can now 'Tip' me from your Brave web browser".</p><p>Meanwhile, some of us just want to own some cryptocurrency for ourselves, never mind consider how to utilise cryptocurrency for cosmetic in-purchase items for our favourite games and social media platforms.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#031 - The Herman Miller Embody Chair Seats Me]]></title><description><![CDATA[I desperately needed a new computer chair for my study desk at home. My old one was literally falling apart and damaging my back.]]></description><link>https://thejoyofprogramming.com/031-the-herman-miller-embody-chair-seats-me/</link><guid isPermaLink="false">5f0230b96212e00748b4f04e</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Thu, 19 Sep 2019 06:53:46 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/31-tom-van-hoogstraten-8ZwmllBhUS0-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/31-tom-van-hoogstraten-8ZwmllBhUS0-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/31-tom-van-hoogstraten-8ZwmllBhUS0-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/31-tom-van-hoogstraten-8ZwmllBhUS0-unsplash.jpg 1200w"></figure><p>I desperately needed a new computer chair for my study desk at home. My old one was literally falling apart and damaging my back. So much so that I could only sit at my study desk for an hour or two, before I would resort to lying on my back in bed to straighten myself out.</p><p>Since working for the State, I have since been inspired by Herman Miller seating. At work, we were issued with the Aeron. Admittedly, I found it cumbersome due to the lack of lower-back support. And yet, it was somewhat more comfortable than a regular office chair because there were plenty of controls to adjust the recline, height and upper back support.</p><p>Having saved my part-time dosh during a whole calendar month, I splurged on a new Herman Miller Embody chair. I considered buying the Embody second-hand, but there was only a 1-year warranty attached to the supplier. If I coughed up another £300, I would secure a brand-spanking new chair and acquire a 12-year warranty, when purchased directly from Herman Miller (or its associated authorised sellers).</p><p>I held back from buying the Embody chair until the Herman Miller annual sale (mid May). I basically saved £260 (around 20%), which took the price to a £1k. I know... who would pay £1k on a bloomin' chair? Especially in a day and age when you can easily buy knock-off chairs from the likes of IKEA, or a refurbished office chair from a second-hand outlet.</p><p>Primarily, I wanted the 12-year warranty from Herman Miller. Also if I was going to cough up so much of my part-time wages, I wanted to customise it to the materials that would appeal to me, even though I wouldn't be seeing much of the materials when I sit and face my keyboard and monitor. Nonetheless, I opted for the titanium base, white frame and hard floor casters. For the back and seat finish, I picked the Balance Iris.</p><p>I also spent several months beforehand watching multiple YouTube reviews and read various articles across many websites concerning the Herman Miller Embody. The other appeal to buy this chair over competitors like the Steelcase Leap v2 was the availability to buy the chair direct from the manufacturer. In addition, the 'medical' research behind the design of the Embody appealed to me. I was also bemused that the Embody was rarely available as a second-hand item, compared with the Steelcase Leap v2 which was available by the truckload.</p><p>According to Herman Miller, the Embody chair has been touted with the following claim:</p><p>'More than 20 physicians and PhDs in the fields of biomechanics, vision, physical therapy and ergonomics contributed their expertise to help guide the development of this chair. As a result, Embody has set a new benchmark for pressure distribution, natural alignment and support for healthy movement in ergonomic seating.'</p><p>I also done a simple test to determine if the Embody would suit my back by leaning on a flat surface (i.e. my study desk) and lifting one knee slowly to my stomach. The other leg was still draped over the table. Seemingly, if the other leg lifted alongside the pulled leg, then this chair wouldn't be suitable. I used this test, as I don't live near the Herman Miller showrooms.</p><p>The only annoyance for me was that I had to wait 45 business days, since the chair was handcrafted in the USA. 45 business days translates to approximately 2 calendar months, but I cannot fault the craftsmanship. It's also nice to see a fresh datestamp of June 2019.</p><p>The Embody arrived in a lovely corrugated cardboard box in late July and I made a personal note for the delivery team to heave it to my study room. I have now been using the Embody chair for 7 weeks and I cannot find a faulty with the mechanics, design, comfort or customer service.</p><p>The Embody is surprisingly silent, but this may be more so for me, as I don't enable the recline feature. I prefer to sit upright. If I want to recline, I get out my seat and stretch my legs.</p><p>I also appreciate and understand people's concern with the 'BackFit' feature on the Embody. There are side controls to adjust the BackFit to adapt to the shape of your lower-back. When I first experienced this feature, I found it sturdy but surprisingly supportive - at least, for my own back shape. I honestly don't have any issue with the BackFit support. However, you do want to spend ample time to make the fine-tune adjustments until your body is comfortable. It took me several days of fine-tuning.</p><p>The same applies for the 'pixelated' membranes that make the full back surface of the Embody. I don't feel any prodding to any area - even when I stretch my shoulders from side to side, or when pulling back my shoulders over the chair. I also don't feel the membranes forcing my back to curve forward. Again, there are side controls to adjust the uprightness of the Embody.</p><p>Overall, I am very happy with my expensive investment, and for once, I don't have buyer's remorse. My only regret is not buying the chair sooner, but I would advise waiting for the annual sale, as you basically save yourself 20% tax.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#030 - Extending the ThinkPad X220]]></title><description><![CDATA[I still use my sturdy ThinkPad X220 for web browsing and passive coding. I mostly use my custom-built PC for my daily workload outside my working hours.]]></description><link>https://thejoyofprogramming.com/030-extending-the-thinkpad-x220/</link><guid isPermaLink="false">5f0230b96212e00748b4f04d</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Sun, 08 Sep 2019 11:23:33 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/30-cetteup-vX_zk5yo7M4-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/30-cetteup-vX_zk5yo7M4-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/30-cetteup-vX_zk5yo7M4-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/30-cetteup-vX_zk5yo7M4-unsplash.jpg 1200w"></figure><p>I still use my sturdy ThinkPad X220 for web browsing and passive coding. I mostly use my custom-built PC for my daily workload outside my working hours. However, I still favour the ThinkPad X220 for general tasks.</p><p>The beauty of the X220 as with older models of that classic era is the ability to disassemble the innards without fear, as every component is user repairable. Basically, the internal components from the Wi-Fi card to the memory chips are not soldered to the logic board like Apple's 'eco-friendly' marketing ploy.</p><p>In recent months, I noticed my X220 was whirling its core fan. Perhaps I needed to blow the central fan using my trusty Giottos Rocket Air Blaster. I'm hoping it's not related to resource-hungry applications. The only culprit that I found and uninstalled was the Office 365 app within Windows 10. Annoyingly, the X220 fan still kicked in despite the low-resource desktop environment.</p><p>I was inspired to reapply the thermal paste on the CPU as I still have a fresh syringe of Arctic Silver 5. I watched a short YouTube video to learn how to disassemble my X220 with little to no damage. I took time to remove the old thermal paste and apply some fresh Arctic Silver compound.</p><p>I then danced around the same YouTube video, as I couldn't remember what screws were to go in which hole, purely because I want to avoid the embarrassment of inheriting extra screws than I started out with.</p><p>Of course, throughout the process of disassembling and reassembling my trusty X220, I used Mr Giottos to blow away the dust and used some hand sanitiser to wipe away any grime or stains.</p><p>I was pleasantly surprised to learn that my X220 now runs quieter than normal. The single laptop fan will only kick in when I consume additional processing power to run extra tabs on my web browser and/or running multiple applications. As long as the fan doesn't cycle for no particular reason, then I am happy as Larry.</p><p>I have considered investing in a newer laptop. I am torn between a ThinkPad X1 Carbon 4th Gen, a MacBook Pro (Mid 2014) or a new HP EliteBook 850 G6. Only the latter can give me 32GB RAM and the ability to plug in my own M.2 NVMe SSD drive. Gosh. Even the HP EliteBook allows you to upgrade the Wireless Card, WWAN and battery. It's all very promising, but CES 2020 is just round the corner and I'm currently saving my dosh for more important plans.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#029 - The Process of Changing Emails]]></title><description><![CDATA[It's been a busy month due to working overtime hours, thus lagging behind in my coding projects. However, I've been updating my e-mails across the Interweb.]]></description><link>https://thejoyofprogramming.com/029-the-process-of-changing-emails/</link><guid isPermaLink="false">5f0230b96212e00748b4f04c</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Wed, 21 Aug 2019 20:09:01 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/29-carol-jeng-6O7EkAgC-3s-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/29-carol-jeng-6O7EkAgC-3s-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/29-carol-jeng-6O7EkAgC-3s-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/29-carol-jeng-6O7EkAgC-3s-unsplash.jpg 1200w"></figure><p>It's been a busy month due to working overtime hours, thus lagging behind in my coding projects. However, I've been updating my e-mails across the Interweb.</p><p>A few weeks ago, I decided to consolidate my e-mail accounts. I am still working through my online accounts. Let's just say that I am close to reaching my limit of aliases associated with my designated enterprise mail provider.</p><p>From a user experience, it has been a frustrating process. You would expect organisations to test (and facilitate) their own customer journey workflow. Never mind the obvious key performance indicator (KPI) to secure a customer to subscribe to your own newsletter, but you should also consider the workflow to changing one's e-mail address. It's not rocket science.</p><p>As I login to my web accounts with the view to change my e-mail address, there are websites who ask me to enter my new e-mail address once, whilst prompting me to confirm my password. Some websites ask for the e-mail address to be entered twice, with the addition of my current password as a form of user validation. The latter makes more sense in case you have sausage fingers. Some websites have a conditional script attached to the secondary textbox, where you need to re-enter your e-mail address. The script prevents you from copying and pasting the newly typed e-mail address, which is logical and acceptable.</p><p>Most websites will send out an automated e-mail to your new e-mail address with instructions to confirm your new e-mail address. This also makes sense and I can understand how this process would assume the new e-mail address would supersede your account when it comes to receiving subscribed newsletters and account information.</p><p>However, not all web accounts follow a linear logic when it comes to utilising your new e-mail address to receiving subscribed newsletters (despite following through the process of changing and confirming your new e-mail address). Instead, you will continue to receive your designated newsletter at your old e-mail address, as opposed to your new e-mail address.</p><p>You will then assume that by unsubscribing the newsletter at your old e-mail address would force the web account to use the new e-mail address associated with your web account. However, I have learned that this is not the case.</p><p>Some services allow you to update and/or manage your newsletter subscription, where you can change your e-mail address to use the new e-mail. For some web accounts, I have tried another tactic including disabling the newsletter and saving my settings, before re-enabling the newsletter and saving the settings again (a bit like rebooting a computer, or switching something off before powering it back on again).</p><p>Only one web account was very strict to confirm my newly changing e-mail address. Firstly, they sent out a confirmation e-mail to my current e-mail address. Upon validating my current e-mail address, I then received another confirmation e-mail - this time, the destination reached my new e-mail address. I cannot recall the name of the web account that follows this strict process. It may well be a digital currency exchange. I am certain it was Coinbase that adopted this secure approach.</p><p>So yeah, I am two thirds done with changing my e-mail address across the board, but as a software developer to be, I may code a workflow that is intuitive to the end-user when it comes to changing one's e-mail address. The process should be seamless, and it should be automated at the back-end without the user instigating further action - so they can receive newsletters at the ready. Ironically, Adobe fails in this simple process when you choose to update your e-mail address. It seems like your new e-mail address only represents your credentials when logging to the Adobe Creative Cloud, but when it comes to newsletter subscriptions - it's a tedious process to unsubscribe from the old and re-subscribe using the new e-mail address. So much so, that the subscription management page doesn't retain your previous settings.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#028 - Boggling the Mind #100DaysOfCode]]></title><description><![CDATA[As my coding is formally limited to the weekends until September, I decided to spend the weekend exploring the word game Boggle for my next coding project.]]></description><link>https://thejoyofprogramming.com/028-boggling-the-mind-100daysofcode/</link><guid isPermaLink="false">5f0230b96212e00748b4f04b</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Tue, 06 Aug 2019 05:02:00 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/28-john-jennings-wRgNwR9CZDA-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/28-john-jennings-wRgNwR9CZDA-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/28-john-jennings-wRgNwR9CZDA-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/28-john-jennings-wRgNwR9CZDA-unsplash.jpg 1200w"></figure><p>As my coding is formally limited to the weekends until September, I decided to spend the weekend exploring the word game Boggle for my next coding project.</p><p>Somewhere inside our TARDIS that is the attic, we have a classic rendition of Boggle, produced and distributed by the Parker Brothers. I considered buying the new Boggle (manufactured by Hasbro) with the view of studying the dice set and understanding the game logic. I believe this all started since playing 'Wordament' from the Microsoft Ultimate Word Games suite on my Windows 10 computer.</p><p>I held off buying the new Boggle and found a few useful sources on the Interweb. I came across two Boggle collections of 16 dice featuring all the lettered facing from each die - with one set dubbed 'Classic', while the other set is categorised as 'New'. I also stumbled upon the Collins Scrabble Words (formerly SOWPODS) word list that features 267,753 words. It is not the latest revision, which is seemingly in the region of 279,496 words (CSW19).</p><p>One of the tricky tasks will be interacting with the DOM (Document Object Model) minus the click-and-drag functionality that is more accessible than multiple clicks on each die face when composing words. I could allow the user to type out the words they see on the screen. Who knows? Firstly, I want to simplify the game logic, especially when calculating the dictionary validation of each composed word in real-time.</p><p>At the time of writing, I have an active grid of 16 cubes. Each die generates a unique face from the 16 dice collection. I am happy with the working results. I even managed to recycle a key function from my quiz project. Fortunately, I only made two small tweaks, which essentially allows the player to randomise the facing of a 6-sided die - to simulate the rolling of a die in a game of Boggle. With 16 randomly generated results across a grid of 16-facing cubes, my browser is fast to calculate this process instantaneously at every webpage refresh.</p><p>It will also be challenging to somehow extract and compare selected words from the DOM (Document Object Model) with the heavily compiled word list that sits inside a single TXT file. As you may have guessed, I am using JavaScript to code this new side project. It would also be interesting to tally the available words from a generated game board and work around a small pool of real-time analysis.</p><p>I am waiting for the new edition of the Collins Scrabble Dictionary to be published next month, so I can better understand the definition of these random words. Plus, it would be nice to expand my vocabulary - should I choose to play a competitive game of Scrabble, or when expressing myself in an inquisitive conversation.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#027 - Consolidating Binary Assets]]></title><description><![CDATA[There are pros and cons to using multiple email accounts. Last weekend, I decided to fully utilise my subscription with an enterprise mail provider.]]></description><link>https://thejoyofprogramming.com/027-consolidating-binary-assets/</link><guid isPermaLink="false">5f0230b96212e00748b4f04a</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Wed, 31 Jul 2019 19:22:14 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/27-tim-evans-Uf-c4u1usFQ-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/27-tim-evans-Uf-c4u1usFQ-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/27-tim-evans-Uf-c4u1usFQ-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/27-tim-evans-Uf-c4u1usFQ-unsplash.jpg 1200w"></figure><p>There are pros and cons to using multiple email accounts. Last weekend, I decided to fully utilise my subscription with an enterprise mail provider.</p><p>When I learned that I can associate more than one custom domain to my account, I thought it would be wise to put them to good use. I was also giddy to learn that you can associate 400 email aliases to a single user account. It is better value than other paid services and it suits my one-way traffic in receiving e-mail. It's also good practice for me to better learn the mechanics of an enterprise mail exchange server.</p><p>Mind you, I will likely subscribe to an end-to-end encryption mail service for private correspondence. However, the service that I am eyeing doesn't use PGP. Instead, they deploy their own encryption method that is seemingly better than PGP. In all honesty, I think the best end-to-end encryption is not using the Internet. Period.</p><p>Alongside the tedious task to change my email address across the board, I have also reconfigured my active domains to utilise best security practice across my personal websites - mainly my blog and portfolio website. I'm delighted to finally be serving HTTPS via TLS 1.2 and above.</p><p>The reason for the sudden push to consolidate my binary assets is mainly because I'll be working "overtime" for the month of August. I wish to reserve my evening for web development and learning - provided that I have enough strength to look at my monitor screen at home, even after an 8-hour shift of work.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#026 - Git-R-Done #100DaysOfCode]]></title><description><![CDATA[I re-watched a video track on Frontend Masters, only to realise that my brain picked up on the finer details that I had overlooked the first-time round.]]></description><link>https://thejoyofprogramming.com/026-git-r-done-100daysofcode/</link><guid isPermaLink="false">5f0230b96212e00748b4f049</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Mon, 22 Jul 2019 09:00:45 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/26-ross-sokolovski-YKQawNUINXA-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/26-ross-sokolovski-YKQawNUINXA-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/26-ross-sokolovski-YKQawNUINXA-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/26-ross-sokolovski-YKQawNUINXA-unsplash.jpg 1200w"></figure><p>I re-watched a video track on Frontend Masters, only to realise that my brain picked up on the finer details that I had overlooked the first-time round.</p><p>I wish to reflect on Git. I admit, I found Git to be cumbersome at first, but I am now comfortable with the wide array of tools and basic commands at my disposal.</p><p>Previously, I have been using an encrypted cloud storage provider to host my coding projects, due to its end-to-end encryption and version history functionality. As a solo programmer who codes on the side, it hasn't made sense for me to utilise coding repositories like GitHub or GitLab, despite owning accounts with each platform.</p><p>I initially favoured GitLab, as it allowed users to create private repos. Yes, I am for open-source learning and technologies, but I was hoping to safely store coding projects that I would later develop for commercial purposes.</p><p>I have since been encouraged to re-visit GitHub, since Microsoft has jazzed up their basic offering and they now provide private repos for standard accounts. I re-configured the SSH keys on my account, as I learned that I had to set the SSH agent within Windows before my computer could remote to GitHub via Git. I know... I feel like a git.</p><p>I am now comfortable with the basics of Git, whether it's at the command line using Bash - or when balancing between features and extensions via VS Code (i.e. Source Control, GitLens, and GitHub Pull Requests).</p><p>The two main reasons for re-visiting Git is primarily to grow more competent with Git and the process of source control - especially when I want to contribute to open source projects. The secondary factor is to start populating my GitHub account with real content, as recruiters and private companies will likely view GitHub as a dynamic CV for the modern-day software developer. It still doesn't stop me from creating a custom website to supplement my GitHub and CodePen snippets.</p><p>I will likely push samples and rough code using HTML, CSS and JavaScript. I also want to deploy some electronic-based projects to GitHub like samples coded for the Arduino and Raspberry Pi. I will of course push some private projects to safeguard my local copies of projects in the making.</p><p>The one key feature that I appreciate is the ability to view the changes of commits between lines of code. I am sure this feature will be resourceful when working in Agile team environments, but also as a reminder to oneself of one's respective code.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#025 - The 2-Week Summer Sabbatical]]></title><description><![CDATA[Technically, it'll be a 13-day vacation to immerse myself in video training and code. Who would have thought an intense 'break' would equate to rest or fun?]]></description><link>https://thejoyofprogramming.com/025-the-2-week-summer-sabbatical/</link><guid isPermaLink="false">5f0230b96212e00748b4f048</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Sun, 07 Jul 2019 11:16:32 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/25-clay-banks-1Uj0HmqQFGk-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/25-clay-banks-1Uj0HmqQFGk-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/25-clay-banks-1Uj0HmqQFGk-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/25-clay-banks-1Uj0HmqQFGk-unsplash.jpg 1200w"></figure><p>Technically, it'll be a 13-day vacation to immerse myself in video training and code. Who would have thought an intense 'break' would equate to rest or fun?</p><p>Most folk think grilling their semi-naked bodies on a beach is the forward-thinking way of having a good time. For me, it's being productive with my time.</p><p>I have arranged a very improvised main menu over the course of my 2-week sabbatical.</p><p>For starters, I'll have the time to sit through my kiddie maths books and explore the Singapore Method. It would also be fun to explore the mathematics behind solving my Rubik's cube and understanding the data structure of a standard Sudoku grid.</p><p>The main course will consist of further frontend development and C# - lightly seasoned with C++ and Python, as I dabble with some technical projects using my Arduino kit and Raspberry Pi. I may consider exploring mobile app development using a framework like Electron.</p><p>For dessert, I will indulge in chess lessons on the side. I may even capture some sounds using my field recording kit. Who knows, the pitter patter of rain or the birds tweeting and chirping could form my new sound library of the natural surroundings. I'm not into ASMR, but I do like ambient sounds.</p><p>~Richard</p>]]></content:encoded></item><item><title><![CDATA[#024 - Learning to Code ASP.NET Like It's 2013]]></title><description><![CDATA[I am literally obsessed with intermediate video lessons on C# despite being new to C#. I decided to pay a 1-yr subscription to Bob Tabor's video collection.]]></description><link>https://thejoyofprogramming.com/024-learning-to-code-asp-net-like-its-2013/</link><guid isPermaLink="false">5f0230b96212e00748b4f047</guid><dc:creator><![CDATA[Richard Johnston]]></dc:creator><pubDate>Sun, 30 Jun 2019 12:49:09 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://thejoyofprogramming.com/content/images/2020/07/24-kobu-agency-67L18R4tW_w-unsplash.jpg" class="kg-image" alt srcset="https://thejoyofprogramming.com/content/images/size/w600/2020/07/24-kobu-agency-67L18R4tW_w-unsplash.jpg 600w, https://thejoyofprogramming.com/content/images/size/w1000/2020/07/24-kobu-agency-67L18R4tW_w-unsplash.jpg 1000w, https://thejoyofprogramming.com/content/images/2020/07/24-kobu-agency-67L18R4tW_w-unsplash.jpg 1200w"></figure><p>I am literally obsessed with intermediate video lessons on C# despite being new to C#. I decided to pay a 1-yr subscription to Bob Tabor's video collection, as I think his content would complement the C# video series by Mosh Hamedani (Code with Mosh).</p><p>I'm still wagering the open bet that Mosh's material is more concise, but I also need to pace myself as Mosh does cover certain techniques that I need to re-watch several times through.</p><p>Mind you, I was disheartened to discover that Bob's fundamental series is from 2013. At least Mosh's material is only a couple years old. Nonetheless, I am somewhat content to be exposed to ASP.NET quite early on and the gloriously-old Visual Studio 2013 IDE, which is something I have never witnessed, nor understood - until subscribing to Bob. On a positive note, one of the reasons for adopting Bob's video courses is the mini projects. I am confident I can better understand the C# syntax when there are progressive projects, alongside the technical know-how from Mosh.</p><p>For someone who is pro open source, I value exposing myself to all trends and technologies, even proprietary stuff like ASP.NET web pages. Anyhow, I am curious how I could utilise ASP.NET as a portfolio segment. Who knows, I may port over my JavaScript quiz project to ASP.NET, but I suspect ASP.NET will likely amalgamate with the .NET framework and C# apps.</p><p>~Richard</p>]]></content:encoded></item></channel></rss>