タグ

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

  • ここまでできる!標準ファイルサービス

    Windows Server 2008ファイルサービスの構成 Windows Server 2008の運用思想の1つに「役割ベース」という考え方がある。これは、サーバーの役割によって、管理コンソールから利用できる機能や、外部に公開されるネットワークポートなどが最適化されるということだ。 ファイルサーバー機能についても同様であり、管理者が意図して「ファイルサービス」の役割をサーバーに追加しなければ、ファイルサーバーとして利用することができない。このような思想により、Windows Server 2008は従来のサーバー製品に比べてハードウエアや管理にかかわるリソースを最小限に抑えることができるよう、工夫されている。 ここで、「ファイルサービス」と「ファイルサーバー」という2つの言葉が出てきたことに注意していただきたい。これらはWindows Server 2008では明確に使い分けられている

  • Arduinoを用意して簡単なプログラミングをはじめよう

    前回はミニ四駆の紹介と、FULLERで作製したミニ四駆の紹介で終わりましたが、今回は実際にモノを動かしていきます。まずは、Arduinoに触れるところからはじめます。 Arduinoキットや工具を準備しよう まずは今回必要となるArduinoのキットやテスター、USBケーブルなど以下のリストの道具を揃えます。ショップに行くのが面倒という方は、リンク先(Amazon)を参照してください。 購入するものリスト Arduinoをはじめようキット MAS830L 高精度 デジタルマルチテスター Amazonベーシック USB 2.0 A-Male to B-Male Cable 1.8 m テスターはあまり必要でないと思う方がいるかもしれませんが、必ず用意してください。Arduinoを使ってデバイスを開発する時に、テスターはデバッガの役割を果たします。ソフトウェアを開発する上でデバッガが欠かせない

  • Rubyプログラミングの基礎知識

    実践Ruby on Rails 4 現場のプロから学ぶ格Webプログラミング 顧客管理システムの構築を体験しながら、Railsアプリケーション開発のノウハウを習得! この記事は、書籍『実践Ruby on Rails 4 現場のプロから学ぶ格Webプログラミング』の内容を、Think IT向けに特別にオンラインで公開しているものです。詳しくは記事末尾の書籍紹介欄をご覧ください。 インスタンス変数 「インスタンス変数」。単純そうで意外に奥が深い概念です。もう一度おさらいしておきましょう。 インスタンス変数とは インスタンス変数は、特定のオブジェクトが排他的に所有する変数です。そのオブジェクト自身だけがその値を参照できます。インスタンス変数という名前は、クラス変数との対比で用いられています。クラス変数は、あるクラスのすべてのインスタンスが共有する変数です。インスタンス変数は、それぞれのインス

    Rubyプログラミングの基礎知識
  • 業務ソフト開発と組み込み開発の違い

    「組み込み」という言葉は、業界用語としてはもちろんですが、一般用語としても通じるくらいに普及してきました。「組み込み」という言葉の後には、もちろん「コンピュータ」が省略されています。正しくは「組み込みコンピュータ」です。 「組み込み」もコンピュータです。このため、プログラムによって動作するという点で、パソコンやサーバー機と同じです。しかし、組み込みコンピュータは、パソコンやサーバーとは特性が異なっており、プログラムの開発には独特の難しさがあります。このため、組み込みコンピュータを対象としたソフトウエア開発者が、著しく不足しています*1。 *1: 2009年に経済産業省とIPAが発表した『2009年版組み込みソフトウエア産業実態調査報告書』によれば、組み込みソフトウエア開発の従事者は日全体で約25万8000人で、約6万9000人程度不足している。 連載では、組み込みコンピュータを取り巻く

  • MySQL Workbenchを使ってデータモデリングを学んでみよう

    「データモデリング」とは? さて、いきなりWorkbenchホームページのModelsからモデリング!を開始する前に、すこしデータモデリングについてのお話をさせてください。 みなさんが今利用しているMySQLを含むRDBMSは1970年代にIBMのE.F.コッド博士によってなされた提案を源流として、今日まで発展を続けてきました。その発展過程において、現実の世界におけるデータ要件と、データベースの設計とを結びつける方法論が必要になりました。 1976年にP.チェン博士によって提案されたER図はその役目を担うことが可能であり、各種改良を重ねられて今日まで利用されています。現実世界のデータをどのように扱うかをまとめ、ER図のような図版で視覚化したものを「データモデル」といい、そのデータモデルを組み上げていくことを「データモデリング」といいます。 データモデリングの過程、および結果として作成された

    MySQL Workbenchを使ってデータモデリングを学んでみよう
  • PHPUnitによるテスト:応用編

    PHPUnitでのテスト応用編 これまで、PHPUnitのフレームワークを利用したテスト・プログラムの書き方や、コンソールから phpunitコマンドを実行してテストする方法を説明してきました。今回は、PHPUnitをより有効に活用する方法について紹介したいと思います。 具体的には、下記の3つの方法を順に説明します。 (1)NetBeans IDEを使った単体テスト (2)Xdebugを使ったコード・カバレージの測定 (3)Selenium RCを使ったブラウザ・テストの自動化 NetBeans IDEを使った単体テスト 「NetBeans IDE」は、マルチ言語、マルチプラットフォームの統合開発環境(IDE)です。米Sun Microsystemsとオープンソースのコミュニティによって開発されており、無償で利用することができます。もともとはJavaの開発環境だったの ですが、次第に他の言

  • 外部モジュールとの連携

    テスト・クラスの拡張 今回は、データベースへのアクセスが必要なテストや、未実装のモジュールを補完してテストするなど、外部モジュールとの連携が必要な場合に役立つテスト方法について紹介します。 まず、データベースのテストに入る前に、PHPUnitのテスト・クラスについて振り返ってみます。 これまで作成したテスト・ケースは、すべてPHPUnit_Framework_TestCaseクラスを継承していました。このクラスはPHPUnitの基底テスト・クラスになります。テスト・ケースを実装するには、setUp()メソッドとtearDown()メソッドをオーバー・ライドします。その中でテスト開始前の初期化と、終了後のクリーン・アップ処理を行います。そして、テスト項目ごとにテスト・メソッドにアサーションを定義しました。 このようにテスト・ケースを実装していくにうちに、共通の処理をまとめたり、新たな機能を追

  • アサーションの使い方

    アサーション・メソッドの種類 前回は、PHPUnitをインストールし、簡単なテストを実行する方法について説明しました。その中で、assertEquals()というアサーション・メソッドを使い、2つの文字列が一致することを確認するテストを作成しました。 基的なテストであれば、assertEquals()だけで間に合うのですが、数値の大小を比較したり、配列のキーや要素について調べたりする場合は、あらかじめ専用のメソッドがあると便利です。実は、PHPUnitでは、図1のようなアサーション・メソッドがあらかじめ用意されています。これらを利用することで、効率的にテスト・ケースを作成できます。 そのほかのアサーション・メソッドについては、こちらを参照してください。 メソッド名 | 成功条件 -------------------------------+-----------------------

    アサーションの使い方
  • PHPUnitの概要と導入

    PHPUnitとそのメリット 連載では、PHPPHP: Hypertext Preprocessor)で実装されたプログラムの単体テストをテスト・ツール「PHPUnit」を使って行う方法について、基から実践的な利用方法までを4回にわたって紹介します。 ユニット・テスト(単体テスト)とは、プログラムの構成要素であるクラスや関数などの単位で動作を確認するためのテストです。PHPUnitを利用することで、単体テストの手順をPHPプログラムとして作成し、コマンド・ラインなどからバッチ処理的に実行することが可能になります。 PHPプログラムのテストと言えば、もっぱら人手でブラウザを操作して画面遷移を確認したり、フォームに値を入力して実行結果を目で確認したりすることが一般的だと思います。しかし、開発時に何度も同じようにページを開いて、同じようにテスト・データを入力し、結果が正しいことをすべて手動

    PHPUnitの概要と導入
  • CSS3のWebフォントを使ってみよう

    CSS3のWebフォント機能は、サーバー上にあるフォントを利用するもので、ユーザーの閲覧環境に依存しません。使用したいフォントファイルをサーバーにアップロードし、CSSで読み込ませるだけで利用できるので、フォントの選択肢が広がります。 これまでテキストを画像化して表現していたWebのタイポグラフィも、Webフォントを使って自由に表現できるわけです。テキストなので、選択やコピー&ペーストも可能、SEOにも有効です。もちろん、font-sizeやcolor、text-shadowなどのCSSプロパティも適用できます。 主要なブラウザは、既にWebフォントに対応しているので、少しの工夫ですぐに利用できます。ただし、フォント形式やライセンスなど、利用に際してはちょっとした注意が必要です。稿では、これら注意点を踏まえてWebフォントの利用方法を紹介します。 Webフォントの利用方法 では早速Web

  • そろそろ本気で学びませんか?

    DOMを制御してコンテンツを動的に変更 JavaScriptを使って、HTMLにアクセスするには、DOM(Document Object Model)というアプリケーションインターフェース(API)を利用します。HTMLは、図1に示すようにDOMツリーと呼ばれる構造で表現することができます。このツリー構造で構成されてHTMLの各要素に、JavaScriptでアクセス可能になっています。 」にJavaScriptでアクセスするためには、リスト2の(1)に記載しているように「document.getElementById("articleTitle")」という方法で記述します。つまり、「document.getElementById("ID名")」という書式でアクセス可能になります。 リスト2の(1)では、これから内容を変更しようとしているHTM内の場所「articleTitle」「conte

  • NOSQLは「知る時代」から「使う時代」へ

    連載では、オープンソースの分散KVS(Key-Value Store)である「okuyama」と、その関連技術について、4回にわたって解説します。 okuyamaは、クラウド時代のデータ・ストレージと言われる、「NOSQL」と呼ぶ部類に属するデータ・ストレージです。連載では、NOSQLが登場した背景や関連ソフトウエアの特色を整理したのち、okuyamaの概要と機能の紹介、そして実際にどのように配置・運用するか、などを解説します。 第1回: NOSQLは「知る時代」から「使う時代へ」 - NOSQLの登場した背景や特性、NOSQLの種別を紹介します。 第2回: NOSQLの新顔、分散KVS「okuyama」の機能 - 分散KVS「okuyama」の概要から機能の詳細までを解説します。 第3回: 分散KVS「okuyama」の使い方 - 実際にokuyamaを起動してから利用までの手順と運用

  • [ThinkIT] 第1回:PostgreSQL と MySQL の紹介 (1/4)

    共に連載執筆開始時点での最新安定バージョンですが、ある特定のバージョンに特化した内容を記述する予定はないため、基的にはPostgreSQLはバージョン8.1系、MySQLはバージョン5.0系の内容としてご理解ください。 また、PostgreSQLMySQLともに様々なOS上で動作可能ですが、特に断りのない場合はLinux版となります。 PostgreSQLは、1980年頃にUCB(カリフォルニア大学バークレイ校)の研究プロジェクトにて開発されたPOSTGRESというRDBMSが前身です。その後、1995年に同校の大学院生によりPostgres95としてリリースされ、現在の開発チームであるThe PostgreSQL Global Development Groupがこの開発を引き継いだのは1996年です。その際に、名称がPostgreSQLに改名され、ソースコードを公開し、現在もコミ

  • 教科書的ではなく、現場にあったデータベース設計のコツ

    前回はデータベース設計をする際に誰もがぶつかる問題である、「列名に日語を使うか?」「どのデータ型を使うか?」ということをテーマに取りあげました。今回も引き続き、データベース設計をする際に迷いやすい点をいくつか取りあげてみようと思います。 今回は前回と同様、SQL Serverのサンプルデータベース「Northwind」を元にして、データベース設計で迷いやすい点について考えてみましょう。図1は「Northwind」をER図にリバースした中から、エンティティ「商品」「商品カテゴリ」をサブウィンドウで表示したものです。 図1のように商品を分類するためにカテゴリコードをつけるエンティティ構造はよくあります。しかし実際の販売管理システムにおいては、このようなフラットなカテゴリ構造は不便です。なぜかというと、一般に商品カテゴリなどは表1のように階層構造で分類する必要があるからです。 01 ハードウェ

  • 人気軽量プログラミング言語5選

    はじめに 今回は人気軽量プログラミング言語5選と題して、PythonRubyPerlPHPJavaScrpitを紹介します。今回扱う言語も、前回と同じくTIOBE Softwareのランキングで人気があるものを選んでいます。 軽量プログラミング言語は、Lightweight Language(略してLL)とも呼ばれます。短い記述で処理を実現でき、手軽に取り扱うことができるプログラミング言語です。PythonRubyはLLの代表格ですね。 LLはCやJavaなどを使うまでもないような、ちょっとした処理を書く際に利用するととても便利です。また、最近ではCPUの性能向上やメモリの大容量化に加えて、軽量プログラミング言語自身の速度改善なども積極的に行われているので、大規模な開発において活躍する機会も増えています。 LLは学習難易度が比較的低いものが多いです。前回取り上げたコンパイラ言語を

  • NOSQLの新顔、分散KVS「okuyama」の機能

    NOSQLについて解説した前回の記事は、いかがだったでしょうか。今後のアプリケーションでは、増え続けるデータを扱うことが非常に多くなると思います。前回の記事が、こうしたケースに適した新たなストレージの1つとして、NOSQLを理解するきっかけになっていたら幸いです。 連載2回目の今回は、NOSQLの1つである「okuyama」の全体概要と、機能的な特徴を紹介します。 1. 「okuyama」の概要 okuyamaは、まだ聞きなれない方も多いかと思いますが、筆者が開発している分散キー・バリュー・ストアです。2009年12月ごろから開発を始めました。現在はSourceforge.jpにて公開しています。もともとは学習を兼ねて作成したため、一部のログ・ライブラリなどを除き、すべて1から実装しました。2010年1月にファースト・リリースを行い、現在はバージョン0.8.6となっています。 以降は、ok

  • Agile×Ruby×Cloudが示す価値

    はじめに 連載では、Webアプリケーションの新しいつくり方について紹介します。その中心となるキーワードは、「Agile」「RubyRails)」「Cloud」の頭文字から付けた「ARC」です。 それぞれのキーワードは個別に語られることが多いと思いますが、連載ではその組み合わせによって生まれる相乗効果や相性の良さについて解説していきます。 筆者の所属するSonicGardenでは、このARCを活用することで、いくつものWebアプリケーション開発を行ってきました。 例えば、企業向けのSaaSとして提供している社内SNS製品の「SKIP(http://www.skipaas.jp)」や、フリーミアムで提供しているプロジェクト情報共有ツール「youRoom(http://youroom.in)」などです。 それらのWebアプリケーションの開発と運用をしてきた経験を全4の記事にまとめました。

  • クラウドプラットフォーム「Heroku」の活用

    前回は、ARCを実践していく上での開発体制、ツールや手法、マネジメント、そしてビジネス・モデルについて、SonicGardenでの取り組みを解説しました。今回は、プロジェクト情報共有ツールである「youRoom」のサービスをスモール・スタートとする際に利用した、RubyのPaaSである「Heroku」の特徴と、基的な使い方を紹介します。 Herokuとは Herokuは,昨今急速に成長しているRubyアプリケーションのクラウドプラットフォーム(ウェブサービスのホスティングサービス)です。 昨年末に開催されたSalesforce.comのイベント「Dreamforce 2010」にて、Salesforce.comによる買収が発表され、瞬く間に世界中から注目を集めるPaaSとなった事でも有名です。 Herokuでは、2011年2月現在、ソーシャル・アプリケーションやモバイル・アプリケーション

  • YUIのCSSライブラリとは

    リセットCSSを使ってみる JavaScriptライブラリと聞くと、デザイナーやマークアップエンジニアの方には無縁のものと思われるかも知れません。しかし、Yahoo! UI Library(YUI)にはもう一つ「CSSライブラリ」というものがあります。今回は、CSSライブラリの使い方を紹介します。 まずは、CSSや装飾用のタグを一切使わず、次のようなシンプルなHTMLをWebブラウザで表示してみます。サンプルソースをこちらからダウンロードできますので、ご覧ください(813_1.zip/1.96 KB)。 sample1.htmlをWebブラウザでプレビューしてみると、見出しが非常に大きな文字で表示され、リストには黒丸が表示されています(図1-1)。これは、Webブラウザが文書を見るための最低限のスタイルを標準で持っているためで、デザインを施すためにはこのスタイルを一度無効にしてから、スタイ

  • DBサーバーの負荷分散

    MySQLアクセスを負荷分散する ユーザーからのアクセス数が非常に多いWebサイトにおいて、MySQLのSLAVEサーバーを複数台並べて負荷分散させるということがよく行われています。ただ、Webアクセスの負荷分散は一般的なテーマなのでいろいろなところで語られているのに対し、DBアクセスの負荷分散というテーマは一般的でないのかあまり語られていないように感じます。 DBアクセスを負荷分散するにあたって一番荒っぽい方法は、Webサーバー上のプログラムの中でどのSLAVEサーバーに接続するかをランダムで決める方法です。ランダムと言っても長時間アクセスしているとほぼ接続先が均等化されるので、一見この方法でも問題ないように見えます。しかしこの方法だと、接続しに行こうとしたSLAVEサーバーが高負荷もしくはサービス停止中であっても構わず接続しに行ってしまうという問題があります。 このような問題を解決する