Initial commit

This commit is contained in:
Spencer Pincott
2024-07-15 22:20:13 -04:00
commit 97737ca1ae
16618 changed files with 934131 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -0,0 +1,60 @@
---
weight: 1
title: "Windows 10 LE on Freenas"
date: "2020-05-12T00:00:00Z"
lastmod: "2020-05-12T00:00:00Z"
draft: false
author: "Spencer"
description: "A guide for running Windows 10 LE in a Freenas VM"
images: []
resources:
- name: "featured-image"
src: "featured.png"
tags: ["Freenas"]
categories: [""]
lightgallery: true
toc:
auto: false
---
FreeNAS' virtual machine utilites are still very limited and while additions are being made most will find that getting a VM setup and running can be tricky when compared to say Virtualbox. This tutorial is just a quick overview of what I needed to do to get Windows 10 LE up an running on FreeNAS.
### Creating the install image
Windows 10 LE is a lightweight version of Windows 10. I downloaded my copy [here](https://archive.org/download/Windows.10.Lite.Edition.v6.x64.2018).
Next we need to be able to boot from this image in UEFI. I found that I was unable to do this with the downloaded image however after a lot of research I came accross this post [here](https://forum.imgburn.com/index.php?/topic/24193-problem-i-can-not-create-a-uefi-bootable-iso-image/). The process while clunky did produce an image that was UEFI bootable on FreeNAS.
All that is required to perform this conversion is [Rufus](https://rufus.ie/), [mkisofs](http://reboot.pro/index.php?app=core&module=attach&section=attach&attach_id=15214) and a thumb drive large enough for the Windows 10 image.
1. Using Rufus create a bootable usb drive using the Window 10 image.
![png](./rufus.png)
2. Using mkisofs create a UEFI bootable Windows 10 LE image. **inputdir** will be the drive letter corresponding to your usb drive and **outputiso** will be the save name and location of the created iso
```
set inputdir=D:\
set outputiso=C:\WINDOWS10LE.iso
set label="WINDOWS10_LE_UEFI"
set biosboot=Boot/etfsboot.com
set efiboot=efi/microsoft/boot/efisys.bin
mkisofs -iso-level 4 -l -R -UDF -D -volid %label% -b %biosboot% -no-emul-boot \
-boot-load-size 8 -hide boot.catalog -eltorito-alt-boot -eltorito-platform efi \
-no-emul-boot -b %efiboot% -o %outputiso% %inputdir%
```
Congratulations! You now have a Windows 10 LE image that is bootable in a FreeNAS virtual machine. Next lets get to installing it.
### Setting up the virtual machine
This part is pretty streamlined in newer versions of FreeNAS with everything being done from the GUI.
The details of my VM configuration are listed here.
![png](./FreenasWin10LE7.png)
I wouldn't recommend using a disk smaller than 17GB.

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,36 @@
---
weight: 1
title: "Using Check Digits for Better UX"
date: "2020-06-20T00:00:00Z"
lastmod: "2020-06-20T00:00:00Z"
draft: false
author: "Spencer"
description: "How using a check digit can make for a better user experience in key entry scenarios."
images: []
resources:
- name: "featured-image"
src: "featured.jpg"
tags: []
categories: ["wedding-project"]
lightgallery: true
toc:
auto: false
---
Recently I was tasked with creating a website for my sister wedding, historically hosted here (try 123456789 as an RSVP code). One of the features required was an RSVP system so guests could easily inform us if they were coming and if they were bringing a plus one. A code system seemed to be the simplest approach including each guest's unique code in the invitation which they could then use to RSVP preventing just anyone from RSVP'in to the event. The first problem to solve was knowing whether to prompt them to input plus one information since I wanted to keep the whole process down to a single network request for simplicity. Using a check digit ended up being the perfect solution for this while also including the benefit of reducing the chance of a guest accidentally inputting the wrong code and becoming frustrated when the request wouldn't go through.
## How do check digits work?
For those that don't know how check digits work the process is pretty simple. You simply include 1 extra digit to the end of any code or id that is generated using some formula. Usually a modulus is used to reduce the result to a single digit.
## How I used check digits
In my application I leveraged check digits in 2 ways.
The first is by not presenting the RSVP form until a possible RSVP code is inputted. This stops the user from entering the rest of their information until they get to code correct without of the need of an additional network request. A single mistake will result in the form not opening and them being required to recheck their input. Multiple mistakes could result in the form opening if they happen to be particularly unlucky however the server does validate if the code later and will reject the request if it is not correct.
The other way I used a check digit was to solve my original problem of when to present the plus one form. By using a secondary check digit I could actually run 2 checks on the code and if they both passed then the user would be presented with the plus one section.
The best part about this solution is that it doesn't require a timely request to a server and the additional infrastructure and security considerations that go along with that. There may be other security concerns however.
## Security concerns
Obviously there may be some security concerns with using a check digit the fact that it reduces the overall number of possible codes for a given code length. This is of course true because you can't take the check digit in account when calculating the total possible codes. So if before adding a check digit your code was 6 digits long and therefor had a million possibilities then after adding a check digits this would be the same. In my application I was using it for a small wedding on a non critical system and I used Re-Captcha as a second set of security so that possible codes couldn't be brute forced.
Overall using check digits ended up being a simple solution to my problem and the whole system ended up working flawlessly.

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

View File

@@ -0,0 +1,26 @@
---
weight: 1
title: "Pinscott Wedding"
date: "2019-12-03T00:00:00Z"
lastmod: "2019-12-03T00:00:00Z"
external_link: "https://spencassemble.com/wedding"
url_code: "https://gitlab.spencassemble.com/spencerpincott/pinscott-wedding"
draft: false
author: "Spencer"
description: "Website for my sister's wedding"
images: []
resources:
- name: "featured-image"
src: "featured.jpg"
tags: []
categories: ["wedding-project"]
lightgallery: true
toc:
auto: false
---
This project was just a little something I threw together for my sister's wedding. It includes an about page, some Q&A, links to a registry and a clever RSVP system. It was built using the hugo framework using the [Dimensions theme](https://html5up.net/dimension).

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

View File

@@ -0,0 +1,26 @@
---
weight: 1
title: "University Project Finder"
date: "2019-12-03T00:00:00Z"
lastmod: "2019-12-03T00:00:00Z"
external_link: "https://spencassemble.com/upf"
url_code: "https://gitlab.spencassemble.com/spencerpincott/upf"
draft: false
author: "Spencer"
description: "Queen's university final project"
images: []
resources:
- name: "featured-image"
src: "featured.jpg"
tags: ["PHP"]
categories: []
lightgallery: true
toc:
auto: false
---
This was my final undergrad project for university. The requirements were to create a website to aid biology students find their undergraduate project. It included the ability to search by keyword or phrase on all posted project, filter them and then message professors about them. It would leverage the Queen's SSO for student and professor sign up as well as sending out notificaton emails about new posting and message requests. The project never got a chance to be hosted however because of security reasons. This being my first big site there were obvious gaps in the security and the end of my degree had come and gone.

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 KiB

View File

@@ -0,0 +1,26 @@
---
weight: 1
title: "Search Mapper"
date: "2019-12-03T00:00:00Z"
lastmod: "2019-12-03T00:00:00Z"
external_link: "https://spencassemble.com/search-mapper"
url_code: "https://gitlab.spencassemble.com/spencerpincott/search-mapper"
draft: false
author: "Spencer"
description: "Maps housing searches"
images: []
resources:
- name: "featured-image"
src: "featured.jpg"
tags: ["node.js"]
categories: []
lightgallery: true
toc:
auto: false
---
This is a simple project a threw together out of necessity when I was looking at renting a new place and was later expanded upon when I started looking for a place to buy. It first allows Kijiji searches to be mapped out, a feature Kijiji themselves does not offer. It does this through page scrapping and is extremly inefficient. I later added support for using Remax and Realtor. While these sites do offer the ability to map search results I didn't enjoy how they were grouped and instead decided to expand this project leveraging their APIs and data.