(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
# **************** READ THIS FIRST ****************** | |
# | |
# This is not a script for you to run. I repeat, do not download and run this! | |
# | |
# This is only a guide to show the required steps for successful UEFI + GRUB2 installation | |
# Many of the choices are examples or assumptions; don't blindly type shit into your machine | |
# until/unless you at least read the comments around each command | |
# | |
# These steps assume you've booted in UEFI mode by preparing your USB stick per these instructions: | |
# https://wiki.archlinux.org/index.php/UEFI#Archiso |
#!/bin/sh | |
# check for where the latest version of IDEA is installed | |
IDEA=`ls -1d /Applications/IntelliJ\ * | tail -n1` | |
wd=`pwd` | |
# were we given a directory? | |
if [ -d "$1" ]; then | |
# echo "checking for things in the working dir given" | |
wd=`ls -1d "$1" | head -n1` |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
In the last few years, the number of programmers concerned about writing structured commit messages have dramatically grown. As exposed by Tim Pope in article readable commit messages are easy to follow when looking through the project history. Moreover the AngularJS contributing guides introduced conventions that can be used by automation tools to automatically generate useful documentation, or by developers during debugging process.
This document borrows some concepts, conventions and even text mainly from these two sources, extending them in order to provide a sensible guideline for writing commit messages.
#!groovy | |
import groovy.json.JsonOutput | |
import groovy.json.JsonSlurper | |
/* | |
Please make sure to add the following environment variables: | |
HEROKU_PREVIEW=<your heroku preview app> | |
HEROKU_PREPRODUCTION=<your heroku pre-production app> | |
HEROKU_PRODUCTION=<your heroku production app> |
//The global script scope | |
def ctx = context(scope: scriptScope()) | |
//What things can be on the script scope | |
contributor(ctx) { | |
method(name: 'pipeline', type: 'Object', params: [body: Closure]) | |
property(name: 'params', type: 'org.jenkinsci.plugins.workflow.cps.ParamsVariable') | |
property(name: 'env', type: 'org.jenkinsci.plugins.workflow.cps.EnvActionImpl.Binder') | |
property(name: 'currentBuild', type: 'org.jenkinsci.plugins.workflow.cps.RunWrapperBinder') | |
property(name: 'scm', type: 'org.jenkinsci.plugins.workflow.multibranch.SCMVar') |
Easily implement good SEO in your Next js app using next-seo
import Error from "next/error"; | |
import Script from "next/script"; | |
import * as gtag from "utils/ga"; | |
import { useEffect } from "react"; | |
import { AppProps } from "next/app"; | |
import { useRouter } from "next/router"; | |
const App = ({ Component, pageProps, err }: AppProps & { err: Error }) => { | |
const router = useRouter(); |