View pdf-img.sh
#!/usr/bin/env bash | |
# Extract images from a PDF: https://askubuntu.com/questions/117143/command-line-tool-to-bulk-extract-images-from-a-pdf | |
sudo apt-get install poppler-utils | |
pdfimages -all input.pdf images/image | |
# Build PDF from images: https://stackoverflow.com/questions/8955425/how-can-i-convert-a-series-of-images-to-a-pdf-from-the-command-line-on-linux | |
sudo apt install img2pdf | |
img2pdf --output d.pdf images/image*.jpg |
View extract-favicon-images.php
<?php | |
// Extract favicon images from file path. | |
$faviconFile = __DIR__ . '/bbc.ico' | |
file_put_contents($faviconFile, file_get_contents('https://www.bbc.co.uk/favicon.ico')); | |
$imagick = new Imagick(); | |
$imagick->readImage($faviconFile); | |
$imagick->writeImages(__DIR__ . '/bbc-extracted.png', false); | |
// Extract favicon images from string. |
View Kernel.php
<?php | |
// app/Console/Kernel.php | |
namespace App\Console; | |
use Doctrine\ODM\MongoDB\Tools\Console\Command\ClearCache\MetadataCommand; | |
use Doctrine\ODM\MongoDB\Tools\Console\Command\{GenerateHydratorsCommand, GeneratePersistentCollectionsCommand, GenerateProxiesCommand, QueryCommand}; | |
use Doctrine\ODM\MongoDB\Tools\Console\Command\Schema\{CreateCommand, DropCommand, ShardCommand, UpdateCommand, ValidateCommand}; | |
use Doctrine\ODM\MongoDB\Tools\Console\Helper\DocumentManagerHelper; | |
use Illuminate\Console\Scheduling\Schedule; | |
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; |
View artisan_db_open.php
<?php | |
Artisan::command('db:open {connection?}', function ($connection = null) { | |
if (! file_exists('/Applications/TablePlus.app')) { | |
$this->warn('This command uses TablePlus, are you sure it\'s installed?'); | |
$this->line("Install here: https://tableplus.com/\n"); | |
} | |
$driver = $connection ?: config('database.default'); | |
$host = config("database.connections.{$driver}.host"); |
View composer-install.sh
#!/bin/bash | |
mkdir -p ~/.bin | |
curl -sS https://getcomposer.org/installer | php -- --install-dir=~/.bin --filename=composer |
View composer-latest.sh
#!/bin/bash | |
# Sometimes it's useful to know if Composer actually needs updating or if it was updated, for example for CI builds. | |
# 1) Check if you're running the latest version of Composer. | |
# - https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c | |
# - https://superuser.com/questions/363865/how-to-extract-a-version-number-using-sed | |
LATEST_COMPOSER_VERSION="$(curl --silent "https://api.github.com/repos/composer/composer/tags" | jq -r '.[0].name')" | |
CURRENT_COMPOSER_VERSION="$(composer --version | sed -ne 's/[^0-9]*\(\([0-9]\.\)\{0,4\}[0-9][^.]\).*/\1/p')" | |
if [ $LATEST_COMPOSER_VERSION != $CURRENT_COMPOSER_VERSION ]; then |
View main.go
// Create a video with the path: ./media/test.mkv | |
package main | |
import ( | |
"log" | |
"net/http" | |
"text/template" | |
) | |
func main() { |
View log-errors.js
// On error send to backend route which will log error into central logging service. | |
window.onerror = function(message, file, line) { | |
fetch( | |
'/log/js-error', | |
{ | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json' | |
}, | |
body: JSON.stringify({ |
View run-ansible.sh
# Replace [IP], [USER], [KEY] and [PLAYBOOK] | |
# Comma after IP address is required, otherwise the command won't work. | |
ansible-playbook -i [IP], --user=[USER] --private-key=[KEY] [PLAYBOOK] |
View main.go
// Usage: go run main.go https://www.theguardian.com/uk | |
// Based on Monolith: https://github.com/Y2Z/monolith | |
package main | |
import ( | |
"bytes" | |
"encoding/base64" | |
"fmt" | |
"io" | |
"io/ioutil" |