- Documentation: http://www.developers.meethue.com/documentation/getting-started
- Useful Links: https://delicious.com/mathiasschopmans/hue
- visit https://discovery.meethue.com/
- write down bridgeid (id)
- write down internalipaddress
/** | |
* Creates a debounced version of an asynchronous function that delays the execution | |
* of the function until after `wait` milliseconds have elapsed since the last time it was invoked. | |
* | |
* @template Args - The argument types of the function being debounced. | |
* @template R - The return type of the function being debounced. | |
* | |
* @param {(...args: Args) => Promise<R>} func - The asynchronous function to debounce. | |
* @param {number} [wait=150] - The number of milliseconds to delay; defaults to 150ms. | |
* @returns {(...args: Args) => Promise<R>} - A debounced version of the function that returns a promise. |
#!/bin/bash | |
# Get the commit message | |
commit_msg=$(cat $1) | |
# Define a regex pattern to match the conventional commit message format | |
pattern='^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\([a-z]+\))?!?: .+$' | |
# Test if the commit message matches the pattern | |
if ! [[ $commit_msg =~ $pattern ]]; then |
export function pluckRecursive(input: any, prop: string, collect = []) { | |
collect = collect || []; | |
if (!input) return collect; | |
if (Array.isArray(input)) { | |
input.forEach(function (value) { | |
pluckRecursive(value, prop, collect); | |
}) | |
} else if (typeof input === 'object') { |
name: CI | |
on: | |
push: | |
branches-ignore: | |
- 'dependabot/**' | |
tags: | |
- 'v*' | |
pull_request: | |
branches-ignore: |
<?php | |
class ObjectSize { | |
protected static $sizes = [ | |
'xxxxl', | |
'xxxl', | |
'xxl', | |
'xl', | |
'l', |
Capybara.register_driver :webkit_ignore_ssl do |app| | |
Capybara::Webkit::Driver.new(app).tap {|d| d.browser.ignore_ssl_errors } | |
end | |
Capybara::Screenshot.register_driver(:webkit_ignore_ssl) do |driver, path| | |
driver.save_screenshot(path) | |
end | |
Capybara.javascript_driver = :webkit_ignore_ssl | |
Capybara.default_driver = :webkit_ignore_ssl |
#include <Adafruit_NeoPixel.h> | |
#include <avr/power.h> | |
#define PIN 0 | |
Adafruit_NeoPixel strip = Adafruit_NeoPixel(24, PIN); | |
// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across | |
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input | |
// and minimize distance between Arduino and first pixel. Avoid connecting | |
// on a live circuit...if you must, connect GND first. |
mixin input(label, options) | |
- var defaults = {"tag":"input", "type":"text", "labelClass":"form-label", "name":sanitize(label), "placeholder":null, "value":null, "id":sanitize(label).substring(0, 10) + "-" + randomString(), "tabindex":null} | |
- var input = extend({}, defaults, {"label":label, "required":attributes.required}, options, attributes) | |
- var baseClass = input.type == "hidden" ? null : "form-control" | |
- delete attributes.required | |
if input.placeholder === true | |
- input.placeholder = label | |
if input.type == "hidden" |
$default-sprite-dimensions: true | |
$default-sprite-base-class: ".is" | |
@import "images/sprites/default/*.png" | |
@include all-default-sprites($prefix:"is") | |
.is | |
background-image: inline-image($default-sprites) | |
+inline-block | |
+hide-text |