Skip to content

Instantly share code, notes, and snippets.

View akhoury's full-sized avatar
🏠
Working from home

Aziz Khoury akhoury

🏠
Working from home
View GitHub Profile
@akhoury
akhoury / handlebars-helper-x.js
Last active February 17, 2024 13:25
Handlebars random JavaScript expression execution, with an IF helper with whatever logical operands and whatever arguments, and few more goodies.
// for detailed comments and demo, see my SO answer here http://stackoverflow.com/questions/8853396/logical-operator-in-a-handlebars-js-if-conditional/21915381#21915381
/* a helper to execute an IF statement with any expression
USAGE:
-- Yes you NEED to properly escape the string literals, or just alternate single and double quotes
-- to access any global function or property you should use window.functionName() instead of just functionName()
-- this example assumes you passed this context to your handlebars template( {name: 'Sam', age: '20' } ), notice age is a string, just for so I can demo parseInt later
<p>
{{#xif " name == 'Sam' && age === '12' " }}
BOOM
(function () {
// By joseph khoury
let context = new AudioContext();
let sound = context.createOscillator();
sound.type = "sine";
sound.connect(context.destination);
sound.frequency.value = 200;
sound.start();
let ison = true;
/*
// from bootstrap/scss/_variables.scss
$grid-breakpoints: (
xs: 0,
sm: 576px,
md: 768px,
lg: 992px,
xl: 1200px
) !default;
@akhoury
akhoury / check-promise.js
Last active April 10, 2019 14:31
How to test if an object is promise in the real world
// you must install the 3 modules for this to work
// npm install bluebird q when
// so the gist here, no pun intended, is that when you're testing for a Promise, it's totally fine
// to either check if the object is instanceof Promise or even if Promise.resolve(object) == object
// UNLESS there is a chance that this promise is returned from a third party promise library, or even
// if you have plugins or some other modules using your module,
// ... so, if you don't know which "Promise" constructor could be getting,
@akhoury
akhoury / Atmo-fw-update-nrf.md
Created December 2, 2018 09:27
Atmotube firmware update tutorial (nRF Toolbox)

Atmotube firmware update tutorial (nRF Toolbox)

  1. Download firmware (70.03.0A) to the internal smartphone memory or SD card;
  2. Install nRF Toolbox for BLE from Google Play;
  3. Open nRF Toolbox → go to DFU section;
  4. Select firmware file → chose "application" type with "no init packet";
  5. Select device for firmware upload (named "DfuMode");
  6. Tap "Start".
@akhoury
akhoury / NodeBB_src_middleware_cls2.js
Created June 24, 2016 01:26
use async-hook instead of continuation-local-storage
var asyncHook = require('async-hook');
var path = require('path');
var utils = require('../../public/src/utils');
function CLS() {
var mem = {};
var self = this;
this.storage = null;
@akhoury
akhoury / migrate.sh
Created December 29, 2017 19:42 — forked from pepijnblom/migrate.sh
Upgrade MAMP to Mysql 5.7
#!/bin/sh
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-macos10.12-x86_64.tar.gz
tar xfvz mysql-5.7*
echo "stopping mamp"
sudo /Applications/MAMP/bin/stop.sh
sudo killall httpd mysqld
echo "creating backup"
// tested with NodeBB v1.4.6+
var path = require('path');
var url = require('url');
var nconf = require('nconf');
var async = require('async');
var pkg = require('./package.json');
nconf.file({ file: path.join(__dirname, './config.json') });
// tested with NodeBB v1.4.6+
var path = require('path');
var nconf = require('nconf');
var async = require('async');
var pkg = require('./package.json');
nconf.file({ file: path.join(__dirname, './config.json') });
var path = require('path');
var nconf = require('nconf');
var async = require('async');
var url = require('url');
var _convert = require('./node_modules/nodebb-plugin-import/node_modules/bbcode-to-markdown');
nconf.file({ file: path.join(__dirname, './config.json') });
var dbType = nconf.get('database');