「memcached」を含む日記 RSS

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

2011-09-11

悪いこと言わないか大企業行っとけ

新卒大企業ベンチャーどちらに行くべきか

といった話題がネットで飛び交っていたが、

その二択で悩むようなら大企業選ぶべきだ。



どこに転職しても使えるスキルを身につけるためにベンチャーは間違い

この手の議論で「大企業に行くデメリットとして、

古い技術や社内固有の技術しか身につかないが、

いっぽうベンチャーに行くと流行りの技術や、

メジャー技術を使って仕事ができる」

といった比較であるが、これはどちらが有利といった話ではない。



メジャー技術というのは代替が効くということなのだ。

もっと言うと、私が死んでも代わりはいもの状態だ。

ゆえにライバルだらけ。

A社とB社が同レベル品質提供している場合

A社が「ウチは半額で提供しますんで」と宣言した瞬間に、

B社は仕事がなくなるか、あるいは値下げせざるを得なくなる。



当然、大企業でも競合は存在するが、

大企業場合ライバル数社なのに対して、

ベンチャーの競合は、数百社が敵だったりする。

大企業はオトナなので、「これ以上値下げしたら儲からいから」

という線を必ず引くが、ベンチャー数百社の中には、

一発逆転を狙ったギャンブラーがどこかにいるかもしれない。



従って、その企業固有の技術ライブラリを持っていることが、

身を守ることになり、お金につながっているのだ。



ところが、一企業しか使えない技術を身につけても、

会社が潰れたらアウトじゃん、とデメリット考える人もいるだろう。

それは、大企業ならば余計な心配だ。

何故ならば多くの大企業では新入社員

「どこでも使える技術国語ロジカルシンキング」を教えるからだ。



国語ロジカルシンキングさえマスターしていれば、

たとえ会社が潰れても新たな就職先が見つかる。

(英語数学プラスアルファ要素として考えるべき)

メールでもミーティングでも、内容を理解し意図を汲み取って、

適切な返答をする。これさえあれば職に困ることはない。



ベンチャー企業流行りの技術を身につけても、

10年後にはその技術は使えなくなっている可能性が高い。

Ajaxが出始めたのは6年前、JQueryは5年、node.jsは2年だ。

数年前はSQL+memcachedが騒がれていたのに、今はNoSQL一色だ。

フレームワークAPIサーバコマンドオプションを覚えて

成長したと言えるのだろうか。

それならば大企業の独自技術を覚えようが、

流行りの技術を覚えようが大差ないのではないだろうか。



もしもあなたベンチャーに行きたいのなら、

その企業が他には負けない優れた技術も持っていて、

かつどこでも使える技術を獲得できる会社に行くべき。



あなたは体力がありますか?

ベンチャーは、余裕がない。

キャッシュ的にも、人のリソース的にも。

まり、もしあなたうつ病になったら、

会社あなたを首にするしかないのだ。

余裕がないので過渡期には終電帰り・泊まり込みが

連続になる日もある。



一方、大企業は他部署からの応援が可能である

残業過多な部署には暇にしてる部署から人を流れさせれば良い。

大企業は余裕があるので、例えば入社4年以上の従業員には

最大2年間の休職を許したりする。これならば、

病気になっても戻ってこれる可能性が高くなる。



ベンチャー楽しいですか?

大企業はつまらない仕事だらけで、ベンチャー楽しい仕事だらけ、

というイメージで話している場合があるが、本当にそうだろうか。



ベンチャー仕事内容だが、

自社サービス楽しいことをやっている会社はほんのわずである

ということを忘れてはいけない。

多くはベンチャーに見せかけたただの大企業の下請けだったり、

受託開発もこっそりやっていたりする。



数年前、スーファミプレステソフトを作っていた会社が、

現在パチスロCGを作っているのをあなたは知っているだろうか。

それと同じように、今SNSゲームで成長している会社も、

数年後、多くは潰れているか

形を変えてひっそりと仕事をしているかもしれない。



なお、ここで書いたベンチャーにはGreemobage級の会社は含まれない。

彼らは時価総額5~6千億の立派な大企業からだ。

2011-02-26

http://anond.hatelabo.jp/20110223195508

プログラマー」と名乗っている人をあんまり信用しないほうがいいというのはよく言われる話だが最近そのことを痛感している。今やってる仕事の一環として、「ほかのプログラマープログラムを書いてもらって、それをレビューする」という作業があるのだが、この「ほかのプログラマーが書いたプログラム」というのがひどい。クズたいプログラムばっかりだ。

物心ついた頃から不可解で仕方がなかった

たいしたプログラムも書けない そのくせに威張り散らしてる

ってな、黒夢の『C.Y.HEAD』という曲の歌い出しですけど、最近この部分がぐるぐるぐるぐると頭を回るものだよ。

ええ、わかってますよ。仕事相手の悪口を公的な場で言うなんて、問題があるって言うんでしょう。まあ、それもそうなんだけど、たいしたプログラムも書けないくせにプログラマー名乗ってる奴らに本当に腹が立つからせいぜい堂々と書きますよ。

「忙しくってコードの質が下がってる」っていうような事情もあるでしょうが、まともに納品が出来ないなら仕事なら受けるべきでないわけだし、ビジネス世界は「結果責任」を負うものですから、「事情」なんてのは知ったこっちゃないね

……っていうふうにね、「仕事」というのは基本的に「事情」を無視するものなんですね。だから基本的にはあんまり僕は「仕事」が好きじゃない。とはいえ、今いっしょに働いている人たちはかなり「事情」というものを意識していて、おかげでそれほど辛くはないんだけれども。ただ「ほかのプログラマー」みたいな、外部の人たちは、事情を共有することができないので、「あー! クズたいコード送ってきやがって!」ということにしかならない。「事情」を共有できるような、近しい距離の人たちとのみ、仕事をしていたいものですよ。

で、そのコードがどういうふうにダメなのかというと、主に2つの側面がある。

【1】文法が正しくない、プログラムが読みづらい

【2】ソフトウェア目的意識できていない

【1】はもう、そのまんま。文法がおかしいとか、同じ様な処理コピペで5回かいてるとか、1メソッドが長すぎる上に変数が"hoge"とかでわかりにくく、意味を取るのに困難があるとか。「こんなプログラムに金を払わなければならないのか……」と思うとめまいがする。何せ、それを「まともなプログラム」にレビューするのは僕なのだ。で、その作業に対してお金は一銭も入ってこないのだ。

不具合先祖返りなんかは誰にでもあるミスだし、それを点検するために僕がチェックしているわけなので、そのあたりはいい。しかし文法の狂っているプログラムを修正するというのは、時には全体を書き換えなくてはならなくて、非常に労力である。それに、受け取ったコードは「ほかのプログラマー」さんの「成果物であるので、あまり手を加えすぎるわけにもいかない。それが「仕様書」をもとにしたコード場合、あまり修正するとクライアントに「自分はこんなこと言っていない」と思われてしま可能性もある。だいいち、こんな作業にあんまり時間をかけたら、ほかのもっと大切な作業をする時間がなくなってしまうのだ。こういった様々な事情を考え合わせ、うまいことバランス取りながら、修正の妥協点を探していくわけだが、これはとてつもない頭脳労働である。疲れる。

【2】は例えば、「バリデートチェック」のためのコードなのに、「intは2バイト」ということばっかり書いて来るとか。「intは2バイトはわかったけど、いつからバリデートチェックになるのだろう」と思って読み進めても、最後までintは2バイトしかチェックしていない。依頼主であるからSIerは、そんなプログラムに金を払いたがるだろうか?

もっと具体的な例。ゲーム会社が、「我が社のキャラクタ版権を利用して、凄く売れるSNSゲームを作ってくれ」と依頼してきたとする。プログラマーが打ち合わせに行くと、企画者は「動的フラッシュも使って、100万ユーザーが遊べる。。。」という話を延々とする。プログラマーは「了解しました」と言って安請負する。そのプログラムメイン処理だけで1000行というもので、memcachedの「mem」の字もないし、「オブジェクト指向」といった概念も勿論ない。これでは仮にSNSゲームリリースされたとしても、100人さえも遊べない。

このくらいならマシなほうで、ひどいのになるとフリーランス会社から紹介されたプログラマーで、「SQLselect文くらいしかやった事がない」とか平気で送りこんでくる。たった一人で。

また、意味のないコメントも多い。ループ処理に、「イントのiに3を代入する」と書いて、何の意味があるのだ? せめて「処理速度改善の為にIntegerは使わずにプリミティブのintを使う!」というふうに書くのが本来だと思う、まぁ嘘なんだけど。だって、そんなコメントみて、「なるほど」って誰が思いますかね?

コメントには必ず「目的」というものがあって、次にソースを読む人は処理の概要を知りたいのだから、「プログラム」をそのまんまコメントにしてもダメなんですよ。そういう単純で、最も重要なことが意識できないで、どうして堂々と「プログラマー」なんて名乗れるのか知らん、と思うぜ。

一番、腹が立つのは「偽SEですね。「プログラムはだれでもできるでしょ、重要なのは業務知識でしょ!」みたいなのが偽SE。こういうのを本当に思っているのがいる。業務の画面遷移さえ理解してないSEがだよ。

上の例はさすがに大げさでも、「僕は、プログラムが好きでソフト開発者になりました」とか言ってまともにプログラムが書けない奴は、頻繁にいる。自分サーバ建てろよ。自分で簡単なサービスつくる事もできないなら、向いてないから辞めてしまえ。

「オレはサーバエンジニアじゃないかコマンド打てない」みたいなね。

世も末だ!

ここに挙げたのは「最低限」のことで、「より読みやすく」「より自然に」「より美しく」というところを、自分能力限界まで突き詰めてこそ、プロってもんじゃないんかね。もちろん時間や諸々の事情相談してのこととはいえ、「26歳の若造吐き気を催すような拙いプログラム」を送ってくる、30代40代のプロプログラマーってのはいかがなもんでしょう?

身の程を知れというか。

なんでプログラム書けない人がプログラマーなんかやってんだろ?

んで、なんでそういう人に「仕事」があるんだろうか?

世の中ってのは本当にわからんもんです

身の程を知れよ。

自分の欲望ばっかり考えやがってね。

2010-09-08

http://anond.hatelabo.jp/20100908120553

そんなことは言っていない

最近Webシステムって、遅いことがあるよねperlにしろRubyにしろ・・・ という話題をすると・・・mod_perlは遅くないとか、lightyとかmemcachedとか いう返答が帰ってくるのにうんざりした。... 』

Webシステムが 根源的に遅いのか、速いのか そんなことは ではなく。

perlが遅いとか、Rubyが遅いとか、PHPでもJavaでもなんでもいいよ。 それが遅いだ、速いだ。あげくはHTTPApachelightyだ memcached だmysqlだ。

他社が作ってる 又は 他人が作ってるOSSが作ってる ソフトの話をされることにうんざりした。

という話だ。

そりゃ、それぞれ、その会社がやることであって、貴方のところじゃないでしょと。 貴方のところのパートを速くするお話がしたいんだよと。

貴方のところがmod_perlなりRubyなりを 中までいじって速くしてくれるのか?

http://anond.hatelabo.jp/20100908113101

追加だけど

お金があったとして お金があるならmemcached,mysql,mod_perl,RoRの中を調べてみます じゃ 困るんだよ。

淡々と、memcached,mysql,mod_perl,RoR の中を探っていました。お金さえあれば、その経験を生かして 良い物が作れます。じゃないと。

他人に説明できない。

http://anond.hatelabo.jp/20100908021910

議論にならないから、 『今のWebシステムがなんで遅いのか』を述べてから言ってみて。

ちなみに、DBが9ms プログラムが1msだから10msのDB改善しましょうねってのはわかるが。プログラムを0.5msにすることで、5%ほど改善することも事実なんだよね。

そして、DBなんて、これ以上そんなに早くなるの?と。memcached?それは、みんな当たり前にやってることでしょ?差別化要因にならぬ。

で、単位時間100万セッション貼ってたら5万セッションほどそれで改善するわけだ。複合効果でDBも楽になるだろ。1セッションが短くなれば。

逆に言えば、DB速くしますって Mysqlの中身を改造しますならPGmemcached入れますだけだとね・・・

memcachedいれた上に、独自改造なので他社よりさらに速いです。なら、それはわかる。エンジニアリングだ。

その差は小さいけど、重要なんだよね。memcachedを使うだけ?それとも、memcachedを使いこなしてパラメーターだけじゃなくて、中身のチューニングまでやってくれんの?

それは、MysqlでもPostgreqlでもORACLEでも、何でもいいんだけどさ。

最近Webシステムって、遅いことがあるよねperlにしろRubyにしろ・・・

という話題をすると・・・mod_perlは遅くないとか、lightyとかmemcachedとか いう返答が帰ってくるのにうんざりした。

その手のチューニングは、別に他のシステムでも出来るだろうと、比較する必要性がない。

外部パーツとして単純導入できるCPU高速化なり、HTTPDの変更なり、memcachedなり、そんなもの提案してもらう必要性を余り感じない。

純粋に、お前のところのWebシステムは そういう外部要素なしに速いのか?って話だよ。単純に金で解決する感じの話をベンダーに聞く意味を感じない。他の会社にやらせたっていいんだから。

mod_perlが速いのはわかった。じゃぁ、mod_perlで3行ぐらいで書いたHello worldと比べて、御社のそのなんとかシステムで表示するHello worldは遅くなったりしてないんだよね?

でも、認証とか通してHello worldだすから遅くなるよね?

その、ベーシック認証とか通す時間は 純粋プログラマの腕に依存してくる。そこが速いのか?って事だよ。memcachedいれれば?そら、誰でも同じだ。御社だけじゃない。

某社の弊社が悪いんじゃないんです。memcachedが悪いんですにも、笑ったけど。

バズワードはいらないから、御社の独自技術の話をしてくれ

2010-08-24

http://anond.hatelabo.jp/20100824181336

よく分からんけど、mixi中の人が自慢げに言ってるmemcachedだか東京大乱闘だかのシステムを見るに、あんまりハードウェアと密接に絡んでくる部分は少ないように見えるよ。CPUメモリって概念があれば理解できるもんでできてると個人的には思う。

memcachedはソケットを介してメモリ接続してるだけのストレージだし、東京タイラントはそっからオブジェクト取り出すだけのインターフェースっぽい。

ロードバランサ? なにそれ。

2010-08-14

http://anond.hatelabo.jp/20100814065742

うわ、はずかしい。

高負荷が原因だって

http://togetter.com/li/41702

memcachedメインスレッドイベントキューには、listenとタイムアウトイベントがのっていて、高負荷になるとタイムアウトイベントの再挿入に失敗する様子。とりあえずはevent_base_loopを再実行すれば良さそうだけど、正しい対処かは不明

http://anond.hatelabo.jp/20100814035048

その通り、過負荷が原因でmemcachedが落ちたっていう解釈も合ってるが、

エンジニア側に立つと「負荷に耐えられなかった原因」っていう見方をする必要があるからこういう表現になってるんだと思う

mixiの件

mixi Engineers’ Blog » mixi大規模障害について



障害の最中に何度か、mixi側で原因は把握しているって情報を目にしたんだけど…

全然原因把握できてないんじゃないの?

memcachedが落ちるのが原因で障害が起こってるって意味だったのかな?

それって原因じゃなくて事象じゃないの?

2010-02-23

第50回PHP勉強会いってきました

ブログとかもってないんでanondメモメモ

はてな記法とか無視で読みにくいですがゴメンナサイ。



かいたひと→http://twitter.com/chobi_e

follow/unfollowはご自由にどうぞ。



うん、次なんか書くまでにはブログ用意しておこう。



第50回PHP勉強会

===============

会社としてもOpenSocialに関わってるし、個人でもちょいちょい

勉強がてらに手を出しているので参加させていただきました。



会場を提供してくださったコンテンツワンさんありがとうございました。

http://www.contents-one.co.jp/




ほいではメモの公開。

聞き逃しや誤記もあるかと思うので参照はほどほどに。



mixiアプリについて(@Weboo)

=============================



mixi機能の紹介とOpenSocialAPIリファレンス的な説明。

技術的な情報についてはほぼ公開されている範囲内なので、

mixiデベロッパーページを参照ください。



あとは公開するのは微妙なので割愛。

PHPWEB開発を行うようにしてオープンソーシャルアプリを作る(@KuniTsuji)

=======================================================================

CodeIgniterを使ってのmixiアプリ構築についてのお話



OpenSocial開発しているので全て既知の情報だったので

メモがありません。ゴメンナサイ。



要約するとPCはつくるのめんどいけどモバイルだとぺらいちで済むし、

ユーザー認証mixiが全て受け持ってくれるので楽よね!

NDA的に微妙なので詳細割愛



運用した気になるモバイルオープンソーシャル (@cocoitiban)

=========================================================

ウノウさんは社員募集中、@cocoitibanは彼女募集中



@cocoitibanのお仕事

・緊急案件ネガティブ発言

・社内案件で困ると一緒に頭抱えるのがお仕事

会社でもここいちばんと呼ばれているそうです(ココイチ



ウノウサービス

映画生活(ピアに売却)、フォト増、clipp、まちつく



・まちつくについて

位置ゲー、もともとふつうモバイルアプリとして提供していた。(ユーザー数非公開)

http://mt9.jp/



mixiアプリ まちつく(ユーザー数250万人くらい)

 ・リリース

  ・社長がやりたい→同僚がすごい勢いで作成。@cocoitibanは横で傍観



  ・mixiアプリ開発工数がえらい少ない。

モバイルOpenSocialって元のサービスがあれば結構勢いですぐ作れるんですよね。)



  ・mixiアプリオープン日に各社アプリ大盛況

   ・開始数分でロードアベレージが100とかのサーバーが発生

   ・ロードアベレージ1000でも登録できるんだー

   そして、当然のように他社を含め登録ができなくなるw



   ・初日から1週間は1日10万のペースで増えた

    ・mixiに登録しているユーザーだからまちつくに登録という意識は低いっぽいですが



   ・画像生成用のサーバーパフォーマンスが最大の問題に。

    ・ウノウには3時間画像生成をキュー処理に書き換えたやつがいる

    ・ボトルネックになりそうなものを全部退治

    ・できる限り愛されゆるふわコーディング

    ・ハードウェア確実に足りないので購入進める

     ・二日目、三日目と同じように+10万人ってトラフィックをさばかなきゃいけない



   ・リリースから今まで

   ・初期(パフォーマンスアップ)

    ・回線が足りなくなりつつあることに気がつく100Mなのに・・・

    ・画像サーバーを外部へ→ AmazonS3



  ・サーバー間に合わないので一部の機能をEC2

   ・決めてから1週間くらいでリリース


  

  ・ユーザー数が数万想定のコードを書き直し



  ・Memcached適用範囲を増やす

   ・一部機能を企画レベルで見直しふかがひくなるかつ、よりよい動作へ。



  ・初期パフォーマンスアップ

    ・L7ロードバランサふやす

    ・DBマスタ分割

     クエリチューニングされていてCPUやDisk ioのreadはすかすかだけどWriteが痛い事に

    ・ORMの機能をつかって分割

     ・トランザクション上影響ないものを分割

      ・2層コミットとか。、XAトランザクションは適用せず。

    ・サーバー台数的にはそんなにない。



   ・中期

    ・DBサーバ分割も厳しくなってきた

     ・ちょっとだけいいサーバーに置き換え

      →あっさり解決

    ・本格的な機能改善

     ユーザーに不便かけてる機能とかを大幅見直し

    ・社員数増員

     ・8Fに追加して4Fに事務所を移すことに

     ・引っ越し大変でした

    ・課金等をリリース

     ・可能な限り早くしたかったがユーザーに不便をかけている段階ではリリースできなかった。



   ・中期

    ・一部処理をQ4Mに置き換え

     ・EC2とはおわかれできた

     ・EC2は悪くないがサーバーがある現状ではコスト間と運用の体制のにゃー(メモ終わる前に次のページへ)



   ・まとめると

    ・数ヶ月、数人のエンジニアでおこなわれたので長短納期

    ・力業だが安定志向を目指す方がいい

    ・変わったことやると大体トラブって死ぬ

     ・しかし新しい事やらないと間に合わない



  [そのほかメモ]

PHPキュー処理って何使ってます?

   ・Q4M

   ・Gearman

   ・ActiveMQ


 

   ・ワーカーのPHPdaemon化ってどうしよう?

    ・daemontools

    ・自前で実装

    ・そのほかいいのがあれば



   ・キュー処理っているの?

    ・実装クイズ

    ・Friends1000人いて全員取りに行く場合どうする?

    ・本サイト側では追加更新もあるし

    ・キャッシュとして定期的に削除しなきゃだめ

    ・ユーザー数分パッチでとってくる?

    ・いや1000人とってきちゃおうよ

    ・FRIENDSランキング

    ・PCだと事情は違うかもしれない



   ・トラフィックの波が激しい

    ・流入云々でかなり違う

    ・コスト意識的にどう設定したらいいのかが難しい

    ・分散のネックはやはりデータベース



    ・ORMは使うべき

    ・流行るか流行らないか分からないサービスをつくる場合には必要

     ・はやった場合にすぐ分割できるか

      ・トランザクションがネックになる

      ・DBが分かれた場合に二層コミット的なものが必要になる。

       ・XAトランザクション

      ・普通に書いただけでそのコードになるか

      ・トランザクションを正しく処理できるか

    ・KVSとの透過性

    ・逆をいえば上記はコードを綺麗にかけるかどうかなので使わなくてもいいと思う



   ・エンジニアとして思ったこと

    ・EC2はありだけど運用がイントラで運用するのとは違う形になるので経験が必要だと感じた。

    ・AmazoRDSが別の地域で使えるようになるといいなぁ。


   

   ・どきどきするのが課金コストをいやいやでもエンジニア意識せざるを得なくなる



   ・mysql

     ・かなりはやい

   ・半年1年後、国内レベルトラフィックであれば大半のWEBサービスは1台でおk

     ・別案件inno db pluginつかったら半分に

   ・ip_conntrack/iptable

   ・ulimit



   ・Symfony

    ・Symfony使ったけどそんなボトルネックにならなかった的な話。



   ・バッチ処理とかforkで悩むことが多い



# 総評

最近はめっきり大きなトラフィックを扱うことがなかったからちょっと刺激もらえました。



前の会社ではサーバー200台くらい管理してたけど今の会社では数十台程度だし、

そこまでトラフィックもこないのでサーバーエンジニアとしては体たらく気味。



まぁ、業務的には様々な方面でやっているので仕方のない事ですが。



とりあえず現状で出しておいて流行したら確実に死ぬ&寝れなくなるので事前に

コードレビューと対策だけはとっておこうかしらん。



懇親会ももちろん参加させていただきましたが非コミュの私は

震える子鹿のようにただビールをひたすら飲むのでありました。



そんな私に声かけてくださった皆様、ありがとうございます。

名前/ID出していいのか微妙なので割愛させていただきますが、感謝感動雨あられでございます。



そうそう、個人的には今の流行がTwigなので@cocoitibanともうちょっと

お話したかったですが懇親会LTもありーの、飲み過ぎて気持ちわりーので実現せず。



Twigすごく良いとは思うんだけどいまいちドキュメントが少ないので

本当にこれでいいんか?て思うことが結構あるのよねー。

Node周りの実装がぱっと見分かりづらいので難儀。



そいじゃ会社いってきまー

2009-03-26

http://anond.hatelabo.jp/20090326124554

連番ってどういうこと?

順方向に探査すれば?ってこと?



何に使いたいか具体的に書くと、とある処理でwebページを取得するのだけど、その時、urlをキーにmemcachedキャッシュしようとしている。

しかし、urlが長大で250バイトを越えるとmemcachedが受け付けないので、適当な長さの文字列に変換したい。

250バイト未満のキーなら受け付けるmemcachedを使ってキャッシュすることが確定事項。



今は250バイト以上ならmd5値の16進表記を使うようにしている。

しかし、こんなところでmd5ってのも重いだけだなと。

crc32も使えるので、urlを4分割して16バイト長にするのはどうか。

実際どのくらい差があるのか。

と、思ったところでsquidとかその他実用しているキャッシュだったりハッシュテーブルだったりはどんな関数アルゴリズム使ってるのかなと思ったわけ。

今後のためにも調べておきたいと思った。

- 転職ならen
- 派遣ならen
 
1ページ中1ページ目を表示(合計:12件)