タグ

ブックマーク / atmarkit.itmedia.co.jp (228)

  • Rustは本当に動作が高速なのか? Pythonとの比較で分かる、Rustのパフォーマンス特性

    パフォーマンス比較の形式 PythonRustには「line_profiler」や「criterion-rs」など、それぞれ優れたプロファイリングのためのライブラリやツールがあります。基的にはこれらのツールを使うべきですが、計測自体が計測対象に影響を与えてしまいますし(特にline_profiler)、異なる言語間で比較する必要があるため、経過時間をprint出力する方式で進めます。環境によって結果は異なるのですが、参考までに筆者のプログラムの実行環境を以下に記載しました。 OS:ArchLinux(kernel 5.7.10-arch1-1) CPUAMD Ryzen 9 3950X 16-Core Processor RAM:G.Skill F4-3200C16-32GVK×4(DDR4-3200 32GB×4) SSD:Crucial CT1000MX500SSD1(1000G

    Rustは本当に動作が高速なのか? Pythonとの比較で分かる、Rustのパフォーマンス特性
  • Spotifyが開発者ポータル「Backstage」をオープンソース化

    Spotifyは2020年3月16日(米国時間)、社内向けに開発し、活用してきた開発者向けポータル構築プラットフォーム、「Backstage」をオープンソース化したと発表した。 Spotifyは2020年3月16日(米国時間)、社内向けに開発し、活用してきた開発者向けポータル構築プラットフォーム、「Backstage」をオープンソース化したと発表した。 Backstageでは、さまざまなインフラ関連ツール/サービス、ドキュメントを単一のポータルにまとめ、分かりやすく表示する。エンジニアは自身の作業に適したツールを容易に見つけることができ、一貫したユーザーインタフェースで利用できる。これにより、開発者はツールの利用に費やす時間や労力を減らし、アプリケーションの構築に集中できるという。 同ツールの背景として、Spotifyはオープンソースソフトウェア(OSS)のインフラ関連ツールが爆発的に増加

    Spotifyが開発者ポータル「Backstage」をオープンソース化
  • GitHubが障害を総括、43秒間のネットワーク断が1日のサービス障害につながった:データベースの不整合解消に時間 - @IT

    GitHubが障害を総括、43秒間のネットワーク断が1日のサービス障害につながった:データベースの不整合解消に時間 GitHubは2018年10月30日(米国時間)、2018年10月21日16時頃(米国太平洋時)から約24時間にわたって発生した障害に関する分析報告を、同社のブログに掲載した。これによると、ネットワーク機器の部品交換で生じた43秒のネットワーク接続断が、GitHubのメタデータ管理データベースの不整合を引き起こし、復旧に時間を要したという。 GitHubは2018年10月30日(米国時間)、2018年10月21日16時頃(米国太平洋時)から約24時間にわたって発生した障害に関する分析報告を、同社のブログに掲載した。これによると、ネットワーク機器の部品交換で生じた43秒のネットワーク接続断が、GitHubのメタデータを管理するデータベースの不整合を引き起こし、復旧に時間を要した

    GitHubが障害を総括、43秒間のネットワーク断が1日のサービス障害につながった:データベースの不整合解消に時間 - @IT
  • Seleniumの弱点を補うブラウザ自動テスト用フレームワーク「Selenide」とは

    Webアプリケーションのテスト自動化に特化したJava用のフレームワーク「Selenide」は、人気のある「Selenium」と比べて大きなアドバンテージがある。使い方やコードを交えて解説しよう。 ブラウザテストに特化したフレームワーク「Selenide」 Webアプリケーションのブラウザテストを自動化するツールとして、「Selenium」がよく知られています。@ITの読者でも使っている方は多いのではないでしょうか。人気のあるSeleniumですが、実際に使っていると不満に思う点もあると思います。SeleniumはWebブラウザの操作を自動化するためのツールであり、Webアプリケーションのテストに特化したツールではありません。そのため、Seleniumを使ったテストコードには、冗長になってしまう部分がありました。 特に、非同期処理についてSeleniumは苦手としており、「Selenium

    Seleniumの弱点を補うブラウザ自動テスト用フレームワーク「Selenide」とは
  • グーグルがロードバランサー「Seesaw」をGitHubで公開

    グーグルは2016年1月29日(米国時間)、自社で開発したロードバランサー「Seesaw v2」をApache 2.0ライセンスの下でGitHubで公開したと発表した。 Seesawは、自社のデータセンターでそれまで使っていた2種類のロードバランサーに不満を持っていたグーグルエンジニアが2012年に開発したツール。バージョン2でほぼ目的としていた機能を搭載できたのでオープンソースで公開することにしたという。 仮想IPアドレスのユニキャストおよびエニーキャストのトラフィック制御、NAT(Network Address Translation)およびDR(Direct Routing)でのロードバランス機能、バックエンドのヘルスチェック機能を備えた「管理が容易なプラットフォームを目指した」としている。 同社のオープンソース言語「Go」で書かれており、LVS(Linux Virtual Se

    グーグルがロードバランサー「Seesaw」をGitHubで公開
  • なぜNECは、10万件以上のテスト項目があるプロジェクトで、UIテスト自動化ツールを導入できたのか

    テクマトリックスは2015年10月にテスト自動化ツールの紹介セミナーを開催。その一セッションにNECの浦口宗也氏(プラットフォームソリューション推進部 マネージャー)が登壇した。 NECは、全社向けSI施策として「テスト効率化ツールの貸出制度」を取り入れている。その活用の一環として、一度はテスト自動化に失敗し「自動化アレルギー」に陥っていた開発プロジェクトの現場にUIテスト自動化ツールを導入した。 失敗の原因は何か、そして再挑戦のポイントはどこだったのかを見ていこう。 一度はテスト自動化に失敗、「自動化アレルギー」に 浦口氏は「テスト自動化に一回失敗した」と率直に語る。自動化を試みたのは、ある生産管理パッケージ開発プロジェクトの機能更改や保守作業に伴う検証作業である。テスト自動化ツールを導入したものの、自動化対象と見込んでいたケースの4%しか自動化できなかったのだ。テスト自動化を導入する

    なぜNECは、10万件以上のテスト項目があるプロジェクトで、UIテスト自動化ツールを導入できたのか
  • 格安SIMをスマートフォンで利用するためのAPNの設定法(Android編)

    インターネットプロバイダーや量販店などのベンダーが、MVNO(Mobile Virtual Network Operator:仮想移動体通信事業者)として、通信速度やサービス内容などを制限したり、独自のサービスを追加したりしてさまざまな通信サービスの提供を行っている。こうした通信サービスで利用されるSIMは、一般に携帯電話会社(NTTドコモ、au、ソフトバンク)の通信サービスに比べて安価に利用できることから「格安SIMカード」などと呼ばれている(関連記事参照)。 ただ携帯電話会社のSIMカードであれば、自動的に端末が設定されて利用可能になったり、販売店で設定を行ってくれたりするのだが、格安SIMカードでは手動で「APN(Access Point Name)」と呼ばれる携帯電話会社に関する設定を行わなければならない。これはMVNOやサービスごとに設定方法が異なっており、正確に設定しないと通信

    格安SIMをスマートフォンで利用するためのAPNの設定法(Android編)
  • Hadoop+Embulk+Kibanaのデータ集計基盤によるデータ可視化と集計データを活用したキーワードサジェストの仕組み

    連載目次 リクルートの全社検索基盤「Qass」の事例を基に、大規模BtoCサービスに求められる検索基盤はどう構築されるものなのか、どんな技術が採用されているのか、運用はどうなっているのかなどについて解説する連載。 初回の「リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか」では全体的なアーキテクチャ、採用技術、開発体制について紹介しました。 検索システムを構築する際に、最も重要なのは、前回の「ElasticsearchとKuromojiを使った形態素解析とN-Gramによる検索の適合率と再現率の向上」でも紹介した、検索品質の向上です。Qassでは、いろいろなログを組み合わせて分析したり、ランキングデータに活用したりと、ログデータはシステムの中核となっています。 第3回の今回はQassの検索基盤を支えるデータ集計基盤と、それによるデータ可視化、集計したデータを生

    Hadoop+Embulk+Kibanaのデータ集計基盤によるデータ可視化と集計データを活用したキーワードサジェストの仕組み
  • Calabash-Androidでテストシナリオを作成する方法

    Calabash-Androidでテストシナリオを作成する方法:スマホ向け無料システムテスト自動化ツール(5)(1/5 ページ) 連載では、AndroidおよびiOSアプリ開発における、システムテストを自動化するツールを紹介していきます。今回は、Calabash-Androidのテストで必要になる、各種UIコンポーネントの特定・操作・検証方法を紹介し、ステップ定義の仕方やUIコンポーネントを調査するための「console」について解説します。

    Calabash-Androidでテストシナリオを作成する方法
  • 第4回 メモリ管理

    システムにいくらメモリが搭載されていて、そのうちどのくらいのメモリが実際に使われているのか、当に必要なメモリはどのくらいなのか。Windows OSのメモリ管理機能について解説。 連載目次 前回はWindows OSのプロセスとスレッドについて解説した。今回はプロセスやスレッド管理とも深く関連する「メモリ管理」について見ていく。 タスクマネージャーでメモリの利用状況を確認する Windows OSと、その上で動作しているプロセスがどのくらいのメモリを使用しているかを確認することは、PCにどのくらいのメモリを用意(搭載)すべきかを決めるために重要なことである。せっかく新しい高速なシステムを導入してもメモリが不足していたのではその性能を100%発揮できないからだ。 現在使用中のシステムにいくらメモリが搭載されていて、そのうちどのくらいのメモリが実際に使われているのか、当に必要なメモリはどの

    第4回 メモリ管理
  • プッシュ通知の基礎知識&秒間1万を超えるプッシュ通知基盤のアーキテクチャと仕組みとは

    連載目次 プッシュ通知とは? なぜ開発者はアプリにプッシュ通知機能を搭載するのか スマートデバイスにおける「プッシュ通知」はアプリにとって欠かせない機能の一つであり、メールマガジンと同様に重要な集客ツールです(図1)。スマートフォンをお使いの方でしたら、一度はプッシュ通知を受け取ったことがあるのではないでしょうか。 プッシュ通知はユーザーがスマートデバイスを起動していなくても通知を送ることができる仕組みであり、以下の特徴があります。 開くと直接アプリを起動するためアクションにつながりやすい アプリをインストールしているユーザーのみに届くため開封率が高い 上記のような特徴から、プッシュ通知は以下の用途で使うことが多くなります。 リアルタイムな情報配信 直接アプリ起動につながるため、ニュースなどリアルタイム性の高い情報の配信に向く ユーザーのアクティブ率向上 開封率が高いため、定期的にアプリを

    プッシュ通知の基礎知識&秒間1万を超えるプッシュ通知基盤のアーキテクチャと仕組みとは
  • .NET開発者がよく使うサイト、本当に使えるサイト【2014年度版】

    .NET開発者がよく使うサイト、当に使えるサイト【2014年度版】:特集:.NET開発者のためのオンラインリソースガイド Web上には.NET関連サイトが数え切れないほどたくさんある。その中でも.NET開発初心者がまずは押さえておきたいWebサイトを厳選してまとめた。 稿は、これから.NETでプログラミングを始めようとしている方や、新しく.NETでの開発に携わることになった方に贈るオンラインリソースガイドの2014年度版である。インターネット上に数ある.NET関連サイトの中で、.NET開発者がまずは押さえておくべきWebサイトについてまとめている。 稿がまとめているサイト&ジャンル分けについて .NET開発者がよく利用するサイトの代表は、やはり.NET FrameworkとVisual Studioを提供するマイクロソフトのサイトだろう。だが、ひとくくりに「マイクロソフトのサイト」と

    .NET開発者がよく使うサイト、本当に使えるサイト【2014年度版】
  • Chromecastで動くHTML5ベースのメディアストリーミングアプリを作るための基礎知識

    意外と知られていないことですが、Chromecast対応アプリは、iPhoneアプリAndroidアプリ同様に誰でも開発することができ、今多くの開発者から注目されていて、今後もその数が増えることが予想されます。 Web&モバイル技術のSIを手掛けるオープンストリームでは、Chromecastデバイスの国内発売前からスマートフォンアプリ(iOS版およびAndroid版)の対応について技術検証を行い、詳細な技術ノウハウを獲得してきました。連載では、その時に得た技術を基にChromecastアプリのシステム構成、開発環境、開発準備、メディアストリーミングアプリの開発方法について注意点を含めて解説していきます。Chromecast対応アプリを開発する参考にしてください。 初回は、Chromecastの概要とサンプルアプリを動作確認できるまでの開発手順を解説します。 Chromecastアプリの

    Chromecastで動くHTML5ベースのメディアストリーミングアプリを作るための基礎知識
  • Webの全てをデータベースにするLinked Open Data(LOD)とクエリ言語SPARQLの基礎

    Webの全てをデータベースにするLinked Open Data(LOD)とクエリ言語SPARQLの基礎:データ資源活用の基礎(3)(1/3 ページ) オープンデータによるデータ流通のためのLinked Open Dataの仕組みと、クエリ言語SPARQLの基を学ぼう。マシンリーダブルな表現を活用し、Webの世界全てをデータベースとして活用するための基礎知識を紹介する。 連載バックナンバー はじめに 第2回までは、ビッグデータビジネスの新たな潮流「オープンデータ」と、企業にとっての「オープンデータ」について紹介してきました。今回は、オープンデータを使ってみたいと思っている方々を対象に、第1回で簡単に紹介したオープンデータの目指す世界である「Linked Open Data」(LOD)を実現するための要素技術の概要について、実例と共に紹介します。 LODを実現するためのデータモデル「RDF

    Webの全てをデータベースにするLinked Open Data(LOD)とクエリ言語SPARQLの基礎
  • 現場で使えるか見極めたいRails 4.1の新機能8選

    エンタープライズ領域での採用も増えてきたRuby on Railsを使ってWebアプリケーションを作るための入門連載。今回は、息抜きとして4.1の新機能を紹介。モデルで列挙型を簡単に扱えるEnumや新プリローダーSpringなど便利機能に加え、秘密鍵、署名付きトークン、CSRFプロテクションなどセキュリティ対策機能も紹介。

    現場で使えるか見極めたいRails 4.1の新機能8選
  • Windowsのrobocopyコマンドでファイルコピー中断後に自動再開させる

    対象OS:Windows 7/Windows 8/Windows 8.1/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2 解説 robocopyは、xcopyよりも堅牢で、確実なファイルコピー/バックアップなどを行える多機能なコマンドである。タスクスケジューラなどと組み合わせて、ユーザーファイルやシステムのバックアップに使われることが多い。TIPSでは、robocopyの便利な機能である、コピー失敗/中断後の自動再開機能について解説する。ネットワークの状態が不安定だったり、ファイルが書き込み中でロックされていたり、大きなファイルのコピーに失敗したりした場合などに、コピーが失敗した場所から再開することができる。ファイル全体をコピーし直すわけではないので、コピー時間を短縮できる。 robocopyの基的な使

    Windowsのrobocopyコマンドでファイルコピー中断後に自動再開させる
  • TDD/BDDにおける「振る舞い」の意味するところとは何なのか

    TDD/BDDにおける「振る舞い」の意味するところとは何なのか:いまさら聞けないTDD/BDD超入門(3)(1/3 ページ) 前回の「TDD/BDDの思想とテスティングフレームワークの関係を整理しよう」では、TDD/BDDについて、その思想と、それをサポートするテスティングフレームワークに分けて解説しました。その中で、TDD/BDDについては実際の熟練者の言葉を借り、テスティングフレームワークについては概要を触れて、その系譜をたどりました。 BDDはその名前に「Behavior」とありますが、「振る舞いとしてのテストコードを書く」とはどういうことなのでしょうか? 難しく考え過ぎる必要はありませんが、「それは振る舞いを書いていないよ」と指摘をする熟練者が何を考えているかを理解することはBDDを習熟していく中で重要な意味を持ってきます。 記事では「振る舞い」という言葉がどのような意味で使われ

    TDD/BDDにおける「振る舞い」の意味するところとは何なのか
  • fluentdの効果的な活用例と安定運用のポイント

    fluentdの効果的な活用例と安定運用のポイント:今さら聞けないfluentd~クラウド時代のログ管理入門(3)(1/3 ページ) 効率良く、意味のあるログ管理を実現するツールとして注目されている「fluentd」。最終回では、実際の利用シーンを想定し、より効果的なfluentdの利用法を紹介します。 第1回、第2回でfluentdを使って基的なログ管理が実現できるようになったのではないでしょうか。fluentdはプラグインの組み合わせにより更に効果を発揮します。最終回では、実際の利用シーンを想定し、より効果的な利用法を紹介します。 fluentdの具体的な活用例 実際の利用シーンを想定した2つのfluentdの活用例を紹介します。 大量のログを分析し、「意味のある情報」として管理する タグデータを効果的に活用し、ログデータのフィルタリング管理を行う 1.大量のログを分析し、「意味のあ

    fluentdの効果的な活用例と安定運用のポイント
  • 開発現場でちゃんと使えるRails 4入門(2):scaffoldの中身を理解するためにMVCコンポーネントと7つのアクションを個別で自作する (1/3) - @IT

    連載目次 前回の「簡単インストールから始める初心者のためのRuby on Railsチュートリアル」では、「Ruby on Rails」(以下、Rails)の概要とMVCモデルとの関係、Rails 4の新機能・変更点、開発環境、インストール、scaffoldでアプリケーションを作る手順などを紹介しました。 特に「Railsの『scaffold』でデータの管理機能を作る」の章以降で、「rails generate scaffold」コマンドを使ってアプリケーションの「scaffold」(土台、基盤)を作りました。 「rails generate scaffold」コマンドは、取り扱おうとしているデータに関する各種コンポーネントを生成してくれます。それらのコンポーネントはブラウザーでデータを一覧したり、作成したりする機能を提供してくれました。 生成されたscaffoldはRailsの主要機能な

    開発現場でちゃんと使えるRails 4入門(2):scaffoldの中身を理解するためにMVCコンポーネントと7つのアクションを個別で自作する (1/3) - @IT
  • Ruby 2.1の基本構文/基本文法まとめ&Pryの使い方

    Ruby 2.1の基構文/基文法まとめ&Pryの使い方:若手エンジニア/初心者のためのRuby 2.1入門(2)(1/7 ページ) オープンソースのオブジェクト指向プログラミング言語「Ruby」の文法を一から学ぶための入門連載。最新版の2.1に対応しています。今回は、Rubyの変数、定数、リテラル、演算子、条件分岐とループ(繰り返し)、コメントの基的な使い方について解説。Ruby 2.1での新機能や便利な実行ツール「Pry」のインストールと使い方も紹介します。

    Ruby 2.1の基本構文/基本文法まとめ&Pryの使い方