タグ

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

  • AVL木で木構造を学ぼう (1/2)- @IT

    第3回 AVL木で木構造を学ぼう はやしつとむ アナハイムテクノロジー株式会社 2009/4/13 オブジェクト指向によって、アルゴリズムは隠ぺいされていることが多くなった。しかし、「用意されていない処理」が求められたときに対応できるだろうか(編集部) 第2回「単純なキューと循環キュー」では、循環キュー構造を実装したCyclicQueueの解説と、TListやLinkedListを利用したキューについての比較を行いました。 今回は、木構造を取り上げます。引き続き筆者はDelphi 2009でサンプルプログラムを作成していますが、Delphiをお持ちでない方は下記のURLからTurboDelphiをダウンロードしてぜひインストールして見て下さい。 木構造とは何か? 木構造は、データの関係を根(ROOT)から複数の枝(EDGE)をたどって節点(NODE)を経由しながら葉(LEAF)へと至るよう

  • テキストファイルの行末に^Mが表示される

    Windowsで作成したファイルの改行コードはCR+LFだ。これに対して、Linuxの改行コードはLFだけなので、ファイルの転送方法によってはWindowsで作成したテキストファイルをviで開くと、すべての行末に「^M」が表示される場合がある。 1つずつ検索して削除することも可能だが、数が多いと面倒だ。エディタで一括置換するのが簡単でいい。viで一括置換するには、[:]キーを押してコマンドモードに入り、一括置換のコマンド

  • コマンドで画像ファイルの情報を調べるには

    画像ファイルの画素数や色数などを調べるには、GIMPなどのグラフィックソフトでそのファイルを開いてみればいい。しかし、単に大きさを知りたいだけなのに、Xを起動してGIMPを実行し、ファイルを開くのでは時間がかかる。このようなときは、ImageMagickに付属しているidentifyコマンドを使うといい。 identifyコマンドは、引数として指定された画像ファイルの種類や画素数などの情報を調べる。 $ identify sample.tif sample.tif TIFF 1152x864 DirectClass 16-bit 5839kb 0.2u 0:01 例では拡張子が.tifとなっているが、中身が画像ファイルであればsample.gazouなどというファイル名であっても構わない。より詳しい情報が必要なときは、-verboseオプションを付けてidentifyコマンドを実行すればい

  • 「Vagrant」って何ぞ?(・o・)

    「Vagrant」って何ぞ?(・o・):Vagrant開発者 Mitchell Hashimoto氏に聞いた 仮想の開発環境作成ツールとして人気が高まっている「Vagrant(ベイグラント)」。その開発者であるMitchell Hashimoto(ミッチェル ハシモト)氏が来日するとの情報を聞き、2013年7月12日、VOYAGE GROUPで行われたミートアップに駆け付けた。 「Vagrant」とは Vagrantとは、違う環境に移行可能な開発環境を簡単に構築・管理し、配布することができる開発環境作成ツール。「ほんの数行書くだけで開発用の仮想マシンを構築できる」という優れものだ。 Vagrantのビジョンは、「開発者とシステム管理者にとって最高の『開発フロー』を提供すること」。Vagrantをダウンロードして「vagrant up」と入力し、実行するだけでそれが可能となる。 システム管理

    「Vagrant」って何ぞ?(・o・)
  • ガチで5分で分かる分散型バージョン管理システムGit

    0分―― 分散型バージョン管理システム「Git」とは ソフトウェア開発ではソースコードを作成しながらソフトウェアを作り上げていきますが、バグの修正や機能の追加ごとにソースコードの状態を記録し、それぞれのバージョンを管理することが必要になります。 そういったソースコードを管理するソフトウェアが「バージョン管理システム」であり、複数人でのソフトウェア開発において必要不可欠なソフトウェアとなっています。

    ガチで5分で分かる分散型バージョン管理システムGit
    raomito
    raomito 2013/07/06
  • MVCとRailsの基本構成を学ぼう

    Web開発フレームワークとして人気の高いRuby on Railsの最新版、バージョン3を使ってWebアプリ開発の基を学びます。 人気のフレームワークでWeb開発を学ぶ Ruby on Railsは、いまやWebアプリケーションの開発フレームワークの有力な選択肢の1つとなっています。Ruby以外の言語のWebアプリケーションフレームワークも少なからずRailsの影響を受けているので、現在Rubyを使っていないエンジニアにとっても、Railsを知ることは大いに参考になるはずです。もうすぐRails3認定試験が格的に開始されるということもあり、この連載では、試験範囲の流れに沿って、Railsの基礎についてご紹介していきます(ただし、必ずしも試験対策というわけではありません)。 今回、連載第1回として記事では、Railsを理解する上で基となる考え方であるMVCについて説明した後、Rail

    MVCとRailsの基本構成を学ぼう
  • ビギナー向けデバッグツールで効率的に開発しよう

    主要なブラウザ「Chrome・Safari・Firefox・Internet Explorer」のビギナー向けデバッグツールが紹介された勉強会のエッセンスをお届けする。 2013年3月21日、新宿で行われたhtml5j.org主催の第37回HTML5とか勉強会に参加してきました。 今回のテーマはビギナー向けデバッグツール特集ということで主要なブラウザ「Chrome・Safari・Firefox・Internet Explorer」のデバッグツールに加え「Adobe Edge Inspect・Edge Reflow」の紹介が行われました。 筆者もそうですが、普段何となくデバッグツールを使っている方が多いと思います。しかしデバッグツールは、上手に活用することでWebサイト・アプリケーションの効率的な開発を行ったり、パフォーマンスチューニングの際に問題となる部分を素早く特定できたりする便利なツー

    ビギナー向けデバッグツールで効率的に開発しよう
  • ズルいデザイン(2):SassやCompassを使って、ズルいデザインテクニック (1/2) - @IT

    SassやCompassを使って、ズルいデザインテクニック:ズルいデザイン(2)(1/2 ページ) SassやCompassを使って、少ない手間でちょっといい感じに見せる小ズルいTipsを紹介。グラデーション、角丸のお手軽かつ効果的な使い方とは? シリーズ第2回、前回に続き、今回もSassやCompassを使って、少ない手間でちょっといい感じに見せる小ズルいTipsを紹介します。 今回は、グラデーション、角丸のお手軽かつ効果的な使い方について解説します。 (注)このページでは、個々のデザイン要素を分かりやすく説明するために、実寸サイズより画像を拡大して使用しています。 1: ズルいグラデーション CSS3ではグラデーションを扱えるようになったことから、画像を使わずに自在にグラデーションを描画して、CSSだけでよりリッチなビジュアル表現が可能になりましたが、一口にグラデーションといっても、う

    ズルいデザイン(2):SassやCompassを使って、ズルいデザインテクニック (1/2) - @IT
  • 配布パッケージの中身と、configureの役目を知る

    配布パッケージを展開してみる 前回からGNU Helloを例に、実際にビルドの手順を追いながら解説をしてきました。フリーソフトウェア、オープンソースソフトウェア(以下FOSS)のソースコード配布パッケージの入手、そのパッケージが物であることの確認までが終わりました。 GNU Helloのソースコード配布パッケージは無事入手できましたでしょうか。まだの方は前回を参照しながら入手してください。物かどうかの確認は、ついついおろそかにしがちですが、習慣としたいものです。FOSSのサイトがクラックされた例も過去にはあるのですから、習慣付けておいて損はありません。 それでは入手した配布パッケージを展開し、中に何が入っているか見てみましょう。 $ tar zxvf hello-2.7.tar.gz $ cd hello-2.7 $ ls -p ABOUT-NLS ChangeLog.O NEWS a

    配布パッケージの中身と、configureの役目を知る
    raomito
    raomito 2013/01/09
  • Railsの学び方

    Railsに限らず、プログラミングというのは何冊を読んでもそれだけで上達するものではありません。実際に手を動かしてコードを書く必要があります。いま考えると私もポール・グラハムと似たような手順を踏んでいたのですが、ちょっと独自な部分もあったので色々ご紹介したいと思います。 プログラミング・コンテストに参加することでやる気を高める 締め切りとか目標が設定されないとやる気が出ないタイプの方は、とりあえず何か発奮材料を探すのをお勧めします。私の場合はAward on Railsというプログラミング・コンテストが日で開催されると知り、さっそく申し込んでみることにしました。 残念ながらAward on Railsは2008年以降開催されていないようですが、現在でもいくつかプログラミング・コンテストがあります。 マッシュアップアワード Award on Railsと同じ2006年に始まったプログラミ

    Railsの学び方
  • Windows TIPS -- Troubleshoot:Windows XPにネットワーク接続できない

    デフォルト状態のWindows XPでは、空のパスワードのアカウントであっても、コンソールからのログオンは可能である。しかし、ネットワーク経由での各種のサービス(ファイル共有、リモート・デスクトップ接続、telnet接続など)は不可能となっている。 Windows XPに限らず、Windows NTやWindows 2000マシン同士でネットワークを介してファイルを共有するには、公開する側とそれを使用する側で正しくユーザー・アカウントを一致させておけば、特に面倒なことをしなくても、簡単にファイルを共有することができる。例えば、サーバ側でuser1というユーザーに対して公開のアクセス権を与えていれば、クライアント側でもuser1というユーザー名でログオンすれば、2台の間でファイルを共有することができる。ただし両者のパスワードは一致させておかなければならない。 家庭内のネットワークや小規模なL

  • netstatコマンドを使いこなす @IT:Windows TIPS -- Tips:

    TCP/IP関連のトラブルシューティングを行う場合に、必ずといってよいほど使うコマンドとして「netstat」コマンドがある(実行ファイル名はnetstat.exe)。このコマンドは、主にTCPの通信状態を調べるためには必須であり、ぜひともその使い方をマスターしておきたい。 netstatの基――通信中のTCPコネクションの調査 netstatコマンドの最も基的な使い方は、通信中のTCPコネクション(TCP接続)の状態を表示させることである。このコマンドを実行すると、ローカルPCのTCP/IPプロトコルスタック上において、現在アクティブになっているTCP通信の状態を表示できる。 ●「TCP」とは? 「コネクション」とは? TCPとは、2つのアプリケーション間で、信頼性のある通信路(コネクション)を開設し、お互いにデータなどをやりとりするための機能である。通信するアプリケーションは、同一

    netstatコマンドを使いこなす @IT:Windows TIPS -- Tips:
  • @IT:PXEネットワークブート用サーバを構築するには

    PXE(Preboot eXecution Environment)は、Intelが開発したネットワークブートの規格である。PXEによるネットワークブートを行うには、PXE対応NICとPXEサーバが必要だ。PXEサーバ(DHCPおよびTFTPサーバが稼働)は、ネットワークブートするPC(クライアント)に対してブートイメージを転送する。ここでは、インストール済みのFedora Core 3(FC3)をPXEサーバにする手順を説明する。 最初に、PXEブートしたPCへブートイメージを転送するためのTFTPサーバを用意する。 として、TFTPサーバ(tftp-server)がインストールされていることを確認する。インストールされていない場合は、yumコマンドでインストールする。 TFTPサーバは、xinetd経由で起動される。FC3の場合、デフォルトでは起動しないようになっているため、/etc/

  • サーバサイドJavaScriptの本命「node.js」の基礎知識

    稿では、Node.jsの特徴や動作原理に触れ、サンプルや役に立つパッケージ、活用事例などを紹介したいと思います。 主なサーバサイドJavaScript Node.jsに触れる前に、予備知識として他のサーバサイドJavaScriptにも触れておきます。Node.js含め、サーバサイドJavaScriptには、主に以下のようなプロジェクトがあります。 サーバサイドJavaScripの標準仕様「CommonJS」とは サーバサイドJavaScriptには、「CommonJS」と呼ばれる標準化が策定されています。標準化というと難しい感じがしますが、要はサーバサイドでJavaScriptを実行するのに何が必要かを仕様として、定義しているドキュメントのことです(例えば、「ログが必要だよね」など)。 Node.jsは、このCommonJSに則って開発されています。現段階であれば、CommonJSの仕様

    サーバサイドJavaScriptの本命「node.js」の基礎知識
  • Node.js、Socket.IO、MongoDBでリアルタイムWeb

    Node.js+Socket.IO+MongoDB こんにちは! 著者は、マインドフリーという会社でNode.jsを使ってWebアプリなどを作成している。この連載では、最新Webテクノロジを使った研究開発の事例や実績を発信する弊社のサイト“Tech Release”のリニューアルで培ったNode.jsに関する知識を分かりやすくお伝えする。 Tech Releaseは一見、普通のブログに見えるが、実は記事の更新内容がリアルタイムにView画面に反映されている。管理者が、記事の文章(データ)に変更を加えると、その記事を見ている人にもページをリロードせずに、リアルタイムに文章(データ)が変化していく。 このUXを実現するために開発したシステムが、REALTIME BLOG ENGINE「REABLO」というエンジンだ。「REABLO」はNode.jsとSocket.IO、MongoDBを使用して

    Node.js、Socket.IO、MongoDBでリアルタイムWeb
  • JavaScriptテストの基礎知識と使えるフレームワーク6選

    JavaScriptテストの基礎知識と使えるフレームワーク6選:フレームワークで実践! JavaScriptテスト入門(1)(1/3 ページ) しっかりとJavaScriptの“テスト”を行うために、最近のJavaScript事情やテストを取り巻く環境、今注目のテストフレームワークを6つ紹介する JavaScriptでもテストを書こう @ITの読者の方たちのほとんどは、どのような言語を主に利用しているのかなどの違いはあるにせよ、日常的にプログラムを書いている方たちが多いかと思います。 アプリケーションを作る、ライブラリを作成する、オープンソースプロジェクトに貢献するなど、皆さんがプログラムを書く場面はそれぞれいくつかあるはずです。それらプログラムを書く場面に共通して大切な習慣の1つとして、「作成するプログラムに対しては必ずテストコードを書く」ことがあるのは、誰にでも同意してもらえることでし

    JavaScriptテストの基礎知識と使えるフレームワーク6選
  • 「OAuth」の基本動作を知る

    デジタル・アイデンティティの世界へようこそ はじめまして、OpenID Foundation JapanでエバンジェリストをしているNovです。 この連載では、僕を含めOpenID Foundation Japanにかかわるメンバーで、OpenID ConnectやOAuthなどの「デジタル・アイデンティティ(Digital Identity)」にかかわる技術について紹介していきます。 APIエコノミー時代のデジタル・アイデンティティ 世界中で9億人のユーザーを抱える「Facebook」や5億人のユーザーを持つ「Twitter」など、巨大なソーシャルグラフを持つサービスが、日々その存在感を増しています。日でも、グリーやモバゲーなどがそれぞれソーシャルゲームプラットフォームを公開し、国内に一気に巨大なソーシャルゲーム市場を作り上げました。最近では、ユーザー数が5000万人を突破し、プラット

    「OAuth」の基本動作を知る
  • 軽快なscpか高機能なsftp、sshサーバに向いているのは? ―@IT

    軽快なscpか高機能なsftp、sshサーバに向いているのは?:セキュリティプロトコルマスター(8)(1/2 ページ) 前回はsshを使って安全にサーバを管理する方法を取り上げました。実はこのsshにはちょっとした仕掛けが隠されています。そんな仕掛けを上手に使う「安全なファイル転送」を今回取り上げましょう。安全なファイル転送は、サーバ管理だけでなく、さまざまな場面で活躍するはずです。 安全なファイル転送とは 安全なファイル転送って何ですか? ファイル転送とは、ネットワークでつながったコンピュータにファイルを送ったり、受け取ったりすることです。つまり、ファイル転送をするには、ネットワークの中をファイル体が流れていく、ことになります。 ここで問題になるのが、盗聴、改ざん、なりすましの問題です。第三者に知られることなく、ファイルの内容そのままで、正しい相手に送り届けるためには、単に相手へファイ

    軽快なscpか高機能なsftp、sshサーバに向いているのは? ―@IT
  • 各ディレクトリの役割を知ろう(サブディレクトリ編)

    巨大な/usrのディレクトリ構造 /usrには、読み出し可能かつ共有可能なファイルを配置します。一般的にいって、ここには多数のファイルが配置され、ディレクトリ構造も複雑になっています。 FHS 2.2におけるサブディレクトリは以下のように定義されています。ここでも、ディレクトリによって「必須」と「オプション」に分かれます。

    各ディレクトリの役割を知ろう(サブディレクトリ編)
  • Linuxで作るファイアウォール

    今回からiptablesの具体的な設定を解説する。iptablesの使い方はやや複雑だが、理屈を理解すれば難しいものではない。前半で紹介する知識を利用して、まずはNATを実現しよう。 前回はiptablesを使用するためのカーネル再構築とルールの設計を行いました。これを基にファイアウォールを構築していきます。今回はiptablesの概要とNATの設定を行いましょう。 なお、前回紹介したルールはあくまでも参考なので、実際には自分の環境に合わせて作成してください。ただし、ルールの作成方法は基的に変わらないので参考になると思います。 iptablesの仕組みと機能 これから格的にファイアウォールを構築していくわけですが、その手段であるiptablesを理解していなければ目的を達することはできません。少々回り道になりますが、iptablesについて学んでおきましょう。 iptablesを理解す

    Linuxで作るファイアウォール