Initial commit
BIN
content/posts/ freenas-win10-le/FreenasWin10LE7.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
content/posts/ freenas-win10-le/featured.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
60
content/posts/ freenas-win10-le/index.en.md
Normal 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§ion=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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||

|
||||
|
||||
I wouldn't recommend using a disk smaller than 17GB.
|
||||
BIN
content/posts/ freenas-win10-le/rufus.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
content/posts/check-digits/featured.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
36
content/posts/check-digits/index.en.md
Normal 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.
|
||||
BIN
content/posts/pinscott-wedding/featured.jpg
Normal file
|
After Width: | Height: | Size: 264 KiB |
26
content/posts/pinscott-wedding/index.en.md
Normal 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).
|
||||
BIN
content/posts/search-mapper/featured.jpg
Normal file
|
After Width: | Height: | Size: 174 KiB |
26
content/posts/search-mapper/index.en.md
Normal 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.
|
||||
BIN
content/posts/upf/featured.jpg
Normal file
|
After Width: | Height: | Size: 316 KiB |
26
content/posts/upf/index.en.md
Normal 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.
|
||||