タグ

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

  • BOOK Preview:Code Complete 第2版 24章 リファクタリング(1/6) - @IT

    Code Complete 第2版 上・下 ― 完全なプログラミングを目指して ― 第24章 リファクタリング マイクロソフトプレスの書籍紹介ページ 書籍情報のページ 2005/05/10 コーナーは、.NET関連の新刊書籍から主要なチャプターをそのまま転載し、その内容を紹介するものです。 今回は、日経BPソフトプレス/マイクロソフトプレスより2005年3月28日に発行の書籍『Code Complete 第2版 下 ― 完全なプログラミングを目指して』より、同社の許可を得てその内容を転載しています。 同書は、11年前に出版された名著「Code Complete」の第2版です。第2版では、全体をとおしてオブジェクト指向の考え方が反映され、新しい章も多数追加されています。また、開発言語としてC#やVisual Basic .NETも取り上げられています。“完全な”コーディングのための鉄則を凝

  • BOOK Preview:Code Complete 第2版 第6章 クラスの作成(1/8) - @IT

    コーナーは、.NET関連の新刊書籍から主要なチャプターをそのまま転載し、その内容を紹介するものです。 今回は、日経BPソフトプレス/マイクロソフトプレスより2005年3月28日に発行の書籍『Code Complete 第2版 上 ― 完全なプログラミングを目指して』より、同社の許可を得てその内容を転載しています。 同書は、11年前に出版された名著「Code Complete」の第2版です。第2版では、全体をとおしてオブジェクト指向の考え方が反映され、リファクタリングの章なども追加されています。また、開発言語としてC#やVisual Basic .NETも取り上げられています。“完全な”コーディングのための鉄則を凝縮した書は、開発者ならば必読といえるでしょう。 記事では「第6章 クラスの作成」の前半部分を転載しています。クラスを記述しようとすると、どちらの実装がより美しいのだろうかとい

  • セキュリティ・ダークナイト 連載インデックス - @IT -

    辻 伸弘 ソフトバンク・テクノロジー株式会社 ダークナイトが帰ってきた! 「セキュリティ対策の『ある視点』」を執筆したペネトレーションテスターによる新連載は、気になるセキュリティトピックを、時には攻撃者として、時には防御者として取り上げます(編集部) プレイ・ザ・ゲームCTFが問いかけるハックの意味 セキュリティ・ダークナイト(1) 攻撃・防御のテクニックを駆使し、解答を探し出す「Capture the Flag」。出題者、攻撃者の心理が分からなければ、ハックの意味は見えないのだ

  • Metasploit――大いなる力を手に入れる

    ※ご注意 記事に掲載した行為を自身の管理下にないネットワーク/コンピューターに行った場合は、攻撃行為と判断される場合があり、最悪の場合、法的措置を取られる可能性もあります。このような調査を行う場合は、くれぐれも許可を取った上で、自身の管理下にあるネットワークやサーバーに対してのみ行ってください。 落ちるのは、這い上がるため。知るのは、守るため。 約1年のご無沙汰である。 前回の連載を終えてからの1年間、筆者はいろいろな方に出会い、いろいろな刺激をもらった。中には落胆をしてしまうような状況も味わい、発奮するような機会も与えてもらった。その繰り返しだった。 とある映画の続編のタイトルと同様、今回の連載タイトルは、前回の連載タイトルから想像に難くないものだろう。正直、連載を再開する上でタイトルについてはいろいろ悩んだ。編集担当と話をしていくつか別の候補も出たが、どれもしっくりこなかった。 が、

    Metasploit――大いなる力を手に入れる
    Steiger31226
    Steiger31226 2015/04/28
    “行”
  • 第1回 暗号化の基礎

    暗号化技術は、情報の保護やコンピューターセキュリティに欠かせない技術である。今回は暗号化技術の基礎として、暗号化の基、暗号の安全性、共通鍵暗号と公開鍵暗号について解説。 暗号化技術は、情報の保護やコンピューターセキュリティに欠かせない技術である。ファイルやデータの暗号化の他、HTTPSや、無線LANにおけるWEP/WPA/TKIP/AESのようなセキュアな通信、証明書やデジタル署名、PKIなど、多くの場面で暗号化技術が使われている。今回からしばらくは、暗号化の基礎や共通鍵暗号、公開鍵暗号、証明書、PKIなどについて、IT Proの初心者向けに暗号化技術の基礎を解説していく。今回は、暗号化の基礎を解説する。 暗号化とは データを保護するだけなら、暗号化ではなく、「ファイルの許可属性(読み出し禁止などの属性)」や「アクセス制御(ACL)」などの方法もある。これらは、アクセスするユーザーに応じ

    第1回 暗号化の基礎
  • なぜTwitterは低遅延のままスケールできたのか 秒間120万つぶやきを処理、Twitterシステムの“今” − @IT

    ユーザー同士のつながりを元に時系列に140文字のメッセージを20個ほど表示する――。Twitterのサービスは、文字にしてしまうと実にシンプルだが、背後には非常に大きな技術的チャレンジが横たわっている。つぶやき数は月間10億件を突破、Twitterを流れるメッセージ数は秒間120万にも達し、ユーザー同士のつながりを表すソーシャル・グラフですらメモリに載る量を超えている。途方もないスケールのデータをつないでいるにも関わらず、0.1秒以下でWebページの表示を完了させなければならない。そのために各データストレージは1~5ms程度で応答しなければならない。 Twitterのリスト機能の実装でプロジェクトリーダーを務めたこともあるNick Kallen氏が来日し、2010年4月19日から2日間の予定で開催中の「QCon Tokyo 2010」で基調講演を行った。「Data Architecture

  • サイバー攻撃から“身を守る”手法、その歴史を知る

    後編では、サイバー攻撃による脅威への対策としてセキュリティベンダーが取り組んできた、さまざまな技術の進歩を追いかけます。 「サイバー攻撃の今、昔(前編)」では、「脅威の変遷」という観点から、サイバー攻撃がどう変化してきたかを確認しました。一つの不正プログラムで大規模感染を引き起こした昔の脅威から、金銭目的の組織犯罪としての標的型サイバー攻撃への変化があったことが理解いただけたかと思います。 後編では、サイバー攻撃の変化に伴い、その脅威への対策としてセキュリティベンダーが取り組んできた、さまざまな技術の進歩を「ウイルス対策」「不正サイト対策」「スパム対策」「未知の脅威対策」の観点から見ていきます。 「ウイルス対策」の歴史、それは膨大な亜種との戦い 第三者評価機関として有名な「AV-TEST」では、脅威に関する統計結果を期間ごとに表示できるデータを公開しています(図1)。これを見ても分かるよう

    サイバー攻撃から“身を守る”手法、その歴史を知る
    Steiger31226
    Steiger31226 2014/10/22
    “一昔”
  • 「Android Wear」のデベロッパープレビュー公開、Oculus Riftの新開発キットも

    ウェアラブルデバイス関連の話題が複数登場。開発キットやAPI提供で、アプリケーション開発の敷居が下がりつつある。 米グーグルは2014年3月18日、Androidプラットフォームをウェアラブル端末に広げるプロジェクトAndroid Wear」のデベロッパープレビューを公開した。まずは腕時計型端末で、ユーザーが必要な情報を必要な時に届けることを目指している。 Android Wear搭載の腕時計は音声で操作して必要な情報を検索したり、タクシーを呼んだりメッセージを送信したりすることが可能。フィットネスアプリを使えば運動した距離や時間の計測ができ、スマートフォンなどと連動させて音楽のプレイリストを表示したり、テレビ画面に映画をキャストしたりもできる。 デベロッパープレビューでは自分のアプリの通知をAndroid Wear向けにカスタマイズでき、エミュレーターを使って円形と正方形のウェアラブル

    「Android Wear」のデベロッパープレビュー公開、Oculus Riftの新開発キットも
    Steiger31226
    Steiger31226 2014/10/10
    “よう”
  • 開発者が知っておきたいiOS 8の新機能&Xcode 6のインストールと基本的な使い方

    連載目次 日時間の2014年9月18日午前2時に、iOS 8がリリースされました。去年リリースされたiOS 7では、ユーザーインターフェースがシンプルなものに一新されるなど、一般ユーザーにもハッキリと分かるアップデートでしたが、iOS 8では機能面の強化が中心になっています。 これまで開発者が扱えなかった機能が使えるようになったり、新しいフレームワークが追加されたり、新しい言語が発表されたりと、開発者にとってのインパクトが大きいリリースだったのではないでしょうか。 iOSユーザーのiOS 8への移行は進んでおり、9月21日の時点でアップルの開発者向けのページでは、App Storeを利用するデバイスのうち46%がすでにiOS 8を使用しているという統計が公表されています。

    開発者が知っておきたいiOS 8の新機能&Xcode 6のインストールと基本的な使い方
    Steiger31226
    Steiger31226 2014/10/03
    “は”
  • JavaScriptでも制御できる! Arduinoの基礎知識

    JavaScriptでも制御できる! Arduinoの基礎知識:Arduinoで始めるWeb技術者のためのIoT入門(1)(1/2 ページ) 今注目のInternet of Thingsを実現するセンサーデバイスのインターフェースとしてArduinoを使い、電子工作の基礎から実装までを紹介する連載。初回は、Arduinoの概要と注目を集める理由、4つの面白い利用例を紹介します。 連載目次 「IoT:モノのインターネット」をJavaScriptで体験 皆さんは「IoT」という言葉をご存じでしょうか。IoTは「Internet of Things」の略称で「モノ同士がネットワーク越しに連携し合う世界」を言い表しています。 これまで、インターネットといえば、PCやサーバー、スマートフォンなどの限られたデバイスをつないでいました。IoTが目指す世界では、その対象を大きく広げて、モノをインターネット

    JavaScriptでも制御できる! Arduinoの基礎知識
  • ウェアラブル時代に見直したいAndroidの加速度/重力センサー、ジャイロスコープ

    この表にはTYPE_GAME_ROTATION_VECTORなどの、他のセンサーと同一でタイプのみ異なるものは含んでいないので、注意してください。全てのセンサータイプが知りたい場合はSensorのJavadocを参照してください。 センサーの概要や挙動、仕様に関しては、以下のドキュメントに目を通しておくことをお勧めします。 Sensor Overview | Android Developers(センサーの概要) SensorEvent | Android Developers(SenserEventのJavadoc) Motion Sensors |Android Developers(センサーの詳細な説明) 特に、センサーが通知してくる値の意味に関する説明がJavadocと詳細説明に詳しく解説されているので、目を通しておくとよいでしょう。 今回のサンプルアプリ さて、今回のサンプルアプ

    ウェアラブル時代に見直したいAndroidの加速度/重力センサー、ジャイロスコープ
  • RailsのテンプレートエンジンSlimの書き方とActionViewのヘルパーメソッド、レイアウトの使い方

    前回の「Rails開発を面白くするアクションコントローラーの5大機能とルーティングの基」までの連載で、MVCアーキテクチャにおけるモデル(M)とコントローラー(C)について解説してきました。今回は最後の主要なコンポーネントのビュー(V)について解説します。 ビューはアプリケーションの出力テンプレートの機能を担っています。Web向けにはHTML形式、メール文向けにテキスト形式、アプリ向けにJSON形式など、Railsのビューはさまざまな形式の出力に対応できます。 稿では、まずテンプレートにデータを当てはめるテンプレートエンジンについて解説します。その後で定型的な出力を補助するヘルパーメソッドの紹介とオリジナルのヘルパーメソッドの作成方法について説明します。最後にビューの実装時に押さえておきたいポイントを紹介します。 説明に使用するサンプルプログラムはGitHubにある「book_lib

    RailsのテンプレートエンジンSlimの書き方とActionViewのヘルパーメソッド、レイアウトの使い方
  • Jenkins+HipChat+Hubotをチーム開発に導入してお手軽CI

    チームでiOSアプリ開発を行う際、チャットツールを導入することはよくあることだと思います。近年、国内で利用されている代表的なチャットツールとしては、次のようなサービスが挙げられます。 HipChat Skype ChatWork Yammer Slack 今回は、上記の中でもJenkinsと連携させる上で現在最もポピュラーなサービスといえる「HipChat」について、アカウントを登録し、Jenkinsと連携する手順を交えて解説します。さらに、Botフレームワーク「Hubot」を組み合わせて、CIをより効率的に回す方法について解説します。 無料でも使えるチャットツール「HipChat」とは HipChatは「Bitbucket」「Confluence」などで知られるAtlassian社製のチャットサービスです。チャット機能以外にも、ファイル共有やスクリーン共有、ビデオ通話などといった機能も兼

    Jenkins+HipChat+Hubotをチーム開発に導入してお手軽CI
  • 継続的デリバリ/デプロイを実現する手法・ツールまとめ

    継続的デリバリ/デプロイを実現する手法・ツールまとめ:DevOps時代の開発者のための構成管理入門(終)(1/2 ページ) バージョン管理や継続的インテグレーションとも密接に関わる継続的デリバリ/デプロイメントの概要や主なツール、経緯、実践事例を紹介。実践手法として「ブルーグリーン・デプロイメント」「Immutable Infrastructure」が注目だ。 完全に自動化されたリリースプロセスが必要となる「継続的デリバリ」とは いよいよ連載「DevOps時代の開発者のための構成管理入門」も最終回となりました。今回のトピックは「継続的デリバリ」です。 継続的デリバリは、連載で扱ってきたバージョン管理や継続的インテグレーションなどの単一のプラクティスではなく、それら一連のプラクティスを包含した、ソフトウェアデリバリ全体に対しての「考え方」「アプローチ」といえるものです。 「継続的デリバリ

    継続的デリバリ/デプロイを実現する手法・ツールまとめ
  • Docker

    Dockerとは、軽量で互換性の高いコンテナ型の仮想実行環境である。ハイパーバイザ型の仮想実行環境よりも必要なリソースが少なく、管理も容易で、利用できるコンテナイメージも豊富なため、現在急速に普及が進みつつある。 連載目次 「Docker」(ドッカー)とは、軽量なコンテナ型の仮想実行環境を使った、主にソフトウェアの自動デプロイメント(展開)を支援するシステムである。dotCloud社(現Docker社)が開発し、2013年にオープンソースのプロジェクトとして公開された。ソフトウェアの高速な配布・実行や容易なイメージのカスタマイズ、導入運用の手軽さ、豊富なプレビルドイメージの提供などの理由により、パブリッククラウドからオンプレミスシステム、開発環境構築まで、さまざまなシーンで急速に普及しつつある。 軽量なコンテナ型の仮想実行環境 コンテナ型の仮想実行環境とは、Linuxに備わっている「コンテ

    Docker
  • GitHub製フレームワークHubotの概要とインストール、チャットアプリと連携する基本的な使い方

    近年、ソフトウェア開発を取り巻く環境が急激に変化してきています。ネットワークの整備や、コミュニケーションツールの進化に伴い、リモートワークやインターネット上での協業も盛んに行われるようになってきました。チームメンバー全員の住んでいる国が違う、といったこともあるかもしれません。 しかし物理的に離れた環境で働くと、今まで対面で行っていたコミュニケーションを別の手段で代替しなければなりません。SkypeやGoogleハングアウトなどのビデオ通話、HipChatやSlackなどのチャットアプリを利用することで仕事上必要なコミュニケーションは取れるようになりますが、ソフトウェア開発に関わる状況確認は別のツールを使う必要があります。 特にオペレーションは、いつ、誰が、どのような対応をしたか把握していたいですよね。 このような課題を解決する一つのスタイルとして、「ChatOps」があります。ChatOp

    GitHub製フレームワークHubotの概要とインストール、チャットアプリと連携する基本的な使い方
  • インフラストラクチャ自動化フレームワーク「Chef」の基本

    DevOpsというキーワードに関連して、「Chef」というツールの名前を聞いたことのある人も多いのではないでしょうか。この記事では、インフラにおける構成管理、展開作業を自動化するChefの構造および基的な使い方について解説します。 インフラストラクチャ自動化フレームワーク「Chef」 Chefは、物理、仮想、クラウドといったさまざまな大きさのインフラに対して、サーバやアプリケーションの展開を容易にするための自動化フレームワークです。 Chefの重要な要素の1つに「Infrastructure as Code」という概念があります。インフラをどのように構築し、維持するべきかという定義はRubyの文法で記述され、ソースコードのように扱うことができます。つまり、あたかもRubyでプログラミングをするように、インフラの構成管理をコードによって行えることがChefの利点の1つです。 自然言語による

    インフラストラクチャ自動化フレームワーク「Chef」の基本
  • Gitブランチを使いこなすgit-flow/GitHub Flow入門(終):プルリクエスト/レビューを取り込んだ、よりシンプルなGitHub Flowの運用を図解する (1/2) - @IT

    プルリクエスト/レビューを取り込んだ、よりシンプルなGitHub Flowの運用を図解する:Gitランチを使いこなすgit-flowGitHub Flow入門(終)(1/2 ページ) 数回にわたってgit-flowGitHub Flowを使ったGitの活用テクニックを紹介します。最終回は、GitHubが採用している、git-flowよりシンプルな構成のブランチ管理フローについてです。5つの運用ルールや開発の流れを図を交えて解説します。 連載「Gitランチを使いこなすgit-flowGitHub Flow入門」では、これまでgit-flowについて解説してきました。git-flowはプロダクトを厳格にリリースすることを念頭にフローが考えられていますが、プロジェクトによっては、冗長過ぎると感じることもあるかもしれません。連載の最終回となる今回は、git-flowに比べシンプルなブ

    Gitブランチを使いこなすgit-flow/GitHub Flow入門(終):プルリクエスト/レビューを取り込んだ、よりシンプルなGitHub Flowの運用を図解する (1/2) - @IT
  • 加速度センサとジャイロで体の動きを感じるアプリを作る(1/3) - @IT

    スマートフォンの「スマート」は、さまざまなセンサやハードウェアを使うところにある。連載で、さまざまなセンサやハードウェアを使うiOS(iPhoneiPad、iPod touch)のスマートなアプリを作ってみよう モーションセンサでスマート度アップ! 前回の「iOS端末ハードウェアの歴史と近接センサアプリ開発」では、初回ということでiOS端末ハードウェアの歴史をまとめ、簡単な「近接センサ」の使い方を紹介しました。今回はデバイスの「動き」を検知するハードウェアである「加速度センサ」「ジャイロスコープ」について触れ、それらの機能を利用したアプリを作成します。 なお、今回作成したアプリを動作させる際には、ジャイロスコープが搭載されているiPhone 4以降、iPod touch第4世代、もしくは、iPad 2以降のデバイスを使用してください。また、今回のサンプルアプリを作成するに当たって、開発

  • 連載インデックス「モバイルARアプリ開発“超”入門」 - @IT

    Webアプリ開発者がオープンソースのライブラリを使い、スマートフォンやタブレットなどのモバイル端末上で動くAR(拡張現実)アプリを作成する手法について解説していきます Unityでも使える無料ARライブラリVuforiaの基礎知識 Unity+ARで何ができるのか(1) ARを無料で制作できるライブラリVuforiaとUnityを使うことで、誰でも簡単にARのコンテンツを制作できる方法を紹介します