
Joseph Earl
Lead Consultant @thoughtworks
If you’re already using Logback and Logback Logstash Encoder with Spring Boot to log to something like ELK or Splunk and want to add HTTP access logs to your application then logback-access is simple to integrate and the output format and destination can be easily configured through XML just like for standard Logback.
To begin add the logback-access dependency to your project:
implementation 'ch.qos.logback:logback-access' Then configure the embedded server (Tomcat in this case) to integrate with logback-access:
To semicolon or not to semicolon?
The comments on this StackOverflow answer should help you figure out whether they are currently in fashion.
jack:
Nonsense! You DO need to use semicolons!
tacone:
It’s 2014 now, so we need semicolons again.
Mark Knol:
It’s 2015 now, so we don’t need semicolons again.
Saeid Yazdani:
Will we need to use semicolons in 2016?
Foo L:
Today while working on a new version of Preliminaries using ES6 I was trying to get both Rollup working to bundle my code and Jest to run tests when importing my code.
Rollup recommends* something like the following .babelrc:
{ "ignore": [ "node_modules/**" ], "presets": [ ["es2015", { "modules": false }], "stage-0" ], "plugins": [ "external-helpers" ] } which worked great for bundling my code, so I wrote a simple test:
In a previous post I covered my efforts to improve the PageSpeed ranking of my site.
Today I achieved a perfect 100/100 PageSpeed score on Desktop.
To do this I had to optimise my CSS delivery. What does that mean? Well, previously, all of my styles were loaded using a link in the head:
<html> <head> <link rel="stylesheet" href="/styles.css"> </head> <body> <p>Content</p> </body> </html> But this is bad and blocks rendering until all of styles.
Preliminaries is a small Node.js library for parsing front matter in Markdown documents.
You can easily parse YAML, JSON and TOML front matter, with custom delimiters if needed:
var preliminaries = require('preliminaries')(true); require('preliminaries-parser-yaml')(true); require('preliminaries-parser-toml')(true); // `preliminaries.parse` returns an object `{data: {}, content: ''}` with the front // matter data and content preliminaries.parse('{\n"name":"Joseph"\n}\nContent'); preliminaries.parse('---json\n{\nname: Joseph\n}\n---\nContent'); preliminaries.parse('---\nname: Joseph\n---\nContent'); preliminaries.parse('---yaml\nname: Joseph\n---\nContent'); preliminaries.parse('+++\nname = "Joseph"\n+++\nContent'); preliminaries.parse('~~~\nname: Joseph\n~~~\nContent', {delims: '~~~', lang: 'yaml'}); You can also stringify a JavaScript object and a content string back out:
I recently had the need to create a CSS overlay for the search function on this site. My requirements were that the overlay should be scrollable, whilst the overlay was visible the body should not be scrollable, and any HTML for the overlay should be after the main content.
I first tried adding overflow: hidden to the body when the overlay was shown using JavaScript but this has the effect of scrolling the body and main content immediately to the top, giving a jarring user experience when the overlay is dismissed.
Slack’s free tier is an unlimited trial period, not a permanent solution for your business.
It might look tempting to use this forever – you can have unlimited users, but the limitation is in the fine print in the bullet points below:
up to 10k of your team’s most recent messages
5GB total file storage for the team
Would you use an email service that only kept your whole companies' most recent 10,000 messages?
Recently a good colleague at ThoughtWorks and the tech lead on my current project, Sophie Holden, has been taking a group of us through the ThoughtWorks tech lead training materials.
This has involved a number of group whiteboard drawing sessions at the end of the day.
I’ve found that ending the work day with light-hearted, slightly physical activity such as a group whiteboard sketching activity really helps me leave work in a good mood.
One great thing I’ve found I can do with my YubiKey is use it for SSH certificate based authentication. Your private key is stored on your YubiKey rather than your computer and requires your PIN to access or alter.
This means you can take your SSH logins wherever you go, to any computer that supports a YubiKey! Instead of your computer being authorized, it is your YubiKey.
The easiest way to get started on macOS is to use YubiKey PIV Manager (or brew cask install yubikey-piv-manager).
In this post I’ll show you how you can add easily add search to your Hugo static site using Hugo’s Scratch feature and the lunr.js JavaScript library on the client.
First we’ll need to create a JSON index of all our documents as part of our Hugo site generation process. Add a new document with hugo new search-index.md and set the type to search-index and the url the index.json in the frontmatter: