全体的にむずかしくないはずなのに、取っ手をつける位置を間違えて一旦リッパーで完全にとってやりなおすという無駄な作業が発生した。つらかった。

これで要求されていた保育園グッズは終わり。

柄違いのも作っていた。コップ入れは大変簡単で、裁断がおわれば30分ぐらいで作れた(これは朝出社前に縫った)

#!/usr/bin/xcrun swift
import Cocoa
struct ProgramOption {
var list : Bool = false
var set : String? = nil
var help : Bool = false
}
func getInstalledBrowsers () -> [ NSBundle ] {
var browsers = [ NSBundle ]()
let array = LSCopyAllHandlersForURLScheme("http").takeRetainedValue()
for var i = 0, len = CFArrayGetCount(array); i < len; i++ {
let bundleId = unsafeBitCast(CFArrayGetValueAtIndex(array, i), CFString.self) as String
if let path = NSWorkspace.sharedWorkspace().absolutePathForAppBundleWithIdentifier(bundleId) {
if let bundle = NSBundle(path: path) {
// let name: String = bundle.infoDictionary!["CFBundleName"] as String
browsers.append(bundle)
}
}
}
return browsers
}
func setDefaultBrowser (bundleId : String) -> Bool {
let httpResult = LSSetDefaultHandlerForURLScheme("http", bundleId)
let httpsResult = LSSetDefaultHandlerForURLScheme("https", bundleId)
if httpResult == noErr && httpsResult == noErr {
return true
} else {
return false
}
}
var option = ProgramOption()
for var i = 0, len = Process.arguments.count; i < len; i++ {
let arg = Process.arguments[i]
switch arg {
case "-h", "--help":
option.help = true
case "-l", "--list":
option.list = true
case "-s", "--set":
option.set = Process.arguments[++i]
default:
break
}
}
if option.help {
println("-h, --help: Show help (this)")
println("-l, --list: Show installed browser list")
println("-s [bundleId], --set [bundleId]: Set default browser to specified browser")
exit(0)
}
if option.list {
let browsers = getInstalledBrowsers()
for browser in browsers {
let bundleId = browser.bundleIdentifier!
let path = browser.bundlePath
println("\(bundleId)")
println("\t\(path)")
}
}
if let bundleId = option.set {
if setDefaultBrowser(bundleId) {
exit(0)
} else {
exit(1)
}
}
exit(0)

peco る

set_default_browser.swift --set $( set_default_browser.swift -l | grep -v "\t" | peco )

雑にpecoれる

経緯

むかしむかしに Obj-C で書いたことがあってな

  1. トップ
  2. tech
  3. デフォルトブラウザを5秒に1回変える人に便利な Swift スクリプト書いた (Mac)

出社した直後ぐらいからだるくなり、12時ごろに「もうこれはだめだな」と思い早退。

帰宅時点では37°ぐらいの微熱。悪寒がするので熱めの風呂に入ってからすぐ寝て、15時ぐらいに37.8°ぐらい。生卵をTKGとして摂取してひたすら寝つ続け、20時ぐらいに37.3°ぐらいまで下がる。それからまたひたすら寝て朝がたに36.5°ぐらいの平熱になった。

型紙付属のレシピから変えてマジックテープ式にしようとしたら (保育園の要求仕様を満たすため)、いろいろ失敗してしまった。マジックテープがどうも固く、ジグザグ縫いで目が飛びまくりどうしようもなく、しかたなく直線に変えたり、マチをつけて固定するところで手縫いする必要があるのだが、玉止めがうまくいかず……

とはいえ一応実用上は問題ない形に仕上げた…… 精進が必要。

オルファ(OLFA) セーフティロータリカッター ゴム L型 156B - オルファ(OLFA)

オルファ(OLFA)

5.0 / 5.0

オルファ(OLFA) 円形刃45ミリ替刃 RB45-1 - オルファ(OLFA)

オルファ(OLFA)

5.0 / 5.0

オルファ(OLFA) カッターマットA2 (450x620x2mm) 159B - オルファ(OLFA)

オルファ(OLFA)

5.0 / 5.0

布を切るといえば裁ち鋏でしょ??と思って思考停止していたけど、ローリングカッターを使ったほうが圧倒的に楽チンだった。

  1. 布を浮かす必要がない
    • 裁断精度があがる
  2. 1つの動作で完結できる
    • 裁ち鋏だと「ハサミを開く」「線にあわせる」「ハサミを線にあわせて閉じる」「途中で開いなおしてすすめる」を繰替えす
    • ローリングカッターはまっすぐ押すだけ。良く切れるのでほぼパツイチ

ただし欠点があって、一度に切れる長さはカッターマットの大きさに制限される。

裁断が結構気が重い作業だけど気が楽になるし、時短できるしチートアイテムっぽい。