「仮想マシン」を含む日記 RSS

はてなキーワード: 仮想マシンとは

2018-05-27

吾輩は無職である。暇だから初めてWebサービスを作ったのである

吾輩は無職である。職はまだ無い。どこで無職になったか、とんと見当けんとうがつかぬ。

何でも薄暗いじめめした所で手斧を投げられていた事だけは記憶している。

吾輩はここで始めて増田というものを見た。

しかもあとで聞くとそれは増田という人間中で一番獰悪な種族であったそうだ。

・・・

まぁ、前置きの冗談はこの辺までとして、前々から作りたいな思っていた

Webサービスを中々時間が取れず作るのを諦めていたのだけど、

まぁ無職になって時間も取れたので作った次第です。

自身プログラミング生業とする職業では無く、学生時代特にプログラミングついて何か

勉強をしていた訳では無かったので一から勉強になりました。

始めたのが昨年末大晦日ちょい前なので、約5ヶ月掛かり、当初想定していた期間より

かなりの時間が掛かってしまい、反省点等含めその辺の事を書けたらなと思います

■やりたい事(実装した事)

ゲームユーザー同士を繋げるマッチングサイト出会い系ではないよ。)

ログイン機能

タスクベースでのチケット管理

・簡易コメント機能

・簡易評価機能ポイント

ステータス動作変更処理

タグをつける

上記DB管理

構成を書いた方が良いと思うので

以下になります

構成

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

サーバさくらVPS 2G

OS:CentOS 7.5

WebサーバNginx 1.14

WSGI:uWSGI 2.017

FW:Flask 1.0.2

RDBSQLite3 3.7.17

ORM:SQLAlchemy 1.2.7

言語Python 3.6

フロントPure JavaScriptのみ

その他ツール等:Let's Encrypt/fail2ban/等々

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

上記を見て貰えれば分かるかと思いますが、最近流行りの

フロントエンド技術等は一切入ってはいないです。

ほぼ、既存ベーシックサーバーサイド側の制御のみです。(jsで非同期通信はしてます

SPAとかVueとかの言葉最近知りました。。。

ほぼ開発終わりかけに知ったので、流石に今から構成

変えるのもなと思い、取り敢えず上記です。

■選定理

まずWebサービス作るにあたり、何が必要だろうと思い

まずは開発言語だろうと、プログラミング言語の選定で

RubyPythonかで悩みました。

Rails名前を良く聞くのでRuby on Rails触ったのですが、

Railsには馴染めなかった(扱えなかった)ので

何かマイクロFWの方が良いのだろうと、Sinatraいこうか思いましたが

Railsの印象が強く残った為、Rubyは止めてPythonに移りました。

今度は初っ端からマイクロFWが良いだろうとFlaskのサンプルを試すと

比較プログラミング学者でも扱いやすく覚える事も少ないので、PythonとFlask

の組み合わせで決定。

(気軽にプログラムを書け、自分イメージしている処理や制御を素直に実現できる点が

 書いていて気持ちが良いです。まぁ分からない所も有りますが、そう思わせてくれる点

 が良いです。モチベーション的に)

NginxとuWSGIの組み合わせはFlaskで検索すると一番でてくるのでこれに決定。

SQLite3 はマイクロFWから軽めのDBでたぶん大丈夫だと思ったのでこれに決定

ORM(SQLAlchemy)も検索で一番出てくる為。

■開発概要

・まずPythonの開発環境を整えようとなり、WindowsVagrantインストールして

 仮想マシン環境構築。ゲストOSの中にPyenv等を入れPython環境構築

上記構築後に取り敢えず小さなサンプルから作ろうとなり、簡単CRUDをFlaskで行える様にしました。

 これができた時は嬉しかったです

上記が出来てから、本番の開発に移りCRUDベースにひたすら肉付けていく

ユーザー登録機能作成/ログイン機能作成/ユーザー情報表示/編集機能/チケット作成/及び編集/バリデーション

上記平行してDB機能作成実装/検索機能作成

・細かいViewの調整とスマホ用のView作成レスポンシブルでは無いので)

・本番用のさくらVPS環境構築とセキュリティ用のツール導入とLet's Encryptでhttps

上記以外の細かい調整等含め、約5ヶ月になります

■悩んだ点/反省

・悩んだのがタグ機能周りになるとどうすればよいか、かなり悩みました。

結論を言うとToxi法を使用しましたのですがここにたどり着き、理解するのに結構時間がとられました。

また、実装したらしたで、今度はそのタグ機能検索するとなると検索ワードが1つとは限らないので

クエリーを動的に生成する必要が有り、これも実装するのにかなり時間が掛かりました。

SQL文だけならば比較的すぐに検索でヒットしますが、それをSQLAlchemyでどう実現すれば良いかから

かなり時間が掛かりました。DB設計SQLAlchemyの文法に自信は無いですねぇ。。

・1次情報リファレンスから情報得ることがほとんど出来ず(たまにはできたが)、

他人咀嚼した情報からしか情報を得る事ができなかった。

(恥ずかしながら、咀嚼されなければ理解がおぼつかない状態

Stack OverflowQiita個人ブログが無ければこのサイトできなかったので

自信の咀嚼力強化が必須だと思いました。

作成結構時間が掛かったのでもっと短くしたい

総評

・5ヶ月と時間が掛かりまた反省点も多々有るが、とりあえずサービス公開まで

もっていけた事が嬉しいです。ただただ嬉しい。

・FlaskとSQLAlchemyの情報日本語が少ないので公式リファレンスとStack Overflow

行ったり来たりしたおかげで英語アレルギーがそこまで無くなった。

成果物

・で、作った成果物は以下になります

https://gamesanka.com/

ゲームサンカと言います

オンラインゲーマー向け(e-sports)のマッチングサイトになります

名前安直小学生が5秒で考えたような名前ですが、安直で気に入っています

作った理由は、僕はBF1が好きなのでオペレーションキャンペーンと言うモード

やろうとしたのですが、時間帯が悪いのか過疎なか分からないが全然マッチングしないのですよ。

やりたいのにマッチングしないので出来ないどうしよう、と。

また、昔セールFarCry3をかなり昔に購入した時(既に4が発売済み)にCO-OPモード全然マッチしない事が有り

旬が過ぎたオンラインゲームは中々マッチしなくてほぼシングルモードしか出来ない事は割とあると思うんです。

今だとBF4もかなり人数がいない状態なので特定マップのみとか。

なのでオンラインゲームマルチプレイCo-opで人を集めたい時、PUBGやFORTNITE等バトロワゲームスクワッドを

募集する時、オンラインゲーム大会e-sports)を開きたい時に利用して貰えると嬉しいです。

主に想定ユーザーと考えているのは、FPS/TPS/RTS/MOBA等のPCゲーマーをメインに考えていますCS機やTCGでも

使って貰えると嬉しいです。

あとViewレスポンシブでは無く、PC用とスマホしかなくタブレット用の中サイズViewが無いのでご了承下さい。

タブレット解像度が高い方はPC用で見て頂ける助かります

最後にお願いがあります

僕と一緒に以下のゲームを遊んで頂ける方を募集しています

遊んでも良いよという奇特な方がいましたら当該サイト内でコメント頂けると幸いです

・BF1(PC版)

・Dead by Daylight(PC版)

それでは長々とありがとうございました。

・・・

無職はただ楽である。いな楽そのものすらも感じ得ない。

日月を切り落し、天地を粉韲して不可思議無職に入る。吾輩は死ぬ

死んでこの無職を得る。無職は死ななければ得られぬ。

南無阿弥陀仏なむあみだぶつ南無阿弥陀仏

ありがたいありがたい。

2018-03-27

ホスト Ubuntu 16.04 で virtualbox 上の仮想マシンを起動すると、 ホストごとフリーズする問題

この問題に悩まされていたが、

https://superuser.com/questions/1284924/virtualbox-freezes-my-host-system-ubuntu-16-04

この stackExchange を見て問題が解消された。

原因はおそらくvirtualboxバージョン5.0を使っていたこと。

バージョン 5.1 に上げたら起動した。

バージョン 5.1 にあげるところでも躓いたのでメモしておく。

`sudo apt install virtualbox-5.1`

としたら、依存関係が壊れていてインストールできなかった。

そのため、

`sudo aptitude install virtualbox-5.1`

として、インストールを行った。

このとき、1つめに提案されたやり方ではインストールできなかったので、2つ目に提案された方法インストールした。

2018-01-17

仮想マシンwindowsが起動しなくなった

仮想マシンゲストwindowsが起動しなくなったのだが、これは最近話題cpu問題に絡んだことだろうか。

教えてエロいひと

2017-12-27

人生物語は要らない

 先日ホッテントリに上がっていた単著持ち増田のエントリを読んで、そういえば自分も増田が原因で本を書いたんだったと思い出した。


 数年前、初めて増田に文章を投稿したら2000ブクマ付いた。「文才がある」「物書きとして食っていける」とか言われたので、24万字の文章を書いてKindleで出版した。ぜんぜん売れなかった。人の言うことを安易に信じてはいけないと思った。

 そのあとまたホームレスになったので(2年ぶり3回目)しばらく福島で除染作業員として働いた。除染と言うと何か特別なことをしているように聞こえるけど、実はただの土木工事である肉体労働は久しぶりだったけど、小難しいことを考えず黙々と目の前の作業に打ち込んでいると、頭の中の不純物が取り除かれていく感じがした。

 そうだ、僕は物書きになりたいなんて思っていたわけじゃない。そんなものは誰かから押し付けられた「物語」でしかない。いままでも「元ホームレス成功者になる」みたいなステレオタイプな物語を押し付けられたことは何度もあったけど、いつも心の中で蹴り飛ばしてきた。なぜ今回に限って勘違いしてしまったのか。


 福島では相馬市松川浦という観光地にある旅館に住んでいた。国からの補助があるので宿泊費はかからなかった。旅館だけあって飯がめちゃくちゃうまかった。直前までわりと本気で食うや食わずの生活をしていて、就業前の健康診断で「就労可能です」のハンコの横に「貧血症――経過観察お願いします」とか書かれるレベルだったけど、1か月で元の体重に戻れた。

 そしてこういう現場に集まる人間というのは基本的ろくでなしばかりである。入ったばかりの給料を数日で飲み代やパチスロに使ってしまい、すぐに前払い制度を利用するはめになるような、そんな人間ばかりだ。同じろくでなしとして、とても居心地がよかった。やはり自分はこちら側の人間だと思った。

 そんなわけでしばらくここに居着こうと思ったけど、東北の夏は意外と暑かった。僕はそれまで日本の東側に来たことがなく、東北の夏なんて京都盆地の夏に比べたら余裕だろとか思ってたけど、ぜんぜん余裕ではなかった。しかも仕事中は半袖作業服禁止で、手袋は三重、さらに安全長靴にヘルメット、高性能防塵マスクというフル装備で、炎天下の中、延々と作業するのだ。このままでは干物になってしまうと思い、涼を求めて北海道へ行くことにした。


 割のいい仕事をしたおかげで金はそこそこあったので、JRの青春18きっぷを使って道内をしばらく旅した。

 旅の途中、いろんな人に出会った。日本一周中のライダーチャリダー、本州でこういう人に出会う機会は少ないけど、北海道ではさほど珍しくない。彼らには独自の文化があるようだった。こういった旅人向けに格安で宿を提供するライダーハウスの存在も教えてもらった。ライダー専用のところもあれば、旅人なら誰でもウェルカムみたいなところもあるようだ。

 美瑛にある「蜂の宿」というライダーハウスはめちゃくちゃ居心地がよくて、しばらく沈没してしまった。同じように沈没中の旅人が多く、宿を出るときは少しバツが悪くて、朝早い時間、夜逃げのように出発した。稚内の飲み屋では一人旅の女性客に「函館に住んでるから着いたら連絡してね」と電話番号を渡された。でもいざ函館に着いて連絡しようとしたらだんだん死にたくなってきたので忘れてたことにして函館を後にした。小樽のライダーハウスではなぜかオーナーに気に入られて「上の階の空き部屋に住んでいいよ」と言われたけど、結局置き手紙だけ残して去ってしまった。

 そんないつも通りのあれこれがありつつ、最終的に札幌でクソボロいマンスリーマンションを借りて住み始めた。


 札幌では2年ほど暮らした。つまり冬を2回越した。

 石狩平野ドカ雪が多い地域で、昨日まで普通だった街の景色が、朝起きたら突然、一面の銀世界になっていることも珍しくない。人の背丈より高く積み上げられた道路脇の雪。凍った路面をすいすいと歩いていく人たち。数センチの積雪で大騒ぎになるような地域に住んでいた僕には、すべてが新鮮だった。海外を旅したときも自分がいかに世間知らずかを思い知らされたけど、同じ日本でも住む土地が違えばこんなに空気も文化も違うのかと思う。

 そうだ、僕はあまりにも世界を知らなさすぎる。ホームレス経験があるからなんだというのだ。「なんでも知ってるゲンさん」みたいなステレオタイプキャラクターはどこにも存在しないということがわかっただけじゃないか。インド東南アジアを旅したからなんだというのだ。日本の近所をちょろっと見てまわっただけじゃないか。アメリカにもアフリカにもヨーロッパにも行ったことがない。政治も経済も科学も宗教も、本当に何も知らない。

 もっと世界を知りたいと思う。いままで自分ひとりで知識や経験を積み重ねてきたけど、もう限界だと思った。独学には「体系的に学べない」という決定的な限界がある。だから大学へ行こうと思った。もっと世界を知るために、僕には高等教育が必要なのだ


 しかし僕は中卒なので大学へ行こうにも受験資格がない。まずは高認(旧大検)を受ける必要があった。とりあえず過去問ざっと目を通してみると、文系科目は特に対策しなくても合格点を取れそうだったけど、理系科目は壊滅的だった。数学なんて問題文の意味さえわからない。やべえよ。

 コールセンターWindowsテクニカルサポートの仕事をしつつ、参考書と格闘する日々が始まった。途中で何度も心が折れそうになったけど、数学が扱うのは実体のある数(かず)ではなく、数(すう)という概念なのだということがわかってから、唐突に理解できるようになった。数を感覚的に扱えるようになり、数式の手ざわりがわかるようになった。

 勉強時間の半分くらいを数学に費やしたおかげもあってか、本番の試験では90点を取れた。分数の足し算すらあやしかった状態からここまで持ってこれたのだから、まずまずの結果だろう。国語は無勉強で満点取れたので、読解力は普通にあるようだ。他人の評価は主観が混じるので話半分に聞くけど、こういう機械的な評価は信用できる。英語も無勉強で満点取れるかと思ったけど、2問ほど間違えた。どちらも穴埋め問題だ。自分でも文法力が足りてないことは自覚していたけど、やはりその通りだったようだ。他の教科もなんとか70点以上をマークし、無事、高認に一発合格した。

 これで大学受験の資格は得た。学力はまだぜんぜん足りてないけど、土台部分は構築できたはずだ。これからさらに何年かかけてこの上に知識を積み重ねていくとして、次に考えるべきは資金の問題だろう。無給で4年間大学に通うなら最低でも800万、できれば1000万は貯金しておきたいところだ。しかしこの額はさすがに札幌の労働単価では厳しい。やはり稼げるところに行くべきだと思い、住んでいた部屋を引き払ってまたホームレスになり(2年ぶり4回目)今度は東京へ向かった。

 ちなみに僕には家族も友達もいないので、こういうときバックパックに入りきらない荷物はウェブ管理可能なトランクルームに預けるようにしている。ダンボール1個分の荷物を月数百円で預かってくれて、いつでもウェブから出庫できるので、こういう生活スタイルにはとても便利な存在だ。


 いままであちこちを転々としてきたけど、東京に来るのは初めてだった。西成で暮らしていたときに山谷の話は聞いたことがあったので、まずはドヤで当面の寝床を確保する。西成みたいに1泊1000円前後で泊まれればしばらくそこで暮らそうかと思ってたけど、2000円前後が相場のようだったのでドヤ街からは早々に引き上げ、少し北上して南千住駅近くにあるシェアハウスの一室を借りて住み始めた。

 次は仕事だ。自分の持つスキルの中で最も金になるのは、やはりプログラミングだろう。上京する前にリハビリとして最新技術はひととおりさらっておいたし、その経緯を文章にまとめてQiitaに投稿しておいた。なぜかその記事は「文学作品」という評価を受けたけど。技術記事なのに……なんでや……。しかし職探しのときにその記事をポートフォリオとして使ったらめちゃくちゃウケがよかった。東京エンジニアが不足しているとは聞いていたけど、これほどとは。仕事も多ければ単価も高い。いままで自分が住んだことのある都市と比べると、京都・札幌の倍以上、大阪の1.5倍以上の単価だと思う。

 そんな感じで生まれて初めて金に困らなくなった(!)ので、まずは渋谷に引っ越した。JR渋谷駅ホームまで徒歩5分のマンションなので、主なオフィス街は自宅から30分以内で行けるし、渋谷にある会社ならもちろん徒歩圏内だ。ジュンク堂(東急)まで徒歩10分くらいで行けるのもすばらしい。近くに庶民派スーパーがないことだけが難点だけど、西友のネットスーパーに助けられている。いつも配送ありがとうございます

 次にPCを買い換える。生活スタイルの問題もあってここ数年はずっとノートPCを使ってきたけど、東京には腰を据えて何年か住む予定なので、ハイエンドデスクトップPCを買うことにした。WindowsLinuxどちらも使いたかったので、これまで通りデュアルブートにしようかと思ったけど、切り替えが面倒なのでWindows上の仮想マシンとしてLinuxを動かすことにした。開発は基本的にその中ですべて完結させるので、仮想マシンの中でさらに仮想マシンを動かす場面も出てくる。こういう使い方だとそれなりにスペックが必要だろうと思い、CPUはi7-7700K、メモリは64G積んだ。どうせハイスペックにするならいっそVR Readyにしようと思い、グラボは1080Tiにした。そんな感じでいろいろぶっこんでいったら最終的にPC本体だけで40万かかった。さらにDELLの34インチ曲面モニタ東プレの変荷重キーボード、HTC Viveとデラックスオーディオストラップ、等々、もろもろ合わせて最終的に総額60万以上かかった。半年かけて海外を貧乏旅行したときの旅費を軽く超えててさすがに草生えた。


 2017年末になってもVR市場は未だ揺籃期の様相を呈している。キラーコンテンツとなりそうなゲームはちらほら出始めているものの、起動直後の「おお! VRすごい!」からその後が続かないものが多い。

 そんな中で僕がハマったのはQuiVrという弓ゲーだった。ゲーム中で何度も繰り返す矢を放つ感触がとにかく素晴らしく、現時点で250時間プレイしている。まだアーリーアクセスだけど、毎週コンスタントアップデートが続けられていて、次々と新しい要素が追加されていくのも飽きない理由だと思う。でもその分バグが多く、プレイしていてだんだん腹が立ってきたので、Discordに乗り込んでバグ報告しまくっていたら、いつまにかベータテストに参加するようになっていて、いまではランキング上位プレイヤーのひとりになっている。

 Rec Roomもおすすめしておきたい。ユーザーコミュニティがとても活発なソーシャル系VRゲームで、RedditDiscordを覗くと、運営とユーザーが一丸となって、いいゲームにしていこう、いい場にしていこうと努力している様子がうかがえる。そのおかげか、マナーの悪いプレイヤーが非常に少ない。ハラスメント行為等はほぼ皆無と言ってよく、Fワードを使っている人さえあまり見かけないほどだ。ゲーム自体も、チーム戦のペインボールレーザータグ、協力プレイアクションRPGゲーム等、無料とは思えないほどのクオリティの高さなので、VR機器を持っている人はぜひやってみて欲しい。

 そしてそのRec Roomよりさらにコミュニティが活発なのがVRChatだ。もはや活発という次元を超えてカオスと言っていい。半年前に初めてログインしたときは10~20人くらいのユーザーがHub(ログイン直後のワールド)で適当にダベっていて、他のワールドにはまったく人がいない、みたいな閑散とした状況だったのだけど、今月初旬に同時ログイン数が1000人を超え、Discordオンラインメンバー数は2000人を超えた。現在は同時ログイン数3000人を超し、Discordオンラインメンバー数は4000人を超すような状況だ。どうも有名なYoutuberや、Twitchの有名生主といったインフルエンサーが最近こぞってVRChatを取り上げているようで、この爆発的なコミュニティ拡大はまだ収まる気配がない。デスクトップモードがあるので参加するだけならVR機器が不要だというのも大きいか。

 Rec Roomとは違いVRChatはコミュニケーション主体のソーシャル系VRゲームだ。ミニゲームは前者に比べて見劣りするものの、ユーザーカスタムアバターワールドが自作・公開可能で、これが海外のオタクたちの創作意欲を刺激したのか、黎明期ニコ動を彷彿させる盛り上がりを見せている。こういった事情によるためか、もしくは別の何かが彼らをひきつけたのか、実際のところはわからないが、VRChatのユーザーはほとんどが日本のアニメフリーク・漫画フリークだ。ユーザーカスタムアバターはそれらに影響を受けたものが多く、美少女キャラロボットモンスターが目の前を行き交う様は、まるで攻殻機動隊電脳空間のようだ。とはいえ現状では4chan的な文脈そのままの著作権ガン無視状態なので、前述の爆発的なコミュニティ拡大にともなって近いうちに問題になることが予想される。なんとかソフトランディングして欲しい。

 しかしこの未来感すさまじい仮想現実の世界にいると、なぜか昔のインターネットを思い出す。特にテレホーダイ時代の2ちゃんねるのことを。夜の11時を過ぎると一気に人が集まり、どこの誰とも知らない人たちと一晩中バカ騒ぎをして、朝になるとネット全体が静まり返っていた、あの懐かしきオールインターネット。VRChatをやっているとあの頃の記憶が蘇ってくる。ドイツ人ドイツ語を教えてもらったり、サウジアラビア人にアラビア語を教えてもらったり、台湾人に3Dマーカーペンで中国語を書いてもらって「おおー、漢字の意味なんとなくわかるー!」とか感動したり。そんな多種多様国籍・人種の人たちとアニメについて語り合ったり、アニソンをみんなで大合唱したり。MMDナイトクラブというワールドでMMDモデルダンスが見られるのだけど、ステージ上で踊る初音ミクを囲んで、みんなで一晩中踊り明かしたりもした。マジでなんなんだこのカオスな空間は。しかしこれだ。これがインターネットなのだ夜明け前の静けさと、どこか熱に浮かされたような興奮。それらが齟齬なく同居する、この奇妙な感覚。久しく忘れていたこの感覚を、強烈に思い出す。

 でもいちばん印象深かったのはラノベ朗読会だ。ある日、いつものように適当に外国人たちとダベっていると「いまからショーが始まるから来ない?」と誘われた。開かれた転送ゲートをくぐってみると、その先は100人以上収容できる劇場のワールドで、さまざまなアバターの人たちが観客席に座っていた。舞台上の主催者とおぼしき人は「みなさんお好きな席にご着席ください。いまから『転生したらスライムだった件』の朗読を行います」とか言っている。え、どういうこと? と思う間もなくショーが始まる。やたら渋い声で、VRならではの身振り手振りも混じえて、感情表現豊かに読み上げられていく、まだアニメ化すらされていない日本のラノベ(正確にはウェブ連載版の英訳版)。ああ本当に世界は広いんだと思った。自分の知らないことなんて星の数ほどあって、そのすべてを知ることは絶対にできないんだと、少し胸が苦しくなった。


 と、最近はVRの世界にどっぷりだったのだけど、遊んでばかりいたわけではなく勉強もしていた。特に英語だ。いままでリーディングリスニングについてはそれなりにできていたのだけど、文法力がないのでライティングスピーキングに関しては壊滅的だった。しかしVRを始めてから英語圏コミュニティ英文を書いたり、VRゲーム内で英語を話したりする場面が増えてきたので、文法を基礎からじっくりとやり直した。二十代の頃に文法をみっちりやったときは死にそうになるくらいしんどかったけど、今回はそうでもなかった。やはり目的があると吸収力が段違いだ。そのおかげか、ライティングに関しては文法間違いがかなり減ったように思われる。スピーキングはいまでもだいぶあやしいけど。客観的かつ機械的な判断が欲しいので、来月久しぶりにTOEICを受ける予定だ。10年前に受けたときのスコアは680だったけど、今回の目標は800に設定している。2年後くらいには900を目指したい。ここまで英語力を上げておけば、大学受験の際にかなりのアドバンテージになるはずである

 あとはやはり数学だ。英語の勉強が一段落したら、数Iの復習から始めて、数IIへ進む。僕が受験しようとしているのは文系(経済学部)なので必要ないかもしれないけど、余裕があれば数IIIに関してもどんなものかくらいは頭に入れておきたい。前回の勉強のときに、数学は小さな理解と小さな納得を積み重ねていくしかないということが身にしみてわかったので、この科目に関してはじっくり腰を据え、時間をかけて少しずつ勉強していくつもりだ。

 国語に関しては受験前に赤本で少し対策すればいけそうなので、あまり心配はしていない。その他の科目は最悪捨ててもいいけど、時間があれば知識を少しずつ補填していこうと思う。

 こんなやり方で本当に大学に行けるのかはわからない。すべてが手探りだ。たとえ行けたとしてもその先のことはわからない。この歳で「大学を目指している」なんて言うと、先のキャリアを見据えてのことなんだろうと勘違いされることが多いけど、僕の場合、本当に何も考えていない。大学で政治や経済を学んで自分が何をしたいのかなんてまったくわからないし、それが金になるとも思えない。卒業したあと食い扶持が稼げなくて野垂れ死ぬかもしれない。その可能性は決して低くない。以前と比べれば多少はマシになったように思えても、やっぱり基本的に僕はバカなんだと思う。

 でも同時に、それでいいとも思う。行動に理由なんていらないのだ、と。行動の理由なんて事前にいくら用意したところで、たいていの場合、それは建前やこじつけでしかなく、本当のところは後になってからしかわからない。ミネルバフクロウなのだ。後になってからしかわからないなら、後になってから知ればいい。いまは行動するだけでいい。そう思う。


 先日、久しぶりにKindleのストアページを見てみたら、あの24万字の本へのレビューが1件増えていた。

 やっぱり僕はこれでいい。こうして増田で誰に宛てるでもなく近況報告をしたり、Steamに長文レビューを投稿したり。誰が読んでいるかもわからなくて、でもたまに反応があったりして、それが少しくすぐったくて。

 特別なことなんて何も起きなくていい。夢も希望もなくていい。

 人生に物語は要らない。

2017-12-12

最速でGithubプログラムを実行する方法を考えた

事前に必要もの
流れ

起動済むまでカップラーメンにお湯を注いでおく

VisualStudioCodeを起動

Ctrl+Shift+P を押して、`git clone`と入力

プロジェクトフォルダに移動

Ctrl+@ でターミナルを開く

`vagrant add ubuntu/xenial64`と入力

`vagrant up`を入力して仮想マシンを起動

`vagrant ssh`を入力して仮想マシンに入る

`cd /vagrant`を入力してプロジェクトフォルダに移動

README.mdとかINSTALL.md通りにインストールとかコンパイルとかする

起動

カップラーメンを食う

2017-10-15

bitcointalkの説明

アクティティ説明過去情報コピペです)

ログイン時間書き込み数で上がり、アクテイビティ毎にランクが決まる(Activity = min(time * 14, posts))

  書き込み0:Brand new

  0 Activity: Newbie

  30 Activity: Jr. Member

  60 Activity: Member

  120 Activity: Full Member

  240 Activity: Sr. Member

  480 Activity: Hero Member

・2週間毎に最高14ずつ上がるらしい(でもなんか微妙に違うのかも。僕は14は飛ばし28までは一気に上がりました)

・僕は10月5日登録10月26日Jr.Member昇進になりました。3週間でした)

(詳細⇒ https://bitcointalk.org/index.php?topic=178608.0 誰か訳してください)

.

.

ランク説明

ランクがNewbieだと書き込みが6分に1回など制限があったり、PMを送っても届かなかったり、フリーエアドロップに参加できなかったりする

・だから基本的ランクを上げといた方が良い

しかし、私利のランク上げのために日本語スレスパムみたいに適当投稿するのは単純によくないことだと思う

・結局一番いいのは、単純に、真面目にスレに貢献し、参加することだと思う

(たまに書き込み削除の通知メールが来るが、それはたまによくあることなので、気を落とさなくていい)

(注意点として、以下に示すような投稿をするとBAN対象になると声明がありましたので、「スレ主がそういう投稿を求めている時」以外にこういう投稿をしないようにしたほうがいいです)

「joined」

「looking forward to getting X」

「signed up for X」

「applied」

日本語スレでも自分ツイッター宣伝したり露骨なアフィしたりすると消されます

(詳細: https://bitcointalk.org/index.php?topic=2284373.0

.

.

フリーエアドロップ説明(主に留意点)

情報が貼られる場所を紹介しま

.

1次情報(最新情報

ビットコイントークアルトコインアナウンス板」

https://bitcointalk.org/index.php?board=159.0

ビットコインガーデン:ギブアウェイ板」(ビットコイントークより規制が緩いため色々と留意

https://bitcoingarden.org/forum/index.php?board=2.0

.

2次情報用途は1次情報の取りこぼし用、時間無い人用、などとして)

「airdropalert」(一部アフィだが優秀なので書かざるを得ない)

https://airdropalert.com

ビットコイントーク日本語板」(もはやエアドロップ情報スレになってるため。アフィ目的スパムが多すぎて最近は見るのが心苦しい)

https://bitcointalk.org/index.php?topic=877.new#new

リファラつけた紹介アフィは規約違反なので基本消されます。最悪BANされます

.

・配布時期は気長にみたほうがいい(応募してすぐ配布されるわけではないものも多い。配布時期は各説明を読むしかない)

・scam対策のため、ウォレットダウンロード系は「安心なのだけやる」または「仮想環境作ってそこでやる」または「scamされてもいいマイニング専用PCでやる」

・scam対策のため、メールアドレスパスワード登録系は「パスワードは毎回別のを用意する」、「メールアドレスはできればサブのを使う」(要は「メールアドレスパスワードペア」が他の登録情報かぶらなければいい)

・たまにフリーエアドロップで「PMする」「肯定的ツイートして宣伝する」みたいな条件があるが、それは礼儀分別のあるPMでないと失格になることもあるっぽい(僕はRICHのフリーエアドロップで「Yes I wanna be rich!!」みたいなテンションの文とアドレス書いて送ったら、フリーエアドロップ受けられませんでした。あとSOARCOINの人が「ただRTしてるだけの人にエアドロップ配るか配らないかどうしたらいいかな?」という内容のアンケート取ってたりするので。外人とは言え、分別もった内容で応募しないといけないのかなと思いました)

・また、「send me personal message」「PMする」「PM」とかはパーソナルメッセージツイッターで言うDM)を送るということです。レス左側にある吹き出しマークを押せばPMを書くフォームに飛べますので、そこで書いて送信する、ということです

.

.

フリーエアドロップの際によくフォーム入力をせがまれる項目の説明

・「bitcointalk profile」は、自分プロフィールページの左側カラムにある「Forum Profile Information」に行った時のURLから、語尾の「;sa=forumProfile」を省いたもの

・「bitcointalk ID」は、上記「Forum Profile Information」に行った時のURLの中にある「u=なんたらかんたら」の複数桁の数字のこと

・「Address」は、ものによって違うが、基本的イーサリアムウォレットアドレスか、ウェーブスのウォレットアドレスか、または専用ウォレットアドレス基本的取引所アドレスでなく、どれもウォレットアドレス。例えばイーサリアムならMyEtherWalletなど)

.

.

■bitcointalk書き込み説明

スレに書き込むには、ページの右下や右上にある「reply」ってボタンを押せば書き込みフォームが出る

レスにアンカつけるには、レス右側にある「quote」ってボタン押せばアンカつき書き込みフォームが出る

適当書き込みをしたらたまにけっこう削除される(そして「削除したからな」ってメールが届く)

.

.

VM仮想マシン)の入れ方の例

・まず仮想マシンインストール https://pc-karuma.net/windows8-virtualbox-install/

・次に仮想マシンubuntuLinux一種インストール https://pc-karuma.net/windows-8-virtualbox-ubuntu-install/

(大体HDDの容量を10GBくらい取ります

2017-08-02

知らない間にDebian9がリリースされてた

Dockerバズるくらいだから今どきハードウェア仮想化なんて流行らないのだろうが、Windows10 Proの安いPCを1つ購入してHyper-V有効化したのでCentOSUbuntuのどちらを入れようかと考えてた時に、昔インストールに苦労したDebian 3.1 Sargeのことを思い出して本家サイトに行ったら今年の6月Debian 9が正式リリースされたと聞いてすごく懐かしくなり、こいつを選択することにした。

随分バージョンが上がったものだなあ。しかも今はamd64インストーラーのリスト最初に上がってるし。昔は64は人柱用だったのに。

10年ほど前、玄人志向玄箱というNASOSDebianに入れ替えて単なるファイルサーバから用途サーバにするのが流行ったことがあった。今でも後継品のBuffaloNASDebian化する好事家は細々ながら活動しているが、UbuntuベースであるDebian最初に触れたのがその頃で、当時のバージョンは3.1、通称Sargeだった。タイミングのいいことに、Sarge対応の分厚いDebian入門書存在していたのでレファレンスには事欠かなかった。まあそれでも、スペックの貧弱な玄箱インストールして少しでもパフォーマンスをよくするにはカーネルを書き換えて再コンパイルしたりといった悪戦苦闘があったわけだがもう忘れた。

Hyper-V仮想マシンへのDebianインストールトラブルらしきトラブルもなく、インストールしてすぐに使えるようになっていてまあこれが普通だよなと。OSは使いこなしてなんぼで、インストールで苦労するのは不毛だと当時も思ったし。

あと、エンジニアが多いと聞いているはてな界隈でも個別ディストリトピックはあまり話題にならないんだなというのがちょっと面白かった。

2017-07-31

https://anond.hatelabo.jp/20170731175413

30で遅すぎることは無いけど、LPICでも目指してみようかなとか言ってる場合じゃ無いのも事実

親がうるさくてむかつくので仮想マシンLinux入れてその勢いでついでにLPIC取ってやった

くらいなら応援できるけど。

https://anond.hatelabo.jp/20170731194142

SEとして働いていたというのに「仮に自由時間があればpaizaでプログラム書いたり(Javaメイン)、

仮想マシンLinux入れてコマンド勉強からLPICも目指そうとしている。」はちょっとお粗末。

そんなのやるなら学生の頃でしょ。そのレベルの人がSEやってたというのは残念に思う。

SEとして無能って意味じゃないとしたら何なんだよこれ。

https://anond.hatelabo.jp/20170731075805

辛辣意見申し訳ないけど、

SEとして働いていたというのに「仮に自由時間があればpaizaでプログラム書いたり(Javaメイン)、

仮想マシンLinux入れてコマンド勉強からLPICも目指そうとしている。」はちょっとお粗末。

そんなのやるなら学生の頃でしょ。そのレベルの人がSEやってたというのが恐ろしい。(まぁたまにいるけどね。)

下流工程は自信がないということのようだが、上流工程も向いてない可能性が感じられる。

文章構成から見て論理展開がしっかりとなされてないため技術者っぽくなく、この手の文章を書く人は上流工程及第点をとれたことを経験上見たことがない。

(まぁ仕事の時に書く文章増田は違うだろうけど。)

これがマウンティングじゃなくてなんだっていうんだよタコ

【追記あり】一ベンチャー企業アーキテクト(業務系自社プロダクト)の意見

anond:20170730210229

辛辣意見申し訳ないけど、

SEとして働いていたというのに「仮に自由時間があればpaizaでプログラム書いたり(Javaメイン)、

仮想マシンLinux入れてコマンド勉強からLPICも目指そうとしている。」はちょっとお粗末。

そんなのやるなら学生の頃でしょ。そのレベルの人がSEやってたというのは残念に思う。が恐ろしい。(まぁたまにいるけどね。)

下流工程は自信がないということのようだが、ひょっとすると上流工程も向いてない可能性もあるかもしれないと私は感じる。感じられる。

文章構成から見て論理展開がしっかりとなされてないため技術者っぽくなく、この手の文章を書く人は上流工程及第点をとれたことを経験上見たことがない。

(まぁ仕事の時に書く文章増田は違うだろうけど。)

知識はある」のプライドは一度捨てたほうがいいと思う。

知識はあっても成果物を完成させることができないなら、開発業を続けていくのは辛く、

結局同じ転帰をたどることになる可能性が高いので本当によく考えることをお勧めする。

カウンセリングを受ける状況 & 実家暮らしなんだからこそ一度仕事を休んで考えてもいいのでは?

(中途半端資格もいらない。自治体公共システム系ならITストラテジストは持ってて損はないけど。とにかく実践対象成果物納期までに完成させるための総合力が欲しい。)

【追記】見当違いのトラバが付いているので追記。

マウンティングってのは基本的に「お前には無理だバーカ」というような dis りでしかないもの

私は「どういうところからどのように思われるのでこうすべき」とまで書いているので、

これをマウンティングって思うのは脊髄反射すぎるのではないか

あなた大丈夫だよー」「転職できるよー」って根拠もない無責任な話が多いから、私は正直な所感を書いてみた。

残念だが今の元増田レベルではどのみち転職しても同じことの繰り返しになってしまうだろうということを強調して言いたい。

そもそも手取り 17万/月 なんてSEなわけない。テスタかオペレータだよ。

この業界でやっていこうと思うなら、もっともっと技術を身に着けるべき。元増田仕事は嫌いじゃなさそうだから不可能ではないと思う。

元増田はまだ増田に書けるだけの意思が残っているのだから、むしろ悪しき結果を生みかねない無責任な話には

耳を貸さずしっかり頑張ってほしいと私は思う。

(親御さんとの関係等の意見ブクマコメントでも既出なので、私が言及する余地はないと思われる。)

さらに追記(トラバ参照が変になった)

https://anond.hatelabo.jp/20170731183821

2017-07-30

アラサー女の底辺SEぼやき(一部補足)

先に述べるが長文かつ愚痴。まとまりもない。だめだ自分

以前もSEで働いていたが、うつになってから退社して、数年休んだ後に不眠症以外は落ち着いて働けるようになってから2年弱今の会社にいる。

東京実家暮らししていたが、母とのいざこざがきっかけで一人暮らしをしたいと思うようになった。

まず、仕事に対する理解がない。お客様に常駐する下請け下っ端SEは、そこの風習にあわせなければならない。ある企業は定時上がり、残業があっても1時間という時もあれば、別の企業はいつも2時間残業している上に納期直前だと3時間とか4時間という時もあった。これにより帰宅時間が定まらないので、毎日19時前後に「まだ終わらないの?」とメールが来るので「残業で帰れない」と返信すると、「帰る時に連絡すること」と釘を刺される。女だからはいアラサーに対してそれはどうかと思う。

次に、実家暮らしなゆえ自由制限されている。19時のメールは「夕食できた」を知らせるものであり、残業で9時とかになっても直帰してご飯を食べなければならない。これはある意味優遇されていると思うが実際は「夕食を食べなければならない」ためパン個食べたくても食べられないのだ。かつ、疲れて食べたくないと言うと「なんで食べないの」といい出して機嫌を損なうから厄介だ。さらに、仕事終わってから買い物したい時は「どこで買い物するから何時ぐらいにする」と報告しなければならず、通販商品を頼んだ時は「どこから荷物が来る」と報告しないと「なんで荷物が届くの教えないの」とはじまるからうかつに通販も使えない。こないだは、仕事終わりに気晴らしせ10分だけ本屋立ち読みと本を買ったのを言わなかっただけで「なんで遅いの」と注意された。

それゆえに友人や彼氏から夜会いたいと誘われても、「なんで仕事終わりに会わなきゃいけないの」と突っ返されるので強制的に家と会社の往復しか許されなくなっている。どうしても誘われた場合は前日までにその旨を親に許可を取らなきゃいけないが、金曜の夜じゃない限りはまず認めてもらえない上に、運悪くトラブルに巻き込まれて遅くなってしまいどたキャンせざるを得ない状況になったら意味がない。

そういう親から離れたくて一人暮らしをしたいのだが、別の問題が浮上した。

手取り17万かつボーナスがないのにどう生活する?

実家は幸い、家にお金入れるなら貯金しろというので最低限使う金以外はほぼ貯金はしている(ただし退社前にためたお金治療費と維持費でほぼ消えた)。しか一人暮らしになったら貯金する猶予がない。かし通勤時間を少しでも短くしたいとなるとそこそこ高くなる。23区に住んでいたこともあり、都下はまだしも他県だと交通の便や環境的に住めるか不安になる。今もカウンセリングで月に2回診察を受ける関係で遠すぎると逆に不便になってしまう。

なお、今は仕事ストレスと親のストレスで好きだった小説を読む時間がほぼ取れず、外出しようとすると「疲れているから家で休め」と言われ出させてもらえない(そして両親が家にいる関係で音が出るものを使うと嫌な顔される)平日買い物できないか休日に行こうとすると、「どこへ、何時まで、何しに行く」と許可を取らなきゃいけない。流行どころかニュースさえ追うのも面倒になってきた。あとニンテンドースイッチを発売日に買ったもの最近は遊ぶ気力が削がれている中、「スイッチが買えない」というツイートを見ると買っちゃって申し訳ない気持ちになっている…だめだ、うつうつ寸前。

周りから「親がおかしい」と言われても両親は聞く耳もたず。給料が上がればいいなと思うけど望めない。転職しようとすると会社から逃げだと言われることこの上ないしのままだと給料が上がるとは限らない(現場から不眠症を除けばいいスキルを持っていると高評価をもらっていると余計…)

特定されない範囲でいうと、大学ソフトウェア関係を専攻していたので、今はソフトウェア関係仕事をしているし、仮に自由時間があればpaizaでプログラム書いたり(Javaメイン)、仮想マシンLinux入れてコマンド勉強からLPICも目指そうとしている。ただ知識はあるが実務が浅いのでバリバリプログラムが書けるという自信もない。うつ病も完治はしていないので、それでも転職(特に大手とか自社開発系)できるのか謎。

2017-07-13

ホワイト企業に勤めてるんだが、もう俺は限界かもしれない

大企業名前だけならたぶんほとんどの人が知ってる。毎日定時に帰れて、週休二日で、有給もフル消化できて、給料福利厚生も申し分無くて、寂しい時は社内イベント勉強会に出てワイワイできて、仕事もそこそこ面白い。だけどもうダメかもしんない。

俺はエンジニアだ。うちは IT 企業だ。俺はエンジニアとして働くつもりで入社した。面接でもそう言ったし、先輩にも上司にも主張した。衝突も多かったけれど、概ね希望は通ったと思う。今の仕事面白い。でも、それでも、もうダメかもしんない。こうしてお酒を飲みながら不満を垂らしちゃうほどに。

服装

スーツ強制である意味がわからない。あんな窮屈な服をわざわざ好んで着るほど俺はマゾじゃない。

営業マンオフィス街に勤めるビジネスマンだってんならまだわかるけど、違う。田舎に構える拠点だ。俺たちはエンジニアだ。仕事しやすい格好であるべきだ。だからといってさすがに裸は非常識だが、ジーパンくらいはいいじゃないか。

たまにお客さんやお偉いさんが来る時もあるけど、そんなの応接室で応対する奴だけ正装すればいい。なんで俺たちにまで押し付けるのか。本当に意味がわからない。マゾという性癖を押し付けたいの?

Webフィルタリング

ネットニュースは見れるくせに、Twitter は見れない。技術用語で検索して情報収集できることを知らないのかよ。

Stackoverflow や Quora や Qiita も見れない(知恵袋は見れる)。GitHubBitbucket も、そしてはてなさえもだ。え?IT企業だよね?何の冗談だよ。全然笑えないぞ。

情報漏えい対策です」だって?だったら POST だけ禁止すればいいじゃん。一部のサイトはそうしてるじゃん。情シスなのに GET と POST の違いもわからないの?

とにかく不便で不便で仕方がない。管理職は「自分のスマホで見ろ」「制限解除した専用タブレットで見ろ」とかほざいてるんだけど、なんでいちいち PC から離れてそっち見なきゃいけないの?コピペしたい時とかどうすんの?効率って言葉知りませんか?何なの?マゾなの?

ウォーターフォール

ウォーターウォールが常にダメとは言わない。ただウォーターフォールは昔のやり方であって、少ない人材スピードも求められる現代ではだいたい役不足だ。にもかかわらず、馬鹿の一つ覚えみたいにウォーターフォールで開発しようとする。

テストコード書いて効率化して暇を持て余して改善に勤しむ俺よりも、いっしょうけんめい(笑)ワード使ってコード日本語にひたすら翻訳するという詳細設計書執筆に勤しんでる奴の方が評価されてるという現実。第一ウォーターフォールに従うなら先にコードができてるのもおかしいじゃねーかよ。

開発審査

ウォーターフォール続き。開発審査といってこれを通過しないと先の肯定に進めない関所みたいな審査があるんだけど、これがまた冗談みたいに面白い(笑えない)。何十年も(何年も、ではない)前につくられた基準で、かつ無理矢理定量的解決しようとした体系をしていて、結果、

「30ページの仕様書ならレビューはx時間しているはずだ」

「x時間に至ってない?それはおかしい。x時間になるまでレビューしろ」

「x時間超えてる?それはおかしい。なんで超えたのは理由を説明しろ」

なんてことが起きている。何なの?ソフトウェア開発がそんなに単純にいくと思ってるの?そんなはずない。みんなわかってる。だけど逆らうこともなく、おかしいとも思わず、ただただ過剰な仕事を投入したり、数字いじりと作文に勤しんだりする。一体何と戦ってるんだよ。

パワポ民族

ちょっとした資料でもパワポが強要される。テキストで書くと渋い顔をするし、他部署や他拠点、部長より上向けの資料となると絶対に OK が出ない。

独自フォーマットじゃねえよ。Markdown 知らないの?別に Markdown 覚えろって話じゃない。ちゃんと見易いテキストで書いてるだろ。分量的にも、話題的にもこれで十分だろ。なのにわざわざパワポなの?何がしたいの?パワポ萌えなの?勝手にやってろよ。俺たちまで巻き込むな。

PC

PCとディスプレイは会社側が用意したものしか使えない。Windows 強制メモリとかCPUは家電量販店で売ってるレベル。いやそっちの方がまだ高性能かも。おいおい、総務とかじゃないんだぜ?エンジニアですぜ?開発マシンだよ?こんな貧弱なマシンでどうしろって言うの?

キーボとマウスディスプレイ枚数が自由なのがせめてもの救い。といってもディスプレイは会社支給品なので一人あたりどう頑張ってもトリプルだけど。

サーバー

サーバー仮想マシン動かしてそっちで開発しようとか、むしろ開発用のハイスペックマシン手に入れようとか画策するんだけど、無理。調達できない。壁が二つ。

上司の壁。「何贅沢言ってんの?」 贅沢じゃねえよ。それ営業マンに向かって「車?何贅沢言ってんの?(原付あるだろうが)」て言ってるようなもんだぞ。

会社の壁。やたら承認やらエクセル申請書やら冗長で数日じゃ終わらない。ちょっと記入ミスってたらやり直し。融通の利かないお役所仕事そもそもお金が無いからそんな調達できないんだってさ。無いことはないだろ。利益出してんだろうが。その金はどこ行ってるの?お偉いさんがガハハとかっさってんの?

結局、今部署にある分でやりくりしなきゃいけない。だいぶ昔から使ってるやつだから古いし、キャパも限界。使わないマシンを落とさないと他が使えなくて、そのためにみんなに使用状況聞いて回るとかしている始末。おかしいだろうがよ。

え?クラウド?「クラウド企業秘密置くなんて何事だ!」だってさ。だったら紙で仕事してろよハゲ

常駐ソフト

必ずインストールして常駐させるソフトが結構ある。特にセキュリティ系。中には Windows Update みたく動作に支障を及ぼすものもある。お前自身がウイルスじゃねえかよと言いたくなるレベル

あと全体的に実装が稚拙なようでメモリも CPU もやたら食う。ソース見せてもらえないから何とも言えないけど、初心者ゴリ押しで書いたみたいな臭いがする。これで何百、何千の人間の、いったいどれだけの時間を無駄にしているんだろう。

インフラ

インフラがとにかく弱い。メンテナンス日常茶飯事だし、入社年度とか拠点とかでアクセスしていい時間帯を分けるようアナウンスするし、24時間稼働じゃないし、稼働するにしても昼休憩とか夜間とか制限かけるし。自社のインフラさえままならない企業にいったい何ができるというのか。

本当に力入れた方がいいと思う。どれだけ損失してると思ってんだよ。お偉いさんのイベントで主張してみたりもしたけど、俺が浮いただけだった。こういうことに関して鈍感なのがデフォなのだ

IE

社内システムはほとんど IE しかサポートしてない。バージョンまで固定する始末。UI もレガシーだし、UX も全然考慮されてなくて、フォームを何十個もずらずら並べたみたいなページが普通に登場する。

バージョン管理

SVN である。これでもまだマシだ。いや SVN も相当にオワコンだけど(Git 信者が何を知ってるって?いやいや Git 知らないだけでしょ。gitignore が無い時点でどれだけレガシーなのかがわかりませんか)。

ひどいと VSS とかい化石だったりする。VSSて何ですか?だよね、知らないよね。調べてみるといいよ。面白すぎて笑えない。

残業体質

今上に立っている人たちが残業何十時間何百時間当たり前の世界バリバリ頑張ってきた人たちだから、そういう価値観蔓延している。残業40時間くらい何とも思わない人種である。いや40でも十分多いから。

物理的に仕事が多いならわかる。本質的に難しいことしてるならわかる。残業しなきゃままならないシチュは存在する。でもそんなの見たところ一握りだよ。大半はただだらけてて怠けてて非効率的無知なだけ。

いや、無頓着というべきかもしれない。たとえばつい先日こんなことがあった。レビューで(俺はレビューア。他にもたくさん)、レビューイがブラウザからファイルダウンロードした時にブラウザなのかダウンロード先なのかどこかおかして、ブラウザフリーズしたのね。イラっとするじゃん?と思ったら、したのは俺だけだった。数十秒くらいは続いたのに、俺以外はみんな平気な顔してた。平然と待ってた。そういうことに無頓着なんだ。プログラマの三大美徳を備えろとまでは言わないけど、そこまで無頓着なのは社会人として、エンジニアビジネスマンとして、どうかと思う。

俺は巻き込まれたくないからうまく立ち回っていて、帰ろうと思えば毎日定時で帰れるが。この体質はほんとどうにかした方がいいと思う。

全角

数字とスペースを全角で打つのはやめろ。それが許されるの小説だけだ。

コード規約「タブ4文字

インデントはタブを挿入すること ← 俺はスペース派だが、まあわかる。規約ならしゃーない。

タブはスペース4文字であること ← え?

いや何文字かはこっちが決めることだろ。何自由奪ってんだよ。

「従わなければいいじゃん」 俺もそう思ったよ。でもね、みんなね、レイアウト整えるのにタブ文字を入れやがんだよ。わかるかい、タブ4文字にしなきゃレイアウトが崩れるってことだよ。おかしくない?レイアウトはスペースで揃えよ。タブが許されるのは行頭のインデント部分だけだよ。

この件について戦ってみたことがあるけど、誰一人として賛同は得られなかった。俺は自分勝手な人間との烙印を押されただけだった。エンジニアとして主張すればそうなっちゃうのがうちなのだ

この件については宗教論争的なこともあるから最悪引き上がる覚悟もあった(それにぶっちゃけ手元のエディタツールで変えればいいことだし)。でもどいつもこいつも真面目に考えることなく、俺を一蹴した。俺が嫌いだから?何大人げないことしてんの?小学生かよ。意見を見ろよ、中身を見ろよ。

REST API

こんなことがあった。

オンプレで立ち上げてるサービスに対して REST API勝手に使ったら怒られた。曰くシステムがダウンしたらどうなるんだと。業務停止するだろうがと。

言ってることは正しいけど、だったらエントリポイントを閉塞しておけよ。あるいは注意で REST API 使うなと書いておけよ。REST APIデフォサポートしていて、何の注意や閉塞もなく解放されているなら、それは自由に使っていいってことだろ?(もちろんだからといってリクエストバーストさせていいわけじゃないが)。悪いのはそんなことも知らなかった無知管理者だ。責任転嫁するな。

ちなみに閉塞案と注意追加案と提案してみたが無視されている。もちろんそれらを行う権限は俺にはない。

口頭至上主義

チャットの意義は Pull 型コミュニケーションができることだ。受け取った側の都合で返信できることだ。送る側も、そのことを前提とした上で、期限に余裕のあることを送るのだ。

このことを知らない人があまりに多い。とにかく彼らは口頭を好む。え?あんたら、忙しいよね?むしろ俺は配慮してあげてるつもりなんだけど。口頭で割り込まれることでどれだけ集中を阻害されているかがわからないんだろうか。

まあ俺はいいけど。集中削がれて非生産的になって遅れるのはあんたらだから。俺には関係無い。もちろんそのせいで俺にまで影響が及ぶのだとしたら、そこは全力で反抗する。そういえば以前、この件で上司上司に対してチャットでみんなに意見を尋ねてみたら、問題行動として垢BAN食らったっけなあ。その部署からは異動しました。

C言語手続き

C言語手続きプログラミングマンがあまりに多い。OOPを使っただけで、Ruby スクリ実装しただけ異分子扱いされて「そういう最新技術を誰もが知っているわけじゃない」「自分が知っているからといって無闇に適用するにはやめろ」とか言われる始末。最新技術って。ジョークだったんだろうか。あの時は思い切り笑った。その先輩とは今でも疎遠だ。すれ違っても挨拶してくれない。

まあこれは部署や部門の問題だと思うけど。たとえば OSS で食べてる部隊ではそんなことはない。

自社製品うんちく

昇進するための要件として資格取得がある。公的資格だけじゃダメで、社内独自の資格必要なんだけど、この資格たち、試験でどうでもいい自社製品うんちくばかり問うてくるものであるはてなを例にするなら、創業メンバー全員(一人かもしんない。知らん)のフルネームを答えよとか、創業日を答えよなど。

それ、覚えて意味ある?何がしたいの?愛社精神擦り付けたいの?そんなことしても逆に離れていくだけだと思うけど。違うかな。じゃあ何のためだろ。全く見当もつかない。それくらいに不可解だ。

ソフトウェア使用前の承認

ソフトウェアを新しく使用のにいちいち承認必要かいうふざけた制度があった。ソフト使うのって、エンジニアにとっては日常茶飯事じゃん。いちいち承認してたら進まないだろ。

それでもルールなら仕方ない。俺は何十という承認依頼を送った(ちなみに部長以上のお偉いさんが承認者になるという慣習がある)。反応が悪いし、仕事が進まないので口頭でも催促した。一蹴された時は「ならもっと上の人に掛け合います、XXさんが相手にしてくれなかったので来ましたって」的なことを言ったりもした。

結局、俺の部署では「なるべく新しいソフトウェアは使わないこと」「どうしても使いたい場合自己責任で導入すること」「もちろんウイルスチェックはちゃんとしてね」「実績のあるソフトだけ使ってね」みたいな緩いルールが新設されることでケリがついた。

今でも多くの部署承認制のままだろう。みんなどうしてるんだろ。それで仕事になるの?

足を引っ張る人達

うちは IT 企業なのに、リテラシーに明るくない人がいる。たとえば Wiki の書き方も知らないような人がいる。そういう人が部下を仕切っていたり、社員を支えるスタッフ業務に携わっていたりする。

エンジニアとしてより良いやり方を提案しても、導入しても「難しそう」と一蹴されるばかり。そもそも、ここまで上述してきたことに対してピンと来ることさえない。

厄介なのは、会社そのものがそういう人達に足並みを揃えようとするところだ。だからエンジニアにとっては物足りない、窮屈で、非効率的で、むしろ邪魔しかならないようなシステムや仕組みや施策ばかりが降ってくる。元を辿れば煩わしいセキュリティソフト群や承認フローの多さも、一部のバカが何かしでかしたせいだ。

一部の人間が足を引っ張っている。大企業であるということ、図体が大きいということは、そういうことなんだと思う。そうするしかないのだろうか?個人的には、エンジニアとそれ以外に二分して、前者には前者のインフラなり体制なり整えればいいと思うんだけども。

自転車でたとえてみる

うちの会社の連中は、彼らはエンジニアではない。思えば余暇技術的な話をすることが一切無い。彼らにとって技術手段しかないのだろう。エンジニアとしての矜持というものは存在しないのだ。

たとえるならママチャリに乗っている人達みたいなものだ。ロードバイクに乗る人からすればママチャリ手段としてありえない。ロードの方が何倍も早いし、移動範囲も広がる。けれどママチャリ乗りはロードには乗らない。そんな世界があることをそもそも知らないし、知っているにしても努力してそこまで至ろうとは思っていない。今のままで十分だと思っている。

同じなのだ。彼らもまた今のままでいいと思っている。エンジニアリングのエの字もわかっていない。無論、ただのママチャリ乗りならそれでもいいんだけど、俺たちは IT を生業とする会社だ。ロードレースでメシ食べてるようなものなんだよ。なのにママチャリのままなんだ。どう考えたっておかしい。それで勝てるわけないだろ。この先どうすんの。今はたまたま誰も走ってない道を走ってるだけだ。そういう道も着実に少なくなってきているし、ママチャリで頑張って登ろうとするゴリ押しマン要員も減ってきている。

色々書いたけど

他にも挙げればいくらでも出てきそうだけど、疲れたんでこの辺で。

俺も偉そうなこと書けるほどのエンジニアではないし、ちゃんと読みやすいよううまく書けたか自信ないけど、それでも書かずにはいられなかった。

2016-11-05

SIer業界で「パートナー」として働いている

自分技術者と言えるレベルなのか迷うレベルエンジニアです。

というのも最近就職した。ここで叩かれてる所謂常駐SE会社

自社の人間などほとんど知らない。

定期的な会合はあるが、この先輩の名前なんだっけというのがほとんど。

かといって苦しいということはない。いや、今のところはない。

世間SIerイコール残業地獄イメージのようだけど

現場によっては普通にホワイト自分はそこで常駐している。

しか技術に関しては、大丈夫なんだろうかと週3回ぐらいは思い悩んでいるこの頃。

自社の人間はある分野においては長けているようで結構強気である

けどそれは一部の話で、後はゴミクズレベルなのだろう。

まだ就職したばかりだし断言は出来ないけど。

この間なんか自宅で仮想マシン立てるなんて考えたこともないと言われた。その人インフラ屋ですよ。

これは異常でしょう?もうわけがからない。この時は早く転職しなきゃと本当に思い悩んだ。

常駐SE欠点で最大なのはもちろん自社という場がないことだと思う。

ノウハウがたまりにくい、だいたい一年に数回しか自社と話す機会がないのだから

当たり前だろう。そして評価制度が謎であるだって数回しか自社と話す機会がないのだから

時々同じ年に入った人達と会話するけどすでになんでこいつらと給料一緒なの?ってイライラする。

まだ働いて少しだし、いまどうすればいいのかわからない。

とにかくいまは技術を学ぶのは楽しいからつらつらやっている。

2016-08-04

ハイスクール増田のための理系大学生入門

やったーーーーーーーーーーー!!!大学生活最初の夏休み!!!!!!!!!!!

ということで、国立大学で理系学生ライフはじめた人の感想として、高校生のうちからこんなところ見てる人に向けて心得ておくといいことを色々書いてみます。今大人増田さんにも昨今の大学生の一例として見て欲しいです。

これから書くことは個人の感想だし、高校時代の友人や先輩からの受け売りもあるし、さらにすべての大学に対してうまく当てはまるものではないことをお断りしておきます。というか高校生に向けた話なら今書かずに3月にでも書いたほうがいいとか、具体的な勉強方法については例えば"シケプリ"制度のある東大や横市医には全く当てはまらないとか、まあだめな所いろいろあると思います。ごめんなさい。

大前提:大学合格=ゴールではないし、入試直前=一番つらいでもない

これ分かってないとだいぶやばいので一応書いておきます。大学入った瞬間すでに真っ白に燃え尽きてしまっててこの半期でリタイアしかけてる人を実際に見てしまってるので・・・

1日が勉強と(睡眠OR風呂OR飯)で終わる日が何度もあります。受験の時は一応飯と睡眠は毎日とってたはずなんだけどなぁ。

スマホ買おう

これは失敗談なのですが、スマホ(もしくはSIMの刺さるスマートデバイス)は買いましょう。必須です。あなたがまだガラケーで親の承認得られないようでしたら合格直後に量販店に駆け込んでSIMフリー端末とプリペイドSIM買いましょう。ハイエンドである必要はないです。

今の大学生コミュニケーションツールはほぼLINE一人勝ちで、あとは若干のtwitterです。メールの時代は終わりました。私は頑なに(親の意向もあったのですが)ガラケー、しかも通話とSMSのみの契約だったのですが、そのせいでLINEを全くと言って良いほど使ってなく(一応PC上のAndroid仮想マシンガラケーのSMSを使ってアカウントは作ってましたけど)入学直後の友達作りに完全に乗り遅れました。というわけで(別にスマホ持ってなかったのが主原因ではないですけど)今私には同学科の友人がいません。ココ重要。

もちろん友達作りだけでなく、「いつでもどこでもすぐググれる環境」を作っておくことはとても良い勉強の見方になります。もちろん重要な情報は本読んだほうがいいですけど、ちょっとしたことを最小の時間で解決できるという点において本当に便利です。

履修相談で大学処世術を学ぼう

これも失敗談です。新学期が始まった直後は、サークルを宣伝するのを主目的とした(と今となっては感じます・・・)"履修相談テント"がキャンパスにたくさん並びます。履修相談とは読んで字のごとく履修について相談をすることで、例えば学内で使うwebサービスの使い方とか、要項に載ってない暗黙の了解とか、どの授業はテストが難しいだとかこの時間はこの授業をうけるといいとか、そういうことを先輩が教えてくれるらしいです。

しかし入学当初の私は、忙しいはずの先輩たちがそんな自らの時間を割いて後輩のためにいろいろ教えてくれるなんて虫のいい話があるわけ無い、全部宗教勧誘だと勝手に思って近づきもしなかったのですが、本当にいろいろ教えてくれるそうです。さらにメインの目的であるサークルの宣伝もそこまで押し売りみたいなものではないらしいです。

私は理想的時間割を作ることに失敗し、本来1回生で終わるはずの第2外国語を2回生でもやるはめになったようです。あの時履修相談テントに行っていれば・・・!と常々思います。どうにかまだ留年条件は満たしてないと思います・・・

ノートパソコン買おう

自分用のノートパソコン持ってないなら買いましょう。必須です。入学直後ガイダンスで偉い人に「学内備え付けのパソコンが沢山あるから買わなくてもいい」みたいなこと言われましたが嘘でした。学内パソコンはたくさんあります基本的に自分のパソコンを毎日持ち運んで毎日使います。授業の内容まとめたりレポート書いたりとかちょっとした空き時間にできます。後述するコンデジICレコーダー母艦としても大活躍します

個人的にはB5サイズ程度でキーボードが打ちやすい、(自宅にデスクトップ機があるので)CPUは最重要というわけでもない、みたいな基準でアウトレットの型落ちThinkPad X250買いました。

別途PC用の手持ちバッグ持ち運ぶのが手間でなければB4サイズでもアリですし、生協で20万円とかするLet'snoteとか売ってますが、Let'snoteに期待されるであろう軽さ電池持ち頑丈さに加えて生協の手厚い補償とかを考えて価値があると思うならそれもアリだと思います。今のところ非Windowsで困る場面もあまり無い感じなので、Macでドヤリングも悪くないです(でもUSB typeCしか付いてないアレはどうなんでしょうかね)。surface持ってる人意外といますが、大学の机は得てして特に前後方向に狭いのでキックスタンドのせいであまり奥に置けないことを考えたほうがいいです。高い買い物なので、よく悩んで、量販店で実機触って、満足できるもの買いましょう。

なおOffice付属のものを買う必要はありません。まっとうな大学ならDreamsparkもしくは何らかの包括契約とかで実質タダみたいにOffice使えます

コンデジ買おう

これは私が文字書くのがすごい遅いせいでもあり、またノート写してくれる友だちがいないせいでもあり、また大学の授業というのはまあ本当に教授によって様々なので一概には言えないのですが、スライドをぱっぱっと切り替える人とか速記みたいなスピードで(でも読める)文字書いてすぐ消す人とかいるので、ノート取るの追いつきません。ただただ文章書く・話すだけの人ならパソコンポメラメモ取ればいいのですが、図とか数式とかいっぱい出てくるとそうも行きません。そういうとき現代の学生はすぐスマホ写真撮ったりするのですが、運悪く後ろの席にしか座れなかったりするとデジタルズームしかできないスマホカメラだとどうしても文字が潰れて読めないことがあります光学ズームのあるデジカメはそういう時の強い味方です。1万円前半くらいのでもいいので持ってると便利です。もちろんシャッター音は消しましょう・・・

ICレコーダー買おう

教授はとんでもなく重要なことを唐突にしゃべります。そういう時ちょっとでも眠くなったりボーッとしてるとアウトなので、授業中は常にICレコーダーで録音してます。万一なにか聞き逃しても後で確認すればいい、というのは精神的な余裕も生まれるので良いです。スマホ代用もできなくはないとは思いますが、専用ハードウェアは便利ですよ。PCと接続してデータ移せる機能は必須だと思いますが、外部ストレージが刺さるとかマイクが動いて指向性変わるとか電池交換が可能とか薄いとか、そこらへんは個人の好みで。

この手のものは操作感が命なので、ソフトの作り込みが良い主要3社(オリンパスパナソニックソニー)が鉄板です。

資料はどんどん電子化&プリントアウト

紙で配られた資料スキャン(してOCR)しましょう。電子データで配られた資料プリントアウトしましょう。紙には紙の(直接書き込んでメモやすい/切り取ってノートに貼れる)、電子データには電子データの(なんといっても検索性)良さがあります

スキャナー持ってない場合、Office Lensなどのアプリ代用もできます。これはなかなかの優れもので、カメラで四角いもの撮ると自動で四角いもの検出して正面から撮ったように伸縮してコントラスト調整して読みやすくする、まで自動で行ってくれますMicrosoft純正アプリだけあってOneDriveへのアップロードもできますし、そうすればOCRも行ってくれます、これがスマホで完結する時代になったのですから恐ろしいものです。ただ自分の場合はハードオフジャンクコーナーから動きそうなフラットヘッドスキャナ見極めて500円くらいで買いました。

プリントアウトコンビニでもいいですが、最近は新品のレーザープリンタでもローエンドは1万円しないとかとんでもない安さになってるので、突然レポートプリントアウトしなきゃいけなくなったりする時とかに備えて1つ家においているとほんとうに便利です。ただしこの手のローエンド品はドラムが交換できないようになっているので、つまりドラムの寿命が来たらその時点でプリンタの寿命なわけです。でもそれでも何万枚かはプリントアウトできるらしいので大学生が一人で使うぶんには全く困りません。交換用トナーもリサイクル品なら高くありません。レーザープリンタおすすめです。

英語やろう

理系と言ったら英語です(誰でも英語必須だと思いますが)。英語は何世紀にもわたって世界的なブームが続いてるので、絶対色んな場面で英語使います。東工(予定)や横国などみたいに院の授業は全部英語というのは極端な事例ですが、英語しか資料がないという場面はこれから何度も出くわすと思います

授業で教えられるものだけでは足りないと思ったので、自ら英語に触れていくことにしました。これは私が個人的に合っていると思うやり方で、効率性とかよりも楽しさ・挫折しにくさ・"英語が嫌いにならないこと"が重点です。ちなみに海外渡航経験ゼロです。

リーディングは自分の興味ある物のネット記事とか読み漁るといいです。googleニュース検索の中から適当にチョイスして読むとかいい感じです。

google:news:hatsune miku

日常的に英語に触れる、という点ではブラウザスマホゲームやPCの言語設定を英語にするのが最高です。

つい最近ですが、持て余してるパソコンUbuntuを英語設定でインストールしてみました。変なことするとエラーメッセージとかが英語でバンバン出るのでLinuxと英語が一挙に勉強できてヤバいです。Reboot even if system utterly broken!!

リスニングラジオのAFN。あっBGMほしいな~といった時にちょくちょくかけます。AMの放送局とかありますネットで聞けます。英語の冗談で笑えた時本当に嬉しいですよ。

ライティングはたまに海外掲示板にチョロっとなにか書いたりとか、スピーキングスマホにOKGoogleしたりとか、その程度です。

私は以上4つの定番ingに加えて、基本的英単語について瞬間的にイメージをするというのも大事だと思ってて、P-Study systemをやっています。簡単な単語集を制限時間1.5秒とかで4択からパッパッと答えていくのが好きです。

これはおすすめするか迷ったのですが、Wikipediaの「Unicode6.0の携帯電話絵文字の一覧」をぼーっと眺めることもあります。これも基本的英単語を瞬間的にイメージする練習です。

Unicode6.0の携帯電話の絵文字の一覧 - Wikipedia

センター本番の英語は8割とか散々な結果で辛かったのですが、今の成績を見る限りどうにか帰国子女グループの次くらいにはできるようになってるみたいです。

魔剤飲むな

レッドブルとかモンスターエナジーとか、エナジードリンクキメると本当に目が冴えますよね。でもただでさえ生活バランス崩れるのにそこにさらに追い打ちをかけるようなことはこれからはやめたほうがいいと思いますエナジードリンクは体力が増えるのではなく体力を前借りしてるだけです。生活リズム・体調が一番大事。18過ぎたら老化始まりますよ。野菜食べましょう。

少しでも運動

運動しましょう。ネタではないです。ポケモン捕まえるためにランニングとかでもいいと思います。北大とか筑波とかだだっ広いところだとキャンパス内の散策だけでもいい運動になりそうです。体動かさない日が何日も続くと結構ダウナーになったりします

個人的経験になるのですが、体動かした後というのは疲れるというのよりも先に学業が捗るというのが来ます。高校までは通学に1時間とかかけてそれがそこそこの運動になってたわけで、大学のすぐ近くで一人暮らし始めて一気に運動量減ってたんですね。それで今まで運動不足という状況に陥らなかったわけです。

理系リア充ウェイ系パーティーピーポーは少ないが確実に存在する

残念な話なのですが、学部学科にかぎらずチャラチャラした見た目・生き方学生が存在します。ウェイはみんな早慶に行って国立のましてや理系の道に進めばもはやそういったのに出くわすことはないかと思ったのですが、大きな教室に1~2グループとか、ウェイは存在します。これは個人的にすごいカルチャーショックで大学に入ってからの悲しみランキング堂々トップなのですが、そういった生き方の人間はどこにでも一定数存在するということを高校生のうちに知っておけば、もう少しショックは減らせたのかなという思いです。

結局は過去問を持っているか否かで決まる

多くの講義は最後の日に試験があるわけですが、過去問を持っていると本当に捗ります。もちろん試験対策にもなるわけですが、普段の授業でも過去問を見ながら授業を受けるとどこが重要なポイントかがよくわかります過去問なんて受験までの話だと思ってたのですがどうやらそうではないようです。

過去問の入手方法ですが、もうこれは同じ学科の知っている友人や先輩に頼むのが一番だと思います。残念ながらわたしにはそういった頼れる人がいないので、次点の手段であるインターネットを使います

なんたるインターネットリテラシー欠如の無頓着かという話なのですが、例えばtwitterで鍵もかけずに学内でしか知り得ない情報を話すような学生というのが若干数いるので(プロフィールに大学のことが書かれてなくても、学内で起こったちょっとした出来事とかをキーワードに検索すると釣れます。教室内での出来事なら確実に同じ授業を受けている人になります。もちろんそこからフォロワーを芋づる式にたどっていくこともします)、そういったアカウント監視して何か試験に関する情報をつぶやかないかどうか待つわけです。

ごく一部に限りますが、試験問題をアップロードしている非公式サイトなども存在したりします。むしろtwitterではそういうサイトの情報を得ることのほうが多いかも。

レポートテンプレート

実験したらレポート書きます。おそらく(あなた高校生ならあなたが思っている以上に)大学生活のうち大部分をレポート書くのが占めると思います

学生実験 レポート」とかググると章立ての仕方とか出てくるのでそれに従います。もしかしたら教授からなにか指定されるかもしれませんがその場合はそっちを優先します

多くの場合目的原理→手順→実験結果→考察→参考文献みたいな章立てで書いていくのですが、最初から順番に愚直に書いていくのはお勧めできません。実験が終わった段階で手順と実験結果は終わっているようなものですし、多くの場合教授が最重要視するのは考察です。まず原理を書いて自分が実験でなにをしたかったのかを再確認し、適当な関連しそうな事項が載っていそうな本を図書館で探して参考文献リストを埋め、本をパラパラめくりながら考察を考えていきます。次に自分が原理や考察を書いて何を学んだのかを目的の項でさもこれから学ぶかのように書き、最後に手順と実験結果を適当に埋めます

もしWordレポートを書く場合、"スタイル"を用意しましょう。スタイルとは段落や文字列などに個別にフォントなどを一括設定できる機能です。例えば「目的」と打ったあとその行にカーソル合わせたまま「見出し(自作)」とかいったスタイル選択するとその行がMSゴシック12ptで「1. 目的」となってそこで改行するとスタイル自動的に「本文(自作)」とかになってフォントMS明朝10.5ptに変更されたりします。めちゃくちゃ便利。またページ番号も自動で入力されるように設定します実験ごとに指定される書式とかあると思うので、それにそってスタイル自作してテンプレートとして保存しましょう。スタイル機能、Wordにおける超超超重要機能なので絶対使いましょう。

また、とにかく何かしら文章を書いてページを埋めてレポートを書いた気分に浸りたい場合、"=rand()"と打ってみましょう。数段落の文章が自動で挿入されます。自分の場合何も書く文章が思いつかない時にこれをすると、なんだか自分がすごく文章をかける人間なんじゃないか錯覚して結構書く文章を思いついたりします

趣味を捨てないで

明るい青春楽しいキャンパスライフなどというのは理系学部生には無縁の話です。実験レポート課題・自習の毎日です。もちろん自分が専門にしたいことを中心に学べるのはとても良いことなのですが。

そんな中でも趣味が1つあると、誇張でなく「生きる希望」になります。私は受験勉強に本腰を入れてから一切の趣味活動(上のリンクバレバレです)を控えて、いざ合格した時に解禁してみると随分とそれを取り巻く環境が変わっていたのを知って戸惑ったのですが、それでも学業とは切り離して好きなものを持っていることに大きな大きな安心感を持っています

以上、こんな感じです。まだまだ効率化しなくちゃいけないところはいろいろあると思いますが、どうにかほとんど単位は取れそうです。

2016-06-17

1.0から学ぶJava

タイトルを見て釣られクマーな皆さんこんにちは

ホッテントリメーカーで作るような煽りタイトルって、みなさんもう見飽きてると思うんですよね。

今調べたらホッテントリメーカー2008年だそうで。どうりでねー。古臭いなーと思いましたよー。

「一から学ぶJava」ってのをね、1.0にするだけでこんなに素敵なタイトルになるんだから面白いですねー。

タイトルを思いついただけだったんですけど、思いついたらやっぱりちゃんと中身も書かないと行けないじゃないですか。やだー

面倒くさいんですけどね。ちょっと1.0から学んでみましょうか。

Java 1.0 1996年1月23日

Javaの1.0がリリースされたのは1996年1月23日ですね。発表されたのが1995年5月23日でJavaの誕生日といった場合にどちらを取るかで揉めることがあります。

かれこれ20年前なわけで、当時のパソコンというとハードウェアはCPU が Pentium 133MHz メモリ16M とかそんな感じだったかなあ。今どきの携帯電話の例としてiPhone 6sを挙げるとCPUが1.85GHz メモリ 2G ってんだから凄いですね。OSは1995年11月23日リリースされたWindows95とかそんな時代背景です。インターネットがようやく一般に普及し始めたところでしょうか。

今から思うと相当弱いハードウェアですけども、そろそろVM方式を採用しても良さそうな、そんな時代でした。インタープリタだと流石に遅い、でもC言語のようなコンパイル言語だと"Write once, run anywhere"とはいかない、という判断もあったのだろうと思います。Javaが純粋なオブジェクト指向言語ではなくintなどのプリミティブ型を持つというのは、当時のマシンスペックを考えた場合、ある程度妥当な判断だったと言えるでしょう。これが後々苦しくなってくるわけなのですが。

Javaを作った会社はSun Microsystems(サン・マイクロシステムズ)というアメリカの会社で、2010年1月27日オラクルにより吸収合併され今はありません。SolarisというOSとSPARCプロセッサでUNIXサーバーの販売で90年代後半までは一人勝ちのような状況だったと聞きます。当時にすでに「ネットワークこそがコンピュータ」(The Network is the Computer)というモットーを掲げてたんだからおかしい。1996年リリースのJavaが標準でネットワーク機能を備えていたのもこのあたりの思想から来ているのかもしれませんね。

当時のプログラミング言語としてC++が挙げられますが、C++でのプログラマへの負担といいますか、ヒューマンエラーの起きやすさといいますか、その辺を改善する目的で開発されたのがJavaだったわけです。

1996年の時点にこんな言語が登場したのですから革新的でした。

いろんな企業がJavaに賛同します。その中にはMicrosoftもありました。この時期、Microsoftは次期のWindows開発用のプラットフォームにJavaを据えようと考えていました。その後、袂を分かつことになるのですが……。

プログラム言語として構文などを見ると、C++を強く意識した構文なのは間違いなく、しかしポインタ演算を廃してポインタを機能を限定した「参照」に置き換えるなど簡素化が多く見られます。C++からはいろんな機能が削られています。関数ポインタ、構造体、演算子オーバーロードテンプレート((テンプレートについては実装が間に合わなかったという話を聞きます))などなど。そのためC++の劣化であるように揶揄する人もいますが、こうしたものを捨てて言語仕様を比較的小さくシンプルに抑えた点は評価に値すると思います。しかし、今でもこうした削減された機能を愛する人からはJavaを腐す要素として挙げられてしまうのでした。

Java 1.1 1997年2月19日

Wikipediaからピックアップすると1.1での大きな機能追加は

といったところです。当初よりJavaの内部文字コードUnicodeで文字を表すchar型は16bitで設計されていました。Unicodeは当時それほど普及しておらず、Unicode対応のテキストエディタさえ少なかったと記憶しています。時代を先取りしていると言えますが、大きな誤算はUnicodeが当初16bitのコードポイントに世界のあらゆる文字を格納しようとしていたことで、漢字圏の我々からすると16bit=65,536程度の空間に文字が全部入るわけないだろ!というものだったが故に早々に破綻し、Unicodeは21bitのコードポイントに拡張されることになるのです。これはまた後の話。

なんにせよ、日本語が対応されたのは1.1からで、日本でのJavaの採用が始まったのはこの頃からと言えましょう。

当時のJavaのGUIはAWTというものでしたが、これを用いたGUIの開発は当時は結構行われていたイメージですね。Visual BASIC でGUIを作るプロダクトも結構あったと思います。GUIのためのオブジェクト指向言語としてJavaが使われていたイメージがありますね。JavaBeansもそのための仕様でした。件のsetter/getterの話題に繋がっていくのですが。

JDBCはJavaとデータベースをつなぐインターフェースです。RMIではあるJava VMから別のJava VMにオブジェクトを送って実行する、といったことができます。こうした機能が用意されたことで、ソフトウェアフロントとしてのGUI、裏方の実装のためのネットワーク機能、データベース機能、さらにはソフトウェアを配布するためのJava Appletという布陣でJavaでのソフトウェア開発が加速していた時代といえます。

Microsoft Visual J++ もこの時代ですよ。

Java 1.1以降のバージョンのものは互換性確認のためにOracle Java Archiveからダウンロードすることができ、今でも入手することができます。もちろん、Java7ですら2015年4月にEOL(End of Life,サポート終了)となっているので、通常利用するのはJava8としてください(本稿執筆時点)。

当時のドキュメントを見るのも一興です。現在と比べると標準APIがかなり小さい。なお、当時のjavadocは今とはデザインが大きく異なります。

  • java.applet
  • java.awt
  • java.awt.datatransfer
  • java.awt.event
  • java.awt.image
  • java.beans
  • java.io
  • java.lang
  • java.lang.reflect
  • java.math
  • java.net
  • java.rmi
  • java.rmi.dgc
  • java.rmi.registry
  • java.rmi.server
  • java.security
  • java.security.acl
  • java.security.interfaces
  • java.sql
  • java.text
  • java.util
  • java.util.zip

この時代であれば、全パッケージを舐めて標準APIを学ぶこともそう難しくはありませんでした。この時代から触っている人間は新バージョンが出るたびに増えるAPIを順に学んでいけたのです。しかし、現代にJavaを学ぶ場合、どのバージョンでは何があって……というのをいちいち学ぶ必要はほぼありません。Java5以前は一緒くたでいいと思いますし、一部のAPIで歴史的経緯があってねーというのを知っていればおそらく十分ではないでしょうか。

Java 1.2 1998年12月8日

strictfpキーワード浮動小数点演算をやる人は覚えておきましょう。JavaはパフォーマンスのためにCPUの浮動小数点演算を扱うことが許されており、そのため実行するCPUによって精度が異なることがあるんですね。まあ今時のCPUだと大丈夫だとは思うんですが。

リフレクション機能ではJavaのクラスを抽象的に扱うことができます。設定ファイルに書かれたクラス名のclassロードして実行する……みたいなことができるんですね。フレームワーク的なものを作る場合には多用することになります。

1.2からは新しいGUIのSwingが採用されました。AWTがOSごとのGUIパーツを用いていたためデザインに違いがあったのに対し、Swingでは統一的なルック・アンド・フィールが用いられるようになりました。まぁ今ならJavaFXを使うのが良いと思います。

初期のJavaはやはりVM方式の実行速度の遅さが指摘されていました。実行時の構文解析を伴わないだけインタープリタよりは早いものの、実行バイナリを作るC/C++よりは遅い、そうした評価です。ここではサン・マイクロシステムズのVMにJIT(ジャストインタイムコンパイラ)が乗ったことが挙げられていますが、JIT自体は別の会社が先駆けて開発していたことは記しておきたいと思います。

JITコンパイラは実行時にJavaのバイトコードを環境のネイティブコードコンパイルして動かす技術です。この後、JITコンパイラ、動的再コンパイル技術、世代別ガベージコレクションを備えたHotspotといった様にJavaVMは進化していきます。現代では実行時の最適化が進み、大きなスケールで見た場合、Javaの実行速度はC/C++での実装と比べてそれほど遅れるものではありません。遅くても倍の時間は掛からない程度といったところでしょうか。

あとは特記すべきはコレクションフレームワークです。皆が多用しているであろうjava.util.Listやjava.util.Mapといったライブラリが整備されたのがこの時なのです。それ以前はjava.util.Vectorやjava.util.Hachtableというクラスが可変長配列の機能を一手に担っていました。今ではVectorやHashtableは使うべきではありません。

Microsoft 離反

Java の開発はSun Microsystems が主導していたけども、すべてがSunのものだったというわけでもなく。Javaには多くの会社が出資していてその中のひとつMicrosoftだったわけですね。

Microsoft の Visual J++ では delegate とか独自機能拡張もありましたけど、裁判で問題になったのは J++ でコンパイルしたclassファイルMicrosoftのVMでしか動かないという部分ですね(他社製のVMで動くclassファイルを作ることもできる)。classファイルがどこのVMでも動くの大事だろ、"Write once, run anywhere"だろ、お前何してくれてんの!と喧嘩になったわけです。当時のMicrosoftブラウザまわりでも独自拡張がやりたい放題、標準規格?なにそれ美味しいの?みたいなスタンスをあちこちで見せていたものです。

結局、この事件でMicrosoftのJavaはバージョン1.1相当でストップ。好き勝手にやれないなら独自に言語作るわーとばかりに.NET フレームワークと C# といった方向に舵を取ります。

JavaがPC上でのUI開発の主力になろうとした勢いはここで潰えます。

Java EE

Java SE とは別にこの時代に Java EEリリースされていることは特記しておきたいですね。これ以後、それまでのCGIに取って代わって、JavaはWebサービスの開発のプラットフォームとして多用されるようになります。

2000年あたりからはJavaはGUI開発というよりは、Webサービスの開発が主流という流れになっていきます。インターネットサービスが非常に発達していった時代、背後ではとてつもない量のJavaのプログラムが支えていたわけです。ただまあ、こうした産業利用は一般的ユーザーの目にはあまり入らないわけです。一般人からすればJavaといえばJava Appletみたいなイメージはずっと残っていたでしょうが、実体としてはJavaといえばServletという時代になっていたわけです。

企業で用いられる社内システムにもServletは多く採用されました。

理由はいろいろ挙げれると思うのですが

というのが大きな理由だろうと思います。JSPというテンプレートエンジンを用いてHTMLを整形してWebページを作り出す、というアーキテクチャある意味では便利で簡単でした。

もっともHTMLの表現力に足を引きずられるため、GUIの機能性という点では後退したわけなのですが。それでもメリットが大きいと判断されたのでしょう。というか、まともにGUIを組めるプログラマがほとんどいないから、GUIのシステム開発がなかなか成功しないってのもあったんでしょうけどね。

iアプリ Javaアプリ EZアプリ

2000年あたりというと携帯電話の普及も取り上げなければなりません。現代のスマホガラケーに比べれば非常に機能は貧弱で、まさに携帯「電話」でした。要するに電話とメールぐらいしかできなかったんですね。

そこにdocomoiアプリJフォン(ボーダフォンを経て現ソフトバンク)のJavaアプリ、auのEZアプリという携帯電話上でちょっとしたアプリが動くよ!というのが乗るようになってきたんです。これがJavaを組込み用途にコンパクトにしたJava MEというものが土台となっていて(正確にはiアプリちょっと違う)Servletと並ぶJava言語の大きなもうひとつの領域となっていました。

iアプリは当初は容量が10k byteまでといった制約があり、容量制限が非常に厳しかったのですが、新機種が出るたびに容量は緩和されていきました。

docomoiアプリ含めiモードによって一世を風靡します。こうした土台を作ると、その上で商売をしたい人がたくさんやってきて、勝手にコンテンツを作ってくれる。docomoはそれらから手数料を取るので労せずして大金を稼げるというわけです。賭場の胴元というわけです。

この賭場が、将来にAppleiPhone, GoogleAndroidに荒らされることになります。docomoがなかなかiPhoneを出さなかったのもiモードという自前の賭場を失うことを良しとしなかったためです。金づるを失ったdocomoSamsungと組んで独自の携帯向けOSであるTizenの開発に乗り出します。そんなTizenですが鳴かず飛ばず。噂ではインドあたりではリリースされたとか、なんとか。

RIA時代

話を2001年に戻しましょう。

Microsoft離反でGUIのプラットフォームとしてのJavaというものは存在感を弱めていました。この分野の復権に寄与したのはJava 1.4 (2002年2月6日)で導入されたJava Web Startです。

Java Appletブラウザ埋め込みで動作したのに対し、Java Web Startではブラウザから起動しつつも独立したアプリとして起動するのです。

Webシステムが企業の社内システムに採用された話は先に述べたとおりですが、やはりWebシステムのGUIというのはHTMLに引きずられて貧弱だったんですね。

端的に言えば入力値が数字かどうか?みたいなチェックがなかなか難しい。HTML上でJavaScriptでやるわけなんですが、なかなか気持よく入力できるような感じにはならなかったんですね。

また、Ajaxによるブラウザのページ遷移を伴わない通信というのが出てきたのも2005年ぐらいなので、入力値に対してサーバ問い合わせするようなことはできなかった。当時だと一旦画面遷移させないとできなかったわけです。

こうした事情から、クライアントサイド、要するにPC側でもっとリッチなUIが使いたい!という要望があったわけです。Webシステム使いにくい!という不満の噴出と言ってもいい。そこで出てきたのがRIA (Rich Internet Applications)というわけです。

Javaは1.0時代のAppletからそうですが、ネットワークを介して別のPCにプログラムを送り込み、そこで動作させるという能力を持っていました。それこそまさにRIAに求められる機能性だったわけですね。

RIAの代表とされるのは

あたりです。三つ巴の戦い、どこに軍配が上がるのか!?と注目されましたが、勝利したのはHTML / JavaScriptでした。

Google MAP で注目を浴びたAjax技術、それまでブラウザでは不可能と思われていた高級なGUIをHTML / JavaScriptで実現させました。もうやめて欲しいですよね。せっかく脱ブラウザの流れが来たと思ったのにまたWebシステムに逆戻りですよ。

RIAが失速した理由として考慮して置かなければいけないのはスマートフォンの台頭です。RIAでは端末を選ばずどこでも同じアプリが動かせる点がポイントひとつでしたが、スマートフォンではそうは行かない。"Write once, run anywhere"を破壊したのはスマートフォンだったというわけです。

しかし、先日インストールなしでアプリを実行するAndroid Instant Appsが発表されたりしまして、結局RIAの思想といいますか、要求というのは今でも息づいているのだなと思った次第です。

Java 5 (2004年9月30日)

1.3 / 1.4 では機能追加はあっても言語構文が大きく変わることはありませんでした。大きく変わったのはJava 5です。この時からバージョニングが変わって1.5ではなく5と表記されるようになりました。

Java5の特徴はなんといってもジェネリクス。それまでjava.util.Listにデータを出し入れするのにはキャストが必須だったわけですが、ようやくキャストから開放され型の安全度がぐっと高まりました。その他に以下のような変更があります。

言語としては随分変わっったわけですが、もうかれこれ10年以上前のことですからこれらの機能が「Java5から導入された」という知識は今となってはあまり必要とされません。これらの機能が使えないJava 1.4で開発をする事案が殆ど無いからです。0ではないのが悲しいところではありますが。

その後

Java 6 (2006年12月11日)がリリースされた後、Java 7 (2011年7月28日) が出るまでJavaは停滞してしまいます。その間にSun Microsystemsという会社がなくなってしまったためです。

Sun Microsystems の経営状況が悪化しており、ついに身売りをすることになりました。身売り先はIBMともGoogleとも噂されましたが結局2010年1月27日オラクル吸収合併されました。

Javaの停滞中にはJava VM上で動く非Java言語も台頭してきました。Scalaなどですね。

やや戻って2007年Androidが発表されます。Androidの開発言語にはJavaが採用されていますが、実行環境はJava VMではなく、ライセンス的な事情でJava(TM)は名乗らない微妙な位置関係にあります。

Java 5 以降で大きく言語仕様に手が入るのは Java 8 (2014年3月18日)です。並列処理を行うためのStream APIと、そのために簡易に関数を定義するためのラムダ式が導入された点が大きいですね。日付APIも刷新されました。

このように、Javaは1.1の黄金時代から今に至るまで利用ジャンルを転戦しながら産業の土台となって支えてきた歴史があります。ジャンルの趨勢により浮き沈みもあります。今後についても決して楽観視はできないでしょう。Javaを学ぶことはプログラミングを学ぶステップとしては意義はあると思いますが、Javaを学べばゴールというわけではありません。プログラム言語次世代へと移りつつあります。業界動向には注視していきましょう。

2016-05-30

http://anond.hatelabo.jp/20160530223706

IP関係無いなら仮想マシン作ってそういうソフト使えばアフィで稼げそうですけどね(そういうのよくわからない

どうなんだろう

判定アルゴリズム?みたいなのがあるんだろうけども

Vmwareの使い道って

何?単に仮想マシン作れるだけだし

大量に作ったとこでなんの意味あんのかね

アフィリエイトに使うにしてもグローバルIPなんて何個も使えないだろうし

そういうIP偽装ってhttpリクエストとかの内容偽装すれば大丈夫なもんなんですかね

それとも色んなプロキシ経由するんですかね

シンクライアントとか以外の使い道がわからない

2016-03-31

あのMicrosoftbashねえ。

昨年まではLinux界隈を露骨に毛嫌いしてて、node.jsとかアレとかコレには見向きもしなかったMicrosoftが。

何があったんだろう。アップル市場を食いつぶされてて焦ってきたのかねえ?

しかし、無駄なあがきだろう。

アップルMacにはWindowsインストールできるが、普通PCOSXインストールする事は不可能ライセンス的にも許されていない。

から結局、一般PCを買うよりは、Macを買った方がずっと合理的なんだよね。

それに、特にWebデベロッパーは、Mac以外の合理的選択肢は無い。

なぜかMicrosoftはmodern.ieというサイトIEEdge仮想マシンを配布しているようだけど

アップルSafariOSXiOS限定にしているからね。

完全にこれアップル戦略勝ちだねえ。

2015-10-17

anond:20151017131450

この度長距離な引越しが決まり

NTT回線を新たに契約することになったんだが

契約時にインターネット接続するPCの台数とOSを聞かれた。

あれは何のために聞いてるのか?謎だ

素直に3台でWindowsMac OSXとFreeBSDと答えたのだが。。。

仮想マシンという技術もある昨今この様な情報収集する意味とは?

・多すぎると、NTTから提供するルータ接続台数制限に引っかかる可能性がある

コールセンターでのサポートwindowsXP以降じゃないと出来ない

といった注意事項を説明する必要があるためじゃないか?

インターネット回線申し込み時の質問って

この度長距離な引越しが決まり

NTT回線を新たに契約することになったんだが

契約時にインターネット接続するPCの台数とOSを聞かれた。

あれは何のために聞いてるのか?謎だ

素直に3台でWindowsMac OSXとFreeBSDと答えたのだが。。。

仮想マシンという技術もある昨今この様な情報収集する意味とは?

2015-04-12

いやまあPC作ってる部署と、俺らが付き合ってる所の部署は違うし

ともすれば「会社が違う」という感覚な所すらもあるし、色々と事情は分かってんだけど。

うちはサーバ5~6台で連携したりするようなシステムを作ってたりしてて

PCメーカーも「デモ見せろ」と言ってきたりするわけじゃん。

俺「そっちの会議室って電波入らないんだよ。サーバに繋ぐから御社ネット回線使っていいか」

客「だめ」

俺「じゃあローカルで仮想サーバ動かすからデスクトップマシン搬入していいか」

客「そんな場所ねえよ」

ふざけんなと思いながらノートPC2台に数台の仮想マシンを用意して行くんだよ。

で、デモ見せるだろ?

俺「・・・クッソ重いなあ」

客「・・・クッソ重いなあ」

クッソ重いなあじゃねえよ。そりゃ俺だけに許されたセリフだよ。

つーかどこの会社も毎回こんな感じだよ。

デスクトップ機なら、まあギリギリとは言え快適に動くんだよ。

デスクトップ機を置き換えるとは行かないまでも、そこそこ匹敵するようなノートPCを作ってみろってんだ。

今度はメーカーノートPC環境構築して「クッソ重い」連発して“あてつけ”てやろうか?wwww

2014-09-17

http://anond.hatelabo.jp/20140917021801

おっと富士通のことを言うのはそこまでだ

http://cybozushiki.cybozu.co.jp/articles/m000316.html

例えばこのPC会社システム上の制限Windowsしか使えないんですけども、

常に仮想マシンLinuxが立ち上がっていて、

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