Today I’m going to show how to effectively use conditional expressions in logback. This pattern has many use cases, for example: Use different log output on server vs when application is running locally (JSON on server, regular logs on localhost) Send ERRORs to your monitoring service - but only when application is deployed to production Use different prefixes depending when application is running Setup In order to use conditional expressions in logback you need 2 things.
This is a guide how to use Consul’s DNS service from your local macOS machine. Test resolution by hand Run this command to see if you can communicate with consul correctly and it resolves domain names for you: dig vault.service.consul @$CONSUL_IP -p 8600 As response you should get the A record that will look similar to this (look for ANSWER SECTION): ;; ANSWER SECTION: vault.service.consul. 0 IN A 123.
Background After more one year of (inactively) using Wordpress for my blog I have decided to give Hugo another go. I became first familiar with Hugo around 3 years ago when I was in the process of migrating off Octopress because I had so many issues with configuring ruby environment across different projects and I was always running into incompatibility issues. Back then I decided to fall back to Wordpress and was using it to host my blog for since then.
I was recently setting up remote backups for my QNAP NAS and came across a problem. QNAP NAS by default doesn’t seem to be able to create backups of the TMBackup directory it uses to store TimeMachine backups. You are unable to sync this directory with remote server or cloud storage/backup service. I was googling around and noticed that few people had this problem, for example here and I have found a solution.
The following post is a quick tutorial how to use Trezor hardware wallet with Bitcoin Testnet. Connect your Trezor like you normally would Click on “Wallet settings” Delete contents of this field and enter “https://testnet-bitcore1.trezor.io/" instead Click “Save & Reload” This is how the wallet page should look Notice that in the right left corner it says “Custom backend”, this is expected. I already have 0.20 testnet BTC there.
When working on the swagger documentation, several different tools can be used. The ‘official’ editor developed by the Swagger community is Swagger Editor, live preview: https://editor.swagger.io/, I have found it quite quick and easy to use, but for larger project it gets cumbersome. Additionally it doesn’t support ability to have multiple files that will reference each other. This post is a quick demonstration of the workflow I’m using when working on the large, multi-file swagger documentations.
There is a tendency for the Scala projects to prefer more explicit programming style. The biggest aspect of that is in my opinion the type system of the Scala language, programmers often start writing their functions by defining types of the arguments and type of the result, only to write the body of the function as last step. That’s also because we have the Scala compiler to help us.
This post is attempts cover some of best practices in using Flyway, the database migration tool, that I have learned or established after using it in few projects. It’s aimed at users already familiar with Flyway or any other database migration tools, so I’ll try to skip over the very basics. I’m focusing on Flyway here, but I think the best practices will apply to majority of other database migration tools.
JSON API specification is a tool that greatly helps and simplifies the process of designing RESTful JSON based APIs and very frequently serves as great anti-bikeshedding tool that limits unnecessary discussions in any team. In my opinion it doesn’t get it’s deserved attention and this post aims to provide good introduction to that topic. My goal is also not to repeat official documentation, but rather try to add something new to the topic.
GitFlow is a convention that says how you should structure your development process. It tells you when you should branch and merge your changes and helps you with hotfixes. By organizing branches effectively it unblocks developers allowing them to stay effective Key characteristics Work happens in parallel Each developer is free to work on his individual features, all is required to branch off develop branch and once the feature is done create a PR back to develop