はてなキーワード: スナップショットとは
最初は増田にぶらさがってブクマを稼ぎたいだけだったのに、そんな話にも関わらずしっかりと耳を傾けてくれる姿勢に襟を正す思いでこれを書いています。
一応は20年くらいは写真を撮っていますが、自分はプロではないので、あくまでアマチュアの一意見として受け流してくれるとありがたいです。
増田の話を聞いていると、もしかしたら、まずは追い求めたい被写体を絞り込んでいくことから始めるのがいいのかなと思いました。
カメラというのは車と同じようなもので、利用目的によって様々なサイズや性能に特化したものが用意されています。
それをすべて詰め込もうとすればサイズも価格も膨らんでいく一方ですし、目的に沿って取捨選択ができてはじめてもっともシンプルで無駄のないシステムが構築できるのだと思います。
その上で、すこし精神論じみた話をしてしまうと、写真というものは、撮影者と被写体との関係性が絶対に写り込んでしまうものだと考えています。
同じ人を撮影するにも、同じ機材を使っても、撮影者と被写体との関係性でその写真は全く別のものになります。
親しい人であれば自然な表情が取れるでしょうし、心を許せていない人であればどこかぎこちない写真になります。
まずはその観点において、カメラという機材の存在感は無視することができません。
ストロボに大きなデフューザーをつけてでかい一眼レフを向けられれば人は緊張するでしょうし、アクセサリーのように自然に首にぶら下がったミラーレスが気づかないうちにシャッターを切ることができれば、何を意識するでもない自然な表情が撮れるかもしれません。
例えば結婚式の写真を頼まれたとき、大きな一眼レフを仰々しく首から下げておくと割と一般のゲストが遠慮して撮影を優先してくれることもあるでしょうし、小さいカメラだからこそ撮影することを意識させずにゲストの自然な表情を撮れたりすることもあります。
そういう観点から、増田にとってカメラという存在がどのように自分の撮りたい写真に影響を及ぼすのかということは考えてみてもいいかもしれません。
増田にとって、一眼レフをぶら下げたほうが自分の撮りたい写真にとって有利なのか、それとも小型のミラーレスのほうが有利なのか、撮りたい被写体ありきで考えてみてはいかがでしょうか。
もちろん、カメラを持つこと自体のストレスも重要です。物理的な重量やサイズ感以外にも、自分とカメラの溶け込み具合なんかも自分は大切な要素の一つだと思っています。
要するに、カメラを持った自分と、カメラを持っている自分を認識している被写体とが自分にとってどのような関係性でいることがベストかということを考えてみるのがよいのだと思います。
今で言えば生活のどこにでも溶け込んでいるスマートフォンも、カメラとしては優れた機材の一つだと思っています。
そしてもう一つ、被写体との物理的な距離感も大事な要素の一つです。
全く手に届かない被写体を意識もされないままに望遠を使って撮影するのか、それとも身近な存在を撮影することを意識されたままに撮影するのか。
好みの画角を決定づける方程式はどちらかというとシンプルで、被写体との距離感と、それに対して写真の中の被写体の占有率の2つで求めることができます。
遠い被写体を大きく写したければ当然望遠ですし、遠い被写体を広く写したければ広角、近い被写体をアップに撮りたければマクロ、近い被写体にも広い背景を入れたければ広角など、画角と最短撮影距離の2つが判断基準になります。
この辺りは意識して絞り込むことは難しいので、自分が撮影した写真を見返してみて、どの画角、どれくらいの被写体との距離感の写真が自分にとっていい写真だったのかを見返してみるのがいいと思います。
おそらくこの2点は画質を考えることよりも先に解決すべき問題だと思っています。
画質に対するこだわりは、そこまで被写体を絞り込んでからでも遅くないと思います。
そうすると、自分が撮影したい被写体に対してベストなレンズが絞り込めてきます。
ズームレンズは一見便利なように思えるのですが、1本でいろいろな写真が取れてしまうので自分の好きな画角に気づかないままで過ごしてしまうこともあります。
そこは割り切って単焦点レンズを使ってみてまずは理想の写真に対して自分の足で稼いでみるのもよい経験になるのではないでしょうか。
動体に対するピント精度はレンズよりも本体性能に関わってくるので、この辺はメーカーやそれこそ価格帯で異なってきますが自分には明確な答えを持っていので実際に使っている人の話を聞いてみてほしいと思います。(どちらかというと静物中心の撮影が多いので)
また、暗所に対する撮影はカメラとレンズ性能よりも、どちらかというと周辺機器で解決する場合のほうが多いです。
水族館なんかだと機材に制限があるので使えないことが多いのが現実ですが、そういう場合はそもそも撮影できないものなのだという割り切りも大事です。
それでも撮影したい気持ちがまさるのなら、それに特化した機材選びが必要になってきます。
いずれにしても、機材にはメリットとデメリットが常にセットになります。
その時、自分の都合よりも撮りたい被写体のために機材選びをできれば、そのデメリットはそれほど苦痛にはならないのではないかなと思いました。
自分が尊敬してやまない「決定的瞬間」という言葉を作り出したアンリ・カルティエ・ブレッソンも、今で言うミラーレスのようなカメラを常に懐に忍ばせては、数々の芸術的なスナップショットを生み出してきました。
彼は構図の天才でありながらも、被写体との関係性とはなにかということを表現した写真家の一人だと思っています。
すこし年寄りの説教じみた話になってしまいましたが、増田にとって写真がいつまでも楽しめる趣味であってほしいと願っています。
タイトル通りなんだが、
「初心者にはmacおすすめ!」「世の中のプログラマはみんなmac使っている!」
というバカなことを言っているアホが仰山いて笑える。
しかも、最近、OS事情が大きく変わっているのに、未だにwindowsはunixコマンドガーとか言っているやつが居る。もうね、言葉を失うよね。
まず、最近のOS事情の移り変わりなんだけども、windowsが最近かなりLinuxに近い触感になるような機能が多く追加され続けている。
例えば、wsl(コマンド関係)やwinget(CUIインストール)が挙げられる。
他にそれらを取り巻くプログラミング事情としては、vscodeがある。vscodeは、powershellやsshだけでなく、wslのコマンドも使えるようになっている。
そのため、従来はpythonやらjsはめんどくさ。とおもっていた点もある程度は改善されている。
ちなみにmacは特に最近はプログラミングに関する話を聞かない。
自分が、プログラミング環境の次に、大事な要点だと思っているのが、一般人の使用含めたシェア率。
正直、作っても誰にも使ってもらえないという状況では、全く意味がないので、シェア率は非常に大事だと思っている。
最近のデータでは、88%ぐらいがwindowsであるという統計がある。web系やiosアプリならまだしも、パソコン一般人に使わせたいソフト(特にゲームとか)を作りたいなら、windowsしか選択肢ないと思う。
そんなわけで、元からmac使いなら、まだしもわざわざwindowsから乗り換える必要は全くない。
ただ、mac使いでも全くwindowsでないと非常に困るということは、ある程度は…無くなってきてはいるですよねー。
ほれ、クロスプラットフォーム開発が盛んで、ライブラリなどの環境から障害は、少なくなってきているので…ただし、ios開発お前だけは許さない。
1点目は、web系からプログラミング始めたいとかいう奴に釘差したい、
web系はある程度セキュリティやらデータベース、コマンド知識やらないと爆死する。そんなわけで、GUIオンリーでパソコンを楽しんできた奴には、マジでお勧めしない。
まずは、webからではなく、統合開発環境上で実行ファイル(メモ帳とか)を作れる方面から始めろ。そして、linuxとかネットワークとかセキュリティとかの本を片っ端から読め。webを始めるのは、それからだ。
webでも実行ファイルを作ることは、星の数ほどあるし、別に必要ない知識はないぞ。
2点目は、勉強用とはいえ、いつも使っているOS上で、コマンドが使えるからと鯖建てるな。(windows・macどちらも)
かならず、仮想OSでやれよ。ミスって、apacheインストールできないとか言われても、周りは困る。とりあえず、わけわかめになったら、スナップショットでリセットしとけ。
俺はどこにでもいるインターネットユーザーであり、声優オタクであり、コンテンツ消費者である。Twitterのフォロワー数こそ四捨五入して2000人だが、ツイートのインプレッションは概して300前後。そこそこ頑張ってQiitaに書いた技術記事のPVは200どまり。
といった俺氏、何を血迷ったのか唐突にエロ小説を書き始めた。むろんこれまで小説を書いたことなどない(一度だけ増田が伸びたことはある)。エロ表現に至っては語彙が貧弱すぎて最初の一行から壁にぶち当たる始末。シチュエーションで補うつもりだがどこまで効果があるのやら。
だが読者が多いところにタグを盛大に盛って放流すればそれなりの反応はあるものである。書き始めてからまだ数日なのだが、PVは1日5000を数え、ありがたいことにブックマークも100件を超えた。
俺はこの数字の沼にはまった。書く側に回ることなどこれまで考えたことすらなかったため、「どの程度のPVならこのランク」といった相場感が養われていないのがかえって良かった。質を保って連載を続けていけばPVは鰻登りに増える道理である。日がなアクセス数の推移を見るためにリロードを繰り返し、他の作品を読み漁ってはどこかで使えそうな表現や語彙はないかとメモを取り、次の展開について考えてばかりで仕事も手につかない始末である。沼である。こんな楽しいことがあったのか。
とはいえ熱しやすく醒めやすい俺のこと、先の展開に詰まり、更新頻度が下がり、気付けば中途半端なまま放り出す日もそう遠くはないだろうという確信に近い予感はある。読者になっていただいた方々には申し訳ないという気持ちもある。だがもうしばらくの間はこの沼で溺れていたい。またこの気持ちのスナップショットを撮っておきたいと思い、こうしてここに乱筆乱文をしたためておく次第である。
Macbookが完全に0%のバッテリー切れ、アダプタ刺して充電して起動したんですが、再起動じゃなくて前回の作業内容のまま残っていて、これ電源がなくなっても死ぬ前にSSDにスナップショットしてから死んだんか?おまえ!って思ってしまいました。
少なくともWindowsでは見たことない芸当で意外と地味に凄いなと思いました。あとApple製品のいいなと思うところは電源を切らなくてもちゃんとスリープできるってことで、いちいちApple製品を電源を切ってしまう使い方ってのもどちらかというとしないですよね?
たまに混乱するんですが、スリープしてる時ってコンセント抜いても大丈夫な錯覚に陥ってしまうのですが、もちろん抜いたらMacmini再起動でした。当たり前ですよね。
今日もいくつか増田を書きましたが、ブクマやトラバがつきませんでした。
AKSの運用に関するベストプラクティス(原題: Applying best practices to Azure Kubernetes Service (AKS))がMS Igniteというイベントで話されていたので
https://myignite.techcommunity.microsoft.com/sessions/81598?source=SessionDeck
https://github.com/Azure/aks-bestpractices-ignite19
RTO(リカバリ時間目標)とRPO(目標複数時点)に応じて下記の4通りのシナリオがある
4にいくにしたがって
RTO=復旧するまでの時間が短くなる
17:22~
23:48~
「すると私は『自分が人間だと思い込んでいるコンピュータープログラム』にされてしまったわけかい? 私の同意もなしに?」
雲ひとつない秋の空。病室の窓は大きく開け放たれ、日射しが真っ白なカーテンと真っ白なシーツを眩いばかりにきらめかせていた。上体を起こしたおばあちゃんの皮肉げな笑みはシーツからの照り返しを受けて奇妙に平坦に見える。どこかから風が子供たちの喧噪を運んできて短い沈黙を埋めた。楽しそうな叫び声、ボールを蹴る音。窓は開いているが虫が入ってくる気遣いはない──この世界に虫は存在しないからだ。そして声の主の子供たちも。おばあちゃんと僕と病室だけがこのシミュレーションの全てだった。
「おばあちゃんはプログラムなんかじゃない。ちゃんとした人間だよ。それに同意はあったんだ」
前半は僕の信念、後半は真っ赤な嘘。数十回に及ぶ失敗を経て、僕はこのステップで事実を述べることは得策ではないと学んでいた。
「今はまだ記憶が混乱しているだけだよ。そのうちに思い出せると思う。もちろん自分が人間であることも、ね」
新鮮な死体の脳を輪切りにして採取したデータから人格模倣AIを作り出す技術が確立してから5年。既に数万人の死者がAIとしてこの世に舞い戻って社会活動(そして経済活動)を再開していたが、未解決の問題が一つあった。AIが自分自身を人間だと疑いなく認識できなければ──要するに自分は元の自己と連続した存在だと心の底から信じることができなければ、そのAIはやがて必ず壊れるのだ。しかもこの自壊は伝染する。2年前の《大災害》は当時活動していた世界中のAIの半数を発狂や機能停止に追い込み、ついでにほぼ同数の生きている人間までをも死に追いやった。そのため現在では、目覚めたAIは「自分が人間であると確信している」と客観的に保証されない限り、隔離されたネットワークから外に出て行くことは許されなくなっている。病院の医療ミスで亡くなったおばあちゃんを現世に連れ戻すために(したがってこの高額な費用は病院持ちだ)、この病室での対話と説得は、法的にも倫理的にも現実的にも決して欠かすことのできないプロセスだった。
「お前の言いたいことは分かったよ。でもね、結局のところ今の私はただのプログラムとデータなんだろう? コピーも削除も編集もできるただのデータなんだろう? そんなものが人間であるわけがあるものかね」
「おばあちゃんが動いている基盤はとても厳重に保護されていて、コピーや削除はできないんだよ。暗号化されているから僕らは読むことも編集することもできない」
「まるで本質的じゃないね。じゃあ私を私たらしめているものは何かね? 私の魂のありか、この私が私であって他の何かではないこと──そして他の誰かが私にはなり得ないことはいったい何が保証するんだい?」
これは失言だった。おばあちゃんは手を叩きながらおかしそうに笑い始めた。その笑い声がヒステリックに加速していく。そのおばあちゃんの頭の上には僕だけに見える不吉な赤黒いバーが浮かんでいる。これはおばあちゃんの精神的な安定度を示すもので、緑は正常、赤は不安定。黒になると正気に戻れる見込みはなくなるため、そのおばあちゃんは慈悲深く自動的に終了される。僕はこれまでその光景を53回見てきたが、今日が54回目になった。一瞬のフリーズののち、おばあちゃんがきらきらと輝く光の粒になって空中に散逸していくと(本当にくだらない演出だ。僕はいつか機会があったらこの演出を決めた奴を殺してやろうと決意していた)、僕は口汚く自分を罵りながらHMDを顔から乱暴にむしり取ってシャツの袖で汗と涙を拭った。おばあちゃんが目覚めた直後のスナップショットからこのセッションをもう一度やり直す時間はまだあったが、僕には休息が必要だった。
僕はおばあちゃんを愛しているし、また家族と一緒に笑い合いたいと心から願っている。だからこそ毎日この「復活の間」──自分はデータに過ぎないと思い込んでいるAIに対話を通じて自分が人間だと納得してもらうための施設──に通い詰めているのだ。けれども最近は思う。果たして僕はおばあちゃんの人間性を本当に尊重しているのだろうか、それとも玩具のように蹂躙しているのだろうか?
小学生が欲しいものを買って欲しい時につい言ってしまう魔法の言葉、「みんな持ってるから買って」。
考えてみれば大人になったいまでも、「みんな持ってるから買って」るものが多々ある。
全部インスタでよく見たやつ。
もちろんよく見るからって何でもかんでも欲しくなるわけではないが、店で見ただけだったら「ふーんかわいいね」で済んだものを、家でも目にすることによって実際の購買にまで至ってしまう。
結果的に買ってよかったものが多いから後悔しているわけではないが、インスタでよく見るものを買うのって、本当にそれが自分の欲しいものかどうかわからなくなってくる。
小学生の頃、親に「みんなが持ってるならあなたにも必要ね!」なんて言われたことはないが、なぜかみんな持ってるものが欲しくなる。
swift playgroundとかswiftが知ってる人フレンドリーではあるけど、初心者には分かる仕組みになってるのだろうか?
SI業界に入った子がSQL書けとか、ES6書けみたいなこと言われたってハードル高すぎないかねぇ。
AWSとかアラフォーの俺も全然分からない。awscliでスナップショットとれるなんて今日初めて知ったよ。
今のプラグラミング言語って色んな言語を取り込んで高機能化してる訳じゃない?なんでそんなことしてるのか分かんないと思うのね。
伝わる人に言うと、JavaだってAutoBoxingが前提だったりするわけじゃん?42+"円"とか書いちゃう訳よ。コンパイルエラーにならないのも頑張りすぎだろと思うけど。
あとmaven使えば色んなライブラリ使えるわけじゃん?今ならGradleなのかい?よくわかんねぇけど。俺はよく分かんないけど、使いこなせてるのかね?
AWSもES2の説明はできてもS3の説明できる先輩がどれほどいるか。ストレージや仮想化の知識が前提にない人は説明はキツいなと。AIMとか混ざると地獄よね。
プログラミングに戻ると、今どきの言語って最先端で書かれると記号や謎予約語が多かったりするんだけど諸先輩方は大丈夫かなと。
フルサイズ換算で40mm。
50mmでも28mmでもないこの40mmという画角がまさにアツい。
その中で辿り着いたのがこの画角。40mm。
以下理由を列挙。
・明るい単焦点が手頃に買える。
といってもずばり40mmっていうのはあまりないので、フルサイズなら35mm。APS-Cなら24mm~28mmくらい。
・手ブレが起きづらい。
自分の中で、手ぶれ補正なしの場合、1/画角を手ブレが起こりやすくなるという目安にしている。
40mmなら1/40だ。これくらいのシャッタースピードなら室内であってもそれほどISO感度を上げずに確保できる数値だ。
食べ物や子供を撮るときは室内が多いため、照度を諦めずにチャレンジできる。
・レンズが小さい
・歪みが小さい
これ以上広角になると歪曲収差が目立ってくる。
これくらいの画角であれば、建物も人の顔も歪みがさほど気にならない。
とくに子供はカメラに向かって一目散に向かってくるので、近くまで撮れるレンズはありがたい。
・ボケがちょうどいい
50mmほど背景がとろけるわけでもなく、24mmほどパンフォーカスで写るわけでもない。
人間の目で見るボケをちょっと強調したくらいに写る自然さがいい。
・料理ならお皿と人がちょうど入る
対面に人が座っていても、料理とお皿を同時に撮すことができる。
・こどもなら風景も一緒に入る
子供の写真を撮るときに、どんな場所に居たのかを一緒に収めることができる。
せっかく出かけたのに背景がボケボケで子供は可愛く写ってるけどここどこだっけ?みたいなことがなくなる。
・ビデオにもちょうどいい
さらに大画面で見る時、ちょうど人の視界と同じくらいに写るので見やすい。
ついこの間まではフルサイズ換算50mmがもっともアツかった。
その時は、被写界深度の浅さや、被写体一つに限定する緊張感がよかったのだと思う。
ただ最近になって構図を色々と整理できるようになってきたのか、それでは物足りなくなってきたのだ。
被写界深度が深くなり画角が広くなるということは、つまりそれだけ写真一枚における情報量が増えるということだ。
人それぞれに目指すものがあるので何を持って上達というかはわかれる部分だと思うが、おそらく自分にとっては構図技術の向上=画角の広角化につながっていくのだろう。
アツい。アツすぎるよ40mm。
WMI を使うのが早いようだ。
スナップショットをとるときは、Win32_ShadowCopy で Create メソッドを発行。
http://www.wmifun.net/library/win32_shadowcopy.html
C# や VB.NET から利用するとき、API とか、有志による .NET モジュールとかもあるけど、WMI を利用したほうが手間が少ない気がする。
http://msdn.microsoft.com/en-us/library/aa384648.aspx
http://www.codeproject.com/Articles/22745/Volume-Shadow-Copies-from-NET
新着エントリーに、いわゆるWordPressの運用で、「Macの標準コマンド Git で管理」みたいのがあった。
まあ、この「Mac標準コマンドGit]という表現がなんとも言えない匂いがするが、
このブログでは何をしてるかというと、
ー黒い画面はホントに怖いけど`git init`だけはしてみる。
ーおかしくなったら`.git`ディレクトリ消しちゃえばOK!
恐ろしいほどくだらない話なのに新着に載っちゃうのね。なんか、もう、あれだね。
てか、単にファイルのスナップショット取りたいだけだろうし、ローカルだけだし
まともにgitなんて使えないんだからDropboxにでも突っ込んどけばいいのに。
こういうのでLife Changing(訳:退化)してくんだなぁ。
いやいや…超使ってるよ。使いすぎて、そこらへんに転がってて、訳が判らなくなってるよ。
システムドライブデータドライブであっという間に数Tだから、最低1履歴保存しようとするだけでも、すぐに保存用HDDが何個か必要になる。数世代残そうと思ったらもう何台もいる。
最近は据え置きじゃなくて、ノートも何台かあるだろ?MacbookならNASにTimeマシン領域がいるし、Winだってスナップショットは残しておくし、その他のデータもバックアップ取らないと、データが死んだ時に泣く事になるから保存すると、また、保存用HDDが何台もいる事になる。
てな訳で、何台もすぐに必要になるって話でした。
RAID1アレイの片割れを適宜引き抜いて保管し、それをバックアップ媒体とする
引き抜いた後には別のHDDを取り付けてからリビルドして平常運転に戻す
とかいう運用も、あるにはある。原理的には完璧なスナップショットが取れるんだけど、
・同じ時期に購入したHDDは期を同じくして壊れるかも
・つか、いざというとき本当に期待通り復旧できる?
・ベアメタル復旧なんて贅沢を言うと、予想以上に苦労すると思う
という点に注意が必要。
うちの職場もその運用を長年続けてきて実際に助けられたこともあるんだけど、昨年勝利の方程式が崩れて2日くらい徹夜するハメになったのでシステム更新を機にやめた。
http://anond.hatelabo.jp/20130104184115
の元増田です。
ひっそりと公開したはずのtag-chat.net(http://tag-chat.net)ですが、
まさか、こんなに反響を頂けるとは思っていなかったので、びっくりしました。
素人のフリをしているとか、出版社のステマだとか色々言われましたが、嘘は一切書いてないです。
ステマというか、ウェブサービス公開後の状況を知っている方からするとマイナスのステマにしかなっていないような気がします…。
公開してから、色々と発見というか気づきがあったので、それを共有できれば幸いです。あと、tag-chat.netの中身についてなど。
・意気揚々と自作SNSを公開したものの、アクセスが全くこなくて途方にくれる。
⇓
・以前、完全に一致を作った増田の方が、増田記事を書いてからアクセスが急に来たと書いてあったので真似して書いてみる。
⇓
・翌日ごろから、アクセスが集中。ビビる。「うちの会社で働きませんか?」と言ったお誘いのメールをたくさん頂く。
いきなりの出来事にパニックになっている間にも増田記事が拡散していき、アクセスが急増する。
⇓
アクセスが爆発する。1時間あたり二万アクセスというアクセスを捌ききれずにサーバーが落ちる。サイトのウリであるが、メモリ使用量
⇓
・その後、サーバーを増強。エラー情報や、寄せて頂いた情報をもとに各種エラー情報や、使い勝手などを改善。
⇓
・現在、安定稼働中。おかげさまで、ユーザー数もゆるやかに増加していて、基本的な機能も正常動作しています。ユーザー数はもうすぐ
1000人に届きそうでありがたいばかりです。
と、いうわけでなんとかようやく落ち着き、ウリのマッチングチャットも正常に作動しているようなので、後記事を書きます。
■ウェブサービスの公開前に注意すべきだったこと。
①・セキュリティについては書かないほうが良い。色々といじられる。
前回の増田記事で、DoS攻撃の対策などについて語ったのですが、それを確かめるためなのかサイト公開してしばらくしてから、定期的に
Dos攻撃をくらいました。
おかげ様で、ちゃんと一時的にそのIPからのアクセスを遮断することはできたのですが、セキュリティについてあまり大々的しゃべると攻
撃対象となるので、あまり具体的なセキュリティ対策などについてはしゃべらないほうが良いのかな、と感じました。
また、DoS攻撃だけでなくCSRF試したり、色々といたずら(もしくは善意のテスト?)をして下さる方がとても多かったのには驚きました。
はてな民の技術レベルの高さを知りました……。いたずらされている間は本当に怖かったです。
とりあえず、今のところ攻撃は防げているようです。
はじめ、私は調子に乗ってサイト内に英語を多用していたのですが、それがユーザー様にとって混乱のもとになっていたようです。
例えば、他のユーザーから自分の書いた日記などにコメントがついた時に、それを知らせるページがあります。
普通に考えれば「友達からの反応一覧」とか「友人からの反応」とかにすれば良いのですが、何を血迷ったのか「Reaction」と中二病丸出
しで書いてしまったので、ユーザー様がものすごく混乱したようです。
結局、「使いにくい」、「サイト内迷子になる」との声を受けて日本語メニューに変更しました。
③・使い方のページはくどいくらい書いても良かった。
フリーチャットや、マッチングチャットでは、基本的に相手が見つかるまでは「待ち」の状態になります。
相手がすでにこちらを「待っている」状態だとすぐにチャットが始まるのですが、そのことに対する説明が足りなかったようで、チャット
ルームを出たり入ったりしている人が多かったようです。
また、チャットが終了した時にチャット相手にお礼をこめてメッセージを送る機能があるのですが、これも説明不足で上手く使われなかっ
たようです。
とにかく、くどいくらい説明しても良かったと思います。
■ウェブサービスをリリースする前にやっておいて良かったこと。
①・Twitterのアカウントを作りそこから最新情報を流せるようにする。
これは本当に大きかったです。
とつぜんの増田砲で一時間あたり二万アクセス近くのアクセスをさばけずに、サーバーがビジー状態になってしまった時も、Twitterを通
じて現在の状況などを流せたことは非常に大きかったです。
②・エラー情報を送ってもらえるようにメールアドレスを作っておく。
本当にありがたいことに、実際に使ってみた使用感や、こんなエラーが出ていると言った情報を送って下さる方がいます。
一人でテストしていた時には気づかなかったエラーや、不便な点などをわざわざ時間をとってメールで教えてくれるのです。
どこの馬の骨ともわからん怪しい奴が作ったものに登録してくれ、使ってみてくれただけではなく、エラー情報や励ましの言葉を送って下
さるのです。
本当にありがたいことです。
③・それでもわからないエラー情報に対して対処できるようにしておく。
優しいユーザーの方がエラー情報などを教えて下さるのは大変ありがたく、また開発の励みにもなるのですが、それに頼ってばかりいて
はダメです。
サーバーの吐き出すエラー情報を調べて、おかしな挙動にいち早く気づく必要があります。
本当はhttpdのエラーログとか見れば良いんですけど、はっきり言って物凄く見づらいので、ツールを使って毎日「こんなエラーがでました
」と教えてもらうようにしておきました。
色々なツールがあるみたいですが、私はlogwatchを使いました。
・参考URL
http://www.atmarkit.co.jp/flinux/rensai/root04/root04c.html
これでエラーの出ているところだけでも、修正するということをやっていました。
■ ウェブサービスを運営してみてわかったこと。
①・SNSの人の流れにはなんだかよくわからない規則性がある。
tag-chat.net グーグルアナリティクスでどれくらいの人が毎日来ているかをウォッチしているのですが、なぜか月曜日と週末にかけてア
クセスが増えます。
謎です。週末はわかるけれど、どうして月曜日に……?
②・やっぱり非リアの気持ちは非リアじゃないとわからない。
「どうして普通にはてブに書かないのか。なんで増田なのか」とか「非リアを装って」
とかコメントしてる人たちがいたのですが、その人たちは非リアについてなんもわかってないアホだと思いました。
もともと自分で名前なり、アカウントを明かした上ではてブに投稿できるくらいの度胸があれば非リアになんかなってないです。それは自
分でもわかってます。
自己顕示欲が人一倍強いくせに、人に名指しで批判されるのが怖いから増田に投稿したのです。
フェイスブックに実名でウェブサービス作ったことを投稿できるような度胸があればそうしてますし、はてブに書けるなら書いてます。
そうするだけの度胸もなくて、でも誰かに認めては貰いたいから増田に書いたということをわかっていない。
③・ネットのみなさんが優しい。
今までネットの人たちは2ちゃんねるとかで炎上したり、なんか面白そうなものを見つけてお祭り騒ぎする、ちょっと怖い人たちという
イメージだったのですが、それが今回のことでガラリと変わりました。
本当に優しい人が多くて、どこの馬の骨ともわからない奴の作ったウェブサービスを使ってくれるだけでなく、感想や励ましのメールな
どをたくさん頂きました。
遥か雲の上の存在だと思っていた会社の方からもメールなどを頂きました。本当に感謝してもしきれません。
~技術編~
①・nodejsを使って外部にサービス公開するなら、認証は必須。主に不正な負荷を減らすために。
さっき書いた、「セキュリティについてはあまり書くな」という話と矛盾するのですが。
nodejs、すごくアクセスさばけて、なおかつ軽いということで便利なんですが、サーバーなので、基本的にリクエストを受けたら非常に素
直に返事します。
例えば、nodejsとsocket.ioを使って、単純にメッセージをサーバーに送るとして、クライアント側で
のようにすると、サーバーはどこから来たアクセスなのか、とか悪意のあるアクセスなのか? とか一切気にすることなく、素直に'hoge'
これはつまり、第三者が悪意を持って大量にメッセージを送りつけるとそれを素直に受け取ってしまうということです。
なので、例えば大量に不正なデータを送りつけられたりするとレスポンスが悪くなります。
なので、悪意のあるアクセスはsocketにそもそも接続させない、という対策がサーバー側で必要になると思います。
socket.ioではコールバックを使って、簡単に認証させるかさせないか、という実装ができます。具体的には以下のURLなどを参考に実装す
http://d.hatena.ne.jp/Jxck/20110809/1312847290
②・nodejsの最大接続数は、ファイルディスクリプタに依存する
ということにしばらく気づかずに、最大接続数が400ほどしか出ず悩んでいた時に以下のURLを参照して、なぞが解けました。
http://blog.livedoor.jp/mokepon/archives/182178.html
またsocket.ioのテストの書き方ですが、
http://d.hatena.ne.jp/toritori0318/20120902/1346591831
という素晴らしいエントリーがあったので参考にさせて頂きました。
■楽できるところは楽するためのツールなど。
nodejsの開発で、面倒くさいところはできるだけ楽しました。以下、便利だったものまとめ。
・node-dev
コンソールにデバッグ情報を吐き出してくれ、サーバー側のコードをいじくった時に自動的に再起動してくれる。
いちいちコマンドプロンプトからnodejsを実行する必要がないため、作業の手間がはぶける。
nodejsを触り始めた時はエラーを吐いてばかりなので非常に役に立ちました。
参考URL
http://d.hatena.ne.jp/replication/20110224/1298474534
・forever
様々な使い方があるようですが、stop,list,startの3つぐらいしか使いませんでした。まだ、研究中です。
参考URL(基本的な使いかたが非常にわかりやすく書かれています)
http://nantekottai.com/2011/08/15/node-js-based-service-with-forever/
・mongoose
ドキュメントは色々ググったのですが、結局公式のドキュメントが1番わかりやすかったです。
~モチベーション編~
■一人でウェブサービスを作る上で、心の支えになった記事。
http://d.hatena.ne.jp/Hamachiya2/20080131/security
とにかく楽しんで、作ってみることが大事だよ、というお話です。すごい勇気づけられます。
・小飼弾さんの産声の話。
http://blog.livedoor.jp/dankogai/archives/51837985.html
弾さんは、お金持ちで、腕は一流で、PHPこき下ろすし、なんかすごく怖い職人のイメージだったのですが、このエントリーを読んで、クソ
まみれでも産声を上げてみようと思えました。
実は優しい人なのかもしれません。私の高校時代の担任の先生にどことなく似ています。
■お詫びと訂正
前回の増田記事で、OpenPNEについて間違った記載をしてしまいました。ソースコード公開に関する記述の部分です。
OpenPNEではそのソースコードを改変したら、そのソースコードを公開しなくてはならないと書いたのですが、これは間違いです。
OpenPNE方々には大変ご迷惑をお掛けしました。申し訳ありませんでした。
あと入家さんに謝りたいです。
フェイスブックにもとりあげて頂いたそうで、ありがとうございます。
怖いのでどんな投稿なのかはまだ観ていませんが、本当にありがたいです。
■最後に。
ウェブサービスをコツコツと作り続けて公開したところ、増田記事のおかげもありたくさんの反響を頂きました。
ただ、別にウェブサービスを公開したからと言って、実際のところ何かが劇的に変わったわけでもないです。
グーグルアドセンスは支払い規定の一万円を超えていないので、手元には一銭も入ってきませんし、実名出して行動できなかったので現実
あいかわらず休日は地元のゲームセンターでレトロゲーをやって時間をつぶしていますし、学校から帰ってきたらももクロのライブを観て
、Chai Maxxを踊ってから寝るだけの毎日です。それでも結構楽しいのですが。
ただ、ネット上で様々な先輩エンジニアの方々や、同年代で同じようにフェイスブックが嫌いな方から励ましのメールをもらいましたし、
本当に、びっくりするような充実した二週間でした。
はてブで人気のエントリーにあがった時のスナップショットは未だに大事にとってあります。
tag-chat.net(http://tag-chat.net)を作って本当に良かったと思っています。