Syndicated to Medium

This commit is contained in:
Brandon Rozek 2023-01-25 13:20:29 -05:00
parent 17e7209a41
commit bfa4e52c0b
No known key found for this signature in database
GPG key ID: 26E457DA82C9F480
15 changed files with 95 additions and 75 deletions

View file

@ -1,10 +1,11 @@
---
title: "Accidentally Reinforcing Model Predictions in iNaturalist with Seek"
date: 2022-10-04T11:38:03-04:00
date: 2022-10-04 11:38:03-04:00
draft: false
tags: []
math: false
medium_enabled: true
medium_post_id: 6ecb481df869
tags: []
title: Accidentally Reinforcing Model Predictions in iNaturalist with Seek
---
I [previously wrote](/blog/identifying-plants-with-inaturalist/) about using Seek to identify organisms and then uploading them separately to iNaturalist. Though after some thought I believe that by only uploading photos that Seek has blessed as knowing, I may be reinforcing peculiar features of the dataset and hence the model.
@ -22,5 +23,3 @@ Does this mean that uploading photos classified by Seek is redundant? No! Becaus
For the image itself, one recommendation I have is the following. Take the image that Seek recommends for the classification, and then take one or two different angles of the same organism. Within iNaturalist, you can upload multiple photos for a single organism.
Now go and take some pictures :)

View file

@ -1,9 +1,11 @@
---
title: "Bmaptool: A simpler way to copy ISOs"
date: 2023-01-18T11:08:20-05:00
date: 2023-01-18 11:08:20-05:00
draft: false
tags: []
math: false
medium_enabled: true
medium_post_id: b4f33babc3ac
tags: []
title: 'Bmaptool: A simpler way to copy ISOs'
---
Bmaptool is a project created by Intel for creating and copying data using block maps. It's meant to be a simpler, faster, and more reliable tool than `dd`.

View file

@ -1,10 +1,13 @@
---
title: "Corecursion, Unfold and Infinite Sequences"
date: 2022-11-12T10:45:04-05:00
date: 2022-11-12 10:45:04-05:00
draft: false
tags: ["Scala", "Functional Programming"]
math: true
medium_enabled: true
medium_post_id: edd1ef8ee314
tags:
- Scala
- Functional Programming
title: Corecursion, Unfold and Infinite Sequences
---
Recursion takes a large problem and breaks it down until it reaches some base cases. One popular example, is the factorial function.

View file

@ -1,10 +1,13 @@
---
title: "Deep Recursion in Functional Programming"
date: 2022-11-11T14:45:17-05:00
date: 2022-11-11 14:45:17-05:00
draft: false
tags: ["Scala", "Functional Programming"]
math: false
medium_enabled: true
medium_post_id: 3515de0ab3a1
tags:
- Scala
- Functional Programming
title: Deep Recursion in Functional Programming
---
In functional programming, we often look at a list in terms of its head (first-element) and tail (rest-of-list). This allows us to define operations on a list recursively. For example, how do we sum a list of integers such as `[1, 2, 3, 4]`?
@ -116,4 +119,3 @@ deep_sum([[1], 2])
1 + 2
3
```

View file

@ -1,10 +1,13 @@
---
title: "Different Views of Fold and Their Combinations"
date: 2022-11-09T17:45:26-05:00
date: 2022-11-09 17:45:26-05:00
draft: false
tags: ["Scala", "Functional Programming"]
math: true
medium_enabled: true
medium_post_id: 13bdb8690a4c
tags:
- Scala
- Functional Programming
title: Different Views of Fold and Their Combinations
---
Fold is a functional programming pattern that operates over some sequence with a binary operation and a starting value. There are two variants:

View file

@ -1,10 +1,14 @@
---
title: "Fold Not Only Reduces"
date: 2022-11-09T15:15:10-05:00
date: 2022-11-09 15:15:10-05:00
draft: false
tags: ["Functional Programming", "Scala", "Haskell"]
math: false
medium_enabled: true
medium_post_id: b419f7d25313
tags:
- Functional Programming
- Scala
- Haskell
title: Fold Not Only Reduces
---
One misconception when first learning about fold is that it takes a list of elements of a certain type (`List[T]`) and "reduces" it to a single item of type `T`.
@ -61,4 +65,3 @@ l5 c n if n > 5 then c ++ [n] else c
foldl l5 [] [5, 7, 1, 8, 9, 3]
-- Returns [7,8,9]
```

View file

@ -1,10 +1,11 @@
---
title: "Identifying Plants With iNaturalist"
date: 2022-09-29T20:08:30-04:00
date: 2022-09-29 20:08:30-04:00
draft: false
tags: []
math: false
medium_enabled: true
medium_post_id: bc9fd04fff31
tags: []
title: Identifying Plants With iNaturalist
---
Seek by iNaturalist ([android](https://play.google.com/store/apps/details?id=org.inaturalist.seek)) ([apple](https://apps.apple.com/us/app/seek-by-inaturalist/id1353224144)) is a great app for identifying plants and animals. It uses a computer vision model to provide the hierarchical classifications. In fact they run yearly challenges with their dataset on [Kaggle](https://www.kaggle.com/c/inaturalist-2021/overview) as well as publicly host their dataset on AWS ([instructions](https://github.com/inaturalist/inaturalist-open-data)).

View file

@ -1,9 +1,12 @@
---
title: "Deploying a Lightweight Git Server with CGit using Docker-Compose"
date: 2023-01-20T21:14:03-05:00
date: 2023-01-20 21:14:03-05:00
draft: false
tags: ["Git"]
math: false
medium_enabled: true
medium_post_id: b86160f97df9
tags:
- Git
title: Deploying a Lightweight Git Server with CGit using Docker-Compose
---
In this post, I'll talk about how we can setup CGit within a docker-compose setup. We'll be using the [ClearLinux CGit](https://hub.docker.com/r/clearlinux/cgit) container.

View file

@ -1,10 +1,12 @@
---
title: "Memoization in Scala"
date: 2022-11-12T11:49:51-05:00
date: 2022-11-12 11:49:51-05:00
draft: false
tags: ["Scala"]
math: false
medium_enabled: true
medium_post_id: 2558d6abd9b8
tags:
- Scala
title: Memoization in Scala
---
In a [recent post](/blog/corecursion-unfold-infinite-sequences/), I talked about how corecursion is a great solution for removing redundant calculations. However if we're sticking to a recursive approach, one way we can reduce redundancies is to use memoization. The idea here is that we save prior computations in some data structure and refer to them if requested.
@ -35,6 +37,3 @@ Calling `fib(5)` returns `5`. However, we can also see the saved computations by
```
HashMap(0 -> 0, 1 -> 1, 2 -> 1, 3 -> 2, 4 -> 3, 5 -> 5)
```

View file

@ -1,10 +1,12 @@
---
title: "Speaker Notes in LaTex Beamer"
date: 2022-10-25T21:43:38-04:00
date: 2022-10-25 21:43:38-04:00
draft: false
tags: ["LaTex"]
math: false
medium_enabled: true
medium_post_id: 9643b7743f0c
tags:
- LaTex
title: Speaker Notes in LaTex Beamer
---
I often struggle with deciding how much content to put on my slides. Personally, I feel that my slides should be self-contained so that others can review them afterwards. This was especially true when I held [recitations](/ta/spring2022/csci2600/) as a TA.

View file

@ -1,10 +1,10 @@
---
title: "Optionality and Risk in Decision Making"
date: 2022-10-12T01:10:42-04:00
date: 2022-10-12 01:10:42-04:00
draft: false
tags: []
math: true
medium_enabled: true
medium_enabled: false
tags: []
title: Optionality and Risk in Decision Making
---
One technique for making decisions in uncertain situations is to look for *optionality*. This is one of the tips given in Russ Robert's book [Wild problems: a guide to the decisions that define us](https://www.worldcat.org/title/1321820629). Let's start off with the two definitions listed on [Wiktionary](https://en.wiktionary.org/wiki/optionality) at my time of writing.
@ -74,6 +74,3 @@ Acknowledgements: Thanks to Clare for helping me understand the definitions from
[^1]: There are other ways we can define obligation. In particular, we can take into account each individual effect as opposed to it collectively. Though we'll leave that for another time.
[^2]: I do not discuss minimizing negative consequences in this post as it has little connection to the concept of optionality.

View file

@ -1,10 +1,13 @@
---
title: "Getting Podman and Nginx TCPv6 and HTTP/2 Ready"
date: 2022-09-28T22:43:28-04:00
date: 2022-09-28 22:43:28-04:00
draft: false
tags: ["Networking", "Containers"]
math: false
medium_enabled: true
medium_post_id: ac419c65c080
tags:
- Networking
- Containers
title: Getting Podman and Nginx TCPv6 and HTTP/2 Ready
---
When checking the status of my website, I discovered that my website wasn't accessible over IPV6 and didn't have HTTP/2 enabled! This post will go over how I remedied that with my current setup of Nginx running within a podman container. Do note, TCPv6 will only work if you are provided a IPv6 address from your server provider.

View file

@ -1,10 +1,12 @@
---
title: "How to trim a video using FFMPEG"
date: 2022-09-28T18:46:32-04:00
date: 2022-09-28 18:46:32-04:00
draft: false
tags: ["Audio-Video"]
math: false
medium_enabled: true
medium_post_id: dd83a32af440
tags:
- Audio-Video
title: How to trim a video using FFMPEG
---
Recently I came across a video that I wanted to split up into multiple files. Given my love for `ffmpeg` the video/audio swiss army knife, I knew there had to be a solution for cutting a video on the terminal. Luckily on [AskUbuntu](https://askubuntu.com/a/56044), Luis Alvarado provides a command snippet. This post will go into slightly more detail on the flags used in the command

View file

@ -1,10 +1,10 @@
---
title: "Explaining the Shift in Values"
date: 2022-10-11T20:19:01-04:00
date: 2022-10-11 20:19:01-04:00
draft: false
tags: []
math: true
medium_enabled: true
medium_enabled: false
tags: []
title: Explaining the Shift in Values
---
In the book [Wild problems : a guide to the decisions that define us](https://www.worldcat.org/title/1321820629), Russ Roberts analyzes decision making on difficult life problems. These types of problems don't have straightforward or measurable goals, and there's no set procedure for success. Examples of these problems are choosing whether to marry, have kids, or switch jobs.

View file

@ -1,10 +1,11 @@
---
title: "Website Status Checking"
date: 2022-09-28T16:05:23-04:00
date: 2022-09-28 16:05:23-04:00
draft: false
tags: []
math: false
medium_enabled: true
medium_post_id: 4655285d688f
tags: []
title: Website Status Checking
---
How do I know when my website goes up or down? Recently, I started using a service from [updown.io](https://updown.io) which gives me a status page and notifies me when it goes down.