Giter Site home page Giter Site logo

jamiefdhurst / blog Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 51.7 MB

Simple blog in Flask that reads in and parses Markdown articles.

Home Page: https://jamiehurst.co.uk

Python 46.60% JavaScript 2.27% SCSS 23.93% HTML 27.20%
flask markdown python

blog's Introduction

Hi there ๐Ÿ‘‹ I'm Jamie

I'm a software and system engineer hailing from the north-east of England, in the UK. I currently work at Booking.com as a principal software engineer in Developer Experience, where I help our engineers build products better, quicker and safer. In the past I've worked at Tesco Bank and N-able, and ran my own system/software consultancy back in the day called HurstDEV.

You can find me here:

Blog LinkedIn Mastodon Email

Tools

Right now, I'm using these tools:

  • Java
  • Go
  • AWS
  • Kubernetes
  • Terraform
  • Node.js
  • React
GitHub Stats Languages
GitHub Stats Top Langs

blog's People

Contributors

dependabot[bot] avatar jamiefdhurst avatar

Watchers

 avatar  avatar

blog's Issues

Makefile

Ensure there is a Makefile in place for serving locally, building and testing

Mobile Improvements

Whole thing looks a bit crap on mobile, and some of the images are a little big on there too. Would be nice to use srcsets or something to make sure you have different sizes of images, or improve it some other way,

Release deploys automatically to hosting

A successful push to master needs to launch a separate deploy pipeline with the current version:

  • Deploy pipeline with parameterised version that pulls from GitHub
  • Triggered automatically and pushed in with latest version

New Post

Been far too long since the last one. Topic still to be determined but this needs to be written.

Automated releasing

Expand on the standard pipeline and add in automated releasing:

  • Builds Dockerfile and publishes to GitHub
  • SemVer works to increment based on commit messages
  • Release notes all working

Google Analytics

Ensure GA is integrated so we get statistics on when it's been hit.

Use Journal design

Copy the current Journal design and use that for the blog, including some basic templates within HTML that are used to build the initial pages:

  • Home page with latest articles and pagination (10 per page)
  • Section for links at the top
  • Thumbnails per article
  • Copyright at the bottom
  • Article view page with large image at the top

Package + Deploy

Package and deploy the site up into a space where it can be served in Amazon, migrating everything from an infrastructure perspective over at the same time - will S3 static assets be enough here?

  • Test with a basic manual setup
  • Split between test-1 and test-2
  • Set up a modification Lambda to respond to the request, reading from Parameter Store
  • Test the change to parameter store updates the website immediately
  • Rebuild this in TF (inc. creating a certificate for www, blog and .)
  • Validate it all on the blog subdomain
  • Switch the main domain over
  • Redirect www to non-www
  • Create a new deploy step to deploy with the latest version, or to choose a version

Tests

As many tests as you can muster for pulling articles and displaying things - including some end-to-end tests if you can

Building Go with Docker

Go and Docker together - how this works with Journal, multiple tests and integrating into a build pipeline

SEO Improvements

Ensure that the pages are being picked up properly, are ina good layout, etc. - run it through a report if that helps.

Generate Static Assets and Templates

Move away from Flask and make sure there is a Python script that generates the site itself from all components instead, packaging it into a dist folder ready to be installed/served elsewhere (including all assets).

GitHub Actions

Explain what you did, how you might start using it and why its simpler than Jenkins

Final Blog Basics

Add some more basic additions, including:

  • Get the GitHub release to show on the bottom
  • Enable 404 support with a suitable simple page

Motivation for side projects

Discuss how hard it is to find it, and tips for looking into things.

Some thoughts on headings/themes:

  • Motivation overall, and what this isn't
  • Side projects and their importance to our wellbeing
  • Spotting opportunities
  • Breaking things down
  • Enjoying yourself
  • One step at a time - reward, don't punish

PKM

Write an article explaining how you do PKM at work, what is going well and would could be improved.

Article support

Markdown support for an articles folder that reads in when the app is started and parses articles using these files:

  • Articles folder
  • Read articles when app loads
  • Support the title and image from the markdown

Set up basic build pipeline

Get the build working with a Jenkinsfile and testing/building automatically, including some code coverage and automated releasing from master/main:

  • Jenkinsfile triggers on branches, PRs and on master
  • Runs tests
  • Generates a coverage report

TF with Ansible

How to get TF and ansible working together as one pipeline including Makefile support and using Docker for a standardised toolset

Alerts and Checks

Ensure something is monitoring the website in CloudWatch or elsewhere to make sure the application is up and responding on the correct port.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.