スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

今日のプログラミング文学


コードの設計と実装を分離させる手段として
インターフェースで設計理念(振る舞い)を記述、
その実現インスタンスで実装を書く、
という方法があるよね。
すごくいい。
---------------------------------------------------------------------------------------------------------------------------
でもその弊害の具体例として
List l = Arrays.asList("a", "b");
としても
全然Immutableなことを感じることがでないし、
---------------------------------------------------------------------------------------------------------------------------
メソッド名を変えたとしても
ex: asList --> asImmutableList
クラスのプロパティにListインスタンスを記述、
代入はコンストラクタ内に記述、
などの
記述を分割する必要がある場合には
どうしてもわかりにくくなってしまうと思う。
---------------------------------------------------------------------------------------------------------------------------
だから場合と必要性によっては
インターフェース型として宣言するのではなく
具象クラス型として宣言して、
ポリモフィズムよりも明示性を重きに置く方がいいのかもしれない。
---------------------------------------------------------------------------------------------------------------------------
#今日のプログラミング言語文学
おわり。


スポンサーサイト

vim-quickrun for vim.

皆さん、Vim scriptを書いた時に
ファイルの一部だけ実行したい場合ってよくありますよね。
あります。

ではvisual modeにて実行したい範囲を選択してください。

:を押します。

:'<,'>QuickRun

(部分実行)


楽しい!!
✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌

VimShellのvimshell commandsへのPATHを追加するのがよくわからないからやってみた。

目的
・vimshell commands( vimshell専用のコマンドを定義した.vimファイル )を作りたい
・でも所定の位置( vimshell.vim/autoload/vimshell/commands )に作るとgit関連が面倒になる
・故にvimshell commandsを任意のディレクトリに追加する
・そこをvimshellに参照してもらう

具体例)
tweet.vimを~/.vim/bin/に置き、vimshellでtweet.vimで定義したコマンドを実行できるようにする。


結論
・公式の方法かはわからないし、別の公式的な方法があるかもしれない
・でもできた

参照
tweet.vimについて: http://yomi322.hateblo.jp/entry/2013/01/13/141003



方法
・runtimepathに末尾が'autoload/vimshell/commands'で終わるディレクトリを追加し、そちらにvimshell commandsを置く

具体例)
$ cd ~/.vim
$ mkdir -p autoload/vimshell/commands
$ mv tweet.vim autoload/vimshell/commands
$ vim -c ':VimShell'

vimshell% tweet ツイートテスト


これで "ツイートテスト" という内容のツイートが
VimShellのコマンドラインから投稿できます。

ツイートは1つの例なので、 (http://yomi322.hateblo.jp/entry/2013/01/13/141003
vimshell commandsはかなりの応用がききます。

ドキドキ☆VimShellライフ
ですね。


ぜひあなたもよきVimShellライフを。


あ、あとvimshell commandsってさっきから言ってますけど、
正式名称じゃないです。
正式名称…VimShell用実行ファイル?


あ、momonga氏のvimshell-kawaii.vimもどうぞ。


おまけ。



...

set runtimepath+=~/.vim/bin
vimshell% tweet hoge


...できました。



追記:
あれ? またできてない。
さっき一瞬できたのに。

momonga.vim#6に行ってくるなどした。

momonga.vim#6に行ってきた!



( ^-^) oO (
momomonga.vim#6に来た。
きのことたけのこが隣り合って置いてある。
鳥ステッカーとドワンゴステッカーもらった!
Vim scriptでexライクラインエディタを作ろうと思ったけれど
Haskellやりたみが強いのでHaskellで作ろう。
)


--------------------------------------------

マシンガン目録



 まずmomonga.vimのOPで、
バトルエディターズの1期OP, 2期OPをShougo氏に歌っていただいた。
Shougo氏が暗黒美夢王として発現しだしている…?
あいや「ここにHaskellできる人っていませんか…? ちょっとできるくらいでもいいので…」
と言ったら後ろのテーブルにいるまさかず氏をxga氏と思われる方に召喚していただいたので // ごめんなさい結局名前がわからないままだったんです!!
Haskellチョットデキルまさかず氏にHaskellを教えていただいた。
まさかず氏すごい。

具体的に言うと
readText fileName = do
bracket (openFile fileName ReadMode) (\h -> hClose h)
(\h -> do
contents <- lines <$> hGetContents h
let text = (contents,[])
print text
return text
)

のprintでtextがno show instanceと言われていたり
returnしたtextが受取側で([],[])になっていたりしたところを
readText fileName =
readFile fileName >>= return . ( flip (,) [] ) . lines

という圧縮率で解決していただいた!
まじマジック☆まさかずりんっ!


--------------------------------------------

休憩時間、ももんがさんが皆さんに「進捗どうですか」という聞き込み調査をするなどしていた。

なんとこの時点で僕は
"p<Enter>と押すと特定のファイルの1行目を表示するプログラム"
を作り上げている。
ももんがさんにも「これひょっとしてかなり利便性が高いのでは」などと言っていただいた。
p<Enter>と押すとファイルの1行目を表示することができます!!


 そして左隣にいる人が噂のななやん氏だった!!
次回の社畜怪談会について話したりなどした。

よく見たらななやん氏はHHKBを使っていたのでそれについても話したりなどした。
「そういえば「買って使ってみたら使い勝手がいまいちだった」と言っていましたよねw」などと言ってみると
「ナズェシッテイルンディスカ!?」などと驚いてくれた。
残念、あいやさんの情報網からは逃れられない。(逃れられないとは言っていない)


そしてmomonga.vim#6はDark Vim MasterのEnding Songにより
終わりを迎えることとなる。


--------------------------------------------

まったり



その後妖怪ハウスにてもくもくしていた。
犬さん、言語を作っているらしい。
マンボウさん、とても進捗な姿勢をしていた。
通称「第一デムパ受容体生物」、りひにーさんはEmacsを開いていた。
ももんがさんは飛んでた。


僕はというと、
マジック☆まさかずりんにData.IORefという全方位爆撃システムを教わり
多大な力を得た。

これがその力を用い、後日に手を加え生成した1513727進捗術式である。
なんとファイルの中身を表示することができる。
<進捗魂>



その後江添さんが焼いてくれたお手製ピザを食べることなどした。
C++は江添さんの手から出る。 故にこのピザにはC++が入っているなど考えた。

ピザすごいすごくおいしかった。


momonga.vim#6 is benrifull.

--------------------------------------------


--------------------------------------------
にゃわんご広告

あいやさんは本物のC++や何かのプログラマ的友達を募集しています。
採用情報
--------------------------------------------

超食中植物ネクトベントスの断食

「超食中植物ネクトベントスは何でも食べます。
うしだって食べるし、仲間だって食べます。
自分の子供でさえ食べてしまいます。
でも彼らは常に食べていないと枯れてしまうのです。
この生き物は悪いでしょうか?」
Answer: 「悪くない!」
Answer: 「悪くない!」
Answer: 「悪くない!」
Answer: 「悪くない!」
Answer: 「悪くない!」


 本当にそうでしょうか。
生きるために食べることは自分のエゴであると思います。
でもこのエゴは許されるべき、そうしないと何も生まないから。

 ではこの生き物は悪くないのでしょうか?
いえ、悪いと思います。
自己のために他を犠牲にするのは悪いことだから。

 では何も食べず何も生まず、
それが善なのでしょうか。
そうです、その通りです。
何も食べず、何も生まなかったことで
他を生かしました。
これで他の生物、食べられなかった生物は安らかに過ごせることでしょう。

何も食べず何も生まなかったことで
他の生物の安住を生むことができました。
おや、ということは何も食べず何も生まず…ではなく
何も食べず、しかし何かを生むことができたということになりますね。
素晴らしい、何も消費することなく何かを生むことができました。


 では何も食べられなかった側は、素直に枯れていきましょう。
仕方ないことですが、もう十分でしょう。
食べないことにより、生むことができたのですから。
ああ、食べなくてよかった。
何かを生むことができてよかった。



 ん、あれ?
そのくだんの生物、食べられなかった生物が何かを食べているように見えます。
何かが、おかしいように思えます。
まあそれも、些細なことでしょうきっと。


元ネタ
http://www.goldfishkingdom.client.jp/






....
...
..
.
( ˘ω˘)
..
..
..
<・> <・> カッ!!

momonga.vim#5に行ってきた。


ももんが行ってきた



あいや「JavadocのQuickRun設定をしたいです」

あいやはテザリング時のSSIDにiPhone_JavaHaskellCPPという恐れ多き名前を使用しているのだが
ももんがさんにiPhone_JavaHaskellCPPが見つかった!!
「すごい便利そう」
と言われた。
これがリアル「すごい便利そう」かっ!


はい? 進捗? ああ、知ってます知ってます。
コンビニで298円で売ってました。

明日はmomonga.vim#6でしう。

きゅるりんっ☆
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。