Adding Timeout to Github Actions

To add a timeout to a Github Actions Workflow, add the timeout-minutes to the workflow YAML file.  See the red box in the image below for where to add it.  Once you save, commit, and push that change to your repo, let your TA know and they will re-enable Actions for your repo after confirming the addition. 

Old Python2 Code Causing you a Headache? Convert Python3 Automagically!

Do you have some Python 2 code hanging around?  Found some example code for exactly what you’re trying to do, but it is written in Python2?  Python 2 has been sunset for a while now.  But converting your Python2 to Python3 can be a pain.  Well, did you know there’s a handy little tool included with most, if not all, Python3 distributions?  I’m using the Anaconda distro, and this tool is super helpful.  

2to3 <filename.py> – this will output a diff of the current Python2 code with changes that should/could be made, but it doesn’t modify the file.  

2to3 -w <filename.py> – this will actually modify filename.py based on the recommendations of the updater.  A backup of the original file will be made, so don’t fret.  

Need more info?  Check out the 2to3 documentation in the Python Docs.  

Happy Coding!

What are the gcc system include paths?

The #include preprocessor directive in c++ is one of the first things that people learn. They come in two varieties:

  1. #include<> – usually meant for system-level includes such as iostream or other headers from libraries installed at the system level.
  2. #include " " – usually meant for files included from a location relative to the code being written… for instance, another header file for a class you just wrote.

But, where are system level headers stored?  On Linux with the gcc tool chain installed, you can execute the following command to find out:

g++ -E -x c++ - -v < /dev/null

  • -E – Stop after the pre-processing step
  • -x c++ – language of interest is c++
  • -v – verbose output

In the output, look for the section that starts with #include <...> search starts here.  A collection of paths is listed after this line which is where the pre-processor will look for any includes that are in <...> (angle brackets).

FWIW, there’s also a way to include additional paths to be used as system includes on the command line when compiling code.

Customizing CLion

Clion LogoSome folks get a lot of enjoyment out of tweaking the UI of a piece of software.  In an IDE like CLion, the color scheme used for the code editor is highly customizable.  If you’d like to explore the settings and/or find a new theme for CLion or just the code editor, check out the CLion JetBrains tutorial at https://www.jetbrains.com/help/clion. Specifically, here are some tutorials you might want to look at:

Docker and MySQL

Containers are all the rage, and Docker is the container engine of choice these days.  So, I wanted to provide this tutorial for setting up a MySQL server instance in a Docker container.

[Read more…]

Spring 2019 Help Desk Schedule

The Spring 2019 Help Desk Schedule…

Linux, C++, and Libraries like myHTML

Whenever you write c++ code for a project, have you ever wondered where the actual implementations for iostream’s << and >> operators are?  What about the implementations for all of the algorithms that are in the algorithm header? Whenever you’re building a project and linking in things from external libraries, where’s the compiled version of those functions?  The secret is in libraries of code external to your project. [Read more…]

Customizing Shell in your Terminal

I use  the terminal to do quite a bit on both my Mac laptop and Linux desktop.  Sometimes its easier to hammer out a shell command than it is find the right context menu or menu item to click to do something.

On Linux, I use Guake Terminal and Gnome Terminal the most, [Read more…]

Java – Exam Stats Example

This post is another in the series of small Java Programs and their evolution.  The scenario for the program today, Exam Statistics, is calculating a couple statistics for a set of grades entered by the user. You can see in the code below, I work on one method, test it, then move on to the next method.

[Read more…]

Time for some Java

Let’s take a simple program idea and refine it over the course of a few versions of the code. 

The program we are writing is meant to print a box made of asterisks.  The width and height of the box is based on a value entered by the user.  For example, if the user enters 3, the program would display the following: [Read more…]