GoLUG (Greater Orlando Linux User Group) Official Website

Upcoming/Current Meeting Mailing List IRC Channel Latest News Meeting Info Previous Meetings

Upcoming/Current Meeting 19:00 (7:00 PM) Eastern Standard Time 1/3/2024    (Online Jitsi at https://meet.jit.si/golug)

Topic: Making a Recursive Descent Compiler.

Presenter: Hendrik Boom.

Last month's meeting discussed making a compiler with Flex and Bison. This month Hendrik Boom shows us how to roll our own compiler using the Recursive Descent technique.

Our Mailing List

Our IRC Channel

Our IRC channel is #golug on Libera.Chat.

Latest News

On 9/23/2022 we switched to a new mailing list. Here are the new list's instructions.

Meeting Info

Meetings are on the first Wednesday of every month, at 7pm Eastern Time (New York Time), and are conducted on Jitsi. To join in, use Chromium or Google Chrome and go to https://meet.jit.si/golug.

Meeting Audio Best Practices

Jitsi meetings can degenerate quickly with excess background noise, echos, and the like. We've seen even one participant in a noisy environment degrade the audio for the entire meeting. Here are the audio best practices ,which, if followed by everyone, renders a clear and pleasant listening experience for all:

Other Meeting Best Practices

Previous Meetings

The following is a partial list of GoLUG's past meetings.

Introduction to the Go programming language.

Presenter: Samir Faci.

Wednesday 11/2/2022 at 7:00 PM Eastern Daylight time. Location is https://meet.jit.si/golug

Introduction to the Go programming language. No experience required, we'll cover some of the basics of Go syntax, learn how to write some very simple basic programs ending with a demonstration of a fully functional opinionated code base for a RESTFul service written in Go. If you wish to follow along, please make sure you have VSCode and Go installed ( https://go.dev/doc/install). Ensure that you have GOROOT, GOPATH and your $PATH have all been updated in order to at least be able to run: `go version` from the command line.

NOTE: After installing Go, first try running `go version` because on some distros it runs without GOROOT or GOPATH or $PATH. The first ten minutes will be devoted to setting GOROOT and GOPATH and $PATH, so please be sure to be in this Jitsi meeting by 7PM Eastern Standard Time sharp.

A simple, 30 minute threading example in Python, followed by a group discussion.

Presenter: Steve Litt, and then discussion by all attendees, including thread-safety and other threading topics.

Wednesday 11/2/2022 at 7:00 PM Eastern Daylight time. Location is https://meet.jit.si/golug

In order to seed our threading discussion, Steve Litt will show an ultra-simple threading example in Python during the first 30 minutes of the meeting. Threading in Python has many uses, and it's one of the easiest ways to make a Python function non-blocking. Because many of the night's attendees will be much more knowledgeable about threading than Steve, in Python and elsewhere, the discussion will then expand to all things threading, including thread safety.

Discussion

Presenter: All Attendees

Wednesday 10/5/2022 at 7:00 PM Eastern Daylight time.. Location was https://meet.jit.si/golug

This meeting consisted of an enthusiastic and far ranging discussion on many Free Software topics, including playing programmed audio tones in Linux.

Model View Controller Best Practices

Presenter: Keith Smith

Wednesday 9/7/2022 at 7:00 PM Eastern Daylight time.. Location was https://meet.jit.si/golug

PHP expert Keith Smith outlines the way he does the MVC (Model View Controller) web application methodology. This is important because there are many contradictory definitions of MVC out there, many of which lead to difficult to maintain volleyball code and inconsistent coding. Among other things, Keith will outline the following:

If you're unfamiliar with MVC, or if you've gotten a bad impression of MVC due to careless web documentation, or if you use MVC but just want to gain more ideas and techniques, or if you create web applications or if you want to start creating web applications, this presentation is for you.

DIY Spellchecker:
My Adventures and Misadventures

Presenter: Steve Litt

Wednesday 7/6/2022 at 7:00 PM Eastern Daylight time. Location was https://meet.jit.si/golug

Creation of spellchecker components:

FreeBSD In The Cloud

Presenter: David Billsbrough

Wednesday 5/4/2022 at 7:00 PM Eastern (New York) time. Location is https://meet.jit.si/golug

Beginning and Intermediate Inkscape

Presenter: Steve Litt

Wednesday 1/5/2022 at 7:00 PM Eastern (New York) time. Location is https://meet.jit.si/golug

For most people in most situations, by far the best tools for creating graphics are vector graphics editors. In the world of Linux, the most widely used full-featured vector graphics editor is Inkscape. Inkscape has the additional benefit of creating files in the standardized and widely used SVG (Scaleable Vector Graphics) format, so your graphics can be used directly in websites and/or eBooks, or converted to other formats.

In this presentation Steve will explain Inkscape fundamentals and then walk through the creation of the following two graphics, a block diagram and a book cover:

Image of block
diagram created with Inkscape
Image of book cover created with Inkscape

Click either image to see it full sized.

Among the topics to be emphasized will be:

SSH Tunnels and More

Presenter: der.hans

Wednesday 12/1/2021 at 7:00 PM Eastern (New York) time.

Location is https://meet.jit.si/golug

SSH is the go to tool for sysadmins and developers for interactive connections to remote machines. It creates secure, encrypted connections between computers, even across hostile networks. Unless you accept host keys without verification (DON'T DO THAT!!!).

SSH can also create tunnels for encapsulating other connections, including other TCP protocols and data. Sysadmins can bridge protocols across networks for ease of access such as a one-off data sync. Devs can present the remote dev database on their desktop to ease use of graphical development tools.

After attending this session, audience members will be able to create a local tunnel from client to server, a remote tunnel from server to client, and do simple analysis of local vs remote evaluation of a command. Attendees will be able to use tunnels for SSH or sample other TCP protocols (MySQL and HTTP), and tunneling via a third party system. They will also be familiar with dynamic SOCKS proxies and using SSH to tunnel graphical applications.

Finally, attendees will also learn SSH configuration and command line tips for convenience of use, including using forced command to restrict an SSH key to one purpose.

Topics:

Linux/FOSS Show and Tell

Presenters: Steve Litt, Tony Dycks, and Rob Landley

Wednesday 2/2/2022 at 7:00 PM Eastern (New York) time. Location is https://meet.jit.si/golug

URLS that were recommended during this meeting:

Steve Litt will demonstrate his soon to be available qownbackup software, which continually backs up Markdown files in the QOwnNote program's default directory, keeping track of changes.

Tony Dycks will give a 20 minute mini-presentation on setting up NetRexx 4 from The Rexx Language Association.

Rob Landley will give a 10 minute high-level primer on mkroot, a 300 line bash script that builds a simple bootable Linux system for QEMU, supporting a dozen different architectures. More at https://landley.net/toybox/faq.html#mkroot.

Each presentation will be followed by a question and answer period of up to 10 minutes.

QOwnNotes: Lifeboat and Speedboat

Presenter: Steve Litt

Wednesday 11/3/2021 at 7:00 PM Eastern (New York) time.

Location is https://meet.jit.si/golug

QOwnNotes is the software nobody's heard of, and everybody loves once they use it. The QOwnNotes program wears many hats. It can be thought of as an easy way to take notes, or write notes to one's self. It's a very handy Markdown authoring environment with exports to HTML and PDF via pandoc and LaTeX. It's ready for prime time as a book authoring environment, assuming those books have simple semantic structure. And incorporated with a completely separate software stack I intend to write, QOwnNotes can become the input facility for a very capable, write once, output to all formats book authoring system.

QOwnNotes also interfaces with OwnCloud and NextCloud if you drive on that side of the street.

The "Lifeboat" section introduces the knowledge essential to begin using QOwnNotes productively. Then, the "Speedboat" section shows off some of QOwnNotes extensive capabilities.

Many distros already have a QOwnNotes package. It would be helpful but not necessary to install QOwnNotes on your computer before the meeting. Hope to see you there.

DNG Software Rules of the Road

Moderator: Steve Litt

Wednesday 8/4/2021 at 7:00 PM Eastern (New York) time.

Location: https://meet.jit.si/golug

Depending on who shows up, this will be either a presentation or a panel discussion; I hope the latter. Either way, it will focus on language-agnostic principles for writing safe, efficient, durable and maintainable software.

These rules of the road were suggested by some of the smartest people in the Devuan user mailing list, but in no way are they dependent on or related to Devuan. They're universal. They're a guide to safe and high quality software, in any programming language.

Materials, including our findings in outline form, are at http://troubleshooters.com/linux/presentations/golug_software_guide/. These materials are improving rapidly, and should be in tip-top shape by the time of the meeting. Feel free to look at them at any time.

The Runit Init System

Presenter: Steve Litt

Wednesday 7/7/2021 at 7:00 PM Eastern (New York) time.

Location: https://meet.jit.si/golug

An init system is the software, the one and only software directly called by the Kernel, to bring the system up to a workable condition. Many init systems, including Runit, also provide tools to keep the system running.

Runit is amazingly simple and extremely powerful. Full daemon supervision with auto-restart. Run levels, if desired. Trivial daemonization of programs you write in C, Python, shellscript, or almost anything, without silly double-forking. Extreme resilience. Most who have used Runit for more than a month prefer it to systemd or sysvinit.

Steve Litt's presentation uses block diagrams (Mental Models) to showcase Runit's inner workings to the extent that you can deploy Runit on your computer and actually understand what you've done. You'll be glad you did.

Block Diagrams for Description, Discussion, Decisions, and Diagnosis of Technology

Presenter: Steve Litt

Wednesday 7/7/2021 at 7:00 PM Eastern (New York) time. Location is https://meet.jit.si/golug

For lack of block diagrams, misunderstandings multiply, discussions go wild, flamewars ensue, truth remains not understood, truthless "knowledge" is promoted, and solutions that should take hours take weeks. Sans block diagrams, knowledge-free WADs (Walking Acronym Dispensers) steal work from knowledgeable, skillful and productive workers who are less glib. Using block diagrams, you can position yourself above the fray, boosting your career above the free-for-all.

This presentation covers the following:

Meeting 3/4/2021@19:00 Eastern Time

Steve Litt will discuss various documentation, book writing and web construction software available for Linux, with a special emphasis on Inkscape. Software includes Inkscape, Vim, VimOutliner, Emacs, Org Mode, Leo, Plain TeX, LaTeX, LyX, Sigil, Calibre, Pandoc, Markdown, AsciiDoc, AsciiDoctor, Stylz, Bluefish, Gimp, Beamer and LibreOffice.

Steve will also discuss the concept and practice of styles based authoring, which sometimes goes by the name Semantic Authoring and other names. The extent to which most authoring tools fail at Styles Based Authoring will be pointed out, as well as calling out LyX, Bluefish, LibreOffice and Stylz as proficient tools for Styles Based Authoring.

Meeting 1/6/2021@19:00 Eastern Time

Wednesday 1/6/2021 at https://meet.jit.si/golug

Steve Litt and Syeed Ali each discuss recently building a Linux computer from parts. Each will answer the following questions: