initial commit

This commit is contained in:
2023-03-01 14:28:50 +01:00
commit 3cac42269b
26 changed files with 139136 additions and 0 deletions

17
content/_index.md Normal file
View File

@@ -0,0 +1,17 @@
---
title: "Home"
date: 2018-02-10T18:56:13-05:00
sitemap:
priority : 1.0
outputs:
- html
- rss
- json
---
Experienced Engineer with a broad range of skills and a passion for electronics for robotic applications. Background in circuit and PCB design, component and system level testing and EMC compliance testing. Strong interest in embedded system design and firmware development both professionally and for personal projects.
Prior career experience in mechanical engineering, with 7+ years in the Mining and Oil & Gas Industry, including 5 years of construction and field engineering experience on large capital Liquefied Natural Gas (LNG) construction projects.
[Full Resume](files/resume.pdf)

59
content/blog/force-ssl.md Normal file
View File

@@ -0,0 +1,59 @@
---
title: 'Forcing Visits to use SSL'
date: Thu, 01 Jan 2009 14:09:10 +0000
draft: false
tags: [apache, apache, redirect, rewrite, ssl, web development]
---
Intro
-----
Doesn't matter whether it's a CakePHP app for a client, your own personal CMS, or any other web based application. **If your passing around passwords or other sensitive info you should really implement SSL.** SSL provides 2 main perks to your visitors.
* First it encrypts all communication that flies across the web. This prevents curious or devious billies from getting your secrets.
* Secondly it ensures to the user that your server is in fact who it claims, and not a nasty 'man in the middle" attack.
* Finally it gives your site that touch of class.... which of course a classy person like yourself relies on.
Once you implement SSL certificates on your server you'll want to **require secure connections** using Apache's rewrite module. Now I won't dwell on the creation and signing of certificates, its already well documented.  If your just starting out though,heres a few links I recommend;
* [Creating self-signed certificates](http://www.tc.umn.edu/~brams006/selfsign.html "Creating and Signing your own SSL Certificate") (free, but should only be used internally or for testing, users will; see an 'Untrusted" warning)
* [Requesting a CA Signed certificate](http://www.google.com/url?sa=t&source=web&ct=res&cd=10&url=http%3A%2F%2Fwww.lsu.edu%2Fpki%2FSSL_Certificate_Apache.pdf&ei=Z8FcSbDRGaCY8gTdk7GHDQ&usg=AFQjCNELddGd6jW1_Dv1X-CaocEVa4rV2A&sig2=FQMNaM_RlhngJW3MSYiQzw "Generating a Certificate Signing Request") (not free, but the final certificate is trusted and seamless for users)
The second link uses the schools internal CA, you will need to pay a public CA like Entrust or Verisign. **All of this information is aimed at 'nix or solaris servers running apache**. Why? cause a production windows server is laughable :-p
Now that you have a certificate, whats next?
--------------------------------------------
So there you are you have a shiny new Certificate and Server key, how do you force visitors to your apache driven site to use the SSL? You copied the certificates into the appropite locations right? And you have made the needed changes in httpd.conf right? So now when you view https://example.com you see a 'trusted' warning or your site right? If No to any of these than [this article](http://www.sitepoint.com/article/securing-apache-2-server-ssl/ "Securing Apcche Server with SSL") does a pretty good job of outlining those steps.
The SSL Works, How do I force connections to use it?
----------------------------------------------------
First you need to decide if you want to force every page on your site to use SSL, or only a particular sub-domain, or maybe just your admin directory.  Since the overhead is minimal there is no harm is forcing the entire domain to leverage SSL, but if it is a self-signed certificate for your personal use than you'll most certainly want to restrict its use to your own areas. This prevents users from seeing that nasty warning "This server is not trusted" You'll know if your using SSL because the url prefix changes from http to https (s for secure).
### Forcing entire domain to use SSL
**You want any visit, any where to use ssl**. This probably the simplest solution. Create or append to your htaccess file in the top directory of your server. Some people use a port check (80 is typically http, while 443 is https) but if you have alernate configs or the user just adds :8080 to the end of the url this method is useless. Instead check whether the https environmental variable is set, if not then redirect.
```
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 \[R,L\]
```
### Forcing sub-domains to use SSL
Maybe **you only want mysecretarea.example.com to use SSL**, that's easy enough. Its the same premise as above, but you move the htaccess file into the directory that corresponds to the subdomain. Also change the second line like below;
```
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://mysecretarea.%{SERVER_NAME}$1 \[R,L\]
```
### Forcing a directory to use SSL
This method cn get a little hairier if your using aliases or redirects on top of this one. You'll need to consider what order the commands are read. The basic principle is like so.  **You want all visits to example.com/admin to use ssl.** Create a htaccess file in the parent directory.  Again will check for the https variable, but this time we also check for the sub-directory to be in the path.
```
RewriteCond %{HTTPS} !=on
RewriteRule ^/admin/(.*)$ https://%{SERVER_NAME}/admin/$1 \[R,L\]
```

View File

@@ -0,0 +1,13 @@
---
title: "Projects"
sitemap:
priority : 0.9
---
<!--
This page represents the landing page for "projects" section. It is also shown under the homepage header for "projects". It should be therefore relatively short and sweet.
IN the dfault theme, "projects" is divided among "Creations" you authored and "contributions" made to others projects.
-->
<p>This section contains projects <a href="/projects/creations">created</a> and <a href="/projects/contributions">contributed</a> to by Eddie. Everything listed is an open source effort, the distinction is only my role as owner or contributor.</p>

View File

@@ -0,0 +1,22 @@
---
title: Open Source Contributions
date: 2020-01-07T16:49:15.046Z
link: NA
image: /img/marketplace-summary.webp
description: NA
tags:
- ''
weight: 20
sitemap:
priority: 0.5
weight: 0.5
---
<!--
This page represents the landing page for "contributions" section. It is also shown under the homepage header for "contributions". It should be therefore relatively short and sweet.
-->
<p>A collection of efforts to which I contributed, but did not create. Contributing back to Open Source projects is a strong passion of mine, and requires a considerate approach to learn norms, standards and approach for each community for a successful merge!</p>

View File

@@ -0,0 +1,14 @@
---
title: "Atlassian Deployment Triggers"
link: "https://bitbucket.org/atlassianlabs/bamboo-after-deployment-trigger/pull-requests/2/fixes-issue-2-eliminate/diff"
image: "/img/deploysonly.webp"
description: "Uses Async call to lucene index for super fast autocompletion to address performance issue loading config."
featured: true
tags: ["Java","jQuery","REST APIs","Bamboo","JSON"]
fact: "Reduce page load time from minutes to instantaneous."
weight: 100
sitemap:
priority : 0.8
---
Addressed pretty significant page load performance issue founde in larger deployments. Eliminates uses of intensive backend query, replacing it with an asynchronous API call against a lucene index. This change reduces page load from from 2+ minutes to nearly instant, with an incredibly responsive UI.

View File

@@ -0,0 +1,20 @@
---
title: Schema.org Structured Data documentation fixes
date: 2020-01-07T17:08:21.433Z
link: 'https://github.com/schemaorg/schemaorg/pull/1120'
image: /img/schema-org.webp
description: >-
Not all pull requests are glorious code, documentation is really important
too! This commit fixed some invalid JSON found in some example specs.
tags:
- JSON
fact: >-
Schema.org provides a common specification for Structured Data on the
internet.
weight: 999
sitemap:
priority: 0.8
weight: 0.1
---
While adding *Structured Data* to a client's website I found some example JSON that was invalid. Simple contribution to cleanup the user documentation providing syntactically valid JSON documents.

View File

@@ -0,0 +1,22 @@
---
title: Added Docker Build Status Badge to shields.io
date: 2020-01-07T17:09:26.037Z
featured: true
link: 'https://github.com/badges/shields/pull/856'
image: >-
https://img.shields.io/docker/build/eddiewebb/bitbucket-pipelines-marketplace.svg?style=plastic
description: Added a shield for Docker Hub builds indicating state of last build
tags:
- Docker
- Rest APIs
- JavaScript
- node.js
- JSON
fact: ''
weight: 500
sitemap:
priority: 0.8
weight: 0.4
---
Shields.io is a massive library of badges that can be inserted into project README's or websites displaying various statuses (code coverage, health, version, etc).  Support for docker was missing the current build health, and was a pretty trivial addition.

View File

@@ -0,0 +1,20 @@
---
title: Creations
date: 2020-01-07T15:00:28.528Z
link: Not applicable
image: /img/marketplace-summary.webp
description: Not applicable
weight: 10
sitemap:
priority: 0.5
weight: 0.8
---
<!--
This page represents the landing page for "creations" section. It is also shown under the homepage header for "creations". It should be therefore relatively short and sweet.
\-->
<p>A collection of projects authored by Eddie, and likely shared out with the community as an open source project.</p>

View File

@@ -0,0 +1,13 @@
{
"title": "BOSH release for Bamboo & Remote Agents",
"date": "2018-02-11T12:41:05-05:00",
"image": "/img/circleci-workflow.webp",
"link": "https://github.com/eddiewebb/bosh-bamboo",
"image": "/img/aafb-agent-ids-match-bamboo.webp",
"description": "BOSH (Bosh Outer SHell) \"<em>is an open source tool for release engineering, deployment, lifecycle management, and monitoring of distributed systems.</em>\" And it's amazingly powerful. This examples uses BOSH to provision an Alassian vendor app running on JDK along with the support Postgres database and agents to support it.  The releases manages the health of services and will automatically provision, start/stop processes across the various services.",
"tags": ["DevOps","BOSH", "Java", "Atlassian Ecosystem", "monit", "python", "xml/xslt", "bash/shell","REST APIs"],
"fact": "",
"featured":true
}
BOSH (Bosh Outer SHell) "...<em> is an open source tool for release engineering, deployment, lifecycle management, and monitoring of distributed systems.</em>" And it's amazingly powerful. This examples uses BOSH to provision an Alassian vendor app running on JDK along with the support Postgres database and agents to support it.  The releases manages the health of services and will automatically provision, start/stop processes across the various services.

View File

@@ -0,0 +1,18 @@
{
"title":"Docker image for Bitbucket CI/CD Pipelines  \"shipit\"",
"link":"https://hub.docker.com/r/eddiewebb/bitbucket-pipelines-marketplace/",
"image":"/img/docker-pipelines.webp",
"description":"Provides required dependencies and additional utilities to simplify and codify the process of building, testing and delivering Atlassian plugins all the way to the live marketplace.<ul> <li>Executes integration/AUT level tests against all stated compatible versions for the product</li><li>Uploads generated artifact to Atlassian marketplace</li><li>Provides corresponding metadata indicating version, release notes, and compatibility</li></ul>",
"tags":[
"Docker",
"Maven",
"Java",
"Python",
"REST APIs",
"Bash/Shell"
],
"fact":" 700+ \"pulls\" from docker hub"
}
Provides required dependencies and additional utilities to simplify and codify the process of building, testing and delivering Atlassian plugins all the way to the live marketplace.<ul> <li>Executes integration/AUT level tests against all stated compatible versions for the product</li><li>Uploads generated artifact to Atlassian marketplace</li><li>Provides corresponding metadata indicating version, release notes, and compatibility</li></ul>

View File

@@ -0,0 +1,11 @@
{
"title":"Atlassian Marketplace Plugins",
"link":"https://marketplace.atlassian.com/vendors/1017039",
"image":"/img/marketplace-summary.webp",
"description":"Multiple plugins used by thousands of teams that provide enhanced functionality of Atlassians core products (primarily JIRA and Bamboo) to enrich CI/CD capabilities, DevOps automation, or productivity. Functionality spans user interface, web services and persistence.",
"tags":["Java", "Spring", "REST APIs", "Javascript", "Atlassian Developer Ecosystem", "Bamboo", "JIRA", "Bitbucket", "Confluence","DevOps"],
"fact":"1,500+ Active installations across large and small companies."
}
Multiple plugins used by thousands of teams that provide enhanced functionality of Atlassians core products (primarily JIRA and Bamboo) to enrich CI/CD capabilities, DevOps automation, or productivity. Functionality spans user interface, web services and persistence.

View File

@@ -0,0 +1,14 @@
---
title: "Design, implementation and evaluation of an embedded electronic system for the control of a trans-radial prosthesis"
date: 2021-11-15
pubtype: "Masters Thesis"
featured: true
description: "Focusing on electronics design and embedded software to control a trans-radial prosthesis. Brushless motor control and joint position feedback, absolute orientation, tactile and bio potential signals. Realtime communication with EtherCat."
#tags: ["BLDC","EtherCAT","Embedded","Prosthesis"]
image: "/img/thesisCover.jpg"
link: "https://trepo.tuni.fi/handle/10024/135599?show=full"
fact: "Interesting little tidbit shown below image on summary and detail page"
weight: 400
sitemap:
priority : 0.8
---

View File

@@ -0,0 +1,17 @@
---
title: Publications
date: 2020-01-07T16:47:30.077Z
link: NA
image: /img/organicdevops.webp
description: NA
weight: 10
sitemap:
priority: 0.6
weight: 0.5
---
<!--
This page represents the landing page for "publications" section. It is also shown under the homepage header for "publications". It should be therefore relatively short and sweet.
\-->

51
content/search.md Normal file
View File

@@ -0,0 +1,51 @@
---
title: "Search Results"
sitemap:
priority : 0.1
layout: "search"
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
```
[outputs]
home = ["HTML", "JSON"]
```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
```
### Edit fuse.js options to Search
`static/js/search.js`
```
keys: [
"title",
"contents",
"tags",
"categories"
]
```