メモ

googleスプレッドシートのindirect関数でR1C1形式を利用する

完全に自分用のメモ。

Excelやgoogleスプレッドシートではindirect関数というのがあって文字列でしていたセルを参照できる関数がある。

スプレッドシートで通常は "A1" だとか "B3" みたいな形で行を数字で列を英字で指定するのが一般的であるけれども、行と列を数字で指定する "R1C1" といった形式で表現したい場合は

=indirect("R1C1", false)

と引数にfalse渡すとR1C1形式で参照することができる様になる。

これで何が便利かというとindirect関数は単独のセルだけではなくて範囲も指定できるのだけれども、列を英字ではなくて数字で表現できる様になるので

=indirect("R1C" & col() & ":R1C100")

といった表現ができる様になる。例えば上の例ではindirect関数を書いたセルの列数が文字結合される。
これによって、言葉で表現するのが難しいのだが終点を固定したまま始点を可変にして横方向に範囲を縮めていくということが、一度書いたこのセルを横にコピーしていくことで実現できる。

どういったケースで使うのだろうと思われるかもしれないけれども自分は見事に使うシーンにぶつかったので上で解決。

githubで管理されているnpmパッケージをnpmコマンドでインストールする

メモエントリ。

npmパッケージを npmjs.com で管理されているものではなくgithub上に管理されているものを直接npmコマンドでインストールする方法。
例えば、evacの場合、

$ npm install hideack/evac

とすることで、github上のmasterから直接インストールすることができる。npmコマンド奥が深い。

併せて読みたい

hideack.hatenablog.com

美味しい餃子の焼き方

突然ですが餃子好きですか?

餃子は美味しいので家でもタネから作ったり、お手軽に冷凍食品のものを買ったりして家で焼くことが多いのですが、意外と焼くのは簡単なのでその時のコツ3つ。

  • フライパンに火をかける前に餃子を並べてしまう
  • いい焼き色がついたら餃子を半身浴になるぐらい水を投入
  • 水が蒸発する直前にごま油を入れる

これだけで餃子は上手に焼ける(はず)


フライパンに火をかける前に餃子を並べてしまう

フライパンを温めてから餃子を並べると最初に入れた餃子はきれいな焼き色がついたのに、並べ終えて最後に入れた餃子は全く焼き色が付かない。というケースがあるので、そうであれば火を付ける前から並べれば良い。ということで、フライパンに油を引いたら餃子を並べてしまいます。

焼きムラ気にして慌てなくても良いし、並べるときに鍋は熱くないのでゆっくり作業できます。

いい焼き色がついたら餃子を半身浴になるぐらい水を投入

餃子を2,3個箸で上げてみて焼き面を見ていい焼き色がついていたらフライパンに水を入れます。

これは一般的だと思いますが、いざ実際やってみるときになると「こんなに入れて焼き餃子になるのだろうか!」という不安に襲われて稀に控えめにお水入れる方もありますが、心配せずに餃子が1/3〜1/2程度水に浸かる程度入れてしまいます。

ここで入れる水を中華スープの素を薄く溶いたものを使うと餃子の皮に外側からも味がしみこんで美味しくなりますがスープが濃すぎると「これは中華スープに浸かった餃子を焼いたな」という餃子になるのでお好みで....。

入れたら 強火&蓋をして 水を蒸発させていきます。

水が蒸発する直前にごま油を入れる

水をどんどん蒸発させていき、フライパンのそこに水が多少残ってぐつぐついっている段階でごま油をフライパンの周りにかけます。水が残っているところに油をかけると、これもまた不思議な感覚に襲われることもありますが気にせず回しかけます。

その後は蓋を取ったまま水を完全に蒸発させて、ごま油で餃子の皮がカリッとなったら出来上がりです。

npmでnpm自体をアップデートする方法

素朴にどうやんだ?と思ってしまったのでメモ。気づけばnpmはnodebrewで入れたきりそのままだった...。

結論 "npm install -g npm" でnpm自体をアップデートすることができる。

$ npm install -g npm
/Users/hideack/.nodebrew/current/bin/npm -> /Users/hideack/.nodebrew/current/lib/node_modules/npm/bin/npm-cli.js
npm@2.5.0 /Users/hideack/.nodebrew/current/lib/node_modules/npm

$ npm -v
2.5.0

Jekyllで記事中にレンダリングされたMarkdownを差し込む

GitHub Pages を利用して静的なページを持つサイトを作るときにJekyllを利用していて、作成したページ中に別ファイルで書いたMarkdownファイルを流し込んでHTMLを作成したいと思ってあれこれ調べたのでメモ。

Jekyllのテンプレートのタグに include があるので、

.
├── _incldes
│   └ foo.md

といった具合に _includes というディレクトリを新しく掘ってその中にMarkdownのファイルを置いて

{% include foo.md %}

と書いたら表示はされるのだけど、Markdownファイルがそのまま表示されてしまった。
あれこれ調べてみると、

{% capture foo %} {% include foo.md %} {% endcapture %} {{ foo | markdownify }}

といった書き方で解決できた。中身的には

  • fooという変数を定義開始
  • 変数に _include に置かれたfoo.mdの内容を入れる
  • fooという変数の定義終了
  • fooの中身をMarkdownからHTMLに変換

といった意になると理解した。というメモエントリでした。

Graph-Easyで構成図(ブロック図)を描いてみる

PerlCPANで公開されているGraph-Easyを利用して構成図(ブロック図)を書いてみたいと思ったので試してみた。

導入方法はここを見ればすぐに出来た。普段cpanコマンド使っていれば、$ cpan Graph::Easy でインストールできるはず。*1

あとは、概略を書くとグラフ化される。記述の方法はマニュアルを参照するとおおよそわかる。

# sample.txt
[ Internet ]  -- WAN --> [ nginx ]
[ nginx ] -- LAN --> [ remp001 ]
[ nginx ] -- LAN --> [ storyboards001 ]
[ storyboards001 ] -- ref --> [ mongo001 ]
[ remp001 ] -- ref --> [ mongo001 ]
(LXC: [remp001], [storyboards001], [mongo001])

上記の様な記述を graph-easy コマンドの標準入力として渡せば結果を以下の様なブロック図として得られる。

更にLXCとnginxをVPSというグループでまとめたかったのだけど一旦書きたかった図はすぐに書けたので良しとする。

*1:インストールページに書かれているmake使って入れる方法でもすぐ入った

MongoDBでユーザ認証を有効にする

そして続けて新しく立ち上げた時のユーザ認証と外部ホストから接続できる様にする設定を忘れていたのでメモ...。

mongodb.conf の設定を以下の様にする

  • デフォルトでは bind_ip = 127.0.0.1 が有効になっていてMongoDBと同じホストからのみ接続できる様になっているので無効化
  • 同様に #auth = true となっていてユーザ認証が無効になっているのでこれを解除してユーザ認証を有効化

MongoDBでユーザ追加

滅多にやらないので忘れる...。2回調べたのでメモする。

  • ユーザ: foouser, パスワード:foopassword のユーザを foo_production データベースに追加する場合
$ mongo
MongoDB shell version: 2.0.6
connecting to: test
> use foo_production
> db.addUser("foouser", "foopassword");