RSSAmplifier

Blog

Freshman — Articles and Tutorials on Software Development

Freshman provides order to the often chaotic process of learning new concepts in Software Development.

freshman.techRSS feed ↗40 posts

Latest posts

Creating Your First Chrome Extension (With Built-in AI Features)

Chrome extensions let you add new features to your browser, from password managers to privacy tools and productivity helpers. If you’ve ever wondered what it takes to build one yourself, this tutorial will guide you through the process step by step and show that creating your own extension is far more approachable than it might seem.

Book Summary: A Philosophy of Software Design

Written by John Ousterhout, a Professor of Computer Science at Stanford University, this book’s central idea is all about managing and reducing complexity in software projects. It draws upon his experience as an academic, but also from his various commercial endeavours, and his work on the Tcl scripting language. It’s a short and light read (about 170 pages) that discusses several…

A Complete Guide to Linting Go Programs

Linting is the process of identifying and reporting on patterns found in code, with the aim of improving consistency, and catching bugs early in the development cycle. This is particularly useful when working in a team as it helps to make all code look the same no matter who’s writing it, which reduces complexity, and makes the code easier to maintain. In this article, I’ll demonstrate…

A Guide to Customising the Windows Terminal

The Windows Terminal provides a much improved command line experience in Windows 10 and 11. It’s packed with useful features like GPU acceleration, tabs, panes, themes, and shortcuts, along with full support for different environments such as PowerShell, Command Prompt, and Windows Subsystem for Linux. In this article, I’ll describe a few ways to tailor the terminal experience to your…

How to process file uploads in Go

Processing user uploaded files is a common task in web development and it’s quite likely that you’ll need to develop a service that handles this task from time to time. This article will guide you through the process of handling file uploads on a Go web server and discuss common requirements such as multiple file uploads, progress reporting, and restricting file sizes.

How to build a Pomodoro Timer App with JavaScript

Pomodoro is a time management technique developed in the 1980s which uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks. In this tutorial, you’ll learn how to create such a timer in the browser with JavaScript.

How to build a Simon Game with JavaScript

Creating games in the browser is a great way to practice your JavaScript skills and have fun at the same time!

Migrating away from Google Analytics

I switched away from Google Analytics to Plausible for a better user experience, privacy and performance. As an added advantage, the accuracy of the reported metrics for my website has improved by 30-40%.

The quickfix and location lists in Vim

The quickfix and location lists are essential navigation components in Vim. This article will consider the similarities and differences between the two lists and provide examples for when each one is typically used.

How to work with Data Types in Go

Go is a statically typed programming language which means that every value in Go is of a particular type and these types must be known at compile time so that the compiler can ensure that the program is working with the values in a safe way. This article will consider the most important built-in types in the language that you need to be aware of.

Working with Variables in Go

Can you program without variables? Maybe in some esoteric languages, but in Go, you can’t. So it’s important to get acquainted with how variables work in the language so that you can write effective programs. And that’s what this article is all about.

How to program a guessing game with Go

Let’s jump into Go by working through a hands-on project together. This tutorial will introduce you to a few common Go concepts such as variabes, error handling, loops, packages, and more by showing you how to use them to tackle a classic beginner programming problem.

Introduction to the Go programming language and why you should learn it

Since its first release in 2009, Go (also known as Golang) has continuously increased in popularity and has been adopted by big and small companies alike mostly in place of dynamic environments such as Python, Ruby, and Node.js. The language has a lot to offer and is well worth learning in 2020 and beyond.

How to build a Custom HTML5 Video Player with JavaScript

This guide will teach you how to create a cross-browser HTML5 video player with JavaScript using the Media and Fullscreen APIs.

How to Build Your First Web Application with Go

One of Go’s greatest strengths lies in the its suitability for developing web applications. It offers great performance out of the box, is easy to deploy, and has many of the necessary tools you need to build and deploy a scalable web service in its standard library. This tutorial will walk you through a practical example of building a web application with Go and deploying it to production.…

How to build an Unsplash Search App with Svelte 3

In this article, we’ll pick up from the previous post that introduced the Svelte 3 library and tackle another exercise that teaches a little more about the features Svelte has to offer. During the course of working through this tutorial, you will build an application that searches Unsplash and presents the results in an infinitly scrolling list. Here’s what the completed project will…

Learn Svelte 3 by building a Todo List App

Why is Svelte gaining popularity, and do we really need another JavaScript framework? In this article, we’ll take a look the value proposition of Svelte compared to other mainstream frameworks, and get some hands on experience by building a todo list application

A guide to setting up Vim for JavaScript development

I’ve been using Vim for close to two years now, and do all my JavaScript development work in it. In the process, I’ve tweaked my configuration several times until I finally achieved a setup that I can say I’m really happy with. So, in this article, I want to talk about some of the plugins and tools that I’ve taken advantage of to make writing JavaScript a more pleasurable…

How to build a Countdown Timer with Golang

In this tutorial, we’ll go over how to build a countdown timer in Golang. The object of the program is quite simple. We’ll specify a deadline date while running the program and then it prints out the number of days, hours, minutes and seconds from the current moment to the deadline, and it continues to do so every second until the deadline is reached. Prerequisites This tutorial…

How to build a Todo List App with JavaScript

Some people claim building a todo list app is a boring activity since so many exist already but I think it remains a great exercise for learning useful concepts that are widely applicable in many programming contexts.

Learn Node.js and MongoDB by Building a URL Shortener App

In this article, you’ll learn how to build a URL Shortener application with Node.js and MongoDB. Here’s a live demo of what we’ll be building. You can find the complete source code for this project in this GitHub repo . Prerequisites I assume basic familiarity with JavaScript as well as the command line. If you haven’t built a basic Node application before, you might want…

How to build a Mobile App Layout with CSS Flexbox

I’ve described how to build a few web components with Flexbox here , here and here . Let’s kick things up a notch by building a full mobile app layout with Flexbox. I’ll show you some some really neat ways you can leverage the power of Flexbox in your websites and applications by recreating a layout from Spotify’s mobile app. Here’s a live demo of what we’ll be…

Learn Node.js by Building a Timestamp Microservice App

One of the reasons why Node.js is such a great platform for building applications is the abundance of libraries that have been developed by the community for practically all the common use cases. This makes it really easy to go from idea to a production-ready application in a relatively short space of time. That said, at least understanding Node.js’s standard libraries will always be…

How to build a responsive feature list with CSS Flexbox

In this tutorial, you will learn how to build a common component on product landing pages. Have you seen marketing pages that display feature images and their descriptions in alternating order? Flexbox makes this pattern really easy to build out, and no, you don’t have to change the HTML in order to achieve this. The feature list on alfredapp.com The particular feature list we’ll be…

How to build a Navigation Bar with CSS Flexbox

In the previous article , I introduced the Flexbox layout model and demonstrated how it can be used to build a photo card component, which is identical to the one found on the Unsplash homepage . This tutorial will take you through building another real-world component with Flexbox. This time, we will recreate the navigation bar that is found on freeCodeCamp . Here’s how it looks like : As…

Learn CSS Flexbox by building a photo card component

CSS Flexbox has been around for quite a while now, and is well supported, but I still see a lot of upcoming web developers resorting to frameworks like Bootstrap in order to achieve simple layouts in the browser, perhaps because Flexbox introduces many new concepts that can make it difficult to use. This article will introduce you to Flexbox by walking you through a photo card component and will…

A Guide to Responsive Images on the Web

The process of optimising images for the web does not stop at using tools like MozJPEG or pngquant . You also need to make sure that you are serving the right images to your users depending on their device capabilities. The concept of responsive images refers to a system for adapting images to fit the resolution, viewport and layout for any device, and it goes farther than just applying a…

How Image Optimisation Decreased my Website's Page Weight by 62%

Images are one of the most fundamental types of content that is served on the web. They say an image is worth a thousand words, but it can also be worth quite a few megabytes too if you’re not careful. So although web images need to be clear and crisp, they must also be delivered at manageable sizes so that load times are kept small and data use is kept at acceptable levels.

How to build a Calculator App with JavaScript

This epic tutorial provides a solid workout for JavaScript newbies by describing how a simple calculator application can be developed with the language.

Learn CSS Grid by building a simple Calculator Layout

CSS Grid is a new way of defining the structure of a webpage. It helps developers create complex layouts on the web easily without resulting to old methods such as floats or complicated frameworks which introduced all sorts of problems. The introduction of Grid provides a system of laying out webpages that is native to web browsers and even more powerful than what you can achieve with CSS…

How to Build Your First Node.js Website with Express and Pug

For most of my career as a Web Developer, I worked on the frontend of websites and applications consuming APIs made by other people. Recently, I decided to learn Node.js properly and do some server-side programming as well. I decided to write this introductory tutorial for anyone who is interested in learning Node after realising that it’s not so easy to read the documentation and figure out…

How to choose an editor for JavaScript

There are a lot of options out there as far as text editors go, but I’m here to help you traverse the wide landscape of coding editors for JavaScript.

Why I switched to Vim from Visual Studio Code

I discuss my history with text editors, what led me to switch to Vim six months ago and why I’m sticking with it

HTTPS blind spots

In the first three parts of this series, I discussed the value proposition of HTTPS , what SSL certificates are and how to get one for free , and additional things you can do to secure your website even further . It’s time to wrap up the series by taking a look at some HTTPS blind spots and why securing your website does not stop at serving content securely. HTTPS does not secure a website…

Securing your website

There’s more to deploying HTTPS than just obtaining a certificate, slapping it on your server and calling it a day. Even for brand new websites, and especially for legacy websites, you need to be absolutely sure that under no circumstances can any content on your website be served over HTTP. Today’s post takes a look at a few things you can do to secure your HTTPS website even further.…

SSL Certificates

The first part of this series covered what HTTPS is and why it’s important for every website. In part 2, I want to talk about how HTTPS works, what certificates are, and how to deploy HTTPS on your website for free. How does HTTPS work? HTTPS adds a secure layer to the regular HTTP protocol using TLS or SSL. Clients and Servers still use the regular HTTP conventions, but over a secure…

The value of HTTPS

Security on the web is more important than ever. With new vulnerabilities and data breaches being reported on a daily basis, it is crucial for us to do a better job of securing the stuff that we make so that we can protect users from various attacks. I’ve been learning a lot about security on the web, so I wanted to bring together some of what I’ve learned thus far into a four-part…

How to build a Wikipedia Search App with JavaScript

Let’s jump into web application development by working through a hands-on project together! In this article, you’ll practice the fundamentals of building a web application. Things like making AJAX requests, manipulating DOM nodes, handling errors and displaying alerts.

Build your first JavaScript App — A Random Quote Generator

If you’re learning JavaScript as your first programming language, this tutorial provides a good opportunity to learn how it is used in the real world. It will help you understand how JavaScript, HTML and CSS work together to create applications in the browser.

Let's learn HTTP Status Codes

HTTP status codes are a set of standard responses sent by a web server to a client (such as a web browser) indicating whether a specific HTTP request was completed successfully or not. We have 5 categories under which these responses are classified: 1xx Informational - The request was received but is still processing. 2xx Success - The request was received, accepted and processed successfully. 3xx…