GNU make is a utility that ships with nearly all operating systems that come with GNU software, and can also be installed on Windows and macOS. The make utility was originally written for a relatively specific purpose: recompile the parts of a (probably C) program that have changed since last compile, and update those parts' dependencies as well. In this regard, make is still an incredibly powerful tool for dependency management, compilation orchestration, and other things.
However, many these days may not have even heard of make, because they either write small enough programs to "not need it", or write high-level code that removes the need for compilation altogether.
But, the beauty and promise of Make isn't that it's a program for C developers, or even for developers of compiled languages (I've never written a line of compiled code in my life). Make isn't bootstrapped by the Cs; its steps are written as shell commands. So, if you can write shell commands to run your software's bits and pieces, then you can use Make! This includes high-level software like Python, Ruby, R, or even Bash itself. For example, instead of writing a verbose and ugly case block for different arguments that Bash might take (via getopts, for instance), you can just define those arguments as "targets" in Make. And perhaps the greatest benefit to Make is that those Makefiles that it uses move entirely with your codebase in version control, so these "recipes" for common commands are always with your code, on any system that Make runs on. This is not only a boon for developers of your code, but great for reducing verbosity in custom definitions in CI/CD tools like Jenkins Pipelines.
In this short talk, Ryan will walk through a sample Makefile structure that I use for Python packages, and others if time permits. This short-and-sweet PythonMakefile format is one he actually uses in production; no silly "Hello World" examples here, but it might feel like it given how concise it is. Ryan will demonstrate that the common env, build, test, and install commands that can be tedious to type out are reduced to simple make commands that take as few as four characters to run.
Want to have a website (or many websites), without a server?
We will start with a quick overview of Docker. Then we will show the process of converting a normal server-based web site to a docker container that can run on any OS.
We will finish with time for Q&A, with live systems available as examples.
We open the room for the general meeting about 6:00 PM. Then we start at 6:30 PM with our BASE introductory level session (usually focused on personal computing); which may include either amazing graphical packages, blinking lights, command line wonders, demonstrations of useful applications, displays of newly discovered web sites, major resolution of long standing anomalies, quantum discoveries, superb tutorials, or shifts in both time and space.
Sometime after 7:00 PM we get to a quick welcome, introductions, announcements, current events of interest, and a general CALL FOR HELP (Questions and Answers) segment.
Sometime after 7:30 PM, we may take a short break before our MAIN topic (usually focused on enterprise computing),
All of our meetings are free and open to the public. There is no individual membership fee.
Lists of meeting topics and presentations for SLUUG's Special Interest Groups may be on their individual web sites: