Add your own title and intro here (Change this under Settings -> General -> Tagline)

Author: pmackay

CLI Tools: TMUX – Terminal Multiplexer

As a programmer, it is expected to spend a significant time using UNIX shells. However out of the box the vanilla UNIX experience can be clunky and inefficient. There are many terminal based tools (CLI tools) that address this issue, one being Tmux. I have been using Tmux for only a few weeks, but its been so useful that I have already integrated it into my workflow. In this post I will go over what I personally have found useful about Tmux, and why its worth considering if you use the terminal frequently.

“(tmux — terminal multiplexer) tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached”. – TMUX man(1) page

The main benefit of Tmux is that it minimizes cognitive overhead by containerizing terminal sessions, to illustrate this, consider an example: You’re working on 3 programming projects and for each of those projects you’re actively working on 3 files, plus a shell for testing/running code. That’s already potentially 12 windows that you would have to manage on a daily basis if you were not using Tmux. Not only would you have to manage these windows on the screen but you would also have to navigate to that location everyday, this would be tedious and a waste of time.

Here is the Tmux indicator, showing that I am connected to the session “mysession” and there are three windows numbered 1,2,3. 1:nvim is indicating that window 1 has nvim open.

Now, consider the same example but with using Tmux. You can create a Tmux session for each of the projects you’re working on. After creating a session for each project, the current state of each session is saved, even after reboot. This saves time and frustration by: not having to think about what you were working on over a long period of time (potentially months working on a software project), not having to repetitively navigate to what you were working on, and acts as a safe guard against unexpected reboots like a power outage.

Consider the following two videos. The first is a workflow without using Tmux, the second is one using Tmux.

This is the manual way of “cd’ing” into a directory, without Tmux. Very repetitive and wastes time.
Using Tmux simple as running tmux attach -> C-a + o -> select session -> returns to what I was working on.

The way that I have been using Tmux, is to have a session for each of my classes. This allows me to work on muliple written assignments at once without having to remember exactly what I was working on, I can just attach to the session and continue working. This will be a game changer for me, because I was wasting a lot of time before just using cd and lf to navigate files.

The following posts will explore more CLI tools, and a deep dive into NeoVim. Thanks for stopping by!

Resources:

https://github.com/omerxx/dotfiles/tree/master/tmux

https://upload.wikimedia.org/wikipedia/commons/e/e4/Tmux_logo.svg

Open-Source as the standard

One problem that arose when the internet became mainstream was that, sharing information was difficult because of copy right laws. One of the major goals of the Creative Commons licenses was to enable people to share their content online by releasing their content under an open license. This revolutionised how people used the internet, because now, people could freely access and distribute information at nearly no cost, without having to worry about copy right laws. There has been movement towards open source, both in software and information, however corporations and tech giants are reluctant to contribute to open source, especially if it would compromise profits. I argue that open source should be the standard not only for institutions like those that are funded by tax money, but also massive corporations and monopolistic tech giants.

It is ironic that there is nothing open about “OpenAI”, their AI models are closed-source, and they are moving from non-profit to for-profit. Contrast this with the communist Chinese release of the most innovative and advanced, free and open-source AI model to date, DeepSeek R1. Cable Green states that “In order to solve big problems information must be open” I agree with this statement. This point is evident when considering, open access to Covid-19 studies and information lead to rapid vaccine development, open curriculum’s saves schools and students tens of millions per year, open source software like Linux is the backbone of the entire internet, and open source AI models are leading in innovation. DeepSeek R1 became the most downloaded app on all app stores, ChatGPT at number two. It has effected American markets (NVidea lost ~one trillion), forced OpenAI to release a better free model, and demonstrated that the future of AI is open.

The open source movement is necessary for making rapid progress in the scientific field, therefore the standard should be open. However some of the biggest players are holding society back from making open source the standard. With that being said there has been massive innovation in the open source movement, yet there is a lot of work to be done.

https://unsplash.com/photos/macbook-pro-on-top-of-table-vSchPA-YA_A

Inquiry Based Learning and Direct Instruction

Teaching, and subsequently learning is not a perfect science, there are flaws with any system of teaching. In this post I will describe potential issues with the direct instruction style of teaching, and why I think it is the most popular mode of teaching. Then I will describe an alternative teaching method which is based around inquiry, and its strengths and weaknesses.

This week we learned about inquiry, a couple of things that stood out for me in Week 3: Inquiry Process, & SIFT Methodology was the contrast between teaching methodologies. The direct instruction system is setup such that students are expected to do well on exams and assignments, but the means to achieve the ends, are not accounted for when graded. Essentially the teacher gives the student material and it is in the students hands to do anything in their hands to do well on the test/assignment, with no weight given to the process of learning. The curriculum is mapped down onto the student which can lead to a mismatch in: interest (the student may not be interested in the subject), and difficulty (the content may be too easy or too hard for the student). In some cases, this teaching structure can cause students to only learn the bare minimum, and memorise rather than deeply understand topics and build mastery. I argue that the main reason that this structure is most commonly used in schools is that its resource efficient. Meaning that the ratio between student learning over resources consumed is high, meaning that, an adequate amount of learning can be achieved by students without the school using many resources.

The other teaching method is called inquiry based learning (IBL), it is based on how people naturally learn. For example children try to atomise (take something complex and reduce it to its most simple parts) anything that they are curious about, they would ask their parent a string of questions about something, or experiment with a thing to better understand it, then apply that knowledge to their understanding and build upon it, this is synonymous to learning using inquiry. This form of learning gives the freedom to the student to map their learning up to the curriculum, which leads to higher quality learning, mastery, and retention of both information and skills. I would argue that inquiry based learning is objectively better than direct instruction because it promotes deep learning, competence, and process over strictly getting good grades. The potential downside to this approach is the expense, the ratio of teachers to students, equipment cost, and work space could all add to the cost to IBL.

Given the pros and cons of each teaching style, I propose that schools should implement aspects of IBL into their courses, or offer some fully IBL courses. Doing so would make students more valuable to the work force by enabling them to obtain mastery, competence, and experience in a specialised field of their interest. This would make it much easier for students to find a high-paying job soon after graduating high school.

© 2025 PM Blog

Theme by Anders NorenUp ↑