なぜかgemが環境変数http_proxyを読んでくれない理由
問題発生!!!
$echo $http_proxy http://my.proxy:port/ $sudo gem install *** ...(don't work)
がプロキシを通らない!!!
この理由がどっかのサイトに書いてあった.
sudoすると, bashrc(zshrc)を読まない.
つまり, bashrc(zshrc)で設定している環境変数は読み込まれない。
と, いうことはhttp_proxyが設定されない!
つまりプロキシ設定がなされない!
ということらしい。
sudoするときはこれに気を付けたい。
mint17にbrewを入れる
パッケージ管理ソフトの話
世の中にはいろいろパッケージ管理ソフトがあるよねー。
パッケージ管理ソフトっていうとちょっとわかりづらい。 語弊や誤植を恐れずに言えば、google playやappleのapp store的に色んなソフトウェアを配信するためのソフトウェアととらえて問題ないと思う(少なくとも僕はそれくらいの理解で留まっている)。
細かく見ると, ソフトウェア開発にはバージョンが大きくかかわるのでかなり細かく管理されている。だから一緒というにはかなり無理があると思うが...
バージョン管理ソフトは 例えば, linuxならば yum, apt-getあたりが有名だし
macならば macportとかhomebrewが有名。
ぼくはmacユーザでなおかつミーハーなのでhomebrewが大好き。 依存関係あたりの解決が楽だし最近はbrew関連のエントリが多いので管理も楽。
この前先輩に聞いた話によるとlinuxにもbrewがあるらしい。。。
その名もlinux brew。
まんまだよね。
linux brew
これはapt-getでインストールする。 linuxbrewを入れるエントリはここがわかりやすかった.
ここで少し躓く。
mintを入れたばっかりの僕はapt-get update, apt-get upgradeを繰り返してから上記エントリのapt-get installを実行したら通った。
...あと, このエントリのコマンド, ちょっと綴りがちがうっぽい... だから, コマンドは公式を参照しよう。
って感じで簡単にlinuxbrewが入りました。 linuxでもmacでもbrewが使えると移行が簡単になりそうだし、 胸が高鳴るね。
windows8にvirtualboxでmint17をインストール
linuxで環境構築が必要だったためvirtualboxでmint17を入れた。
プロキシ周り, 容量周りで躓いたのでメモ。
容量周りに関して
結果から言うと、インストールは問題ないのだが
インストール後の容量が足りな過ぎてこけた。
デフォルトでは8GBのストレージで仮装ディスク容量を確保するのだが、 それではapt-get upgradeをかけただけで容量不足になった。
インストール後にストレージを拡張することもできるだが パーテーション周りのツールが使いづらかったので インストール時に最初から25GB程度ストレージを確保すべきだとおもう。
mint導入はここを参照した。
プロキシ設定に関して
このブログが秀逸。
bashrc(bash_profile)で環境変数http_proxyを通しても
aptは読み込んでくれないらしく躓いた。
sudo vi /etc/apt/apt.conf.d/01proxyの01の数字は特になんでもよいっぽい。
今後の目標として, とりあえずgitが動くようにしてlinuxbrewが動けばそれでいいかな...
gmailで既読後に自動で受信トレイからアーカイブする
既読したメールが自動でアーカイブできればいいなぁ・・・
そんな願いを叶えてくれるのが, google app script
うちのGMailはこうなっている(2014年完全版) を参考に,
というか丸パクリしてgasをgmailに導入した.
archiveReadMailがその内容.
トリガの起動がいまいちわからなかったので, ここを参考にした.
Gasでgmailをもっと自動化してみる
これでうちのgmailが5分おきに, 受信トレイを走査してアーカイブするようになった. あと, これならば例外的に受信トレイに残ったメールも全てのメールに勝手にアーカイブされることがないのが素晴らしい.
gas便利だなぁ...
gmailで連絡先グループからの連絡をラベル付けする方法
gmailのフィルタ機能を調整していて, 躓いたところに対しメモ.
グループからの連絡をラベルづけしたい!!!
研究室のメンバーからの連絡を"lab"としてラベル付けしたい, と思い
googleさんを信じて, 以下のクエリを入力.
From:(group:lab)
... まぁ動かないよね.
調べてみると
googleのフォーラムにたどり着く.
連絡先のグループ別にラベルを貼るフィルタを作りたい。
要約すると, fromにgroup名を打つとメンバのアドレスは補完入力されるけど, グループ名で指定することはできない そうだ.
皆さん考えることは同じようだ.
#fromフォームに入力 From:lab #labの部分は任意のグループ名
と入力するとメンバーの連絡先が連続でずらっと入力される.
"松本" <hoge@ac.jp>, "君田" <huga@ac.jp>, ...
よし出た!と思い, フィルタを作成しようとすると,
指定された検索条件が長すぎます。詳細検索条件を短くしてください。
と怒られてしまう. どうやら名前が無駄ならしい.
エディタを使った置換でゴリ押し
しかたがないので, エディタで置換を行い以下の形まで持って行った.
from:(hoge@ac.jp OR huga@ac.jp OR ...)
これで対処できた.
このサイトを参考した.
この手の置換は正規表現を使うと, 楽に置換ができる.
vimユーザはs/\v regex //gとすると一般的な正規表現を使えるようになるので便利です.
使用した正規表現. # アンダースコアは半角スペース ".*"_< → 空文字 # "名前"_< を消す > → 空文字 # > を消す , → _OR_ # ,をORに置き換え
もし今後, グループのメンバーが変化した場合この方法だと毎回更新しないといけないのでかなり面倒くさい. かといって, google app script書くのも面倒くさい...
From:(group:lab)
みたいなクエリでヒットするようになればいいなー...
それでは.
ネットワーク入門 - IPアドレスの導入 -
IPアドレスの導入
最近, 立場上ルータをいじりネットワーク管理をすることが多い.
そこで1からネットワークの勉強をし直すことにした.
その過程で得たことについて備忘録としてまとめる.
IPアドレスについて
一言にIPアドレスといっても実は2種類の働きがある.
- グローバルIPアドレス
- プライベートIPアドレス
実はこの2つのIPアドレスが存在する.
グローバルIPアドレス
インターネットと接続するためのIPアドレスである.
これは世界に1つしかないユニークなIPアドレスであり, 重複は存在しない.
グローバルIPアドレスはIANAという組織によって管理されており, 独自性を保っている.
例えば, 大学や我が家には1つのグローバルIPアドレスが与えられている.
大学のような教育機関には勝手に変化しない静的なグローバルIPアドレスが割り振られるのが一般的だ.
大学内にはサーバがあるため, IPアドレスがコロコロ変わってしまうと外部からアクセスできなくなるなど不都合が多い.
こういった問題を軽減するために静的なグローバルIPアドレスが割り当てられる.
我が家のように個人の家では基本的にプロバイダ(ISP)がグローバルIPアドレスを割り振る.
仕組みとしては, プロバイダが保有しているグローバルIPアドレスの中から1つを契約期間中リースするような形をとる.
静的IPアドレスにしてメリットが有る家庭は少ないため, IPアドレスは動的に割り振られる.
しかし, 1つ大きな疑問が残る.
インターネットに接続するためのグローバルIPアドレスが1つならば,
インターネットに接続することができる端末も1つに限定されるはずだ.
だが, 大学や我が家には端末が複数個あり, どれも問題なくインターネットに接続できる.
プライベートIPアドレス
グローバルIPアドレスが1つしかないなら, みんなでそれを共有して使い合えばいい.
そこで, プライベートIPアドレスが考えだされた.
プライベートIPアドレスは狭いエリアのネットワーク(LAN)内で使われるIPアドレスである.
つまり, LANの中だけで有効である. インターネットに接続する能力は持っていない.
インターネットに接続する場合は, プライベートIPアドレスからグローバルIPアドレスにアドレス変換し接続することが必要である.
これは次の記事に書くが, NAT(network adress translate)やIPマスカレードと呼ばれる.
192.168.0.\や172.16.0.\, 10.0.0.\などよく見るIPアドレスは全てプライベートIPアドレスである.
ちなみに, LAN内にある端末同士の通信を行う場合は, このプライベートIPアドレスで通信が可能である.
次回予告
では, このプライベートIPアドレスはどのように割り当てられるのか, これに関しては次の記事に書こうと思う.
その前にONUやルータ, APについて簡単に触れようと思う.
それではまた.
reveal.jsでシンタックスハイライトできない問題を解決(markdownに埋め込み)
この記事の目的
reveal.jsでsyntax highlightができなかったため, 有効にする.
以下の記事を参考にさせてもらった.
reveal.jsを新しくしたらハマった(後編)
上記記事では, markdownファイル内でのコード埋め込み方法について記述されていなかったため, ここを補足したい.
要点 htmlファイルに以下の1行を追加すれば動く.
<body> <!-- この1行を追加 --> <pre style="display:none"><code></code></pre> ... </body>
以下, 備忘録.
reveal.jsについて
markdown記法でプレゼンを作ることができるツール.
ブラウザ上で動作し, pptよりちょっとかっこよく見せれる.
html,cssで見た目を拡張可能である.
導入からindex.htmlの書き方などは下記のサイトを参考にした.
reveal.js, markdown,githubでスライドを作成する
※ページ中ほど, data-verticalではなくdata-separator-verticalであることに注意.
syntax highlightについて
reveal.jsではmdファイルと同じくコードを埋め込むことができ, syntax highlightも可能である...
```ruby
ここにコードを書く
```
はずなのだが上手く動かないorz
少し調べるとこのような記事を発見.
reveal.jsを新しくしたらハマった(後編)
一部抜粋
<section> <pre><code class="ruby"> ここにコード </code></pre> </section>
がhtml fileの中に1つでも含まれていれば動作するよう.
そこで, これをそのままhtmlファイルに入力した.
しかし, コード表示領域が表示されてしまう問題が起きた.
じゃ, 非表示にしちゃえばいいじゃん, ということで<pre>タグにオプションを追加.
<!-- pre>タグ内を非表示 --> <pre style="display:none"><code class="ruby"></code></pre>
あと, いじっていたらclass="ruby"って部分も不要なことに気付いた.
<!-- class=""を削除 --> <pre style="display:none"><code></code></pre>
これが完成形.