Skip to content

Instantly share code, notes, and snippets.

View denisdefreyne's full-sized avatar

Denis Defreyne denisdefreyne

View GitHub Profile
def print_graphviz(items, compiler)
dt = compiler.dependency_tracker
oc = compiler.outdatedness_checker
puts "digraph {"
self.sorted_reps_with_prev(items) do |rep, _|
reason = oc.outdatedness_reason_for(rep)
prevs = dt.objects_causing_outdatedness_of(rep.item)
outdated_prevs = prevs.select { |e| oc.outdated?(e) }
@denisdefreyne
denisdefreyne / hash-with-default-value-comparison.md
Created July 1, 2014 08:58
Comparing hashes with default values

Imagine two hashes that are clearly different:

hash_a[:donkey]
# => 5
hash_b[:donkey]
# => 10

Yet:

@denisdefreyne
denisdefreyne / json_load_vs_parse.rb
Created August 25, 2014 15:02
JSON.load vs JSON.parse
require 'json'
# => true
JSON.load('')
# => nil
JSON.parse('')
# JSON::ParserError: A JSON text must at least contain two octets!
@denisdefreyne
denisdefreyne / keybase.md
Created October 8, 2014 19:57
Keybase claim

Keybase proof

I hereby claim:

  • I am ddfreyne on github.
  • I am ddfreyne (https://keybase.io/ddfreyne) on keybase.
  • I have a public key whose fingerprint is 02D7 06C2 7383 C9AE 5A6B 8942 A6EB 2130 80E7 63A7

To claim this, I am signing this object:

[BIP34] 15:43:14 INFO: syncthing v0.10.1+15-g964d17d (go1.3.2 linux-amd64 default) ddfreyne@bhakti 1970-01-01 00:00:00 UTC
[BIP34] 15:43:14 INFO: My ID: OBSCURED-MY-ID
[BIP34] 15:43:14 INFO: Starting web GUI on http://127.0.0.1:8080/
[BIP34] 15:43:17 INFO: No UPnP gateway detected
[BIP34] 15:43:17 INFO: Starting local discovery announcements
[BIP34] 15:43:17 INFO: Starting global discovery announcements
[BIP34] 15:43:17 OK: Ready to synchronize default (read-write)
[BIP34] 15:43:17 INFO: Device OBSCURED-MY-ID is "bhakti" at [dynamic]
[BIP34] 15:43:17 INFO: Device OBSCURED-OTHER-ID is "tahontaenrat" at [dynamic]
...
@denisdefreyne
denisdefreyne / clojure-woes.md
Last active August 29, 2015 14:08
Clojure woes

Clojure Woes

In Clojure, a map that lacks a certain key will return nil as a result:

(:foo {:name "Jacques"})
; => nil

This makes sense and is common in other languages too. (It’s not ideal in some cases though.)

extern crate core;
struct Point {
t: f32,
l: f32,
}
impl core::fmt::Show for Point {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
write!(f, "Point(left={}, top={})", self.l, self.t)
@denisdefreyne
denisdefreyne / ramirez.md
Last active August 29, 2015 14:13
Denis’ Mojibake Challenge

I have this bit of data:

C3 A3 E2 80 9A C2 A2 C3
A3 C6 92 C2 AC C3 A3 C6
92 3F C3 A3 C6 92 C2 B3
C3 A3 C6 92 E2 80 B0 C3
A3 C6 92 3F C3 A3 C6 92
C2 BB C3 A3 C6 92 C2 A9
C3 A3 C6 92 C5 B8 C3 A3

C6 92 C2 AC C3 A3 E2 80

@denisdefreyne
denisdefreyne / comma.rb
Created February 24, 2015 17:44
Arrays?!
class Stuff
def initialize(params = {})
@foo_name = params.fetch(:foo_name)
@foo_identifier = params.fetch(:foo_identifier)
@bar_name = params.fetch(:bar_name),
@bar_identifier = params.fetch(:bar_identifier)
end
def to_a
[
@denisdefreyne
denisdefreyne / time-vs-datetime-utc.rb
Last active August 29, 2015 14:17
Time vs DateTime UTC behavior in Ruby
# Ruby’s Time and DateTime classes have different behaviors for #iso8601. Time
# uses the "Z" postfix to indicate UTC, while DateTime uses "+00:00".
require 'time'
require 'date'
puts Time.now.utc.iso8601
# => 2015-03-17T08:43:08Z
puts Time.now.utc.to_datetime.iso8601