Skip to content

Instantly share code, notes, and snippets.

View cpq's full-sized avatar
🎭
Купатися чи не купатись?

Sergey Lyubka cpq

🎭
Купатися чи не купатись?
View GitHub Profile
@cpq
cpq / google-sheet.js
Created May 3, 2018 01:41
ble beacon logger
function doPost(e) {
try {
var obj = JSON.parse(e.postData.contents);
var doc = SpreadsheetApp.getActiveSpreadsheet();
var name = obj.id || 'DATA';
var sheet = doc.getSheetByName(name);
if (!sheet) {
doc.insertSheet(name);
sheet = doc.getSheetByName(name);
range = sheet.getRange("H1:Z1");
@cpq
cpq / preact-minimal.html
Created August 27, 2018 08:23
Minimal preact app without babel and JSX
<!DOCTYPE html>
<html>
<head>
<title>Preact without Babel or JSX</title>
</head>
<body>
<script src="https://unpkg.com/preact"></script>
<script>
@cpq
cpq / preact-es3.html
Created September 30, 2018 18:06
Preact ES3
<!DOCTYPE html>
<html>
<head>
<title>Preact with JS3</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.min.css">
<script src="https://unpkg.com/history/umd/history.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://unpkg.com/preact"></script>
<script src="https://unpkg.com/preact-router"></script>
@cpq
cpq / minimal-preact-es3.html
Created October 13, 2018 14:51
Minimal es3 preact
<!DOCTYPE html>
<html class="h-100">
<head>
<title>Preact with JS3</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.min.css">
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://unpkg.com/preact"></script>
</head>
@cpq
cpq / main.py
Created October 17, 2018 09:38
google iot <-> firebase cloud function
import base64
import json
import firebase_admin
from firebase_admin import db
firebase_admin.initialize_app(
credential=None,
options={'databaseURL' : 'https://YOUR_FIREBASE_DB_NAME.firebaseio.com'},
)
@cpq
cpq / mgos_conf_shadow.c
Created October 19, 2018 17:26
config via shadow
#include "mgos.h"
#include "mgos_rpc.h"
#include "mgos_shadow.h"
static void report_state_to_the_shadow(void) {
const struct mgos_conf_entry *schema =
mgos_conf_find_schema_entry("KEY", mgos_config_schema());
struct mbuf mb;
mbuf_init(&mb, 0);
mgos_conf_emit_cb(&mgos_sys_config, NULL, schema, false, &mb, NULL, NULL);
@cpq
cpq / rest.js
Created December 6, 2018 09:01
Minimal REST nodejs server
var http = require('http');
var port = 8080;
var server = http.createServer(function(request, response) {
console.log('Requested URI:', request.url);
response.writeHead(200, {'Content-Type': 'application/json'});
response.write(JSON.stringify({a: 1, b: 2}), 'utf-8');
response.end();
});
server.listen(parseInt(port, 10));
@cpq
cpq / bt.sh
Last active May 4, 2019 12:25
Symbolizing Arduino backtrace dump for ESP32 (MacOS version)
#!/bin/sh
# Usage:
# sh bt.sh sketch_Apr25 400d4e36:0x3ffb1e50 0x400d1bce:0x3ffb1e90 0x400d1d96:0x3ffb1ee0 0x400d5a8d:0x3ffb1f30
ARDUINO_DIR=$HOME/Documents/Arduino
A2LINE=$ARDUINO_DIR/hardware/espressif/esp32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-addr2line
ELF=$(find /var/folders/ -name $INO.elf 2>/dev/null)
INO=$1
shift
var https = require('https');
// Same as:
// curl -H 'Content-Type: application-json' -d PARAMS
// https://mdash.net/api/v2/devices/DEVICE_ID/rpc/METHOD?access_token=TOKEN
var mdashRequest = function(apiToken, deviceID, method, params, func) {
return new Promise(function(resolve, reject) {
var received = '';
var strParams = JSON.stringify(params || {});
var url = 'https://mdash.net/api/v2/devices/' + deviceID + '/rpc/' +
#include <mDash.h>
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEScan.h>
#include <BLEAdvertisedDevice.h>
#define WIFI_NAME "XX"
#define WIFI_PASS "YY"
#define DEVICE_ID "d1"