「Eclipse」を含む日記 RSS

はてなキーワード: Eclipseとは

2016-02-16

SEの多いはてな民達に色々教えて欲しい入社4年目のワイ

入社して4年目である

まりコミニュケーションが得意ではないのもあって、入社直後は非常に苦労した。

正直人見知りだったのでわけのわからないことをのたまっていた時期もあった。

はいえもう4年目であり色々と手馴れてきて精神的にも余裕ができてきた。

しかも、最近現場は9時-5時で帰宅できるようになり肉体的にも余裕がでてきた。


と、ここらでレベルアップを図りたいと思っており色んな設計書の問題点を指摘した記事とかを読み漁ってきたわけだが

どうも、いまいち記事を読んでいてもしっくりこない。


アジャイルだの詳細設計書がゴミだのいろいろ指摘しているのは見かけるのだが今の自分現場環境があまりにも違いすぎてピンとこないのだ。

なんせ、入社してからやったのがガチガチのウォータフォール型の開発でアジャイルだのなんだのをまったくやったこともないからだ。


Gitなんて使ったこともないし、eclipseSVNソース管理し、古いシステムならCVSだって未だに現役がちがちだ。

幸いにもドキュメントはがっちり作ってあって過去システムがどういうものなのかはよくわかるようになっているが。


もちろん転職しちゃえとか色々まぁ考えようはあるが別に今の会社に大きく不満があるというわけではない。

そこでSE経験の長いお歴々に色々尋ねたいことがある。

機能設計書とか詳細設計書の具体例がぜんぜんわからん

http://nantonaku-shiawase.hatenablog.com/entry/2014/05/18/012107

↑上記のサイトウォーターフォール型開発の例を逐一説明してくれているがこんな一文がある。

ネット検索すると、みんなが批判している。私も作ったことがない。というか時代遅れと言われがちなSIerの私ですら書いたことが無いのに、書かせる企業 is 何。

詳細設計書という名のゴミ | Gm7add9

詳細設計書ってよくわからない - 未来のいつか/hyoshiokの日記

詳細設計書に何を書くべきか? - Sacrificed & Exploited

EXCEL設計書 Vol.1 怪文書大公開 | Same Old Lucky Day

詳しすぎる詳細設計書 - SiroKuro Page

設計書の非常識1.設計書には詳細な実装方法を書く - Sacrificed & Exploited

職業PGにわかFizzBuzz - 日々常々

ネット検索すると、みんなが批判している。私も作ったことがない。

なんだって!!!

俺は入社してからずっとガチガチに詳細設計書を書いていたし、先輩も皆書いてる。

一体どこの世界の話なんだ。

いくつかの現場にも出向したがそこでも普通に詳細設計書を書いていたぞ?


どういうことなんだこれは。

俺の想像している設計書とは実は違うものなのか?

だいたい、機能設計書なんて書いたことがない。


でもよくよく考えたら、なんだか説明されている詳細設計書と機能設計書は俺が書いている「詳細設計書」ではひとつにまとまっている気がする。

まり俺は業界標準がぜんぜん良くわかっていないのだ。

そもそもそんなのないかも知れないが。


そこで尋ねたいのは事例として機能設計書や詳細設計書の具体例が欲しい。

文章説明してるだけだとよくわからんのだ。

書籍でもWEBページでもなんでもいい。

そうじゃないとなんだかそもそも話に付いていけない。

あと、詳細設計書がかけなくなりそうだ(切実)。


テストが良くわからない

JUnitとかで機械的テストをするというのは良く聞く。

ところが俺の住んでいるところではExcelテスト項目を俺が書いて俺が単体テストを手動でやって、結合テストも俺が手やる。


結果列に○だの×だの書いて失敗したらまたやり直しだ!

延々とこれを繰り返す。


別にそれがいやだといってるわけじゃなくて(嫌だけど)、皆テストとかどうやってんの。

テストとかそもそもやってんの?

いや、テスト仕様書がないだけでテストしてんのか?



アジャイルだの何だのに手を出すのもいいのかもしれないがそもそもウォータフォールなV字モデルをぜんぜん理解し切れてない。

誰か教えてくれ。

2016-02-02

Macアプリケーション切り替え

最初Spaces使って、Space毎に特定アプリを起動し、Ctrl+矢印でSpace移動し、特定アプリアクセスしていたのだが、

Spaces廃止し、MissionControlが採用されるにあたりExposesを使うようになった。

Spaces二次元デスクトップが並べられる機能廃止したことにより、デスクトップ間の移動が億劫になったのが大きな理由

Exposesでウィンドウアプリ毎にまとまるようになり、特定アプリへのアクセスが容易になったのも一つの理由

だらだらと閲覧する時は上記の通り、トラックパッドからExposes起動しアプリ切り替えしているが、

キーボードゴリゴリ作業しているときはBetterTouchToolを使って、ショートカットキーアプリアクティブ機能を割り当てている。 (automator使う方法もある)

Ctrl + ~ でiTerm がアクティブ

Ctrl + 1 でchrome

Ctrl + 2 でslack

Ctrl + 3 でeclipse みたいな感じ。

大きく分けて、Spaces派 (現状は1次元デスクトップ並び)とExposes派がいると思うけどみんなはどっちを利用している?併用?それともドックアイコンクリック?

Winの人はタスクバーのアプリアイコンでもクリックしてて下さい。

2016-01-23

SIはやめておけ

20代の数年間SIで働いた。1年以上前退職して今は別業界にいる。

今日、Evernoteを整理していたら「退職理由、SIの嫌な点」というメモが発掘された。退職直前のかなりストレスがたまっていた時期に書き殴った文章だった。学生の頃の私は絵を書いたりしていて、ものづくり暮らしたいな〜などと思って始めたプログラミングが楽しかったので安易に受託開発業を選んでしまったが、その後悔が如実に表れていた。

一部自分でも覚えていない話もあったがコンテンツとしては面白かったし、今でもシステムインテグレーター業界で消耗する若者を減らしたいとは思うので公開してみる。

以下、同メモに加筆・修正したものなのでファンタジーだと思って読んでくれ。

工数至上主義

受注した時点で売上がおよそ確定するので、後はその予定工数に収めて納品できれば御の字という考え方。よくある話だが、見積おかしくても顧客と対等な関係が築けていないから追加請求もできない。時間(工数)をかければ良い成果物ができるかもしれないがそれを説明して顧客に嫌な顔をされたくないから、限られた工数の中での最善を尽くす。最善を尽くす、聞こえは良いが要は手を抜く。

まり、どう頑張っても売上は同じなのだから、良いもの価値を生むものを作ろうと考えない人が多い。社内で開発者と呼ばれる人間もそうだし、マネジメント層はそういうものづくり志向を持った人をリスク扱いすることもある。

これが諸問題の根源で、いかに述べるような組織プロジェクトが出来上がっていく。

作業効率化しない

マニュアル作業の正確さをかたくなに信じてる人だらけで、ITとは何なんだと考えさせられる。

私は定型作業効率化しようとjsやrubyスクリプトを書いたりしていた。テストデータを開発用DBに突っ込んだり、テキスト処理して整形したり、Excelからコード生成したりするよくあるやつ。

あるとき上司に肩越しに自分作業を覗かれて「何やってるの?」と聞かれ、そういうスクリプトを作ってると答えたら、工数とリスクの話をされた。曰く「そのスクリプト作るのに何日かかるの?工数に乗ってないよね?」「スクリプトテストもちゃんとしないと結果が正しいって保証できなくない?」と。この時はイラッとして「30分でできる数十行のスクリプトだし自分作業工数内で完結する。むしろ工程や別の人でも同じことを再現性できて楽になる」とか真面目に説明してプログラムも見せたが、読もうとはせず(読めないので)1時間無駄にした。

技術力いらない

前述したようなビジネスモデルから営業力と、予定工数で無難プロジェクトを終えるマネジメント力が大事。IT企業だが開発者は自社で持たない。不況の時に待機コストが発生するリスクがあるし、自社で抱えるより単価の安い開発者人材派遣系の企業や下請けにいっぱいいるから。

社長があるとき社内広報で「技術は買うものだ」と言っていた。文脈で明らかに技術=技術者のことだったので、使い捨ての人売り業と揶揄されていることへの自覚が無いと思う。

そういう人が集まっているor残っている組織なので開発者ほとんどいない。20〜30人ぐらいの課に1人ぐらいの割合でstaticおじさんがちらほらいるぐらい。大体20代からプロジェクトリーダーという立場をやり始め、だんだん大型の案件を扱えるようになっていき、後は出世ゲーム部長お気に入り課長になり、部門長のお気に入り部長になる。その繰り返し。

開発案件でのBP(ビジネスパートナー委託先、派遣下請け比率自分の周りだと1:5ぐらいが多い。プロパー社員一人が5人の開発を仕切る、みたいな形。案件規模によりだいぶ差があると思う。この比率が高い=マネジメント力のある組織と考える会社はこの数字を上げようと必死で、比率の低い組織は評価が下がる。

私は開発が好きだったのでエンジニアとして生きていきたい、というようなことを評価面談の度に伝えているが、その度に会社の目指す方向を説かれてモチベーションが下がる。

意識の低い開発者メンバー

上述の通り、案件で接する開発者基本的に社外の人間なのだが、彼らの技術力と意識の高さにはものすごいばらつきがある。言われたものはなんでもこなせる人、何でこの歳まで技術者やれてるんだと疑う人、このプロジェクトおかしいと良い意味で騒ぐ人、何も意見を言わない人、CっぽくJavaを書く人、人当たりは良いが技術力がいまいちな人、すぐ休む人、バグやミスを隠す人…etc。

まぁ色んな人がいるのはどの業界のどの職種も同じだが問題は質だ。私の主観になるが本当にエンジニアとして尊敬できるレベルの人は1%いるかいないか。というのも、ほとんどの技術者は長年SIやその周辺企業と付き合ってきているので同じ体質に染まっているのだ。顧客が良いといえば良いという態度(この場合顧客は私が所属する企業)、請負場合は工数を超えない範囲で手を抜く姿勢、その他諸々。技術力だけをひたすら磨き続けてきたという人はごく一部だけだったし、そんな人でもGitHubアカウント持ってない・ブログやってない・OSSに貢献したことない、といった具合でクローズド世界で生きている。

そうした技術者とやっていく中で最も厄介なのが教育コストだ。案件のあるなしで人が都度入れ替わり、新しい人が来るたびに同じシステム・技術要素の説明をして何とかやる気が出るようモチベートして、というのを繰り返すのに疲れた。私の会社固有の変なルール説明はてきとうにしておいて、私は技術が好きな仲間が欲しかったので今のシステム課題と技術面での改善や展望をよく話す。が、あまり食いつかれることはない。これは私の問題だが、そうした期待と落胆のループ疲弊の一因だ。

static BP

ある時、一つの課に6年近くいるというBPと一緒に仕事をする機会があった。その課にはプロパー技術者が長いことおらず、彼がその課の技術的中心を担っているという話だった。抜けられると途端に色んなものが崩壊するからという理由で、その人の派遣元にはかなり高額の単価を支払っていたと聞いた。課員が口をそろえて「あの人はすごい」「何でもできる」というので初めはかなり期待していた。

だが、拍子抜けした。あまりにも仕事が雑なのだコミットされたコードはTODOコメントだらけだし、バグがあまりにも多かった。一度も実行されずにコミットされ、他の人がチェックアウトした時点で判明したバグなんかもあった。それでも声が大きく、プロパーが技術を知らないのをいいことに自分ブランディングに完全に成功していた。客先にも顔を出し、信頼を得ているらしかった。「自分は設計が得意でテスト以降の工程には興味が無い」と言っていた。確かに彼が関わった各システムには独特の概念が埋め込まれた設計があったが、その複雑な設計は保守性が低く、他の開発者が触ると容易にバグを引き起こしていた。

また、彼はJavaの有名なフレームワークであるStruts拡張したいわゆるオレオレフレームワークを開発しており、それの出来は悪くなかったと思う。そのフレームワークに欠けているものをうまく補うような形になっていた。だがフレームワークバージョンを上げると壊れるというのが残念な点で負債になりかけていた。

私は異動したが、彼は今でもそこにいると聞いた。

技術の話

テストコード書けない

(最低限のものしか作らないから)安くて早い!という触れ込みで売っているので、テストの工数が異常に少ないことも多い。特にテストコードを書くなんてもってのほか。そういう世界でやってきた人ばかりなので、30や40超えたマネジメント側は「テストコードって何?」状態だ。大型の改修案件が来た時にはコア機能だけでもテストを書いていこうと見積段階から社内で提案したが「顧客に『そんなメリットあるなら何で今までのプロジェクトではやってないの?』って問われるから絶対言うなよ」と拒否された。

保守案件をやっていた頃、時間を捻出してコソコソとテストコードを書いたりしていた。その案件を離れてしばらく後、ある時リポジトリを覗いたら私が書いたテストコードがばっさり消えていて驚いた。コミットログから課内のstaticおじさん的な人が消したとわかったが、そのコミットコメントが「現在使用していないコードを削除」だった。これはもう問う気も失せて何も言えなかった。

リファクタできない

先述したようにテストがそもそもないプロジェクトが基本なのでリファクタできないのだが、たとえテストがあったとしても勝手なリファクタは許されない。ソースコード顧客の持ち物なので同意なしに改変することはいわば契約違反なのだ。たとえ内的品質が向上してコスト削減に繋がるとしても、そのためにお金を支払う顧客はまずいない。

レビューない

私がいたどの案件にもコードレビューがなかった。リーダー開発者数人という構成場合、まず開発者は全員下請けリーダーは技術の心得がない場合が多い。そうなると彼らの成果物の良し悪しを図るのは目に見えるシステム挙動実施されたテスト結果のExcel報告書だけになる。これが非常に非効率で、少しコードを読めばわかる明らかなバグや仕様理解齟齬が頻発していた。特に入試験と呼ばれるリリース直前の顧客側での最終確認や本番稼働中におけるhotfixは全機能をきちんとテストせずにデプロイされることが多く、そのhotfixがさらなるバグを引き起こしたりもしていた。

そもそもテストを書けという話だがテストが無いプロジェクトに足すのはかなり大変なので、レビューサイクルをきちんと回すだけでもかなり変わる。実際、私が入った案件ではすべてのコミットに目を通すようにし、明らかな問題は都度指摘することで品質の向上に繋がった。欲を言えば他の開発者にもレビューしてもらいたいが、下請けの彼らの工数を増やすことは嫌がられる。

新規技術試せない

無難プロジェクトをこなすことと新しい技術を試すことの両立こそ技術者の腕の見せどころだと思っているが、ほとんどの場合それは許されなかった。新規にせよ継続にせよ案件を受注する段階で営業マネジメント層と顧客間で「今回は過去に実績のあるこの技術でやります」という契約が結ばれているからだ。その技術(言語フレームワーク)がいかに古く、保守性も将来性もないものだとしても受注できればよいし、その技術のサポート切れか何かの拍子で再度リプレイス案件でも受注できればさらラッキーぐらいの考えでいる。

常に横に倣えのアーキテクチャは私にとって面白くはなかった。

横に倣え

また横に倣えが加速してさらに悪い事に、同じアーキテクチャネットワーク再利用するために既存のサーバに新システム相乗りすればよいという発想も珍しくない。「資産再利用によりコスト削減」という触れ込みだったが、ただでさえスケールしない低スペックオンプレミスサーバ上で複数アプリケーションサーバ運用した結果、予想通り耐障害性が下がった。

また、Oracleライセンスが高いという理由で一つのDBインスタンス上に10数個のシステムが同時稼働しているなんてこともあった。1つのシステムが高負荷なクエリを投げたせいで関連する全システム共倒れになったこともあったがOracleのバグとして報告していた。

static Perlおじさん

新人の頃にOJTでstaticおじさんの下に付いたことがあった。そのとき担当したのはPerlデータ連携用のバッチを書くという開発業務だったのだが、最悪の思い出だ。

まずプログラム構造仕様書というのを書かされた。メソッド単位でのモジュールを全てExcel上に記述し、処理の順番と内容を説明するという謎資料だった。あまりに意味がわからなかったので「UMLのクラス図を書けばよいのですか?」と聞いたら「Perlクラスなんて必要ない。構造プログラミング研修でならってないのか」と返ってきた。「俺が前に書いたPerlバッチがあるから参考にしろ」と言われ、あるリポジトリをチェックアウトして見てみると1ファイル4,000行の.plがいくつか並んでいた。その時の私は何もわかっていなかったのでそういうものかと思ってしまったが後で調べて明らかにおかしいと気づいた。

また、そのプロジェクトのメイン言語Javaで、Eclipseを使っていたのでPerlプラグインを入れてコーディングデバッグをしていたらやめろと言われた。理由は「Eclipse上で動くPerlが信用できない。サクラエディタで書いてプリントデバッグすれば充分だ」と言われた。その時の私は何もわかっていなかったので、プラグイン品質が悪いとかそういう話かと思い「じゃあvimで書きます」と言ったら「サクラエディタしろと言っただろ!」と一喝され、vim vs サクラエディタという史上類を見ないエディタ論争が起きた。

待遇・制度

給与

SI業界の中では高いのかもしれないが決してよくはない。4年目(たぶん25歳)ぐらいで残業込みで年収400万にやっと届いたがそこからほとんど変わっていない。30歳の先輩に聞いたところ「500万前後残業してない場合の月の手取りは未だに20万切ることがある。残業抜きでは新婚生活が厳しい」と言っていた。いわゆる年功序列がきっちりしていてこのまま続けてもしばらくは給与が伸びないということがわかった。

個人での貢献で差がつくのは±10万程度。その程度ならいっそ無くてもいいのでは、と思う。というかそもそも生産性をきちんと評価する制度存在しない。これはどの組織でも難しい問題だと思うが、形骸化した評価制度上司の気に入った人間にS評価を付けているだけならいっそ止めたほうが時間の無駄にならなくてよい。

マシン

会社から貸与されるノートPCは低スペックすぎて開発には使い物にならない。なので開発者基本的デスクトップ使用せざるを得ないのだがこれもメモリ4G、1.2GHz程度で大したマシンでもない。本当に開発する気がない。

組織問題

とにかくクローズド組織

つの間にかどこかで意思決定がされていて、関与する機会がほとんどない。だがほとんどの社員がそれで良いと思ってる。失敗しても自分が決めたことじゃないから上層の責任だ、そう言えるので楽だから

情報共有をしない、というか意図的にしないようにしているとまで感じる。連絡はメール添付ファイルベースで行っているし、共有のファイルサーバなんてのもあったが一部のフォルダ権限を持った人間しか見られない。何で他の部や課が行った過去の見積提案資料自由に見られないんだよ。

ソースコードリポジトリも同様。外部に公開しないのはまだわかるが、プロジェクト外にすら基本は公開していない。別に奪われて困る大した技術もない。

会社が用意した提案資料共有サイトみたいなのもあったが、それに至ってはもっとひどい。課長以上もしくは部長から承認を与えられた者のみ閲覧可能。共有とは。

意思決定の遅さ

どうでもいいことを決めるにも承認や根回しや説得が必要になる。それがプロジェクト利害関係者ならまだわかるものの、まったく関わっていない上長(課長部長、時には部門長)を通さないと進まないという異常さ。

コスト削減

利益率向上のためにコスト削減ということがしきりに言われており、過剰なコスト削減対応生産性の低下を招いている。たとえば顧客に見せる資料以外は白黒で印刷しろ、みたいなルール。色がないために情報が伝わりにくい。というかそもそも印刷せずに各自ノートPCで見ろという話だが、先述したようにノートPCは低スペックすぎるので多くの社員デスクトップを使っている。ITとは。

本当に無駄しか思えない承認・申請フローの煩雑さに加え、使っているシステムの使い勝手も悪く、ひどい日は一日がそうした事務作業で終わる。しかもそのシステムは自社で以前開発したものだというから泣けてくる。こんな作業が定常的に発生するのでいっそ事務員派遣で雇うべきという提案が何度もされたが、課の予算オーバーするから無理だという回答しか返ってこない。

残業削減

表向きは社員健康促進という触れ込みで残業時間削減を全社的に取り組んでいる。残業減らせと声をかけただけでは誰も帰らないので、勤怠システムと入退館管理システム監視し、削減できていない組織や人間評価を下げるようになった。

その結果、サービス残業が復活した。30時間を超えると部長説明しないといけない、50時間を超えるとその上へ…みたいなループ。表向きの残業時間削減・コスト削減としては成功したかもしれないが、社員残業時間を管理するとかい無駄な仕事を増やしたし、管理される社員ストレスサービス残業に繋がったので下策だと思う。

他人残業時間をExcelにまとめる仕事があって、そこに給与が発生してると思うと泣きたい。

そもそも無駄作業や工数至上主義作業効率が悪いから残業しているので、残業が少ない奴が偉いと一斉に舵取りしただけでは生産性をちゃんと評価できていないことに変わりはない。一昔前の残業多い奴は頑張ってて偉い、というのと本質レベルで何も変わっていない。

辞め方

2015-12-28

Vimキーバインドを忍ばせる人々

(Qiitaのほうに2019年版があるので今はそちらを…。こちらは2015年版な感じです。)

Vim(あるいはvi)のキーバインド提供する人がいる。

Vimの外でもVim風の操作ができたりするのは彼らのおかげだ。

デフォルトオプションプラグインアドオン、様々な手段提供されている。

Vimを使っている人でも使うかどうかは人それぞれだし、

どの程度Vim再現できているのかも実装によってまちまちなのだが、

なんだかんだで有名どころのテキストエディタ統合開発環境では何らかの形で提供されることが多くなったように思う。

以下は提供しているソフトウェアの一覧。

(一覧に無いものは私が知らないか忘れているだけなので、実際にはまだあると思う)

統合開発環境名称
Visual Studio VsVim
Xcode XVim
Eclipse Vrapper
NetBeans jVi
IntelliJ IDEA IdeaVim
MonoDevelopVi Mode
Qt Creator FakeVim
テキストエディタ名称
EmacsVIP
EmacsViper
EmacsEvil
AtomVim mode
Atomvim-mode-plus
Sublime TextVintage
Sublime TextVintageous
Brackets vimderbar
Visual Studio Code Vim
Light TableVim

他にもブラウザ向けのアドオンとか。

ブラウザ名称
FirefoxVimperator
FirefoxVimFx
FirefoxVimium
ChromeVimium
Chrome Vrome
ChromeVichrome
Chrome cVim
OperaVimOperate
Opera wasavi
Safari sVim
Safarivimari

いくつかのコマンドでも。

コマンド分類
bashシェル
zshシェル
kshシェル
tcshシェル
yash シェル
tig gitインターフェース
less ページャー
cgdb デバッガ
LuaKit Webブラウザ

hjklでスクロールできるWebサービスとか。

名称操作
Twitterjk前後の項目に移動
TweetDeckjk前後の項目に移動
Facebookjk前後の項目に移動
Google+jk前後の項目に移動
Tumblrjk前後の項目に移動
GitHub jk前後の項目に移動
Pocketjk前後の項目に移動
Pixiv(複数投稿) jk前後の絵に移動
ニコニコ静画(漫画) jkスクロール
ニコニコ静画(電子書籍) hjklで前後のページに移動(wasdでも可)
はてなブックマークjk前後の項目に移動

ゲームも。

名称操作
nethackhjklで上下左右に移動(yubnで斜め移動)

追記

viのhjklは先行する何かの影響で実装された記憶があるので、操作共通からというだけで「viを忍ばせる」というのは言い過ぎではないかという気がする

> まして「vimを忍ばせる」というのは、ちょっとその、まあなんというか…

かにVimではなくvi模倣だったりして無理があった…。hjklの大元を辿るとどこに辿り着くんだろう(ビル・ジョイの使っていたキーボードとは別?)

2015-12-22

最近vim偏重主義に思うこと

ここ2,3年くらい、Vimが妙に流行っている。はてブqiitaでもVim関連のページが出れば大量にブクマがつくし、「俺はVim派だから」みたいな発言大学だったりtwitterだったりでもみる。

しかしその実、世間に出回る「vim tips」みたいなのをみると、cやr,はたまたw,$,0,..など超がつくほど基本的ものしか載っていない。

なんでこんな常識的ものにこんなにブクマつくの???っていっつも驚く。

昔はvimに憧れるワナビーブクマをつけてるのではないかと思っていたが、どうやら今のネット界隈では「vim派」と言って通ぶることが一種ステータス?になっているのではないかと思うようになった。

ちょっと前に流行ったvim pluginブームもびっくりした。vimあくまでもIDEなんていらないスクリプトを書いたり、CUIでエディットしたい時に使うものだろう。

ものには使いみちというものがある。文章、少なくとも日本語Vimに向かないし、Javaの開発ならeclipseですらvimよりよっぽど生産性が高い。

vimにpluginなど入れて喜んでいる一部の人達をみると、やはりvimで通ぶっているだけではないかと思えてしまう。

.vimrcは長けりゃいいっていうものではない。それがemacsに対するvim美徳ひとつではなかったのか。

そもそも、vim人口が見かけ上増えているにもかかわらずemacs人口が増えていないのがおかしい。どうも最近vim派の人たちはemacsをあまりうまく使えていないようである。(俺のまわりだけかもしれないが)

昔のhackerはエディタ戦争なんて言いながらもお互い両方のエディタを使えたものだ。大体がshellでset -o viなんてしたら使いづらくて仕方がない。shellはctrl-aで先頭に戻るし、ctrl-rで履歴検索をするものである

そもそもエディタ戦争なんて洒落にすぎないんじゃないかと個人的には思っている。viEmacsは基本教養である。どちらかしかできないのは文盲のようなものである

いつからvim界隈はこんなに歪になってしまったのか。

vimvim言ってブクマしてるみなさん、vimtutorは起動したことありますか?Vim関連の記事100個ブクマするよりよっぽど有用です。

Do one thing and do it wellって知ってますか?一つのプログラムでなんでもしたいならwordかVSで十分です。無理してviを使う必要はないです。

俺はまだLinuxを使い始めて10年くらいだけれど、エディタvi(m)一筋だった。

それだけに、今のviを取り巻く環境は悲しい。

何がいけなかったのだろうか。

コメントをもらった。同意してくれる人がいてうれしい

あとvivimがうんぬんというブコメありましたが、逆に今日vivimを使い分けることがあるんでしょうか…?

(もちろんインストール直後のdebianとかだとvim.tinyしか入ってないけど)

普通/usr/bin/viってvim.basicを指してることが多いと思います。もしvim.tinyを指していたらごめんなさい。

てかaliasなりupdate-alternativesみたいなの使われたほうがいいのでは…?

id:akanehara増田はじめてだからよくわかんないけどブコメに返すのこれでいいの?)

いやね、俺はNeoなんちゃらとかなんちゃら.vimとかのプラグイン流行りまくってるのどうかと思うんよ。

vi使いたくてあんなゴタゴタした画面分割するならtmuxscreenで別タブにシェル開けばいいしそのほうが拡張性高いじゃん…っていう。

それかVSなりIntelliJで(ちなみに俺はeclipse使います微妙disったけど)

あとはSIGSTOP(てかSIGTSTPか)で止めるのもよい使い方だと思う。

とにかくこれからviなりunixを使い始める人達がああい害悪に影響されてほしくない。Neoほげほげよりtmuxとかctrl-zのほうがのちのちず~~~っと役に立つから

vi流行ること自体はいいと重いますemacsもっとはやって欲しいです。nanoは即update-alternatives --config editorするんで知りません

と思ったらなんかみなさんいろいろ考察してくださっていますが、今やviクラスタunixクラスタなのか…

なんてこったい

id:Lycoris_i

TeXは確実にGUIのほうが使いやすいよ。俺はTeXstudioだけど、シェアウェア買ってる人もいるね。特に仕事道具にしてる人は。

vimじゃあPDFからジャンプとかできないから校正の時とか使いづらいことこの上ない

id:FantasyZone3, id:lbtmplz

一理ある

id:SndOp

俺も割と同じ意見だよ。煽りとかじゃなく。

問題vim scriptelispに劣ってるところだと思う。

言語プラットフォームとしてみたときやっぱりemacsには一日の長があるよ

なのにpluginとか言って喜んでるのはなんか違うと思うなあ。

2015-07-24

アプリへの要望が来たが

Androidアプリを公開しているが、何年か前に公開したアプリ機能提案がきたわ。

メール検索たらこの人からバグ報告とかメールが来るのは3回目。

でもアプリの開発環境はもう、EclipseからAndroidStudioに移行してるからソースを引っ張りだして環境を構築するのが大変すぎる。

それのこのアプリの稼ぐ広告費は月500円以下だし、データ作成とか金をかけて改善する気になれんのよ。

すまんのう。

2015-06-17

6/16の日記

日記なのだから日記を書こうと思う。

■7:00 起床

 最近使い始めたアラームアプリは簡単な計算問題を解く必要がある。

 今日は27-13。

 最初は良かったけど、最近は寝ながらでも問題を解けそうなので、

 問題難易度を上げようと思う。

■7:05

 ベットに寝ながらネットサーフィンをする。

 昨日Newspickで書いたコメントいいねがついていた。

 やっぱりアイコンを女の写真にしておくと食いつきがいい。

■7:30 出社準備

 ベットから這い出て軽いストレッチの後シャワーを浴びる。

 またネットサーフィン

 未だにテスト駆動開発とか言ってるのを見つけて懐かしい気持ちになる。

 去年死んだでしょ?

■8:40 家出

 自宅を出て駅へ。

 どういうことか、行くときに反対方向にすれ違ったおばちゃんと

 5分後ぐらいに別の交差点で会う。

 数年かけて最短コースを探索したつもりだったけど、

 まだ他に抜け道でもあるのか。

■08:57 電車に乗る

 今日電車が遅れてきた。

 最近時間通りだと驚くぐらいだ。

 同じ車両に綺麗な女性を見つける。

 彼女に会えただけで今日家を出てよかったと思える。

■09:30 会社最寄駅到着

 今日フレックス出社。

 09:15には出社する予定だったはずだけど気にしない。

 コンビニでお昼ご飯を買う。

 今日会計モバイルSuicaで払おうとしたら、

 言う前に店員がSuicaタンバイしてくれていた。

 有能。一緒にLINEIDも渡してくれたら完璧だった。

■09:45 会社到着

 遅刻した気がするがいつものごとく何も言われない。

 この会社就職して良かったと思える瞬間。

 スマホロッカーに入れて、PCの電源を入れて一休みする。

 今日も一仕事終わった感。

10:00 仕事開始

 くだらないメールを読んでくだらない電話に回答して

 ネットサーフィンする。

 近くにいる今年配属された新人ちょっかいを出す。

 相変わらず真面目で面白味のないやつだ。

 2ch二次裏ニコ動ネトゲはてな発言小町も知らないらしい。

 うむ、その生き方が正しい。

11:30 まだ仕事

 やっと雑用が終わってEclipseを立ち上げる。

 起動を待ってる間にネットサーフィン

 木村岳史の極言暴論コラム、今度は「中国にも抜かれるIT後進国ニッポン

 人月商売が引きずり込む奈落」らしい。

 この記事Facebookいいねランキング一位なんだけど…IT後進国だと実感するわ。

12:30 昼休み 

 朝コンビニで買ったごはんを食べる。

 今日は早く帰るだろうと思い、残業用に残しておいた菓子パンも食べる。

12:45

 「達人プログラマー」を読み返す。本に書いてあるようには上手くいかない。

 自分けがDRY原則割れ窓理論を守ってもしょうがないんや…

 昼寝。

■13:00 午後の仕事再開

 人から質問を受ける。

 「この社内業務用のサイトがやたら遅いんだけどなんで?」

 あーとりあえずF12押してからF5押してください。デバックできます

 …このサイト、ただプルダウン表示するだけでサーバと六千回通信してる…!?

■13:30

 摩訶不思議サイトの件はもっとPHPに詳しい人に投げる。 

 いつも思うけど、どうやったらあんなつくりにしようと思えるのか。

 IT後進国

 やっと自分コーディング作業を開始する。

 といっても朝だらだらしているうちにだいたい考えていたので、

 あとはタイプするだけ。

■14:00

 タイプに飽きてきた頃に別の人から質問を受ける。

 「去年君が作ったプログラム見てるんだけど、

  あれなんで実コード10行程度なのに10画面もあるの?」

 一時期私の中ですべてXMLに書くのが流行った時期があるからですよ。

■14:30

 本気で飽きたので業務と関係のない自動プログラムを作って遊ぶ。

 あとは上司にこのExcelを開かせれば楽しいパーティーの始まりだ!

 だいたいこういう調子に乗っているときはよくないことが起きる。

■15:10

 そして顧客から障害発生の連絡を受ける。

 幸い運用は止まっていないけど今まで見たことのない挙動をしてる。

■15:30

 障害の原因特定。現地の担当に連絡して対処してもらう。

 一段落したけど、担当から

 「今日は様子を見るので遅くまで残っておいて」とのこと。

 昼に菓子パン食べたの後悔。

■16:00~

 記憶がない。

 たぶん仕事ネットサーフィンしてた。

■21:00

 帰宅準備。

 帰り際に同じフロア女の子からしかけられる。

 「いつも椅子に浅く寝るみたい座ってますよね。

  落ちないかな、と思っちゃいます。」

 これはプログラマー伝統的なポーズなんだよ。

 古事記にもそう書いてある。

■21:30

 スマホを取り出すとこの前の日曜に遊んだ女子大生からLineが来てた。

 「ブラック企業って本当にあるんですか??」

 大学生らしい質問だと思う。

 企業ブラックホワイトで分けられないんだよ。

 

 他に一つ下のフロアで働いてる女性に送ったLine

 もう一週間未読放置されてる。徹底的すぎるでしょ。

 事務連絡っぽく送ったんだからせめて既読ぐらいつけてくれてもいいのに。

■22:00 晩御飯

 スーパー惣菜を買って帰って食べる。

 スプラトゥーンの対戦実況動画にもそろそろ飽きてきた。

 ココア神拳動画はよ。

23:50

 この日記を書き始める

2015-05-21

スマホゲームを作りたくなって、cocos2dxというライブラリを使うことにしたのだけど、環境構築がむずかしかった。

解説書を三冊買って、本の手順どおりにやったのだけど、うまく動かない。

三冊のうち二冊は今年でた本なのに、もう情報が古くなってるのな。

AndroidサイトからEclipseダウンロードしろって書いてあるけど、もうAndroidStudioに移行していて、Eclipseダウンロードできなくなってるの。

Eclipse本家サイトからダウンロードして、SDKプラグインを入れたらいいのかなとか思っていろいろ試したけどどうしても実行できない。

で、結局Eclipseなくてもビルド&実行できると気づいて、開発はxcodeですることにした。

ホリエモンプログラムHelloWOrldにたどり着くまでが難しくてあとは簡単とか言ってたけど、まじそうだな。

2015-04-12

5年ぐらいC#使ってたけど、仕事で突然Javaを使うことになった

一か月ぐらいJavaと格闘してしまった。

MSSQLだったのがMySQLになって新たにTomcatMyBatisSpringを使うようになった

Frameworkがガラッと変わってとても使いづらかった。ASP.NET使ったら簡単にできるようなことを

上手く動かなくて面倒くさかった。こんな使いづらい言語だれが使うんだ!?とか普通に思っていた。

Java自体というより実質標準になっているFrameworkが面倒くさい

設定ファイルが多すぎ。意味不明過ぎ。あとエラーログが正確じゃなくてがわけわからん

正式ドキュメントが充実してない。一般のブログに頼る必要がある。

Eclipseも使い始めたけど、DBViewer使いづらい。やっぱMicrosoftと比べるとヒドイね。

DBViewerのスクリプト書くところで選択した領域だけ実行したいんだけど、どうやんだ、これ。

Eclipseも使いづれー

でも人口多いんだよなーJava。なんで使ってんだろ。みんな。Microsoftに比べて安いからか?

品質と使い勝手を天秤にかけてもJavaを使いたくなるようなものか?

まぁ、一回Frameworkの仕組みを覚えたら案外使いやすいかも、とも思う。

あと、Update期間めちゃくちゃ長いですね。Java6,7,8って10年ぐらいかかってんじゃないですか。

何が良くて使ってんだろみんな。

2015-01-13

http://anond.hatelabo.jp/20150113134116

クラス継承は常に単一継承なんだよ。インターフェースは多重に継承できるんだよ。無いと結構困るだろ?

Pythonではクラスは多重継承できるよ。

そもそも、静的型付け言語みたいに、インターフェイスを型で揃える必要ないけど(ダックタピング)。

普通にアクセサメソッド作るやろ。

PHPとかだとマジックメソッドgetなんちゃら()をプロパティのようにobj->変数アクセスしたりする。

アクセサなしのプログラミングpythonでの常識なのかもしれないが、そんなん変数いつ壊すかわからんから怖いだろ…

命名規則で充分だろ。Pythonでは'_'を先頭につけるのが標準。

マジックメソッドPythonにもある。

他、pythonには__init__.pyも含めた「簡素ではない独自ルール」が存外多いってのを問題視しとんのや。

少なからず、初心者向けじゃないぞアレ。無駄に躓くポイントが多い。

Javaビルドのほうが遥かにめんどくさいじゃん。Eclipse無しに複数ファイルコンパイルとか、プロでもできないやつ多いんじゃね?

Python初心者向けじゃないのは、日本語でぐぐった時の情報が少ないことかな。

2015-01-09

プログラミング初心者コマンドラインを薦める人

初心者プログラミングを始めるのに、コマンドラインで始めるべきかIDEを使うべきかって話で「IDEを使って楽して覚えるとろくなプログラマにならない。敷居は高いけどコマンドラインで覚えるべき」みたいなことを言う人いるじゃん。

20年くらい認識が遅れてるよな。

初心者にとってはIDEのほうが敷居が高いと思うわ。

掲示板とかで「プログラミングをやりたいけどどうしたらいいですか」「とりあえずMSサイトからVSをダウソしろ」とか言われて、VSをインストールして起動してもなにしていいかわからないだろうし、eclipseなんかインストールの段階でつまづくんじゃないの。

あと、2chあたりで10行や20行くらいのコードを貼って「動きません。教えてください」みたいな書き込みしてる人がいるけど、こんなのもデバッガ変数の中身見ながらステップ実行すれば簡単に分かるのにって思うようなのばっかり。

こういう人は、学校コマンドラインで教えられてデバッガの使い方を知らない学生なんだよね。

コマンドラインを薦める人のイメージとは違って、コマンドラインからの入門は敷居は低いけどイージーに始められるからデバッガの使い方も知らないようなプログラマを生み出してる結果になってる。

2014-10-08

オーバーラップウインドウUIとして間違ってる

グーグルAndroidへの「マルチウィンドウ」導入を検討

http://smhn.info/201410-android-multiwindow

この記事タイトルをみて、えって思ったけど読んでみたら全画面表示 & 画面分割のマルチウインドウだったわ。

これならUI進化の方向として正しいな。

PCも現状のオーバーラップウインドウは間違いで、Windows1.0時代タイリング(画面分割)が正しいUIで、昔からちょくちょくネットにそれを書いてるけどまったく同意されたことがなくて、世の中おかしいと思ってたわ。モバイル時代になって風向きが変わってきたね。

http://hp.vector.co.jp/authors/VA016533/chartscape/Emulators/W10-1.GIF

世の中、マニアック人間以外は、Officeとか、全画面表示か、たまに二つ並べるくらいでオーバーラップウインドウなんて活用してないだろ。

VisualStudioとかEclipseみたいな開発ツールも、小さいウインドウを敷き詰める方式オーバーラップウインドウなんて活用してないし。

ウインドウレイアウトなんて、人間マウスで手動でやらなくてOSインテリジェントにやるべきなんだよな。

これいうと自動ウインドウを配置するツールがあるって揚げ足とったつもりになってるツッコミがくるけど、そういうツールだってオーバーラップウインドウタイリング風に配置してるだけだからオーバーラップウインドウ不要だって余計思うだけだわ。

こんな自明なことも分からない連中ばっかりの世の中間違ってるな。PCUI進化も止まるはずだわ。

2014-09-26

http://anond.hatelabo.jp/20140926204743

コーディング規約を守ることでどれだけの品質が上がるかはわかりません。

しかし、Javaコードを書いたらEclipseフォーマットをかけるようにしているので、

スペース系のルールは守ってもらわないと gitdiffに出てくるので困ります

そこだけはご理解ください。

2014-09-05

1人教祖

僕たちはいだって宗教戦争だ。

エディタで。vimキーバインドで。teraterm背景色で。ログファイル名称で。変数名で、タブの桁数で。spfileの設定で。jbossの設定のおまじないで。stratsの継承方法で。エラークラス名で。プロパティ名で。セッターゲッターを付けるかつけないかで。コンストラクタで。newを上書きするかしないかで。jreのeditionで。eclipseの見た目で。javadocのエディションで。クラウンドキュメントIDで。githubにいくつ持っているかで。tryのインデントで。タブを表示するかしないかで。エディット中の飲み物で。待ち合わせはスタバなのかエクセルシオールなのかで。セブンイレブンコーヒーサイズで。そのコンビニコーヒーが一番うまいかで。IDカードは伸びるストラップがいいのか悪いのか。寝るときは机の下か椅子を並べるのか。デスクの上にフィギュアは置いていいのか悪いのか。めんまつるこか。

いつだって宗教戦争の糸口が僕たちを待ち構えている。とても恐ろしいことだ。

2014-09-03

http://anond.hatelabo.jp/20140902163444

理由くらい書けよ糞が

Windowsだけでしか動かなくてもいいからスタンドアロンプログラムが作りたい → (簡単なことだけでいいなら)C#、(メモリ効率が求められるなら)C++

他のWindowsプログラムがやっていて、多くの方が「できて当然」だと思っていることは、7割くらいであれば.NET(フレームワーク名)を叩けばできます

.NET対応言語C#VB.NET、J#、F#JScript.NETC++/CLIなどがあり、実際の開発においてはこれらの中から自分に合った言語を選ぶことになります

個人的感想ですが、この中で最もゆとり仕様なのはC#です。StackOverflowなどのノウハウが一番蓄積されているのもC#だと思います

「頻繁なアップデートを追跡しないといけない」「Visual Studio必要」という問題はありますが、がんばってください

なお、.NETメモリを食うので、数値計算みたいなことをしたいのであればC++が現状一番まともだと思います。がんばってください

Macプログラムが作りたい → Objective-C

昔のMacプログラムGUICarbonというライブラリで作っていました。今はCocoaというライブラリで作っています

残念なことに、どちらも言語Objective-Cです。がんばってください

ブラウザアプリが作りたい → クライアントJavaScriptサーバは後述

ブラウザアプリは、ユーザWebブラウザ(ChromeFirefoxOperaSafariなど)上で動作するシステムと、遠隔のサーバ上で動作するシステム連携して成立します。

従って、ブラウザアプリを作る言語は、サーバ用言語とクライアント用言語の2種類を考えなければなりません。めんどくさいですね。

ひとたびそのめんどくささを突破してしまえば、Webブラウザさえあればどこでも動くようになります。素晴らしいですね。

クライアント用の言語は、まぁ、JavaScriptしかないと思います。がんばってください

JavaScriptも(正直なところ)あまり褒められた言語ではないので、近頃ではもうちょっとまともな言語を作って、それをJavaScriptに変換する方法が取られたりします。CoffeeScriptTypeScriptHaxeとかですかね。がんばってください

JScriptかいう、名前が紛らわしい上にゴミブラウザ上でしか動かないゴミ未満言語もありますけど、そんなもんで作っても私の環境では動かせませんので悪く思わないでください。

iOSネイティブアプリが作りたい → Objective-CSwift

そもそも選択肢が全くありませんので仕方がないです。がんばってください

Xamarinがあるじゃないかって?まぁそういうのもあるかもしれませんね。がんばってください

Androidネイティブアプリが作りたい → Java

私の勉強不足で、Java以外の選択肢は知らないです。Java以外にあるんですかね?

*NIX用の補助スクリプトを作りたい → PerlPython2、Ruby

Perl使い捨てスクリプトを作るのに適していますCPANクライアントは昔から安定して動きません。だいぶオワコン化してます。がんばってください 私は鞍替えしました

PythonPerlより見た目がすっきりしたPerlです。easy_install・pipはすごく安定していてびっくりします(Windows除く)。3系とかいう邪念は捨てて2系教の悟りを開きましょう。がんばってください

RubyPerl(の処理系ソースコード)より(処理系ソースコードが)綺麗なPerlです。私の手元のUbuntuで「ruby」と入力すると「Command not found.」と返ってくることからも解るとおり、多くの*NIXではOS標準でインストールされておりません。昔のgemは何故あんなにすごい時間をかけてrdocを作っていたのでしょうか。日本人が作ったのでムラ意識の強い日本人の仲間が大勢ます。他の国は知りません。がんばってください

*NIX系のOSでミドルウエア的なものを作りたい → なんだそれ?何を作りたいの?

ゲームを作りたい → どんなゲームだよ…

言語処理系を作りたい → BNF、C

これ以上言語を増やすのはやめましょう。バベルの塔大勢人間が不幸になったのに、それを人間が自ら引き起こしてどうするんですか。

言語処理系を作るのであれば、BNFという言語で文法を定義して、yacc・bisonというツールに食わせればひな形ができます。ぶら下がりelseとの格闘が待ってますが、がんばってください

OSを作りたい → C

1からOSを作った方もいますが、デバイスドライバの流用などを考えると、だいたいはLinuxBSDソースコードを改変するお仕事だと思います

残念なことにLinuxBSDもCです。がんばってください

ブラウザアプリ用のサーバが作りたい → PHPJavaC#Go

昔はCGIと言っていました。所詮は80番ポートでlistenするだけのプログラムであり、BSDソケットをlistenできるライブラリを有する言語であれば何でもいいのですが、いくつかの宗教があります

PHPバンドネオンと同じくらい習得が困難な言語なのに、宣伝の仕方を間違えたために「自分はできる」と勘違いしたプログラマが暴徒と化し、イスラム教と同じくらい不当に低く評価されている言語です。きちんと勉強して使う分には、悪くない選択肢だと思います。がんばってください

Javaは、EclipseNetbeansといった超重量級IDEを起動して、Java EESpringといった超重量級ライブラリ依存したwarを、JbossWebSphereなどの超重量級アプリケーションサーバ上で動作させるため、メモリが貧弱な環境ではIDEサーバを同時に起動すらできません。サーバメモリが潤沢であれば悪くない選択肢だと思います。がんばってください

C#は、選択肢が全くないことを除けば、状況はJavaとあまり変わりません。Microsoftがお好きな方、何かの間違いでWindowsサーバを使わざるを得ない方であれば、悪くない選択肢だと思います。がんばってください

Goはよくわからないですがきっといい言語です。がんばってください

ちなみに増田はcpoll_cppspの勉強中です。がんばります

2014-08-12

コーディングスタイル論争「カッコを省略するな」が出るたびに思う事

こういう記事が上がって

それへの反応

記事最初のカッコの省略だけど、世界的に評価されて広く使われてるようなプロジェクトコードを見ると、案外{}が省略されていたりしてそんなことは気にしてない。(たとえばlinux, apache, postgresql, mysql, chromium, netbeeans, eclipse, llvm, jruby, android)

で「こんなコードを書くヤツは夜道に気をつけろ」「八つ裂き」みたいな大げさな反応してるのって、どういうコードを書いてるかよく分からないような人たち。

自転車置き場の議論的な、素人でも分かりやすポイントからこのツッコミって人気あるのかね。

―――――↓見てないかもしれないけどブクマとかへの返信を追加―――――

2chあたりでコーディングスタイル議論になったときは、俺様基準じゃなくて実際に成果を出してる人たちが採用してるコーディングスタイル基準にしようぜってことで、誰もが認める成果を出しててソースを見れるオープンソースコードを引き合いに出すことが多いんだけど、そうするとよくある反論が二つある。

みたいなの。

さすがにはてなツイッターじゃ、前者のような「お前は20年前からタイムスリップしてきたのか」みたいな認識の人はいないみたいだけど後者のような人は何人もいるね。

高度なコードを書いてる人とITドカタのコーディングルールは違うってなんなんだろうね。

「高度なコードを書いてる人は低レベルケアレスミスなんてしない、だからカッコを省略しても平気なんだ、レベルの低い連中はケアレスミスをするからカッコが必要なんだ」って認識なのかね。

まあたしかに「viは一晩で書かれた」みたいにハッカーが複雑なコードを一気に書きあげてバグがなかったみたいな伝説ってあるけど、素人じゃないんだからそういうハッカーイメージで高度な人たちをとらえるのはやめよう。

集中力が高度でケアレスミスをしないとか、今どきのソフト開発の「高度」はそういう意味じゃありません。

高度なソフトを開発している人たちは、おおむね読みやすさや保守性にセンシティブです。そのらのSIerなんかに比べたらはるかに。

で、そういう人たちが、カッコを書くか書かないかなんてどうでもいいって認識からカッコを省くコードが書かれてるんです。

ハンガリアン記法コードの質を高めると信じられてたときとか、if (100 == n) のように比較で定数を左にもってくるのが流行ったときも、そういう流儀の人たちは自分らは安全側に倒してるから正義だって信じて主張を全然曲げなかったですね。

むやみに安全側に倒せばプロだとか、コードの質にセンシティブだって思考は恥ずかしいみたいな風潮になればいいのにね。

2014-07-14

働きながら、エロエロによるエロのためのWebサービスをつくりました

テクノブレイク.jpという、エロ専用RSSサービス公開しました

これは、自分お気に入りエロサイト更新動画を、サイトすべてに訪問して確認しなくてもチェックすることができる、というエロのための時間効率化させるWebサービスです。

http://technobreak.jp

僕は誰か

僕は、大手IT企業で働くゆとり社会人です。

今年文系大学卒業し、まったくの未経験大手IT企業入社し、研修を経て初めてプログラミングを触ることになりました。

それでも少しはできるようになったため、「ゆとり」でも「未経験」でも「文系」でも自分webサービスが作れるんじゃないか?と思い至り、ちょっと力試しということでやってみるか!!!とこのサービス作りました

僕は以下のような人間ですが、「仕事」を通じてプログラミングを学びました。もちろん今も勉強中です。

まだまだ働き始めたばかりなので、僕はプログラミング初心者が数ヶ月勉強したという方と同じような人間です。

なので現在上記にあてはまる人でも作ろうと思えば「自分サービスを作れる」ということがわかっていただけたらと思います

テクノブレイク.jpで解決したいことってなに?

僕はオナニーをする時は、スマホアプリで必ずエロ動画を探すのですが、だいたい以下のようなステップを踏むんですよね。

(1)動画ダウンロードアプリを開く
(2)ブックマークしたエロサイトを開く
(3)エロサイト更新記事を見る
(4)気になった更新記事を新規タブで開く
(5)あとでそのタブを見るため消さずに、元のタブ(更新記事一覧が表示されたタブ)に戻る
(6)また気になった更新記事を新規タブで開く
(7)(4)〜(6)を繰り返す
(8)溜めておいた気になる記事のタブを一つずつ開き、動画ダウンロード
(9)ダウンロードした動画を見る

このように1つの動画を見るために、9つのステップを踏むんです。

もう何がいやだって、(7)ですよ。これが面倒くさい。

それから(2)のブックマークからエロサイトを開くことも面倒じゃないですか。

だって(1)〜(9)をサイトごとにやらないといけないわけですから

これらを簡単にすることができないもんかなと。

で、テクノブレイク.jpを使うと、、、、

(1)動画ダウンロードアプリを開く
(2)RSSサービスを開く
(3)登録したエロサイト更新記事を見る
(4)気になった更新記事を「あとで見る」に登録する
(5)(3)と(4)を繰り返す
(6)「あとで見る」溜めておいた記事を一つずつ開き、動画ダウンロード
(7)ダウンロードした動画を見る

どうですか。2ステップも楽になる!!!!!!!!!

テクノブレイク.jpの特長

採用技術

これでわかる通り、必要最低限の技術で済みます

採用ツール

制作プロセス

すべてそこそこで、80%でリリースしろ

社会人には、自分時間を取ることが難しい方が多いはずです。

から、毎回だらだら開発を進めると時間がかかり、最終的にモチベーションが下がり、何もしなくなってしまうんです。

でもやることはすごくたくさんあります(笑)

プログラムだけじゃありません。デザインを考えたり、仕組みを考えたりしないといけません。

あとで、このプログラムじゃ、仕組みじゃダメだったな、ってわかり手直しをすることだってあります

から、毎回100%を目指すと時間が足りないんです(笑)

すべてをそこそこ、80%におさめてください。

それでさっさとリリースしましょう。

それからサービス改善していくんです。

テクノブレイク.jpもそうです。

最初はすべて80%です。

ここで言う100%とは、あなたの考える理想を100%叶える、という意味です。

Webサービス完璧はありません。日々、改善必要です。

そういった意味では100%はありませんが、あなたにとっての理想の100%はありますよね。

それを最初から目指すのはやめましょう。

走りながら、目指してください。

そうすると、本当に求められるものが早くわかる

早くリリースすればするほど、ユーザーからの声を早く拾うことができます

ユーザーの声こそ、そのサービスの目指すべき姿のことが多いです。

80%完成してリリースすればいいのに、残りの20%を埋めようとあなたが頑張ったとします。

しかしたらその自分勝手な20%は、ユーザーに取っては不必要な20%かもしれませんよね。

だと、20%のために使った時間と労力が無駄になります

から、80%の法則で頑張りましょう。

ドメインは先、サーバーはあと

ドメインを先に取ると、開発をせざるをえないと考えます

なぜならドメイン代を支払ってるんですから。その金を無駄にしたくないですよね。

で、サーバーは後、というのは開発が無駄に3ヶ月かかったとすると、その3ヶ月分のサーバー代金が無駄ですよね。

サーバーテストは、テスト環境テストを終えてからやればいいかなと思ってます

目標、計画を立てる

まずどんなコンセプトか、どんな機能必要か、どんなUIにすべきかという目標をたてましょう。

それから、その目標を達成するための方法を考えましょう。

そして、その方法を実行するスケジュールをたてましょう。

なぜこうするかというと、常に自分が何をすべきかが明確になるからです。

なにも決めずにやろうとすると、

なんてことになります

今日は何をするのかを明確にしましょう。

そして、今日はそのことだけに集中しましょう。

から、頑張りすぎなくていいんです。

スクレイピングについて

Webスクレイピングとは、サイトコンテンツから欲しいデータを取得する方法です。

僕がどうやってRSSサービスを作ったかというと、このwebスクレイピングのおかげなんです。

まずサイトの主要コンテンツ部分を検知します。

主要コンテンツとは、更新記事一覧部分です。

広告、注目動画アーカイブなどのそのサイトコンテンツははじきます

で、その主要コンテンツから、記事の画像タイトルURLをゲットしてきます

やり方としては、主要コンテンツからそのサイト内部のリンクが貼られたimgタグを探し出します。

そして、そのリンクタイトルまたは記事のタイトルを取得します。

こうすることで、そのサイト更新一覧から更新記事のURLタイトル画像がわかります

bootstrapについて

BootstrapウェブサイトWebアプリケーション作成するフリーソフトウェアツールであるタイポグラフィフォームボタン、ナビゲーション、その他構成要素やJavaScript拡張などがHTML及びCSSベースデザインテンプレートとして用意されている。

Wikipediaによると上記の説明となります

これを利用すると、基本的Webサイトデザインhtmlcss)が手に入れることができ、そのまま利用できたりします。

デザインを作る上で、非常に助かります。なぜなら最初からすべて自分コーディングする必要がないからです。

いつ僕はサービスを開発していたのか

僕は以下の時間に開発をしてました

上記の時間で、「え?」って思う時間は恐らく

だと思います

僕は外出中はノートパソコンを使わないで開発をしています

どうしているかというと、Readdleの「Downloads」というスマホアプリを利用しています

これは写真ファイルクラウド上に保存したり、Dropboxや外部サーバーファイル共有をすることができるアプリです。

filezillaスマホで利用できる、みたいな感じです。

画面は小さくてストレスがかなーーーりありますが、僕は外出中はこれでプログラミングをしています

通勤中にこれでプログラミングをし、降車した後の徒歩で続きのプログラミングをキリが良いところまでする、という感じです。

また、歩きながらでもテストはできると思うので、歩きながらプログラミングは難しいという方はテストだけでもやってみはどうでしょうか。

最後

だまされたと思って、テクノブレイク.jpを使ってみてください(笑)

本当にオナニー時間が快適になりますよ。

Webサービス俺もやってみようかなーと少しでも思ってくださった方へ、

僕は開発をしながら、本当にやりたいことがあったら、時間はいくらでもつくりだせるなって感じました。

歩いてるときだってトイレにいるときだって電車にいるときだって、いつだって今の時代はできるんですよ。

それだけ現代って便利で、生きやすくて、なんでも挑戦しやす環境のある時代なんです。

恐らく、少し前の時代スマホが出る前の時代では歩きながらプログラミングなんて考えられないと思います

そう考えると数年前と今って格段に何かを始めることができやす時代なんですよ。

それでも挑戦しないって、もったいないねーなーって思ったんですよね。

から、なにか本当にやってやりたい!!!ってことがあれば、まず一歩を踏み出してみてください。

意外と手段っていっぱいありますから

ググれば、一発ですよ。

こんなことGoogle日本に来るまでは考えられないことですよ。

だって、昔の検索エンジンって十分に欲しい情報が手に入らなかったですもんね。

僕も高校時代とかCROOZ?とかヤフーカテゴリー?とかで携帯ぽちぽち検索してた記憶があります

まぁとにかく、Googleもあるしスマホもあるし、なんでもできる時代ですから安心してやってみてください。

2014-04-06

http://anond.hatelabo.jp/20140406103040

やっぱり両方使えることを目指すのがいいんですかね〜

Windows全然使えなくて…

とりあえずEclipseと格闘してみます

Windowsに慣れない

情強ぶってMacばっか使っていたら

会社から支給されたのがレッツノートだったため

エディタとか何使えばいいのか全然からない状態になってる…

今はHTML/CSS/JavaScriptくらいだけど

これからJSP/ServletもかくからEclipseで間違いないのかしら

まわりはSublime textとかVimかいものを使っている人が多い

果たして何を使うのがいいのでしょうか

問題は会社ではWindows,家ではMacしかないので

家に持ち帰ってコードいじるときエディタが変わるのがめんどくさそうだから

共通で使えるエディタにしたいと考えてる

でもショートカットとか違うから同じでもめんどくさいのかな


結局cygwin入れてのVimが最強なのかな

2014-03-22

http://anond.hatelabo.jp/20140322140822

Linux視点追加しつつ突っ込んだ。

MacUnix互換

MacUnix互換」とかMacユーザはいうが、Linuxユーザからするとディストリビューションが違うので正直使いにくい。別に調べりゃ使えるしLinuxユーザというのは黙って調べる人たちなので文句を言わないだけで、好んでMacUnixのように使おうとは思わない。GUIがクソだが便利なLinuxユーザからすればMacGUIがすげぇ糞なディストリビューションだ。情報少ないし。

なお、これは他のLinuxについても言えることで、Ubuntu使いからするとRedhat系は使いにくいし、RedhatからするとUbuntuコマンドわからんことが多々あるので若干めんどくさい。もちろん他のディストリビューションも同じ。BSDとかあんまり使いたくない。まぁやりゃできるのだが、めんどくさいを極めた結果としてコマンドライン使ってるのに、調べるのはもっとめんどくさい。あと変なエラーが出ると大変なのでPCライトユーザにはまったくおすすめしない。

プラグラム開発環境の導入

最近はWindowは一発ポンで入ることが増えてきたので便利だと思う。Cygwin使うよりはVM使ったほうが楽でねーかと個人的には思うが。PHPなどはXamppがあるのでむしろWindowsのほうが楽。文字コードが面倒だが。

なおLinuxは常に糞めんどくさい。すでに入ってるパッケージバージョンが古いが、ディストリビューションによっては上げるのに四苦八苦とかふつうにある。サーバー関連のプログラム以外はいまどきWindowsとかMacとかのほうが断然楽だ。

シェル環境

Windowsコマンドはよくわからんが、最近情報が多いので特に…あと下手にコマンドいじるよりはフリーウェアを探してくれば良いと思う。

Macはむしろシェル使うほうがめんどい(前述のとおり)

Linuxは慣れてるディストリビューションならCUIだけで十分。慣れてない奴はめんどくさい。

フォント

正直Macフォントは目が疲れる。画面のせいかね?

Windowsも良いとは言わないが、不便はない。細めのフォントが好みなのでむしろWindowsのほうが見やすい。

Linuxは標準のやつは好きだけどもうちょっと細くていい。

IDE

そりゃiOSアプリを作るならXCodeしかないし、XCodeは悪く無いと思うが、C/C++とか書く時は使いにくい。

WindowsアプリつくるならVisualStudioしかないし、最近のVSは使いやすいので特に文句はない。C#も良い言語だと思いますよ。すごくよく考えられてると思うし。

Webアプリケーション系もnetbeansなんかはWindowsのほうが軽い印象があるなぁ。ただC++netbeansだと補完機能が弱めになる気がする。まぁそもそもWindows上でMSライブラリ使わないC++とか書きたくないですね。色々違うし。

LinuxIDEEclipse一択みたいな感じになっているが、正直Javaはいいが、それ以外は微妙。と言うか糞重い。netbeansが個人的には好きだが、前述のとおり補完機能Eclipseより弱いかんじがするのであんまりRubyはすっげぇ使いやすかった。C++で一番軽いIDEQtかな。Vim?いうほどいいかね…まぁEmacs派なんですけどね

iOS開発

そりゃiOS開発するならMacしかないだろう。Windowsアプリケーション開発するならWindows機使うしかないのと同じでな!!!

LinuxGUIのあるアプリケーション作るとか、考えたくないな!つうかGUIかいたくないからLinux使ってんだよ!

開発マシン選択肢

Mac選択肢が少なすぎる。金だせばなんでもできるが、カネがないとストレスが溜まる。あとかねかければかけるほど周辺機器もグレードアップしなきゃいけなくなる感じがするのだが…正直Unix系のマインドに反しすぎていると思う。

あといまおれのMacbookProはバッテリが膨らんできてパッドが使えなくなったんだが、Mac対応マウスがないのでコピペすらできない。キーボード純正のやつ使いにくくね?プログラマとしてはHome,Endあたりはキー一個で対応して欲しいですし、Backspaceキーがないのは意味がわかりません。deleteキーって書いてるけどそれBackspaceやん、ほんとのdeleteどこいった!!!とにかくキーボードがひどいのでMac使ってプログラミングしようという意欲がおこらない。むしろ俺がMac嫌いな理由の一番がそれですね!

Linuxはしょぼい機器でも開発可能なのでよいと思います

音楽制作

しらねぇがLinux音楽制作しようとする奴はアホだと思う。

デザインアート制作

ま、正直Macディスプレイはいいと思う。

が、若干コントラストが強目にでるか?という気がする。

Mac以外のディスプレイ自分で細かくカスタマイズしたほうが実際にあってる場合もあり、なんとも言えない。

ちょちょっといじる素人フリーウェアが貧弱すぎて辛い。いやらしい成金札束で顔はたかれているような気持ちになる。

いいわすれたがLinuxデザインデジタル現像しようっつうやつはアホだね。Ubuntuならあるのかなぁ…でもさいきんUbuntu重すぎて…

ゲーム用途

しらん。

ビジネスユース

MSOfficeは使いやすい。Officeを貶してる奴はだいたいOfficeを使いこなしていない。

LibreOfficeとか一昔前のMSOfficeじゃないですかーLinuxだとそれしか選択しないけど使いたくねぇ…それならGoogleDriveのをつかうわ…一太郎とか悪い冗談はやめていただきたい。

ただ、Latexを使う場合Linuxは使い良いとおもう。もちろんWindowsならLatex用のエディタあるんですけども!

ホームユース

WindowsMac特に違いはないが、あえていうならMacフリーウェアが少ない。

Linuxをホームユースで使いたがる人がいたら止めたいが、最近Webだけでも色々できちゃうので、別段問題ない気がしてきた。

その他

9. Macは性能に対してコストパフォーマンスが高い(……かも)

スペック価格比較すると、CPUメモリやらのコストパフォーマンスが悪くない、と思います

10年前は「Macは高くつく」という印象だったものが、ここ5年で「Macって割安」という印象に変換したと記憶しています

10年前に比べて自作メリットが薄れたから、そのように感じるんですかね。

しろ使ったらMacって割高…って思うと思うけどなぁ。最近Windows機は安いしデスクトップなんて価格破壊完全に起こしてるし、使い始めてからほとんどお金がかからない。情報も多いし。なんか情報が全体的に五年くらい古い感じがしますね。もしかして2009年ごろからいらした方が書いたのでしょうか。

12. Macには無駄な常駐ソフトウェアが少ない

何をもって"無駄"と判断するか、非常に難しい論点ではありますが。

へんてこなアザラシマスコットデスクトップを泳ぎ出したり、なんとも言えないモッサリ感の明るさ調整ソフトが突如画面に出現したり。なんて事はありません。

いったいいつのWindowsの話をしているのか…

常駐ソフトウェアWindowsは決して多くないし、あるならメーカプリインストールアプリじゃねぇのっていう。

明るさ調整ソフトってそれはディスプレイのやつだろ?Windowsのせいじゃねぇよ。むしろMacはそういうの調整するときに探すのが大変。いや、あかるさ調整くらいならキーボードでできるけどさ…

常駐ソフト気にするならLinuxが一番管理できると思いますし、LinuxにくらべればMacWindowsも似たようなもんです。

2014-03-09

C言語を使ってきた自分のなけなしのアイデンティティは滅びようとしている。

http://www.tiobe.comで、プログラミング言語の人気ランキングを、どっかで見かけるたびに

俺は、C言語をお遊びではなく仕事として使ってきたわと静かに震えるのがほぼ反射神経になっている。

C言語一筋で、オブジェクト指向の知識はあるけどCPPもJavaも知りません、あ、C#VBA自作ツールを作成する過程勉強しました。」

業務経歴書を片手に面談で話したときの、微妙空気を知ってからだ。

C言語は、この業界にいる誰もが一度は耳にしていて、しかし業務として使った経験がある人はあまりいないであろう、不思議言語だと思う。

俺は業務でそのC言語を使う仕事をずっとしてきた。

組み込み屋のSEとして入社して、教育期間が終わってすぐに回されたのがAndroidLinuxカーネルドライバー周りのお仕事だった。

C言語というかLinuxカーネルAPIばかり覚えさせられて、初めて触った構成管理ツールgitで、管理任されたビルドサーバーFedoraで、開発はTeraTerm上でemacsを使ってた。

思えば、すごく先進的な開発現場だったのだ。なんでC言語?と言語ロートルな側面ばかり見ていたが、

毎週のようにリリースされるカーネルパッチには、急速な変化に対応した野心的な取り組みが山のように入っていた。

世の中にはレガシーJava(1.4)で、構成管理ツールSVNで、開発はEclipseGalileoGanymedesakuraエディタという

時代に取り残された場所があるなんて想像だにしていないかったのだ。

最も当時はコミットされたバッチコメントを追うだけで精一杯で、どうして議論になっているのか分かりもしないLKMLを読んで知ったかぶっていた

だけで、raspberry piを手慰みに遊ぶまでは実を結んでいた自覚なんてなかったのだけど。

C言語はポピュラーだけど、業務的な価値はないロートル言語

思われてる。社会情勢が教えてくれる。いや、そんなことない、それは妄想だ。様々なところで使われているじゃないか。

でも、そこで食える飯はもうほとんどなくなっている。

カーネルメンテナーパッチを送ったことすらない、中途半端技術しかない俺の市場価値は、今限りなく低い。

からいつまでもC言語プログラミングの人気ランキングいつまでもいることを苦々しく思う。

C言語を使って、可能な限り先進的なことをやって。それは、C言語という埃をかぶったようなイメージとはかけ離れていたはずなのに。

実際は井の中の蛙で、外から見たらひとくくりに時代遅れとされたのが許せなく、そしてやるせなかった。

自分は今、実際、先にいったような環境ですら、状況の対応四苦八苦する有様だから

C言語なんて大嫌いだ。

2014-02-23

http://anond.hatelabo.jp/20140223175508

よくわからんなあ。最初の方で

何がダメって、Vimとかemacsダメなんじゃなくて、社内で開発環境が統一されてないって、俺だったら思うからだよ。

って書いておいて

偉い人が「Vimしろ」と言えば、内心嫌でもそうなるだろうし、Eclipseしろ、って言われれば、内心嫌でも従うしかない。

とか論旨が混乱してるんじゃないですかね。

ログイン ユーザー登録
ようこそ ゲスト さん