タグ

ブックマーク / thinkit.co.jp (14)

  • MySQLのリアルタイムモニタリングに「innotop」

    innotopとは 「innotop」はMySQLのクエリー実行状況やステータス変数の変化などをtopコマンド風に出力してくれる、Perlで書かれたスクリプトです。中身は非常にシンプル(SHOW GLOBAL STATUSやSHOW ENGINE INNODB STATUSなどをパースして表示するだけ)ですが、 topライクなインターフェイスはリアルタイムモニタリングと相性が良く、非常に直観的でわかりやすい情報を提供してくれます。 筆者はこれを「稼働中のサービスにALTER TABLE(またはpt-online-schema-change)をかける際の負荷モニター」や「MySQLが高負荷状態になっている時の状況確認」などによく利用しています。いかにもtopコマンドと同じような使い方です。 innotopの開発とメンテナンス innotopの立ち位置は少し微妙です。innotopはかつてPe

    MySQLのリアルタイムモニタリングに「innotop」
  • GitHubがCI/CDソリューションを発表。GitHub Actionsによる実装

    ソースコードリポジトリーサービスのデファクトスタンダードと言っても良いGitHub。その日法人であるギットハブ・ジャパン合同会社が、GitHub上で実装されたCI/CDソリューションGitHub Actionsに関する説明会を実施した。GitHub Actionsは、2018年のGitHub Universeで発表されたGitHubのワークフローを実装するための仕組みだ。 GitHub Actionsは発表の当初から「ワークフロー」というキーワードから連想される「CI/CD」領域への応用が噂されていたと言える。筆者は2018年11月に開催されたGitHub Universeにおいて、製品担当のVPに「GitHub ActionsはCI/CDツールになるのか?」という質問を行っていた。これに対しての回答は「YesでもありNoでもある」というものであった。 そもそもGitHub社内では「Sc

    GitHubがCI/CDソリューションを発表。GitHub Actionsによる実装
    bopperjp
    bopperjp 2019/11/11
    Scripted GitHub
  • ロバストネス図を活用したシステム設計

    ロバストネス図とは 今回のテーマは「ロバストネス図」です。ロバストネス図とは、ロバストネス分析を行った結果のアウトプットとなります。ロバストネス分析とは、スリーアミーゴス(ソフトウェアの分野における統一モデリング言語(UML)を開発した3人)の1人であるイヴァー・ヤコブソンが提唱した分析手法で、システムを「バウンダリ」「エンティティ」「コントロール」の3つに分けて分析し(これらについては後述します)、要求モデル(ドメインモデル、ユースケースモデル)をロバスト(堅牢、強靭)にします。 ロバストネス図はUMLで定義されている13種類のダイアグラムには入っていませんが、UMLのコミュニケーション図やコラボレーション図を簡略化した形で簡単に書くことができます。ロバストネス図を書くことで要件の振る舞いが整理され、実装すべき点を明確にできます。 ユースケースシナリオを作成する ロバストネス図のインプッ

    ロバストネス図を活用したシステム設計
    bopperjp
    bopperjp 2018/11/12
  • 開発者のためのソフトウェアテストのスキルアップ | Think IT(シンクイット)

    はじめに ここまで、さまざまなソフトウェアテストの考え方や種類を紹介してきました。開発者がソフトウェアテストを活用していくなかで、「どのように問題を分割してすすめて行けば良いのか」と「どのようなテストケースを選択するのか」という2つの課題は筆者に多く相談がきます。 今回は、この2つの課題に対して、どのような方法で自らのスキルを上げて行けば解決できるのかを解説します。具体的には、前者には「Mikadoメソッド」を、後者には「テスト技法」を活用します。 筆者がよく耳にするソフトウェアテストの課題 開発者がTDDやテスト設計に取り組む際、筆者はよく次のような課題を耳にします。 どのように問題を分割するのか問題に対してどのようなテストケースを選択するのか 「どのように問題を分割するのか」とは、TDDやテスト設計において「開発対象をどのような問題に分割してテストを作れば良いのかわからない」といった課

    開発者のためのソフトウェアテストのスキルアップ | Think IT(シンクイット)
    bopperjp
    bopperjp 2018/10/17
  • [ThinkIT] 第1回:O/Rマッピング (1/4)

    連載では今話題のフレームワーク「Ruby on Rails(以下、Rails)」と現在Webアプリケーション開発で主流であるJavaのフレームワーク群を比較していきます。 比較軸については、開発に関する事項(生産性やメンテナンス性など)を中心に解説していきます。第1回の今回はO/Rマッピングを提供するフレームワークについてです。 O/Rマッピングとは、オブジェクトとRDBのテーブルをマッピングすることをいいます。O/Rマッピングフレームワークはオブジェクト指向とRDBの仲介人となることで、アプリケーションの開発生産性を向上させます。 Railsからは同梱の「ActiveRecord」というO/Rマッピングのコンポーネントを取り上げます。対してJavaのO/Rマッピングとしては、もっとも知名度が高いと考えられる「Hibernate」と、Javaの正式仕様として策定された「Java Pers

    bopperjp
    bopperjp 2017/05/18
    ActiveRecord と Hibernate の比較
  • ブック・インサイド―『Python機械学習プログラミング』学び方ガイド

    記事では、書籍『Python機械学習プログラミング』を読むために必要な知識、読み方等について説明します。 『Python Machine Learning』が2015年9月に米国などで発売。「機械学習の考え方」と「Pythonプログラミングによる実践」をバランスよく解説していると評価され、米国Amazon.comでベストセラー。その日語訳はコラムや脚注、付録が追加され、2016年6月に発売されました。ここでは、書のより効果的な活用法について監訳者が解説します。 『Python機械学習プログラミング』とは 書籍『Python機械学習プログラミング』は、Sebastian Raschka氏によるPythonを用いた機械学習の入門書"Python Machine Learning"の翻訳書です。著者はミシガン州立大学の博士課程で生物統計学(計算生物学)の研究を行っており、scikit-le

    ブック・インサイド―『Python機械学習プログラミング』学び方ガイド
  • Minecraftマルチサーバーの基礎

    はじめに インターネットを利用している方であれば、「Minecraft」というゲームをまったく知らない!という人も減ってきたのではないでしょうか。MinecraftはスウェーデンのストックホルムにあるMojang AB社が開発し、現在では主にMicrosoftが販売を行っている世界的に人気の高いゲームです。プレイできるプラットフォームはPCを始めとして、メジャーなゲーム機の殆どに展開しています。 連載では、このMinecraftを題材に、主としてPC版におけるマルチプレイ用サーバーの構築と運営についてのノウハウを紹介していきたいと思います。 なぜ、いまPC版のマルチサーバーなのか? 近年様々なゲーム機でMinecraftに触れられる機会が多くなってきましたが、今でもMinecraftのアップデートPC向けをメインとして開発されています。そのため、PC以外のプラットフォームでしか遊んだこ

    Minecraftマルチサーバーの基礎
  • チューニングに使えるJava性能監視ツール

    JavaVMを監視するツール群 今回は、Java EEアプリケーションをチューニングする際に便利なツールを紹介します。JavaVMの状態を監視/レポートするツールは、フリー・ソフトウエアや製品を含め、いくつか提供されています。米Oracle(米Sun Microsystems)のJava環境にも、標準で便利なツール群が付いています。記事では、標準ツールであるjconsoleとjstatの2つを紹介します。 表1: 主なJavaVM監視/レポーティング・ツール 製品名 特徴

    bopperjp
    bopperjp 2015/09/15
    ヒープの説明
  • 生産性が高いってどういうこと?

    生産性が高いとは 生産性という言葉が、さまざまな分野において使われるようになり、一般的な単語となりました。しかし、よく使われるようになった反面、その意味はあいまいです。生産性が高いということが「良いこと」だということはわかりますが、具体的に何が良いのかは明確ではありません。例えば、「生産性が高いからこのフレームワークを採用します」といった場合に、その生産性とは一体何を指しているのでしょうか。 「生産性が高い」とは、少ないインプットで大きなアウトプットを生むことですが、求められるアウトプットはさまざまですし、少なくできるインプットもさまざまです。上述のフレームワークの例で言えば、仮に少ない時間で一般的なWebサイトを構築できる「生産性の高い」フレームワークだったとしても、複雑な要件を満たす必要のある業務アプリケーションの開発ではそれほど生産性は上がらないでしょう。 よって「生産性が高い」とい

  • DockerとLinux OSのリソース共有状況の調査

    DockerコンテナとベースとなるLinux OSとは、カーネルや様々なリソースを共有している。リソースを個別に保持するサーバ型仮想化と比較するとリソース消費量が少なく、1台のサーバ上でより多くの仮想マシンを起動させることが可能である。 コンテナ型仮想化のメリットはわかりやすいが、同時にこの特徴は、共有されているリソースをあるコンテナが大量に消費するような状況が発生した場合、ベースOSにも影響を及ぼす可能性があるという懸念を生じさせる。この懸念を払拭し問題点を明らかにするために、DockerコンテナからベースOSのリソースを消費させる試験を行い、その影響について検証した。 連載で性能評価などを行ってきた過程で、Dockerの動作は(若干ではあるが)Linuxディストリビューションごとに異なることもわかっている。そこで今回は、LinuxディストリビューションによるDockerのリソース使用

    DockerとLinux OSのリソース共有状況の調査
  • IoTに適したNoSQL・分散Key-Valueストア

    NoSQLという言葉をご存知の方は多いと思いますが、実際に使ってみたことがある方はまだ少ないのではないでしょうか? これまでは一部のWebサービス企業などで利用されてきたNoSQLですが、最近では様々な企業で導入が進んでいます。しかし現状ではまだNoSQLに関する情報が少なく、導入にはハードルが高いところもあると思います。そこで今回、NoSQLに関する知見を増やすため、近年注目されているIoT(Internet of Things)への適用を想定した書き込み性能検証を実施しました。連載では、その検証結果についてご紹介したいと思います。NoSQL導入の参考になれば幸いです。 最近よく聞くようになったIoTですが、システム化に際してはデータストア(データを保存しておくシステム)に関して、従来のシステムとは違った課題があります。第1回では、IoTにおけるデータストアの課題と、それに対する解決策

    IoTに適したNoSQL・分散Key-Valueストア
  • スマートハウスの基盤技術としてのOSGi

    スマートハウスとは 近年、CO2削減や環境産業創出のため、スマートグリッドが各国で推進されています。スマートグリッドとは、はっきりとした用語の定義はありませんが、電力網やガス網など社会インフラ上の機器から情報を集約して解析し、インフラ上の機器のエネルギ消費量を最適化する、という試みです。 最近では特に、スマートグリッドの1つの構成例として、宅内をネットワーク化した"スマートハウス"が注目されています。今回の記事では、スマートハウスを構成する通信規格と、通信規格を駆使したスマートホーム・アプリケーションの基盤となる規格のOSGiについて解説します。 スマートハウスは、図1のような構成になっています。 スマートハウスの中心となる機器は、ホーム・ゲートウエイ(HGW)と呼ばれるゲートウエイ装置です。通信キャリアやスマートハウス事業者によって配布されます。機器同士がHGWを介してつながって連携する

  • Hadoopがスケール・アウトする仕組み

    前回の記事では、Hadoopが膨大なデータをバッチ処理するための「インフラ」としての性質を備えていること、情報爆発時代の新たなインフラとして普及しつつあることを説明しました。その中で、情報爆発時代に必要とされるインフラは、「スケール・アウトが可能であること」という条件を備えていなければならないことを示しました。サーバーの台数を増やすことで容易にシステムの処理性能が増やせることは、Hadoopの重要な特徴です。今回は、Hadoopがどのようにしてスケール・アウトを可能にしているかを、「分散ファイル・システム」と「MapReduceフレームワーク」の2つの観点から解説します。 スケール・アウトとは? コンピュータ・システムを新たに構築するときは、必ず「運用」のことを考えておく必要があります。システム・トラブルが発生した場合の対応策を決めたり、将来の仕様変更に備えてプログラムに拡張性を持たせたり

  • Google App EngineのLow-Level APIを極める

    Copyright © 2004-2024 Impress Corporation. An Impress Group Company. All rights reserved.

    bopperjp
    bopperjp 2011/01/24
  • 1