On Ubuntu/Debian: sudo apt install screen
On Red Hat: sudo yum install screen
import pprint | |
import extruct | |
import requests | |
from w3lib.html import get_base_url | |
# https://www.crosswaterlondon.com/product/mpro-towel-holder?variant=54381#image-2 | |
pp = pprint.PrettyPrinter(indent=0) | |
r = requests.get('https://www.signaturehardware.com/ruscello-widespread-bathroom-faucet/951334.html') | |
base_url = get_base_url(r.text, r.url) |
# mostly Copilot generated, have not tested/verified | |
defmodule ImagePlacement do | |
def place_images(images, canvas_width, canvas_height) do | |
# Sort images by size in descending order | |
sorted_images = Enum.sort_by(images, &image_area(&1), &>=/2) | |
# Initialize the canvas with the first image | |
canvas = %{x: 0, y: 0, width: image_width(hd(sorted_images)), height: image_height(hd(sorted_images))} |
trigger: | |
- main | |
pool: | |
vmImage: 'ubuntu-latest' | |
variables: | |
imageName: 'your-app-image' | |
testScript: 'YOUR-TEST-SCRIPT.SH' | |
I hereby claim:
To claim this, I am signing this object:
<template lang='slm'> | |
select.form-control multiple="multiple" | |
option v-for="option in selectOptions" :value='option.value' {{ option.label }} | |
</template> | |
<script> | |
export default { | |
name: 'bootstrap-multiselect', | |
props: { | |
selectOptions: { |
# Why: | |
# 1) Chrome 63 (Dec 8) breaks .dev domains by forcing HTTPS: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/ | |
# 2) Pow is at EOL, superceded by puma-dev (see http://pow.cx/manual, 6 Version History, 0.6.0, Dec 8 2017) | |
# Uninstall pow | |
curl get.pow.cx/uninstall.sh | sh | |
# If you use powder, you can remove it as well | |
gem uninstall powder |
module ChronicDateProperty #:nodoc: | |
extend ActiveSupport::Concern | |
module ClassMethods | |
# Define a Reform property which coerces its input via the Chronic parser. | |
def chronic_date_property(*args) | |
options = args.extract_options! | |
field = args.first | |
property(field, options) |
#!/bin/bash | |
if [ $(pgrep -f sidekiq | wc -l) -gt 1 ]; then | |
kill $(pgrep -f sidekiq | grep -v $(pgrep -of sidekiq) | sort -n | uniq | awk '{printf $1" "}'); | |
fi |
def get_fields | |
# We have to use #send because AFAIK, PDF::Reader does not expose the root object anywhere | |
acroform = @reader.send(:root)[:AcroForm] | |
# PDF::Reader encapsulates each piece of PDF data in #objects. The field_refs are really references to | |
# these objects. We iterate through and de-reference the actual object, creating a AcroField based on its | |
# data | |
field_refs = @reader.objects[acroform][:Fields] unless acroform.nil? | |
fields = field_refs.map do |field_ref| | |
AcroField.new(@reader.objects[field_ref]) |