はてなキーワード: インスタンスとは
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に貢献したことない、といった具合でクローズドな世界で生きている。
そうした技術者とやっていく中で最も厄介なのが教育コストだ。案件のあるなしで人が都度入れ替わり、新しい人が来るたびに同じシステム・技術要素の説明をして何とかやる気が出るようモチベートして、というのを繰り返すのに疲れた。私の会社固有の変なルールの説明はてきとうにしておいて、私は技術が好きな仲間が欲しかったので今のシステムの課題と技術面での改善や展望をよく話す。が、あまり食いつかれることはない。これは私の問題だが、そうした期待と落胆のループも疲弊の一因だ。
ある時、一つの課に6年近くいるというBPと一緒に仕事をする機会があった。その課にはプロパーの技術者が長いことおらず、彼がその課の技術的中心を担っているという話だった。抜けられると途端に色んなものが崩壊するからという理由で、その人の派遣元にはかなり高額の単価を支払っていたと聞いた。課員が口をそろえて「あの人はすごい」「何でもできる」というので初めはかなり期待していた。
だが、拍子抜けした。あまりにも仕事が雑なのだ。コミットされたコードはTODOコメントだらけだし、バグがあまりにも多かった。一度も実行されずにコミットされ、他の人がチェックアウトした時点で判明したバグなんかもあった。それでも声が大きく、プロパーが技術を知らないのをいいことに自分のブランディングに完全に成功していた。客先にも顔を出し、信頼を得ているらしかった。「自分は設計が得意でテスト以降の工程には興味が無い」と言っていた。確かに彼が関わった各システムには独特の概念が埋め込まれた設計があったが、その複雑な設計は保守性が低く、他の開発者が触ると容易にバグを引き起こしていた。
また、彼はJavaの有名なフレームワークであるStrutsを拡張したいわゆるオレオレフレームワークを開発しており、それの出来は悪くなかったと思う。そのフレームワークに欠けているものをうまく補うような形になっていた。だがフレームワークのバージョンを上げると壊れるというのが残念な点で負債になりかけていた。
私は異動したが、彼は今でもそこにいると聞いた。
(最低限のものしか作らないから)安くて早い!という触れ込みで売っているので、テストの工数が異常に少ないことも多い。特にテストコードを書くなんてもってのほか。そういう世界でやってきた人ばかりなので、30や40超えたマネジメント側は「テストコードって何?」状態だ。大型の改修案件が来た時にはコア機能だけでもテストを書いていこうと見積段階から社内で提案したが「顧客に『そんなメリットあるなら何で今までのプロジェクトではやってないの?』って問われるから、絶対言うなよ」と拒否された。
保守案件をやっていた頃、時間を捻出してコソコソとテストコードを書いたりしていた。その案件を離れてしばらく後、ある時リポジトリを覗いたら私が書いたテストコードがばっさり消えていて驚いた。コミットログから課内のstaticおじさん的な人が消したとわかったが、そのコミットコメントが「現在使用していないコードを削除」だった。これはもう問う気も失せて何も言えなかった。
先述したようにテストがそもそもないプロジェクトが基本なのでリファクタできないのだが、たとえテストがあったとしても勝手なリファクタは許されない。ソースコードは顧客の持ち物なので同意なしに改変することはいわば契約違反なのだ。たとえ内的品質が向上してコスト削減に繋がるとしても、そのためにお金を支払う顧客はまずいない。
私がいたどの案件にもコードレビューがなかった。リーダーと開発者数人という構成の場合、まず開発者は全員下請けでリーダーは技術の心得がない場合が多い。そうなると彼らの成果物の良し悪しを図るのは目に見えるシステムの挙動と実施されたテスト結果のExcel報告書だけになる。これが非常に非効率で、少しコードを読めばわかる明らかなバグや仕様理解の齟齬が頻発していた。特に受入試験と呼ばれるリリース直前の顧客側での最終確認や本番稼働中におけるhotfixは全機能をきちんとテストせずにデプロイされることが多く、そのhotfixがさらなるバグを引き起こしたりもしていた。
そもそもテストを書けという話だがテストが無いプロジェクトに足すのはかなり大変なので、レビューサイクルをきちんと回すだけでもかなり変わる。実際、私が入った案件ではすべてのコミットに目を通すようにし、明らかな問題は都度指摘することで品質の向上に繋がった。欲を言えば他の開発者にもレビューしてもらいたいが、下請けの彼らの工数を増やすことは嫌がられる。
無難にプロジェクトをこなすことと新しい技術を試すことの両立こそ技術者の腕の見せどころだと思っているが、ほとんどの場合それは許されなかった。新規にせよ継続にせよ案件を受注する段階で営業やマネジメント層と顧客間で「今回は過去に実績のあるこの技術でやります」という契約が結ばれているからだ。その技術(言語やフレームワーク)がいかに古く、保守性も将来性もないものだとしても受注できればよいし、その技術のサポート切れか何かの拍子で再度リプレイス案件でも受注できればさらにラッキーぐらいの考えでいる。
また横に倣えが加速してさらに悪い事に、同じアーキテクチャ・ネットワークを再利用するために既存のサーバに新システムも相乗りすればよいという発想も珍しくない。「資産の再利用によりコスト削減」という触れ込みだったが、ただでさえスケールしない低スペックのオンプレミスサーバ上で複数のアプリケーションサーバを運用した結果、予想通り耐障害性が下がった。
また、Oracleのライセンスが高いという理由で一つのDBインスタンス上に10数個のシステムが同時稼働しているなんてこともあった。1つのシステムが高負荷なクエリを投げたせいで関連する全システムが共倒れになったこともあったがOracleのバグとして報告していた。
新人の頃に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にまとめる仕事があって、そこに給与が発生してると思うと泣きたい。
そもそも無駄な作業や工数至上主義で作業効率が悪いから残業しているので、残業が少ない奴が偉いと一斉に舵取りしただけでは生産性をちゃんと評価できていないことに変わりはない。一昔前の残業多い奴は頑張ってて偉い、というのと本質レベルで何も変わっていない。
Android版のはてブアプリで、共有からはてブアプリを開いても当該のコメントではなく、以前に開いていたはてブが表示されることがある。
例えばこういうパターン。
これ、何で起きるかというと、まだアプリがバックグランドで生きている状態で送られてきているインテントを正しく処理していないためで(推測)、以前はメインメモリが少なく、バックグラウンドに回ったアプリが殺されやすかったので再現性は低かったのかもしれないけど、RAMの大容量化が進んだ現在、ほぼ100%再現する。
ついでに言っとくと、ActivityにsingleTopを指定していると、onCreate()ではなく現在生きているActivityのインスタンスにonNewIntent()で通知されるので、そこをチェックした方がいいと思う。
何のために人間は存在して、何を目標としてこの世の存在しているのか。 科学技術は日々発展しているが、発展した所でその先に何がまっているのだろうか。 最近人工知能がよく取り上げられているけど、人工知能のことを考えているうちに、もしかしたらこの世界全体が1つのプログラムなのではないかという考えが思い浮かんだ。
プログラムの世界にはオブジェクト指向という考え方があるが、これはまさにこの世を表していると思う。すべてのものがオブジェクトである。 人間は、生命という名のクラスを継承していると考えれば、説明がつく、生命はいきものが備えている最も基本的なもの、例えば臓器とかを実装していて、それを犬や、人間や猫が継承してそれぞれのオブジェクトを作っているのではないか、そして我々は人間オブジェクトのインスタンスなのではないか。 それならば、前世というものも説明がつく。 死んだ人間のインスタンスは他の人間のインスタンスとして初期化され使いまわされる。 これを繰り返す。 しかし、人間は増える。 増える過程で既存のインスタンスでは数が足りないので新しいインスタンスを新しく作成する。 それがもしかしたら、以前のインスタンスに改良が加えられている。 なので、新しいインスタンスの人間は能力が既存のインスタンスよりも高い、よって、何か新しいものを発明できる。 そこで、科学技術の進歩が起こる。 それが人類の進化の実態ではないか。 そして人間オブジェクトのメソッドがその人間の行動を表している。 また、よく人間は潜在能力を秘めていると言われていが、それは、実装されているがまだ使っていないメソッドが多数あるという意味では無いか。
プログラムで人間などの生命を作ることがかのでは無いかと思える。 もちろん、生命科学との融合によって実態を持ったオブジェクトとしてプログラム上だけでなくこの現実世界に存在させることができるのではないか。
そう考えると、この宇宙は、ある一種のプログラムなのでは無いだろうか。 それを作っているのは神と呼ばれる概念であるかもしれない。 もしくは、この宇宙全体がゲームであり, それを誰かがプレイしているだけなのではないか。 なので、人間の発展の先にあるものは、この宇宙というゲームであって、そのゲームを作成した時がこのゲームのゲームオーバーの時なのではないか。
ここまで書いて、更に人間の存在理由がわからなくなってしまった。 とにかく、命を持ったものとしてこの世に生まれた以上、一生を精一杯生きるしか無いのだろうか。
文系出身だけど前々からWebサービスつくってみたくて勉強がてら一人でWebサービス作ってみました。
作りたいって思うなら実際に作ってみるのが一番いいってじっちゃんがいってた。
やってみて感じたこととか先輩エンジニアの人たちに教えて欲しいこととかを書いていきたいと思います。
じっちゃん、僕にもできたよ!
EDM JACK
簡単に説明するとクラブミュージックを淡々と紹介していくサイト
・26歳
・フリーター(ほぼニート)→知人の会社で営業職→今年の4月にWeb業界へ転職。
・営業職だったころにあいた時間にドットインストールとかでHTML/CSSの勉強をしてた。
大学を中退してからフリーターになって、その頃から自分でWebサービスとかつくって運営してる人ってかっこいいな〜とか思ってた。
Facebookの映画とか見たときは完全に感化されっぱなしだった。
でもいつか作れたらいいな〜って思ってただけでなにもしてなかった。
最近いろいろ環境が変わって少し休みをもらえたので奮起して勉強がてら作ってみることにしたのです。
漠然と「Webサービス作りたい」って思ってたからまずどんなWebサービスを作るか考えました。
やっぱり好きなことじゃないと続かないと思ったので
自分が好きなクラブミュージックをまとめるサイトを作ることにしました。
ジャンルはDJ KAO●Iとかミーハーな感じの曲じゃなくてEDMってやつ。
EDMといえば今月日本でもUltra Music Festivalが開催されるね!やったね!Hardwellに会えるね!
まずはプログラミングとやらを勉強することにしました。ドットインストールは偉大です。お世話になりました。
ここでHTML/CSSとPHPを勉強しました。でもPHPでゼロからコードを書いて作ろうとすると重大な問題があることに気が付きました。
時間がかかりすぎる。
今回はとりあえず自分でなにかWebサービスを作ってみるということを経験したかったのでWordPressを使うことにしました。
でもさすがにレンタルサーバーを借りてWordPress入れましたっていうんじゃ先輩エンジニアの人たちに怒られちゃうと思ったので、
WordPressを入れるサーバーの環境構築は自分で頑張ってやってみることにしました。
なのでWeb業界ではアイドル的存在のAWSっていうやつで頑張ることにしました。
ここでもドットインストールにお世話になりました。ほんとなんでもチュートリアルがあってすごい。
最初はWebサーバーにApacheを入れていたんですが、なんか重たい感じがしていろいろ調べているとNginxがナウい感じだったので
Nginxでインスタンスを立て直すことしました。環境的にはこんな感じ。
Nginx 1.4.7
MySQL 5.6.13
ドットインストールでUnixコマンドとかを勉強したとはいってもNginxの設定周りをいじるのは結構大変でした。
でもNginx使うからにはチューニングしてから使わないとApache先生に怒られちゃうので、
チューニングテストをしたらTransfer Rateが17[Kbytes/sec] くらいから15000 [Kbytes/sec]くらいになった。
無事にサーバーが立てられたのでWordPressを突っ込んでテーマとかいろいろいじりました。
シェアボタンをつけたりFacebookのLikeBoxを入れたりでちょっとテーマいじった程度。
あ、カテゴリとタグにpickupってつけたら自動で投稿が目立つようにした。これは自分でテーマファイルいじって書いた。
入れたプラグインはこんな感じ。Jetpackはモバイルテーマのみを有効化してる。
アイキャッチ画像が多いからPhotonも有効化してもいいかなって悩んでる。
Akismet
All In One SEO Pack
Batch Category Import
Favicon Rotator
Font Awesome Icons
Mobile Theme Featured images for Jetpack
NextScripts: Social Networks Auto-Poster
Remote Images Grabber
Video Thumbnails
Wordpress Popular Posts
WordPress Related Posts
WordPressなのであとはたらたらと僕がオススメする曲を更新していくだけ。
EC2のt2.microだけど、Nginxのおかげなのか特に問題はなし。
今はYoutubeかSoundcloudのURLをそのまま投稿に入れて、アーティスト名とかDJ名でカテゴリ分けしてる。
せっかくだからドメイン代とかAWS代だけでも回収できればいいなってことでAdSenseも入れてみたw
実際に作り始めてから1週間程度でここまでつくることが出来ました。
ドットインストールがなかったらここまで速くつくれなかった。ありがとうございます田口さん。
元々非エンジニアでもやる気になればそれっぽいのが作れて感動しました。
でもなんかOGPの設定がうまくできず、Facebookとかでシェアしようとするとたまに全然関係ない画像が表示されてしまう。
テーマファイルに直接書いてもプラグインでOGP設定してもよくわからなかった。
Facebookのデバッガーつかってキャッシュクリアしてもできたりできなかったり。
将来的にはSoundcloudとMixcloudを足して2で割ったサイトになればいいな。
キュレーター制度とかも入れてみて、僕だけじゃなくていろんなEDM好きやDJがおすすめの曲を投稿できるようにしていきたい。
WordPressで構築しちゃったけどできるだけプラグインに頼らずに自分でPHP書いて実装できるように頑張らなきゃ。
本とかは一冊も読まずにここまで作れたけどPHPエンジニアならこれは読んどけよ若造ってのがあったら教えてください。
EDMは素晴らしいよ!クラブ好きな人もそうでない人もきっと好きになる曲が沢山あるから聞いてみてね!
EDM JACK
働くのもめんどくさいし、賢者タイムに生きる意味を考えていたらシコるためだって結論に至った。
即ハボ.com
やるならこの名前って思ってドメイン検索したら奇跡的に取られてなかった。
日本語ドメインは取られてたけど、英語ドメインでとれたから問題なし。
昔にサイトをつくったことがあったので、HTML/CSSはそれなりに書けるし読める。
でもRuby on Railsとか本格的なプログラミングはわからない。ラクしたい。けどプログラミングできない。
WordPressに決めたはいいけどサーバーを用意しなきゃなんない。
さくらインターネットとかが普通なのかなーと思ってたんだけど当然月額料金がかかる。お金ないのでむりぽ。
無料でWordPress動かせて、できるだけ重くないサーバーはないかな〜って調べてたらAWSが1年間無料で使えることに気づく。
キタ━━━━(゚∀゚)━━━━!!
でもAWSっていうことはクラウドだから、サーバーのインストールから自分でやらなきゃいけない。ラクしたい。
AWSでWordPressってことは答えはひとつ、網元インスタンスですね。
先人の知恵ってすごい。
自分がエロサイトを巡回してる時ってタイトルも重要だけどサムネイル画像を重視する。
ってことでPinterestみたいに画像が際立つテーマをさがした。
よさ気なテーマがあったのでこれをつかうことにした。
WordPressなので自動で動画を拾ってきて更新してくれるわけではない。
できるだけラクをしたかったけどここだけはポチポチ更新していくことにした。
だけどXVIDEOSのサムネイルを保存する作業が最強にめんどくさい
Youtubeと違って僕らのXVIDEOSはプラグインを使ってもサムネイルを自動で吐き出してくれない。
これは悩んだ。これも先人の知恵に頼ることにした。
これを使ってXVIDEOSのURLを入れたら画像をドバーっと表示するフォームをPHPでつくって、
その画像URLをWordPressにプラグイン(Remote Images Grabber)経由で登録してアイキャッチに指定する方法にすることにした。
あたかも自分でPHP書いたみたいだけどこれも先人のソースコードをパクった。
ちょっとだけソースが間違ってて最初動かなかったので、そこだけは自分で書き直した。
これでいちいち動画を一時停止してその画面をGyazoって保存してWordPressへ登録するとかいうくそめんどくさい作業をしなくてよくなった。
どうせなら先人の凄腕プログラマーの方々みたいに自分のエロサイトで収益を上げてみたいなと思ったので、アフィリエイト登録をした。
一番いいのはGoogle Adsenseだったんだけどエロはだめみたいだったので忍者AdMaxっていうのにした。
このへんは詳しくないのでよくわからない。アクセスが増えてきたら他のアドネットワークとかも検討してみようと思う。
サムネイル画像の登録方法以外は特につまづくこともなくサイトをつくれた。
WordPressってプラグインでなんでもできるからほんとにすごいとおもう。
自分でポチポチ更新作業をしなくちゃいけないからそこはやっぱりめんどくさいけど。
これからはその作業すらもやりたくないので、しっかりとPHPとやらを勉強してみようか考えてる。
どうやらスクレイピングっていう技術を習得すれば光が見えてくるらしい。
あとはSEOで検索流入を増やして毎日のアクセス数を頑張って伸ばしていくくらいか。
エロという不純な動機だけれどもちょっとだけ目標が持てたのでやっぱりエロはすごいと思った。もうちょっと頑張って生きてみよう。
即ハボ.com
ここみんは天使
なんか知らぬ間に200はてブ超えてた。すげえ。なんかすいません。
業者って言われてるけど違うよ。ニートだよ。仕事とかだったら絶対やらないし。
アフィ貼ってるからかいろいろ言われてるけど全然お金入ってこない。20円くらいw
忍者AdMaxより稼げるアフィあったら逆に教えてくれよ。
INSERT INTO TBL SELECT TBL.COL FROM OPENROWSET(BULK 'filepath', SINGLE_NCLOB) AS TBL(COL)
他の方法もいろいろあるだろう。ただ、文字コードに関して言及すると、SQL SERVER の内部データは UCS-2(UTF-16のサブセット)なので、合わせておいたほうが無難。UTF-16以外で取り込もうとすると、日本語付近で "XML 文字が無効です" などとエラーになる場合が多い(もちろん原因は何かあるのだろうが、調べてもさっぱり私には見当がつかない。時間の浪費はいやずら)。
'filepath'は、SQL SERVERのインスタンスが動いているマシンにとってのファイルパスね。'E:\???\???.xml'や'\\filesvr01\shared\data\???.xml'とか。
SELECT COL.query('/ELEM/NODE') FROM TBL など、あとはいろいろクエリーしてみてくれ。
(感謝)
近年、関数型プログラミングの重要性はいろんなところで叫ばれています。
Javaの最新バージョンに関数型プログラミングに関する新機能が加わりました。
Rubyも昨今、関数型プログラミングへのサポートが手厚くなってきています。
プログラミングの教科書の大手、オライリー社から、Javascriptで関数型プログラミングを行うための解説書が発行されました。
関数型プログラミングへの注目度は高まってきています。
おそらく、みなさんは既にオブジェクト指向が何か、を知っています。
でも関数型プログラミングとは何か、胸を張って語れる人は、周りに見当たらないかと思います。
実際、オブジェクト指向によってプログラミングする方法は、わかりやすい解説があちこちにある一方で、
関数型プログラミングとは何か、何が良いのか、ということについての、よいまとめは見つけることはできませんでした。
この記事を読む方の中で、「関数型プログラミングを取り入れるか・取り入れないか」で切実に悩んでいる人は、おそらくいないでしょう。
この記事はあまり細かいところに立ち入りません。関数型プログラミングを使う側の立場に立って、利点や向き・不向き、それが導くスタイルを書きました。
みなさんは鳥のように飛んで、高い空から、関数型プログラミングとは何か、何が良いのか、を見渡してください。
オブジェクト指向的アプローチは、名前をつけてプログラムを整理する。
関数型プログラミング的アプローチは、汎用部品でなんとかする。
Googleが近年リリースした言語、Goには、”継承”を直接サポートする仕組みが無いことが話題になりました。
また、Mac OSXの基幹ライブラリCore Foundationは、ライブラリ自体はC言語で書かれているにもかかわらず、その設計方針は明確にオブジェクト指向です。
その本質とは"名前をつけて対象を識別し、それを扱うこと"、にあります。
最もプリミティブなオブジェクト指向の対象は、ファイルハンドラです。あるファイルを開いて、読み込んで、あるいは書き込んで、ファイルを閉じる。
これらの処理をまとめたら、わかりやすいですよね?
対象に関する処理を、対象の周りにまとめる。これがオブジェクト指向の基礎的な理念です。
識別することとイコールで比較できることは、とても良く似ています。
イコールによる比較は、オブジェクト指向では鬼門であることが知られています。
PointクラスのインスタンスとColoredPointクラスのイコール演算をどう決めればいいかに、正解はありません(詳しくは"effective java"をご参照ください)。
また名前をつけて識別する対象は、フワフワしていてはいけません。
たとえば、"軍人の階級"をオブジェクトにしたとしましょう。"大佐"クラスのある兵士は名前のフィールドや、性別のフィールドを持っているでしょう。
ところで彼が昇格したときに何が起こるでしょうか。
新たに"少将"クラスのインスタンスが作られます。"大佐"クラスを破棄する前に、名前、性別、その他沢山のデータを引き継がなくてはいけません。フィールドを増やしたい場合はその都度コードに修正を加える必要があります(*)。
なるべくイコール比較を避けたい。対象は不安定なものではいけない。では何に名前をつけて、識別するか。そこにオブジェクト指向技術者の熟練度が現れるのです。
一方、関数型プログラミングでは、特定の何かに名前をつけるより、極力、汎用部品でなんとかしようとします。
関数自体をリストなどのデータ構造に詰めることもよく行われます。
実は、関数型プログラミングというのは本質を表していません。
関数をはじめとして、リスト・ツリーのようなコンテナ、手続きを抽象化したもの、回路を抽象化したもの。
あらゆる対象を値として、合成し、ときに分解し、新しい値を作ります。
変数に適用する処理を作りあげることが、とても簡単だからです。
四則演算が定義されたデータを詰めたデータ構造もまた、四則演算可能だったり。
誤解を恐れずに言うと、オブジェクト指向がトップダウンなのに対し、関数型プログラミングはボトムアップです。
関数型プログラミングをサポートする言語には、沢山の汎用部品が定義されています。
このような構造をインターフェイスとして、様々なライブラリが組まれているので、
たとえばモナドを知っていれば、30分程度でパーサー(解析機)を理解することができて、
パーサーを理解できれば、JSONパーサー・ XMLパーサー・markdownパーサー・C++パーサー ... などを理解するのはとても容易です。
理解しやすいこと。これが関数型プログラミングの大きな利点です。
追記:
また、汎用部品と型のお陰で、ライブラリのドキュメントが圧倒的にひきやすい、というメリットも有ります。
Haskellな人がPythonにトライした結果 - Togetterまとめ
関数型プログラミングは「厳密な事前設計を必要とするため、簡単なことをやるのにも時間が掛かる」。
>> map (*2) [1,2,3] [2,4,6]
邪魔な”儀式”や、"おまじない"のコードが徹底的に撤廃されているためです。
関数型プログラミングのコードは、潔癖かつ濃密です。
たとえばC言語でint hoge(int x,int y)が定義されているとき、hoge(3)はなんの意味も持ちませんが(コンパイルでコケますが)、関数型プログラミングでは意味があり、実際に有用です。
上の例では、「掛け算をする」(*)関数は、二引数関数ですが、それに引数を渡して作られた「2を掛ける」関数(*2)は、一引数関数になります。
関数型プログラミングでは、「簡単なことは簡単にでき、複雑なことは複雑にできる。ただし、間違ったことは殆どできないか、全くできない」。
また、静的型付けの力によって、コード補完は非常に強力になっています。インテリセンスの比ではないです。
たとえば、関数中のある表記の型を任意に表示できます(GHC/TypedHoles - HaskellWiki)。
やがてやってくる未来には、プログラムをテキストエディタで書くことは時代遅れになっているでしょう。
統合環境のサポートで、バグやミスの少ない、スムーズなプログラミングができます。
そしてその環境で動くプログラミング言語は、関数型プログラミングをサポートした言語なのです。
以下の様な兆候を感じたら、あなたはそのプログラムを関数型プログラミングで書くべきです。
一般に、オブジェクト同士の相互作用が複雑になるほど、オブジェクト指向では手に負えなくなっていきます。
そういうときは、オブジェクトを直接扱わず、替わりにその"相互作用"を扱うことで、複雑さを軽減するアプローチが有効です。
それこそが関数型プログラミング的アプローチです。
特にオブジェクト指向が有効なのは、プログラミング初心者がそのコードをいじるかもしれないときです。
関数型プログラミングは、強固さと柔軟さの代償として、高い学習コストを伴います。
オブジェクト間の相互作用が複雑でなく、着目している(名前をつけている)概念が安定しているとき。
そして、プログラムをいじる人たちの間で共通理解が図れているならば、オブジェクト指向が有利です。
遅延評価という機能によって、レガシーな言語で扱えなかった、巨大な数を扱うことができます。
関数型プログラミングで書かれたプログラムは、正確さが要求される、金融関連の業界で使われています。
手続きとしてパーサーを記述できるので、テキスト処理プログラムはより理解しやすく、メンテナンスしやすいものになります。
関数型プログラミングを知らない人は、「正規表現でおk」と言いますが、
彼の書いた複雑な正規表現は、半年後には(書いた本人でさえ)理解できなくなっていることでしょう。
手続き一般を扱うことができるので、途中で割り込みのある手続きの表現も容易です。
関数型プログラミングをサポートしていない言語ではコルーチン(ファイバー)などをつかってなんとかするしかありません。
さもなくば、非並行処理では普通に関数として記述できるところを、並行処理のために、Builder,Strategy,Command,Interpreterパターンを駆使して書き直すことになります。
Javascript使いの方は、Deferredなどの構造を使うでしょう(http://qiita.com/KDKTN/items/4c6986049d204f0645d8)。
C++使いの方はBoostで頑張りましょう。破滅的に解りにくいコンパイルエラーメッセージと格闘してください。
もう少し簡単な例をあげます。
あなたは、あるレシピにしたがって、自動的に料理を行うマシンの制御プログラムを書いているとしましょう。
1. まず玉ねぎを炒める。
2. 飴色になったら、肉を加えて炒める。
3. 野菜を加える。
4. 水を加えて煮る。
5. スパイスを加える。
…できませんよね?何故ならば、各ステップの"間に"、マシンのロボアームの位置や動きを調整する処理が必要だからです。
これをオブジェクト指向でやろうとすると、各ステップの副作用として、それらの処理を行うことになります。
そうすると、マシンが二機に増えた時などの変更量は、絶望的なものになります。
あるいは関数として表現するのを諦め、手順全体をDSLで記述できるようにします。
このアプローチは関数型プログラミング的です。しかし関数型プログラミングをサポートした言語の助けなしでは、そのDSLを記述するために沢山のユーティリティーコードを書かなくてはならないでしょう。
オブジェクト指向的アプローチでこの問題をエレガントに解こうとすると、クラス化の粒度を上げる事になります。
野菜クラス、フライパンクラス、ボイルクラス、フライクラス、焼き加減クラス、アームクラス、野菜の大きさクラス、切り方クラス、焼き方クラス、"焦げたよ"クラス、etc...
こうすると早晩レシピはプログラムのコード上から消え去ることになります。上記のたった5行は、依存性注入のオブジェクトグラフを構築するコードに取って代わることになります。そこには沢山の挙動の制御がオプションとして付記されているのです。
カレーなど、ある種のレシピに限定することで、見た目の理解しやすさを得ることができますが、一方それは表現力を損なうことを意味します。
C言語などではマクロを使うこともできますが、それは結局、関数型プログラミング的アプローチの意味するところと同じになります。すなわち、補助のために沢山のコードを書くことになるでしょう。
iOSのAppstoreアプリは、"無料"と書かれたボタンを押すと、それが"インストール"ボタンに変わり、それをもう一度押すと、ダウンロードの進捗を表すインジケータに変わり、それを押すとダウンロードをキャンセルできます。
このように、位置は同じなのに、ステートに依って見た目と機能が変わるボタンは複雑です。
これをオブジェクト指向で実現しようとすると、
という下らない問題にぶつかります。
一方関数型では、"機能"、"見た目"、"状態"、を独立に扱って、それらを合成してボタンを作るので、迷うことはありません。
「同じ位置にあるUIオブジェクトは、コード上で(インスタンスとして)独立して、他から干渉を受けない」
この条件が満たされているうちは、オブジェクト指向でGUIを実現することに無理はありません。
しかし、携帯端末のような小さい画面で、多くの機能を達成するためには、UI要素はコンテキスト依存的に複雑になりがちです。
近年、PCのディスプレイの大きさは、頭打ちになってきました。
画素数は増えているのですが、MacにおけるRetinaのように、複数ピクセルでひとつのドットを表すようになってきています。
これは、ひとつの画面に置かれるボタンなどのUI要素の数は、これから先の未来で増えることはない、ということを意味します。
したがって、未来のGUIのプログラミングは、注意深く機能をピックアップして制限するというデザイナーの努力を脇におけば、
関数型プログラミングの力を頼るしか無いでしょう。
つまり…
Haskell さいこうなのおおおおおおおおおおおおおおおおおお!! おしっこ漏れちゃうのおおおおおおおおおおおおおおおおおおおお(゜∀。)ワヒャヒャヒャヒャヒャヒャ
1. google:すごいHaskellたのしく学ぼう を注文する。
2. Download Haskell を自分のPCに導入する。
3. コンソールにghciと入力して、対話型コンソールを立ち上げる。
4. 次の関数をコンソールに打ち込んで、結果を見る。即値で書かれているところとかをいろいろ変更してみて、感動する。
take 4 $ map (*2) [1..]
追記:
いかがでしたか?
ちまたには、関数型プログラミングの利点は変数が無いことだ、とか、より安全だから、とか、より速いから、などという妄言が満ち溢れています。
オブジェクト指向と関数型プログラミングは、水と油ではありません。プログラマは自分のプログラムに最適なアプローチを選ぶことができます。
一般にはあまり知られていないことですが、Haskellにもオブジェクト指向へのサポートがあるんです(Lensライブラリ、これを使用したサードパーティ製ライブラリも最近増えてきています)。
この記事を読んだオブジェクト指向プログラマのあなたが、少しでも関数型プログラミングに(そしてHaskellに)興味を持ってくださって、ホームセンターの大人用オシメのコーナーが大賑わいになれば幸いです。。
国内クラウド最大手のIIJ GIOが驚くほどクソっていう話を書きます。
クラウドならIIJ GIO(ジオ)- IIJの高品質クラウドサービス にあるように、クラウド上にいろんなサービスを乗せてくれるヤツです。
まぁAWSでいいじゃんって話が出ると思うので、AWSとの違いをまとめてくれた方がいましたので紹介します。IIJ GIO にあって AWS にない(なさそうに見える)10のサービス - yoshidashingoの日記 なお、このエントリー以降にAWSも進化していて、中国リージョンの開設やVDIサービスの提供がアナウンスされています。
一つには国内ベンダーっていう安心感ですかね。どこに登記されてるとも知れないAWSに任せると、いきなり「今度このへんのラックメンテするからEC2のインスタンス落ちるよ」みたいのがあったりしますしね。
あとは、運用監視サービスをやってます。AWSだとCloudWatchみたいな簡易なやつしかないですが、GIOだとアプリのログとかポート監視もやってくれます。まぁAWSでもサードパーティで運用をやってくれる会社はありますが。
残念ながら、上記の「選ぶ理由」はどれも裏切られます。
不定期メンテは普通にありますし、ろくに通知もないです(電話1本とか)。内容も、ネットが切れるとかサーバを落としてくれとか割りとデカめです。国内ベンダーだからちゃんとしてるだろうというファジーな期待は裏切られます。
運用監視サービス、これがまたゴミです。監視のカスタマイズなんかお願いしようものなら「これが仕様なんで…」と突っぱねられます。ポーリング間隔ですらカスタマイズできません。あと運用。「このアラートは即電話ね」と決めていても、24/365対応している現場の人間は適当なバイトなので、ろくに伝わっていなくて見逃される、みたいのもザラです。
さっき打合せしたですよ。
次は不具合のある同僚のPCのエンコーダーを再インストールですよ。
お次はプリンタが使えないという隣のヤツのPCの面倒を見るわけです。
そいでもって社内のファイルサーバーを新しくするために代表に見せる見積もり作るんです。
お次は決済系のトラブルが発生したので決済会社に問い合わせのメールを送ります。
アフィリの請求書がきてるのでチェックして経理に渡すですよ。
ASWのインスタンスのCPUパワーが90になったんでインスタンスを上のクラスに変更しなくちゃ。
ZIPファイルのアップロード漏れがあったのでファイルサーバーから探してZIPしたアップしなけりゃ。
XPのサポートが切れるからXP使ってる連中のPCを発注しないと。
喉が乾いてきたから水のまなくちゃ。
まあ、ここで漏らしてもいいか。
終了になんねーかな。
そしたらひと息つけそうだ。
VPSサーバ | AWS EC2 |
---|---|
言語 | Ruby2.0p245 |
フレームワーク | Rails4.0 |
画像のリサイズ | carrierwave |
ストレージ | AWS S3 |
DB | AWS RDS |
処理はRuby on Railsで実装。 ログイン処理はdevice 画像のアップロードやリサイズはcarrierwave carrierwaveってすごいのね。たった数行書くだけでアップロードした画像を複数サイズにリサイズし、S3に保存までしてくれます。 インフラ周りはAWSにお任せ、THE最小構成ですね。 同時に7人アクセスしたらあぼーんです。 本来ならELBとAuto Scalingでミディアム2台くらい使いたいところですが、我慢。 RDSもmicroインスタンスなんで、これもクソ遅いらしいですが、ゆくゆくはミディアムにはしたいです。 あと、前回作ったWebサイトのAMIを利用したんですが、本当に便利ですね! 動くものを作るまでの時間がほぼ0でした! AWSは個人利用者には少々割高かと思いますが、こういった便利なところがいいんですよね~。
色々書いたけど、ここまでの文はリリースしたときにテンションがあがってた時に書いた文なののよね。
ぶっちゃけローンチして一ヶ月たつけど、登録数4人。しかも全部知り合い。
興味があったらみていただければと・・・と思ったけど宣伝乙とか言うんだろ。
実装から今まで頭の中で思い描いたことの9割は裏目にでてるか失敗してるかうまくいってない。
こんな難しいのか、サイト運営って。
発売前にはβテストからのテストプレイ全てに参加し、サービス開始初日からプレイを続けたものの
無料期間が終わり、1ヶ月分の課金をしたがあまりINするモチベーションのない、実質引退状態のプレイヤーになってしまった。
簡単に言うと、今後課金を続けるほどの継続的な面白さを見出だせなくなっているということなのだが、もうちょっと詳しく自己分析も含めて書いてみようと思う。
FF14は序盤からメインストーリーに、複数人とのパーティープレイ必須のインスタンスダンジョン(以下ID)と、同じく複数人必須のボスとのバトルコンテンツがある。
どのくらいの比率かというと、レベル17までのプレイは初回で約10時間程度、そこからストーリーをすすめるには、IDを3つクリアしないといけない。その後1、2時間程度のプレイでボスとのバトルコンテンツがある。これでPTプレイは数えて4つ。
それが終わると、その後10時間程度レベル上げをした後にIDのクリアを命ぜられる。その後同様に10時間程度するとまたしてもIDのクリアを命ぜられる。
なにかとパーティプレイ必須なIDで進展に蓋をしているのが現状だ。
上記PTプレイにはセオリーというものが存在する。TANKと呼ばれるHPと防御力の高い職が先頭を走り、立ちふさがる敵の注意を集め、敵視を維持しながらDPS職が殴り、HEALERが主に攻撃を受けているTANKを回復する。
さて、初めて攻略するIDにおいて、一番敷居の高い職はなんだろうと考えたところ、圧倒的にTANK職だろう。
常にダンジョンの先頭を走るために、内部構造をある程度把握していないといけない。危険な範囲攻撃や大きな被害を被る攻撃を繰り出す敵を最初に倒すべく、考えて敵を釣らなければいけない。
明らかに責任が重い。
たまたま斧術士というTANK職でプレイしていた俺は、それが煩わしくてしょうがなかった。面倒である。
現在、斧術士を戦士(よりTANKとしての特性に特化した職)へランクアップ(といっても過言ではないだろう)し、レベルは31(現在は最高50レベル)になったが、道中のトトラクの千獄と呼ばれるIDはクリアしていない。
これから先、まだ幾つものIDやボスがあるのは知っている。そして、ダンジョンやボスのギミックも加速度的に難易度が上がることも、TANKへの他プレイヤーの要求が上がることも聞いている。
そして、それらのPTプレイを終え、メインストーリーをクリアした後に待っているものは、装備を更新するためのID、ボスバトルだ。
PTプレイを推奨しながら、ライトなプレイングを提唱するその基板には、ある程度快適なPT編成システムがあるからだろう。
コンテンツファインダー(以下CF)という、PTプレイが必要なコンテンツに自分を登録しておくことで、申請者の中からサーバーの壁を超えて勝手にPTを集めて組み立ててくれるシステムだ。
非常に便利な半面、この一期一会のシステムが、「質の悪いプレイヤー」と接する機会を激増させている。
終われば、あるいは自分から切断すればその後散り散りになるため、後先を考慮する必要がないと捉えた上記の「質が悪いプレイヤー」を抑制することが出来ない。コンテンツの難易度が上がれば比例的に数が増えると聞いている。
「聞いているだけで実際はそうではない」という話は、実際は事実かどうかは関係なく、その話で躊躇するプレイヤーをゲームから遠ざけてしまうという事が間違いなくある事が大事である。俺だ。
βテストの時点では、レベル20キャップ、最初のパーティプレイのチュートリアルとして3つのIDと1つのボスバトルがあるという話であった。
これを終えれば、まだ自由にコンテンツを楽しむことが出来ると思っていたが、実はコンテンツは、そのメインストーリーと各職業のレベルが5上がるごとに受けられるジョブクエスト、mob狩りとfateと呼ばれるフィールドに突発的に発生するクエスト、ギャザラーと呼ばれる職業によるアイテム集め、それらを加工する生産職であるクラフターでの生産。これだけだった。
これだけ見て、多いと感じるだろうか?少ないと感じるだろうか?
メインストーリーは置いておくとして、ジョブクエストは、クリアするとその時のレベル適正装備やスキルがもらえるお使いクエストだ。
ギャザラーのアイテム採取は、フィールドの採取ポイントを往復しながらボタンを連打したあげく、数時間をかけて入手したアイテムはガンガン相場が下がっている。
クラフターは一部先行者が儲けを独占し、後続は投げ売りで価値を暴落させる。そもそもクラフターが作るアイテムの中で、戦闘職用の装備はIDの宝箱から出るもののほうが性能が良いため、二束三文。非戦闘職用のものを売れるならまだいいが、消費するものではないためそれも頭打ちになる。
では回復薬やステータスアップにつながる料理などはというと、基本的に必要とされておらず価値がつかない。
(ここらへんのバランスはテスト時にもさんざん言われてきたが、そういうゲーム構造なので現状ではどうしようもないだろう)
レベル上げとIDを何度もクリアして装備を集める事とメインストーリーしかやることがなかった。多様性が全くなかったのだ。
レベルはとても上がりやすい。今の俺のレベル30位なら、2日効率よくやれば到達できるだろう。クエストはお使いモノがたくさんあるし、各地のfateをやるだけでどんどん上がる。IDへ入り浸っているならなおさらだ。
だからこそ、ある程度普通にやるだけでエンドコンテンツへ簡単にたどり着いてしまう。そこに待っているのは高難易度で面倒なPTプレイ「しか」無い。
自分で知らない場所へ赴き、SCをとるだけでも楽しいものであるが、この世界の住人はとかく足が速い。
プレイヤーは最初からファストトラベルで、常人の足でありながら高速に動く。レベルが少し上がり、初心者を脱した時には自分専用の騎乗動物「マイチョコボ」が与えられ、いつでもどこでも呼び出して乗ることが出来る。
このため、一見広そうな世界でも、とにかく狭い。足の速さはプレイヤーの快適さにも直結する部分だが、一方で世界観の構築にはあまり寄与しない。
世界の広さに関しては、今後のVUで確実に改善する部分だが、初期段階で今の全世界の倍は用意して欲しいと思った。
現在、フリーカンパニーと呼ばれる集団にも加入し、一応のコミュニティには属しているわけだが、どうにも上記の要素を感じてしまって未来を感じない。
新生エオルゼアには本当にものすごく期待していたのだが、(FF11も、旧14もプレイ済み)どうやらこのままフェードアウトしそうだ。
文句を言っているのではない。ただ、残念である。
新生FF14をやっている。
この3連休を利用して、格好いい見た目の武器が欲しくて、ずっと同じ「ストーンヴィジル」っていうインスタンスダンジョン(4人限定で入れて、そのダンジョンのラスボス倒したらクリアってやつ)に潜ってた。
ラスボス倒したら、確率で色々な武器が手に入るのだけど、槍がなかなか出ない。槍欲しい。
FF14は「コンテンツファインダー」というシステムで、「私、ストーンヴィジル行きたいです!」っていう人たちを自動的にマッチングしてくれてる。
2回目:ラスボス倒せたけど、本が出る
3回目:剣が出る
4回目:クリアできず
5回目:本が出る
6回目:斧が出る→からの7回目。
敵を引きつけたり、回復やその他に攻撃がいかないよう守ってくれる「タンク」役は盾か剣か、斧の職業の人なんだけど、盾の人が自動でマッチングされて来た。
Lv40~43くらい?のダンジョンでLv46の人だったから安心していたら、まず出だして1回全滅。
難しいダンジョンだから、90分制限ぎりぎりになることは何度もあったけど、ダンジョン入ってすぐの、そのダンジョンで一番弱い雑魚3匹だけで全滅。
で、ボス1・2・3といるうちの、ボス1に行くまでに4回全滅。全滅しても何も言わないからボス1行く前にちょっとイラっと来て、
「ターゲット(敵が攻撃する対象)が回復の人に行くから、ターゲット移らないようにフラッシュ(敵視を盾に集める)してー」
って軽く言ったけど応答なし。ターゲットが移るたびに回復が死に、回復死んでも盾は無言で同じ敵をたたき続け、回復できなくて死ぬ。
盾死んだらDPS(他の攻撃役)の自分たちも死ぬから、最初からやり直し。
ボス1は攻略法さえ分かってれば簡単に倒せるのに、4回死んだ。
盾の攻撃力が足りなくて、回復の人のヘイト(敵視)が上回って、ボスに回復の人がたたかれ続けてもそのままフラッシュもしない。回復死んで、盾が死ぬまでそのまま。
まったく同じ失敗を4回繰り返して、ついに言ってしまった。
「あと45分同じ事を繰り返すより、話し合いませんか?」
盾から応答なかったけど、その他回復と私以外のDPSの人が「そうだよね」みたいになったから図に乗ったんだと思う。
「ターゲットが回復さんに行ってしまうので、定期的にフラッシュお願いします」応答なし。
「回復のヘイト意外と高いから(フラッシュないときつい)」応答なし。
もう完全にイライラしていて、「聞いてる?」ってチャットしたけど応答なし。
話し合いってより、私の一人語りだったけど、盾はどんどんボス1の方に勝手に走って行く。
他の人は、ふりだしの場所でチャット打ってる自分の近くに居た。
何にも応答なくて、仕方なく盾の近くに寄ったら、パーティ皆に聞こえるチャットじゃなくて、近くにいる人しか見えないチャットで「はい」って言ってた。
強烈に自分が気持ち悪くなった。
今まで盾に無言でついて行ってたけど、本当にこの雰囲気の中いけるの?って感じだった。
結局、辞めるなら出よう、盾の人が行くって言ったらついて行こうってなって、盾の人が「もうやめましょう」って言ったきりパーティを抜けた。
パーティは解散になったけど、そのまま続けるのが忍びなくてゲームを終了してきた。
同じエリアの全員に聞こえるチャットで、「真タイタン討伐行く人いませんか?ただし○○装備以上に限ります」とか、「アムダプール募集。ただし説明不要な経験者or攻略法見てきた人に限る」とかやってて、
ダンジョン行ったら行ったで、「そんな(弱い)装備でクリアできると思ってるの?w」とか言う人も居た。
ゲームごときに入れ込みようが半端なさ過ぎるだろう、気持ち悪いって思ってた自分がゲームごときの攻略で本気で盾さんを困らせてた。
パーティ皆に聞こえるチャットじゃなくても、盾さん個人に「お願いします」って、そういうのじゃなくてももっと言い方はあったのに、仮想の武器欲しさにゲームってことを見失ってた自分が本気で気持ち悪いよ。
ログインしたら、全体に聞こえるチャットで「こいつキモい」とか言ってたらどうしよう、って思ってる。
暴言・無言キャラの晒し上げリストに自分が上がってないか2chまでチェックしてしまった。
今は冷静さを取り戻したくて書いてる。
今のとこ課題は全部出せてる。
forとかwhileとか配列とかスレッドとかそういう技?みたいなのはなるほどってなる。
けど、書いたコードの説明に入って
プリミティブ型?とかキャストとかわけわかんない単語使いながら
用語解説必死に読んでも日本語と思えないことが書いてあって辛い。
iPhoneアプリの授業はインターフェスビルダーとXcodeの関係を結ぶところとか、
アクションメソッドでどういう動きさせるかはJavaの授業とリンクしててよくわかって楽しいんだけど
インスタンス解放とかアウトレット?とか戻り値とかデリゲートとか
アクションメソッドでどういう動きさせるか書いた下の方にあるコーナーに
先生がこの文入れといてください これはリリースしますとかわけわかんないこと言ってるのにしたがって文を写してて
これで本当に大丈夫か??ってなる。
どちらも同じ先生で、質問してもそのうちわかってくる!って言われるからそうか…ってほっといてるけど、
言語の詳しい説明はいつになったら理解できるようになるか不安になる。
自習の仕方もわからないし。
どうすればいいですか?
日本語でOKですいません。
「ごめんください」
「何や今時分、おお、お前か。まあ上がり」
「どっちの足から上がりましょ」
「お前と掛け合いで落語やる気はない。早よ、上がれ」
「へへへ。ほな失礼します」
「失礼は毎度のことやんけ」
「何です」
「いやいや。ほんで何やねん」
「ほおん、なるほど。で、その心は」
「別に謎かけやないんですが、まあ、しんどいちうことと、ええ歳していつまでもこんな仕事してたらあかんなあと思いまして」
「せやなあ、今年は蟹の水揚げが不調やしな」
「いったい何なんですか、ぼくの職業は。多喜二ですか」
「軽い冗談や」
「まあ、ほんまにそれくらい厳しい労働条件ですけどね。いっそアカになったろか思いますよ」
「ほな、俺、公安ね」
「なんで今からごっこ遊びせなあきませんねん」
「せやから軽い冗談や、言うてるやろ。で、辞めてどうするねん」
「何やて」
「ほら、ぼく、ワードやエクセル使うの得意ですやん」
「ワード……、エクセル……」
「何ですか」
「お前、キーパンチャーにでもなるつもりか」
「何ですか、そのキーパンチャーて」
「それはやな、君」
「なんでいきなり噺家口調になるんですか」
「シーモンキー。滅茶滅茶遠いし」
「とにかく俺が言いたいのはやな、お前ほんまにワードやらエクセルやら云々でコンピュータ関係の仕事に就けると思てるんか、ちうこっちゃ」
「ああ、判りました。いつもの口癖ですね。プログラム作れん奴はコンピュータ触るな、とか、ユニックス判らん奴はネットに出てくるな、とか」
「まあ、そういうこっちゃ」
「でも、コンピュータ関係の仕事には絶対にプログラムの知識が必要なんですか」
「んー、そういうこともなかろうけどな。まあでも、ソース読めへんSEとか管理者っちうのはちょっとぞっとするわなあ」
「実はね、そうやろうと思ってぼく最近プログラムの勉強してますねん」
「ほほう」
「あっ、いきなり薄笑い浮かべてますやん。滅っ茶馬鹿にしてるでしょ」
「C言語です」
「くくく」
「あっ。腹立つ、このおっさん」
「くくく。まあ、しっかり頑張りたまえよ」
「何か悔しいなあ」
「で、どないして勉強してるねん」
「へへへ。ちゃんと例のやつ買ったんですよ」
「例のやつて何やねん」
「いつも言うてはるやないですか。バイブルやて。R&Bですよ、R&B」
「R&B」
「そうです」
「K&Rやろが」
「そうそう。そうとも言う」
「そうとしか言わんちうねん」
「今どれくらいまで進んでるねん」
「それ、滅茶苦茶初めのほうやんけ」
「お前、パール書けたっけ」
「えっ。あれって自作やったんか」
「ちゃいますけど、ちゃあんとタイトル書き換えて使ってますやん」
「……」
「頭抱えてどないしはったんですか」
「そうです」
「お前な、何かをものすごく誤解してるか、世間をものすごく舐めてるかのどっちかやな」
「えへへ。そうかな」
「あかんわ。褒められたと思とる」
「C言語覚えたら次はシーインクリメントですわ」
「なんやて」
「シーインクリメント」
「そうです。何か変ですか」
「まあ『++』は確かにインクリメント演算子やけどな。普通はCプラプラって言うやろ」
「変ですやん、そっちの方が。大のおとなが『ぷらぷら、ぷらぷら』言うて」
「確かに宮沢章夫もそう書いてたけどな」
「お前なあ、自覚ないやろけど、それはものすごく難しい質問やで。一言で、て」
「けち臭いこと言わんと教えてくださいよ」
「またまたあ、わざとややこしい言い方して煙に巻こうとしてるでしょ」
「むかむかむか。そしたら言うたるわい。C++ちうのはやな、要はクラスの概念を実装したもんで、クラスちうのはインスタンスをうんたらかんたらで、継承とオーバーライドがこーたらで、ポリモーフィズムがなんたらで、隠蔽がどーたらで、うらうらー」
「……」
「……」
「はあっ。はあっ。どうや、参ったか」
「うーん。何かよう判りませんわ」
「なんか難しそうやから、C++やめて次はJavaにしますわ」
「ぎゃふん」