Here are things I have finished looking at, along with resouces I used.
Security Headers, Report URIS
All sorted, ended up just bunging a web.config file that added the headers and adjusted it as necessary. You can see my web.config on GitHub.
Resources
-
https://securityheaders.com/
-
https://report-uri.com/
-
https://securityheaders.com/?q=www.peterlgerrard.co.uk&followRedirects=on
-
https://tomssl.com/2016/06/30/how-to-fix-the-http-response-headers-on-azure-web-apps-to-get-an-a-plus-on-securityheaders-io/
Creating react components
Components (in particular Component libraries) are a great way to build in accessibility. I can have my image require you specify an alt text rather than hoping you remember to add one. But its not all sunshine and rainbows, whilst I make it easier to re-use components and reduce repition of elements it is easy to break accessibility features through the liberal use of extraneous html tags only there for layout. But by being disciplined this can be avoided, and you should use React Fragments (https://reactjs.org/docs/accessibility.html#semantic-html), css grid (https://www.youtube.com/watch?v=7kVeCqQCxlk) and other techniques to keep the html semantically correct.
Resources
-
https://reactjs.org/docs/components-and-props.html
-
https://reactjs.org/docs/accessibility.html
-
https://www.youtube.com/watch?v=7kVeCqQCxlk
Registering services on Consul
Overall I could follow the examples and was able to connect to the service from another machine. But without a proper project was hard to really say I understand it. So I want a larger project, and that seems a good chance to also look at Kubernetes
Resources
- https://learn.hashicorp.com/consul/getting-started/services
JSON RPC for command lines
I was talked through how this works by Ian Johnson (https://ninjaferret.co.uk/) who had some experience with it. And its basically a communication process between two processes (you can use http/pipes/stdin etc.) that just sends json blobs that are interpreted on the other side. My personal prefernce for how to use this is the case where you want a long running service as a commandline and needed to send requests like its a web server. I would then do routing and call controllers rather than doing direct remote procedure calls.
Resources
-
https://github.com/Microsoft/vs-streamjsonrpc/
-
https://github.com/Microsoft/vscode-languageserver-node
Use jekyll for website
It’s now up and running, and I prefer having everything in Git than wordpress. Though I do miss the ease of WordPress themes. There is more I could do, e.g comments and a lot more styling, but I am happy with it for now.
Resources
- https://jekyllrb.com/
Kubernetes
This ended up being quite a long running project that touched on many things:
- Istio and service meshes
- Kind/Minikube, how to do local development. Even looked a bit at Azure Dev Spaces
- Micro frontends and how to create a single UI from multiple services
- Helm and how to update kubernetes
- Database Deployments As well as implementing the above I also thought about but never implemented:
- Dependency Inversion of services, and how each service should not rely on the existence of others
Resources
-
https://training.linuxfoundation.org/training/introduction-to-kubernetes/
-
https://kubernetes.io/docs/tutorials/kubernetes-basics/
-
https://istio.io/docs/setup/getting-started/
-
https://micro-frontends.org/
-
https://www.martinfowler.com/articles/micro-frontends.html
- https://helm.sh/
Jetbrains MPS
Investigate creating a DSL using MPS. Seemed interesting and managed to create a simple language. But it was awkward. If I ever need something that is a text editor that only works for the DSL (this means it can get fancy graphics) than it might be worth looking into more.
Resources
- https://www.jetbrains.com/mps/learn/