Skip to content

Instantly share code, notes, and snippets.

View jonelf's full-sized avatar

Jonas Elfström jonelf

View GitHub Profile
@jonelf
jonelf / andersterapi.rb
Last active August 29, 2015 14:19
Anders terapispråk som en Ruby DSL.
class Numeric
def ≫(n)
n.replace self.to_s
end
end
class String
def ≫(s)
s.replace self
end
def +(s)
@jonelf
jonelf / Mandelbrot
Created March 23, 2015 14:03
Mandelbrot in Swift
for line in 0...32 {
println("".join((0...78).map { (col: Int) -> String in
var x = 0.0, y = x, i = 0
do {
x = x * x - y * y + Double(col) / 20.0 - 2.3
y = 2 * x * y + Double(line) / 10.0 - 1.5
i++
} while (x * x + y * y) < 4 && i < 78
return "\(UnicodeScalar(0x1f35b + i))"
@jonelf
jonelf / gist:d6228b4e95482c637312
Created February 8, 2015 14:40
Avkodar Rövarspråket i Ruby
require 'set'
swedish_consonants = "bcdfghjklmnpqrstvwxz".chars.to_set
code = "vovatottotenonkokokokarore".chars
result = [code.first]
i = 1
while (i < code.length)
if code[i] == "o" && code[i-1] == code[i+1] && swedish_consonants.include?(code[i-1])

Keybase proof

I hereby claim:

  • I am jonelf on github.
  • I am jonelf (https://keybase.io/jonelf) on keybase.
  • I have a public key whose fingerprint is 6757 22B3 8909 BCA0 8CF3 2EEB D21C 666E 09FD 0C8B

To claim this, I am signing this object:

@jonelf
jonelf / standard_deviation.swift
Last active February 15, 2024 21:45
Standard Deviation in Swift
func standardDeviation(arr : [Double]) -> Double
{
let length = Double(arr.count)
let avg = arr.reduce(0, {$0 + $1}) / length
let sumOfSquaredAvgDiff = arr.map { pow($0 - avg, 2.0)}.reduce(0, {$0 + $1})
return sqrt(sumOfSquaredAvgDiff / length)
}
let responseTimes = [ 18.0, 21.0, 41.0, 42.0, 48.0, 50.0, 55.0, 90.0 ]
@jonelf
jonelf / luhnTest
Last active July 2, 2019 10:23
Luhn test in Swift.
func lunhCheck(number : String) -> Bool
{
let reversed = reverse(number).map { String($0).toInt()! }
return reduce(enumerate(reversed), 0, {(sum, val) in
let odd = val.index % 2 == 1
return sum + (odd ? (val.element == 9 ? 9 : (val.element * 2) % 9) : val.element)
}) % 10 == 0
}
lunhCheck("49927398716")
@jonelf
jonelf / gist:965eed2ca03257c04335
Created January 2, 2015 01:24
Lorenz Attractor in Swift
// Swift Playground example of the Lorenz Attractor
// Change platform to OS X when opening Playground.
// alt + cmd + enter to show Assistant editor and see resulting image.
import Cocoa
import XCPlayground
let width = 600.0, height = 500.0
class CustomView: NSView {
@jonelf
jonelf / diamond
Last active August 29, 2015 14:10
Diamond
first, last = "A".ord, "D".ord;
rows = (first...last).to_a + last.downto(first).to_a
cols = last.downto(first).to_a + (first + 1..last).to_a
rows.each do |row|
line = cols.map do |col|
col == row ? col.chr : "-"
end
puts line.join
@jonelf
jonelf / gist:223638855633144d9799
Last active August 29, 2015 14:10
Range cover example
require 'nokogiri'
xml = %{
<Employments>
<Employment>
<From>2013-01-01</From>
<To>1900-01-01</To>
<MainEmployment>0</MainEmployment>
</Employment>
<Employment>
<From>2014-11-01</From>
@jonelf
jonelf / gist:188343b2070354a00513
Created September 17, 2014 07:34
Validera personnummer i XPATH
(validate-dateTime("yyyyMMdd", left($pnum, 8 )))
and
(((number(substring($pnum,3,1))*2) mod 9 + (floor(number(substring($pnum,3,1)) div 9)*9) + (number(substring($pnum,4,1))) +
(number(substring($pnum,5,1))*2) mod 9 + (floor(number(substring($pnum,5,1)) div 9)*9) + (number(substring($pnum,6,1))) +
(number(substring($pnum,7,1))*2) mod 9 + (floor(number(substring($pnum,7,1)) div 9)*9) + (number(substring($pnum,8,1))) +
(number(substring($pnum,9,1))*2) mod 9 + (floor(number(substring($pnum,9,1)) div 9)*9) + (number(substring($pnum,10,1))) +
(number(substring($pnum,11,1))*2) mod 9 + (floor(number(substring($pnum,11,1)) div 9)*9) + (number(substring($pnum,12,1)))
) mod 10 = 0)