• Karma + Coveralls で行う webpack プロジェクトのテスト

    はじめに

    みなさまはじめまして、SmartNews の井口(いのくち; @kainoque)と申します。主にサーバサイドおよび各種管理コンソールの開発を行っています。弊社における開発案件はネイティブアプリおよびそのバックエンドである各種 API サーバに関するものが大半です。一方で、社内・社外向けの各種管理画面については、Web フロントエンドに関する開発も行っています。今回は、フロントエンド開発の話題として、掲題のとおり、webpackプロジェクトのテストにまつわるあれこれをお話します。

  • データサイエンスとニュースパブリッシングの融合を目指して -- SmartNews Tech Night Vol.3

    スマートニュース株式会社でソフトウェアエンジニアをやっております、西尾と申します。自分はニュースアプリSmartNewsの配信記事を編成し、通知すべき記事を決定するアルゴリズムの開発をしています。ニュース記事の時事性・重要性・注目度などを自動的に評価するアルゴリズムを改良し、より良質な記事が配信されるようにすることが自分の役割です。現状のSmartNewsの記事編成は、専門性を持った人間による記事編成と比較してみるとまだまだ改善すべき点があり、これをいかに人間の結果に近づけ、そして越えていくか、ということに挑戦しています。

    弊社ではSmartNews Tech Nightという勉強会を定期的に開催しております。もう2ヶ月以上前となってしまいましたが、2015年8月11日に行われた第三回目の勉強会は、”Data Science for News”というサブタイトルを持たせてメディアとテクノロジーをテーマにして開催されました。僕はアルゴリズム改良のためのヒントを得るために会場の端で聴講していました。この時のメモを元に本イベントの内容をご紹介いたします。

  • 幅広いユーザーをサポートするために

    SmartNews, IncでAndroidアプリを書いている森と申します。 好きな魔法使いは心先輩とアダラパタです。

    ところで、僕が普段づかいしている携帯電話はIS03といいます。 理由はレディ・ガガが宣伝していてかっこよかったのと、5年弱使っていてまだ壊れないからです。 ですが搭載されているAndroid OSのアップデートは2.2.1(Froyo)で打ち止めとなり、使えるアプリも最近ずいぶん少なくなってしまいました。 しばらく前にもさるアプリが、起動直後Playストアに強制遷移させて端末が対応していない旨を表示する機能専用になってしまいましたが、おもしろいのでそのまま放置してあります。

  • Itamae、Auto Scaling、CodeDeployを用いてdeployフローを刷新した話。そして板前をprovisioningした話。

    はじめに

    こんにちは。スマートニュースの大平です。主にさだまさしに関するネタが切れたために、こちらのブログではしばらくご無沙汰でした。

    さだまさしといえばみなさんご存知の通り、デビュー40周年を超え、創りだされた楽曲は500曲以上、ソロコンサートの回数はゆうに4100回を超え、還暦を超えた今でも年間100回前後のコンサートを重ねる、現代歌謡界におけるレジェンド的な存在です。

    とはいえ40年の間さだまさしは常に同じ姿のまま過ごしてきた訳ではありません。たとえば、彼は声帯を痛めるなどの要因もあり今まで大きく分けて3回ほど発声方法を変えています。ここで詳述するといろいろ苦情が来そうなので短くまとめると、声帯を痛める毎に喉に負担がかからず体全体で声を出すような歌唱法に変えたため、今は昔のような高音で華麗な歌声ではないですが、オペラ歌手のような太くて堅牢な声になり、結果以前よりたくましく、還暦とは思えないペースで音楽活動を続けています。

    この例からも分かるように、コンサートという名の instance を継続的に provisioning し、楽曲というプログラムを deploy し続けるためには、その時々に応じて不断の努力と変化が必要となります。

    背景

    だいぶネタ振りに強引さがありましたが、ご了承ください。

  • PipelineDBをProductionに導入してみました。 How SmartNews Utilizes PipelineDB

    ENGLISH FOLLOWS BELOW

    こんにちは、たむたむ(@tamtam180)です。 SmartNewsでは主に広告の配信サーバを書いています。

    最近、PipelineDBというContinuous Queryをサポートする製品を導入したのでそのレポートを書きます。 なお、セットアップ方法は本家のサイトを見れば誰でも出来るので、そのあたりは割愛します。

    競合にあたる製品としては、NorikraやAzureのStream Analyticsがあり、日本のエンジニア界隈ではNorikraを好んで使用していると思います。

  • Lambda で Cache Invalidate を自動化する

    スマートニュース株式会社の尾形 (@nobu666) です。インフラ専任エンジニアが一人もいない弊社ですので、自分もインフラエンジニアと名乗らずに、飲酒系エンジニアとか言っておこうと思っております。

    さて、今回は軽めのネタをご紹介させていただこうと思います。弊社では全面的に AWS を採用しており、2015年6月に Lambda が Asia Pacific (Tokyo) のリージョンで利用可能になりましたので早速使ってみました。AWS Lambda の詳細については、製品ページをご覧ください。

    やりたいこと

    弊社ではCDNとして Amazon CloudFrontAkamai Download Delivery を併用しています。その中でも、ニュース記事のサムネイル画像なんかは Amazon S3 を Origin にして画像の配信を行っています。あまりアグレッシブに Cache してしまうと画像の差し替えがあった時に困るのと、そもそも Cache Invalidate を管理画面から手動でやらなくてはならないため面倒です。Lambda が使えるようになったので、だったら S3 にファイルが上がった時点で勝手に Cache Invalidate するようにできれば、アグレッシブな Cache を行ってもいいし、人間が行う作業も減るし一石二鳥というわけです。

    やってみる

    入門ガイドが用意されているので、基本的にそれに従って準備を進めます。

    IAMロールの設定

    以下のような感じで logs / s3 / lambda / cloudfront それぞれの権限をつけてやります。 Resource 部分の* は必要に応じて絞るなりなんなりしてください。