花粉症の季節なのでポケットティッシュを割と持ち歩いているのだけれど、雑にカバンの中に放りこんでおくとぐちゃぐちゃになってダメになってしまうことが多々あってつらかった。

ということで作った。

最初、ある本に書いてある通りにつくったらサイズがあわず、結局自分で計って作りなおした。ポケットティッシュは 8cm x 11cm x 0.5cm ぐらいの大きさなので、これを収めるには 9cm x 12cm ぐらいの広さが必要だった。

工程自体は難しくないけど、正確に布を切ることが神経をつかうし、とにかく難しい。

哺乳瓶入れが1つしかなくもう1つ欲しいという要望をうけて作った。

別の作例を参考にサイズを変えて作ったのだけど、計算を間違えたのか、つまむと2cmぐらい余分がでるぐらいの大きさになってしまった。

下を「わ」にして「折りマチ」をつけたタイプで、キルティングの1枚の布からできている。

筒状のものは一定のサイズ以下になるとミシンの腕に入らなくなって縫えなくなるということがわかった。紐片方出しの場合どうしても筒状にしてから縫う必要がある(と思う)ので、一定サイズ以下の場合両出しで締める構造にしなければならない気がする。

前述の通り何かを間違えてちょっと大きめにできてしまったが、おかげて筒状にしてもぎりぎり縫えるサイズにおさまった。実用上困るほどの大きさの違いではないので「失敗」の知見をためつつ実用上は「成功」ということにしておく。

ミシンに少し慣れてきたので、今まで「自分で作る」ことを考えたこともなかったことについて、改めて「自分で作れるならどんなものを作るか?」と考えている。

たとえば普段使いのカバンのアイデア

  • 箱のティッシュを組込めること
  • ゴミ箱ポケットをつけること
  • 13インチ MacBook がそのまま放りこめること

これらを満たすもの、特に最初の2つを満たすカバンというのは見たことがないので、技術力があれば作りたいなという気持ちがある。

かなり重いものを入れがちなカバンを自分で作るのは不安が多いが、そうでないなら自分で作っても面白そう。

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

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

柄違いのも作っていた。コップ入れは大変簡単で、裁断がおわれば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)