サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
lab.adn-mobasia.net
こんにちは、弊社で1ヶ月半ほどインターンとして働いているt_sakaiです。 インターンシップの課題として、メモリ使用量が大きくて将来問題になりそうなバッチ処理をスケールアウトできるように書き換えるという課題に取り組みました。 解決手段として流行りのApache Sparkを使ってみたので、本記事ではこれについて書こうと思います。 本記事で使っている言語はScalaです。 前編ではSparkを選んだ理由とSparkの基礎について説明したので、後編では既存プログラムをSpark用に書き換える際の問題と解決方法について説明します。 本記事で紹介する内容 前編 今回解決したかった課題 なぜSparkを選んだのか RDDについて 簡単なプログラムをSparkで書き換える 後編(本記事) 本番プログラムをSpark用に書き換える はまりどころ 本番プログラムをSpark用に書き換える モデル(DB)
こんにちは。新参者のsamです。 最近、都内を離れると行くところ行くところ、雨に見舞われ、友人にも私が雨男という認識が何故か広まって困っています。 先日は宮崎に帰省したところ、台風19号に直撃されて周りの友人から何故か非難を浴びるという理不尽を受けました。 雨男の汚名返上できる方法をご存知の方はぜひ教えてください。。 PHP5.5で導入されたジェネレータ さて、少し前の話題で恐縮ですが、PHPでは5.5からジェネレータという機能が新たに追加されました。 同様の記事は巷に溢れかえっていますが、自分の学習と備忘録もかねて実装方法や特徴などをまとめてみました。 ジェネレータとは、foreach文を使って連続した値や配列などの値の集合に対して順序に沿って処理(イテレーション)することができる新たな言語構造です。言葉だけでは理解しづらいため順に説明します。 たとえばnlコマンドのような、パラメータで
こんにちは、nend SDK担当のt_kinamiです。 本日発売されたRPGツクールMVが、スマホ用にアプリを作成できる! ということで、早速nendを組み込んでみました。 どうせならと思い、ゲームと相性の良いインタースティシャル広告を出してみました。 広告を表示するまでに、大きく分けて3つの処理が必要となります。 ゲーム内イベントで特定のURLスキームにアクセス cordovaでURLをフック SDKを使ってインタースティシャルを表示 1.ゲーム内イベントで特定のURLスキームにアクセス RPGツクールMV上で広告を表示するイベントを作ります。 今回は適当に人を配置して、接触したら広告を表示するイベントを作ります。 ・イベントを作って ・”上級“の”スクリプト“を選んで ・スクリプトを書きます window.location.href = 'nendShowInterstitial:/
初めまして、弊社で1ヶ月半ほどインターンとして働いているt_sakaiです。 インターンシップの課題として、メモリ使用量が大きくて将来問題になりそうなバッチ処理をスケールアウトできるように書き換えるという課題に取り組みました。 解決手段として流行りのApache Sparkを使ってみたので、本記事ではこれについて書こうと思います。 本記事で使っている言語はScalaです。 Scalaについては、弊社のk_oomoriが書いた記事があるのでよろしければご覧ください。 紹介する内容 前編(本記事) 今回解決したかった課題 なぜSparkを選んだのか RDDについて 簡単なプログラムをSparkで書き換える 後編 本番プログラムをSpark用に書き換える はまりどころ 紹介しない内容 Hadoopとの比較 Spark環境の構築 性能チューニング 解決したかった課題 弊社のScalaで書かれたある
この記事はTreasure Data Advent Calendar 11日目の記事です。 こんにちは、データマイニングチームのy_kawasakiです。(毎回所属が変わってます!) 最近、大量のデータを前に途方にくれていました。TreasureData(以下TD)という、武器を手に入れて、がっつりと戦っているところです。 TDにはHivemallという、Hive上で動くscalable machine learning libraryが実装されています。Hivemallの使い方はgithubのwikiによくまとめられているのですが、それは、あくまで、Hive上で動かすことを前提に書かれています。今回は、TD上で動いているHivemallを使いたいため、一部、変更したりする必要があります。 とりあえず、手を動かしたいということで、どこのご家庭にも常備してある、あやめのデータを使いたいと思い
どうもどうも お久しぶりです。 最近、上司の策略により 新卒向け説明会に登壇させられている t_yamanakaです。 前回までのあらすじ 前回の記事ではvimのチュートリアルについて書きました。 もう1年弱もvim記事書いてなかったんですね… 先輩に某仕事しない漫画家かとツッコまれてしまいました。。 とはいえ前回から時は経ち、 インフラ周りの仕事もやってみたりするうちに ちゃんとvimと信仰 親交を深めていました。 今回は 僕は自分のローカルPC環境上で 開発を行なう際はIDE(Netbeans)を用いているのですが、 せっかくサーバ上での作業などでvim操作に慣れても ローカルで開発を行なうとvimへの親しみが薄れてしまいます。 なんとかならないものかと思ったときに出会ったのが 今回紹介するNetbeansプラグインである「jvi」です。 では早速インストール方法を紹介します。 インス
はじめに はじめまして、nendでインフラ担当をしているn_watanabeです。 今回はAWS EC2でVIP(仮想IP)を使ったActive/Standby構成を組む方法を紹介します。 技術要素としては、AWS EC2(AmazonLinux) + Pacemaker + Corosyncとなります。 Pacemaker構成をオンプレミスで使う場合、IPアドレスはOS上で設定すればいいだけなのですが、 AWSの場合はAWSのシステムに対して設定してあげる必要もあります。 IPアドレスをOSに設定しただけではパケットはインスタンスに到達しません。 注意点として、今回のようにEIPではなくプライベートアドレスを切り替える方式の場合は、 2台が同一Subnetにいる必要があるのでMulitiAZできないという制約があります。 ちなみにちょっとカッコよくいうと、CDP:Floating IPパ
Nagiosマン、Nagiosガールのみなさん、こんにちは。 あなたは何台のNagiosを見てますか? どうやら私の部署では両手で足りない数のNagiosを抱えているということがわかりました。 Nagiosも数が増えてくると管理が大変で、こんな有様になりがちです。 最近これをこんな状態にしてだいぶ楽になりました。 こんな素晴らしいThrukの導入方法を紹介します。 Thrukとは 公式の説明は、Thruk Introductionにあります。 (日本語訳) Thrukは多種類の監視サービスのWebインターフェースとなるものです。 現在は、Livestatus APIを通して、Naemon,Nagios,Ichinga,Shinkenをサポートしています。 『ドロップイン』であるようにデザインされて、大規模環境およびユーザビリティ向上のためにオリジナルのほとんど100%の機能をカバーし、さら
開発環境 Xcode 6.1 iOS 8.1 Google Mobile Ads SDK iOS ver6.12.0 NendSDK_iOS-2.5.5 1. 新規プロジェクトを作成する XcodeのメニューからFile>New>Project>「Single View Application」を選択。 Language: の選択ではSwiftを選択します。 2. Google Mobile Ads SDKをプロジェクトに追加する 以下リンクの公式ガイドに従ってSDKのダウンロードと導入まで行います。 https://developers.google.com/mobile-ads-sdk/download https://developers.google.com/mobile-ads-sdk/docs/#ios 必要なフレームワークやOther Linker Flagsに-ObjCの追
Introduction こんにちは、k_oomoriです。前回は、非負値行列因子分解という手法によって実際の広告配信結果から関連性があると思われる広告キャンペーンのペアたちを抽出する方法を紹介しました。しかし、そこに現れるキャンペーンは全てが互いに関連し合っているわけではありません。おそらくはいくつかの離散的な“島”(連結成分)に分かれて存在しています(アイドル系の島、ソシャゲ系の島など)。そこで今回はキャンペーンの集合がいくつの島に分かれるのかを機械的に調べる方法について見ていきます。これにより、行列の固有値問題という純数学的・抽象的な概念も使い方によっては実際のビジネスシーンにおいて有用な情報を提供しうるということを示したいと思います。 なお、この記事をPDFで読みたい方はこちらからどうぞ。 隣接行列 前回のエントリでキャンペーン間の関連性を調べることができたので、まずはこれを隣接行
ごきげんよう。k_oomoriです。業務でデータノード間の関連性を追いかけるようなクエリが投げたくなったので、グラフデータベースについて調べてみました。ここではネイティブなグラフDBであるNeo4j、本来はRDBであるMariaDBのグラフ計算用エンジンとして開発されたOQGRAPH、それとお馴染みのInnoDBを直接グラフ問題に適用した例を試してみようと思います。 なお、検証に用いたサーバは全てAWSのc3.large EC2インスタンス(CPU: Intel Xeonプロセッサ2.8GHz×2, メモリ: 4GB)で、OSはUbuntu 14.04になります。 インストール Neo4jはNeo Technology社が開発しているJavaで実装されたグラフデータベースソフトウェアであり、NoSQLデータベースに分類されます。オープンソースのコミュニティ版と商用パッケージ版のデュアルライ
初めましてこんにちは!やっと右肘骨折のためのギプスが取れましたma_satoです。 ギプスが取れても手首と肘の関節がガチガチに固まっているので、まだまだ通院生活は続きそうですが。。 さて、突然ですがコマンドって打つの面倒ですよね!この1ヶ月間、利き手がギプスで固定されていて使えなかったので、コマンドを打つのが特に面倒で面倒で・・・。 そんな面倒くさがりな人向けに、今回はぼくの環境で設定している、linuxコマンドの便利なエイリアスを紹介したいと思います。 どうやって設定するの? bash環境では、ホームディレクトリにある.bash_profileにエイリアスの設定を記述しておくことで、特定のコマンドに名前を付けることができます。よく使うコマンドのエイリアスを登録しておくと、少ないタイプ数でコマンドが実行できて便利というわけです。 設定は簡単です。以下の通りエイリアス名とコマンドを記述するだ
はじめまして。AndroidやらiOSやらUnityやらのk_manabeです。 前々回のエントリーでEclipseが話題に上がっていたので、それに便乗して今回もEclipseの話をしたいと思います。 Eclipseのテーマをカスタマイズする さて、皆さんはEclipse等の開発環境を使う際、エディタの背景色や文字色をどのように設定されていますか? 私はデフォルトの白背景のままだと長時間見ていた時に目が疲れてきてしまうので、 基本的に黒系の暗めの色にカスタマイズして使うようにしています。 そこで今回は、これまで使ってきた&現在使っているオススメのEclipseのテーマ達を、 独断と偏見を交えながら紹介させていただきたいと思います。 環境 Mac OS X 10.9.3 Eclipse 4.3.2 Kepler Eclipse Color Themeのインストール まずは、Eclipse M
y_yamadaです。最近、二つのことが気になっています。 一つは社内のドリンクサーバーの横に設置されている机にいつの頃から100円玉が置いてあって、一日たって三日たってもそのままで持ち主も現れず誰のかなあと。 それが昨日、消えていました。きっと落とし主が見つかったんだな、または熱射病手前の喉の渇いた人がジュースを買ったんだ、もう迷子の100円玉君は家に帰ったんだなと心が晴れ晴れしました。 ちなみに社内に設置してある自動販売機で1番安い飲み物はジョージアエメラルドマウンテンブレンドで90円、またSuica決済も可能でした。これからの暑い季節に外回りの営業さんも大満足ですね。 さて、気になっていた二つ目はCygwinでもRuby on Railsしたい!です。 ファンコミでは社内から社外へ通信するにはプロキシーを通さないといけないのでまずはその設定からです。 基本的に社内のシステム管理者から
こんにちは、k_oomoriです。今回は、タイトルの通りプログラミング言語Scalaについて書いてみたいと思います。 1/俯瞰風景 早速ですが、Scalaの特徴を俯瞰していきましょう。 ・オブジェクト指向と関数型のハイブリッド言語である Scalaは、関数型言語とオブジェクト指向(命令型)言語の特徴を統合したマルチパラダイムなプログラミング言語です。どちらのスタイルを用いるかはプログラマに委ねられており、関数型言語にすでに親しんでいる人はvalやイミュータブル(不変)オブジェクトを用いて関数型の記述を行えばいいし、命令型の方が適している問題に対してはvarとミュータブル(可変)オブジェクトによる命令型の書き方ができます。 ・静的 型月 型付け言語である 静的な型システムを持っているため、コンパイル時(というかIDEの力を借りればコーディング時)に型に関するエラーを確実に検出できます。さらに
こんにちは!こんばんは! SDK班所属、「うどんかそばかを選べ」と言われたら蕎麦派、 e です。 以前、iOSアプリ向けにWebViewを利用した広告掲載について記事を書かせて頂きましたが、今回はAndroidアプリでの掲載方法について書きたいと思います。 お・さ・ら・い・です iOSアプリでnendSDKが使えなくてもnend広告を表示する方法 http://lab.adn-mobasia.net/?p=806 開発環境でSDKが使えない! androidアプリ開発においてnendSDKが利用できないケース自体は、iOSに比べると少ないとは思いますが、昨今では、ネイティブではない開発環境を使ってスマートフォン向けアプリケーションをつくる方法もたくさん提供されています。WEB上で手軽に開発が出来るようなサービスを見かけることも珍しくはなくなってきました。そのような環境ではネイティブ向けのS
こんにちは、ADN事業部のt_oookaです。 スマートフォン向けアドネットワークサービスnend(ネンド)のインフラを担当 させていただいています。 今回は、初回ということで検証作業等でいつもお世話になっているKVMについて 触れてみようと思います。 仮想マシンの作成 さしあたりサーバ(物理)に「CentOS6.3」がインストールされており、仮想化関連の パッケージがインストール済みの状態を前提に進めていきます。 # virsh list --all Id Name State —————————————————- 現時点では、仮想マシンが作成されていない状態ですので、最初にテンプレート となる仮想マシンを作成します。 # virt-install
Introduction はじめまして、ADN事業部所属エンジニアのk_oomoriと申します。業務ではアドネットワークサービスnend(ネンド)においてPHPやJavaScriptのプログラミングからサーバソフトウェアあたりまでの領域を担当させていただいております。 さて最初の投稿となる今回は、PHPにおけるプロセスのフォーク(fork)を扱おうと思います。 フォークとは、簡単に言うと最初に起動したプロセス(以下親プロセスと言います)が自身の複製として子プロセスを生成し、複数プロセスで並列処理を行うというものです。 Perlなどでは結構よく使われているようですが、PHPではあまり聞いたことがなかったので、この機会に紹介したいと思います。 !!!注意!!! PHPでfork等のプロセス制御機能を利用するためには、マニュアルに明記されているとおり、configureオプションを指定してPHP
最初に 前回の投稿から早くも再投稿に選抜されてしまいましたtosh01です。 今回は、なぜか進展が気になっていたWebRTC (Web Real-Time Communication)に関して書かせていただきます。 WebRTCですが、Wikipediaには WebRTC (Web Real-Time Communication)とはWorld Wide Web Consortium (W3C)が提唱するリアルタイムコミュニケーション用の(Javascript)APIの定義で、プラグイン無しでウェブブラウザ間のボイスチャット、ビデオチャット、ファイル共有ができる。 とありますが、簡単に言えばウェブブラウザ間でのP2Pによる双方向通信でWebSocketと違い、データ通信時にサーバを介さないクライアント端末間の相互接続を可能にする技術ということで、まだ対応ブラウザも少ないにも関わらず、今年に
Introduction こんにちは、k_oomoriです。今回は非負値行列因子分解 (Non-negative Matrix Factorization, 略してNMF) を用いたデータの解析について触れてみたいと思います。 まず最初に用語の定義として、「非負値行列」とは全ての要素が非負値(0以上の実数)であるような行列を指すこととします。これを用いると、NMFとは「与えられた非負値行列を2つの非負値行列との積に(近似的に)分解するアルゴリズム」 と表現できます。これにより、なんとの中に潜んでいる特徴を抽出することができるというのです!これについては後ほど説明します。 ひとまずはの具体例を見てみましょう。いくつかのニュース記事の中に特定の単語がそれぞれ何回現れるかを数えるという状況を想像してください。例えば記事が3つ、対象とする単語が5つの場合、出現回数を次のように並べることができます。
最初に Nendを担当させて頂いてるtosh01です。 最初に質問なのですが、MySQLにおいて、あなたはストアドプロシージャをどのようなケースで利用されたことがありますでしょうか? 自身の経験が業務系にわりと寄っており、DBへのクエリはすべてストアドプロシージャに持たせてしまうことも多く、バッチや計算処理を要求される際によく使用していたせいか、使いたい気持ちがあります。 とはいうものの、それらは他のDB製品での話であり、MySQLに関しては過去にそれほど使う機会もなく現在お勉強中、もちろんMySQLでストアドプロシージャなど使ったことがない為、質問させていただいてます。 MySQL 5.0から実装されているらしいストアドプロシージャですが、やはりアプリ側のプログラムからの問合せだけの場合より、MySQLにおいてもDB操作の幅が広がりそうで、MySQLでも状況によっては役に立つ場面がありそ
はじめに こんにちは@kou_hoshです。 最近はCakePHPのShellと戯れる機会が多いです。 フロントエンド側と比較すると地味目ではありますが 機能が充実していてとても便利だなと改めて思います。 というわけで今回はCakePHPのShellへのオプションの渡し方をやっていこうと思います。 (CakePHP 2.x系です) 基本的な使い方 基本的な実装方法は下記のような形です。 getOptionParser()メソッドをオーバライドしてその中でオプション設定を加えていきます。 ・ソース <?php class SampleShell extends AppShell { public function main() { var_dump($this->params['sample']); } public function getOptionParser() { $parser
下2つがGTID使う場合必須です MySQL起動 shell> /etc/init.d/mysql start rootユーザのパスなどを設定するスクリプトを実行 shell> mysql_secure_installation 「ERROR 1372 (HY000) at line 1: Password hash should be a 41-digit hexadecimal number」 な人はmy.cnfにold_passwords=1が入っているかもしれないのでコメントアウトしてmysqlを再起動してください 旧バージョンからアップグレードの人はmysql_upgrade必要かも 自動起動の設定 shell> chkconfig --add mysql shell> chkconfig mysql on レプリケーション用のユーザを作成 面倒なので3つのサーバ間なら誰がどこか
こんにちは、ADN事業部のt_oookaです。 前回は、virt-installコマンドで仮想マシンを作成し、virt-cloneコマンドにて 仮想マシンの複製を行う方法について記載しました。 今回は、複製する操作をもう少し効率化する方法について触れてみたいと 思います。 「libguestfs」を使用する virt-cloneコマンドにより複製を実行する都度、複製を行った仮想マシンへ コンソール接続を行うのは、複製する仮想マシンが多くなるとちょっとした 作業になるので、この部分の効率化を行います。 「libguestfs」パッケージのインストール # yum install libguestfs libguestfs-tools libguestfs-tools-c 「virt-edit」で複製した仮想マシンの設定を直接変更する 最初に、前回と同様に「virt-clone」コマンドにより
Introduction – Hadoopとは? こんにちは、k_oomoriです。今回は、オープンソースミドルウェアのApache Hadoopを取り上げたいと思います。 コンピュータの性能は日々進化しているとはいえ、1台のマシンの性能にはおのずと限界があります。また、その時々で常に最高性能のマシンを維持していこうとすると莫大なコストがかかってしまいます。そこで登場するのが分散処理という考え方です。1台1台は特に高性能ではないマシンでも多数並べて処理を同時並行で行うことにより、全体の処理性能を上げようというアプローチです。この方法では性能が足りなくなった場合にはマシンを追加することで容易に性能向上ができる反面、分散処理の実装そのものが難しいという問題がありました。例えば、処理の振り分けアルゴリズムやサーバの死活監視、結果の集約など、考えなければならないことがいくつもあります。この分散処理
はじめまして。ADN事業部 アプリ側、主にiOS担当の e です。 今回は、iOSアプリケーション内で、nendSDKを使わずにnend広告を表示する方法について書きたいと思います。 これからの nendSDK は ”Base SDK“ が SDK6 以上に。 2013年4月現在、nend.net にて公開している iOS 向け nendSDKのバージョンはver1.3.2です。公開準備中の、SDK ver2.0(次バージョン)では、組込み時にiOS SDK6 以上の環境を必要とします。つまり、iOS SDK 5.1以下を利用してnendSDKを組込んでいるアプリについては、nendSDK ver2.0が利用出来ないことになります。 追記:あくまで「開発時のBaseSDKがiOS SDK6以上でないといけない」という意味なので、iOS6未満で動かないということではありません。デバイス側のi
ADN事業部のh_nagayamaと申します、よろしくお願いいたします。 今回は「twitter風に、スクロールした時に次のコンテンツを自動で追加表示する」 という改修を行った際に使用したjQuery.Bottomプラグインの導入例を、 いくつか調査した内容と合わせて投稿します。 ■概要 jQuery.Bottomで行っていること ・scrollイベントが発生する都度、(指定した)全体の高さと現在の位置を取得して ・現在の位置が(指定した)末尾に到達または超えた時に、bottomというイベントを発生させます ■導入手順 1. githubからpluginをダウンロード https://github.com/jimyi/jquery_bottom 2. 処理を記述 githubのdemoを参照にしています、jquery1.3.2で動作することを確認済です。 <script type="tex
このページを最初にブックマークしてみませんか?
『ADN LAB's Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く