Skip to content

Instantly share code, notes, and snippets.

View citizen428's full-sized avatar

Michael Kohl citizen428

View GitHub Profile
@citizen428
citizen428 / lyrics.rb
Created March 18, 2009 20:56
Googles for the lyrics of the currently playing song in a new Safari window
require 'rbosa'
song = OSA.app('iTunes').current_track.name.gsub(/\(.*\)/, '').gsub(/\s/,'%20')
system("open -a Safari http://www.google.com/search?q=#{song}+lyrics")
@citizen428
citizen428 / safaritweet.rb
Created February 27, 2009 16:35
Tweet the currently active Safari tab
#!/usr/bin/ruby -W0
=begin
Quick and dirty way to tweet the currently active
Safari tab (title + shortened URL). Hashtags get
passed in as parameters (the hash sign gets added
by the script, so don't do it yourself)
Adapt to your needs!
=end
@citizen428
citizen428 / day1.p6
Last active December 7, 2020 15:48
AOC 2020 Raku
my @l = 'aoc-expenses.txt'.IO.lines;
# part 1
say [*] @l.combinations(2).first: *.sum == 2020;
# part 2
say [*] @l.combinations(3).first: *.sum == 2020;
### Keybase proof
I hereby claim:
* I am citizen428 on github.
* I am citizen428 (https://keybase.io/citizen428) on keybase.
* I have a public key whose fingerprint is E183 E826 AAA2 71D9 A25E B8E9 EF16 E5E6 87B2 A218
To claim this, I am signing this object:
@citizen428
citizen428 / with.rb
Created March 21, 2012 12:30
ActionScript-like "with" for Ruby, result of SO discussion
module Kernel
def with(obj, &block)
obj.instance_eval &block
obj
end
end
@citizen428
citizen428 / array_extension.swift
Last active January 26, 2016 17:22
Turning Swift into Ruby
import Foundation
extension Array {
func each(task: (Element) -> ()) {
for element in self {
task(element)
}
}
func eachWithIndex(start: Int? = nil, task: (Int, Element) -> ()) {
@citizen428
citizen428 / even_numbers_sequence.swift
Last active January 13, 2016 07:34
Swift sequences, generators etc
class EvenNumbers: CollectionType {
let startIndex : Int
let endIndex : Int
init(start: Int, end: Int) {
self.startIndex = start
self.endIndex = end
}
convenience init() {
@citizen428
citizen428 / userContent.css
Created January 16, 2014 20:42
Get rid of the "Inland" section of http://derstandard.at. Place contents of this file in `chrome/userContent.css` inside your Firefox profile directory.
@-moz-document url(http://derstandard.at/) {
div.section.inland { display: none }
}
@citizen428
citizen428 / forth.rb
Last active September 29, 2015 23:58
NotReallyFORTH
class Proc
def prim_call(stack)
forth_arity = self.arity - 1
if stack.size < forth_arity
puts "Buffer underrun"
return stack.clear
end
forth_arity > 0 ? self.call(stack, *stack.pop(forth_arity)) : call(stack)
end
end
@citizen428
citizen428 / ruby_github.rb
Created November 23, 2011 19:33
Create an Atom feed from the new Ruby repos page
require 'open-uri'
require 'nokogiri'
require 'builder'
html = open("https://github.com/languages/Ruby/created")
doc = Nokogiri::HTML.parse(html)
atom = Builder::XmlMarkup.new(:target => STDOUT, :indent => 2)
atom.instruct!
atom.feed "xmlns" => "http://www.w3.org/2005/Atom" do