モンスター・ラボTech/Designブログ -3ページ目

モンスター・ラボTech/Designブログ

株式会社モンスター・ラボのテクノロジスト、デザイナーによる持ち回りブログです。

モンスター・ラボでエンジニアやっています。
社内では、[キンシャサの奇跡]と呼ばれています。


最近、PHPの案件が多いのでフレームワークに[CodeIgniter]を使ってます。
個人的にはCakePHPが好きなんですが、どーもCodeIgniterはベンチマークが
かなり素敵らしい。確かにCakePHPが軽いかと言われると、うーんって感じですが。

とにもかくにも、このフレームワークは自由度がそうとう高く、
好きなようにカスタマイズできちゃうので、設計できない人が
ベースを作るととんでもないことになりそうな感じです。

まあとりあえず軽いという触れ込みでつかってみましたが、
意外なとこで驚かされました。

アプリをガツガツ作って、テストもガンガンやって
これでモウマンタイ!と思って検証サーバにあげた瞬間に。。。。

動かない。。。

サクサク動いていたはずが、処理が遅くなり、そのうちまったく動かなくなりました。
どのくらい動かないかというと[土俵際の千代の富士]くらい動きません。

自分くらいのお年頃になると大抵見当がつきますが、とりあえずデバック。
検証したら案の定DBつかんじゃってるみたいです。

よくあるんですよね、こーいう事。
でも設定ってどこでやるんだろ?と思ったのですが
http://delaz.org/user_guide_ja/database/configuration.html
すんなり載ってました。
CodeIgniterのサイトはとてもマニュアルがわかりやすいです。


よくよく見てみると、[autoinit]の項目に以下の文章が

=========引用======================
autoinit - ライブラリがロードされたときに、データベースに自動的に接続するかどうか。
もし FALSE に設定された場合、最初のクエリの実行の前に接続されます。
=====================================

素敵すぎる!つまり共通関数をライブラリ化して、javaのServiceクラスっぽく作っていた
箇所が全部悪影響したわけですね。

>設計できない人が
>ベースを作るととんでもないことになりそうな感じです。

要は自分の事だったわけですね。
そりゃ、controllerでロードしまくってますよ、ライブラリ。。。
ただ、ゴリっとしちゃうのも嫌なのとライブラリ時に接続する意味がまったくわからないので

autoinit = FALSE

にしました。そしたらすんなりサクサクです。
何の為の設定かな。コネクションプーリング的な動きはしていなそうだし。

しばらく動かしていたら、[コネクションつなぎすぎですよー]と
DB君が、日記のようにログに記録していました。
うーん、まだ何かあるのかな。

ふたたびマニュアルを確認。

=========引用======================
pconnect - TRUE/FALSE (boolean) - 永続的な接続を使うかどうか。
=====================================

何だ永続的な接続って。。。やっぱプーリングしてるのかな。
いろいろ調べたらmodelロード時に接続をするらしい。

何か南、イライラしてきた。

とりあえず、1テーブル1モデル的なRails風のActiveRecord設計にしたのが
間違いっぽい。

pconnect = FALSE

にしたら無事に解消。
負荷テストかなりかけても問題なしでした。

CodeIgniterの設計思想を把握していないが、モジュール化や
ライブラリ化という思想ではなく、Facade的な概念なのかな。
共通処理とか集約したいと思っている自分には、慣れるまで時間がかかりそう。


やっぱりフレームワークは思想を理解してからじゃないと
素敵な作りにはならないのですな。

ちなみに今回設定したパラメータ
[autoinit][pconnect]はCodeIgniter2系ではデフォルトTRUEのようなので
ちゃんと意味わからない人はFALSEにすることをお勧めします。

負荷的には問題なかったので。

また何か発見したら書きますー。



女「どんなお仕事されているんですか?」
男「コンピュータ関係かな」
女「目が疲れませんか?」
男「いや、それは慣れたけど、いろいろ疲れるね」
女「じゃぁ、そこに座ってくださいね」
男「変わった椅子だね」

女「いろいろ・・・って?」
男「メールはバンバン来るし、電話やら打ち合わせやらなんやら」
 「まぁ、そんな感じかな」
女「忙しいんですね」
男「給料は安いけどね」
女「ヒマよりはいいですよ」
男「ヒマの方がいい」

女「ちょっと聞いてもいいですか?」
男「いいですよ」
女「エクセ・・・る?ワード?」
男「うん」
女「あるじゃないですかー」
男「うん」
女「どうやったら覚えられるんですか?」
男「どうして?」
女「んー、ちょっと」
 「そういう仕事って、どうかなと思って」
男「仕事で使うのは、やっかいだね」
 「たぶん、使い方がわかるっているというより」
女「はい」
男「もやもやしたことを、どんな風に整理するかを考えるのが難しいんだよ」
 「使い方は2の次」
女「そうなんですか」
男「いや、実際どんな仕事かわからないけど」
 「少なくとも僕の回りはそんな感じ」
女「あたし、バカだからだめね」
男「そんなことないさ」
女「では今度は、こちらに」
 「滑るから気をつけてくださいね」

男「メールは書くでしょ?」
女「はい」
男「それだって、もやもやしたことを整理することの一つだよ」
女「でも、短いメールばっかり」
 「長いのは、書けないなー」
男「うん、人に何かを伝えるって難しいよね」
女「そうですね」
男「伝えるための手段て、勿論文章もあるけど」
 「表にしたり、図にしたりいろいろあって」
 「そういうときに、エクセルとかワードが必要になる」
女「そっかー、あたし使い方ばかり気にしてたけど」
 「一番いい手段を選ぶことが大切なんですね」
男「そう、触れ合って伝えるのが一番いい場合もある」
女「あら、どんなときかしら」


男「僕らの仕事は、システムを作ることなんだけど」
 「まず前提として、守らないといけないルールがあって」
 「世の中のルール、会社のルール、業務のルール、プログラムのルール、機械のルール」
 「これらルールの間も関係があるし、勿論これから作るシステムのルールにも影響を与える」
 「これらのルールは、はっきりしているからまだよくて」
 「そこに人間が絡んでくると、人間ってもやもやの塊だからさ」
 「もうどうしたらええのん?」
 「太郎さんと花子さんがいました。さぁどうでしょう?」
 「って感じだよね」
 「でも、やらないことにはおまんま食えないし」
 「そういう、ごちゃごちゃしたものを整理して表現しないといけない」
 「僕らは、その整理すること全般をモデリングって呼んでいるんだ」
 「整理するために文章を書くのであれば、それもモデリングなんだ」
 「ふー」

女「大変なんですね」
男「そうだね、ちょっと喋りすぎた」
 「ここで寝てもいいかな」
女「いいですよ。フフフ」
男「じゃぁ、少し休ませてもらうよ」
 「おやすみ siri」
女「おやすみなさいタンジ」


恥の多い生涯を送って来ました。
こんにちわ。僕です。
技術ブログを書こう!と思ったんですが、
プログラマー見習い補佐の僕は大層な技術を持ちあわせておらんのですよ。

ですので、自分への戒めと同じ過ちを繰り返さん為に
ほぼ自分のためだけに筆を取らせてもらいます。

先週の土日にかけて業務外で実装してたんですが、
JQueryにとってもハマっちゃいました。
JQueryってJSで動的に生成したhtmlタグには
ひと手間加えないとちゃんと動作しないんですね。。。

<html>
<head>
省略
</head>
<body>
   <div id="hoge">ほげぇ~</div>←動的に生成されたhtmlタグ
   <script type="text/javascript" src="ほにゃらら/jquery.js"/>
   <script type="text/javascript">
       $("#hoge").click(function(){なんかいろいろな命令});←動いてくんない
   </script>
<body>
</html>

動的に生成されたhtmlタグでjqueryのエフェクトを用いたときは
liveメソッドを使えば簡単に行えるんですね。。。
http://semooh.jp/jquery/api/events/live/type,+fn/

知らなかった。まぁ、他にもいろいろやり方はあるんでしょうけどね。

人生休むまもなく日々勉強とは頭では分かっているんですが、
実際こんな簡単なこともわからないとなると凹みますね。。。
以後、気をつけます。

はじめまして。入社一年目、サービス開発事業部 営業担当、新卒採用担当の大熊です。


営業配属になったのは約1ヶ月前ということもあり、文字通り右も左も分からない状態で、
日々先輩方の仕事を観察し学びながら邁進しております。

本来こちらのブログは技術やデザインに関する情報をお届けするブログなのですが、
今回は本筋とはズレて、「イマドキの就職活動」に関して触れたいと思います。
技術情報を期待されていた方には大変申し訳ございませんが、今回はご容赦いただければと思います。

私は今年、採用説明会やインターンシップ等を通して、2012年卒や2013年卒の数多くの学生と実際にお会いさせていただき、直接話をうかがいました

その中で感じたのは、
FacebookやTwitterを就活に活用している人が意外に少ないということです。

最近「ソーシャルリクルーティング、
ソー活」という言葉を採用会社の方からもよく話を聞いていたのですが、
ソーシャルメディアを利用して就職活動をしている学生は、まだまだ一部だというのです。

企業側もソーシャルリクルーティング活動を本格的に行っている所は、一握りですので当然といえば当然なのかもしれません。実際、大企業を受ける際にはFacebookよりもリクナビやマイナビなどといった媒体をメインに使うほうが断然効率は良いでしょう。(少なくとも現時点では…)

このように、まだまだ言葉だけが先行している感は否めませんが、私の経験談なども交えて今回はソーシャルメデイアの就職活動における活用法を一つ提案したいと思います。特にベンチャー企業や中小企業を受ける際には、このFacebookやTwitterをメインに活用することをオススメします。

私が考えるソーシャルメディアの有効な活用方法の一つは何と言っても下記です。


「自分が
興味のある人に直接コンタクトが取れる


私は2011年度入社ですので、就職活動をしていた時期は1~2年前です。
facebookは登録しているだけでほとんど放置状態でしたが、Twitterは日常的に使用していました。
もちろん、Twitterの使用目的も就職活動のためということではなく、くだらないつぶやきをしては自己満足に浸っているような残念な使い方でした。

ですが、自分のタイムライン上に興味深いツイートがフォロワーのリツイートなどを通して次第に並ぶようになり、その発言者は何をやっている方なんだろうと思い、調べてみて「会ってみたい!」と思ったらTwitterでリプライをしてみたり、facebookで調べてメッセージを送ったりしてコンタクトを取っておりました。

新卒募集の予定が書かれていない企業であっても、上記の方法でアプローチを取って社員の方とお会いしていました。ベンチャー企業の社員の方と実際に会って話を聞いて、他のベンチャー企業の情報なんかを聞き出したりして、またその社員の方にTwitterやfacebookでアプローチするなんていうこともやっておりました。


ベンチャー企業や中小企業の情報はあまりネット上には公開されていないので、やはり実際に現場で働いている方から生の情報を聞いてみるのが一番です。
さすがに、膨大な人数が受ける大企業には通用しない方法だとは思いますが。ベンチャー企業への就職を考えている方は是非試してみてください。学生からのアプローチを無下に断るような企業の方はほとんどおりません。逆に、企業の社長や人事担当者は誰からでもメッセージを受けられるように設定しておくべきでしょう。

ということで興味がある企業を見つけたら、たとえ新卒募集を行っていなかったとしても、ソーシャルメディアを活用して社員の方にアプローチを取ってみましょう。もちろん、相手の方には突然連絡を送ることになるので、失礼のないように礼儀だけには気をつけて下さい!


また、モンスター・ラボでは現在facebook採用ページを企画・作成中の段階です。学生がよりモンスター・ラボの社員にコンタクトしやすい仕組を作ることを構想しておりますので、完成を楽しみに待っていただければと思います!

それでは、また!!
はじめまして。新米スマートフォンのプログラマーの李です。

ベテランのプログラマーには物足りない内容になるかもしれませんが、新米スマートフォンプログラマーの皆さんのご参考になれば幸いです。

スマートフォンアプリと言えば、ソーシャル性。ソーシャル性と言えばSNS。そしてSNSといえば、Twitter、Facebook、mixiが浮かびます。
それで、私もすこし今話題なSNSとの連携サービス(通称OpenID)についてすこし書きたいと思います。

ウィキで
OpenIDの解釈は下記のリンクになります。
http://ja.wikipedia.org/wiki/OpenID

分かりやすく説明すると、「今有名なSNSなどのアカウントを使って、登録なしで他の新規サービスを使う」のことを指しています。
例えば、FaceBookのIDを使って、ソーシャルグルメアプリ「レッティ(Retty)」に登録なしでログインすることができます。

では、いよいよ本番です。
ここは、IpnoneアプリとTwitterを例としてご説明します。
xAuthを使って簡単にOpenID化できます。
XauthTwitterEngineというライブラリを使って簡単にxAuthを使えます。

大雑把な流れをご説明します。

▼アプリをTwitterに登録
 http://twitter.com/oauth_clients/new で開発中のアプリTwitterに登録し(Twitterアカウントが必要です)、Consumer key や Consumer secret など開発用な重要情報を取得します。
api@twitter.comに自分のアプリ情報URL、Twitterアカウントを記入し、xAuthを有効にして欲しいという旨のメールを送ると、一日か二日後、xAuthは使えるようになったという返事メールが来ると思います

▼ XauthTwitterEngineをプロジェクトに導入
https://github.com/aral/XAuthTwitterEngineXAuthTwitterEngineDemoをダウンロードして、XAuthTwitterEngineDemo.xcodeprojをXcodeで開きます。
その中のLibraries/Libraries & Headersの下のすべてのファイルを他のプロジェクトの同じ場所にコピーすれば、導入が完了します。

▼XauthでOpen ID機能を実装
■初期値を設定

 twitterEngine.consumerKey = kOAuthConsumerKey;

 twitterEngine.consumerSecret = kOAuthConsumerSecret; 


 アクセストークンを取得
NSString *username = @"monstar@twitter";
NSString *password = @"monstarTwitter"
 [twitterEngineexchangeAccessTokenForUsername: username
 password:password];   

 アクセストークンを一回取得できたら、cachedTwitterXAuthAccessTokenStringForUsernameでアクセストークンをキャッシュに保存しますので、cachedTwitterXAuthAccessTokenStringForUsernameを実装

- (NSString *)cachedTwitterXAuthAccessTokenStringForUsername:(NSString *)username {

NSString *accessTokenString = [[NSUserDefaults standardUserDefaultsobjectForKey:kCachedXAuthAccessTokenStringKey];

LOG(@"About to return access token string: %@", accessTokenString);

return accessTokenString;

}


■アクセストークンの取得の結果は「成功→ storeCachedTwitterXAuthAccessTokenString」、「失敗→ twitterXAuthConnectionDidFailWithError」と分けられているので、
storeCachedTwitterXAuthAccessTokenStringとtwitterXAuthConnectionDidFailWithErrorを実装

- (void) storeCachedTwitterXAuthAccessTokenString: (NSString *)tokenString forUsername:(NSString *)username
{
	[[NSUserDefaults standardUserDefaults] setObject:tokenString forKey:kCachedXAuthAccessTokenStringKey];
	//ここでアクセストークンをキャッシュに保存}
- (void) twitterXAuthConnectionDidFailWithError: (NSError *)error;
{
	//必要な業務
NSLog(@"Error: %@", error);
}

■ツイート
        NSString *tweetText = @"Monstar's Open ID Tweet!";
[self.twitterEngine sendUpdate:tweetText];

以上の要素だけで、iphoneアプリとTwitterのツイート連携ができました。アカウントを多く持つのも忘れやすいです。xAuthを使えば、スマートフォンアプリにOpenIDのサービスを手軽に提供できますので、皆さんもぜひやってみてください。