Skip to content

Instantly share code, notes, and snippets.

View yoannmoinet's full-sized avatar
🐶
DX and Tooling

Yoann Moinet yoannmoinet

🐶
DX and Tooling
View GitHub Profile
@yoannmoinet
yoannmoinet / icons.sh
Last active April 25, 2024 00:30
Mac OS X icon.icns
#!/bin/sh
#Usage: ./icons.sh ../assets/media/icon_color_1024.png ../assets/icons
name=$(basename "$1" ".png")
dir=$(cd "$(dirname "$2")"; pwd)/$(basename "$2")
mkdir $dir/$name.iconset
sips -Z 16 --out $dir/$name.iconset/icon_16x16.png $1
sips -Z 32 --out $dir/$name.iconset/icon_16x16@2x.png $1
sips -Z 32 --out $dir/$name.iconset/icon_32x32.png $1
// ==UserScript==
// @name Userscript Name
// @namespace http://example.com/
// @description Userscript Description
// @match http://example.com/* (or @include * to include all pages)
// @version 1.0
// ==/UserScript==
// Emulate Greasemonkey's unsafeWindow in Chrome
window.unsafeWindow = window.unsafeWindow || (function() {
@yoannmoinet
yoannmoinet / change-dns.sh
Last active March 24, 2023 13:58
Bash functions to change DNS from terminal.
function setGoogleDNS() {
CHANNEL=`route get google.com | grep interface | sed -n -e 's/^.*interface: //p'`
NETWORK=`networksetup -listnetworkserviceorder | grep $CHANNEL | sed -n -e 's/^.*Port: //p' | sed -n -e 's/,.*//p'`
echo "Setting Google's DNS on channel '$CHANNEL' for network '$NETWORK'."
sudo networksetup -setdnsservers $NETWORK 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
}
function setCloudflareDNS() {
CHANNEL=`route get google.com | grep interface | sed -n -e 's/^.*interface: //p'`
NETWORK=`networksetup -listnetworkserviceorder | grep $CHANNEL | sed -n -e 's/^.*Port: //p' | sed -n -e 's/,.*//p'`
@yoannmoinet
yoannmoinet / scrollEvt.js
Created January 10, 2013 22:34
Cross browser scroll event handler, with a consistant delta.
var mousewheelevt=(/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel";
if (document.attachEvent)
document.attachEvent("on"+mousewheelevt, function(e){scroller(e)});
else if (document.addEventListener)
document.addEventListener(mousewheelevt, function(e){scroller(e)},false);
function scroller(evt)
{
//Guess the delta.
@yoannmoinet
yoannmoinet / .block
Created July 29, 2020 09:13 — forked from steveharoz/.block
d3-force testing ground
license: gpl-3.0
height: 1030
scrolling: yes
@yoannmoinet
yoannmoinet / streamDecodedVideo.js
Created November 29, 2017 08:41
Stream video back in correct format.
import ffmpeg form 'fluent-ffmpeg';
const filePath = '/Users/yoann/Desktop/video.avi';
const route = (req, res) => {
res.writeHead(200, getHeaders({'Content-Type': 'video/mp4'}));
ffmpeg(filePath)
.format('mp4')
.addOptions([
'-movflags frag_keyframe+faststart'
])
@yoannmoinet
yoannmoinet / CI Session Table Creation
Created February 22, 2013 19:51
Code Igniter Session Table creation.
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
@yoannmoinet
yoannmoinet / browserWindow.js
Last active December 19, 2017 13:06
Show devtools for browser windows.
const newWindow = new BrowserWindow({
webPreferences: {
devTools: !IS_PRODUCTION
}
});
@yoannmoinet
yoannmoinet / videoSupportHandling.js
Created November 29, 2017 08:26
Video missing support error handling.
const video = document.querySelector('video');
video.addEventListener('error', () => {
switch (video.error.code) {
case video.error.MEDIA_ERR_DECODE:
case video.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
// Video format not supported.
break;
case video.error.MEDIA_ERR_ABORTED:
case video.error.MEDIA_ERR_NETWORK:
default:
@yoannmoinet
yoannmoinet / signApp.js
Created November 28, 2017 17:27
Sign Mac OS X app for development
import { sign } from 'electron-osx-sign';
import { PARENT_PLIST_PATH, CHILD_PLIST_PATH, DEV_PROVISIONING_PROFILE } from './config';
const signApp = (appPath, pkgPath) => {
const resourcesPath = path.join(appPath, './Contents/Resources/');
const signOpts = {
app: appPath,
platform: 'mas',
binaries: [ /* Here goes the list of binaries you have in your app, like the widevine plugin. */ ],
entitlements: PARENT_PLIST_PATH,