About
Policy as Code 101
Open Policy Agent (OPA) is a CNCF-graduated open source engine for executing policy as code. This talk explores what policy as code means, how you can implement it using OPA, and discusses higher level business considerations for adopting policy as code.
Times and locations where I have given this talk:
Date | Location | Organization / Event |
---|---|---|
2024-08-22 | Columbia, SC | Silicon Swamp |
rq: Datalog for your Shell Pipelines
rq brings the full power of Rego, a Datalog dialect created for Open Policy Agent (OPA) to your shell pipelines. It allows you to easily transform and query data in a variety of commonly used formats using Rego expressions, which allows for concise, general-purpose, performant transformations. This talk discusses the background of OPA and Rego, explains some simple Rego expressions, and demonstrates a few of the capabilities of rq.
- slides in ODP format
- slides in PDF format
- link to rq git repository
- link to talk recording, via YouTube
Times and locations where I have given this talk:
Date | Location | Organization / Event |
---|---|---|
2022-09-14 | Columbia, SC | Open Source South Carolina Meetup |
Introduction to Python
Python is a hugely popular, easy-to-use language with a rich library ecosystem. It has taken both academic and industry computing by storm, and for good reason. This talk provides a crash course in introductory Python. Basic programming knowledge is assumed, but previous Python experience is not.
- Slides as PDF
- Slides as HTML
- Slides as Markdown
- Talk Notes
- Same content as slides, but formatted for printing on letter sized paper.
- Talk Sources
Date | Location | Organization / Event |
---|---|---|
2020-09-17 | University of South Carolina | ACM Weekly Meeting |
Introduction to GraphViz
GraphViz is a powerful language for describing graphs. Tools are available to convert GraphViz markup into visual diagrams, including features such as automatic node layout and advanced styling capabilities. This talk discusses the basics of GraphViz, useful strategies and techniques for using GraphViz, and concludes with a selection of practical examples.
This walk was originally written to fulfill the graduate credit requirement for the University of South Carolina CSCE567 “Visualization Tools” course.
The slides for this talk were created using
sent. You may also view the slide deck
(slides
) as a normal text file.
All demonstrations and other resources may be downloaded here.
Times and locations where I have given this talk:
Date | Location | Organization / Event |
---|---|---|
2019-04-08 | University of South Carolina | CSCE567 Class Meeting |
A Guide To Being AWKWard
Awk is a simple programming language for manipulating streams of text. It is very versatile and useful for tasks such as searching or processing text, interacting with tabular data (such as CSV, TSV), and rapidly prototyping algorithms or ideas. Awk has been a mainstay UNIX tool for decades due to its simplicity and speed. In this talk, I introduce the basic principles and usage of Awk, show some common idiomatic examples of usage in depth, and discuss and demonstrate more advanced usage in brief.
The slides for this talk were created using
sent. You may also view the slide deck
(awkward
) as a normal text file.
All demonstrations and other resources may be downloaded here.
Times and locations where I have given this talk:
Date | Location | Organization / Event |
---|---|---|
2019-03-20 | University of South Carolina | UofSC ACM Student Chapter - Weekly Meeting |
Introduction to GUI Development with Tk and Python 3
An introduction to building simple GUIs in Python 3 using TkInter. TkInter + Python 3 allows for straightforward, rapid, cross-platform GUI development. This talk assumes a basic understanding of programming, and a working knowledge of Python would also be helpful but is not required.
This talk takes the from of a live-coding exercise where the speaker will build a simple “sound effects board” using Python 3 and TkInter.
This talk was originally written for the 2019-01-30 meeting of the University of South Carolina ACM Student Chapter.
-
Download Talk Materials
Times and locations where I have given this talk:
Date | Location | Organization / Event |
---|---|---|
2019-01-30 | University of South Carolina | UofSC ACM Student Chapter - Weekly Meeting |
Introduction to Shell Scripting
An introduction to various shell scripting related topics. The audience is assumed to have basic familiarity with UNIX shells (or PowerShell) such as ls, cd, cat, etc.
This talk was originally written for the 2018-11-07 meeting of the University of South Carolina ACM Student Chapter.
-
Download my Notes
Last Updated: 2018-11-07
Times and locations where I have given this talk:
Date | Location | Organization / Event |
---|---|---|
2018-11-07 | University of South Carolina | UofSC ACM Student Chapter - Weekly Meeting |
Everything You Never Knew about SSH
An introduction to various intermediate and advanced SSH topics suitable for audiences with an existing general familiarity with SSH. Topics covered include key generation and management, file transfer, X forwarding, SOCKS proxies, SSH relays, reverse-SSH tunnels, and SSH server configuration best practices.
This talk was originally written for the 2018-04-06 meeting of the University of South Carolina Cybersecurity Club.
-
Download my notes
Last Updated: 2018-04-06
Times and locations where I have given this talk:
Date | Location | Organization / Event |
---|---|---|
2018-04-06 | University of South Carolina | UofSC Cybersecurity Club - Weekly Meeting |
2018-11-28 | University of South Carolina | UofSC ACM Student Chapter - Weekly Meeting |