Skip to content

Instantly share code, notes, and snippets.

@ayman
ayman / init-terminal-notifier.el
Last active April 21, 2024 20:04 — forked from justinhj/gist:eb2d354d06631076566f
Add native MacOS notifications to Emacs...simply.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Terminal notifier
;; requires 'sudo port install terminal-notifier'
;; stolen from erc-notifier
;;
;; (terminal-notifier-notify "Emacs notification"
;; "Something amusing happened")
(defvar terminal-notifier-command
(executable-find "terminal-notifier")
@ayman
ayman / copilot-helper.el
Last active March 30, 2023 20:51
Load and config Github Copilot for Emacs.
;;; copilot-helper --- Just helping run copilot safely.
;;; Commentary:
;; Reworking of https://github.com/zerolfx/copilot.el and
;; https://robert.kra.hn/posts/2023-02-22-copilot-emacs-setup/
;;; Code:
(use-package copilot
:straight (:host github :repo "zerolfx/copilot.el" :files ("dist" "*.el"))
@ayman
ayman / ziplen.R
Last active February 3, 2022 20:55
Compute the distances between all US Zipcodes in R.
## Compute the distances between all US Zipcodes.
## To save time we just compute the diagonal and use multiple cores.
require(parallel)
library(geosphere)
library(MASS)
library(zipcode)
data(zipcode)
## Uncode for testing
## zipcode <- zipcode[1:10,]
zips.num = dim(zipcode)[1]
@ayman
ayman / adafruit_clue_ble_scan.py
Last active January 25, 2022 07:22
Scan BLE packets from an Adafruit CLUE for a certain MAC address, get the advertisement data, repeat.
from adafruit_ble import BLERadio
# from adafruit_ble.advertising import Advertisement
# from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
found = set()
scan_responses = set()
running = True
count = 0
@ayman
ayman / lumeCube.py
Last active June 8, 2021 08:39
Control a LumeCubeAir from Python via BLE + bluepy.
from bluepy import btle
import struct
class LumeCube:
def __init__(self, mac):
self.mac = mac
self.SERVICE_UUID = "33826A4C-486A-11E4-A545-022807469BF0"
self.LIGHT_CHARACTERISTIC = "33826A4D-486A-11E4-A545-022807469BF0"
self.LIGHT_ON = struct.pack('>L', 0xFCA16400)
@ayman
ayman / mac-dfu-meloaudio.sh
Last active April 8, 2021 04:57
How to push firmware to MeloAudio MidiCommander using a Mac.
# Install brew from https://brew.sh/ then install dfu-util
brew install dfu-util
# OR install dfu-util from http://dfu-util.sourceforge.net/
#
# then plug in and power on your device holding the D and Down buttons
# now find your device
dfu-util -l
# Verify that alt=0 is name="@Internal Flash..."
dfu-util -a 0 -D Midicommander_line6HX3x_V5.dfu
# Wait for it to finish...you should be good...
@ayman
ayman / covid19-state-ratio.R
Last active March 31, 2020 23:24
A simple R ggplot of percent positive of covid cases by USA State.
library("ggplot2")
dataUrl <- "https://covidtracking.com/api/states/daily.csv"
c <- read.csv(dataUrl)
c$date <- as.Date(as.character(c$date), format = "%Y%m%d")
c_tmp <- c[order(c[c$date == max(c$date), ]$total, decreasing = TRUE), ]
states <- c_tmp[c_tmp$date == max(c_tmp$date), ]$state[1:10]
c[is.na(c$pending), ]$pending <- 0
c$ratio <- (c$positive / (c$total - c$pending))
c <- c[c$state %in% states, ]
g <- ggplot(c, aes(x = date, y = ratio))
@ayman
ayman / TrackRegexRetweeter.py
Created March 8, 2010 23:40
This is a simple Twitter bot which listens to a track stream for a comma delimited list of terms/tags (PRIMARY_TRACK_LIST). From this stream, it will retweet any tweet that matches the secondary regex (SECONDARY_REGEX_FILTER).
#!/usr/bin/env python
# This is a simple Twitter bot which listens to a track stream for a comma delimited
# list of terms/tags (PRIMARY_TRACK_LIST). From this stream, it will retweet any
# tweet that matches the secondary regex (SECONDARY_REGEX_FILTER).
#
# This example is a #Haiti & #Chile Twitter stream listener for TweakTheTweet syntax.
#
# Requires Python 2.6
# Requires Tweepy http://github.com/joshthecoder/tweepy
#
@ayman
ayman / readRowCount.R
Created May 21, 2015 18:12
By setting the number of rows a file is before it's read, R speeds up tremendously and doesn't leak memory. Here's a quick trick to get a file's row count within R.
f.name <- "file.csv"
f.command <- paste("wc -l",
f.name,
"| cut -d \" \" -f 2")
f.rows <- as.numeric(system(f.command, intern = TRUE))
f <- read.csv(f.name,
nrows=f.rows,
col.names=c("user", "phone", "total", "percent"),
colClasses=c("numeric","numeric","numeric","numeric"),
header=FALSE)
@ayman
ayman / keras-mnist.R
Last active June 5, 2018 16:31
An example of training MNIST in R using Keras.
## From: https://tensorflow.rstudio.com/keras/
library(keras)
mnist <- dataset_mnist()
x_train <- mnist$train$x
y_train <- mnist$train$y
x_test <- mnist$test$x
y_test <- mnist$test$y
## reshape