Hatena::ブログ(Diary)

bravo, broken brake.

2018-03-19

ツェラーの公式のシェルスクリプト関数。

| 01:32

20分くらいでヤッツケた。

calcwday() {
  [ $2 -lt 3 ] && y=`expr $1 - 1`  || y=$1
  [ $2 -lt 3 ] && m=`expr 12 + $2` || m=$2
  d=$3
  echo "( $y + $y / 4 - $y / 100 + $y / 400 + ( $m * 13 + 8 ) / 5 + $d ) % 7" | bc
}

この程度で、だいたい用は足りそう。

2017-11-04

Vimconf2017

21:47

2014年の会に参加して、しばらく日程が合わず参加できなかった vimconf に

今年は強権発動して日程調整して、無理やり参加できました。

相変わらず nvi ユーザなのに、vimカンファレンスてどうよ…と自分に疑問を感じつつ。

10:10 - 11:10

Vim, Me and Community

@haya14busa

https://docs.google.com/presentation/d/14pViuMI_X_PiNwQD8nuGRG72GUqSeKDqoJqjAZWS39U/edit

残念ながら遅刻して、最初の方は聞き逃しました。スライドの 43枚めあたりで到着。

「酒が呑めるgif」という言葉にグっときました。

11:20 - 12:05

The Past and Future of Vim-go

@fatih

https://speakerdeck.com/farslan/the-past-and-future-of-vim-go

広く使ってもらうために使われやすいライセンスを明示的に採用することなど、なるほどと思わされる作戦。go はぜんぜん使っていませんが、vim-go を使ってみたいと感じさせられました。

しかし何しろ、翻訳の良さが際立っていました。 "super awesome" が "めっちゃやばい" になったり、ネーミングに .vim と付けるか付けないかなどの迷った点については訳者の私見も交えたり。

内容を理解した上で行われる同時通訳の妙に唸らされました。

13:05 - 14:05

Talk show

@mattn_jp @k_takata @kaoriya

# no URLs. (movie...?)

今半のすきやき弁当、めっちゃ美味しかったです。

壇上にレジェンドが3人。実物の mattn さんを初めて拝見しました。

気になるプラグインとして minpac なるものが上げられていて、そもそもプラグインを全く使わない自分としてはプラグインマネージャから試してみるのがよいのかな、と思ってみたり。

14:15 - 14:45

Creating your lovely color scheme

@cocopon

https://speakerdeck.com/cocopon/creating-your-lovely-color-scheme

最も感動した発表。

  • lovely にするには、まずコンセプトを決める。
  • 背景と前景となる primary color を設定して、あとは色相だけを調整してカラーパレットを作る。
  • そうやって最初にパレットを決めておくと色数が爆発しなくてすむ。
  • positive な要素を増やし、negative な要素を減らす。
  • 先人の知恵を参考にする。

こつこつやること、継続すること。語りに愛を感じる発表だったし、スライドのデザインがこれまた秀逸。

colorscheme を探すときには http://colorswat.ch/vim を使おう。

14:45 - 15:15

vim-mode-plus: The most ambitious vim emulator in the world

@t9md

https://qiita.com/t9md/items/236d09fea9bcdfabdcea

油断してたら英語発表。

でも atom か、そんなら自分はそんなにがっつり関係ないかも、と思っていたら、なんという力強いデモ。うぉ、なんだそりゃ、便利そうではないか、と ぐいぐい惹きつけられました。

このデモの見せ方がとても巧い。タイピングしている内容(キーとその機能)が hover されるし、その hover のフォントサイズはデモしながら on the fly に調整するし。

で、これまた同時通訳が最高に awesome でした。デモの通訳、なんてハードル高いんだ。"「ぽっ」とすると「あっ」てなって「しゅっ」と" とか、ツボりました。

デモで特に惹かれた move-down-to-edge , move-up-to-edge は便利そう…と思っていたら 数時間で haya14busa さんが実装してて「え?え?」とびっくりしました。

https://twitter.com/haya14busa/status/926712287066406912

早い…早すぎるよ…

15:35 - 16:05

Vim and Compatibility

@senopen

http://lamsh.github.io/slide/2017/20171104_VimConf2017/index.html

POSIX原理主義者きたー!?とビビったけど、内容は至ってまとも。ed からのエディタの歴史のまとめとか、現在の主要 distribution で搭載されている vim バージョンとか、資料性も高い。

16:05 - 16:35

neosnippet.vim + deoppet.nvim

@ShougoMatsu

https://www.slideshare.net/Shougo/neosnippetvim-deoppetnvim-in-vim-conf-2017

歌はありませんでした。

16:45 - 17:10

How ordinary Vim user contributed to Vim

@dice_zu

https://speakerdeck.com/daisuzu/how-ordinary-vim-user-contributed-to-vim

http://daisuzu.hatenablog.com/entry/2017/11/04/212947

「大したことしてません」て、いやいやいやいやご謙遜を。「壊れていることがわかる」と「どこを直せばいいかがわかる」の間には圧倒的な違いがありますし、それを upstream にきちんと取り込んでもらって世界中の誰かの時間を節約できているというのは「大したこと」です。

17:10 - 17:30

The new syntax highlighter for Vim

@p_ck_

https://speakerdeck.com/pocke/the-new-syntax-highlighter-for-vim

ruby か、… と思いながら聞きました。外部ツールにぶん投げて結果をうまいこと使う、という発想は好き。

17:30 - 17:50

You've been Super Viman. After this talk, you could say you are Super Viman 2 -- Life with gina.vim

@lambdalisue

https://github.com/lambdalisue/vimconf2017

勢いのある英語発表。

そりゃ「Gina のために vim を使う」という発想も出てくることでしょう。非同期処理は vim8 でも neovim でも使えるように切り出されるという話だし、不慣れな後輩ちゃん達に使ってもらうには敷居は低いほうがいいのは間違いない。


総じて今年も「天才たちの挙動を見られるイベント」でした。内容もさることながら、発表のやり方、見せ方、喋り方、という面でも非常に刺激になりました。

「高まる」とか「感極まる」とか言われるのも頷けます。これで参加費 5000yen は、破格だと思います。

kaoriyaさんはじめ、スタッフ各位の熱意に感服仕ります。

ローカル環境をあまり贅沢にして慣れてしまって素の vi しか無い環境で困るようになってしまわないように気をつけなければならないと自分を戒めつつも、まずは windows機に vim8 を入れて :Terminal を使ってみることにします。

2010-05-23

WiMAX 通信状況

20:44

AtermWM3300R のあちこちの電波状況をメモしておく。

日付 20100523
場所 茅場町要町(走行区間)
状況 電波

大手町ですら0、池袋ですら0。

ただし、飯田橋の乗り換え間はオートオフで切れてたため、計測なし。

それ以外は、ネゴってる気配もなし。

要町駅改札出てネゴり始め、エスカレータ乗るあたりでアンテナ表示点滅。

2010.06.28 追記

東京メトロの地下部分は全滅と思ってよさそう。

そのかわり(と言っては何だが)、都内の地上ではほぼ問題なし。

カバー率さえ上がれば、転送速度的には間違いなく最強なので、頑張って欲しい。

2009-08-15

ssh 経由でコマンドが実行できない時に読むメモ

| 19:43

server 上にあるコマンド hogehoge を

 user@ws% ssh server hogehoge

のように呼び出すことができないことがある。

これは、「リモートコマンドを実行する時、リモート側ではログインシェルは動作しない」という ssh の動作にハメられている可能性がある。

この場合、まず以下のように

 user@ws% ssh server "echo $PATH"

リモート側での PATH を確認する。ここに hogehoge への PATH が含まれていなかったら、ビンゴだ。

  • server の sshd_config で PermitUserEnvironment が Yes になっているか
  • server 上の ~user/.ssh/environment に PATH がちゃんと書いてあるか
  • server 上の ~user/.ssh/environment に書かれている PATH に hogehoge があるか
  • server の hogehoge に、user が実行できる権限があるか

このあたりを確認しよう。ちなみに sshd_config を書き換えた場合、sshd に -HUP を送ってあげる必要がある。

2009-05-04

ディレクトリ追加失敗時の挙動はアトミックでない

| 01:50

ちょっとびっくりしたので記録。

ディレクトリを追加する操作で、先行の追加に失敗すると後行はローカル作業ディレクトリだけ管理情報が更新されてしまい、リポジトリには存在しない状態になる。

例えばリポジトリ内に hoge が既に存在し、moge は存在しないとする時に、以下のように両方を追加しようとすると

% cvs add hoge moge (←二つのディレクトリを追加しようとする)
cvs [add aborted]: there is a version in hoge already (← hoge は既にある)
% cvs update
cvs update: cannot open directory /repo/module/moge: No such file or directory
cvs update: skipping directory moge (← moge はリポジトリ内に追加されていない)
% find moge
moge/CVS/Root
moge/CVS/Repository
moge/CVS/Entries
(↑しかし、作業ディレクトリ側の管理情報は、できてしまっている…)

cvs って、ディレクトリ操作はやっぱり苦手なのね。教訓としては…、一個づつやれってことかな。