はてなキーワード: リポジトリとは
GitHubのissueに、ビルド時に自分の環境だとエラーが出る問題から分かったことについて、ビルド環境の設定で変更してほしい事項とStackOverFlowさんのQAリンクを上げたら三が日なのに、1日で対応していただいた。
初PRの前に初Issueをやってしまったことは嬉しいような、悲しいような。
Pull Requestみたいにソースコードでばっと解決策を上げられるほど
自信がなかっただけなんだけど、
最初のissueを上げた後に、こんなことを書いたら
2, 3回自分で駄目出しand更新をした後も不安でいっぱいだったので
そのつかえが取れた今は、ただほっとするばかりだ。
いや、やっぱりリポジトリのPRの件数カウントが1になってるのを見ると
ちょっと嬉しい。
こんな気持ちはわりかし久しぶりだ。
ほかのユーザーに対して、言葉が足りんけどソーシャル♪みたいな使い方を
して初めて味わうこの感覚は、いくら繰り返しても慣れないけどわりかし好きだ。
Twitterの非公式RTで初リプライが帰ってきたりだとか、
IRCでhi guysって空気読めない感じにやっちまった時とか、
サービスインした時じゃなく、本当に使って初めて味わえるこの気持ちは
※マネージャを多少悪者気味に書いていますが、マネジメントの大変さはわかっているつもりです。
マネージャ「たぶん2週間ぐらいでできますよ!wordpressなら学生のころバイトとかでもよくインストールしてたから楽勝です!」
デザイナ「完全オリジナルのwordpressデザイン2週間か、なんとかなるかな?」
.... 略 ....
上司「あれから2週間だけど、こんなにバグ多すぎじゃリリース無理じゃない?」
マネージャ「違うんですよ!デザイナーが全然テンプレートの使い方覚えてくれないし、あのプログラマ人PHPわからないとか言って仕事中にPHPの本とか読んでるから遅れたんです!たぶん自分だけだったらこんなに時間かなりませんよ。」
デザイナ(「XHTMLになってない!」とか余計な所に口突っ込んできやがって!)
プログラマ(PHPなんて簡単だよとか言ってJavaプロジェクトからコンバートさせたのテメーだろうが!)
原因
マネージャ「このスケジュールなんだけど、テスト期間長過ぎじゃない?」
プログラマ「え、でも機能もこれだけありますし10日程度は妥当かと」
マネージャ「いやいや、画面たったこれだけじゃない、通しのテストなんてみんなでやれば1日ぐらいで終わるでしょ?」
マネージャ「俺がレビューしてるんだからそんなでかいバグ出るわけねえだろ。ナメてんのか」
.... 略 ....
プログラマ「セキュリティ周りのバグもあるので、修正には3日程かかると思いますが」
マネージャ「ふざけんな!テストは今日で終わるスケジュールだろ!」
原因
プログラマ「前のプロジェクトでgitを使って便利だったので、今回のプロジェクトでも使いたいのですが…」
マネージャ「バージョン管理とか使ってるの?あんなの効率悪くなるからやめたほうが良いよ」
マネージャ「前に俺がやってたプロジェクトではフォルダで日付ごとに管理してた。同じ風にすれば大丈夫だろ」
マネージャ「古いフォルダからファイルをコピーすればいいだけだろ。馬鹿か」
.... 略 ....
デザイナ(間違ってファイル上書きしたのは黙っておこう)
プログラマ(ローカルにgitリポジトリあるのは黙っておこう)
原因
マネージャ「何このCodeIgniterっていうの?」
プログラマ「あ、それ最近流行ってるPHPのフレームワークで、URLのルーティングが…」
マネージャ「はぁ!?フレームワークとか使わないと開発できないわけ?これだから最近のゆとりはダメなんだよ。」
プログラマ「でも、便利ですよ?」
マネージャ「俺のプロジェクトではそういう怪しいやつは使わないから。バグがあったらお前責任取れるの?」
.... 略 ....
マネージャ「どう、俺の書いたURLルーティングライブラリすごく便利じゃない?」
マネージャ「あー、それは仕様だからしょうがないよ。mod_rewrite使えば問題無いでしょ?」
プログラマ(他人が再発明した車輪のバグを修正するのって本当に不毛だな…)
原因
更新。
だったので、一応、これで不満が解消できたかなあと思っている。
今回は慣れてきたからか、それほど苦戦しなかった。
backgroundページからcontents_scriptへメッセージ送る方法を知らなくて
色々勘違いして少し手間取ったぐらいかな。
https://github.com/aoi-tomoyuki/compact_na_masuda
追記
ページ内にある同じURLをマウスオーバーすると、一番最初に表示された位置にポップアップされることに今気づいた。
なおします。
追記:23:14
なおした。
当方いわゆるweb系プログラマ30代。大学は卒業に失敗しているので学歴としては高卒。年収は800万に届かない程度。web系プログラマはインターネット上で目立っている有名プログラマも多くて、彼らと自分を比べると絶望するくらいに自分のスキルは低い。でも最低限の能力はあると思う(参考までに、 GitHub 上で一番starをもらっているリポジトリは 14 star というレベルの実力。150 star くらいあるリポジトリに PullRequest を送って取り込んでもらったことがあるという程度)。
で、このレベルの人間が周りの年上プログラマを見てると、「なんだ、こいつらが食って行けるなら、俺は楽勝で食って行けるじゃん」って思うことが多い。「その辺のちょっとだけできる大学生のほうがよほどまともだぞ」みたいなコード書く人間がのうのうとプログラマとして食って行ってる。ほんとうにひどいやつらが多くて、一番笑えたのが「経験豊富だしどん欲に学習してきたのでどんな言語も対応できます」って言ってた39歳の人間で、彼は「高階関数」という概念がまったく理解できなかった。「関数ポインタを引数で渡すみたいなもんですよ」って言ったら「関数ポインタとか実務で使うことないしwwwwwww」みたいに返されて絶句した。よく 2ch のプログラマ板で「if と for がわかればなんでも書けるし」みたいなこと言ってるやついるけど、「あーこういう人間がああいう書き込みするんだな」って変に納得できた。
でもそのひとは会社からそこそこの金をもらってた。それ見て思ったんだけど、いくらひどいコードであっても、「とりあえず動くものが作れる」っていうのはスキルの一種であることには違いないんだな。正直絶対に一緒に働きたくないし、そいつが書いたコードは絶対にメンテしたくないけど、メンテナンス性がどれだけ大事かってことを理解している経営層っていうのは少ないみたいで(これは経営層じゃなくてむしろプログラマ側のコミュニケーションスキルの問題の気がする)、とりあえず動いているように見えるものを作ることさえできれば、お金を握っているひとからお金を引き出すことは可能なんだな、ってことをそいつを見て理解した(またこいつが「コード読めないひと」をだますのがうまいんだ)。
で、ここで初めてタイトルにつながるんだけど、ようするにそれが「手に職」ってことなんだな、って思ったんだ。
詐欺ってのは言い過ぎにしても、「手に職」って言われる職業ってだいたい寡占なんだよね。たとえば資格がないとできない職業は資格を持った人間の寡占状態にある。プログラムを書くのに資格は必要ないけど、プログラムの読み書きは未だに特殊技能で(これは教育の問題だと思う)、コードのメンテナンス性の善し悪しを判断できるのもまたプログラマだけであるという意味でやっぱり寡占状態にある。
自分はプログラマだからこの寡占状態に恩恵にあずかっている側で、おかげで「ひとまず職にあぶれることはなさそうだな」っていう安心を得ることができているんだけど、この寡占状態って絶対不健全で、たとえば誰の目にも数字という形でわかりやすく現れてくる営業(一方からの勝手な見方で、営業の世界にもいろいろあるのかもしれない、イメージで語ってゴメン)だったら、「あいつ数字悪いな、切ろうぜ」ってなるレベルの人間が「まあでも我々にはプログラマの世界はわからないからなぁ、彼は優秀っぽい雰囲気があるし」みたいな感じでお金をもらうことができるんだもん。
だからやっぱり「手に職」って詐欺っぽい要素があると思う。だってそもそも「手に職があれば食うに困らない」って時点でおかしいじゃん。最低レベルの営業職と、最低レベルの技術職、どっちも最低のはずなのに「俺は技術職で手に職があるから困らない」ってどう考えてもおかしくない?やっぱり詐欺だよこれって。
技術力がアリそうとぼんやり感じる企業のgithubでの公開リポジトリ数ってどのくらいなんだろう?
って思って数えてみた。OSSホスティングサービスはGitHubだけじゃないって話はあるけど、自分が一番使ってるのが今のところコレなのでその範囲内で選んでます。
Google(https://github.com/google, https://github.com/GoogleCloudPlatform): 375
Microsoft(https://github.com/Microsoft, https://github.com/Azure, https://github.com/MsOpenTech, https://github.com/aspnet, https://github.com/OfficeDev,https://github.com/Reactive-Extensions,https://github.com/Microsoft-CISL) : 250
Github(https://github.com/github): 168
SoundCloud(https://github.com/soundcloud): 160
Twitter(https://github.com/twitter): 105
Amazon(https://github.com/amazonwebservices, https://github.com/aws, https://github.com/awslabs): 99
Facebook(https://github.com/facebook): 83
LinkedIn(https://github.com/linkedin): 62
Yelp(https://github.com/Yelp): 57
Airbnb(https://github.com/airbnb): 54
Netflix(https://github.com/Netflix): 48
KLab (https://github.com/KLab): 46
はてな(https://github.com/hatena): 36
クックパッド(https://github.com/cookpad): 35
Gree(https://github.com/gree): 33
Zynga(https://github.com/zynga): 31
Mixi(https://github.com/mixi-inc): 27
DeNA(https://github.com/DeNA): 23
ebay(https://github.com/eBay): 22
CyberAgent(https://github.com/CyberAgent): 19
楽天(https://github.com/rakutentech): 18
追記1:
Microsoftのリポジトリがアレコレ…とブコメで後から言われて、面倒だなーという印象を覚えました。
追記2:
自分で書くのとどちらが辛いかといえば、読むほうが3倍ぐらい辛い。
だからプログラムを勉強しようとして、コードリーディングから始めようとする人はまずいないし、おすすめできない。
■問題なのは行数じゃないのだ。理解できるかどうかなのだ。ここになぜこの変数があるのか、
なぜインクリメントしているのか。ここの配列はここで定義されているけど、どこにも使ってないのはなぜか。
ここの処理はなぜこんな場所にあるのか。
大体においてコメントは残されている。
/* ここでxにyを代入する */
いやそんなの見ればわかるって。私が聞きたいのは「ここで」「なぜ」「そんな」処理をしたかだ。
■プログラムのアーキテクチャに正解はない。あるのは哲学だけだ。
アルゴリズムとは違う。アルゴリズムには正解がある。最適解を出す最適な方法は1つしかない。
アーキテクチャの哲学とはシーケンスの流し方、データの扱い方であり、プログラムの骨格に当たるもので、
書いた人の人格そのものである。だから他人のコードはわからなくて当たり前なのだ。
■現実問題として、プログラマはそんなコードと対峙しなくてはならない。
書いた人は既に退職していない、そんことはザラにある。バグだらけ?大いに結構。
重要なのは機能なのだ。中身がどうなっていようが、そんなの気にもとめられない。
もしかして1から作ったほうが速いのではないか、プログラマなら1度は思ったことがあるはずだ。
だがそんな工数はどこにも用意されない。
■流用だ。すべての問題を悪化させているのは、特化されたソフトウエアの流用だ。
前記の理由で1から作るのを諦めたプログラマはそこから地獄のコードリーディングが始まる。
訳の分からない変数、配列、処理の羅列。データはあっちに飛び、こっちに飛び。全体を理解したころには
既に開発は終了間近。機能を無理やり作りこみ、素知らぬ顔でプロダクトを送り出す。
■だからこそ共通となるフレームワークやライブラリが必要なのだ。
ソフトウエアの優劣など正直どうでもいい。それを扱える人間の汎用性こそが重要なのだ。
1から理解する必要がなくなるというだけで、どれほどの炎上プロジェクトが鎮火するだろうか。
間違っても社内フレームワークやオレオレライブラリなどは作っちゃいけない。
■結論にいきたい。
他人のコードを読むのは辛い。だったら読まなくてもいいようにすればいいのだ。
用意された欄に数字や文字を書いて提出するお役所の書類のような、そんなコードライティングを目指すべきだ。
そして欄がない場合は、欄外に殴り書きするのではなくて、新たに欄を作るべきだ。そしてそれがプログラマの
3行で
そうだったのか。。。。落ち込みんぐwwww
Webに憧れたのは小学生の時だった。YahooKids!を開くとでてくるポンタの冒険に夢中だった。
ここにはないデータを手にして、ゲームができてしまう。インターネットすごい!!僕も作りたいとおもった。
中学になって、引きこもりぎみだった僕は自宅にあったパソコンの本を読みあさった。HTMLなるものを使えばインターネットがつくれることを知った。
必死になって意味を理解しようとした。headないにJavaScriptをかいて、bodyには本文をかいて。拡張子の存在を初めてしった。ファイル名+αの文字がなければ画像を
インターネットに乗せれないことを知った。色々な色を使ってデザインして、くそだなーと思いながらHTMLを書きまくった。
PerlやRubyにも手をだした。図書館で本を借りて理解を深めた。頼る人なんていないのですべて独学だった。
高校入学まえにHatenaをしった。higeponやnaoya、amachang、Hamachiya2にあこがれた。
Plagger芸を真似してぴざの配達でわらったり、ニュースさいとの転送してみたり。
RSSリーダーが流行ったのはどっちが先だったっけ?自分でRSSリーダーつくったりもしたなー。
ニュースサイトをまとめるWebServiceつくったりもしたっけ。
ApacheのカスタマイズとかLinuxKernelを理解しようとしてたWebな人達の向上心にひかれた。
higeponが未踏にとおったときに、学歴をしって、情報系の学部にいくのはやめた。
理学系の学部でSICPよんでみたり、データベースいじってみたり。好きにうごいた。そのころはWeb技術に関心はなかった。
学部4年になってから研究室のHP管理をしたので、そのあたりからWebの情報を取入れはじめた。
JS系のフレームワーク、AngularJSやらBackbone。すげーJSの見通しがたちやすくなっててエレクトした。
サーバー側も、RailsだけでなくFuelPHP、Laravel4、Sinatra、PythonのWebApp2とか。
Herokuを使って感動した。nodeなんてものがでてて椅子からひっくりかえった。
おもしろすぎて使いまくった。
ハッカソンにも参加してみた。僕の様なよばなれした人が出る場でないのはわかっていた。
作れない人達にかわって瞬時に作った。意見をその場その場で聞いて、作るべきものをはあくした。
楽々アイディアを形にしていった。他の学生と比べても僕の方が早く正確にかけた。
かなわないか、同じ程度だとおもったのはMSPの学生くらい。
だれよりも技術が好きで情報を取り入れてアイディアを形にした。
もちろんメールと一期一句同じではなく、僕の解釈した言葉ではある。
Webのプログラマになろうとしたじてんで一生技術を学び続ける覚悟はした。
それに沿って行動もした。実際にサービス作ってOutputもしてる。
僕よりも技術に欲ある人がいるということでもある。みたことない。
いままでハッカソンで会ってきた学生はC言語みたいなJSかくやつしかいないし。
生JSからAngularJSに移行したら僕の前から消えたようなやつらだ。
僕以上のスピードと正確さでサービスのリリースに尽力して、技術をもとめてるやつがいるのか。
面接で、クラウドとか、ビックデータとかPじゃなくてNやらHな言語を勉強してるとか言えばよかったのかな。
八つ当りにGithubのBackboneのプラグインにプルリクしといた。
今日はいくつかリポジトリみつけて気晴らしにプログラムをかこうと思う。
最後まで読んだひとはわかるとおもうけど、僕は人に通じる言葉が苦手です。
付き合ってくれて有難う。僕は地方で働きます。さよならWeb。
ぼくにはピンポンのアクマみたいな、 「おまえ誰よりWeb好きじゃんよ!!」といってくれる友達はいない。
それとも僕が無能(アクマ)だったのか。
Playbooks — Ansible Documentation
railsbox - Fast and easy Ruby on Rails virtual boxes
Ansible入門 (全15回) - プログラミングならドットインストール
Amazon.co.jp: 入門Ansible eBook: 若山史郎: Kindleストア
Amazon.co.jp: Ansible Configuration Management 電子書籍: Daniel Hall: Kindleストア
Red HatがITオートメーションのAnsibleを$150Mで買収へ…OpenStackデプロイをDevOpsのために簡易化
Git Clone (スタートアップスクリプトID:112600117316)
指定のGitリポジトリをcloneし、指定の実行ファイルを自動的に実行します。
https://github.com/philc/terraform
fog - The Ruby cloud services library
A list of base boxes for Vagrant - Vagrantbox.es
Discover Vagrant Boxes | Atlas by HashiCorp
https://github.com/ryotarai/itamae
Itamae - Infra as Code 現状確認会 // Speaker Deck
Amazon.co.jp: Chef実践入門 ~コードによるインフラ構築の自動化 (WEB+DB PRESS plus): 吉羽 龍太郎, 安藤 祐介, 伊藤 直也, 菅井 祐太朗, 並河 祐貴: 本
Docker - Build, Ship, and Run Any App, Anywhere
[翻訳] Dockerについてよくある勘違い | TechRacho
Puppet Labs: IT Automation Software for System Administrators
今までプログラマーをやってきて、状況や環境に左右されず有用だったツールを書き残しておく。
基本的に 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 を使うようにすると新しい発見がある。
+α.
非公開gitリポジトリを無制限に作れる、ユーザーもいくらでも登録できるってだけでも、結構なインパクトはあると思うな。個人的には、そこまで詳しい経歴を要求されてるとも思わなかった。というか、別に書かなくても登録できるし。
gitBreakに登録してみたけど。
なんすか、これ。単なるgitリポジトリ? そんで、経歴登録しろと?
開発元もgithubを念頭に置いているみたいなんだけど、公開リポジトリの一覧もないし(まだ数がないんだろうけど)、面白そうなコードも、それを探す仕組みもない。一方で経歴だけはやたらと詳しく書ける仕組みで、なんつーか、囲い込みでもするつもり?
これで、以前いた会社の提案を思い出す。
数年前のこと。小さな会社で、受託でぼちぼちやっていたような会社だったけど、あるときSNSを作ろうという案が出てきた。ちょうどmixiが有名になり始めて、ばらばらにSNSが立ち上がり始めたころ。で、案を聞けば、まさに就業、転職を念頭に置いた囲い込みをするということになっていた。
その時は自分もあまり逆らわないでいたけど、今から思えば「ユーザって、そんなに馬鹿じゃないっす」というところか。SNSとか、類似したコミュニケーションツールを提供すれば、ユーザはそこで遊んでくれて、なんでも自分のことを書き込んでくれるなんてことはない。各種SNSやブログサービスの隆盛をみればわかるように、場づくりってすごく大変で、ちょっとやそっとではユーザは動かない。ましてや、魂胆見え見えの囲い込みなんか、引っかかるわけない。
というわけで、もし似たようなことを考えている人がいたら、いろいろ考え直したほうがいいと思います。
Rails + Twitter bootstrapでエロ動画ソーシャルブックマークWebサービス、ソーシャルオナニー=ソシャニーを作りました。
こちらです http://www.socianie.com
【なにこれ?】
かっこつけた言い方をすると、
「いっぱいエロ動画あるけど結局みんなどんなお宝動画で抜いてるの?という日常的な疑問への答え」
とかでしょうか。
実際どんな事が出来るサービスかというと、基本的には、はてなブックマークのようにエロいページをブックマークする(その時に、コメントを付記することができる)というものです。
サイト内の他のユーザーをフォローすることができ、TwitterのようにTimelineのようなものがあってそこにフォローしている人がブックマークしたページが表示されます(そのページが、xvideos,fc2などの有名サイトならば埋め込みプレーヤーですぐ再生出来ます。)
つまり、フォローしてる人の最新お気に入りエロ動画がチェックできます。
ブックマークされたページはそれぞれが固有のページを持っており、タグを付ける事ができます。
全ユーザーのブックマークしたものは動画一覧で横断的に見ることができ、並び替え・検索などが出来ます。
ブックマーク数で今日のランキング今週のランキングなどが見れます。
あと、累計ブックマーク数によってユーザーのランクが上がったりします。
TwitterのOAuth認証でログインが出来ます(Twitterにツイート投稿などはしません。また、サイト内の名前アイコンもTwitterのものを流用するかどうかも自分で決められます。)
①ソーシャルな機能。他にも世の中に色々素晴らしいエロサイトがありますがそれらはソーシャル機能を持つものが少ない。
②上記の話とちょっと被ってますが、他のサイトは基本コンテンツ自体を自動クローリングするけれどソシャニーはそこをユーザー自身に委譲しているため、集まってくる動画の質はそれに比べて上がるんじゃないかというのと、
③エロサイトにありがちな出来るだけごちゃっと感を無く広告も無しでTwitter bootstrap使って小綺麗な感じ
【作成後記】
Webサービス作るならRailsかな楽で便利らしいしというざっくりとしたイメージからRailsで作り始めましたが、
ネットの情報や入門書に取り組んでもサンプルと同じモノは作れても実際自分が作りたいモノになると、で、どうやるの?となりなかなか進みませんでした。
Railsは色々と勝手によろしくやってくれる機能が多すぎて実際何が起きてんの?というのがわかりづらいというのが第一印象でした。
色々試行錯誤した結果、一番参考になったのはRails tutorial( http://ruby.railstutorial.org/ruby-on-rails-tutorial-book )でした。
英語ですがバージョンは新しいしBootstrapの使い方もわかるしサンプルがTwitterクローンサービスを作ろうというなかなかおもしろいものなので途中で飽きること無く取り組めました。
何かを学ぶ時は、モチベーションが続く形の学び方が一番いいと思いました。
僕はエロ動画が大好きなので、エロサイトというのもモチベーションの1つです(ただ、作業中に脱線して気づいたらキーボードではなく下半身に手が伸びているという事もありました。)
また、上記のチュートリアルはテスト駆動開発なのでSpecのテストをモリモリ書いているのですが、とりあえずはテストに関しては何をやってるのかざっと眺める程度で精読しませんでした。
まずは全体像を把握して何が必要か把握したかったからです。結果的に最後までやりきれたので良かったと思います。
あとは、Rails固有の知識ではなくWebサービス全般の知識で足りないな、と思ったときはネット上や本屋の立ち読みで済ましました。
ネットで細切れにお勉強している場合、本屋で体系的にまとまっている本をざっと読むと意外に抜けてる知識が保管されたり脳内にインデックスが作れるのでいいと思いました。
理由はみんなが良い良いというので乗っておくかという安易なものです。
実際のところgitの良い所を使い倒せているのかというと全くそんな事ないですね。
せいぜいstash位でしょうか。あとbisectとか。
リポジトリは最初はDropBoxに作ってたのですが、途中からBitbucketを使いました。
GitHubを使わなかった理由はBitbucketはプライベートリポジトリが無料で持てるからです。
また、恥ずかしがり屋なのでGithubで公開は敷居が高いと感じたからです。
初のRailsプロジェクトというのもありソースがイケてないので恥ずかしいのです。
いつかイケメンなコードをGithubで公開してオレツエーしたいものです。
サーバーはエロOKのところを探すのがなかなか難しく結局海外のVPSを使いました。
Linodeというところですが、他との違いを挙げるとiPhoneアプリ経由で再起動などが出来たりします。あまりこの機能使ってないですが。
構成はpassenger+apacheで、DBはSQLiteで特にLBなどはないです。
諸々構築後に人気が出た時困らないように負荷分散のお勉強なんぞもやりかけましたがまずは不要かなということで辞めました。
ちなみにサーバーがUS西海岸なのでSSHで作業するとエディタがちょっともっさりすることがありました。
プロジェクト管理は、会社でも使ってるのでRedmineかなと思ったのですがどうせ一人だしRedmineのUIすきじゃないのでTrello( https://trello.com/ )を使いました。
TODO,Doing,Done,Bug,Suspendのリストを作ってやること忘れないように管理しました。
ふと出先で思いついた機能とかをiPhoneでスイっと追加など出来て便利でした。
正月に公開してお友達界隈で見てもらったんですが、よかれと思って作ったChrome拡張にCSRFの対策が不備あり結局ブックマークレットにしたり、
ソースを見てもらったら設計がRestfulじゃないとかControllerがfat過ぎるModelに押しこめなどアドバイスをもらえたり無知な僕には色々とお勉強になりました。
出来たものはしょぼいものですが、「Webサービス作ったことないコンプ」は少し解消出来た気がします。
以上、月19ドルも払ってるのにお友達だけで使われてるのも寂しいので増田でまとめついでに宣伝してみました。
叩かれるんでしょうか。怖いです。いじめないで。
元ネタ: http://anond.hatelabo.jp/20120831224653
gentooではバイナリパッケージがないので、短い時間内に様々なソースをビルドします。
tmuxペインをコロコロ変えられたり、やってて落ち着かない、せわしない、と感じた場合は、
彼が元ubuntu童貞で、gentooにlinuxを仕込まれた可能性が高いです。
ビルドは時間がかかるので、一回のコンパイルでより多く最適化するほどお得感があります。
だから一回のビルドで何個--no-xxxxをつけたかにこだわる男は、gentooによって、
パッケージ一個あたりの余計な機能を省こうという発想がクセになっている可能性があります。
gentooによってlinuxを仕込まれると、焦って行うビルドが体に染み付いてしまうので、
雰囲気を良くしてより良いデスクトップにしようとは考えません。とにかくリソースロスに執着します。
loginしてすぐビルドして終わったらrc-update xxxx default; exit、のようなオペレーションを好むのもgentoo男の特徴です。
gentoo慣れすると、「ビルドしてるんだからCPUが熱くなって当然」の感覚が染み付きます。
だからファンがずっと回ってたり、ずっと「ゥゥオォ〜ン!」してたりして疲れきっていても、
してもらうのが当然なので、気を使いません。gentoo好きほど「居直ったギーク」になります。
基本的にgentoo好きの男はファン使いが下手です。
できるだけ水冷に変えたほうが良いでしょう。
ですので、重要なのはインストールしてしまう前にパーツ屋に行くことですよね。
/etcなどの場で、設定ファイルやスクリプトなどを直させてもらったとき、「sudo」と言ったり、
su root, suをするのが普通ですが、gentooなど管理者権限で操作する場に慣れきっていると、
su - rootさせてもらうのが当然になってしまってノーヘジテイトだったりします。
「あのソフトはプロプラに依存してるからダメ」とか「スピードはいいけどカスタマイズ性はイマイチ」とか…。
男同士のおしゃべりでは人気の話題なのでしょうが、当然女には不評です。
しかし素人OSになれていない男は、そんな話をすると嫌がられることすらわかりません。
公式のHPなどでrelease notesを品定めする感覚が、当たり前になってしまっているのです。
「ubuntuはこういう嫌なところがあって…」などの愚痴に対して、すぐ「別れろ!」などの
極端な反応を返すのは、他ディストリに興味の無いgentoo好き男性に多い傾向です。
例えばCiNii Articlesみたいに図書館系のDBにGoogleが乗り入れるようになった結果、そのデータつーかメタデータ・レコード自体はWebで容易に目にできるようになったし、その先にあるフルテキストとか資料のアクセシビリティもある程度向上した。
んだけど、これって一方で、図書館情報学系の用語で探す時のノイズを爆発的に増加させたんですよね。
例えば"機関リポジトリ"+hogeで検索すると、機関リポジトリとは関係ないCiNiiに収録されてる論文のレコードがことごとく上位にヒットするようになってしまった。なんでかってとレコードのページにJAIRO(機関リポジトリポータル)へのリンクが必ず含まれてるから。
普通の図書館のOPACのレコードでも、Googleが拾ってくる館では同様の状況があって、「タイトル」とかの書誌的事項というか項目名が明示されている=OPACが返すHTMLに文字列として含まれてるせいで、"[書誌的事項]"+hogeとかで検索してもそうなる。
これって、site指定やinurl使っての除外検索すればなんとかならなくはないんだけど、それだと図書館系DBのリソースは別に検索をしなきゃならないっつうね。
こういう図書館のもってるリソースの存在感が増したせいで(語の)図書館情報学用語(として)の存在感が減ったのって、Web屋と図書館屋のどっちかが責をおうべきものなんですかね。負うならどっちがより重いんですかね。
Eclipseがemacsやvimより優れている点を挙げてみよう。
・CVSリポジトリの構成を直接覗ける →redmineとかを使ったほうがいいんじゃないのか
・設定できる警告メッセージの種類が豊富。→警告そんなにいるのか
・復元機能が非常に充実している。 →バージョン管理ソフトがあれば普通だし
CVSのように以前の状態に復元すること、以前の状態の →diffじゃダメか、というかなんでいまどきCVSなの
ソースコードとの比較も容易。CVS(Eclipse標準装備)/Subversionプラグインにもこの機能は存在する。
・プラグインの数が豊富、膨大。 → 数があってもつかえるのは少ない
・プラグイン開発環境もEclipse自体に用意されている。 →開発環境を使って作る程のものでもなく、バッチファイルとかスクリプトでよくね
・ライセンス形態がCPLであり商用利用もしやすい。 →eclipse組み込んで出荷するの?
・上位版にWSADが存在する。 →WSDADってなに、WebSpereの残骸?
・Smalltalkで有名なVisualworksの影響を受けているため、
JUnitプラグイン(Eclipse標準装備)によるテストファースト、リファクタリングの他、eXtreme Programming環境が充実している。→Jenkinsのほうがよくね
・SubclipseプラグインによりSubversionにも対応できる。これはCVSよりも強力!→コマンドラインから実行するsvnコマンドを覚えておくとはターゲットでも動いて便利だよ
・Call Hierarchyプラグイン(Eclipse3.0から標準装備)によりメソッドの呼び出し階層を調べることができる。この機能は強力だ!→スタック見るだけのことじゃないの
・プラグインによってはURLを指定するだけでプラグインの自動ダウンロード、自動インストール、
自動アップデートができるためプラグインのインストールが非常に容易。→勝手に変わったら怖くない
・Eclipse上から直接Tomcat, JBossなどを再起動できるSysdeoプラグイン、JBoss-IDEプラグイン
という強力なプラグインが充実している。→えー、今頃Tomcat
・EclipseUML Omondoプラグインによりクラス図などを書いたり、
UMLによるModel Driven Architecture, リバースエンジニアリング
・RSSリーダープラグイン、MP3プラグイン、All The Newsプラグイン、
など様々なプラグインが充実している。→それ開発ツールじゃなくて携帯でやったほうがよくね
・PHP開発が可能なTruStudioプラグイン、Perl開発が可能なPerl E.P.I.C. プラグイン、
C/C++開発が可能なCDTプラグイン、AspectJ開発が可能なAJDTプラグインなど
他言語プラグインが充実している。→Java以外は所詮おまけだけどね
・そのほかにD言語プラグイン、C#プラグイン、Pythonプラグイン、JavaScriptEditorプラグイン、
CSSプラグイン, HTMLプラグイン, XMLプラグイン、(Jakarta)Velocity UIプラグイン、
Apache Antプラグイン(Eclipse標準装備)、非常に強力なApache Mavenを使うことができるプラグイン、
ゲームができるプラグイン、メーラとしてつかえるプラグイン、Wikiプラグイン、Hibernateプラグイン、
FindBugsプラグイン、CheckStyleプラグイン、Jalopyプラグイン、Sobalipseプラグイン、ソロプログラマープラグイン、
など様々なプラグインが充実している。→それぞれ単機能のソフトのほうが充実してるんじゃないの
どうしてもeclipseというなら止めないけど