タグ

ブックマーク / codezine.jp (424)

  • Linuxのcrontabコマンドの脆弱性をつぶす

    はじめに 今回はCronをとりあげます。CronはOSの持っている時計に基づき、あらかじめ設定しておいたコマンドを実行するための仕組みで、Unix系システムには必ず備えられているといっていい機能でしょう。ログファイルのローテーションやログインアカウントの利用状況集計など、システム管理上のジョブを定期的に実行するために活用されています。 英語Wikipediaのページによると、Cron歴史はVersion7 Unix(1979年リリース)までさかのぼるそうです。Linuxディストリビューションの多くが現在使っているものは、Paul Vixie氏が実装したVixie Cronが元になっています。 サンプルコード Cronでは、crontabという設定ファイルでいつどのようなジョブを実行するかを指定します。この設定ファイルはユーザごとに用意されており、必要に応じてユーザが自分で編集します。こ

    Linuxのcrontabコマンドの脆弱性をつぶす
    Wacky
    Wacky 2010/08/21
  • Visual C++ 2010に追加されたSTLアルゴリズム

    この記事が公開される頃にはVisual Studio 2010のパッケージ販売が始まっているでしょうか。MSDN Subscriptionでは先行提供されていますし、各言語のExpress版が公開されていますから、初物(?)の好きなミナサマは早速遊んでいらっしゃることと思います。 C++屋の僕にとって一番嬉しかったのはVisual C++ 2010(vc10)でC++0xに(完全ではないにせよ)準拠してくれたこと。特にlambda式にはドキドキさせられました。lambda式のサポートにより、より明快でコンパクトな表現が可能になりました。正規表現(regex)や配列(array)、賢いポインタ(shared_ptr/weak_ptr)などなど、サポートが待ち望まれていたクラス群が追加されています。稿ではvc10で新たに追加されたSTLアルゴリズムを一気に紹介します。 以降、プロトタイプと説

    Visual C++ 2010に追加されたSTLアルゴリズム
    Wacky
    Wacky 2010/06/17
  • Yahoo! UI Library3(YUI3)データ処理に着目

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Yahoo! UI Library3(YUI3)データ処理に着目
  • PHPで行う動画変換(前編)

    はじめに オープンソースの動画変換ソフトフェアの一つにffmpegがあります。ffmpegはさまざまな形式の動画、音声データの変換に対応していて、コマンドラインから操作でき、PHPJavaなどで作成したアプリケーション内から呼び出すこともできます。 ffmpegの機能の一部をPHPで使えるようにしたエクステンションにphp-ffmpegがあります。php-ffmpegを利用するとPHP内でffmpegの機能を容易に呼び出せます。またphp-ffmpegとは別にPHPのみでffmpegの機能を使えるライブラリ FFMPEG-PHP Classが公開されています。 記事ではphp-ffmpegFFMPEG-PHP Classを使用して動画のプロパティ取得、flv(注1)への動画変換、Youtubeから動画をダウンロードして3gp(注2)への動画変換を実装する方法を2回にわたって説明します

    PHPで行う動画変換(前編)
    Wacky
    Wacky 2010/06/17
  • 仮想ネットワーク実装でTCP/IPを学ぼう(7) ― GDI+と独自プロトコルの定義

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    仮想ネットワーク実装でTCP/IPを学ぼう(7) ― GDI+と独自プロトコルの定義
    Wacky
    Wacky 2010/06/09
    仮想ネットワークを実装する為に必要な知識であるMDIアプリケーションの作り方と、GDI+プログラミングの基礎を解説します。
  • インテルTBB 3.0によるパイプライン処理

    オープンソースのマルチスレッドライブラリ、インテルTBB(Threading Building Blocks、以下TBB)がversion 3.0となりました。Visual C++ 2005(vc8)、2008(vc9)に加え、2010(vc10)にも対応しています。TBBのインストール・ディレクトリを環境変数TBB30_INSTALL_DIRにセットしておけば、インクルード/ライブラリディレクトリの設定はVS2010 IDEのプロジェクト・プロパティでそれぞれ次のようになります。 インクルード: $(TBB30_INSTALL_DIR)\include ライブラリ: $(TBB30_INSTALL_DIR)\lib\ia32\vc10 さらにTBBのDLLが$(TBB30_INSTALL_DIR)\bin\ia32\vc10にありますから、ここにPATHを通すか、DLLをPATHの通った

    インテルTBB 3.0によるパイプライン処理
    Wacky
    Wacky 2010/06/09
    オープンソースのマルチスレッドライブラリ、インテルTBB(Threading Building Blocks、以下TBB)がversion 3.0となりました。
  • Silverlightで実装するデータ処理の応用

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Silverlightで実装するデータ処理の応用
    Wacky
    Wacky 2010/05/28
  • PowerShell 2.0の新機能(7) ――デバッグ編

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    PowerShell 2.0の新機能(7) ――デバッグ編
    Wacky
    Wacky 2010/05/15
    デバッグを開始するにはスクリプトにブレークポイントを設定しておく必要があります。ブレークポイントが設定された状態でスクリプトを実行するとデバッグが行えます。
  • Silverlightで行うデータ処理の基本

    はじめに Silverlightはバージョン2以降 .NET Frameworkの機能がサポートされ、単なるリッチなWebサイトを作成するためのものという認識から、業務アプリケーションを作成することができるプラットフォームとしての期待が高まっています。特に2009年11月に米国のロサンゼルスで行われたProfessional Developer Conference(PDC)で、Silverlightのバージョン4が発表になりましたが、多くの機能が追加されているなかで、業務アプリケーション開発向けの機能が多く含まれているのは注目に値するべきポイントです。 業務アプリケーションを開発する上で非常に重要となるのがデータの処理だというのは、異論はないかと思いますが、Silverlightで実装するためには多少の決まりごとを認識することが必要です。Silverlightにおける、この性格を紹介する

    Silverlightで行うデータ処理の基本
    Wacky
    Wacky 2010/04/21
    Silverlightのデータ処理で、もう一つ大きな特徴となるのは、呼び出したWebサービスは、すべて非同期で処理されるということです。
  • 式ツリーからラムダ式を構築する

    はじめに 世の中には、一見すると不思議でも、トリックを知ればそうでもないというものがあります。マジックなどはまさにそうですが、.NET Frameworkにも同じような側面があります。この記事では、ラムダ式について少し踏み込んで学習します。関数型構築を利用してラムダ式を動的に構築する方法も紹介します。現実的には、このような方法でラムダ式を構築することはまれでしょう。しかし、ラムダ式は優れた機能です。この記事ではラムダ式について詳しく学習することで、.NETの開発者がラムダ式を理解し、コード内でもう少し上手に、もう少し頻繁にラムダ式を使用できるようになるためのお手伝いをしたいと思います。 一般的に、関数型構築を使用する際には、構築する式の各要素に対して関数を呼び出す必要があります。ラムダ式の場合は、パラメータ、定数、二項演算など、生成したいすべての要素について関数を呼び出します。ラムダ式を動

    式ツリーからラムダ式を構築する
    Wacky
    Wacky 2010/04/15
    一般的に、関数型構築を使用する際には、構築する式の各要素に対して関数を呼び出す必要があります。ラムダ式の場合は、パラメータ、定数、二項演算など、生成したいすべての要素について関数を呼び出します。
  • 分散DBMS「Mnesia」の並列処理

    はじめに Mnesiaは、Erlangという言語をベースとした並列プログラミング用のオープンソース開発環境であるErlang OTPに付属している高機能のデータベース管理システム(DBMS)です。Mnesiaは真の分散DBMSなので、世界中の何千ものノード間でデータを分散し、複製し、断片化することも朝飯前です。ユーザーがしなければならないのは、Mnesiaデータベースの分散先となるさまざまなErlangノードを実行することだけです。 Mnesiaという名前になった経緯は、少々眉唾ではありますが、もともとは「Amnesia(健忘症)」という名前だったものを、エリクソンの重役が「データベースに『物忘れ』を連想させる名前を付けるのはいかがなものか」と発言したことから、エンジニアが「A」の文字を取って「Mnesia」とし、「すべてを記憶するもの」の意味を持たせたと言われています。Mnesiaは、E

    分散DBMS「Mnesia」の並列処理
    Wacky
    Wacky 2010/04/07
    Mnesiaは、Erlangという言語をベースとした並列プログラミング用のオープンソース開発環境であるErlang OTPに付属している高機能のデータベース管理システム(DBMS)です。
  • テスト文書の「テスト項目仕様」および「テスト手続き仕様」

    という開発にも似た流れがあるということを学びましたね。個々の文書は、その文書を使うところで詳しく解説します。 テスト計画(Test Plan): テスト活動の範囲、方法、資源、スケジュールを定める。テストされる項目、実施されるテストの仕事(task)、それぞれの仕事に責任を持つ人、この計画に伴うリスクを特定する。 テスト計画項目参照(Test Plan Item Ref) テスト設計仕様(Test Design): 前回述べました テスト計画イントロ参照(Test Plan Intro Ref) テスト計画成果物参照(Test Plan Deliverable Ref) テストケース仕様(Test Case) テスト項目仕様(Test Item): 下記で詳しく述べます テスト手続き仕様(Test Procedure): 下記で詳しく述べます テストログ(Test Log) テストインシデ

    テスト文書の「テスト項目仕様」および「テスト手続き仕様」
    Wacky
    Wacky 2010/04/07
    テンプレート(template007.doc)はダウンロード文書として用意しました。その他、今回は使用するテスト文書のエクセル(TestItem.xlsおよびTestProcedure.xls)を用意しました。
  • Bing Mapsで遊ぼう! 第2回 ‐Bing Maps 上にオブジェクトを配置してみよう‐

    はじめに 前回は任意の位置とズームレベルのMapを表示させました。 今回はSilverlight Bing Maps SDK を利用して、地図上の任意の位置にピンを置いたりラインを引いたりしてみます。事前に準備するものは前回の「Silverlight で Bing Maps を表示しよう」と同様です。 用意するもの 「Bing Maps Silverlight Control SDK」が必要です。マイクロソフトのWebページから入手して、インストールしてください。また、稿では開発環境として「Expression Blend 3」を前提に話を進めます。 サンプルファイル一式は、記事上のリンクからダウンロードしてください。 1. Map上の任意の位置にピンを表示してみよう <!-- Bing Map --> <Map:Map x:Name="map" Margin="0" d:LayoutO

    Bing Mapsで遊ぼう! 第2回 ‐Bing Maps 上にオブジェクトを配置してみよう‐
    Wacky
    Wacky 2010/04/07
  • 文章の中のはてなキーワードをハイライトさせる

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    文章の中のはてなキーワードをハイライトさせる
    Wacky
    Wacky 2010/03/31
    mecabの辞書を再構築し、Ajaxの中からphp-mecabを呼び出してHTML上の文章の中にあるキーワードをハイライトさせ、はてなキーワードのページへリンクを貼る方法をサンプルを交えながら説明します
  • CSSでマルチカラムレイアウト

    はじめに 連載では、「クロスブラウザに対応したデザインテクニック」をテーマに、保守性や互換性に優れたXHTML+CSSの書き方を紹介していきます。 今回は、連載の総まとめとして、CSSでマルチカラムレイアウト(段組レイアウト)を実現する方法を紹介します。CSSでマルチカラムレイアウトを実現する方法はいろいろありますが、今回は、最も基的な方法として、前回の記事で解説した「floatプロパティ」および「positionプロパティ」を利用した、「フロート型」と「ポジショニング型」のレイアウトテクニックを紹介します。同時にページレイアウトで起こりがちな問題とその対処方法についても扱います。 対象読者 XHTMLCSSの基を理解している方。 Web標準サイトの実践的な作り方に興味のある方。 必要な環境 (X)HTMLCSSを記述するエディタと、それを確認するブラウザがあれば、特別な環境は

    CSSでマルチカラムレイアウト
    Wacky
    Wacky 2010/03/17
  • ファイルディスクリプタについて(6) ~多重I/Oの性能とC10K問題

    はじめに 前回は、複数のファイルディスクリプタを一元管理する「多重I/O」機能について紹介しました。今回は、多重I/Oの性能と問題点について検証していきます。 連載概要 第1回:ディスクリプタの概要 第2回:イベント用ディスクリプタ「eventfd」の特徴 第3回:タイマー用ディスクリプタ「timerfd」の特徴 第4回:シグナル用ディスクリプタ「signalfd」の特徴 第5回:多重I/O「Multiplex I/O」の種類の特徴、使い方 第6回:多重I/Oの性能とC10K問題 第7回:シグナル駆動I/Oの特徴、使い方 第8回:非同期I/O「Asynchronous I/O」の使い方と性能差 第9回:ファイルディスクリプタパッシングの特徴、使い方 サンプルプログラムは100行前後程度までは画面に記載します。全プログラムは圧縮してページ上部よりダウンロード可能にしています。makeコマンド

    ファイルディスクリプタについて(6) ~多重I/Oの性能とC10K問題
  • PowerShell 2.0の新機能(4) ――高度な関数 編

    はじめに PowerShell 2.0には200を越える便利なコマンドレットが標準搭載されています。しかし、搭載されているコマンドレットのすべてが、自分の要求をすべて満たすとは限りません。そこで、要求を満たすために、関数やコマンドレットを作成します。 PowerShell 1.0では関数を作成することができました。しかし、コマンドレットを作成するにはVB.NETやC#といった言語を使用して作成する必要があり、敷居が高いものでした。PowerShell 2.0ではスクリプトベースの「高度な関数」を作成することができるようになりました。高度な関数はコマンドレットに似た機能の関数を指します。 今回は、この「高度な関数」を作成する方法について説明します。 対象読者 PowerShellの基的な操作ができる方。 PowerShellについて学びたい方は、PowerShell入門の連載を参照ください

    PowerShell 2.0の新機能(4) ――高度な関数 編
    Wacky
    Wacky 2010/03/10
  • 【MSDN Hacks】 .NETエンジニア必見の情報活用術 8選

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    【MSDN Hacks】 .NETエンジニア必見の情報活用術 8選
  • SEXYHOOKで始めるテスト とある関数の接合部(1)

    はじめに テストを書いていると、一時的に関数の挙動を書き換えたいときがあります。 time()がハードコードされている関数をデバッグしたい時や、稀にしか失敗しないAPIの失敗をエミュレーションしたい時などです。これらはテストの自動化の妨げになっていました。 拙作のSEXYHOOKを利用すると、一時的に関数の挙動を書き換え、失敗を返すことが可能になります。 稿では、SEXYHOOKの使い方について説明します。 対象読者 C++でソフトの開発を行い、テストを書きたいエンジニア SEXYHOOKはC++で使うことを想定しています。 必要な環境 Windows Microsoft Visual C++ 6/2003/2005/2008 Linux GCC 4.x(推奨) / 3.x 現状では32bitバージョンのみのサポートになります。SEXYHOOKはデバッグビルドのみで利用できます。 SEX

    SEXYHOOKで始めるテスト とある関数の接合部(1)
    Wacky
    Wacky 2010/02/25
    SEXYHOOKを利用すると、一時的に関数の挙動を書き換え、失敗を返すことが可能になります。
  • 要件定義の勘どころ

    はじめに 役に立つシステムを構築するための要件定義書とは、いったいどういうものなのでしょうか。 「何でこの機能が必要なんですか?」「理由は分からないけどXXX機能があるのでこの機能が必要なんです。これがないとつじつまが合わなくなるんです」もしくは「要件定義書にこの機能が載っているので必要なんです」など、要件定義書の役割を理解しないまま、システムの開発に着手していることなどがないでしょうか。 稿では、要件定義書の役割や重視すべき点、要件定義書に盛り込むべき情報について解説します。 何をやるのか、そしてなぜそうするのか 要件定義書はジグソーパズル? システム開発を受託した会社にコンサルテーションしたときのことです。機能とデータがある程度記述された要件定義書を受け取ったその会社では、要件定義書を読み解き、システムの全体像を掴むためにおのおのの機能の関係を整理し、その役割を把握しようとしていまし

    要件定義の勘どころ