言い訳

そうか、はてなダイアリーからはてなブログにマイグレートされたんですね。

今月の閲覧数が100件を超えたよという通知が来て気付きました。

このブログの他に、自分はもう一つはてなブログを持っていますが、そちらも含めてブログを書くのは本当にご無沙汰です。なにせ書くことがなかった。

毎日一件以上mixi日記を書いていた学生時代が信じられません。

「書くことがない」というのは、厳密には書くほどの質と量を持つ話題の在庫がない、と言うのが正しいところです。

アウトプットが大事と言うのはよく言われますが、自分の頭の中でまとまってないものを書いてもなあ、という気持ちが先行して、結局書く気にはならないわけです。

さらに厳密に言えば、量はあるかも知れないのです。質が足りていない。

中身の質を上げるのは容易ではありません。そのうえ、毎日一件以上mixi日記を書いていた頃とは年齢も立場も違います。それなりに要求されるものが増えてきているわけです。

そんななかで、人生に疲れてみたり、ほかにやらねばならないことがあったりでは、ブログなり文章を書く頭の余裕も確保できなかったわけです。

ほかの同年代の人たちには、テーマとしてこれを書くというものが明確に定められて、きちっとそのテーマについて質を担保して書ききっている方が多いように見受けられます。

ホテントリとかを眺めていれば、質の高いコンテンツばかり流れてくるのは至極当たり前で、それを比較して自分はあそこまでは書けないっ…、と自重している面もありました。

テーマの話が出ました。質の話ばかりではなく、なにについて書くか、テーマを決めることもブログでは重要です。

会話の中での話題の豊富さには、時折自信があります。会話をしながら、あの話題と似ているから、それについても言及してみるかとか、全く違う話と見せかけて、最後にオチで一緒にしてみるとか、そういうのは好きだし、よくやります。

文章を書くと言うのは基本的には一方通行です。会話は双方向ですから、半分は会話相手がコミュニケーションコストを持ってくれます。

会話であれば続くものの、ブログが書けないと言うのは、今の自分の頭がそういうふうに最適化されているからでしょうか。

前段の通り、会話の中の引き出しは決して少なくないと思っていますが(でも、ワンパターンだなという自覚もあります)、それらは小さい引き出しで、文章を書くためには、もっと引き出しの中の容積を大きくしなければ書ききることができないのです。この大きさが、前述の質そのものであるわけですが。

どちらにせよ、引き出しの数が多ければいいというものではないのですね。

さらに言えば、今の頭の引き出しは、会話という外部からの刺激無しには開かないものにになってしまっています。

自分で選んだ引き出し(=テーマ)を能動的に開けることができなければ、文章は書けません。

書こうという意識がないと文章は書けないな、と今こうしてつらつら書いているだけでも痛感します。

話題の引き出しの数も容積も、ただなんとなく生活しているだけでは増えないし大きくなりません。

すこし意識を変えてみて、書き始めてみようかなと思います。

今年中に買うものをまとめた

ただし、実際に買えるかどうかは定かではないし、優先度低いものもある。

自動車関係

レカロ用シートレール
シャレードの純正レカロが余っているから早く使いたい。20,000円程度かなー。
LSD
覚醒剤じゃない方。冬場たしかに、ほしくなってくる機械式。どれくらいするんでしょうかね。
足回り
オーバーホールか、新調か。
ホイールとタイヤ
競技用のやつ。
スタッドレスタイヤ
今のやつはこの冬限りだと思う。住友ゴムコンパウンドを狙いたい。
車検
確定事項です。

文房具

PILOT CUSTOM74
限定色が出ればそれを。たぶんMじゃなくてFを買う。
ダイアミンのインク
使ってみたい

デジタル関係

Kindle Paperwhite
今のは画面割れてるので新調したい。
スマホ
Xperia Z1fからの乗り換えを検討。

その他

登山道具
雨具、ザック、靴。
着物一式
オフハウスを巡ればよいのでしょうか。

ほかにも、レンズとか、洋服とかもあるけど、ちゃんと予算組まなきゃならないのはこのあたりでしょうかね。

お金、いくらあってもたりないな…。

ハンドルネーム

ハンドルネーム。多くの人は、ご自身の名前をもじったり、リアルで呼ばれているあだ名を引っ張ってきてみたり、あるいは好きな小説、漫画、アニメ、ゲームのキャラクターなどから取る人が多いのではないでしょうか。ときに、過去のハンドルの由来を今になって考えると恥ずかしかったりしますよね。

今現在私は、「ゑぬぽい」あるいは「NPoi」というハンドルネームで活動していることが多いですが、はてなのアカウントは「hagane」です。

これは、はてなのアカウントを取得したときたしか私は中学2〜3年で、そのとき好きだったキャラクターの名前を取ったものです。この時期に取得したウェブサービスのアカウントは割と「hagane」で取ってることが多いような気がします。

当時「鋼(はがね)」というと、一番最初に出てくるのは「鋼の錬金術師」ネタが多く、先に「hagane」を取られているときには、大概「鋼の錬金術師」が関係する感じの人に取られていたと記憶しています。取得されていたときにどういったアカウントを取っていたかは全然覚えてないというところが、遠い過去の話であることを物語っています。ちなみに私は、鋼の錬金術師まったく分からないです。くぎゅー。

私の「hagane」は、パワプロクンポケットに登場する大東亜学園のエース「はがねつよし(鋼毅)」が由来です。パワプロクンポケットシリーズは2以降をプレイしたことがないので、完全に初代のキャラに惹かれたハンドルネーム選択です。

鋼はパワポケ1において対戦相手として登場します。彼はストーリーの裏に潜む影の大きな組織傘下にある高校に所属していますが、そんなのお構いなしに正々堂々勝負を挑んできたりで、結構男らしい奴なのです。
選手としてはカーブとシンカーが得意、球速も速めの投手です。打者としてはパワーヒッターもついててバランスのいい「エースで4番」ですね。パワプロ本編の何作かにも出ていて、9の試合前のキャラグラが好きです。

ちなみに、彼がパワプロで一番好きなキャラかというとそんなことはなくて、僕が一番好きなのは官僚大学の大蔵先輩(本名・大倉章)だったりします。

そういえば、弟がハンドルを決めようと迷ったときに、結局彼もとあるパワプロのキャラクターの名前にしたのですが、その際に血は争えないな、と思ったのは秘密です。


今のハンドルネームである「ゑぬぽい」「NPoi」に関しては、これは順当に本名からのもじりで、元をたどると最初は「N原」でした。ただ、これだとなんか英字にしたとき(NHara)に栄えなくて、他のものを検討しようと思ったんですね。

その後、「N原っぽい何か」→「Nっぽい」→「えぬぽい」→「ゑぬぽい(NPoi)」という変化をたどり、今の形に落ち着いたわけです。

そういえば、`NPOI`だと、.NETのエクセルとか操作するためのライブラリなんですよね。紛らわしくて申し訳ない感じがしますが、変えませんよ。

ちなみに、あまりリアルの方は、名字はともかく、名前に関してはあまり好きでないです。口にするのもなんとなく恥ずかしい感じがして、名乗るときも名字でとどめることの方が多いです。他の人から名前で呼ばれても妙に居心地がわるい感じがします。そんなわけで、ハンドルのもとにすることはあまり考えられませんでした。

あと、安易に誕生日とかの数字をつけるのも好きじゃなかったというところもあって、極力他の人と被らないやつにしたかったと考えていたのを記憶しています。Gmailは綺麗に取得できなかったのでサフィックスつけてますが、大体は取得できるんで、割といいもの選んだなと思ってます。

そのようなわけで、「hagane a.k.a NPoi」を今後ともよろしくお願いいたします。

Project Euler #1 をLuaで

--[[
-- Project Euler #1 non-loop
--         by NPoi
--]]

function f(base, max)
    a = math.floor(base * (math.floor((max - 1) / base) * (math.floor((max - 1) / base) + 1)) / 2)
    return a;
end

print(f(3, 1000) + f(5, 1000) - f(3 * 5, 1000))

matsuoka::ProjectEuler::Problem1
こちらを大いに参考にさせていただきました。

TokyoVim #8 手短に体験記

TokyoVimにお邪魔してきました。

目的

今日は「社会人になるにあたって、学生のときとは違うVimの使い方を感じられたらいいなぁ」というものを念頭にして参りました。というわけで、明確に「これをこうしたい!」といったようなものは持ち合わせていませんでしたw

やったこと

ひたすら、.vimrcいじったり、プラグイン入れていました。
その折りになんかエラーが出たりしていたので、Vim以外の部分を修正したりしていました。
わからない部分が見つかったりしたのですが、聞く前にWebで解決してしまうという繰り返しだったので、結局僕が口を開く回数は少なかったと思います。

感じたこと

皆さん静か!小さい音で、8bitサウンドなBGMが流れ続ける中で「これぞもくもく!」という感じでひたすらキーボードの打鍵音だけが響き渡る会議室、声が聞こえてくることがほとんどありませんでした。おやつのときの、たけのこVSきのこのときくらいしか、声をあげて盛り上がってなかったんじゃ。
と思いきや、TwitterのTLは結構盛り上がってるような気がしましたw
やはり雰囲気って重要で、家や会社で「.vimrcいじるかー。あー、どうするかー。あー、面倒だー、寝るかー」となっていた"だれけ"がなかった分、とにかく.vimrcに向かい合えました。実質行数としては増えてないと思うんですが、なぜここでこういう設定の書き方をするのか、などと言った部分で放置していた部分が埋められて、次に繋がるちょうど良い機会になったように思います。

じゃあ、今後どうしようか

ある文献によると、.vimrcの行数によって初心者、初級者、中級者、上級者、神が決定するらしいです。それによれば、僕はまだまだ初級者なので、まずは中級者を目指そうと思います(ぉ
実際のところは、設定を増やすことが目的では無く、使いやすい環境を構築することが目的なのでそれを目指すこととして、適宜必要であればプラグインなども自分で書けるようになれればと思います。

最後に

貴重な機会を企画していただいた[twitter:@kana1]さん、場所を提供していただいたタイムインターメディア様、参加者の皆さん、お世話になりました。また機会があれば、ぜひよろしくおねがいいたします。

ちなみに

帰りに、「俺たち越後や!」というラーメン屋さんでラーメン食べて帰りました。
だからなに、という話ですが、俺は好きです。おすすめはしないけど、好きです。
以上です。

paco 2.0.9 インストール

今まで、いちいち何かインストールする度に、checkinstallrpm -ivh ということを繰り返していたわけですが、このあたりで、paco を導入してみることにしてみました。
paco は ./configure → make → make install によってインストールする際に、間に入って管理をしてくれるソフトウェアです。とりあえず、インストールしてみました。なお、今の環境はGUIがないので、GUI版は ./configure の段階でインストールしないようにしています。

$ wget "http://downloads.sourceforge.net/project/paco/paco/2.0.9/paco-2.0.9.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpaco%2Ffiles%2Fpaco%2F2.0.9%2F&ts=1341543418&use_mirror=jaist"
$ tar jxvf paco-2.0.9.tar.bz2
$ cd paco-2.0.9
$ ./configure --disable-gpaco
$ make
$ su
# make install
# make logme

実際に使用する場合はこんな感じ。

$ ./configure
$ make
$ su
# paco -D make install

-Dオプションによって、現在のディレクトリ名が、管理するパッケージの名称になるようです。インストールしたパッケージの確認・管理についても。

# paco -a

checkinstall だけでも良いのかも知れないですが、ソースからインストールしたファイルをパッケージ管理出来る「paco」|DesktopなLinuxの設定とかにも書いてありますが、パッケージ管理システムとの混合はたしかにいやな感じがします。
まだ使い始めたばかりですが、次サーバ立てるときは、最初に導入しておいたいところですね。

.vimrc最新版

特別いじってない感じ。

"基本設定
set nocompatible
set number
set ruler
set wildmenu
set tabstop=4 shiftwidth=4 softtabstop=4
set expandtab
set smartindent
set autoindent
set nolist
set ignorecase
set nowrap
set showtabline=2
set showmatch
set hlsearch
set title
set wrapscan
set backspace=indent,eol,start
set helplang=ja
set laststatus=2
set formatoptions+=mB
set encoding=utf8


let g:calendar_datetime = 'statusline'

syntax on
filetype indent on

" neobundle.vim設定
filetype off

if has('vim_starting')
    set runtimepath+=/home/npoi/.vim/neobundle.vim.git

    call neobundle#rc(expand('~/.bundle'))
endif

NeoBundle 'git://github.com/Shougo/neobundle.vim.git'
NeoBundle 'git://github.com/Lokaltog/vim-powerline.git'
NeoBundle 'git://github.com/Shougo/vimproc.git'
NeoBundle 'git://github.com/Shougo/neocomplcache.git'
NeoBundle 'git://github.com/Shougo/unite.vim.git'
NeoBundle 'git://github.com/Shougo/vimshell.git'
NeoBundle 'git://github.com/Shougo/vimfiler.git'
NeoBundle 'git://github.com/thinca/vim-quickrun.git'
NeoBundle 'git://github.com/mattn/calendar-vim.git'
NeoBundle 'git://github.com/Shougo/vinarise.git'
NeoBundle 'Align'
NeoBundle 'SQLUtilities'

filetype plugin on
filetype indent on

" neocomplcache設定
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_max_list = 30

imap <C-k>     <Plug>(neocomplcache_snippets_expand)
smap <C-k>     <Plug>(neocomplcache_snippets_expand)

"Tab補完
function InsertTabWrapper()
    if pumvisible()
        return "\<c-n>"
    endif
    let col = col('.') - 1
    if !col || getline('.')[col - 1] !~ '\k\|<\|/'
        return "\<tab>"
    elseif exists('&omnifunc') && &omnifunc == ''
        return "\<c-n>"
    else
        return "\<c-x>\<c-o>"
    endif
endfunction
inoremap <tab> <c-r>=InsertTabWrapper()<cr>
                                                                            
" 日本語エンコードの判別
if &encoding !=# 'utf-8'
    set encoding=japan
    set fileencoding=japan
endif
if has('iconv')
    let s:enc_euc = 'euc-jp'
    let s:enc_jis = 'iso-2022-jp'
    " iconvがeucJP-msに対応しているかをチェック
    if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb"
        let s:enc_euc = 'eucjp-ms'
        let s:enc_jis = 'iso-2022-jp-3'
    " iconvがJISX0213に対応しているかをチェック
    elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
        let s:enc_euc = 'euc-jisx0213'
        let s:enc_jis = 'iso-2022-jp-3'
    endif
    " fileencodingsを構築
    if &encoding ==# 'utf-8'
        let s:fileencodings_default = &fileencodings
        let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932'
        let &fileencodings = &fileencodings .','. s:fileencodings_default
        unlet s:fileencodings_default
    else
        let &fileencodings = &fileencodings .','. s:enc_jis
        set fileencodings+=utf-8,ucs-2le,ucs-2
        if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$'
            set fileencodings+=cp932
            set fileencodings-=euc-jp
            set fileencodings-=euc-jisx0213
            set fileencodings-=eucjp-ms
            let &encoding = s:enc_euc
            let &fileencoding = s:enc_euc
        else
            let &fileencodings = &fileencodings .','. s:enc_euc
        endif
    endif
    " 定数を処分
    unlet s:enc_euc
    unlet s:enc_jis
endif
" 日本語を含まない場合は fileencoding に encoding を使うようにする
if has('autocmd')
    function! AU_ReCheck_FENC()
        if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
            let &fileencoding=&encoding
        endif
    endfunction
    autocmd BufReadPost * call AU_ReCheck_FENC()
endif
" 改行コードの自動認識
set fileformats=unix,dos,mac
" □とか○の文字があってもカーソル位置がずれないようにする
if exists('&ambiwidth')
    set ambiwidth=double
endif