Skip to content

Instantly share code, notes, and snippets.

:octocat:
_

Paul Miller paulmillr

:octocat:
_
Block or report user

Report or block paulmillr

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View slow.js
const {readdir, opendir, stat} = require('fs').promises;
const sysPath = require('path');
async function* open(parentPath) {
if (opendir) { // switch this
yield* await opendir(parentPath);
} else {
yield* await readdir(parentPath, {withFileTypes: true});
}
}
View chokidar-vs.js
const chokidar = require('chokidar');
const root = 'directory';
function runChokidar() {
const start = new Date;
console.log('start', start);
let index = 0;
chokidar.watch(root)
.on('add', () => ++index)
.on('ready', () => {
View keybase.md

Keybase proof

I hereby claim:

  • I am paulmillr on github.
  • I am paulmillr (https://keybase.io/paulmillr) on keybase.
  • I have a public key whose fingerprint is E0B4 E9E1 A4B9 C96F 889E 6C6F 6128 0CD9 A383 C2E5

To claim this, I am signing this object:

@paulmillr
paulmillr / iOS, The Future Of macOS, Freedom, Security And Privacy In An Increasingly Hostile Global Environment.md
Created Apr 7, 2018
iOS, The Future Of macOS, Freedom, Security And Privacy In An Increasingly Hostile Global Environment
View iOS, The Future Of macOS, Freedom, Security And Privacy In An Increasingly Hostile Global Environment.md

iOS, The Future Of macOS, Freedom, Security And Privacy In An Increasingly Hostile Global Environment

This post by a security researcher who prefers to remain anonymous will elucidate concerns about certain problematic decisions Apple has made and caution about future decisions made in the name of “security” while potentially hiding questionable motives. The content of this article represents only the opinion of the researcher. The researcher apologises if any content is seen to be inaccurate, and is open to comments or questions through PGP-encrypted mail.



TL;DR

@paulmillr
paulmillr / dropkick.sh
Created Dec 22, 2015
Turn off spy cams in airbnb rentals
View dropkick.sh
#!/bin/bash
#
# DROPKICK.SH
#
# Detect and Disconnect the DropCam and Withings devices some people are using to
# spy on guests in their home, especially in AirBnB rentals. Based on Glasshole.sh:
#
# http://julianoliver.com/output/log_2014-05-30_20-52
#
# This script was named by Adam Harvey (http://ahprojects.com), who also
@paulmillr
paulmillr / aws-s3-v2.rb
Created Jun 19, 2015
AWS S3 ruby v2 API usage
View aws-s3-v2.rb
require 'aws-sdk'
require 'aws-sdk-resources'
config = {region: 'us-west-1', bucket: 'test', key: 'key', secret: 'secret'}
Aws.config.update({region: config[:region], credentials: Aws::Credentials.new(config[:key], config[:secret])})
bucket = Aws::S3::Resource.new.bucket(bucket: config[:bucket])
# ============
# Create file.
obj = bucket.object(path)
View __init__.py
import reclaimer
import uploader
# Example app code is mp7sh5jd6
@paulmillr
paulmillr / grunt.js
Last active Apr 26, 2016
Gulp / grunt
View grunt.js
module.exports = function ( grunt ) {
/**
* Load required Grunt tasks. These are installed based on the versions listed
* in `package.json` when you do `npm install` in this directory.
*/
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-concat');
@paulmillr
paulmillr / iPhone-6-plus.css
Last active Dec 1, 2017
iPhone 6 Plus & iPad Air 2 media query (Retina HD displays). Also works for similar Android devices.
View iPhone-6-plus.css
/* iPhone 6 Plus & iPad Air 2 media query (Retina HD displays).
Also works for similar Android devices. */
/* Use x2 images by default. */
.logo {
background-image: url(http://hellyeah.is/images/text-logo-ns@x2.png);
height: 300px;
width: 100%;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
@paulmillr
paulmillr / filter-domains.js
Created Nov 13, 2013
Filter all available domains
View filter-domains.js
[].slice.call(document.querySelectorAll('#das_result .das_stream_item'))
.filter(function(el) {
return el.classList.contains('taken') || el.classList.contains('unavailable') || el.classList.contains('syntax') || el.dataset.domainName.split('.').length > 2;
})
.forEach(function(el) {
el.setAttribute('hidden', 'hidden');
});
You can’t perform that action at this time.