KLab若手エンジニアの これなぁに?

KLab株式会社の若手エンジニアによる技術ブログです。phpやRubyなどの汎用LLやJavaScript/actionScript等のクライアントサイドの内容、MySQL等のデータベース、その他フレームワークまで幅広く面白い情報を発信します。

2010年04月

iPadがやって来た ヤア!ヤア!ヤア!

こんにちは!takei-hでっす! 弊社社長の真田が、アメリカのお土産としてiPadを買ってきてくれました!! ありがとうございます!>真田社長


↑iPadに群がるKLab若手メンバー 無線LANは使ってはいけないということで、とりあえずメモ帳で遊んでみたりしました。 iPhoneとは動きの滑らかさが桁違いですね!画面も大きいし!いいなーiPad!!私もほしい! みんなでわいわいiPadを触る中、iPadは俺のものだ!といわんばかりに強引にiPadを奪いとり逃げようとする暴君yoshida-kが現れた!


↑iPadをyoshida-kに奪い取られ、涙目なamo-k みんなで仲良くiPadを使いましょう! KLabではiPad/iPhoneアプリ開発もやっていますー! iPad/iPhoneに興味があるエンジニアも大募集中!→エンジニア採用

カヤック様×KLab合同勉強会を開催しました

こんにちは!takei-hです。 4月になりましたね!4月は希望あふれる出会いの季節。 我々KLab若手エンジニアは、4/16にカヤック様と合同で勉強会を開催いたしました。 その勉強会で、素敵な人や技術との出会いがありましたので報告いたします! まずはじめはKLabセッションです。

三浦:DSAS周りのお話





日頃よりDSASに携わる三浦は今回、DSASにおけるWebサーバやDBサーバの構成、Gangliaでの情報可視化の重要性に言及しました。そのほか、ソーシャルアプリをホスティングするDSAS Hosting for Socialならではの苦労話も盛りだくさんでした!

高田:KLab Social Game Platform ~Symfony1.4活用事例~

2番手の高田は、「KLab Social Game Platform ~Symfony1.4活用事例~」と題した発表を行いました。




KLab Social Game Platformとは、頑健なソーシャルアプリを素早く作れるプラットフォームを目指して開発されているライブラリ群です。このプラットフォームはSymfony1.4をベースで開発されており、どのようにSymfonyを活用しているかを解説させていただきました。
続きましては、カヤック様から3つの発表です。

CTO貝畑様:KAYACのクリエーターのありかたについて



数々の面白いアプリケーションやサービスを生み出し続けているカヤッククリエーターのありかたについて、自身もクリエーターであり、企画から開発まですべてこなすCTO貝畑様から発表頂きました。 企画は企画屋に、開発はプログラマーに、という考え方では、プログラマは企画の言われたとおりに実装するという受身な姿勢になりがちです。作業者ではなくひとりのクリエータとして、もっと考えてアーキテクトできるエンジニアになろう!

外村様:HTML5 + CSS3周りの話



発表資料はこちら デモはこちら HTML5やCSS3のあんな機能やこんな機能のデモが目白押し! ブラウザによって対応しているAPIが異なるため、FireFox、Opera、Chromeの3つのブラウザを渡り歩きながら解説していただきました。HTML5が全体に浸透するにはまだまだ時間がかかるようですが、今から抑えておくべきですね!

嶋田様:携帯向けFlash周りの話



モバゲーアプリ「英雄になりたい」のflashアニメーション担当の嶋田様から、flashliteの軽量化について解説頂きました。 パスを何個つかっているかを意識してflashを軽くするだけでなく、flashの特性検証の結果を元に、デザイナにflashの特性に意識させているとのことです。 また、まるでカメラアングルがぐるぐる変わる3次元的アニメーションを2次元の画像から創り出すという、超絶テクニックは感動ものでした。(flashを実行しつつの発表だったため、発表内容をお見せできないのが残念です!) カヤックらしさが随所に出ていた今回の勉強会。とても刺激的でした! カヤックの皆様、今回はどうもありがとうございました! # KLabでは今後もこのような勉強会を実施していきたいと考えております! # 興味を持たれた方は、是非お気軽にお問い合わせください。 # エンジニアも大募集中です!-> エンジニア採用

エンジニア採用

KLabでは若手エンジニアと一緒に開発してくれる人を募集しています! 当ブログを読んでくれている人、また僕たちの活動に共感してくれる人と是非一緒にコードを書きたいと考えています!! KLabのビジョンは以下のとおりです。 IT業界で一番ワクワクできて、一番成長できて、一番利益を出す これは開発部でも同じで、特にワクワクと成長にはこだわっています。 是非、KLab若手エンジニアと一緒にワクワクしながら成長しましょう! 興味を持っていただけた方は以下のリンクからご応募お願いします! 新卒採用 中途採用

PHPでSessionストレージにmemcachedを使った場合の接続ってデフォルトでpersistent?

お久しぶりです、amo-kです! 先日、若手インフラエンジニアにPHPでSessionストレージにmemcachedを使った場合 接続はデフォルトではpersistentなのかそうで無いのかを聞かれました。 最近ほとんどコード書けてないのですが、コードを読む機会ができましたw 彼には、そのWebアプリで利用している拡張モジュールのソースコードを読むのが一番早いよと言って僕はMTGに行ってしまったのですが、さすがに愛想無しだと思ったのと、久しぶりにコードと戯れようと思い、自分で見てみる事にしました。 さて、ということで以下にレポートします! そのWebアプリではPECL::memcache 2.2.1を利用しているようでした。 まずはソースコードの入手ですね。
$ wget http://pecl.php.net/get/memcache-2.2.1.tgz
$ tar xvzf memcache-2.2.1.tgz
$ cd memcache-2.2.1
ぉっと、memcache_session.c コイツぽいぞ〜 はいはい、ありましたありました!!
PS_OPEN_FUNC(memcache)
{
...
        if (i < j) {
            int persistent = 0, weight = 1, timeout = MMC_DEFAULT_TIMEOUT, retry_interval = MMC_DEFAULT_RETRY;

...
                if (zend_hash_find(Z_ARRVAL_P(params), "persistent", sizeof("persistent"), (void **) ¶m) != FAILURE) {
                    convert_to_boolean_ex(param);
                    persistent = Z_BVAL_PP(param);
                }
...
}
一旦 0 で初期化して、指定されていれば代入という事ですね。 つまりデフォルトではpersistentでないということですね。 めでたしめでたしw 便利ツール(OSSのフレームワークや各種ツール)を使っていて問題が起こった時や不明点があった際に皆さんどうしますか? Google検索して解決しなければ諦めるとか言わないで下さいね!! 特にOSSの場合はソースコードを取得出来ますのでWebに情報が無くとも、一番正確な情報(ソースコード)を確認すれば解決できるハズです! KLab若手エンジニアは日々新たな技術と戯れる一方で、しっかりと技術の本質も追求しております。 便利ツールがたくさんあってWebにたくさん情報がある中、我々は「Google検索やツール使いの達人」に成り下がらず、技術者として発信/成長して行きますのでよろしくお願いします!!

iPhone/iPadでSVG表示

こんにちは、気持ちは若手のponpoko1968です。 iPhoneアプリを作っていて、ロゴやアイコンなどの画像を表示したい事って、多いですよね。そういった場合、ラスター画像データは簡単に表示できますが、画面を拡大させたときに、画像が荒れてしまいます。 そこで、拡大しても画像が荒れない、illustratorやInkScapeなどで作成されたストロークデータを使いたいと思いました。 ところが、ストロークデータのファイル形式のなかでも標準化されている「SVG」形式のファイルを使おうと思ったのですが、意外と目的に合ったライブラリが見つからなかったりします。 iPhoneではUIWebViewというWebKitをラップしたビュー部品が用意されており、WebKitには、「SVG」というストロークデータの画像を表示する機能が備わっています。 そこで、SVGの表示にUIWebViewが使えないか試してみました。 方針としては、画面全体を表すビューを作成し、その子ビューとしてUIWebViewを配置することにします。画面全体のビューのviewDidLoadに処理を加え、ビューがロードされた時点でSVG表示用のビューを生成します。

  NSData* image = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Logo" ofType:@"svg"]];
まず、SVGファイルのデータをNSDataに読み込みます。

  UIWebView* logoView = [[UIWebView alloc] init];
  [logoView loadData:image MIMEType:@"image/svg+xml"  textEncodingName:@"utf-8"  baseURL:nil];
UIWebViewを作成し、SVGデータを設定します。これだけでSVGデータは表示可能なのですが、このままだとUIWebViewの背景色でUIWebViewの領域が白く塗りつぶされてしまいます。 screenshot-01

  logoView.opaque = NO;
  logoView.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
の2行を追加すると、ロゴ画像の背景部分が透過して表示されます。 screenshot-02


  [self.view addSubview:logoView];

ロゴのUIWebViewをサブビューにして完了です。 ※いろいろ実験したのですが、残念なことに、このビューに対してCore Animationの機能を用いて拡大縮小アニメーション操作を加えても、最初にラスタライズされた画像イメージをそのまま操作対象としてしまい、キレイに表示されません。 UIWebViewにはstringByEvaluatingJavaScriptFromString:という、外部からJavaScript文字列を適用するメソッドが用意されているので、JavaScriptでUIWebView内部の画像を操作することで拡大縮小には対応出来そうです。 JavaScriptを有効にするにはUIWebViewの内容をhtmlドキュメントとして認識させる必要があるため、SVGの読み込みの部分を下記のように変更します。

  NSString *imagePath = [[NSBundle mainBundle] resourcePath];
  imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
  imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
  NSString *HTMLData = @"<img src="\"Logo.svg\""  />";
  NSString *urlString = [NSString stringWithFormat:@"file:/%@//",imagePath];
  NSLog(urlString);
  [logoView loadHTMLString:HTMLData baseURL:[NSURL URLWithString: urlString]];
 KLab若手エンジニアブログのフッター