Takuya71 のぶろぐ

外資系ソフトウェア会社で働いてます、認定スクラムマスター

Intellij IDEA plugin がダウンロード出来ない

Intellij IDEA で plugin のインストールを行おうとすると、 ダウンロードに非常に時間がかかり ネットワークが不調というメッセージがでてプラグインのダウンロードが出来ない状態になりました。

当初、一時的なネットワークの不調と考えていましたが、数日たっても改善せず。 試しに携帯電話のテザリング経由で接続したところ問題なくすぐにダウンロードができることがわかり、これは ネットワーク側の問題だと思うわけで ネットワークのサポートに問い合わせを行いました。

当初は ネットワークには問題無いということでしたが、 携帯経由だと うまくいくことから ネットワーク側になにか原因があるということで、 食い下がって調べてもらいました。

結果的には うちのネットワークは プロパイダーからは各機器にプライベートアドレスが割り当てられている タイプなのですが どうも そのNATとの相性が悪いのではということになりました。 Global のIPを割り当てる 有料のオプションがあるのですが、それを使うと NAT経由ではなくなるために改善するかもしれないということなので試してみたところ 現象は改善され、さらに 通常のスピードも向上しました。

Google 等もQUIC使った通信だと パケットロスしまくりで、すごく遅かったので オフにしていたのですが GlobalIPにしてから QUICをオンにしたところ 今までの不調が嘘のように 高速化しました。

うちの環境に限った話となりますが、どうもNATとの相性がよくない時があったようです。

blogsync 使って はてなブログの内容を github にアップ

blogsync 使って はてなブログの内容を github にアップ

12月に blogsync という はてなブログを markdown 形式でローカルに保存したり、 ローカルの markdown に加えた変更を はてなブログに反映させることができる ツールがあることを知りました。

motemen.hatenablog.com

これを使えば GitHub でブログの内容を管理することができるなとおもい、 試してみました。

やりたいこととしては

はてなブログ 
--> blogsync で ローカルレポジトリへ同期
--> GitHub へ push

というような流れを考えています。

ブログを書くのは モバイルつかって書くことが最近多いので、はてなブログ側で書くことを想定。

まずは blogsync のインストール。

インストールした後は

~/.config/blogsync/config.yml ファイルを作成し、はてなブログのユーザ名、パスワード、ローカルのパスを設定します。

takuya71.hatenablog.com:
  username: takuya71
  password: xxxxxxxx
default:
  local_root: /home/takuya/src/takuya71_hatenablog

設定後 まずは ローカルにPULL します。

> blogsync pull takuya71.hatenablog.com

あとは ローカルの内容を github へ push します。

git push github  master

私は 以下のような シェルスクリプトを 用意しておいて cron で毎日定時にローカルに持ってきてその後 GitHubへPUSH するようにしています。

#!/bin/bash

echo -e "\033[0;32mDeploying updates to GitHub...\033[0m"

cd ~/src/takuya71_hatenablog

blogsync pull takuya71.hatenablog.com

# Add changes to git.
git add -A

# Commit changes.
msg="Updated Hatenablog site `date`"
if [ $# -eq 1 ]
  then msg="$1"
fi
git commit -m "$msg"

# Push source and build repos.
git push github  master

cron の設定

ATH=/usr/local/rbenv/shims:/usr/local/rbenv/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin:/home/takuya/.local/bin:/home/takuya/bin:/home/takuya/.go/bin

GOPATH=/home/takuya/.go/

30 8 * * * /home/takuya/src/takuya71_hatenablog/deploy.sh > /tmp/cron_err.log 2>&1

注意

下書きも ローカルに同期されるので GitHub のパブリックな レポジトリにプッシュすると 下書きも公開されます。

gitignore を作ってくれる gibo

qiita.com

こんな 便利そうな ツールがあったなんて。

homebrew でインストールして すぐに gibo を実行すると、

fatal: Cannot change to '/Users/takuya/.gitignore-boilerplates': No such file or directory

こんなエラーが。。

まずは update が必要なのかな。 -u をつけてアップデートを実行。

gibo -u
fatal: Cannot change to '/Users/takuya/.gitignore-boilerplates': No such file or directory
Cloning https://github.com/github/gitignore.git to /Users/takuya/.gitignore-boilerplates
Cloning into '/Users/takuya/.gitignore-boilerplates'...
remote: Counting objects: 5211, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 5211 (delta 2), reused 0 (delta 0), pack-reused 5204
Receiving objects: 100% (5211/5211), 1.12 MiB | 40.00 KiB/s, done.
Resolving deltas: 100% (2607/2607), done.
Checking connectivity... done.

この後で実行すると うまく行きました。

> gibo scala
### https://raw.github.com/github/gitignore/be3333655bffe9507d66cc864aee95ed6052b4ed/scala.gitignore

*.class
*.log

# sbt specific
.cache
.history
.lib/
dist/*
target/
lib_managed/
src_managed/
project/boot/
project/plugins/project/

# Scala-IDE specific
.scala_dependencies
.worksheet

malloc で異常を検知した際に abortさせる

malloc で メモリの異常を検知した際にabort させることができるようである。

宇宙の晴れ上がり: mallocやfreeでGLIBCが異常を検出した際、abortさせる

MALLOC_CHECK の環境変数の値で動作を制御できる。

動作
0 何も起こさない
1 メッセージを表示
2 abort
3 1と2の両方

2016年 抱負

2016年の抱負

毎年 沢山あげて出来ていないので、今年は 4点。

プログラム言語

ことしは 普通のJava と Ruby を強化しようかな

テクニカル分野

色々 機会があり せっかくなので 今年はAWSについて拡張したい。

Agile

こちらも せっかくの機会なので Agile 関連の知識を身に付けたい。

英語

これは ここ数年毎年上げているのですが 今年は優先順位低い

raspberry pi にしばらくすると SSHで接続できない

現象

先日買った raspberry pi に USBの WiFi ドングルをつけて運用していますが しばらくするとリモートから WiFi のIPアドレスにssh で接続できなくなる現象になります。

  ~  ssh takuya@19.pi
ssh: connect to host 192.168.11.19 port 22: Host is down

使っている USBのWiFiドングルは Planex の GW-USNANO2 というものです。

昔 windows ノート用に買った 多分安いものです。

raspberry pi に接続したら特になにもしないで認識してくれました。

[400737.666908] usb 1-1.4: Product: GW-USNANO2
[400737.666925] usb 1-1.4: Manufacturer: Planex Communications Inc.
[400737.666941] usb 1-1.4: SerialNumber: 00e04c000001

一旦 WiFiのドングルを本体から外して、再度接続すると 接続できるようになるので どうやら WiFi USBドングルが Sleep しているように思われます。

対処

しらべてみると同様の事象がありました。

Raspbian で Wi-Fi がスリープするのを防ぐ - CO's Home 〜 Boiling Water River & Morning Forever

GW-USNANO2 も RealtekのRTL8192CU を使っているはずなのでこれと同じ方法が使えるはず。

同じように /etc/modprobe.d8192cu.conf を作成し、中身は以下のように記述。

options 8192cu rtw_power_mgnt=0

その後 reboot

設定後 接続できない状態にはならないので うまくいっているようです。

追記

接続できない状態はなくなったのですが、samba, netatalk をインストールしてファイルサーバとして使おうとすると wifi 経由では非常にスピードが遅いです。300KiB/s ぐらいしか出ないので 4GBぐらいのファイルをコピーしようとすると 4時間ぐらいかかるって表示になっています。 有線LAN だと 6分ぐらいでコピーできるので raspberry pi 自体の性能ではなく wifi 経由だと非常に遅くなっているように見える。ファイルサーバとして使うなら 有線LANが無難かな。

PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)

PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)

PLANEX 無線LAN USBアダプタ 150Mbps GW-USNano2

PLANEX 無線LAN USBアダプタ 150Mbps GW-USNano2

Monster Energy の配布に出会う

今日秋葉原行った時に Monster Energy の車にあって 一本もらいました。

なんか Red○ULLと 同じようなことやっている気がしますが もらってうれしかったです。 味もよかったです。