タグ

ブックマーク / gihyo.jp (27)

  • 「UnicodeとUTF-8とUCS-2の関係 ――符号化文字集合? 文字符号化方式?」プログラマのための文字コード技術入門(WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社

    WEB+DB PRESS plus(ウェブディービープレスプラス)シリーズは, Webアプリケーション開発のためのプログラミング技術情報誌『WEB+DB PRESS』編集部が自信を持ってお届けするシリーズです。 UnicodeとUTF-8とUCS-2,UCS-4など,Unicode関連用語は,いわゆる用語解説にあたるだけでは理解するのに混乱しがちな話題かもしれません。それぞれの用語が登場した経緯や,符号化文字集合,符号化方式としてどういった存在かについて追っていくと,きちんと理解されることと思います。ここでは,簡単に整理してみることにしましょう。 まとめると,Unicodeは整数値で表される符号位置と文字とを対応付けています。そして,その整数である符号位置をコンピュータで用いるバイト列の形で表現するための方式として,UTF-8やUTF-16やUTF-32といった各種の符号化方式が定められて

  • 第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp

    なぜアルゴリズムを学ぶのか GCによる停止時間が長くなり、アプリケーションの処理時間が短くなると、業務に使える時間が短くなってしまいます。その問題を解決するために、GCをチューニングすることで、アプリケーションの停止時間を短くすることが考えられます。 その際大事なのは、GCのアルゴルズムを把握しておくことです。 GCのチューニングを行うときは、GCで行われている処理の内、どの処理に時間がかかっているかをモニタリング⇒分析⇒チューニングする、という流れになります。しかし、GCのアルゴリズムを知らないと、モニタリング結果を見てもどこに問題があるかがわからず、分析やチューニングを行うことができません。 今回は、以下の4つのアルゴリズムをご紹介します。 マーク&スイープGC コンパクション コピーGC 世代別GC GCのアルゴリズムはJVMの実装によって異なりますが、多くの場合、上記4つのアルゴリ

    第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp
  • 2012年6月18日 Linusが吠えた! ─中指立てて「NVIDIAは世界最悪の企業」 | gihyo.jp

    まずは下のYouTubeの画像の48分あたり、メガネをかけた女性がLinusに質問をしている部分から、Linusがそれに答えて会場から拍手喝采を受ける1分ちょっとのくだりを見てほしい。英語がわからなくても問題ない。 なんと公衆の面前で「NVIDIAはこれまで見てきた企業の中で唯一無二の最悪な企業」と断言、そして「NVIDIA: FUCK YOU!」とカメラ目線で中指を立てる過激なパフォーマンスを演じている。 この動画はLinusが先週、母国フィンランドのオタニエミという街にあるアアルト企業家センター(Aalto Center for Entrepreneurship)で行った講演を記録したもの。会場には母国が生んだスターであるLinus Torvaldsの講演を生で聞こうと、多くの学生、起業家、開発者が詰めかけた。そんな公な場で一企業を特定して「FUCK YOU!」と罵声を浴びせたのだから

    2012年6月18日 Linusが吠えた! ─中指立てて「NVIDIAは世界最悪の企業」 | gihyo.jp
  • 特集:PHPUnit3で始めるユニットテスト|gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    特集:PHPUnit3で始めるユニットテスト|gihyo.jp
  • 第1回 Language Update Decade | gihyo.jp

    今年は基調講演の話者に世界的なPerlプログラマーである宮川達彦さんをお迎えしたり、夜に懇親会を行ったりと、10年目を記念した特別編成になっています。 なお、懇親会ではライトニングトークの発表者を募集していますので、何か発表したい人はぜひご応募ください。その他、イベントに関する詳細は上述の公式Webサイトをご覧ください。 さて、今回はLL Decadeで実施するセッションの中から「Language Update Decade」を紹介します。 Language Update Decade Language Updateは各言語の近況を報告するセッションで、参加者にとっては日頃愛用している言語のことだけでなく、普段使わない言語に関する情報を得たり、あるいは未知の新しい言語と出会うことができます。さまざまな言語のユーザが集うこのイベントならではのセッションであり、LLイベントではほぼ毎年実施され

    第1回 Language Update Decade | gihyo.jp
    neumann
    neumann 2012/07/09
    参加者 Perl:小飼弾,PHP:廣川類,Python:柴田淳,Ruby:まつもとゆきひろ
  • 第5回 PHPUnitの便利な機能とPhingとの連携 | gihyo.jp

    今回は、PHPUnit3の便利な機能とPHPプロジェクトビルドシステムであるPhingとの連携について見ていきます。 既存クラスからテストを作成する さて、別の開発チームで作成していた決済用クラス(Checkoutクラス)が届きました。 <?php require_once 'Cart.php'; class Checkout { private $cart; public function __construct(Cart $cart) { $this->cart = $cart; } public function getSubTotal() { return $this->cart->getTotal(); } public function getShippingCharge() { if ($this->cart->getTotal() > 1500) { return 0;

    第5回 PHPUnitの便利な機能とPhingとの連携 | gihyo.jp
    neumann
    neumann 2012/01/31
  • ネット生活:快適なネット生活をおくる秘訣、それは「つぶやかない」こと。緊急忍耐力対談:ココロ社×加野瀬未友|gihyo.jp … 技術評論社

    快適なネット生活をおくる秘訣、それは「つぶやかない」こと。 緊急忍耐力対談:ココロ社×加野瀬未友 コミュニケーションツールが日々便利になっていくその裏で、ネットは今日も人々を炎上へと導いている。つい暴走しがちな夏、危険を避けて快適なネット生活をおくりたいとお考えの方へ向け、ネット上でのコミュニケーション術について詳しいお二人に、緊急対談をお願いした。 ココロ社(こころしゃ) Twitter:@kokorosha ブログ:ココロ社 ほのぼの四次元ブログ1971年・大阪生まれ。東京大学文学部を卒業後、「⁠人生是忍耐」という真理に気づき、あえてノーマルなサラリーマン稼業を選択し、持ち前の忍耐力を発揮して、珍妙なブログの運営および、ギリギリ系自己啓発書の執筆などを行っている。主な著書に『クビにならない日語』(⁠翔泳社⁠)⁠、『⁠超☆ライフハック聖典』(⁠技術評論社⁠)⁠、『⁠マイナス思考法講座』

    ネット生活:快適なネット生活をおくる秘訣、それは「つぶやかない」こと。緊急忍耐力対談:ココロ社×加野瀬未友|gihyo.jp … 技術評論社
    neumann
    neumann 2011/08/14
  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • 第1回 インメモリデータストア Redisの概要 | gihyo.jp

    はじめに 株式会社ドワンゴで「ニコニコ生放送」の開発を担当している、小野と申します。特集では、いわゆる「NoSQL」の一種であるRedisの概要と基操作、そしてWebアプリケーションでの応用例までを、ニコニコ生放送での事例を交えながら紹介していきます。 Redisとは? Redisは、Salvatore Sanfilippo氏によって2009年に公開されたインメモリベースのキー・バリュー・ストアです。2010年3月にはVMWareが同氏を雇入れ、同社の支援のもと、コントリビューターのPieter Noordhuis氏と共にフルタイムで開発が進められています。 記事執筆時点での最新stableはバージョン2.0となり、新しいデータ型の追加やトランザクションのサポート、VM(仮想メモリ)の実装などが追加されました。 また、メモリ効率の向上やスループットの改善が図られたバージョン2.2が間

    第1回 インメモリデータストア Redisの概要 | gihyo.jp
  • 連載:CakePHPで高速Webアプリ開発|gihyo.jp

    第16回何でもできるようになった1.2のデータバリデーション機能(1/2):基編 秋田真宏 2009-07-17

    連載:CakePHPで高速Webアプリ開発|gihyo.jp
    neumann
    neumann 2010/11/28
    CakePHP
  • 連載:なぜPHPアプリにセキュリティホールが多いのか?|gihyo.jp

    第42回PostgreSQL 9.0に見るSQLインジェクション対策 大垣靖男 2011-05-19

    連載:なぜPHPアプリにセキュリティホールが多いのか?|gihyo.jp
    neumann
    neumann 2010/10/19
  • 第5回 CakePHPで作るToDoアプリ(1) | gihyo.jp

    第4回ではCakePHPでの開発環境を構築しました。今回からアプリケーション部分の開発にとりかかります。 開発するのはToDo管理アプリケーションです。今回は以下の作業を行います。 DBの設計と作成 コントローラの作成 モデルの作成 ビューの作成 この作業で実装される機能は以下になります。 タスク一覧の表示 このアプリケーション開発の前提として、DocumentRootは/home/gihyo/public_htmlで、URLはhttp://example.com/~gihyo/、CakePHPをセットアップしたディレクトリは/home/gihyo/public_html/todo、URLはhttp://example.com/~gihyo/todo/とします。 DBの設計と作成 まずはCakePHPに慣れるためのサンプルアプリケーションですので、機能は最小限とします。アプリケーションを利

    第5回 CakePHPで作るToDoアプリ(1) | gihyo.jp
    neumann
    neumann 2010/09/25
  • スタートアップ SVG:第4回 SVGを活用する|gihyo.jp … 技術評論社

    第1回はSVGの基礎知識を、第2回と第3回でIE9がサポートする範囲(予定含む)を中心にSVGの書き方を解説しました。最終回となる今回はSVGを実際に活用していく上でのノウハウを解説したいと思います。 HTMLなページへのSVGの埋め込みテクニック 第1回で解説しましたが、SVGは画像フォーマットでもあり、InkScapeなどのグラフィカルなインターフェースを持ったアプリケーションで作成することができます。そのsvgファイルをページに読み込むにはobjectタグを使う方法が一般的です。しかし、この方法ではobjectタグはiframeのように親ページと子ページで独立したDOMを構築するため、SVGを動的に扱いたい場合には適しません。そういった場合、svgファイルをXMLHttpRequestで読み込む方法がオススメです。 まずはシンプルにresponseXMLを使う方法です。この方法はFi

    スタートアップ SVG:第4回 SVGを活用する|gihyo.jp … 技術評論社
    neumann
    neumann 2010/09/06
  • CakePHPで高速Webアプリ開発:第1回 CakePHPを使いたくなる5つの特徴|gihyo.jp … 技術評論社

    CakePHPとは CakePHPはオープンソースで開発されたPHP用のフレームワークです。Ruby on Railsの影響を強く受けており、Webアプリケーションを高速に開発するための仕掛けが随所に盛り込まれています。 PHP開発者の方で、Railsで開発してみたいけどRubyの経験がないのでなかなか行動に移せない方などはとくにCakePHPを試してみてほしいと思います。Railsの考え方を肌で理解しつつ、PHPでWebアプリケーションを高速開発するための選択肢を手に入れることになるでしょう。 CakePHP 家サイト(英語)(左図⁠)⁠。 フォーラム - CakePHP Users in Japan(右図) そのほか、CakePHP プログラマーズ リファレンスガイドも参考になる CakePHPを使いたくなる5つの特徴 まずは皆さんにCakePHPに興味を持っていただくため、フレーム

    CakePHPで高速Webアプリ開発:第1回 CakePHPを使いたくなる5つの特徴|gihyo.jp … 技術評論社
    neumann
    neumann 2010/07/22
  • jquery.jsを読み解く:第1回 jQueryライブラリ(1~171行目)|gihyo.jp … 技術評論社

    はじめに jQueryとは、John Resigによって開発され、最近非常に注目を集めている Javascriptライブラリです。 JavaScriptHTMLの対話を劇的に改善し、Ajaxなどにより複雑化してきているWebアプリケーション構築に必要な処理を非常に簡潔に書くことができます。また、ブラウザの種類やバージョンによる違いも吸収してくれるため、プログラマの作業量も減らしてくれます。 連載では、jQueryライブラリのコードを読みながら、実装として中で何が行われているのかを見ていこうと思います。 想定している読者は、jQueryライブラリをただ使うだけでなく、やっていることを理解したいという方、使われているコードを応用して自分なりの改造をしてみたい方、新たなプラグインを開発したいという方などです。 今回の連載では執筆開始時点の最新版であるバージョン1.2.2を対象としています。説

    jquery.jsを読み解く:第1回 jQueryライブラリ(1~171行目)|gihyo.jp … 技術評論社
  • 第3回 Python編 | gihyo.jp

    インストール インストールは、LinuxMac OS Xではリスト1の手順で行ってください。Windowsの場合は、http://pyyaml.org/download/pyyaml/にあるWindows installerを使ってください。 リスト1 PyYAMLのインストール $ wget http://pyyaml.org/download/pyyaml/PyYAML-3.05.tar.gz $ tar xzf PyYAML-3.05.tar.gz $ cd PyYAML-3.05/ $ sudo python setup.py install 使い方 PyYAMLの使い方はリスト2のようになります。日語を含む場合は必ずUnicodeにデコードしなければならない点に注意してください。詳細はリファレンスマニュアルを参照してください。 リスト2 PyYAMLの使い方(ex-pyyam

    第3回 Python編 | gihyo.jp
  • 特集:jquery.jsを読み解く|gihyo.jp … 技術評論社

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    特集:jquery.jsを読み解く|gihyo.jp … 技術評論社
    neumann
    neumann 2009/11/12
  • 第7回 Unicodeからの多対一の変換[前編] | gihyo.jp

    文字コードが引き起こすセキュリティ上の問題として、もっとも興味深いもののひとつである、Unicodeから他の文字コードへの「多対一の変換」で引き起こされる問題点について、今回と次回で説明します。 ご存じのとおり、Unicodeには非常に多数の文字が収録されていますが(現在最新版のUnicode 5.1.0では100,713文字が収録されているそうです⁠)⁠、Unicodeから他の文字コードへの変換においては、互換性や可読性の維持のためか、複数のUnicodeの文字が他の文字コードでは単一の文字に変換されることがあります。 この「多対一」の変換が、開発者も想定していなかったような問題を引き起こす原因となることが多々あります。 具体的な例として、Windows上でのUnicodeからの変換について説明します。 Windows上でのUnicodeからShift_JISへの変換 Windows上で

    第7回 Unicodeからの多対一の変換[前編] | gihyo.jp
  • 今からスタート! PHP 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    今からスタート! PHP 記事一覧 | gihyo.jp
    neumann
    neumann 2009/05/31
  • 第2回 memcachedのメモリストレージを理解する | gihyo.jp

    株式会社ミクシィ 研究開発グループの前坂です。前回の記事でmemcachedは分散に長けた高速なキャッシュサーバであることが紹介されました。今回はmemcachedの内部構造がどう実装されているのか、そしてメモリがどう管理されているのかをご紹介します。また、memcachedの内部構造の事情による弱点も紹介します。 メモリを整理して再利用するSlab Allocationメカニズム 昨今のmemcachedはデフォルトでSlab Allocatorというメカニズムを使ってメモリの確保・管理を行っています。このメカニズムが登場する以前のメモリ確保の戦略は、単純にすべてのレコードに対してmallocとfreeを行うといったものでした。しがしながら、このアプローチではメモリにフラグメンテーション(断片化)を発生させてしまい、OSのメモリマネージャに負荷をかけ、最悪の場合だとmemcachedのプ

    第2回 memcachedのメモリストレージを理解する | gihyo.jp