1
Fork 0

Update some content

This commit is contained in:
Jake Howard 2017-08-19 16:15:51 +01:00
parent 68da729d65
commit e6822e845f
Signed by: jake
GPG key ID: 57AFB45680EDD477
8 changed files with 37 additions and 45 deletions

View file

@ -2,4 +2,4 @@
title: College title: College
--- ---
My college years were where I really started to develop my knowledge. I found my love for technology, security and robotics, all in 2 short years! Whilst most of what I did is private, there are still some parts I can share. My college years were where I really started to develop my knowledge. I found my love for technology, security and [robotics](/robotics/), all in 2 short years! Whilst most of what I did is private, there are still some parts I can share.

View file

@ -5,24 +5,26 @@ image: https://protonmail.com/images/main-banner.jpg
subtitle: Incredibly secure, easy to use, but are it's trade-offs worth it? subtitle: Incredibly secure, easy to use, but are it's trade-offs worth it?
--- ---
Throughout my life, I've had many different email providers, starting with hotmail almost 10 years ago. In more recent years, I've been focusing more on ways I can secure my emails. No, I may not have anything to hide, but that doesn't mean I don't want the information I to have to be accessible easily. Throughout my life, I've had many different email providers, starting with [hotmail](https://hotmail.com) almost 10 years ago. Recently, I've been focusing more on ways I can secure my emails. No, I may not have anything to hide, but [that doesn't matter](http://www.ted.com/talks/glenn_greenwald_why_privacy_matters)!
Originally I thought the best way to keep things secure, and out of the hands of any government body was to host it all myself. This came with a number of problems, mostly due to my lack of experience running anything like this, which lead to problems with my spam filter blocking legitimate emails, and any emails I did send ending up in their spam folder. It was after this I decided to look into hosted options, I'm happy to pay money to have someone else look after the email servers for me, even if that's at the cost of using another companies infrastructure. Originally I thought the best way to keep things secure, and out of the hands of any government body was to host it all myself. This came with a number of problems, mostly due to my lack of experience running anything like this, which lead to problems with my spam filter blocking legitimate emails, and any emails I did send ending up in their spam folder.
After searching around for a while, I stumbled on a company called _ProtonMail_, who claimed to be the most secure email host ever. Reading into the technologies they use, and watching one of their team members on a TED talk, I realised they weren't lying, their platform really was secure! After searching around for a while, I stumbled on _ProtonMail_, who claimed to be the most secure email host ever. One of their founders did a [TED talk](https://www.ted.com/talks/andy_yen_think_your_email_s_private_think_again), which sold me on the platform.
ProtonMail use a combination of open-source technologies, a closed-access platform, and swiss data centers to protect emails better than anyone else! The only way you can access your emails is by using their custom apps for Android, iOS, and web. Whilst this is annoying, it does mean the system isn't accessible through conventional protocols such as IMAP and POP3, which would considerably lower the security. The web portal itself is entirely open-source, and highly encourages any contributions, which should help make the platform even more secure, and help pump out features fast. ProtonMail use a combination of [open-source technologies](https://github.com/protonmail), a closed-access platform, and swiss data centers to protect emails better than anyone else! The only way you can access your emails is by using their custom apps for Android, iOS, and web. Whilst this is annoying, and means it isn't accessible through protocols such as IMAP and POP3, which would considerably lower the security.
Back in April, I signed up to ProtonMail's _Plus_ tier, and switched all my domains to use their servers as an email provider. The setup process itself was incredibly simple, it showed you every DNS record you needed to create, so all you had to do was copy-paste! It also showed you extra records you could add to aid the security of your emails, and protect against people sending out emails using your domain, including DKIM signatures, and SPF records. Back in April, I signed up to ProtonMail's _Plus_ tier, and switched all my domains to use their servers as an email provider. The setup process itself was incredibly simple, it walks you through every DNS record you needed to create, so all I had to do was copy-paste!
# Experience
### The Problems ProtonMail as a system is fantastic! So far it's had 0 downtime, never missed a single email, and none of my emails have been caught by other peoples spam filters.
When I first started using ProtonMail, before I committed, I knew there were a lot of features missing, but I thought I wouldn't need these. Now my email traffic has increased, I'm starting to find myself needing / wanting these features more and more. # The Problems
I knew ProtonMail was missing some features, but when I committed, I didn't think I'd need them. It's funny just how little you think you need a feature, until you don't have the option.
Now, 3 months on, I'm starting to get a little annoyed at ProtonMail, mainly at their lack of features. Yes the security is great, really great, but the fact I have to open a website and login every time I want to check my emails is a little tiring, and their mobile app, whilst fully functional and capable of the basics, has some bugs had glitches out sometimes. Now, 3 months on, I'm starting to get a little annoyed at ProtonMail, mainly at their lack of features. Yes the security is great, really great, but the fact I have to open a website and login every time I want to check my emails is a little tiring, and their mobile app, whilst fully functional and capable of the basics, has some bugs and glitches out sometimes.
Another problem is the lack of basic features. Whilst the client does have labels, and _'+ aliases'_, both of which are great features for those like me that like to keep things organised. The platform is missing out on some other key features, like: Another problem is the lack of basic features. Whilst the client does have labels, and _'+ aliases'_, both of which are great features for those with email OCD, The platform is missing out on some other key features, like:
- Custom message filter (currently in beta) - Custom message filter (currently in beta)
- IMAP / POP3 support, for external clients - IMAP / POP3 support, for external clients
@ -30,15 +32,6 @@ Another problem is the lack of basic features. Whilst the client does have label
- Quick folder filters (see only unread...) - Quick folder filters (see only unread...)
- Reading your emails offline (even through the mobile app) - Reading your emails offline (even through the mobile app)
These problems are taken for granted in most other mail platform, but because ProtonMail is built from the ground up, and is still a reasonably new product, it's missing a lot of these key features.
These problems are taken for granted in most other mail platform, but because ProtonMail is built from the ground up, and is still a reasonably new product, it's missing a lot of these key features. I have no doubt that eventually, they will have all these features and more, but in the mean time, because I want these features now, I think it's time to look into another platform. __Update__: All the above features have either been implemented, or are being actively worked on.
## _"Didn't you just waste your money?"_
Yes, this does mean I've paid for a service I'm technically no longer using. Which does annoy me, but considering it'll be used to help out the platform in the future, and I have every intention of switching back once it's got all the features I need, I can live with it.
## Next Steps
After looking around the internet for a suitable replacement, I settled on [FastMail](https://fastmail.com/?STKI=14665249) for a while, so I could get all the features I actually need, unfortunately sacrificing security.
##### __Update__
After being with [FastMail](https://fastmail.com/?STKI=14665249) now for almost a year, I'm moving back to ProtonMail. All issues listed above have now been fixed, and IMAP / SMTP support is currently in closed beta! I can finally have my security back!

View file

@ -3,16 +3,17 @@ title: React-Native intro dev meeting
date: 2016-03-16 date: 2016-03-16
subtitle: Introducing React-Native to the rest of the office subtitle: Introducing React-Native to the rest of the office
image: https://facebook.github.io/react-native/img/opengraph.png image: https://facebook.github.io/react-native/img/opengraph.png
repo: RealOrangeOne/react-native-intro-dev-meeting
--- ---
Recently, at DabApps, we've been migrating our mobile app workflow over to using [react-native](https://facebook.github.io/react-native/) rather than [Ionic](http://ionicframework.com/), mainly because of its near native performance. For the first few projects, there were only a couple of us that knew how to use React Native effectively, and work around the _qwerks_ it has. With the number of app projects growing, we needed to get more people up to speed with the react native workflow, as quickly as possible. Recently, at DabApps, we've been migrating our mobile app workflow over to using [react-native](https://facebook.github.io/react-native/) rather than [Ionic](http://ionicframework.com/), mainly because of its near native performance. For the first few projects, there were only a couple of us that knew how to use React Native effectively, and work around the _qwerks_ it has. With the number of app projects growing, we needed to get more people up to speed with the react native workflow, as quickly as possible.
The workflow that we needed to adopt to use react native is an odd one. To keep the quality of our code at the highest possible, whilst keeping the codebase as maintainable as possible. The workflow we use was created by 4 of us, through experiences with both work and personal projects using the framework, and it works rather well. The only problem was that only 4 of us actually knew it. The workflow that we needed to adopt to use react native is an odd one. To keep the quality of our code at the highest possible, whilst keeping the codebase as maintainable as possible. The workflow we use was created by 4 of us, through experiences with both work and personal projects using the framework, and it works rather well. The only problem was that only 4 of us actually knew it.
After a colleague wanted to know more about react-native, and with a couple of potential app projects on the horizon, I set about creating a talk for our (_usually_) bi-weekly dev meetings, With the aim of trying to get everyone up to speed all in 1 go. After a colleague wanted to know more about react-native, and with a couple of potential app projects on the horizon, I created a talk for our (_usually_) bi-weekly dev meetings, with the aim of trying to get everyone up to speed, all in 1 go.
The slides from my talk are available on my [GitHub](https://github.com/RealOrangeOne/react-native-intro-dev-meeting) page, and whilst they are primarily relevant to our workflow, I hope they will be able to help anyone else looking to get started with React Native. The slides from my talk are available on my [GitHub](https://github.com/RealOrangeOne/react-native-intro-dev-meeting) page, and whilst they are primarily relevant to our workflow, I hope they will be able to help anyone else looking to get started with React Native.
React Native is a tricky platform to get started on, but once you understand the _qwerks_, I believe it truly is the future of cross-platform mobile development! React Native is a tricky platform to get started on, but once you understand the _qwerks_, I believe it truly is the future of cross-platform mobile development!
[Click here to view the slides](http://realorangeone.github.io/react-native-intro-dev-meeting/) [Click here to view the slides](https://realorangeone.github.io/react-native-intro-dev-meeting/)

View file

@ -5,30 +5,30 @@ subtitle: The best time to upgrade the security on my projects!
image: http://www.nerdoholic.com/wp-content/uploads/2014/07/Cyber-Security-_sized.jpg image: http://www.nerdoholic.com/wp-content/uploads/2014/07/Cyber-Security-_sized.jpg
--- ---
As it's [Cyber Security Month](https://cybersecuritymonth.eu/), now's the perfect time to work on improving the security on my websites, projects, and servers. But, upgrading them for now isn't good enough for me, I want to add a way of scanning projects automatically during unit tests, to check for any new vulnerabilities. As it's [Cyber Security Month](https://cybersecuritymonth.eu/), now's the perfect time to work on improving the security on my websites, projects, and servers. But, upgrading them for now isn't good enough for me, I wanted to add a way of scanning projects automatically, to check for any new issues.
As most of my projects revolve around NodeJS and Python, these are the languages I'll be concentrating on. As most of my projects revolve around Javascript and Python, these are the languages I'll be concentrating on.
# Javascript
## Express Server ## Express Server
Express is one the most popular JS servers, and fortunately, they have a [security guide](http://expressjs.com/en/advanced/best-practice-security.html), that contains some of best ways to write secure servers. One of the best and simplest ways is to add the [helmet](https://www.npmjs.com/package/helmet) middleware, which contains various other middleware that drastically increase security. It's incredibly easy to add too, at just 3 lines of change, [like this](https://github.com/RealOrangeOne/host-container/commit/90adfd04aed2f2065d803623c297dc1a8ae71632)! Express is one the most popular JS servers, and fortunately, they have a [security guide](http://expressjs.com/en/advanced/best-practice-security.html), that contains some of best ways to write secure servers. One of the best and simplest ways is to add the [helmet](https://www.npmjs.com/package/helmet) middleware, a combination of other middleware that drastically increase security. It's incredibly easy to add too, at just [3 lines of code](https://github.com/RealOrangeOne/host-container/commit/90adfd04aed2f2065d803623c297dc1a8ae71632)!
You can use [securityheaders.io](http://securityheaders.io/) to check if any headers are being sent by your server that shouldn't be, As well as see how you can improve. You can use [securityheaders.io](http://securityheaders.io/) to check if any headers are being sent by your server that shouldn't be, As well as see how you can improve. [Here's](https://securityheaders.io/?q=theorangeone.net&followRedirects=on) the report for my website, powered by my static server [tstatic](https://github.com/RealOrangeOne/tstatic).
## NodeJS Dependencies ## NodeJS Dependencies
One of the easiest ways to keep secure is make sure your dependencies are secure. If your code is secure, but one of your dependencies isn't, it's a waste! Fortunately there's a tool to check this, [nsp](https://www.npmjs.com/package/nsp). It checks the [Node Security Project](https://nodesecurity.io/) for known vulnerabilities in your dependencies, and reports them. One of the easiest ways to keep your code secure is to make sure your dependencies are secure. Fortunately there's a tool to check this, [nsp](https://www.npmjs.com/package/nsp). It checks the [Node Security Project](https://nodesecurity.io/) for known vulnerabilities, and reports them to you, as well as how to mitigate them.
If you don't want to add `nsp` to your dependencies, they offer a [CI service for GitHub](https://nodesecurity.io/#pricing) which will run the checks for you on their own servers.
### Checking for updates ### Checking for updates
Keeping dependencies up to date is generally a good thing, and likely to help with the above. Upload you `package.json` to [npm.click](http://npm.click/), and it'll tell you what's out of date, and what the most recent version is! Keeping dependencies up to date is generally a good thing, and likely to help with the above. Upload you `package.json` to [npm.click](http://npm.click/), and it'll tell you what's out of date, and what the most recent version is!
## Python Code # Python
Any of the projects I work on that are more advance that a simple static server, are probably Django, written in Python. Checking the python code itself is nice and simple thanks to [bandit](https://github.com/openstack/bandit). It checks your code to make sure you're writing it properly, and are catching errors. ## Code
Any of the projects I work on that are more advance that a simple static server, are probably Django. Checking the python code itself is nice and simple thanks to [bandit](https://github.com/openstack/bandit). It checks your code to make sure you're writing it properly, catching errors, and using libraries in a secure way.
### Dependencies? ### Dependencies?
As with NodeJS, there's a tool that checks dependencies for security issues. But, unlike `nsp`, [safety](https://pypi.python.org/pypi/safety) not only checks your dependencies, but also their dependencies. As with NodeJS, there's a tool that checks dependencies for security issues. But, unlike `nsp`, [safety](https://pypi.python.org/pypi/safety) not only checks your dependencies, but also their dependencies, recursively.
It's also possible to check for updates using [pypiup](https://pypi.python.org/pypi/pypiup/). Working in much the same way as npm.click (and written by the same person), except it's a CLI rather than a website. It's also possible to check for updates using [pypiup](https://pypi.python.org/pypi/pypiup/). Working in much the same way as [npm.click](http://npm.click/) (and written by the same person), except it's a CLI rather than a website.
## Checking # Checking
To check your hard work has made a difference, [seositecheckup](http://seositecheckup.com/) contains a helpful section on security, as well as the previously mentioned [securityheaders.io](http://securityheaders.io/). I've enabled these tricks on my website, and you can see their results here for [securityheaders.io](https://securityheaders.io/?q=https%3A%2F%2Ftheorangeone.net&followRedirects=on) and [seositecheckup](http://seositecheckup.com/seo-audit/theorangeone.net). To check your hard work has made a difference, [seositecheckup](http://seositecheckup.com/) contains a helpful section on security, as well as the previously mentioned [securityheaders.io](http://securityheaders.io/). I've enabled these tricks on my website, and you can see their results here for [securityheaders.io](https://securityheaders.io/?q=https%3A%2F%2Ftheorangeone.net&followRedirects=on) and [seositecheckup](http://seositecheckup.com/seo-audit/theorangeone.net).

View file

@ -4,7 +4,7 @@ subtitle: Fixing "`libGL error failed to load driver i965`"
image: http://stuffpoint.com/steam/image/91140-steam-steam-wallpaper-circles.png image: http://stuffpoint.com/steam/image/91140-steam-steam-wallpaper-circles.png
--- ---
Running steam on linux is great, besides for the game support obviously. But running it on an iGPU has recently been causing me problems, mainly under Arch. Running steam on linux is great, besides the triple-a game support obviously. But running it on an iGPU has recently been causing me problems, mainly under Arch.
## Stacktrace: ## Stacktrace:
```text ```text

View file

@ -3,6 +3,4 @@ title: Setup
show_images: true show_images: true
--- ---
My setup is much more a project than something that is stable and constant. I am constantly upgrading, and changing things, whether it's on my main machine (which most of it is), my desk at work, or my laptop. As I use technology every day, for many, __many__ hours, I need it to work brilliantly, and not hold me back from anything I want to do. My setup is much more a project than something that is stable and constant. I am constantly upgrading, and changing things, whether it's on my main desktop (which most of it is), my desk at work, or my laptop.
As well as my main desk, there are a few other machines I use often, namely my laptop, work rig, and my phone. All of which follow the same criteria of not holding me back from whatever I to do.

View file

@ -4,9 +4,9 @@ image: /img/header.jpg
--- ---
My setup is everything, I use my computer at least once a day to browse the internet, work on projects, even update this website, so it's very important that everything works perfectly and the fastest it can. Obviously this machine is probably a little too powerful for someone that does almost primarily web development, but it means when I want to do things like video editing, 3D modelling, or anything else that would require a high end computer, I can, because my computer is equipped to handle it. My setup is my everything, I use my computer daily to browse the internet, work on projects, even update this website, so it's very important that everything works perfectly and the fastest it can. Obviously this machine is probably a _little_ too powerful for someone that does almost primarily web development, but hey, it's more fun that way!
Over the years, my setup has evolved from a single monitor i5 machine, to a triple monitor AMD FX-based monster of a computer. Over the years, my setup has evolved from a single monitor i5 computer, to a triple monitor AMD FX-based monster.
{{% pcpartpicker ZhMzr7 %}} {{% pcpartpicker ZhMzr7 %}}
@ -19,12 +19,12 @@ The next generation of my build isn't actually a thing yet, but I'm actively wor
##### [Next-Gen Parts List]() ##### [Next-Gen Parts List]()
#### OS #### OS
I use Arch Linux on all my machines now, But some days I miss my windows-only applications and games, so I plan to use a virtual machine running windows, with a graphics card hardware pass-through to it to run windows applications, and play windows-only games. I got the idea for doing this from this amazing [video](https://www.youtube.com/watch?v=16dbAUrtMX4). I use Arch Linux on all my machines now, But some days I miss the windows-only applications / games, so I plan to use a virtual machine running windows, with a graphics card hardware pass-through to it to run windows applications, and play windows-only games. I got the idea for doing this from [here](https://www.youtube.com/watch?v=16dbAUrtMX4) and [here](https://www.youtube.com/watch?v=aLeWg11ZBn0).
## Previous Generations ## Previous Generations
The first generation was the first custom build I'd ever done. When I first built it, I wasn't really into gaming, or any kind of heavy workflow for that matter, so it wasn't particularly powerful, although compared to my old [Dell Inspiron 1525](http://amzn.eu/44JQAYL), it was pretty damn incredible! The first generation was the first custom build I'd ever done. When I first built it, I wasn't really into gaming, or any kind of heavy workflow for that matter, so it wasn't particularly powerful, although compared to my old [Dell Inspiron 1525](http://amzn.eu/44JQAYL), it was pretty damn incredible!
You can find the full list of parts over on the PCPartPicker link below. Unfortunately due to the lack of catalog, or bad memory on my part, not all the parts are there, but there are as many as possible. Many of the parts from this build, including DVD drive, RAM and card reader, still live on in the current generation. The card reader and DVD were bought so I'd never need to buy another again!
{{% pcpartpicker zZ8pvV %}} {{% pcpartpicker zZ8pvV %}}

View file

@ -2,6 +2,6 @@
title: Public web server title: Public web server
--- ---
My public server one of the VMs on my dedicated server. This VM actually runs [Dokku](http://dokku.viewdocs.io/dokku/), allowing me to easily deploy applications no matter what they're written in! There are currently several containers running on this server, some public websites, some applications just for me to use. My public server one of the VMs on my dedicated server, running [Dokku](http://dokku.viewdocs.io/dokku/), allowing me to easily deploy applications no matter what they're written in! Many people have tried to convert me to other methods, such as just using nginx + systemd, or `docker-compose`, but dokku is just so simple and easy. Yes the domain routing has some issues, but it's still much nicer than doing it all manually!
The best feature of [Dokku](http://dokku.viewdocs.io/dokku/) is the easy integration with [LetsEncrypt](https://letsencrypt.org/), so I can easily add https connection to applications, even if they don't natively support it! The best feature of dokku is the easy integration with [LetsEncrypt](https://letsencrypt.org/), so I can easily add `HTTPS` connection to applications, even if they don't natively support it!