はてなキーワード: Sphinxとは
1. Markdown, Textileは知っていた。
2. 「何か新しいことを覚えようかなぁ」というコレクター魂のようなもので、reStructuredTextの手を付ける。
3. Sphinxなるものを知る。Pythonとから、Djangoとか、あの見慣れたチュートリアルを作るドキュメントツールがSphinx。
4. 面白いのだけど登場人物が多くて話が追えないなろう系のメモとして使ってみる。
6. LaTeX記法での数式表現、Matplotlibの機能に感動する。
8. 索引ページに気づく。
9. 日本語表示がイケてない。微分なら「は」の項目に、積分なら「さ」の項目に表示してほしいじゃん?「微」「積」の項目なんよ。。英語と同じように「頭の一文字」を取ったらそうなるよね。
10. 探してみたら、「Yogosyu」というプラグイン(※Sphinxでは拡張モジュール)があった。使ってみる。
11. 最新のSphinxに対応していない。ここからPythonのコード解析へと逸れる。
12. 取り敢えずエラーはでなくなったけど、元々索引ページとは関係ない機能だった。同一「用語集」での表示順が日本語に対応するだけ。
13. (しばらく放置)
14. 「単語の先頭に振り仮名を付け足せば、いい感じにソートしてくれる?」と気付く。
15. 表示の直前で「振り仮名」を取除くために、どこで表示しているか探す。
16. (紆余曲折)
18. ここで初めて「プラグイン形式にすれば良くね?」と気付く。
20. 出来上がって喜ぶ。
21. ここで初めて「これってクラスにしたら、全体の見通しが良くなったりする?」と気付く。
22.(この辺りで、unittestモジュールに手を付ける)
23. テストケースのお陰でリファクタリングが怖くない。喜ぶ。
24. setup.py, setup.cfgの書き方を学ぶ。
25. pypi公開を果たす。誰にも知られずひっそりと…
26. テストケースにjinja2を通した結果も加える。一人で成果に喜ぶ。
27. githubに手を付ける。学ぶ。基本的なことは覚える。
30. teratailに登録。コソコソ。「何がなんだか分からない」では質問しないし、そのうちどうにかなることが多い。先駆者に感謝。
32. coverageを知る。学ぶ。基本的なことは覚える。
33. circleciを知る。学ぶ。基本的なことは覚える。
34. カバレッジが90%を超えて喜ぶ。←今はこの辺。
※ボッチの日常
remoteでもlocalでも同じように動くという一点だけだと思うのよね。PGの単価が安いとかも有るけど。言語的には7.1からprivate const使えたり、まあ頑張ってる。
(※にも関わらず大本営が色々と改良しても、未だに新規案件で5.6とか持ち出す腐れ会社は滅びるべき)
なので、とにかくremoteでしか動かないコードってのやめてもらいたいんだよなあ。
Debuggerさえ使えるなら、magentoみたいなとんでもない糞コードの山(*1)であっても、コアコードを弄りまくったec-cube(特に2.x)であろうとも、縄文時代か?これ?みたいなオレオレフレームワーク(201x年でもオレオレ使ってるバカ会社が有るんですよ!)であっても追いかけて修正するなり殺すなり出来る。
ところがコード読み書きしないできないインフラ屋なんかが出張ってきて、やれvarnishだーSphinxだー云々やられるとDebugger使えないから死ねる。や、それを採用した人間が人類滅亡の時まで保守改修するならどうでもいいことなんだが。localにそれらを構築する?や、出来なくねえけどめんどくせえし。
今までプログラマーをやってきて、状況や環境に左右されず有用だったツールを書き残しておく。
基本的に Windows, Mac どちらでも動作するもの。
1. VirtualBox
ローカル PC 上に別の OS (Linux や Windows) を動作させる事ができるツール。複数の OS を同居させる事ができるので、自分の趣味用のサーバと仕事用のサーバを分けて管理したりできる。昔自分が Linux の勉強をした時は、メイン PC とは別にサーバ用 PC を買ってきて設定していたけれど、VirtualBox があればそんな面倒な事をしなくても済む。今は VirtualBox を更に簡単に設定できるたツールもあるみたいなので、それを使うのも良いかもしれない。
名前の通りパスワードを管理するためのツール。1Password https://agilebits.com/onepassword か KeyPass http://keepass.info/ が良いと思う。サーバサイドのプログラムを始めると、ssh やデータベース等、様々なアカウントを管理する必要が出てくる。root パスワードを忘れた時に、他の人がそれを覚えている保証は無いので保険としてぜひ導入して置いた方が良い。
何でも良いので、とりあえず汎用プログラミング向けエディタを使う事をお勧めする。Sublime Text http://www.sublimetext.com/、Eclipse http://www.eclipse.org/、Vim http://www.vim.org/、Emacs http://www.gnu.org/software/emacs/ あたり。Linux に関わるのであれば、Vim か Emacs どちらかは習得しておいた方が良いが、初期学習コストは高い。Eclipse は Java 以外の言語にも多数対応していて機能が豊富なので、最初はここから始めるのが良いかもしれない。もし Eclipse も難しいと感じたら、より普通のテキストエディタ寄りの Sublime Text から始める。
4. git
最近のオープンソースプロジェクトは github で公開されている割合が多い。そうで無くても git リポジトリの採用率はとても高いので、git のインストールは必須と言っても良い。また、個人用のリポジトリを作るのもとても簡単なので、小さいプロジェクトを始める時は最初に git init をしてしまうのが良いだろう。もちろん、svn や mercurial を使っているプロジェクトも存在するので、それらも適宜インストールする。
5. Google Account
これはツールでは無くて Web サービスだが、サイトのアクセス解析にしろ地図機能の実装にしろ、Web サイトの構築を Google 抜きで考えるのは難しい。また、開発メンバーとのコラボレーションを行う場合、Microsoft Excel をメールや DropBox でやりとりするよりも Goole Drive の Spreadsheet を使う方が便利な事も多いので、意識して Google を使うようにすると新しい発見がある。
+α.
僕は夜はさっさと寝て朝は早く起きたため夜中の大盛り上がりしたディスカッションに参加できず、
しかも夜中起きていなかったために多数の方にあわれみの視線を投げかけられましたが、
みなさんが豚のゲームやじゃがりこに夢中で熱く盛り上がっているのを見てかなり刺激になりました。
自分も次回参加するまでに昼夜逆転の生活に変えてもっと話に参加できるよう努力しようと思います。
最後に。ひとつだけ気になったのが、参加者のお一人の方(お名前を聞きそびれました…)が
ずっと周りの人にあきすてあきすてと言っていじられていたのが気になりました。
セカコミさんには Sphinx 拡張の開発で色々アドバイスをいただき、すごく助かりました。
主催のV様をはじめ、皆様本当にありがとうございました。
元ネタ: http://anond.hatelabo.jp/20110807233051
(別人です)