How One Experienced Software Engineer Learns a New Programming Language

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • go-cpu-simulator

    An implementation of a simple CPU simulator taken from a programming contest at my workplace (by wsgac)

  • Google and github have a wealth of information, and I quickly found a project that met my needs. The one I found was already written in Go, so I could see how a Go program is actually constructed. It was ritten by an engineer (Wojciech S. Gac) for a company competition . He posted his code on github here go-cpu-simulator. It had no GUI, so it gave me an opportunity to take someone else's work and add on a GUI written in Go. The project I selected was a simple CPU simulator with just eight instructions. It was a very basic CPU, but didn't require digging too deeply into someone else's code to figure out how to use it. I just needed to figure out how to add a useful GUI front-end to drive the simulator as an educational tool.

  • go-cpu-simulator

    A GUI implementation of a CPU sim project originally developed by Wojciech S. Gac

  • I wanted to build the dashboard in a way that could be generalized and reused for other CPU simulators I might want to build. Therefore, I wanted the dashboard to be its own module and package, separate from the simulator code. I used a Model-View-Controller pattern for my project. The Wojtek simulator was a single Go file. I created separate packages for the CPU (model), the dashboard (view), and the main program (controller). Using Go's module feature to manage external dependencies, I set the file structure with the main package and its go.mod dependency file and two folders, one for the dashboard package and the other for the cpu model package. Each folder represents its own module and has its own go.mod file. These can all be seen in my github repo.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • fyne

    Cross platform GUI toolkit in Go inspired by Material Design

  • The CPU monitor dashboard layout was fairly straightforward using the fyne.io framework. Like most GUIs, you create all your display objects and widgets, add containers for structuring the objects in columns, rows, and grids, and then place the containers into a window. I set up some control buttons with associated functions that get invoked when they are pressed. I also set up some label widgets to display specific CPU fields and data. I decided that it would be simpler for displaying memory if I pre-formatted memory in blocks of strings before placing them in containers. I created an UpdateAll() function that the controller called whenever it had new data to display.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Fyne – cross-platform GUI toolkit in Go

    1 project | news.ycombinator.com | 21 Sep 2023
  • Code for accessing portals in Go?

    1 project | /r/flatpak | 3 Sep 2023
  • Fyne v2.3.5 released!

    1 project | /r/fyne_dev_fanpage | 6 Jun 2023
  • Fyne v2.3.5 released!

    1 project | /r/everythingfyne | 6 Jun 2023
  • I want to create a simple menu based game. What framework would you recommend?

    2 projects | /r/golang | 14 Oct 2022