タグ

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

  • 意外と知らないファイル圧縮技術の常識

    連載は、Java言語やその文法は一通り理解しているが、「プログラマー」としては初心者、という方を対象とします。Javaコアパッケージを掘り下げることにより「プログラマーの常識」を身に付けられるように話を進めていきます。今回はアーカイブと圧縮の違いなどの基礎知識とともに、Java APIJava定番のファイル圧縮形式jarやgzipzip形式を扱う方法も紹介。 今回はデータの圧縮技術を学んでいきます。データの圧縮技術はさまざまなコンピュータ関連用途において利用されていますが、この記事では「ファイル圧縮」の話題に絞って話を進めていきます。 意外と知らない、「圧縮」って何? 私たちが普通にOSを利用していると、ファイルの拡張子が「.zip」「.lzh」「.cab」などとなっているファイルを扱うことがあります。これらの拡張子を持つファイルは、複数のファイルやディレクトリを1つのファイルにまと

    意外と知らないファイル圧縮技術の常識
  • シリアルポート(9ピン)

    シリアルポートは、PCと周辺機器、あるいはPC同士を接続するためのシリアル通信インタフェースである。そのコネクタにはD-Sub 9ピンとD-Sub 25ピンの2種類がある。1990年代までは標準でPCに搭載されていた。現在はUSBやBluetoothといった後発のインタフェースに置き換わっている。 PCでのシリアルポートの始まり オリジナルのIBM PC登場当初から用意されていたシリアルポートは、その後に登場したPC互換機にも標準で装備された。 もともとシリアル通信自体が規格化されており、PC以外の分野でも普及していたこと、パラレルポートと違って最初から双方向通信が可能だったことなどから、シリアルポートはさまざまな用途に活用された。 具体的にはアナログモデムやISDN TAといった通信機器から、PDAとのデータ同期、一部のプリンタやプロッタ、マウス、さらには各種計測機器まで、非常に多種多様

    シリアルポート(9ピン)
  • 直撃取材! 「たて」の裏側

    6月9日に放映されたフジテレビのバラエティ番組「ほこ×たて」の「どんなプログラムにも侵入できるハッカー VS 絶対に侵入させないセキュリティープログラム」は、視聴者を激しい混乱の渦に巻き込んだ。 その後、“たて”側のネットエージェントは公式ブログで、“ファイル名変更”が実際は“TrueCryptによるディスク暗号化”であることや、対決で用意されたPCはサービスパックも当たっていない脆弱性だらけのWindows OSだったことなど、番組でカットされ誤解を招いた部分について説明。当はかなりのガチ対決だったことが明かされた。 では、“実際の”攻防戦はどのようなものだったのか。自身も凄腕のハッカーで、昨年度開催された「CTFチャレンジジャパン」の優勝者でもある、luminことネットエージェントの杉浦隆幸氏に直撃した。 編集部 今回の番組出演の経緯は? 杉浦氏 今回の内容は番組制作会社が企画したも

    直撃取材! 「たて」の裏側
    minek
    minek 2013/06/23
  • Canvas APIの基礎

    もともと、Appleが主にDashboardウィジェットの描画のためにWebKitに導入したCanvas API。サンプルコードと見比べながら、効率良く学習しよう Canvas APIの基礎 連載では、Webブラウザ上で利用できるグラフィック技術を分かりやすく紹介しています。今回はHTML5のcanvas要素で使える2次元描画コンテキスト、俗にいう「Canvas API」を取り上げます。 Canvas APIは、もともとAppleが主にDashboardウィジェットの描画のためにWebKitに導入したものです。それがFirefoxやOpera、Internet Explorer(9以降)に実装され、現在はW3Cによって標準化が進められています。JavaScriptのメソッドで直接図形を描画するのが特徴で、ビットマップ画像の加工や、ゲームのようなインタラクティブ性の高いアプリケーションに向

    Canvas APIの基礎
    minek
    minek 2012/08/21
  • □01_「Flashの基礎を無料で習得! ActionScript入門」 - @IT

    連載インデックス 「Flashの基礎を無料で習得! ActionScript入門 ActionScriptを知っていますか? Flash技術の要となる言語で無料で簡単にFlashアプリケーションを作れます。そのActionScriptについて初心者のために一から丁寧に解説していきます Flashの要となるスクリプト言語「ActionScript」とは? Flashの基礎を無料で習得! ActionScript入門(1) ActionScriptを知っていますか? Flash技術の要となる言語で無料で簡単にFlashアプリケーションを作れます

  • Rubyを最大63%高速化した中学生は超多忙!

    金井仁弘(HN:CanI)氏                    撮影:平沼久奈 ハンドルネームCanIの由来は、「“Can I”→キャナイ→カナイ」。C#、Visual Studio、Microsoft .NETとマイクロソフト製品が大好きな「.NETer」と自称する 筑波大学付属駒場中学校は、東京都内にある中高一貫の国立校だ。入学試験の偏差値と東京大学への進学率の高さから“東の筑駒、西の灘”と称される進学校である。強いのは受験だけではない。国際情報オリンピックや国際数学オリンピックでは、同校の生徒が毎年のように金・銀メダルを制するなど才能あふれる理数系人材が多数在籍している。 金井氏はこの夏の「セキュリティ&プログラミングキャンプ2009」(2009年8月12~16日)に参加し頭角を現した中学生プログラマである。 今年に入って、Ruby 1.9のフィボナッチ数列による演算(多倍長加算

    Rubyを最大63%高速化した中学生は超多忙!
    minek
    minek 2009/10/27
    なにこの完璧超人
  • “本物のマクロ”でCのコード行数を半分に! - @IT

    2009/09/07 毎年夏に開催される軽量プログラミング言語(LL:Lightweight Language)をテーマにした「LLイベント」。第7回目となる「LLTV」が、2009年8月29日に東京・中野で開催された。この記事ではプログラムの一部、「大改善!!劇的ビフォーアフター」をレポートする。前編では、Rubyによるfortuneコマンドの“増築”と、Firefox拡張によるslコマンドの実装というネタ系発表をレポートした。中編となる記事では、C言語にLisp風のマクロを取り入れ、lsコマンドのソースコードを約半分に“修繕”する匠の技をレポートする。後編では、売り場業務が滞りがちだった販売管理システムをbashコマンドで“建て直した”という劇的ビフォーアフターの発表をレポートする。 Cで書かれたlsのソースコードの問題点 「Real/Macro Metaprogramming On

    minek
    minek 2009/09/09
     ワロタ。CはCらしく書けwこんな変態とは仕事したくないぞwww
  • Cocoaの素、Objective-Cを知ろう - @IT

    Objective-C初心者のための入門連載です。Objective-Cとは何かの基礎知識から、さまざまな基構文/文法(変数、データ型、nil、配列、プロパティ、アクセサ、クラス、スーパークラス、ルートクラス、サブクラス、ポインター、メソッド、インスタンス、リンク、ラッパークラス、コンパイラディレクティブ、id、メッセージ式、文字列操作、forなどの繰り返し(ループ)、列挙子、ディクショナリ(連想配列)、高速列挙、オブジェクト指向、継承、プロトコル、多重採用、セレクター、クラスクラスター、カテゴライズ、カテゴリ、メモリ管理、ガベージコレクション、参照カウンターなど)を、書き方が分かる豊富なサンプルコードとともに解説します。

  • モデリング要らず!Google 3Dデータを使って、1日で街のゲームグラフィックを制作する方法

    モデリング要らず!Google 3Dデータを使って、1日で街のゲームグラフィックを制作する方法:一撃デザインの種明かし(3)(1/2 ページ) たった1日で簡単にできる3D。Google 3Dギャラリーで、斜めにオブジェクトを配置し、立体的に見せる「クォータービュー」グラフィックを制作しよう 3Dギャラリーでゲーム風グラフィック インターネット回線の高速化、パソコンのスペック向上などにより、数年前と比べるとユーザーのPC環境はがらりと変わりました。そのような状況の中で、いままでは、つくり手が避けていたような表現が再注目されています。 その1つに、多くのグラフィック表現を駆使したゲーム風のリッチコンテンツもあると思います。例えばDRAGON QUEST SWORDSのように大画面にアニメーションや動画で演出をしているものです。 今回は、簡単にできる『ゲーム風グラフィックの制作方法』を紹介した

    モデリング要らず!Google 3Dデータを使って、1日で街のゲームグラフィックを制作する方法
    minek
    minek 2009/05/19
  • Haskellプログラミングの楽しみ方 − @IT

    第1回 Haskellプログラミングの楽しみ方 山下 伸夫 株式会社タイムインターメディア 2008/10/29 関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう(編集部) 連載は、Haskellプログラミングの初歩から始めて、日常的なスクリプティングやWebプログラミングをHaskellで楽しめるようになるまでのガイドである。 Haskellプログラミングのスタイル Haskellプログラミングに興味はある人でも、Haskellプログラミングの習得にはちょっとした障壁を感じることがあるのは間違いないようだ。小難しい概念や用語のせいでもあるが、それらはあまり重大な理由ではない。 障壁となるのはHaskellのプログラミングスタイルである。Haskellのプログラミングスタイルは関数プログラミングという系統に属する。一方、

  • ちょっと変わったLisp入門 - @IT

    Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう(編集部) 「Gaucheでメタプログラミング」と題して、これからGaucheを使ったプログラミングの連載を書かせていただきます吉田裕美です。よろしくお願いいたします。 Gaucheとは 今回の連載で取り上げるGaucheはハワイ在住の日ハッカー、川合史朗さんが作った、Lispの一種であるSchemeのオープンソース処理系です。 Gaucheの特徴は、PerlRubyのように気軽に使える軽い処理系だということです。Perl同様に正規表現や文字列操作が行え、ちょっとしたツールの作成にも使えます。しかし、非常に強力なCommon Lisp風オブジェクトシステムを持ち、Lispならではのマクロに加え、Webやグラフィックスなどの豊富なライブラリも持っているので実用

    ちょっと変わったLisp入門 - @IT
  • データを加工して圧縮率を高めよう

    データを加工して圧縮率を高めよう:コーディングに役立つ! アルゴリズムの基(9)(1/5 ページ) プログラマたるものアルゴリズムとデータ構造は知っていて当然の知識です。しかし、教科書的な知識しか知らなくて、実践的なプログラミングに役立てることができるでしょうか(編集部) 圧縮率を上げるために、ひと工夫 前回「データ量を操る圧縮/展開を究めよう」では、圧縮アルゴリズムの基としてランレングス法とハフマン符号を紹介しました。今回は、データを圧縮しやすいように加工することで、より圧縮率を上げるアルゴリズムを紹介していきたいと思います。 さて、圧縮率を上げるにはどうすればよいでしょうか。 ランレングス法では、連続する文字列が多ければ多いほど圧縮率が高まります。ハフマン符号では、できるだけ特定の文字が多く出現するようになっていれば圧縮率が高まります。このようなデータの加工の手法を見ていきます。

    データを加工して圧縮率を高めよう
  • 特集 私がJavaからC#に乗り換えた10の理由(1/4) - @IT

    起きてから寝るまで、息を吸うのも、厠(かわや)での一連のアクションも.NET Frameworkで構築している私だが、実は少し前まで目を閉じるとまぶたの裏でJavaのマスコットである“Duke”がゴーゴー・ダンスを踊っちゃうくらいにJavaな日々を送っていた。そんな私が過去の資産を捨てて.NET Frameworkに転んだ理由は簡単。.NET Framework、特にC#の設計思想が私のし好に合っていると感じたためだ。 稿では、私がJavaからC#に乗り換えた理由を示し、それを基にC#の“正しい”使い方について考察する。C#に興味のあるJavaプログラマや、どう使えばよいのか悩んでいるC#プログラマに読んでいただきたい。そうそう、アーキテクトにも。プログラミングできないアーキテクトなどあり得ないのだから。 C#とJavaは似ていない。確かに表面上は似ているが、C#にはJavaにはない文法

  • ブラウザでx86バイナリ実行、グーグルが新技術 - @IT

    2008/12/09 米グーグルは12月8日、x86アーキテクチャ向けにコンパイルしたコードをWebブラウザで実行する研究開発プロジェクト「Native Client」(略称、NaCl)を発表した。LinuxWindows XP、Mac OS X上など異なるOSで実行できるという。現在対応するWebブラウザはFirefox、Safari、Opera、Chromeプロジェクトチームは同日、実行環境やコンパイラツール群をBSDライセンスでオープンソースとして公開した。NaClは開発初期段階で、セキュリティの専門家などからフィードバックを受けて開発を続けるとしている。また開発チームではx86以外にもPowerPCやARMなどほかのアーキテクチャのサポートに向けて開発を続けているという。 実行環境はWebブラウザ向けのプラグインとしてサンドボックスの形で提供する。実行前に静的解析を行い危険な

    minek
    minek 2008/12/11
     オンラインゲームなんかは将来的には全部ブラウザで遊べるようになるんじゃないかと思う今日この頃。DirectXのインストールが壁とか言われたりするし…
  • 関数の話をしよう(1/2)- @IT

    第2回 関数の話をしよう 山下 伸夫 株式会社タイムインターメディア 2008/11/28 関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう(編集部) Haskellは関数プログラミングのための言語だというのだから、関数が出てこなくては話にならない。今回は、関数の話をしよう。 関数抽象と関数適用 前回、話した標準体重値を計算するパターンは、 (〈身長値〉 ^ 2 )*〈標準BMI〉 である。〈標準BMI〉は固定された値(22.0)だから、標準体重値は〈身長値〉が変わればそれに応じて変化する。標準体重値の計算は、 (〈?〉 ^ 2 )*〈標準BMI〉 の〈?〉の部分を具体的な身長の値で「置き換え」てやればいいということになる。〈?〉を一種の穴のようなものだと考えれば、そこへ値をはめ込めばよいわけである。 この計算パターンを、

  • Webアプリ開発環境としてのSafariを知ってますか?

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) シェア競争に挑まないWebブラウザ「Safari」の登場 2008年3月、iPhoneの日登場に先駆けて、Windows版Safari 3.1が登場しました(参考「AppleWindowsにも正式対応の「Safari 3.1」リリース」)。 WebブラウザのシェアはFirefoxが健闘しつつも、いまだInternet Explorer(以下、IE)が大半を占め、多くのWebアプリケーションサービスにとって、IEへの対応が必須であると思われてきました。そんなWebブラウザのシェア競争の中へSafariが登場したことは、最初はとても異質なことに感じられました(参考「新しいWebブラウザ

    Webアプリ開発環境としてのSafariを知ってますか?
  • BOOK Preview:Code Complete 第2版 - @IT

    ■上巻 『Code Complete』への賛辞 はじめに 第1部 基礎を固める 第1章 ソフトウェアコンストラクションへようこそ 1.1 ソフトウェアコンストラクションとは 1.2 なぜソフトウェアコンストラクションは重要か 1.3 書の読み方 1.4 まとめ 第2章 ソフトウェア開発への理解を深めるメタファ 2.1 メタファの重要性 2.2 ソフトウェアメタファの使用法 2.3 一般的なソフトウェアメタファ 2.4 参考資料 2.5 まとめ 第3章 2回測って、1度で切る:上流工程の必要性 3.1 準備の重要性 3.2 ソフトウェアの種類の特定 3.3 準備:課題定義 3.4 準備:要求 3.5 準備:アーキテクチャ 3.6 上流工程にかける時間 3.7 参考資料 3.8 まとめ 第4章 コンストラクションの重要な決断 4.1 プログラミング言語の選択 4.2 プログラミング規約 4.

  • 連載 C#入門 - @IT

    1.目に見えない変換 暗黙の変換ができないとき キャストがデータを壊すとき 2.実数でもキャスト 実数でもキャスト 定数値にキャスト 符号の有無は要注意 小数の切り捨て 3.参照型のキャスト 参照型のキャスト 無関係の参照型へのキャスト スーパー・クラスへのキャスト アンボクシングとキャスト まとめ 1.C#の演算子 2.四則演算(+、-、*、/) 剰余演算 (%) 比較演算 (<、>、<=、>=、==) is演算 (is) 論理演算 (&、^、|) 条件演算 (「~ ? ~ : ~」) シフト演算子 (<<、>>) 単項演算子 (+、-、!、~) インクリメント・デクリメント演算子 (++、--) 代入演算子 (=、+=、-= …) 論理条件演算子 (||、&&) まとめ コラム:Visual Studio.NET ベータ2使用時の注意

  • 1