こんにちは。NewsPicksでソフトウェアエンジニアをしている森田です。 今回は業務の中で実際におこなった Node.js の CPU プロファイリングについてご紹介します。 なぜプロファイリングをおこなったのか プロファイリング方法 V8 simple profiler Chrome の inspect おわりに 参考文献 なぜプロファイリングをおこなったのか 現在私が運用・開発しているWebサービスの Webフロントは React で動いています。 あるとき、ありがたいことに多くのアクセスがあった際に Reactを配信するために Node.js (Express) が動いている Webサーバー のCPU利用率が異様に高くなる現象が発生しました。 より多くのリクエストを捌くためにどの処理がCPUヘビーになっているか調査をする必要がありますが、そのなかで Node.js で CPU プロ
こんにちは!はてなアプリケーションエンジニアの id:takuya-a です。 みなさんは、このような疑問をもったことはありませんか? grep はどのように文字列を検索しているのか? MeCab はどうやって辞書を高速にルックアップしているのか? パーサやコンパイラを作りたいけど、何から始めればいいのか? 本稿では、「文字列アルゴリズムとはどんなものなのか?」「なぜ重要なのか?」「何を知っておくべきか?」「どうやって勉強すればいいのか?」といった疑問にお答えしていこうと思います。 文字列アルゴリズムの意外な応用や、モチベーションを保ちやすい勉強のしかた、文字列アルゴリズムを勉強するために行った社内での取り組み、実装するときのコツといったトピックについても触れています。 このエントリは、はてなエンジニアアドベントカレンダー2016の22日目の記事です。昨日は id:syou6162 さんに
この記事は GMOアドマーケティング Advent Calendar 2019 22日目の記事です。 こんにちは。 GMOアドマーケティングのM.Nです。 弊社ではメディアの回遊性、収益性を高めるため、レコメンドウィジェットの「TAXEL」を提供しています。 今回はTAXELの回遊率を少しだけ最適化した話を紹介しようと思います。 簡単に言うと、ページを訪れたユーザーに対してどうやって興味を持ってもらえそうな記事をレコメンドするかということです。 1.はじめに まず、TAXELではレコメンド記事をどのように表示しているかを説明します。 TAXELは機械学習によって構築された複数のモデル(レコメンドモデル)があります。 レコメンドウィジェットを表示する際には、設定されたレコメンドモデルからレコメンド記事の在庫を取り出し表示します。 1つのレコメンドウィジェットには記事を複数表示でき、またTAX
詳しくは以下の公式サイトから確認してみてください。 https://help.github.com/ja/actions Action を作成する それでは早速 Actions を作成していきます。 Action は GitHub の該当の Repository の Actions メニューから追加します。 New workflow を押すと実際に作成することができます。 テンプレートのようなものがいくつか選ぶことができるようです。 今回は Set up a workflow yourself を押して一からつくってみます。 Workflow を作成すると、以下のような workflow の編集画面が表示されます。右側の Marketplace では、公開されている Actions を使用することもできます。 ここで Actions を作成して、 Start commit を押してコミット
主に仕事で、ffmpegやVLCのようなOSSを利用して、動画をデコードしたりエンコードすることがちょくちょくあるのですが、 そういうのを使ったときにMEPG-LAの保有している特許プールに突っ込むことにならないのか、気になったのでこの際ハッキリさせておくことにしました。 ffmpegの見解 MPEG-LA は、Apple、Microsoft、Fujitsu、Sony等等等といった名立たる企業が名を連ねたLLCで、MPEG2コーデック、MPEG2-Systems、H264/AVC等、動画にまつわる多数の特許を保持しています。 当然、ffmpeg等を利用して動画をデコード・エンコードできる能力を備えたソフトウェアを提供するときにも、これらの特許が問題になってくる可能性があります。 ffmpeg自体はボランティアで開発されており、MPEG-LAにライセンス料を支払う収入源があるとは思えないにも
はじめまして、Newspicksでエンジニアしています、Hoàngです。 新卒で入社し、現在はNewspicksを支えるデータ分析基盤を作っています。そのノウハウをシェアできればと思い、この記事を書きました。 なぜData lakeが必要なのか? (AWSより引用) サービスに機械学習、AIを導入したい思ったことがありますでしょうか。あるいは、ユーザーがどのようにサービスを利用しているかを分析したいと思ったことがありますか。 ユーザ分析や機械学習をするために本番のデータベースにアクセスしたり、クエリを投げたりしてはいけません。分析、機械学習の用途で本番サービスに負荷を与えると、最悪の場合本番サービスを停止させてしまうこともあります。本番データと完全に同期されたデータ基盤があれば、このような問題にも対処できます。 また、データ分析はSQLを使うのですが、SQLではDynamoDB, Mong
こんにちは、エムスリー エンジニアリンググループ AIチームに今年の2月にジョインしました河合 (@vaaaaanquish) です。 エムスリーテックブログでは今回初めての投稿で緊張しますが、お手柔らかにお願いします。 はじめに 近年、ソフトウェアエンジニアの「キーボード」への熱は高まり続けています。 昨年には、DMMさんにてキーボードをこよなく愛する人達によるイベントが開催され、250人以上が集まり、自作のキーボードやキーキャップを扱うノウハウが広く共有されました。 inside.dmm.com また2018年を振り返ると、自作キーボード専門店である遊舎工房の実店舗がオープンしたり、Cookpadさんはインターンでも自作キーボードの作成を取り入れて話題になりました。 techlife.cookpad.com こちらのインターンは、PCBでのリバースエンジニアリングやキーボードの回路の設
iOSのHLSダウロードとaggregateAssetDownloadTaskのassetTitleのバグについて 2019年5月11日 engineering ios swift hls download こんにちは、iOS エンジニアとして Swift を書いている @kz_morita です。 今回は iOS で動画ダウンロード機能を実装したときにハマったことについて書いていこうと思います。 TL;DR HLS は Apple が提唱した動画配信用のプロトコル HLS の動画もダウンロードすることができる Apple の サンプルコード がある aggregateAssetDownloadTask の assetTitle にマルチバイトを指定するとダウンロードできないケースがある Http Live Streaming 動画を iOS アプリからダウンロードする HLS とはなにか
こんにちは、@kz_moritaです。 普段はiOSエンジニアとしてSwiftを書いていて、Swiftはだいたい半年くらいさわっています。 それ以前は、C# でサーバーサイド書いていたり、C++/Cocos2d-xでゲーム開発をしていたりしました。 このブログはレイアウトやデザインを一から実装しているのですが、その中でもリンクをhoverした時のアニメーションをこだわって作ったので今回はその話をしていこうと思います。 おもにCSSアニメーションの話になるかと思いますので興味がある方はぜひこの記事を読んで気軽に試してみてもらえたら嬉しいです。 作るもの https://google.com ↑ のリンクにhoverしてみてください。 ふわっとアンダーラインがアニメーションで表示されたかと思います。 GIFだとこんな感じ。 今回はこれを作っていきます。 成果物 いきなり成果物ですが簡単に実装し
こんにちは、kz_moritaです。 普段はiOSエンジニアとしてSwiftを書いていて、もう少しでSwift歴が半年になります。 それ以前は、C# でサーバーサイド書いていたり、C++/Cocos2d-xでゲーム開発をしていたりしました。 この記事では、プロジェクトに最近導入したSwiftLintについて、導入の背景や方法などを書き記していきます。 導入してみた所感としてコードの書き方やスタイルがAuto Formatによって自動で整うため、開発効率は確実にあがるだろうなと感じています。今後の開発が楽しみです。 もしあなたがSwiftLintの導入を考えているのであれば、この記事がきっとお役に立てるのではないでしょうか。 Pull Requestのレビューを楽にしたい 現在参加しているチームの開発スタイルは基本的に git-flow に乗っ取っています。そのため機能開発は feature
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く