Skip to content

Instantly share code, notes, and snippets.

@dankogai
dankogai / dictionary-map.swift
Last active August 29, 2015 14:02
Working version of Dictionary#map in Swift
//
// cf. http://nomothetis.svbtle.com/smashing-swift
//
extension Dictionary {
func map<R>(transform:(ValueType)->R)->Dictionary<KeyType, R> {
var result:Dictionary<KeyType, R> = [:]
for (k, v) in self {
result[k] = transform(v)
}
return result
@dankogai
dankogai / math.h.md
Last active August 29, 2015 14:02
Portable? isNan() and isFinite()
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include <stdio.h>
#include <ctype.h>
int isNaN(double d) {
char buf[32];
sprintf(buf, "+%f", d);

Undocumented Swift

Operator Functions

Just like Haskell, operators can be used as a function.

var d = 40
d + 1      // 41
(+)(d, 2) // 42 
func memoize<A: Hashable, R>(block:(A, (A->R))->R)->(A->R) {
var memo:Dictionary<A,R> = [:]
var result:(A->R)!
result = {
if let l = memo[$0] { return l }
let r = block($0, result)
memo[$0] = r
return r
}
return result
extension String {
static func fromUTF16Chars(utf16s:UInt16[]) -> String {
var str = ""
for var i = 0; i < utf16s.count; i++ {
let hi = Int(utf16s[i])
switch hi {
case 0xD800...0xDBFF:
let lo = Int(utf16s[++i])
let us = 0x10000
+ (hi - 0xD800)*0x400 + (lo - 0xDC00)
{print($0+$0.debugDescription+")")}("{print($0+$0.debugDescription+\")\")}(")
@dankogai
dankogai / peekFunc.swift
Last active February 28, 2023 15:38
Get the internal function pointer in swift
/// See
/// https://github.com/rodionovd/SWRoute/wiki/Function-hooking-in-Swift
/// https://github.com/rodionovd/SWRoute/blob/master/SWRoute/rd_get_func_impl.c
/// to find why this works
func peekFunc<A,R>(f:A->R)->(fp:Int, ctx:Int) {
let (hi, lo):(Int, Int) = reinterpretCast(f)
let offset = sizeof(Int) == 8 ? 16 : 12
let ptr = UnsafePointer<Int>(lo+offset)
return (ptr.memory, ptr.successor().memory)
}
@dankogai
dankogai / gist:c1a9320600b9438edca6
Created January 19, 2015 02:16
sudo ddrescue -v /dev/rdisk2 intel335.dmg intel335.log
GNU ddrescue 1.19
About to copy an unknown number of Bytes from /dev/rdisk2 to intel335.dmg.
Starting positions: infile = 0 B, outfile = 0 B
Copy block size: 128 sectors Initial skip size: 128 sectors
Sector size: 512 Bytes
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 240057 MB, errsize: 57344 B, errors: 7
@dankogai
dankogai / gist:db5d01e3b7cee658aab0
Created July 1, 2015 10:30
Apple Music is DRM'ed

Seems like all songs downloaded via Apple Music are DRM'ed w/ Fairplay. You can see it for yourself via ffprobe available as a part of ffmpeg.

~/Music/iTunes/iTunes Media/Apple Music/${Artist}/${Album}/${Song}.m4p

  Metadata:
    […]
  Duration: 00:03:51.11, start: 0.000000, bitrate: 286 kb/s
 Stream #0:0(eng): Audio: aac (LC) (drms / 0x736D7264), 44100 Hz, stereo, fltp, 265 kb/s (default)
@dankogai
dankogai / quine.swift
Last active August 21, 2018 03:27
Quine in Swift that also runs on REPL
({print($0+$0.debugDescription+")")})("({print($0+$0.debugDescription+\")\")})(")