Skip to content

Instantly share code, notes, and snippets.

View ukd1's full-sized avatar

Russell Smith ukd1

View GitHub Profile

Unifi U6 Extender - Firmware / Boot/Adoption loop fix

To add to this for anyone in the future:

  • When you reset it (long hold, lots of flashing) there will be a wifi network that's the MAC address (on the back, middle row next to the QR code).
  • Make sure you turn off auto-adopt in your console, ugh.
  • the wifi password is the last 6 of the MAC (in caps) and the 6 character code at the bottom of the text on the back of the device.
  • you can do it from a Mac by forcing it to accept older protocols: ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedKeyTypes=+ssh-rsa [email protected]
  • I got the firmware from here - https://community.ui.com/questions/U6-Extender-wont-update-from-6-0-15/295850ba-47b9-446e-9667-20663e4236b6
esphome:
name: pool-sensor
esp32:
board: heltec_wifi_lora_32_V2
framework:
type: arduino
logger:
class MyModel
def my_column
if self.has_attribute?(:my_column_JSON)
self.my_column_JSON
else
self.attributes[:my_column]
end
end
def my_column=(value)
% dig rainforest.dev
; <<>> DiG 9.10.6 <<>> rainforest.dev
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39596
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1452
function faucet(session) {
// send $0.10 USD at current exchange rates
let amt = 0.1
let count = (session.get('count') || 0) + amt
session.set('count', count)
Fiat.fetch().then((toEth) => {
session.sendEth(toEth.USD(amt))
sendMessage(session, `Sent ${amt} 💰🤑💰`)
class A
def version
self.class::VERSION || 1
end
end
class B < A
VERISON = 2
end
docker run --rm -it -v "$(pwd)":/app -w /app crystallang/crystal:latest sh -c 'crystal build --release src/hello.cr'
@ukd1
ukd1 / pca.js
Last active March 28, 2016 17:56
use webtask.io + twilio to find things on PCA fast.
var request = require('request');
return function (context, callback) {
var required_params = ['TWILIO_AUTH_TOKEN', 'TWILIO_ACCOUNT_SID', 'TWILIO_NUMBER', 'SEARCH', 'TO'];
for (var p in required_params)
if (!context.data[required_params[p]])
return callback(new Error('The `' + required_params[p] + '` parameter must be provided.'));
function message(to, message) {
request({
sample_data = [0, 1, 100, 99, 0, 10, 90, 30, 55, 33, 55, 75, 51, 49, 50, 51, 49, 51]
sample_output = [[1,99], [0,100], [10,90], [51,49], [50,50]]
var results = [];
for (var i = 0; i < sample_data.length; i++) {
for (var j = i + 1; j < sample_data.length; j++) {
if (sample_data[i] + sample_data[j] == 100) {
var combo = sample_data[i]
if (results.indexOf(sample_data[i]) == -1 && results.indexOf(100 - sample_data[i]) == -1) {
results.push(combo);
@ukd1
ukd1 / http_proxy.go
Created November 5, 2014 17:49
A simple http proxy in go
package main
import (
"log"
"net/http"
"net/http/httputil"
)
func main() {
director := func(req *http.Request) {