Re-tagged blog posts

This commit is contained in:
Brandon Rozek 2022-01-02 14:24:29 -05:00
parent 209995c77b
commit 2a9c127365
186 changed files with 186 additions and 146 deletions

View file

@ -23,6 +23,7 @@ tumblr_post_id:
- "135656876494" - "135656876494"
kind: kind:
- article - article
tags: ["Web", "CSS"]
--- ---
I saw [Mike Riethmuller’s](http://madebymike.com.au/) precision typography [pen](http://codepen.io/MadeByMike/pen/YPJJYv){.broken_link}, and was highly impressed. I think the equation used has other purposes as well I saw [Mike Riethmuller’s](http://madebymike.com.au/) precision typography [pen](http://codepen.io/MadeByMike/pen/YPJJYv){.broken_link}, and was highly impressed. I think the equation used has other purposes as well

View file

@ -21,6 +21,7 @@ mf2_cite:
- 'a:1:{s:6:"author";a:0:{}}' - 'a:1:{s:6:"author";a:0:{}}'
kind: kind:
- article - article
tags: ["Web", "CSS"]
--- ---
This is part 1 of an animation series I’m doing. It is inspired by Lea Verou’s talk called “[The Humble Border-Radius.](https://www.youtube.com/watch?v=JSaMl2OKjfQ)” I looked at her site and she has a good demo of a bunch of different animations [here](http://lea.verou.me/2011/10/animatable-a-css-transitions-gallery/). My goal here is to create a more comprehensive guide to these different animatable properties–mainly for future reference. Animations play a big part in adding interactivity to the web, so why not explore some possible options? This is part 1 of an animation series I’m doing. It is inspired by Lea Verou’s talk called “[The Humble Border-Radius.](https://www.youtube.com/watch?v=JSaMl2OKjfQ)” I looked at her site and she has a good demo of a bunch of different animations [here](http://lea.verou.me/2011/10/animatable-a-css-transitions-gallery/). My goal here is to create a more comprehensive guide to these different animatable properties–mainly for future reference. Animations play a big part in adding interactivity to the web, so why not explore some possible options?

View file

@ -23,6 +23,7 @@ tumblr_post_id:
- "135657238924" - "135657238924"
kind: kind:
- article - article
tags: ["Web", "CSS"]
--- ---
This post is part 2 of an animation series I am doing; you can read part 1 [here](https://brandonrozek.com/2015/05/animatable-border/). In this post, we’ll look at the different parts of the box model (margin, padding, height, and width) and see how they can be animated. This post is part 2 of an animation series I am doing; you can read part 1 [here](https://brandonrozek.com/2015/05/animatable-border/). In this post, we’ll look at the different parts of the box model (margin, padding, height, and width) and see how they can be animated.

View file

@ -23,6 +23,7 @@ tumblr_post_id:
- "135657326384" - "135657326384"
kind: kind:
- article - article
tags: ["Web", "CSS"]
--- ---
Animating the location of objects is one of the most common types of animation. It’s interesting to animate this way because you need to keep in mind how each of the element’s interact with each other to constitute a page. Animating the location of objects is one of the most common types of animation. It’s interesting to animate this way because you need to keep in mind how each of the element’s interact with each other to constitute a page.

View file

@ -20,6 +20,7 @@ tumblr_post_id:
- "135657083469" - "135657083469"
kind: kind:
- article - article
tags: ["Web", "CSS"]
--- ---
This post is part 3 of my series on animation. In this post, I’ll show you different animations you can add onto text. If you haven’t already, you should check out [part 1](https://brandonrozek.com/2015/09/animatable-box-model/) and [part 2](https://brandonrozek.com/2015/05/animatable-border/) of this series. Animations on text can be used to bring attention, to add importance, or to convey a point. As with all animations, however, keep your user in mind and your text readable. This post is part 3 of my series on animation. In this post, I’ll show you different animations you can add onto text. If you haven’t already, you should check out [part 1](https://brandonrozek.com/2015/09/animatable-box-model/) and [part 2](https://brandonrozek.com/2015/05/animatable-border/) of this series. Animations on text can be used to bring attention, to add importance, or to convey a point. As with all animations, however, keep your user in mind and your text readable.

View file

@ -23,6 +23,7 @@ tumblr_post_id:
- "135657370214" - "135657370214"
kind: kind:
- article - article
tags: ["Web"]
--- ---
I’ve been teaching a small class on web development recently, and after my first lecture, I’ve gained a newfound respect for teachers. Teaching didn’t come as naturally to me as I would have imagined. I tried going in prepared: with a few outlines and a few code demos. Instead of letting my preparation go to waste, I decided to share them here with you on my site. It’s a nice break from the Animatable posts, so I hope you enjoy! I’ve been teaching a small class on web development recently, and after my first lecture, I’ve gained a newfound respect for teachers. Teaching didn’t come as naturally to me as I would have imagined. I tried going in prepared: with a few outlines and a few code demos. Instead of letting my preparation go to waste, I decided to share them here with you on my site. It’s a nice break from the Animatable posts, so I hope you enjoy!

View file

@ -23,6 +23,7 @@ tumblr_post_id:
- "135657462089" - "135657462089"
kind: kind:
- article - article
tags: ["Web", "JS"]
--- ---
Javascript has multiple ways you can store your data. Each of these different ways is called a data type, and they each carry different “methods” which are helpful commands. Today, Ill show you the different data types and methods that I use and how theyre useful. Javascript has multiple ways you can store your data. Each of these different ways is called a data type, and they each carry different “methods” which are helpful commands. Today, Ill show you the different data types and methods that I use and how theyre useful.

View file

@ -20,6 +20,7 @@ mf2_cite:
- 'a:1:{s:6:"author";a:0:{}}' - 'a:1:{s:6:"author";a:0:{}}'
kind: kind:
- article - article
tags: ["Web", "CSS"]
--- ---
Hello everyone! This is part 5 of my series on animation. Todays post will be short, since were only going to talk about color and opacity. Hello everyone! This is part 5 of my series on animation. Todays post will be short, since were only going to talk about color and opacity.

View file

@ -20,6 +20,7 @@ tumblr_post_id:
- "135657540174" - "135657540174"
kind: kind:
- article - article
tags: ["Web", "CSS"]
--- ---
This is the last post of the animatable series. The grand finale. Here, we will talk about the transform property. Its only one property but it comes with a lot of goodies in the form of transform-functions. This is the last post of the animatable series. The grand finale. Here, we will talk about the transform property. Its only one property but it comes with a lot of goodies in the form of transform-functions.

View file

@ -23,6 +23,7 @@ tumblr_post_id:
- "135657634939" - "135657634939"
kind: kind:
- article - article
tags: ["Web", "JS"]
--- ---
Javascript, like most other programming languages, include ways to run blocks of code when something meets a condition. Here, I will describe the most common ways to do so. Javascript, like most other programming languages, include ways to run blocks of code when something meets a condition. Here, I will describe the most common ways to do so.

View file

@ -20,6 +20,7 @@ tumblr_post_id:
- "135657661534" - "135657661534"
kind: kind:
- article - article
tags: ["Web", "JS"]
--- ---
Ever had a snippet of code that appears multiple times in different places in your program? Whenever you had to change that snippet, you end up playing this game of search and replace. Functions can help. They exist to abstract your code, making it not only easier to change that little snippet, but to read and debug your code as well. Ever had a snippet of code that appears multiple times in different places in your program? Whenever you had to change that snippet, you end up playing this game of search and replace. Functions can help. They exist to abstract your code, making it not only easier to change that little snippet, but to read and debug your code as well.

View file

@ -20,6 +20,7 @@ tumblr_post_id:
- "135657690564" - "135657690564"
kind: kind:
- article - article
tags: ["Web", "JS"]
--- ---
Im excited to say that Ive written my first service worker for brandonrozek.com. What is a service worker? A service worker provides an extra layer between the client and the server. The exciting part about this is that you can use service workers to deliver an offline experience. (Cached versions of your site, offline pages, etc.) Im excited to say that Ive written my first service worker for brandonrozek.com. What is a service worker? A service worker provides an extra layer between the client and the server. The exciting part about this is that you can use service workers to deliver an offline experience. (Cached versions of your site, offline pages, etc.)

View file

@ -20,6 +20,7 @@ tumblr_post_id:
- "135657739439" - "135657739439"
kind: kind:
- article - article
tags: ["JS"]
--- ---
Last week I published my first library over on Github called [Fractions.js](https://github.com/brandonrozek/Fractions.js). Fractions.js is a library to help avoid the [mathmatetical errors](http://floating-point-gui.de/) in floating point arithmetic. What do you mean by floating point artihmetic errors? Here is an example: <code class="language-javascript">.1 * .2</code> outputs <code class="language-javascript">0.020000000000000004</code> even though the correct answer is <code class="language-javascript">.02</code> Last week I published my first library over on Github called [Fractions.js](https://github.com/brandonrozek/Fractions.js). Fractions.js is a library to help avoid the [mathmatetical errors](http://floating-point-gui.de/) in floating point arithmetic. What do you mean by floating point artihmetic errors? Here is an example: <code class="language-javascript">.1 * .2</code> outputs <code class="language-javascript">0.020000000000000004</code> even though the correct answer is <code class="language-javascript">.02</code>

View file

@ -25,6 +25,7 @@ tumblr_crosspostr_crosspost:
- 'N' - 'N'
kind: kind:
- article - article
tags: ["Web", "JS"]
--- ---
Summary: I rewrote how cache limiting works to address a few problems listed later in this post. Check out the [gist](https://gist.github.com/brandonrozek/0cf038df40a913fda655) for the updated code. Summary: I rewrote how cache limiting works to address a few problems listed later in this post. Check out the [gist](https://gist.github.com/brandonrozek/0cf038df40a913fda655) for the updated code.

View file

@ -17,6 +17,7 @@ tumblr_post_id:
- "136059699334" - "136059699334"
kind: kind:
- article - article
tags: ["Web"]
--- ---
Microformats is semantic HTML used to convey metadata. Using an userscript, I can generate a vCard from the representative h-card of the page. The code for this is on this gist [here.](https://gist.github.com/brandonrozek/e0153b2733e947fa9c87) Microformats is semantic HTML used to convey metadata. Using an userscript, I can generate a vCard from the representative h-card of the page. The code for this is on this gist [here.](https://gist.github.com/brandonrozek/e0153b2733e947fa9c87)

View file

@ -22,6 +22,7 @@ mf2_syndicate-to:
- 'a:1:{i:0;s:4:"none";}' - 'a:1:{i:0;s:4:"none";}'
kind: kind:
- note - note
tags: ["Security"]
--- ---
Looking over the list of programs installed on my computer, one of my all time favorites is a program called [Pass](https://www.passwordstore.org/). It&#8217;s a program available under most Linux distributions, Mac OS X (through [Brew](http://brew.sh/)), [Windows](https://github.com/mbos/Pass4Win), [Android](https://play.google.com/store/apps/details?id=com.zeapo.pwdstore), and [iOS](https://github.com/davidjb/pass-ios#readme). It stores all of the passwords using gpg encryption and stores them as actual files on the hard disk. Meaning if you wanted, you can sync them to all your devices! Looking over the list of programs installed on my computer, one of my all time favorites is a program called [Pass](https://www.passwordstore.org/). It&#8217;s a program available under most Linux distributions, Mac OS X (through [Brew](http://brew.sh/)), [Windows](https://github.com/mbos/Pass4Win), [Android](https://play.google.com/store/apps/details?id=com.zeapo.pwdstore), and [iOS](https://github.com/davidjb/pass-ios#readme). It stores all of the passwords using gpg encryption and stores them as actual files on the hard disk. Meaning if you wanted, you can sync them to all your devices!

View file

@ -19,6 +19,7 @@ tumblr_post_id:
format: aside format: aside
kind: kind:
- note - note
tags: ["R"]
--- ---
In case you were wondering how I got all the R code and output for the [&#8220;Do females live longer than males?&#8221;](https://brandonrozek.com/portfolio/male-vs-female-life-expectancy/) page. There is actually a function in RStudio that allows one to compile a report based on code and it&#8217;s output. In case you were wondering how I got all the R code and output for the [&#8220;Do females live longer than males?&#8221;](https://brandonrozek.com/portfolio/male-vs-female-life-expectancy/) page. There is actually a function in RStudio that allows one to compile a report based on code and it&#8217;s output.

View file

@ -19,6 +19,7 @@ tumblr_post_id:
format: aside format: aside
kind: kind:
- note - note
tags: ["Statistics"]
--- ---
There are many cases where websites use random number generators to influence some sort of page behavior. One test to ensure the quality of a random number generator is to see if after many cases, the numbers produced follow a uniform distribution. There are many cases where websites use random number generators to influence some sort of page behavior. One test to ensure the quality of a random number generator is to see if after many cases, the numbers produced follow a uniform distribution.

View file

@ -21,6 +21,7 @@ mf2_syndication:
format: aside format: aside
kind: kind:
- note - note
tags: ["Math", "Java"]
math: true math: true
--- ---
Using Monte Carlo methods, we can create a simulation that approximates pi. In this post, we will go over the math behind the approximation and the code. Using Monte Carlo methods, we can create a simulation that approximates pi. In this post, we will go over the math behind the approximation and the code.

View file

@ -20,6 +20,7 @@ mf2_syndication:
- 'a:1:{i:0;s:60:"https://twitter.com/B_RozekJournal/status/867409810932760576";}' - 'a:1:{i:0;s:60:"https://twitter.com/B_RozekJournal/status/867409810932760576";}'
kind: kind:
- article - article
tags: ["Java"]
--- ---
When you use an IDE there are many things you can take for granted. A section of an intro level computer science course at my university uses [JGrasp](http://www.jgrasp.org/) to build Java Applets. When you use an IDE there are many things you can take for granted. A section of an intro level computer science course at my university uses [JGrasp](http://www.jgrasp.org/) to build Java Applets.

View file

@ -18,6 +18,7 @@ tumblr_post_id:
- "161484582559" - "161484582559"
kind: kind:
- article - article
tags: ["Java"]
--- ---
This post, over time, will serve as a reference to myself and others of the different UI components available in the Swing library. This post assumes a general familiarity with setting up a basic Swing application and focuses only on the individual components. This post, over time, will serve as a reference to myself and others of the different UI components available in the Swing library. This post assumes a general familiarity with setting up a basic Swing application and focuses only on the individual components.

View file

@ -20,6 +20,7 @@ mf2_syndication:
- 'a:1:{i:0;s:60:"https://twitter.com/B_RozekJournal/status/871828083459936257";}' - 'a:1:{i:0;s:60:"https://twitter.com/B_RozekJournal/status/871828083459936257";}'
kind: kind:
- article - article
tags: ["Java"]
--- ---
The default theme for Java Swing components is a cross-platform theme called &#8220;Metal&#8221;. I use the Adapta theme for GTK on Linux and this theme does not match at all what my other GUI applications look like. So here, I will describe a simple way to utlize already existent system themes in Java Swing applications. The default theme for Java Swing components is a cross-platform theme called &#8220;Metal&#8221;. I use the Adapta theme for GTK on Linux and this theme does not match at all what my other GUI applications look like. So here, I will describe a simple way to utlize already existent system themes in Java Swing applications.

View file

@ -20,6 +20,7 @@ tumblr_crosspostr_crosspost:
- 'N' - 'N'
kind: kind:
- note - note
tags: ["Java"]
--- ---
Sometimes you want to format your outputs. This is a quick cheatsheet containing the differerent escape sequences Sometimes you want to format your outputs. This is a quick cheatsheet containing the differerent escape sequences

View file

@ -20,6 +20,7 @@ mf2_mp-syndicate-to:
- 'a:1:{i:0;s:4:"none";}' - 'a:1:{i:0;s:4:"none";}'
kind: kind:
- note - note
tags: ["Java"]
--- ---
To obtain console input for your program you can use the `Scanner` class To obtain console input for your program you can use the `Scanner` class

View file

@ -18,6 +18,7 @@ mf2_syndication:
- 'a:1:{i:0;s:60:"https://twitter.com/B_RozekJournal/status/955308388384235521";}' - 'a:1:{i:0;s:60:"https://twitter.com/B_RozekJournal/status/955308388384235521";}'
kind: kind:
- article - article
tags: ["Java"]
--- ---
This article is based on one written by [Markus Konrad](https://datascience.blog.wzb.eu/author/markus_konrad/) at this link <a href='https://datascience.blog.wzb.eu/2016/07/13/autocorrecting-misspelled-words-in-python-using-hunspell/' target='_blank' >https://datascience.blog.wzb.eu/2016/07/13/autocorrecting-misspelled-words-in-python-using-hunspell/</a> This article is based on one written by [Markus Konrad](https://datascience.blog.wzb.eu/author/markus_konrad/) at this link <a href='https://datascience.blog.wzb.eu/2016/07/13/autocorrecting-misspelled-words-in-python-using-hunspell/' target='_blank' >https://datascience.blog.wzb.eu/2016/07/13/autocorrecting-misspelled-words-in-python-using-hunspell/</a>

View file

@ -2,7 +2,7 @@
title: "Debugging and Performance" title: "Debugging and Performance"
date: 2019-06-15T10:59:30-04:00 date: 2019-06-15T10:59:30-04:00
draft: false draft: false
tags: [ "linux" ] tags: [ "Testing" ]
--- ---
I've come to like the GNU Debugger (GDB) and the `perf` tool recently. This post will be a short summary of the various interesting commands you can use. I've come to like the GNU Debugger (GDB) and the `perf` tool recently. This post will be a short summary of the various interesting commands you can use.

View file

@ -2,7 +2,7 @@
title: "Useful Abstract Definitions" title: "Useful Abstract Definitions"
date: 2019-10-27T23:49:57-04:00 date: 2019-10-27T23:49:57-04:00
draft: false draft: false
tags: [ "abstract algebra" ] tags: [ "Math" ]
math: true math: true
--- ---

View file

@ -6,6 +6,7 @@ author: Brandon Rozek
layout: revision layout: revision
guid: https://brandonrozek.com/2017/07/2227-revision-v1/ guid: https://brandonrozek.com/2017/07/2227-revision-v1/
permalink: /2017/07/2227-revision-v1/ permalink: /2017/07/2227-revision-v1/
tags: ["Statistics"]
--- ---
### Introduction ### Introduction

View file

@ -2,7 +2,7 @@
title: "Algorithms in LaTex" title: "Algorithms in LaTex"
date: 2020-05-14T21:31:28-04:00 date: 2020-05-14T21:31:28-04:00
draft: false draft: false
tags: [] tags: ["LaTex"]
--- ---
There's a great package in LaTex called [`algorithm`](https://ctan.org/pkg/algorithms?lang=en) to help format psuedo-code algorithms for scientific papers. Here's a simple example of its usage: There's a great package in LaTex called [`algorithm`](https://ctan.org/pkg/algorithms?lang=en) to help format psuedo-code algorithms for scientific papers. Here's a simple example of its usage:

View file

@ -2,7 +2,7 @@
title: "Antenna Basics" title: "Antenna Basics"
date: 2021-07-25T10:43:11-04:00 date: 2021-07-25T10:43:11-04:00
draft: false draft: false
tags: [] tags: ["Amateur Radio"]
math: false math: false
--- ---
When a radio wave hits an antenna, the electrical component of the wave induces a difference of potential in the conductor which gives rise to an electric current. This is called electromotive force. The current induced is normally small, therefore, we usually design antennas to be as efficient as possible. When a radio wave hits an antenna, the electrical component of the wave induces a difference of potential in the conductor which gives rise to an electric current. This is called electromotive force. The current induced is normally small, therefore, we usually design antennas to be as efficient as possible.

View file

@ -2,7 +2,7 @@
title: "Deploying Binaries to other Linux Distros using Appimage" title: "Deploying Binaries to other Linux Distros using Appimage"
date: 2020-10-19T21:53:52-04:00 date: 2020-10-19T21:53:52-04:00
draft: false draft: false
tags: [] tags: ["Packaging"]
--- ---
One way to distribute to different Linux distributions is to compile the source under each of them and distribute it separately. This can be a pain to manage if you target multiple distributions and multiple versions of those distributions. Instead, let's take a look at AppImage. This allows us to package up our binaries and shared libraries under one file which we can distribute. One way to distribute to different Linux distributions is to compile the source under each of them and distribute it separately. This can be a pain to manage if you target multiple distributions and multiple versions of those distributions. Instead, let's take a look at AppImage. This allows us to package up our binaries and shared libraries under one file which we can distribute.

View file

@ -2,7 +2,7 @@
title: "Show Applications using the Internet" title: "Show Applications using the Internet"
date: 2020-05-09T11:30:36-04:00 date: 2020-05-09T11:30:36-04:00
draft: false draft: false
tags: [] tags: ["Linux"]
--- ---
There's a great thread on [ask ubuntu](https://askubuntu.com/questions/104739/which-applications-are-using-internet) on seeing which applications are using the Internet. I'm going to add my own spin on the answers for future reference. There's a great thread on [ask ubuntu](https://askubuntu.com/questions/104739/which-applications-are-using-internet) on seeing which applications are using the Internet. I'm going to add my own spin on the answers for future reference.

View file

@ -2,7 +2,7 @@
title: "Archiving Sites" title: "Archiving Sites"
date: 2019-08-02T22:42:16-04:00 date: 2019-08-02T22:42:16-04:00
draft: false draft: false
tags: [ "archive" ] tags: [ "Archive" ]
--- ---
I have several old Wordpress sites lying around that I would like to archive but not maintain anymore. Since I don't intend to create any more content on these sites, we can use tools like `wget` to scrape an existing site and provide a somewhat *read-only* copy of it. I say read-only not because we can't edit it, but because it's not in the original source format of the website. I have several old Wordpress sites lying around that I would like to archive but not maintain anymore. Since I don't intend to create any more content on these sites, we can use tools like `wget` to scrape an existing site and provide a somewhat *read-only* copy of it. I say read-only not because we can't edit it, but because it's not in the original source format of the website.

View file

@ -2,7 +2,7 @@
title: "aspell" title: "aspell"
date: 2019-12-10T22:20:48-05:00 date: 2019-12-10T22:20:48-05:00
draft: false draft: false
tags: [ "linux" ] tags: [ "Linux" ]
--- ---
When I was working on my honors thesis, I realized that I needed a way to spell check the file. After a quick search, I stumbled upon `aspell` which is a `curses` based tool to provide an interactive way for dealing with misspellings. Try it out when you have the chance! When I was working on my honors thesis, I realized that I needed a way to spell check the file. After a quick search, I stumbled upon `aspell` which is a `curses` based tool to provide an interactive way for dealing with misspellings. Try it out when you have the chance!

View file

@ -2,7 +2,7 @@
title: "Quick Python: Async Callbacks" title: "Quick Python: Async Callbacks"
date: 2020-07-11T20:23:29-04:00 date: 2020-07-11T20:23:29-04:00
draft: false draft: false
tags: ["python"] tags: ["Python"]
--- ---
I've written a post on using [callbacks in Python](https://brandonrozek.com/blog/pysubscribepattern/). Though to add callbacks to `asyncio` functions, you'll have to interact with the loop object directly. Replace the emit function in the previous post with the following: I've written a post on using [callbacks in Python](https://brandonrozek.com/blog/pysubscribepattern/). Though to add callbacks to `asyncio` functions, you'll have to interact with the loop object directly. Replace the emit function in the previous post with the following:

View file

@ -2,7 +2,7 @@
title: "Replace Audio in Video" title: "Replace Audio in Video"
date: 2020-04-20T20:32:26-04:00 date: 2020-04-20T20:32:26-04:00
draft: false draft: false
tags: [] tags: ["Audio-Video"]
--- ---
I recorded a video and wanted to touch up my audio in audacity. Here's how I used `ffmpeg` to extract the audio, and then replace it with a modified version. I recorded a video and wanted to touch up my audio in audacity. Here's how I used `ffmpeg` to extract the audio, and then replace it with a modified version.

View file

@ -2,7 +2,7 @@
title: "Auto-Deploy Docker Applications" title: "Auto-Deploy Docker Applications"
date: 2020-05-09T10:20:34-04:00 date: 2020-05-09T10:20:34-04:00
draft: false draft: false
tags: [] tags: ["Containers"]
--- ---
This post will combine that last three posts on [Packer](https://brandonrozek.com/blog/snapshotswithpacker/), [Terraform](https://brandonrozek.com/blog/autodeployterraform/), and their [configuration](https://brandonrozek.com/blog/sharedpackerterraformconfig/) to show an entire example of how to deploy a docker-compose application. We will specifically look at deploying a game called [`minetest`](https://www.minetest.net/) on DigitalOcean, but these principles can be adjusted to deploy your application as well. The entire setup is [documented on Github](https://github.com/Brandon-Rozek/minetest-deploy). This post will combine that last three posts on [Packer](https://brandonrozek.com/blog/snapshotswithpacker/), [Terraform](https://brandonrozek.com/blog/autodeployterraform/), and their [configuration](https://brandonrozek.com/blog/sharedpackerterraformconfig/) to show an entire example of how to deploy a docker-compose application. We will specifically look at deploying a game called [`minetest`](https://www.minetest.net/) on DigitalOcean, but these principles can be adjusted to deploy your application as well. The entire setup is [documented on Github](https://github.com/Brandon-Rozek/minetest-deploy).

View file

@ -2,7 +2,7 @@
title: "Auto Purge Old Docker Images" title: "Auto Purge Old Docker Images"
date: 2020-09-28T23:30:22-04:00 date: 2020-09-28T23:30:22-04:00
draft: false draft: false
tags: [] tags: ["Containers"]
--- ---
I use [Watchtower](https://github.com/containrrr/watchtower) to automatically update the docker images I use. After leaving it for several months, I've realized that I have been storing over 100GB of old docker images. I needed a way to automatically purge old images and [Systemd Timers](https://opensource.com/article/20/7/systemd-timers) is the solution. I use [Watchtower](https://github.com/containrrr/watchtower) to automatically update the docker images I use. After leaving it for several months, I've realized that I have been storing over 100GB of old docker images. I needed a way to automatically purge old images and [Systemd Timers](https://opensource.com/article/20/7/systemd-timers) is the solution.

View file

@ -2,7 +2,7 @@
title: "Autostart Desktop Applications" title: "Autostart Desktop Applications"
date: 2020-11-29T13:45:28-05:00 date: 2020-11-29T13:45:28-05:00
draft: false draft: false
tags: [] tags: ["Linux"]
--- ---
The [freedesktop specification](https://specifications.freedesktop.org/autostart-spec/0.5/ar01s02.html) describes how to identify file types, launch applications, and other useful desktop functions. A useful spec I've found recently is for launching desktop applications when you log into your machine. The [freedesktop specification](https://specifications.freedesktop.org/autostart-spec/0.5/ar01s02.html) describes how to identify file types, launch applications, and other useful desktop functions. A useful spec I've found recently is for launching desktop applications when you log into your machine.

View file

@ -2,7 +2,7 @@
title: "Bandwidth Limiting Applications" title: "Bandwidth Limiting Applications"
date: 2020-10-22T21:51:27-04:00 date: 2020-10-22T21:51:27-04:00
draft: false draft: false
tags: [] tags: ["Linux"]
--- ---
Whether it's web scraping or testing low latency connections, we want to be able to bandwidth limit certain applications. I've written about [rate limiting network interfaces](/blog/limitbandwidth/) before. This post focuses on the application level instead. Whether it's web scraping or testing low latency connections, we want to be able to bandwidth limit certain applications. I've written about [rate limiting network interfaces](/blog/limitbandwidth/) before. This post focuses on the application level instead.

View file

@ -2,7 +2,7 @@
title: "Bash Flags" title: "Bash Flags"
date: 2019-08-06T16:55:47-04:00 date: 2019-08-06T16:55:47-04:00
draft: false draft: false
tags: [ "linux", "bash" ] tags: [ "Bash" ]
--- ---
I was creating a bash script and was looking around for a solution for parsing command line arguments. [This StackOverflow post](https://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash) has a variety of different solutions available. I want to describe my favorite of these posts. I was creating a bash script and was looking around for a solution for parsing command line arguments. [This StackOverflow post](https://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash) has a variety of different solutions available. I want to describe my favorite of these posts.

View file

@ -2,7 +2,7 @@
title: "Partial Argument Parse and Passing in Bash" title: "Partial Argument Parse and Passing in Bash"
date: 2020-09-07T21:33:26-04:00 date: 2020-09-07T21:33:26-04:00
draft: false draft: false
tags: [] tags: ["Bash"]
--- ---
Let's say we want to augment an existing terminal command (like for example `wget`). We then want to be able to add or edit command line options. The rest of this post provides an example that hopefully you can use in your bash script. Let's say we want to augment an existing terminal command (like for example `wget`). We then want to be able to add or edit command line options. The rest of this post provides an example that hopefully you can use in your bash script.

View file

@ -2,7 +2,7 @@
title: "Handling Background Processes in Bash" title: "Handling Background Processes in Bash"
date: 2019-06-17T19:50:30-04:00 date: 2019-06-17T19:50:30-04:00
draft: false draft: false
tags: [ "linux", "bash" ] tags: [ "Bash" ]
--- ---
For multi-process applications, I want to be able to start it up using the `bash` command processor and be able to stop all the processes just by hitting `CTRL-C`. For multi-process applications, I want to be able to start it up using the `bash` command processor and be able to stop all the processes just by hitting `CTRL-C`.

View file

@ -2,7 +2,7 @@
title: "TCP/UDP with Bash" title: "TCP/UDP with Bash"
date: 2020-05-25T23:10:15-04:00 date: 2020-05-25T23:10:15-04:00
draft: false draft: false
tags: ["bash"] tags: ["Bash", "Networking"]
--- ---
The bash shell contains pseudo-devices to send packets with TCP/UDP. The pseudo files are formatted like the following: The bash shell contains pseudo-devices to send packets with TCP/UDP. The pseudo files are formatted like the following:

View file

@ -2,7 +2,7 @@
title: "Quick Bash: Validate IP Address" title: "Quick Bash: Validate IP Address"
date: 2020-12-19T20:15:24-05:00 date: 2020-12-19T20:15:24-05:00
draft: false draft: false
tags: ["bash"] tags: ["Bash", "Networking"]
--- ---
`ipcalc` is a terminal tool that lets you validate an IP address. This proves useful to me as I have scripts that automate certain remote tasks given an IP address. Instead of trusting that an argument passed is a valid IP, why not check it? `ipcalc` is a terminal tool that lets you validate an IP address. This proves useful to me as I have scripts that automate certain remote tasks given an IP address. Instead of trusting that an argument passed is a valid IP, why not check it?

View file

@ -2,7 +2,7 @@
title: "Bat: The user friendly cat" title: "Bat: The user friendly cat"
date: 2020-02-01T06:26:18-05:00 date: 2020-02-01T06:26:18-05:00
draft: false draft: false
tags: [ "linux" ] tags: [ "Linux" ]
--- ---
`bat` is a more human pleasing replacement of `cat` with the following features: `bat` is a more human pleasing replacement of `cat` with the following features:

View file

@ -2,7 +2,7 @@
title: "Birthday Music" title: "Birthday Music"
date: 2020-03-29T13:23:01-04:00 date: 2020-03-29T13:23:01-04:00
draft: false draft: false
tags: ["music"] tags: ["Music"]
--- ---
I was scrolling around in the [Free Music Archive](https://freemusicarchive.org/) and I stumbled upon the entries of their [The New Birthday Song Contest](https://www.freemusicarchive.org/music/Happy_Birthday_Song_Contest/The_New_Birthday_Song_Contest) back in 2012. One of my favorites is an entry by [Kevin Lax](http://www.kevinlax.com/) titled [Happy Birthday](https://files.freemusicarchive.org/storage-freemusicarchive-org/music/WFMU/Kevin_Lax/The_New_Birthday_Song_Contest/Kevin_Lax_-_Happy_Birthday.mp3) licensed under [Creative Commons Attributioni v3](https://creativecommons.org/licenses/by/3.0/). I was scrolling around in the [Free Music Archive](https://freemusicarchive.org/) and I stumbled upon the entries of their [The New Birthday Song Contest](https://www.freemusicarchive.org/music/Happy_Birthday_Song_Contest/The_New_Birthday_Song_Contest) back in 2012. One of my favorites is an entry by [Kevin Lax](http://www.kevinlax.com/) titled [Happy Birthday](https://files.freemusicarchive.org/storage-freemusicarchive-org/music/WFMU/Kevin_Lax/The_New_Birthday_Song_Contest/Kevin_Lax_-_Happy_Birthday.mp3) licensed under [Creative Commons Attributioni v3](https://creativecommons.org/licenses/by/3.0/).

View file

@ -2,7 +2,7 @@
title: "Checkinstall" title: "Checkinstall"
date: 2020-04-26T12:11:30-04:00 date: 2020-04-26T12:11:30-04:00
draft: false draft: false
tags: ["packaging", "linux"] tags: ["Packaging", "Linux"]
--- ---
To create a quick and dirty Debian or RPM package, check out `checkinstall`! Be forewarned though that this isn't the recommended way of creating packages. This post on [AskUbuntu](https://askubuntu.com/questions/1138384/why-is-checkinstall-no-longer-being-maintained) gives good reasons for why. Though if it is between running a `make install` or running this utility, I would consider running `checkinstall` instead. To create a quick and dirty Debian or RPM package, check out `checkinstall`! Be forewarned though that this isn't the recommended way of creating packages. This post on [AskUbuntu](https://askubuntu.com/questions/1138384/why-is-checkinstall-no-longer-being-maintained) gives good reasons for why. Though if it is between running a `make install` or running this utility, I would consider running `checkinstall` instead.

View file

@ -2,7 +2,7 @@
title: "Chirp" title: "Chirp"
date: 2019-09-27T22:46:52-04:00 date: 2019-09-27T22:46:52-04:00
draft: false draft: false
tags: [ "linux", "amateur radio" ] tags: [ "Linux", "Amateur Radio" ]
--- ---
In the land of Ham Radio, you can program your radio with a very popular open source software called `chirp`. For Ubuntu users to install it, it is recommended you use the PPA to keep up to date with radio software... In the land of Ham Radio, you can program your radio with a very popular open source software called `chirp`. For Ubuntu users to install it, it is recommended you use the PPA to keep up to date with radio software...

View file

@ -2,7 +2,7 @@
title: "Chroot and Virtual Filesystems" title: "Chroot and Virtual Filesystems"
date: 2020-11-29T10:52:07-05:00 date: 2020-11-29T10:52:07-05:00
draft: false draft: false
tags: [] tags: ["Linux"]
--- ---
When running applications under a [`chroot`](https://en.wikipedia.org/wiki/Chroot) environment, it can be annoying when certain [virtual filesystems](https://opensource.com/article/19/3/virtual-filesystems-linux) are unavailable. Here are the commands to mount the most common ones: When running applications under a [`chroot`](https://en.wikipedia.org/wiki/Chroot) environment, it can be annoying when certain [virtual filesystems](https://opensource.com/article/19/3/virtual-filesystems-linux) are unavailable. Here are the commands to mount the most common ones:

View file

@ -2,7 +2,7 @@
title: "Clearing Systemd Logs" title: "Clearing Systemd Logs"
date: 2021-02-21T16:08:51-05:00 date: 2021-02-21T16:08:51-05:00
draft: false draft: false
tags: [] tags: ["Linux"]
--- ---
Short post today. I wanted to clear out some disk space usage on one of my servers and noticed that the systemd logs were taking up a decent bit. Here are two options to clear out old logs. Short post today. I wanted to clear out some disk space usage on one of my servers and noticed that the systemd logs were taking up a decent bit. Here are two options to clear out old logs.

View file

@ -2,6 +2,7 @@
title: "Color Manipulation with Sass" title: "Color Manipulation with Sass"
date: 2019-05-21T23:10:06-04:00 date: 2019-05-21T23:10:06-04:00
draft: false draft: false
tags: ["Web", "CSS"]
--- ---
There are many times that I need to slightly mess with a color. The easiest way I found to do it is to use one of the many color functions in the program `Sass`. [Sass](https://sass-lang.com/) is a CSS preprocessor, meaning that it has it's own syntax and it compiles down to CSS. I remember using this before CSS variables became a thing and that was one of the main driving points of Sass. There are many times that I need to slightly mess with a color. The easiest way I found to do it is to use one of the many color functions in the program `Sass`. [Sass](https://sass-lang.com/) is a CSS preprocessor, meaning that it has it's own syntax and it compiles down to CSS. I remember using this before CSS variables became a thing and that was one of the main driving points of Sass.

View file

@ -2,7 +2,7 @@
title: "Ensuring Docker Compose Startup with Systemd" title: "Ensuring Docker Compose Startup with Systemd"
date: 2019-12-16T20:57:36-05:00 date: 2019-12-16T20:57:36-05:00
draft: false draft: false
tags: [ "linux", "containers" ] tags: [ "Linux", "Containers" ]
--- ---
I've been having trouble getting some docker containers such as `nginx` to start automatically on bootup, even with the `restart: always` flag. I've been having trouble getting some docker containers such as `nginx` to start automatically on bootup, even with the `restart: always` flag.

View file

@ -2,7 +2,7 @@
title: "Quick Python: Copy Decorator" title: "Quick Python: Copy Decorator"
date: 2020-04-08T18:49:54-04:00 date: 2020-04-08T18:49:54-04:00
draft: false draft: false
tags: ["python"] tags: ["Python"]
--- ---
If you want to guarantee that your function doesn't modify any of the references and don't mind paying a price in memory consumption, here is a decorator you can easily add to your functions. If you want to guarantee that your function doesn't modify any of the references and don't mind paying a price in memory consumption, here is a decorator you can easily add to your functions.

View file

@ -2,7 +2,7 @@
title: "Copy to RAM Please" title: "Copy to RAM Please"
date: 2019-08-02T22:37:12-04:00 date: 2019-08-02T22:37:12-04:00
draft: false draft: false
tags: [ "linux" ] tags: [ "Linux" ]
--- ---
I bought a 1U server recently, and I forgot to purchase a SSD to actually hold data. Since I couldn't hold my excitement to play with the server, I decided to load an operating system entirely into RAM and never turn it off for the meantime. I bought a 1U server recently, and I forgot to purchase a SSD to actually hold data. Since I couldn't hold my excitement to play with the server, I decided to load an operating system entirely into RAM and never turn it off for the meantime.

View file

@ -2,5 +2,6 @@
title: "Group Theory in Coq" title: "Group Theory in Coq"
date: 2019-05-21T22:17:00-04:00 date: 2019-05-21T22:17:00-04:00
draft: true draft: true
tags: ["Math", "Formal Methods"]
--- ---

View file

@ -2,7 +2,7 @@
title: "coredns" title: "coredns"
date: 2019-12-13T02:00:29-05:00 date: 2019-12-13T02:00:29-05:00
draft: false draft: false
tags: [ "linux", "network", "containers" ] tags: [ "Linux", "Networking", "Containers" ]
--- ---
Domain names are the easiest way for a reverse proxy to split up services in a homelab. Since I'm going full docker-compose in my homelab, I decided to use `coredns`. Domain names are the easiest way for a reverse proxy to split up services in a homelab. Since I'm going full docker-compose in my homelab, I decided to use `coredns`.

View file

@ -3,6 +3,7 @@ title: "Cryptographic Games"
date: 2020-01-13T21:35:09-05:00 date: 2020-01-13T21:35:09-05:00
draft: false draft: false
math: true math: true
tags: ["Security"]
--- ---
When analyzing cryptographic algorithms, we characterize the strength of the crypto-system by analyzing what happens in various crypto games. Below are a couple examples of crypto games used in literature. When analyzing cryptographic algorithms, we characterize the strength of the crypto-system by analyzing what happens in various crypto games. Below are a couple examples of crypto games used in literature.

View file

@ -2,6 +2,7 @@
title: "Capture The Flag" title: "Capture The Flag"
date: 2019-05-22T21:25:22-04:00 date: 2019-05-22T21:25:22-04:00
draft: false draft: false
tags: ["Security"]
--- ---
There is an event in Computer Security called "Capture The Flag". The purpose is to test the skills of security engineers and students through a variety of tasks in order to get a pass phrase which is called a flag. I noticed that Dr. Andrew Marshall wanted to set up this event at the University of Mary Washington for a while, so I and a few others decided to help make this a reality for him. There is an event in Computer Security called "Capture The Flag". The purpose is to test the skills of security engineers and students through a variety of tasks in order to get a pass phrase which is called a flag. I noticed that Dr. Andrew Marshall wanted to set up this event at the University of Mary Washington for a while, so I and a few others decided to help make this a reality for him.

View file

@ -2,7 +2,7 @@
title: "Custom Python REPL" title: "Custom Python REPL"
date: 2019-10-27T23:43:12-04:00 date: 2019-10-27T23:43:12-04:00
draft: false draft: false
tags: [ "python" ] tags: [ "Python" ]
--- ---
Are you tired of importing the same libraries and setting up the same variables? Why not just create your own custom REPL? Now of course, we're not going to do it from scratch, but instead utilize what Python already gives us. Are you tired of importing the same libraries and setting up the same variables? Why not just create your own custom REPL? Now of course, we're not going to do it from scratch, but instead utilize what Python already gives us.

View file

@ -4,6 +4,7 @@ date: 2019-05-27T12:15:25-04:00
draft: false draft: false
aliases: aliases:
- /blog/adding-fonts - /blog/adding-fonts
tags: ['Ubuntu', 'Linux']
--- ---
**Warning: This blog post partially applies to Ubuntu-based operating systems** **Warning: This blog post partially applies to Ubuntu-based operating systems**

View file

@ -2,7 +2,7 @@
title: "Custom Executables" title: "Custom Executables"
date: 2020-02-03T20:10:34-05:00 date: 2020-02-03T20:10:34-05:00
draft: false draft: false
tags: [ "linux" ] tags: [ "Linux" ]
--- ---
As time goes on more and more scripts start to accumulate in my scripts folder. It turns out though, that there is a standard way of having local user scripts that get automatically added to your path. I started noticing this in Ubuntu when more and more projects started utilizing the `~/.local/bin` directory. As time goes on more and more scripts start to accumulate in my scripts folder. It turns out though, that there is a standard way of having local user scripts that get automatically added to your path. I started noticing this in Ubuntu when more and more projects started utilizing the `~/.local/bin` directory.

View file

@ -2,7 +2,7 @@
title: "Custom Device Paths with UDEV rules" title: "Custom Device Paths with UDEV rules"
date: 2020-11-10T20:58:37-05:00 date: 2020-11-10T20:58:37-05:00
draft: false draft: false
tags: [] tags: ["Linux"]
--- ---
I wanted to create a rule so that when I plug in my rtlsdr, a symlink to the device will appear in `/dev/rtlsdr`. I wanted to create a rule so that when I plug in my rtlsdr, a symlink to the device will appear in `/dev/rtlsdr`.

View file

@ -2,7 +2,7 @@
title: "Dbcli" title: "Dbcli"
date: 2020-02-29T18:45:51-05:00 date: 2020-02-29T18:45:51-05:00
draft: false draft: false
tags: ["python", "database"] tags: ["Python", "DB"]
--- ---
The [DBLCI](https://www.dbcli.com/) project creates command line database clients with auto-completion and syntax highlighting. These clients are often nicer to work with than the one a database comes with. In this post we're going to demo the [LiteCLI](https://litecli.com/) client. The [DBLCI](https://www.dbcli.com/) project creates command line database clients with auto-completion and syntax highlighting. These clients are often nicer to work with than the one a database comes with. In this post we're going to demo the [LiteCLI](https://litecli.com/) client.

View file

@ -2,7 +2,7 @@
title: "Burning ISOs with dd/pv" title: "Burning ISOs with dd/pv"
date: 2020-01-20T10:23:20-05:00 date: 2020-01-20T10:23:20-05:00
draft: false draft: false
tags: [ "linux" ] tags: [ "Linux" ]
--- ---
While there are nice graphical tools like [Etcher](https://www.balena.io/etcher/), what is almost always a constant is the tool `dd`. Therefore, for future reference I'll just paste the `dd` command I use to make ISO images. While there are nice graphical tools like [Etcher](https://www.balena.io/etcher/), what is almost always a constant is the tool `dd`. Therefore, for future reference I'll just paste the `dd` command I use to make ISO images.

View file

@ -2,7 +2,7 @@
title: "Detect Python Version" title: "Detect Python Version"
date: 2021-03-15T18:09:38-04:00 date: 2021-03-15T18:09:38-04:00
draft: false draft: false
tags: [] tags: ["Python"]
--- ---
I was working on a distribution recently where `python` was mapped to `python2`. It mixed me up for a bit since I was writing a script for `python3` but it ran partially under `python2`. To lower confusion in the future, I think it's a great idea to check the python version and exit if it isn't the version you expect. I was working on a distribution recently where `python` was mapped to `python2`. It mixed me up for a bit since I was writing a script for `python3` but it ran partially under `python2`. To lower confusion in the future, I think it's a great idea to check the python version and exit if it isn't the version you expect.

View file

@ -2,7 +2,7 @@
title: "Diceware" title: "Diceware"
date: 2020-05-01T00:22:31-04:00 date: 2020-05-01T00:22:31-04:00
draft: false draft: false
tags: [] tags: ["Security"]
--- ---
Diceware is a passphrase generator proposed by [Arnold G. Reinhold](http://diceware.com/). Passphrases contain multiple words which are chosen according to a sequence of dice rolls. Let's look at a simplified example where we have binary dice (0 or 1) and we have a wordlist of two dice rolls. Diceware is a passphrase generator proposed by [Arnold G. Reinhold](http://diceware.com/). Passphrases contain multiple words which are chosen according to a sequence of dice rolls. Let's look at a simplified example where we have binary dice (0 or 1) and we have a wordlist of two dice rolls.

View file

@ -2,7 +2,7 @@
title: "Getting started with Digital Modes in Linux" title: "Getting started with Digital Modes in Linux"
date: 2019-09-04T09:52:21-04:00 date: 2019-09-04T09:52:21-04:00
draft: false draft: false
tags: [ "amateur radio" ] tags: [ "Amateur Radio" ]
--- ---
This blog post is going to describe what steps I took to be able to decode signals using digital modes. Hardware wise, you will either need a RTL-SDR receiver or a transceiver radio with a cable plugging into the computer's soundcard. This blog post is going to describe what steps I took to be able to decode signals using digital modes. Hardware wise, you will either need a RTL-SDR receiver or a transceiver radio with a cable plugging into the computer's soundcard.

View file

@ -2,7 +2,7 @@
title: "Disc Golf and PyMC3" title: "Disc Golf and PyMC3"
date: 2020-03-28T22:08:19-04:00 date: 2020-03-28T22:08:19-04:00
draft: false draft: false
tags: ["python", "stats"] tags: ["Python", "Statistics"]
math: true math: true
--- ---

View file

@ -2,7 +2,7 @@
title: "Discovering Ham Radio" title: "Discovering Ham Radio"
date: 2019-07-01T22:06:23-04:00 date: 2019-07-01T22:06:23-04:00
draft: false draft: false
tags: [ "amateur radio" ] tags: [ "Amateur Radio" ]
--- ---
I feel like Ham Radio has been hiding in the background as I move through life. I knew someone that kept a Ham radio in his car, Noah talks about it frequently on his [podcast](http://www.asknoahshow.com/), and it seemed like the next step after [playing with](https://github.com/brandon-rozek/radiotuner) [software defined radio](https://www.amazon.com/RTL-SDR-Blog-RTL2832U-Software-Telescopic/dp/B011HVUEME/ref=sr_1_3). I feel like Ham Radio has been hiding in the background as I move through life. I knew someone that kept a Ham radio in his car, Noah talks about it frequently on his [podcast](http://www.asknoahshow.com/), and it seemed like the next step after [playing with](https://github.com/brandon-rozek/radiotuner) [software defined radio](https://www.amazon.com/RTL-SDR-Blog-RTL2832U-Software-Telescopic/dp/B011HVUEME/ref=sr_1_3).

View file

@ -2,7 +2,7 @@
title: "Advanced Docker Image Construction with Bash" title: "Advanced Docker Image Construction with Bash"
date: 2019-12-26T21:01:37-05:00 date: 2019-12-26T21:01:37-05:00
draft: false draft: false
tags: [ "linux", "containers", "bash" ] tags: [ "Linux", "Containers" ]
--- ---
On current versions of Docker, you can't mount volumes during image construction. This poses an issue for me as I don't want to replicate gigabytes of data already existing on my disk when it won't appear on the final build. Therefore, instead of building an image with a traditional Dockerfile, we're going to use a bash script on a running base image container and export the filesystem to create the image from. On current versions of Docker, you can't mount volumes during image construction. This poses an issue for me as I don't want to replicate gigabytes of data already existing on my disk when it won't appear on the final build. Therefore, instead of building an image with a traditional Dockerfile, we're going to use a bash script on a running base image container and export the filesystem to create the image from.

View file

@ -2,7 +2,7 @@
title: "Docker Macvlan Networks" title: "Docker Macvlan Networks"
date: 2020-05-26T01:01:43-04:00 date: 2020-05-26T01:01:43-04:00
draft: false draft: false
tags: ["containers"] tags: ["Containers"]
--- ---
It is useful to have some docker containers live in the same network as your host machine. We can accomplish this by creating a new MAC address for the container and using the `macvlan` driver. Here is example Docker Compose configuration It is useful to have some docker containers live in the same network as your host machine. We can accomplish this by creating a new MAC address for the container and using the `macvlan` driver. Here is example Docker Compose configuration

View file

@ -2,7 +2,7 @@
title: "Espeak" title: "Espeak"
date: 2020-03-01T10:33:33-05:00 date: 2020-03-01T10:33:33-05:00
draft: false draft: false
tags: [ "linux" ] tags: [ "Linux" ]
--- ---
`espeak` is a command line tool that lets you type in messages and have it said back to you. `espeak` is a command line tool that lets you type in messages and have it said back to you.

View file

@ -2,7 +2,7 @@
title: "Quick Python: Export Decorator" title: "Quick Python: Export Decorator"
date: 2020-06-14T22:15:38-04:00 date: 2020-06-14T22:15:38-04:00
draft: false draft: false
tags: [] tags: ["Python"]
--- ---
A great [StackOverflow post](https://stackoverflow.com/a/35710527) by [Aaron Hall](https://stackoverflow.com/users/541136/aaron-hall) that shows how you can create an `export` decorator in order to not have to specify all the names you want to expose via [`__all__`](https://brandonrozek.com/blog/pythonall/). A great [StackOverflow post](https://stackoverflow.com/a/35710527) by [Aaron Hall](https://stackoverflow.com/users/541136/aaron-hall) that shows how you can create an `export` decorator in order to not have to specify all the names you want to expose via [`__all__`](https://brandonrozek.com/blog/pythonall/).

View file

@ -2,7 +2,7 @@
title: "External Media Formats" title: "External Media Formats"
date: 2019-05-22T22:03:38-04:00 date: 2019-05-22T22:03:38-04:00
draft: false draft: false
tags: [ "storage" ] tags: [ "Storage" ]
--- ---
I received an external SSD recently and I decided that it would be a great place to offload some of my backups. Before I got started, I became curious as to what filesystem to put on the SSD. After some research, it seems that if I want to be able to access it using Windows I am actually quite limited. In fact only three make sense: I received an external SSD recently and I decided that it would be a great place to offload some of my backups. Before I got started, I became curious as to what filesystem to put on the SSD. After some research, it seems that if I want to be able to access it using Windows I am actually quite limited. In fact only three make sense:

View file

@ -2,7 +2,7 @@
title: "Extract All the Things" title: "Extract All the Things"
date: 2020-06-14T22:23:37-04:00 date: 2020-06-14T22:23:37-04:00
draft: false draft: false
tags: [] tags: ["Linux"]
--- ---
[Sandra Henry-Stocker](https://www.networkworld.com/author/Sandra-Henry_Stocker/) from Network World wrote a [great post](https://www.networkworld.com/article/3244007/extracting-from-compressed-files-on-linux.html) on how to standardize extracting files on Linux. It's a shell script that works so well, that I placed it in my [`~/.local/bin` directory](https://brandonrozek.com/blog/customexec/) in order to call upon it at any time. Here's part of it, check out the post for more. [Sandra Henry-Stocker](https://www.networkworld.com/author/Sandra-Henry_Stocker/) from Network World wrote a [great post](https://www.networkworld.com/article/3244007/extracting-from-compressed-files-on-linux.html) on how to standardize extracting files on Linux. It's a shell script that works so well, that I placed it in my [`~/.local/bin` directory](https://brandonrozek.com/blog/customexec/) in order to call upon it at any time. Here's part of it, check out the post for more.

View file

@ -2,7 +2,7 @@
title: "V4l2 Webcam" title: "V4l2 Webcam"
date: 2020-05-25T23:49:08-04:00 date: 2020-05-25T23:49:08-04:00
draft: false draft: false
tags: [] tags: ["Audio-Video"]
--- ---
In Linux you can create a fake webcam by making use of the `v4l2loopback` kernel module. In Linux you can create a fake webcam by making use of the `v4l2loopback` kernel module.

View file

@ -2,7 +2,7 @@
title: "Getting Started with FM Digital Modes" title: "Getting Started with FM Digital Modes"
date: 2020-11-07T21:31:52-05:00 date: 2020-11-07T21:31:52-05:00
draft: false draft: false
tags: ["amateur radio"] tags: ["Amateur Radio"]
--- ---
In this post, I will describe a low cost way to get started with digital modes using FM. We will extend off my [previous post](/blog/digitalmodes). Even though some of these instructions are hardware specific, I hope that the general principles will apply to whatever hardware you're working with. In this post, I will describe a low cost way to get started with digital modes using FM. We will extend off my [previous post](/blog/digitalmodes). Even though some of these instructions are hardware specific, I hope that the general principles will apply to whatever hardware you're working with.

View file

@ -2,7 +2,7 @@
title: "FM Radio Tuner" title: "FM Radio Tuner"
date: 2019-05-21T22:08:54-04:00 date: 2019-05-21T22:08:54-04:00
draft: true draft: true
tags: [ "software defined radio" ] tags: [ "Amateur Radio" ]
--- ---
I recently bought a [RTL-SDR Receiver](https://www.amazon.com/RTL-SDR-Blog-RTL2832U-Software-Telescopic/dp/B011HVUEME/ref=sr_1_3) off of Amazon to get started with [Software Defined Radio](https://en.wikipedia.org/wiki/Software-defined_radio). To start off, I thought that it would be great if I can write a fm receiver. I recently bought a [RTL-SDR Receiver](https://www.amazon.com/RTL-SDR-Blog-RTL2832U-Software-Telescopic/dp/B011HVUEME/ref=sr_1_3) off of Amazon to get started with [Software Defined Radio](https://en.wikipedia.org/wiki/Software-defined_radio). To start off, I thought that it would be great if I can write a fm receiver.

View file

@ -2,7 +2,7 @@
title: "Gevent" title: "Gevent"
date: 2020-04-09T17:22:52-04:00 date: 2020-04-09T17:22:52-04:00
draft: false draft: false
tags: ["python", "concurrency"] tags: ["Python"]
--- ---
In my last post I spoke about [concurrency with asyncio](https://brandonrozek.com/blog/pyasyncio/). Now what if you don't want to concern yourself with async/await practices and just want to write synchronous code that executes I/O asynchronously? That's where the library [gevent](http://www.gevent.org/) comes in. It does this by modifying Python's standard library during runtime to call it's own asynchronous versions. In my last post I spoke about [concurrency with asyncio](https://brandonrozek.com/blog/pyasyncio/). Now what if you don't want to concern yourself with async/await practices and just want to write synchronous code that executes I/O asynchronously? That's where the library [gevent](http://www.gevent.org/) comes in. It does this by modifying Python's standard library during runtime to call it's own asynchronous versions.

View file

@ -3,6 +3,7 @@
title: "Git Lens" title: "Git Lens"
date: 2019-10-27T23:38:45-04:00 date: 2019-10-27T23:38:45-04:00
draft: false draft: false
tags: ["Git"]
--- ---
Git Lens is a great Visual Studio code extension. It annotates the line your cursor is on with the commit it came from. Extreemely useful for determining the reason that line of code is written or even who wrote it. Git Lens is a great Visual Studio code extension. It annotates the line your cursor is on with the commit it came from. Extreemely useful for determining the reason that line of code is written or even who wrote it.

View file

@ -2,7 +2,7 @@
title: "Git Line Endings" title: "Git Line Endings"
date: 2020-05-09T11:01:21-04:00 date: 2020-05-09T11:01:21-04:00
draft: false draft: false
tags: ["git"] tags: ["Git"]
--- ---
if you have worked with a team that has a mix of Windows and Linux developers, you might have noticed pull requests where Git reports changes in a file that is not visible. One explanation is that the line endings might have changed. if you have worked with a team that has a mix of Windows and Linux developers, you might have noticed pull requests where Git reports changes in a file that is not visible. One explanation is that the line endings might have changed.

View file

@ -2,7 +2,7 @@
title: "GPG Agent as SSH Agent" title: "GPG Agent as SSH Agent"
date: 2020-06-14T22:33:01-04:00 date: 2020-06-14T22:33:01-04:00
draft: false draft: false
tags: [] tags: ["SSH", "GPG"]
--- ---
GPG Agent has the ability to act as a SSH Agent. This allows the use of Authentication keys on Smartcards to be used with SSH as well. GPG Agent has the ability to act as a SSH Agent. This allows the use of Authentication keys on Smartcards to be used with SSH as well.

View file

@ -2,7 +2,7 @@
title: "GPG Card" title: "GPG Card"
date: 2020-06-05T17:39:51-04:00 date: 2020-06-05T17:39:51-04:00
draft: false draft: false
tags: [] tags: ["GPG"]
--- ---
I have a Yubikey hardware token and one of my favorite use cases is the GPG support. This gives you the use cases of signing, encrypting, and authenticating all in one module. This post will describe quickly setting it up. I have a Yubikey hardware token and one of my favorite use cases is the GPG support. This gives you the use cases of signing, encrypting, and authenticating all in one module. This post will describe quickly setting it up.

View file

@ -2,7 +2,7 @@
title: "Groups Simplified" title: "Groups Simplified"
date: 2019-12-10T21:40:00-05:00 date: 2019-12-10T21:40:00-05:00
draft: false draft: false
tags: [ "abstract algebra" ] tags: [ "Math" ]
math: true math: true
--- ---

View file

@ -2,7 +2,7 @@
title: "GStreamer" title: "GStreamer"
date: 2020-02-08T20:46:36-05:00 date: 2020-02-08T20:46:36-05:00
draft: false draft: false
tags: [ "linux" ] tags: [ "Audio-Video" ]
--- ---
GStreamer is a pipeline based multimedia framework that goes from capture, processing, to a sink such as a X window or UDP sink. GStreamer is a pipeline based multimedia framework that goes from capture, processing, to a sink such as a X window or UDP sink.

View file

@ -3,6 +3,7 @@ title: "Real Analysis Sequences in Haskell"
date: 2019-05-21T22:18:21-04:00 date: 2019-05-21T22:18:21-04:00
draft: false draft: false
math: true math: true
tags: ["Math", "Haskell"]
--- ---
In Real Analysis it is useful to look at terms of a sequence. One of the best ways I've found to do this is in believe it or not Haskell. This is mainly for these two reasons In Real Analysis it is useful to look at terms of a sequence. One of the best ways I've found to do this is in believe it or not Haskell. This is mainly for these two reasons

View file

@ -2,7 +2,7 @@
title: "Quick CA for internal LAN" title: "Quick CA for internal LAN"
date: 2020-04-18T16:26:53-04:00 date: 2020-04-18T16:26:53-04:00
draft: false draft: false
tags: ["network"] tags: ["Networking"]
--- ---
Setting up trusted HTTPs inside a network without exposure to the Internet requires creating a Certificate Authority. The audience for this post is oriented for people setting up services in a small low threat model environment. Additional cautions should be applied when setting this up for a business, for example working off an intermediate CA. Setting up trusted HTTPs inside a network without exposure to the Internet requires creating a Certificate Authority. The audience for this post is oriented for people setting up services in a small low threat model environment. Additional cautions should be applied when setting this up for a business, for example working off an intermediate CA.

View file

@ -2,7 +2,7 @@
title: "Introduction to RF Power Amplifiers" title: "Introduction to RF Power Amplifiers"
date: 2021-04-10T13:01:00-04:00 date: 2021-04-10T13:01:00-04:00
draft: false draft: false
tags: ["amateur-radio"] tags: ["Amateur Radio"]
math: true math: true
--- ---

View file

@ -2,7 +2,7 @@
title: "How to get list of IP Addresses in Python" title: "How to get list of IP Addresses in Python"
date: 2020-09-07T20:03:24-04:00 date: 2020-09-07T20:03:24-04:00
draft: false draft: false
tags: ["python", "networking"] tags: ["Python", "Networking"]
--- ---
[Elemag](https://stackoverflow.com/users/2436840/elemag) on gave a quick solution on StackOverflow on [how to determine IP addresses with multiple NICS](https://stackoverflow.com/questions/270745/how-do-i-determine-all-of-my-ip-addresses-when-i-have-multiple-nics). [Elemag](https://stackoverflow.com/users/2436840/elemag) on gave a quick solution on StackOverflow on [how to determine IP addresses with multiple NICS](https://stackoverflow.com/questions/270745/how-do-i-determine-all-of-my-ip-addresses-when-i-have-multiple-nics).

View file

@ -2,7 +2,7 @@
title: "Iteratively Read CSV" title: "Iteratively Read CSV"
date: 2020-04-11T21:34:33-04:00 date: 2020-04-11T21:34:33-04:00
draft: false draft: false
tags: ["python"] tags: ["Python"]
--- ---
If you want to analyze a CSV dataset that is larger than the space available in RAM, then you can iteratively process each observation and store/calculate only what you need. There is a way to do this in standard Python as well as the popular library Pandas. If you want to analyze a CSV dataset that is larger than the space available in RAM, then you can iteratively process each observation and store/calculate only what you need. There is a way to do this in standard Python as well as the popular library Pandas.

View file

@ -2,7 +2,7 @@
title: "Jupyter with Pyenv" title: "Jupyter with Pyenv"
date: 2020-07-21T02:44:06-04:00 date: 2020-07-21T02:44:06-04:00
draft: false draft: false
tags: ["python"] tags: ["Python"]
--- ---
I enjoy both managing my Python versions with [pyenv](https://brandonrozek.com/blog/pyenv/) and the literate programming environment [Jupyter lab](https://jupyter.org/). Luckily we can easily manage Python virtual environments via iPython kernels. I enjoy both managing my Python versions with [pyenv](https://brandonrozek.com/blog/pyenv/) and the literate programming environment [Jupyter lab](https://jupyter.org/). Luckily we can easily manage Python virtual environments via iPython kernels.

View file

@ -2,7 +2,7 @@
title: "Code in LaTex" title: "Code in LaTex"
date: 2020-04-30T23:46:05-04:00 date: 2020-04-30T23:46:05-04:00
draft: false draft: false
tags: [] tags: ["LaTex"]
--- ---
I am currently working on a paper in LaTex and wanted to include some source code in it. I didn't want to use the default `verbatim` environment since I wanted to include syntax highlighting as well. Luckily, the `listings` package is an easy and extensible way to include source code inside LaTex documents. To speak first of its extensibility, here is a subset of the arguments that it can possibly take: I am currently working on a paper in LaTex and wanted to include some source code in it. I didn't want to use the default `verbatim` environment since I wanted to include syntax highlighting as well. Luckily, the `listings` package is an easy and extensible way to include source code inside LaTex documents. To speak first of its extensibility, here is a subset of the arguments that it can possibly take:

View file

@ -2,7 +2,7 @@
title: "Lean Theorem Prover Tactics" title: "Lean Theorem Prover Tactics"
date: 2021-10-10T23:52:41-04:00 date: 2021-10-10T23:52:41-04:00
draft: false draft: false
tags: [] tags: ["Formal Methods"]
math: false math: false
--- ---

View file

@ -2,7 +2,7 @@
title: "Limit Bandwidth through Terminal" title: "Limit Bandwidth through Terminal"
date: 2020-01-15T19:51:45-05:00 date: 2020-01-15T19:51:45-05:00
draft: false draft: false
tags: [ "linux", "network" ] tags: [ "Linux", "Networking" ]
--- ---
Have you ever wondered how an application or a system would operate under low bandwidth environments? Luckily `wondershaper` is a tool to help with just that! Have you ever wondered how an application or a system would operate under low bandwidth environments? Luckily `wondershaper` is a tool to help with just that!

View file

@ -2,7 +2,7 @@
title: "Linux Desktop Icons" title: "Linux Desktop Icons"
date: 2019-06-03T21:05:37-04:00 date: 2019-06-03T21:05:37-04:00
draft: false draft: false
tags: [ "linux" ] tags: [ "Linux" ]
--- ---
I get asked a decent number of times how to add desktop icons on Linux. Luckily it's incredibly easy. [It's a `freedesktop` standard](http://standards.freedesktop.org/desktop-entry-spec/latest/). I get asked a decent number of times how to add desktop icons on Linux. Luckily it's incredibly easy. [It's a `freedesktop` standard](http://standards.freedesktop.org/desktop-entry-spec/latest/).

View file

@ -2,6 +2,7 @@
title: "Live Documentation" title: "Live Documentation"
date: 2019-09-27T23:07:19-04:00 date: 2019-09-27T23:07:19-04:00
draft: false draft: false
tags: ["Documentation"]
--- ---
This blog post is mostly for one of my teams in which I use Jupyter Notebooks for documentation. Perhaps after reading this post, you the reader can understand why it might be beneficial to use Jupyter Notebooks as a form of documentation. This blog post is mostly for one of my teams in which I use Jupyter Notebooks for documentation. Perhaps after reading this post, you the reader can understand why it might be beneficial to use Jupyter Notebooks as a form of documentation.

View file

@ -2,7 +2,7 @@
title: "LXD on tmpfs" title: "LXD on tmpfs"
date: 2019-12-31T22:35:21-05:00 date: 2019-12-31T22:35:21-05:00
draft: false draft: false
tags: [ "linux", "storage", "containers" ] tags: [ "Linux", "Storage", "Containers" ]
--- ---
Container images are designed to be as small as possible. Wouldn't it be cool if we can hold entire containers in RAM? This post outlines how to accomplish this using LXD. It turns out that it is a lot easier to setup custom storage pools on LXD than with Docker. Container images are designed to be as small as possible. Wouldn't it be cool if we can hold entire containers in RAM? This post outlines how to accomplish this using LXD. It turns out that it is a lot easier to setup custom storage pools on LXD than with Docker.

View file

@ -6,6 +6,7 @@ author: rozek_admin
layout: revision layout: revision
guid: https://brandonrozek.com/2017/03/2052-revision-v1/ guid: https://brandonrozek.com/2017/03/2052-revision-v1/
permalink: /2017/03/2052-revision-v1/ permalink: /2017/03/2052-revision-v1/
tags: ["Statistics"]
--- ---
![](https://brandonrozek.com/wp-content/uploads/2017/03/LifeExpectancyBoxplot.png) ![](https://brandonrozek.com/wp-content/uploads/2017/03/LifeExpectancyBoxplot.png)

View file

@ -2,7 +2,7 @@
title: "Manage Python Applications" title: "Manage Python Applications"
date: 2020-10-11T19:21:10-04:00 date: 2020-10-11T19:21:10-04:00
draft: false draft: false
tags: [] tags: ["Python"]
--- ---
I've recently discovered an application called [`pipx`](https://pipxproject.github.io/pipx/) which allows one to install and run Python applications in isolated environments. I think of it as a package similar to `apt`, but keeps the packages nice and isolated from one another. I've recently discovered an application called [`pipx`](https://pipxproject.github.io/pipx/) which allows one to install and run Python applications in isolated environments. I think of it as a package similar to `apt`, but keeps the packages nice and isolated from one another.

Some files were not shown because too many files have changed in this diff Show more