Skip to content

Instantly share code, notes, and snippets.

Christian Genco christiangenco

View GitHub Profile
@christiangenco
christiangenco / timecards.rb
Last active Jul 9, 2016
process EMC timecards
View timecards.rb
require 'time'
class Float
def round_to(x)
(self * 10**x).round.to_f / 10**x
end
def ceil_to(x)
(self * 10**x).ceil.to_f / 10**x
end
View download_egghead_videos.md
View herokuspeed.rb
# ruby herokuspeed.rb > herokuspeed.html && open herokuspeed.html
require 'pry'
require 'descriptive_statistics'
require 'erb'
# require 'open3'
def time_exec(cmd)
start = Time.now
`#{cmd}`
View twilio.js
// gist_id: 5dd142a99f1c82cbfc94
// hook_url: https://hook.io/christiangenco/twilio
// url: http://sms.gen.co/?body="hi"
module['exports'] = function(hook) {
var client = require('twilio')(hook.env['TWILIO_SID'], hook.env['TWILIO_AUTH']);
client.sendMessage({
// to: hook.params.to || '+18177977334',
to: '+18177977334',
from: '+18176685965',
@christiangenco
christiangenco / signup.html
Last active Dec 29, 2017
Bootstrap ajax email signup form for sendy.co
View signup.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js" ></script>
<title>AJAX Signup</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
@christiangenco
christiangenco / trashold.rb
Created May 16, 2015
automatically delete old files in your Downloads folder
View trashold.rb
#!/usr/bin/ruby
# invoke on a regular schedule (like once a day) with:
# /path/to/trashold.rb ~/Downloads
# to automatically trash files older than 1.5 days.
require 'fileutils'
include FileUtils
THRESHOLD = 1.5 * (60 * 60 * 24)
@christiangenco
christiangenco / How to bruteforce a TrueCrypt volume
Last active Jul 15, 2019
Brute force a TrueCrypt volume password with a known list on Mac OS X (works similarly on linux/ubuntu)
View How to bruteforce a TrueCrypt volume
# First you need to know the name of your TrueCrypt disk. In this example, after running the `diskutil list` command,
# you can see that my 2TB TrueCrypt disk is mounted at /dev/disk2, and the encrypted partition is named "disk2s1"
# (see the IDENTIFIER column). That's the name I need to use in the ruby script.
$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *251.0 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage 250.1 GB disk0s2
View awk in 30 seconds.sh
# If you, like me, have always known about this `awk` thing
# when stealing one liners from Stack Overflow but always put
# off actually learning it, here's your 10 second lesson:
# Print lines in FILENAME that match pattern (the $0 is a
# variable that refers to the entire line, and can be omitted
# by default):
$ awk '/pattern/{print $0}' FILENAME
# ex: find all words that start with a capital A in the dictionary:
View I before E, except after C.md

Like in belIEve, fIErce, collIE, dIE, or frIEnd.

But flip "ie" if it's after C, like in deCEIve, CEIling, reCEIpt, or CEIlidh.

There are a few exceptions to this rule, though, like in speCIEs, sCIEnce, suffiCIEnt, or sEIze, wEIrd, vEIn, thEIr, forEIgn, or fEIsty.

In fact, in the default dictionary for Mac OS X 10.10, there are 2717 exceptions to this rule, and only 3901 words that follow it (full list below).

In other words: if you're trying to decide if a word should be spelled with "ie" or "ei," following this rule will only help you guess correctly 6 times out of 10.

@christiangenco
christiangenco / istation_password_changer.js
Created Nov 3, 2014
Changes the password for all of your students to the 4 numbers in their student ID
View istation_password_changer.js
// log in to https://istation.com, navigate to your classroom (https://secure.istation.com/Classroom/Index/CLASSROOM_ID),
// then cut and paste the following into your URL bar and hit enter.
javascript:function changePassword(a){var b=document.createElement("IFRAME");b.setAttribute("src",a),b.style.width="100%",b.style.height="100%",b.style.position="fixed",b.style.top=0,b.onload=function(){console.log("loaded");var a=$(this);if(a.contents().find("h3.lead").length)a.remove(),urls.length>0&&changePassword(urls.pop());else{var b=a.contents().find("#Username").val(),c=b.match(/\d+/)[0];a.contents().find("#Password").val(c),a.contents().find("form[action*='/Student/Edit/']").submit()}},document.body.appendChild(b)}window.urls=$(".entity-list .ctxt-menu-target a").map(function(a,b){return"https://secure.istation.com"+$(b).attr("href").replace("Index","Edit")}).toArray(),changePassword(urls.pop());
You can’t perform that action at this time.