タグ

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

  • 実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは

    ゲーマー向けの無料音声テキストチャットアプリケーション「Discord」を開発、提供するDiscordは2020年2月5日(米国時間)、アプリケーションを支える基盤サービスの一つである「Read States」をRust言語で再実装し、その結果サービスのパフォーマンスが大幅に向上したと公式ブログで明らかにした。 Read StatesサービスはこれまでGo言語で実装されていた。それにもかかわらず、なぜRead StatesをRustで再実装しようとしたのか、どのように再実装したのか、再実装によってどのようにパフォーマンスが向上したかを解説した。 Rustで再実装した背景とは Read Statesサービスの目的は、Discordユーザーがどのチャンネルのどのメッセージを読んだのかを追跡することだ。つまり、ユーザーがDiscordに接続したり、メッセージを送信したり、メッセージを読んだりする

    実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは
  • Microsoft、オープンソースの自動UIテストスクリプトツール「WinAppDriver UI Recorder」を公開

    Microsoft、オープンソースの自動UIテストスクリプトツール「WinAppDriver UI Recorder」を公開:自動UIテストのスクリプトを簡単に作成できる Microsoftは、Windows 10対応のUI自動化サービス「WinAppDriver」の新しいオープンソーステストスクリプトツール「WinAppDriver UI Recorder」を公開した。 Microsoftは2018年6月20日(米国時間)、「Windows Application Driver」(WinAppDriver)コミュニティー向けの新しいオープンソースツール「WinAppDriver UI Recorder」(以下、UI Recorder)の公開を発表した。UI Recorderは、自動化されたUI(ユーザーインタフェース)テストのスクリプトを簡単に作成できるツールだ。 WinAppDrive

    Microsoft、オープンソースの自動UIテストスクリプトツール「WinAppDriver UI Recorder」を公開
  • DRBD(Distributed Replicated Block Device)とは何か

    DRBD(Distributed Replicated Block Device)とは何か:DRBDの仕組みを学ぶ(1)(1/2 ページ) 障害監視ツールなどと一緒に使うことで、サービスの継続提供を助けるDRBD。Linuxカーネルに統合されている機能ですが、上手に使いこなしているでしょうか? 連載では、DRBDの動作や使いどころを順を追って紹介していきます。 連載バックナンバー 2015年6月、約8年ぶりに「DRBD」のメジャーバージョンアップ版となる「DRBD9」がリリースされました。DRBDは、リアルタイムでデータをレプリケート(複製)するソフトウエアです。 最新版であるDRBD9では、多ノード(最大31台)レプリケーション対応、実質無制限のデータサイズサポート、ストレージ性能を活用したさらなる高速化などの新機能が盛り込まれています。 連載第一回となる今回は、DRBD9の詳細を解説

    DRBD(Distributed Replicated Block Device)とは何か
    Ooo
    Ooo 2015/09/04
  • 1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか

    1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか(1/2 ページ) 大企業では実施が難しいと思われるソフトウエアのリファクタリング。富士ゼロックスでは、どのように取り組んでいるのか。リファクタリングの実施を決断した理由、課題とその対応方針、成果、今後の展望などについて聞いた。 バグの有無ではなく保守性を品質管理の指標にすべき 1962年設立の富士ゼロックスは、主に複合機やオフィスプリンターなどに内蔵されるコントローラーソフトウエアの開発を行っている。コントローラーソフトウエアは、スキャナーで撮り込んだ画像の加工や印刷、ネットワーク経由の通信、セキュリティなどの各種機能を、操作パネルのユーザーインターフェースを介して制御しており、昨今の多機能なオフィス機器の要といえる。 一方で、多機能になったことでコードは大規模かつ複雑化の一途をたどっ

    1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか
  • リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか

    リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか:Elasticsearch+Hadoopベースの大規模検索基盤大解剖(1)(1/2 ページ) リクルートの事例を基に、大規模BtoCサービスに求められる検索基盤はどう構築されるものなのか、どんな技術が採用されているのか、運用はどうなっているのかなどについて解説する連載。初回は全体的なアーキテクチャ、採用技術、開発体制について。 連載目次 大規模BtoCサービスで求められる検索基盤は、どうあるべきなのか カスタマー(消費者)が求めるものが日々変わっていく現在において、BtoCの検索基盤はどうあるべきなのでしょうか。 例えば、リクルートで使われている検索基盤の「Qass(Query analyze search system)」は単に全文検索機能を提供するのではなく、以下を軸としています。 サービスごとに最適化され

    リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか
  • NTTコム、GMO、楽天が語る「僕らがOpenStackを使う理由」

    NTTコム、GMO楽天が語る「僕らがOpenStackを使う理由」:特集:OpenStack超入門(5)(1/3 ページ) 2015年2月3~4日、OpenStackのユーザーコミュニティによるイベントが日国内で開催された。会期二日目のキーノートセッションは、OpenStackを採用したサービス提供や自社内ITインフラ基盤構築を目指すユーザー企業三社が登壇、アイティメディアのエグゼクティブエディター、三木泉がインタビューを行う形式で講演が行われた。稿ではその模様を紹介する。 日国内でも多くの企業の関心を集めているオープンソースのIaaS基盤ソフトウエア「OpenStack」。2015年2月3~4日、東京・グランドプリンスホテル高輪を会場にOpenStackのユーザーイベント 「OpenStack Days Tokyo 2015」が開催された。稿ではその中でも二日目のキーノートセッ

    NTTコム、GMO、楽天が語る「僕らがOpenStackを使う理由」
  • Struts後時代のJava EE/Javaモダン開発はどうあるべきか~JJUG CCC 2014 Springまとめリポート(前編) - @IT

    Javaユーザーグループは2014年5月18日、「JJUG Cross Community Conference 2014 Spring」を開催した。「JJUG Cross Community Conference」(以下、JJUG CCC)は毎年春と秋に開催されるカンファレンス。初心者向けからエキスパート向けまで、Java/JVMに少しでも関連すればいいという広いテーマでさまざまな講演が行われている。 今年は4トラック同時進行、合計25ものセッション、ハンズオンセミナーという規模で大いににぎわった。 そして最新仕様であるJava EE 7に準拠しているのは2014年5月現在「GlassFish」「WildFly」のみで、主流は多種多様なアプリケーションサーバーが対応しているJava EE 6とのことだ(楽天GlassFishを活用していることでも有名)。 エンタープライズ分野でJa

    Struts後時代のJava EE/Javaモダン開発はどうあるべきか~JJUG CCC 2014 Springまとめリポート(前編) - @IT
  • NTP増幅攻撃で“史上最大規模”を上回るDDoS攻撃発生

    米国時間の2014年2月10日、Network Time Protocol(NTP)の脆弱性を悪用した大規模なDDoS攻撃が確認された。米国のセキュリティ企業、CloudFlareCEOを務めるマシュー・プリンス氏のツイートによると、2013年3月に観測された“史上最大規模”のDDoS攻撃を上回り、トラフィックがほぼ400Gbpsに達する規模だったという。 NTPは、システムの内部時計を正しい時間に同期させるためのプロトコルで、インターネットを形作るネットワーク機器やサーバー、デスクトップマシンなどで幅広く使われている。 ntpdなどNTPの実装の一部には、NTPサーバーの動作モニタリングのために「monlist」機能を備えているものがある。この機能が「攻撃者にとって理想的なDDoSツール」(CloudFlareのブログ)になっているという(関連記事:増幅攻撃はDNSだけではない――NT

    NTP増幅攻撃で“史上最大規模”を上回るDDoS攻撃発生
  • 継続的インテグレーションを始めるための基礎知識

    継続的インテグレーションを始めるための基礎知識:グリーはいかにしてJenkinsを導入したのか(1)(1/2 ページ) 連載では、グリーのサービス開発において導入している継続的インテグレーション(Continuous Integration、以下、CI)と、CIツールであるJenkinsの導入について3回に分けて説明します。Jenkinsのインストールといった“手順”よりも、CI導入の“モチベーション”や“進め方のポイント”を中心に説明します。 グリーの開発と継続的インテグレーション SNSやソーシャルゲームなどを運営するグリーでは、数百名の技術者が日々さまざまな機能やサービスを開発し、リリースしています。このような規模、リリース頻度での開発を支えるには数多くの工夫や仕組みが必要です。この中でも最も大きな仕組みの1つにCIが挙げられます。 グリーでは、開発にCIを格的に導入し始めたのは

    継続的インテグレーションを始めるための基礎知識
    Ooo
    Ooo 2013/02/14
  • pushd/popdでフォルダーを移動する

    cdコマンドで移動すると履歴が残らず、元のフォルダーへ戻るのが面倒である。pushdコマンドで移動すると、履歴がスタックに残り、popdコマンドで簡単に戻ってくることができる。引数なしでpushdコマンドを実行すると、履歴が表示される。 解説 コマンドプロンプト上で作業をする場合、あちこちのフォルダーへ移動しながらファイルを操作したり、コマンドを実行したりすることが多い。Windows OSに限らず、コマンドや設定ファイル、ログファイルなどは複数のフォルダーに分かれて置かれているため、このような移動は避けられない。もしフォルダーを移動せずに作業しようとすると、全てのファイルパスをフルパスで指定しなければならず、とても煩わしくなるからだ。 ●cdではなく、pushdコマンドで移動する フォルダーを移動する場合、コマンドプロンプトでは「cd」コマンドを利用する。引数に移動したい先のフォルダー名

    pushd/popdでフォルダーを移動する
  • 管理が困難―分散処理の常識はZooKeeperで変わる

    管理が困難―分散処理の常識はZooKeeperで変わる:ビッグデータ処理の常識をJavaで身につける(8)(1/3 ページ) Hadoopをはじめ、Java言語を使って構築されることが多い「ビッグデータ」処理のためのフレームワーク/ライブラリを紹介しながら、大量データを活用するための技術の常識を身に付けていく連載 分散処理の課題が「管理」なのは常識 複数の計算機上で動作(分散)するアプリケーション、ソフトウェアが多く存在します。分散ソフトウェアは複数の計算機で動作することで大量のデータを扱えたり、高負荷な状況に対処します。稿では、複数の計算機(クラスタ)で動作する各サーバを「インスタンス」と呼びます。 連載で紹介した分散Key-Valueデータベースである「HBase」は複数の計算機で動作する代表的なソフトウェアです。両ソフトウェアはともに「Apache ZooKeeper」(以下、Z

    管理が困難―分散処理の常識はZooKeeperで変わる
  • 最適化した開発チームは3~10人で美しく回る

    スクラム」は、アジャイル開発の手法群の中でも、「チームとしての仕事の進め方」に特化したフレームワークだ。スクラムの知識を応用して、開発チームの日常をちょっとリファクタリングしてみよう。 今回の内容 ●課題:課題: チーム運営を改善する ●スクラムのプラクティススクラムのプラクティス チームのベスト人数は3~10人 あなたが所属する「チーム」はどんなチームですか? チームのスタイルは千差万別です。メンバーがそれぞれ独立して仕事するチームもあれば、全員の作業状態を共有しているチームもあります。 良いチーム運営をするために、スクラムのプラクティスは有効です。スクラムの核心は、「コミュニケーションコストをなるべく上げず、有機的なチームを作ること」にあるからです。 チームミーティングの「人大杉」問題 毎週のチームミーティングで話す「内容」を思い出してください。 今週行ったことの報告 問題の共有 同

    最適化した開発チームは3~10人で美しく回る
    Ooo
    Ooo 2012/03/09
    スクラムの核心は、「コミュニケーションコストをなるべく上げず、有機的なチームを作ること」にあるからです。
  • フォーム関連要素(終) HTML5で仕様になった入力値チェック+便利な3Tips

    HTML5で追加されたJavaScript APIで入力値制約 これまでに述べてきた入力値チェックのやり方は、JavaScriptを一切用いていませんでした。JavaScriptを用いなくとも、ユーザビリティの高いクライアントサイドでの入力値チェックが行えるというのは非常に大きな利点です。 が、これまで述べたような単純な入力値チェックでは要件を満たせない場合や、Ajaxを用いてサーバとの通信を行うWebアプリケーションなどでは、入力値チェックをJavaScriptで制御する必要が生じます。 HTML5では、そうしたニーズにも答えられるよう、フォーム関連要素に以下のようなAPIが用意されています。 willValidate この要素が入力値チェックの対象となるかどうか validity 入力値チェックの状態を表す。プロパティの値は「ValidityState」という型のオブジェクトで、以下の

    フォーム関連要素(終) HTML5で仕様になった入力値チェック+便利な3Tips
  • OpenJDK+SystemTapでトラブル解析はここまでできる!

    Javaでデバッグしにくい3つの場面 Javaアプリケーションで構築されたシステムの障害や性能問題が発生した場合、大半はデバッガやプロファイラ、ミドルウェアやサードパーティが提供するツールを用いることで解析できてしまいます。 しかし、以下のような状況ではJavaの世界からのアプローチがしにくく、通常のデバッグノウハウが使えないことがあります。 プロセス再起動が許されないシステムでの情報取得がしたいとき 番環境でしか発生せず、テスト環境でデバッグできない問題の場合 GC(ガベージ・コレクション)ログ(-Xloggcなど)のように、javaコマンド起動オプションを与えなければ取得できない情報が必要な場合 ソース変更が許されない場合に、特定状況下の情報を取得したいとき ある特定のメソッドなどが実行された瞬間のスレッドダンプやスタックトレースなどが必要な場合 ソースの変更ができない、環境の制約な

    OpenJDK+SystemTapでトラブル解析はここまでできる!
  • 連載記事 「いまさら聞けないVim」

    インストール、そしてはじめの一歩 連載:いまさら聞けないVim(1) プログラマに高い人気を誇るエディタの1つ「Vim」。その導入から基の操作、設定に至るまでを紹介します

    Ooo
    Ooo 2011/07/22
  • Eclipse 3.7 Indigo公開、e4、Orion、そしてクラウドへ

    Eclipse 3.7 Indigo公開、e4、Orion、そしてクラウドへ:ユカイ、ツーカイ、カイハツ環境!(24)(1/3 ページ) 「Indigo」それは、ニュートンが発見した色 2011年6月22日、Eclipseの最新バージョンであるEclipse 3.7がリリースされました。Eclipse 3.5の「Gallileo」からは、Eclipseのリリースのネーミングは「G」「H」「I」とアルファベット順の単語で始まる名前が投票によって名付けられています。Eclipse 3.6「Helios」の次であるEclipse 3.7は「H」の次の「I」で始まる「Indigo」と名付けられました。 天才物理学者であるアイザック・ニュートンがプリズムにより光を7色に分解できることを発見したときに、紫の内側の色をIndigo(藍色)と名付けたことと、藍色がEclipseのカラーにマッチしている、響

    Eclipse 3.7 Indigo公開、e4、Orion、そしてクラウドへ
  • 【DB概論】DBMSに求められるもの(2)耐障害性

    障害発生に対して、DBMSは最大限の回復措置を提供しています。しかし、障害を回復する手順をすべて自動で行うわけにはいきません。いざ障害が起きたときに正しい手順を落ち着いて遂行するために、次の事柄を明確にしておく必要があります。 障害時に要求されるユーザー要件(回復にかけることのできる時間など) データベースに対する更新処理の種類 回復時に実行される手順 データベースの運用要件 データベースのハードウェア要件 どのような障害に対応する必要があるのか 障害対策例 バックアップの種類 障害時に要求されるユーザー要件 ユーザー要件として確かめておくべき要件は、次の2つです。障害の種類ごとにこの2点を確認しておく必要があります。 MTTR(Mean Time To Repair:平均回復時間) MTBF(Mean Time Between Failure:平均障害間隔) 一般的に起き得る障害のうち物

    【DB概論】DBMSに求められるもの(2)耐障害性
    Ooo
    Ooo 2011/07/02
  • Tomcat 7も対応したServlet 3.0の変更点 後編

    Tomcat 7も対応したServlet 3.0の変更点 後編:Tomcat 7の新機能で何ができるようになるのか?(2)(1/3 ページ) 前回の「Tomcat 7も対応したServlet 3.0の6つの主な変更点」では、「Tomcat 7」が実装したServlet 3.0の新機能のうち「Ease of Development(EoD、開発容易性)」「Pluggability and Extendibility(モジュール化と拡張性)」について紹介しました。今回はAsynchronous processing(非同期処理)、セキュリティSession Tracking、マルチパート対応を紹介します。 アノテーションによる非同期処理 Servlet 3.0から非同期処理が使えるようになりました。Servlet 2.5までは、Servlet上でスレッドを生成・起動し、リクエストやレスポンス

    Tomcat 7も対応したServlet 3.0の変更点 後編
  • MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(4/5) - @IT

    .NET開発者中心 厳選ブログ記事 MVVMパターンの常識 ― 「M」「V」「VM」の役割とは? 尾上 雅則 2011/05/18 ■Model Modelは、C#などの汎用プログラミング言語で記述され、ドメイン・ロジックとデータ、つまりはビジネス・ロジックとビジネス・ドメインのステートを持ちます。 ●Modelについてよくある誤解 ― ステートレス、サーバ側がModel、永続化層など Webシステムでよく採用される3層構造におけるデータ・アクセス層やビジネス・ロジック層の常識を、MVVMパターンのModelに持ち込むのはやめましょう。WPF/Silverlightなどのリッチ・クライアント世界のModelは、Webシステムのそれとは決定的に違います。決定的に違うのは、それはステートフルであることです。 多くのWebシステムのビジネス・ロジック層やデータ・アクセス層自体は、基的にステート

  • 教科書に載らないWebアプリケーションセキュリティ - @IT

    [これはひどい]IEの引用符の解釈 教科書に載らないWebアプリケーションセキュリティ(1) Webアプリケーションとセキュリティは切り離せない。セキュアなコードを書くために知っておくべき小ネタを取り上げる