それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

AppleScript で PPTxをPDFに変換する。

たくさんある、PPTをPDFに変換したいと思った。

まぁ、PPT→PPTXでもインだけど、PDFにしちゃう方がポータビリティがいいんですよね。

どうせ、PPTXを編集することなんてないんだし。

PDFの方が、Evernoteに放り込んだり、検索可能にしたり、Explorer/Finderのプレビューでパパッと見られて色々便利なんだよね。

keynote を使う場合。

開いているファイルを、PDFに変換して保存する

var app = Application("Keynote")
var doc  = app.Document()
//doc.text = "test"
//app.documents.push(doc)
app.documents[0].save({
in : Path("/Users/takuya/Desktop/sample2.key")
})

console.log(app.documents[0].name())
app.documents.at(0).export
app.documents.at(0).export({
as : "PDF",
 to : Path("/Users/takuya/Desktop/sample2.pdf")
})

これで、pptx を keynotes 形式に変換したり、keynotes 形式をPDFに変換したりできる。

楽チンですが・・・MicrosoftのOfficeで変換したときと若干異なるんですよね。

PowerPoint だと動かない

同じように やったけど動かないんだ。

var app = Application("Microsoft PowerPoint")
var doc = app.presentations.at(0)

console.log(doc.name())

doc.save({
as : "PDF",
in : "/Users/takuya/Desktop/sample2.pdf"
})

AppleScript だと辛うじてうごく

set out to POSIX file "/Users/takuya/Desktop/test.pdf"
tell application "Microsoft PowerPoint"
save active presentation in out as save as PDF
end tell

ダイアログが出てくるのだが、動いてるとは思えない。

f:id:takuya_1st:20160129202811p:plain:w200

もう半年くらい、この原因とたかってて

ある日、ひらめいた。Sandbox 化が原因だったんじゃ?

とりあえずサンドボックス領域を調べてみた。

ファイルができてるではないか

f:id:takuya_1st:20160129202739p:plain:w400

ということで、AutomatorApplescriptPowerpointで変換したら、次のパスに作られる。

~/Library/Containers/com.microsoft.Powerpoint/Data.pdf

該当資料を探した。

http://answers.microsoft.com/en-us/mac/forum/macoffice2016-macexcel/applescript-save-as-pdf-fails/bccc7a27-0263-44be-9506-deb7d3de387e?auth=1

After studying the Document "App Sandbox in Depth" it seems just consequent for me what Microsoft did with Office 2016 and AppleScript. Regarding this document sandboxed apps can just write automatically (triggered by AppleScript) within the path ~/Library/Containers/com.microsoft.excel/. So doing something like this
tell application "Microsoft Excel"
    tell active sheet
        save in path to temporary items from user domain as PDF file format
    end tell
end tell
should work. Files can afterwards be found in ~/Library/Containers/com.microsoft.excel/Data/Library/Caches/TemporaryItems/

ほかにも

http://eyeballonly.com/blog/2014/02/20/macosx-sandbox/

http://piyocast.com/as/archives/category/applescriptobjc/nshomedirectory/

などで、散見された。

Sanbox 化されたアプリケーションへのAutomator・ScriptEditorについて

https://developer.apple.com/library/mac/qa/qa1888/_index.html

Sandboxで、アクセス可能なディレクトリにDesktopがない。アプリ側でパーミッションを要求する感じ。でも動いてないんだよなぁ

しかしながら「テキストエディット」のような、Apple謹製のAppは、Sandboxされているが、Desktopへファイル保存が可能である。

ということは、Microsoftのプログラム側にバグがある。マイクロソフトPowerPointのプログラムでSandboxを正しく扱えていないということしか考えられない。

Apple Script でファイル保存(osascript/osjscript)

osascript でファイルを保存するサンプル

ファイルを保存するという基本的なところをUI Elementsではなく、Standard Suiteで行うことにした。

tell application ("TextEdit")
activate
make new document
set text of document 1 to "test from apple script"
 save document 1 in POSIX file ("/Users/takuya/Desktop/sample.txt")
end tell

同じことをJavascript for Automation で

var app = Application("TextEdit")
app . activate()
var doc  = app.Document()
doc.text = "test"
app.documents.push(doc)

app.documents[0].save({
in : Path("/Users/takuya/Desktop/sample2.txt")
})

こんなもん。簡単でした。

保存については、マニュアル飲み方

f:id:takuya_1st:20160129200405j:plain:w400

ポイント

関数の引数の渡し方

JavaScriptで書くときには、ちょっとくせがる。

引数なしの時

doc.save() //

引数があるとき

doc.save({ as : 'Text' }) //

引数は、不定個数ではなく、「一つ」で渡す。その一つはJSONであり、引数の名前が、キー名になる。

引数を複数入れるとき

doc.save({ as : 'Text' in: Path("/Path/to/Write") }) //

オブジェクトで複数いれます。ファイル・パスはPath()オブジェクトを使ってUNIXパス文字列を扱います。

理屈がわかると簡単

JavaScriptでもAppleScriptでもドキュメントさえ押さえれば、簡単に自動化処理を作ることができる。

minecraft AtLauncher で スクリーンショットの場所

スクショの場所がわからない。。。。

調べたら、通常のMinecraftの位置ではなく、インスタンスごとに保存される模様。

場所は、AtLauncherの中。

$PATH_TO_AtLancher/$INSTANCE_NAME/screenshots/

Mac OSX なら、次の場所にあった。

/Applications/ATLauncher.app/Contents/Resources/Java/Instances/BevosTechPack/screenshots

とりあえず、ショートカットでも作っておけば便利なんでしょうか。

参考資料

https://www.reddit.com/r/ATLauncher/comments/32y6zn/screenshots/

アプリがMac OSXのサンドボックについて確認

OSXサンドボックスで動いてると。。。

AppleScriptAutomatorで、動作が「期待通り」にならない。サンドボックスの中でアクセス可能なフォルダが制限される。。。

本当に由々しき問題だと思う。アプリ側の実装バグなのか、サンドボックスに由来するものかちょっと調べるには。アプリがsandboxing されているか調べる必要があった。

アクティビティ・モニタでサンドボックスされているか確認できる

f:id:takuya_1st:20160129190859p:plain

参考資料

http://yuzuhara.hatenablog.jp/entry/2011/12/27/235521

http://eyeballonly.com/blog/2014/02/20/macosx-sandbox/

samba の公開フォルダにguest でアクセス出来ない時

samba でguest アクセスフォルダを設定してた

設定は次の通り。

[share]
   comment = scanimage
   path = /var/www/share
   browseable = yes
   guest ok   = yes
   writable   = no
   force create mode = 777
   force directory mode = 777

   vfs object =  audit recycle
   recycle:repository = .trash
   recycle:keeptree = yes
   recycle:versions = yes

でもエラーになる

f:id:takuya_1st:20160120233126j:plain:w400

何故か?考えたたら単純なことだった。

Samba は、Windows からのguestユーザー を Linux の nobody にマッピングする。

Sambaは nobody としてアクセスできるファイルを提示する。

なので、Linux側で nobody が見れないフォルダは見られない。

ということで〜

chmod o+x  /var
chmod o+x  /var/www
chmod o+x  /var/www/share

これでOKだった。

単純な設定ミスですね。

近所のWifi状況を監視 - 周囲の無線LANの状態をairport で取得して電波の強さ順に並べ替え

周囲の公衆無線LANをアレコレ並べ替え

自宅やオフィス周辺のWiFiの電波状況や衝突状況を調べたい時

SSIDがどれくらい存在し チャンネルはどれくらい専有されていて また、同一SSIDで電波飛ばしてる公衆WiFiはいくつあって 電波の強度はどれくらいか

など、無線LANの状況をシリたいときは結構多いと思います。

Mac無線LANの状況を調べるコマンド

airport -s | sort オプション

よみいので電波の強さ順に並べ替え

数字として評価する -n を入れるのが味噌。公衆無線LANなどをつなぐときは、電波強度が強いやつを探すのが便利なので、ソートする。

チャンネルが必要なときは sort -k 4 とすればいい

 airport -s | sort -k 3 -n
                   303ZTa-C2ABC0 ee:1d:7f:c2:ab:c0 -84  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-BDF708 d2:5b:a8:bd:f7:08 -82  6       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-C2EC9D ee:1d:7f:c2:ec:9d -77  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                  aterm-2454d6-g a4:12:42:ab:01:e6 -77  3       Y  JP WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                   L09C_31A0A0DD 00:aa:70:d2:d6:b2 -76  1       Y  JP WPA2(PSK/AES/AES)
                    0001softbank 6c:f3:7f:a9:d8:22 -73  6       Y  -- NONE
                 Wi2premium_club 6c:f3:7f:a9:d8:21 -73  6       Y  -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                    0001softbank 6c:f3:7f:a9:d8:f0 -69  100,+1  Y  -- NONE
                   303HWa-B1B674 b4:30:52:b1:b6:74 -69  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-46616E d6:37:d7:46:61:6e -69  8       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:f1 -69  100,+1  Y  -- NONE
                        WiFiarea 00:22:cf:ac:b8:44 -67  6       Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:cc -66  124,+1  Y  JP WPA2(PSK/AES/AES)
                       Localarea 00:22:cf:ac:b8:45 -66  6       N  -- WEP
                       au_Wi-Fi2 84:18:3a:fd:b9:cc -66  124,+1  Y  JP WPA2(802.1x/AES/AES)
                      Wi2premium 84:18:3a:7d:b9:cc -66  124,+1  Y  JP NONE
                   303ZTa-C1821E ee:1d:7f:c1:82:1e -66  11      Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                 Wi2premium_club 84:18:3a:bd:b9:cc -66  124,+1  Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                    tullys_Wi-Fi 84:18:3a:3d:b9:cd -65  124,+1  Y  JP NONE
                 Wi2premium_club 84:18:3a:bd:b9:c8 -65  6       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                      Wi2premium 84:18:3a:7d:b9:c8 -64  6       Y  -- NONE
                  GlocalMe_28060 30:89:d3:09:b8:c0 -64  11      Y  -- WPA2(PSK/AES/AES)
                       au_Wi-Fi2 84:18:3a:fd:b9:c8 -63  6       Y  -- WPA2(802.1x/AES/AES)
                    tullys_Wi-Fi 84:18:3a:3d:b9:c9 -63  6       Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:c8 -62  6       Y  -- WPA2(PSK/AES/AES)
                W01_587F66E604E0 58:7f:66:e6:04:e0 -62  1       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                          iPhone 32:f7:c5:2a:ae:46 -60  1       Y  -- WPA2(PSK/AES/AES)
                    0001softbank 6c:f3:7f:a9:d8:e2 -57  11      Y  -- NONE
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:e3 -57  11      Y  -- NONE
                    203Za-3A3FDD 0e:12:62:3a:3f:dd -56  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                         SWS1day 9c:2a:70:f3:41:48 -54  4       Y  JP NONE
                    0001softbank 9c:2a:70:f3:41:49 -54  4       Y  JP NONE
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:f3:41:4a -54  4       Y  JP NONE
                      0001docomo ac:f1:df:d7:3d:f9 -46  1       Y  JP WPA2(802.1x/AES/AES)
                      0000docomo ac:f1:df:d7:3d:fa -45  1       Y  JP WPA2(PSK/AES/AES)
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)

ssid で並べる

airport -s | sort -k 1
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
                          iPhone 32:f7:c5:2a:ae:46 -61  1       Y  -- WPA2(PSK/AES/AES)
                         HS_Wifi 6c:f3:7f:a9:d8:e0 -57  11      Y  -- WPA2(PSK/AES/AES)
                         SWS1day 9c:2a:70:f3:41:48 -56  4       Y  JP NONE
                        NTT-SPOT 6c:f3:7f:89:92:c0 -80  11      N  -- WEP
                        WiFiarea 00:22:cf:ac:b8:44 -68  6       Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:cc -69  124,+1  Y  JP WPA2(PSK/AES/AES)
                       au_Wi-Fi2 84:18:3a:fd:b9:c8 -67  6       Y  -- WPA2(802.1x/AES/AES)
                       au_Wi-Fi2 84:18:3a:fd:b9:cc -70  124,+1  Y  JP WPA2(802.1x/AES/AES)
                      0000docomo 6c:f3:7f:89:92:c2 -80  11      Y  -- WPA2(PSK/AES/AES)
                      0001docomo 6c:f3:7f:89:92:c1 -80  11      Y  -- WPA2(802.1x/AES/AES)
                      0001docomo ac:f1:df:d7:3d:f9 -42  1       Y  JP WPA2(802.1x/AES/AES)
                      Wi2premium 84:18:3a:7d:b9:cc -69  124,+1  Y  JP NONE
                    0001softbank 6c:f3:7f:a9:d8:f0 -66  100,+1  Y  -- NONE
                    0001softbank 9c:2a:70:de:cf:c9 -89  9       Y  JP NONE
                    0001softbank 9c:2a:70:f3:41:49 -57  4       Y  JP NONE
                    203Za-3A3FDD 0e:12:62:3a:3f:dd -77  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                    tullys_Wi-Fi 84:18:3a:3d:b9:cd -70  124,+1  Y  JP NONE
                   303ZTa-88E29B 0e:12:62:88:e2:9b -77  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                 Wi2premium_club 6c:f3:7f:a9:d8:e1 -58  11      Y  -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                 Wi2premium_club 84:18:3a:bd:b9:c8 -65  6       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                 Wi2premium_club 84:18:3a:bd:b9:cc -69  124,+1  Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
              0000_Secured_Wi-Fi 6c:f3:7f:89:92:c3 -78  11      Y  -- WPA2(PSK/AES/AES)
              0001_Secured_Wi-Fi 6c:f3:7f:89:92:c4 -77  11      Y  -- WPA2(802.1x/AES/AES)
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:b0:6c:da -86  13      Y  JP NONE
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:de:cf:ca -90  9       Y  JP NONE
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:f3:41:4a -58  4       Y  JP NONE
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:e3 -58  11      Y  -- NONE
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:f1 -66  100,+1  Y  -- NONE

使用しているWifiのバンドのチャンネルで処理をする

airport -s | sort -k 4 -n
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
                          iPhone 32:f7:c5:2a:ae:46 -60  1       Y  -- WPA2(PSK/AES/AES)
                      0000docomo ac:f1:df:d7:3d:fa -45  1       Y  JP WPA2(PSK/AES/AES)
                      0001docomo ac:f1:df:d7:3d:f9 -46  1       Y  JP WPA2(802.1x/AES/AES)
                   303ZTa-C2ABC0 ee:1d:7f:c2:ab:c0 -84  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-C2EC9D ee:1d:7f:c2:ec:9d -77  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   L09C_31A0A0DD 00:aa:70:d2:d6:b2 -76  1       Y  JP WPA2(PSK/AES/AES)
                W01_587F66E604E0 58:7f:66:e6:04:e0 -62  1       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                  aterm-2454d6-g a4:12:42:ab:01:e6 -77  3       Y  JP WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                         SWS1day 9c:2a:70:f3:41:48 -54  4       Y  JP NONE
                    0001softbank 9c:2a:70:f3:41:49 -54  4       Y  JP NONE
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:f3:41:4a -54  4       Y  JP NONE
                        WiFiarea 00:22:cf:ac:b8:44 -67  6       Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:c8 -62  6       Y  -- WPA2(PSK/AES/AES)
                       Localarea 00:22:cf:ac:b8:45 -66  6       N  -- WEP
                       au_Wi-Fi2 84:18:3a:fd:b9:c8 -63  6       Y  -- WPA2(802.1x/AES/AES)
                      Wi2premium 84:18:3a:7d:b9:c8 -64  6       Y  -- NONE
                    0001softbank 6c:f3:7f:a9:d8:22 -73  6       Y  -- NONE
                    tullys_Wi-Fi 84:18:3a:3d:b9:c9 -63  6       Y  -- NONE
                   303ZTa-BDF708 d2:5b:a8:bd:f7:08 -82  6       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                 Wi2premium_club 6c:f3:7f:a9:d8:21 -73  6       Y  -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                 Wi2premium_club 84:18:3a:bd:b9:c8 -65  6       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-46616E d6:37:d7:46:61:6e -69  8       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                    0001softbank 6c:f3:7f:a9:d8:e2 -57  11      Y  -- NONE
                    203Za-3A3FDD 0e:12:62:3a:3f:dd -56  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303HWa-B1B674 b4:30:52:b1:b6:74 -69  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-C1821E ee:1d:7f:c1:82:1e -66  11      Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                  GlocalMe_28060 30:89:d3:09:b8:c0 -64  11      Y  -- WPA2(PSK/AES/AES)
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:e3 -57  11      Y  -- NONE
                    0001softbank 6c:f3:7f:a9:d8:f0 -69  100,+1  Y  -- NONE
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:f1 -69  100,+1  Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:cc -66  124,+1  Y  JP WPA2(PSK/AES/AES)
                       au_Wi-Fi2 84:18:3a:fd:b9:cc -66  124,+1  Y  JP WPA2(802.1x/AES/AES)
                      Wi2premium 84:18:3a:7d:b9:cc -66  124,+1  Y  JP NONE
                    tullys_Wi-Fi 84:18:3a:3d:b9:cd -65  124,+1  Y  JP NONE
                 Wi2premium_club 84:18:3a:bd:b9:cc -66  124,+1  Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)

sort コマンド便利ですね。

2017-10-07

ざっくり書きすぎてて、自分でも記事を発見できなかったので記事の文章量を増やして、キーワード追加した。

関連資料

OSX で周囲の無線LAN(ssid)アクセスポイントの状況を一覧するコマンド - それマグで!

sortコマンドで列を指定、数順など指定する。 - それマグで!

LANケーブルの自作。欲しいサイズが無ければ作ればいい!

LANケーブルの自作は、歯磨きくらい当たり前。

LANケーブルが、長すぎてルーターの後ろでグルグル巻きになってたり、かといっても市販は1メートルからだったり。

ちょうどいい長さのLANケーブルって難しい

無ければ作ればいい

ちょっとした長さのものは作ればいいわけで。作ってしまおう。

作ったのがこちら

IMG_1473

用意するもの

  • 適当なLANケーブル
  • かしめ工具
  • コネクタ(差込)
  • カッターナイフ
  • LANケーブル配色表
  • テスター(重要)
  • テスターよう電池(9V)

必要なものは2000円くらいで買える。

Amazon で中華製の工具セットが2000円くらい

LAN ケーブル 作成 セット

LAN ケーブル 作成 セット

電池はない。

テスターは重要

LANケーブルテスタは、ケーブル作成に慣れないうちは、頼りになる存在。

テスターの電池が9Vタイプだったので、深夜に入手が面倒だったのではじめに買っておく。

コンビニで買うと無駄に高かった。

きしめんケーブルは作成が面倒

きしめんケーブルや、極細LANケーブルは、ケーブル作成初心者には向いてないのです。

必ず、作成に慣れてから、数十個かしめてからやったほうがいいです。ていうか慣れてきても面倒・・・・後述するけど、ローゼットで楽をした

LANケーブルのタイプ

いろいろあるけど、とりあえず、これさえできれば問題ない。

タイプB ー タイプB

両端がタイプBのストレートが一般的なので、これが作れれば大丈夫。

まぁ、うっかりクロスケーブル作っちゃっても最近のスイッチングハブが自動認識でなんとかしてくれるので、なんとかなる。

LAN ケーブルのタイプB

タイプBでは、次のようなカラーリングで作成します。

LANケーブルのコネクタヘッドを<出っ張り側>(表側?)から見て、次のように配色する


橙色

青色

緑色

茶色

<金具のある側>(裏側?)と<出っ張り側>(表側?)をよく間違えるので注意

まぁ、逆さになったら、反対側もさかさにすればいいんだろうけど・・・

覚え方は 茶色からみて色白+色白+色白+色白の4ペアになってる点と、青色を緑で挟む点、これだけ覚えておけばなんとかなる。

片側だけ作る時の注意点

多分、両端を作成することはあまりなくて、片側だけ作ることが多いんじゃないかと思う。

その際は、反対側がタイプA/Bのどちらかを必ず確認する。

ストレート結線でつくることが前提なので、反対側に合わせて作る

目標タイム:5分

とりあえず、両端を5分で作れるようになれば、大丈夫。

なんどかやってるうちに慣れる。

たぶん10個かしめれば作ればもう大丈夫

30cmくらいのものをいくつかつくっておけばいいかと

両端のむき方

カッターナイフの刃を当てて、コロコロ転がす。

ケーブルのほどきかた

ケーブルは、ねじれているので真っ直ぐに伸ばす。縮毛矯正するように。

ケーブルのコネクタへの差込方法

タイプBの色の順番に揃えたら、ケーブルを、ぐっと握って平らにする。

平らにしたら、カッターで真っ直ぐに切りそろえると楽。

差し込んだらかしめる。

ここでいよいよ、かしめ工具の出番。

ケーブルテスターに通す。

テスターが順番に、まんべんなく点灯すればOK.

ローゼットにするのも悪くない。

LANケーブルかしめ覚えると、すぐに両端をかしめたくなるけれど、片側をローゼットにしておくのも悪くない選択。

LANケーブルの片側をローゼットにしておくのも意外に使いやすいのでおすすめだよ。

ケーブルを途中まで引っ張っておいて使うところだけ足せばいい。

ローゼットからハブやルーターまで15cmほどのケーブルで足せばいい。

磁石が付いてて、机やメタルラックに張り付くのもナカナカに便利なんだよね。。

特に、きしめんケーブルは芯線が細くてコネクタでかしめるのが一苦労でした、ローゼットがはかどります。

でもローゼット高い。そんなときはLAN延長はダイソー

LAN延長は、Amazonで買うと500円もするんですよ!

百均 に大抵は置いてるので、セリアやダイソーをチェックしたほうがいいわ。

ローゼットつくると嵩張るので嫌だなと思ったら、LANケーブル延長コネクタがいい選択肢

TODO

そのうち写真を貼り付ける。

LANケーブルかしめコンテストとかやりたい

  • LANケーブルを制限時間内に指定本数作る
  • かしめの美しさ
  • 皮膜の美しさ

制限時間でどれだけたくさんのLANケーブルを美しく正確に作れるか競技LANケーブル・かしめコンテストやってみたい。

参考資料

Geekなぺーじ:Ethernetケーブルを作ろう!(2)

http://www.elecom.co.jp/support/manual/cable/lan/jisaku-ct/

LANケーブルの作り方-「カテゴリー5e」LANケーブル作成を写真(画像)つきで解説

京都プラスPitapaで定期が乗っかるのか

PiTaPaに定期は乗っかるのか?

ピタパにはIC定期が乗っかる。例えば、阪急スタシアカードで、阪神の定期券を乗せられたりする。

では京都plus ピタパに定期は乗せられるのか?

もし、定期が乗っかれば、阪急・京阪の定期と京都市営地下鉄の利用を1枚にまとめられて便利。

f:id:takuya_1st:20160120004211j:plain

電話して聞いてみた。

京都市交通局に電話して聞いてみた。京都市交通局でも把握してないらしい、折り返しで返答待ちになった。

定期をのせるのは無理

定期券を載せるのは無理、という悲しい回答をいただいた。

Osaka PiTaPaと同等のようだ

Osaka Pitapa大阪市交通局)の発行する、ピタパと同じになる。

つまり、IC定期券を利用したければ、PiTaPaは阪急・阪神スタシアカードくらいしか選択肢がない。

参考資料

京都ぷらすOSAKA PiTaPa ご入会方法|OSAKA PiTaPaとは|OSAKA PiTaPa

ssh の control master の接続を確認して削除する

control master は便利なんだけど、ちょっと不便な事情もある。

一例として、 usermod で自分のユーザーグループを変えた時、その反映には一旦ログアウトするのが手っ取り早い しかし、controlmaster があるとログアウトが起きずグループの変更が反映されない。

ControlPersist yes

なんてしてるともっと厄介だ。接続きれないんだもん。

まぁ、コントールしてるファイルを削除すればいいんだけどね。。。

いちお、check なんてものがある。

takuya@:~/Desktop$ ssh -O check MyHost
muxclient: master hello exchange failed
Master running (pid=90496)
takuya@:~/Desktop$

この状態はMaster起動してるやつ。

ちゃんと切断するには exit を使う

強制切断するには 、exit を使う。

コントール用のソケットファイルがバックグラウンドで残っている状態で切断をしたいときは

ssh -O exit HOSTNAME

check して exit して本当に切断されたか?

$ ssh -O exit MyHost Exit request sent. $ ssh -O check Host Control socket connect(/home/takuya/.ssh/masters/takuya@MyHost:22): No such file or directory $ lsof -i | grep ssh $

lsof で、ssh が残ってないことがわかる。

control master って便利なんだけど・・・

便利なんだけど、ログイン、ログアウトはそんなに時間のかかる処理じゃないので、わざわざ使う意味ってどこにあるんだろう。

Control Masterってメインで使うべきでじゃないのかもねぇ。結構混乱する。

参考資料

http://d.hatena.ne.jp/tmatsuu/20120707/1341677472

https://siguniang.wordpress.com/2013/11/30/notes-on-ssh-multiplexing/

http://stackoverflow.com/questions/4509624/how-to-limit-depth-for-recursive-file-list

OSX で visudo ミスってsudoers ぶっ壊しっちゃった。でも大丈夫!

またやらかした・・・

sudoers の設定ファイルをミスしてたまま勢いよく保存してしまった。。。。

まただよ。でも大丈夫

visudo でミスたけど、救われた。

ターミナルから編集できなくても、Finderからパーミッション変更できる。

f:id:takuya_1st:20160119231523p:plain:w200

こんな状態にすれば、テキストエディットで元に戻せる。

Finderからパーミッション修正して、なんとかなった。もし、完全にルート権限無くしたと思うと、まる数日分が再セットアップでつぶれるので、冷や汗が出る。

f:id:takuya_1st:20160119231517p:plain:w200

本当に、sudoers 触るときだけは、本当に注意しないと。

sudoers こわしたの何度目だろう・・・もう不注意多すぎ。

querySelectorAllを使うときは Array.from() でとっても楽

いままで

var list = document.querySelectorAll("div")
list = Array.apply(null, list)
list.forEach( function(e){console.log(e)})

最近のJS

var list = document.querySelectorAll("div")
list = Array.from(list)
list.forEach( (e)=>{console.log(e)})

随分と楽になった。

python で pry と同等にREPL をコードの途中から入れるデバッガ

python でも rubyのpry と同じことをしたい・・・・

require 'pry'

Thread.new{|t|
  do_something
  binding.pry
}

マルチスレッドの処理をするには、pry があるととても楽。

python で同じことをするには IPython

探してみたら、IPython.embed があった。

from IPython import embed

a=1
embed()

これでpryと同じように、好きな場所でデバッガ起動できる。楽チン

まぁ、スレッド起動してスレッド内で、eval 噛ませば、pry もIPythonなんてなくたって、デバッガ起動できるんだろうけど。

自作するより既存のものを使った方が楽だよねってことで。

急ぐときはコレ

急ぐときは、こっちを使うほうがインストールの手間がなくていい。

import pdb; pdb.set_trace()

0001docomo に パソコン(OSX) から EAP で 接続する。

0001docomo を使いたい

WISPR系でCaptiveNetworkを行う0000docomo や au は今後なくなっていくだろうし、将来がわかららない。

au は、au-WiFiツールを用いた、パソコンからの接続を拒否するようだし。*1

0001docomo につなぐ

802.1x 認証で使える。 

スマートフォンからはEAP-SIMでSimカードをを使った認証だけど、PCからはID/PWで使える。さすがDocomo

設定方法:1 dmenu からid/pw を取り出す。

dmenu にログインして

f:id:takuya_1st:20160108200740p:plain:w300

お客様サポートから パスワードを確認。

f:id:takuya_1st:20160108200735p:plain:w300

パスワードを確認したら準備完了。

ドコモのdMenuAndroid対応のためか、PCからも見られた、よかった。で本当に便利になった。

WiFiの設定を作る

f:id:takuya_1st:20160108201055p:plain:w300

つながる。

f:id:takuya_1st:20160108201105p:plain:w300

おおお、つながった。便利。

割り当てIPアドレスは 100.64.0.0/10 ISP Shared Address になる。

グローバルIPはもらえないんため少し悲しい。

ISPがローカルIPを割り振ってしまうと、ユーザの家庭内LANと被ってしまう可能性があってトラブルの遠因になり得るので、ISP向けに 100.64.0.0 が作成されてる。

一般ユーザーは使ってはいけない。

参考資料

http://www.infraeye.com/study2/smartphone13.html

https://rikanet.com/2013/01/03/sh-02e-8/

http://www.geekpage.jp/blog/?id=2012/4/21/1

*1:ツールの提供の停止だけで従来通り使えるんだろうけど・・・

Evernoteのマージが順番通りにならない件

Evernote にマージ機能があるんですが。

マージされた時に、マージ後のノートタイルが意図通りにならない。

あるノートの末尾に、ノートをマージしようとして、マージできないことが多くないですか?

調べてみたら驚愕の事実が

マージされる順番 1 つのノートにまとめられる際の、ノート本文の情報の並び順は以下のとおりです。

Windows: ノートを選択した順 Mac: ノートのソート順(並べ変え順)

https://blog.evernote.com/jp/2015/04/07/47672

Mac OSX 版はノートの「ソート順=表示順」

「ソート順」です。つまり、表示順です。

これ、ずいぶん前から、おかしいなと思ってたら、選択した順じゃなくて、ソート順なんですね。

applescript で解決できないか考えてみた。→無理だった

app = Application("Evernote")
selected = app.selection();


selected.forEach( function(e){
  console.log(e.title());
} )

実行してみたら、選択したノートはやはり表示順にしか出てこなかった。

ということで、マージ機能を使うときは、指定したい順序でMacOSXでは「手作業でコピペ」したほうが早いってことでした。

CoCoaのリストの仕様なんだろうねぇ。たぶんiOSでも同じだろうな

参考資料

https://blog.evernote.com/jp/2015/04/07/47672

「マグネットの力でなんでもくっつく電源カバー」を作ってみた

元ネタ:マグネットの力で何でもくっつくスイッチカバー「neocover」

gigazine.net

Gigazine のこの記事に触発されて、あれ?これって作れるんじゃないのとEvernoteにメモして早数年。

Evernoteの過去ノートを見直していて、思い出したので早速作ってみた。

だいたい、わたし話聞いたり言い出してから、行動に3年ほどかかる。。。

私が言ってることは3年後くらいには解決&実現させると思う。

完成したものを使ってみたらこんな感じ

f:id:takuya_1st:20160107022430j:plain:w300

ネオジム磁石を買ってきて貼り付けるだけ。

ダイソーで揃う材料で

材料は100均一で手に入ります。

ネオジム磁石(一番大きいネオジム

ネオジム磁石が売ってるはずなので、それを買う。

瞬間接着剤(速乾性でいい)

とにかくなんでもいい、磁石がくっつけばなんでもいい。

ネオジム磁石を取り出してー

f:id:takuya_1st:20160107022254j:plain:w300

電気プレートを外して、瞬間接着して

f:id:takuya_1st:20160107022633j:plain:w400

元に戻せば完成。

f:id:takuya_1st:20160107022345j:plain:w300

結構なんでもつく。

LED照明に切り替えた時に便利。

LED 照明に切り替えると、電源より、リモコンが問題でして。電源のそばにリモコンを貼り付けるハックで、もう安心ですね。

f:id:takuya_1st:20160107022356j:plain:w300

もっと強力で薄いネオジム磁石があれば

ハードディスクから取り出して、もっと強力なものを作ってみたいけど、電子機器多いからちょっと心配ですわ。

ネオジム磁石は身近に結構あります。

「壊れたハードディスク」または「データ消去が必要なハードディスク」を分解して取り出せば、ダイソーで買うより強力なネオジム磁石が入手可能です。

参考資料&元ネタ

マグネットの力で何でもくっつくスイッチカバー「neocover」 - GIGAZINE

[http://jakefrey.com/news.html#=]

http://www.neo-cover.com/