タグ

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

  • 第5回 SQL流行間比較(1) はじめに | gihyo.jp

    まずは、各行について過去の直近の行を求めてみましょう。OLAP関数を使える実装ならば、リスト1のような簡潔な書き方で実現できます(実行結果は図1:注2⁠)⁠。 リスト1 過去の直近を求める(OLAP関数:現在のところ実装依存) SELECT sample_date AS cur_date, MIN(sample_date) OVER (ORDER BY sample_date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS latest FROM LoadSample; 図1 リスト1の実行結果 cur_date latest -------- -------- 08-02-01 08-02-02 08-02-01 08-02-05 08-02-02 08-02-07 08-02-05 08-02-08 08-02-07 08-02-12

    第5回 SQL流行間比較(1) はじめに | gihyo.jp
  • Hadoopでレコメンドシステムを作ろう 記事一覧 | gihyo.jp

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

    Hadoopでレコメンドシステムを作ろう 記事一覧 | gihyo.jp
    umitanuki
    umitanuki 2012/02/13
  • 第11回 線形回帰を実装してみよう | gihyo.jp

    前回の掲載からしばらく間が空いてしまいましたが、今後は中谷の方で連載を進めていくことになりました。理論編と実践編を交互に進めていくスタイルは継続していきますので、引き続きよろしくお願いします。 線形回帰の復習 今回は連載第8回と第9回で紹介した線形回帰を実装してみる実践編です。 まずは簡単に復習しましょう。 回帰とは、与えられたデータに適した(データを上手く説明できる)関数を求める手法です。点の近くを通る曲線を見つけるときにも用いられます。中でも、基形として選んだ関数の線形和(式1)から関数を探すのが線形回帰です。 (⁠式1) ここでφ(x)=(φm(x))を基底関数といい、何か適切な関数を選んで固定します。その選び方によってモデルの性能や得られる関数の形などが決まるので、基底関数は解きたい問題にあわせて選ぶ必要があります。 しかし今はわかりやすさを優先して、シンプルな多項式基底(式2)

    第11回 線形回帰を実装してみよう | gihyo.jp
  • 第1回 OpenFlowって何だ!? | gihyo.jp

    はじめに みなさんは単にネットワークという言葉を聞くと、どのようなイメージを持たれるでしょうか。単純にパケットが通過するだけのケーブル的なイメージでしょうか。それとも、ロードバランスやパケットフィルタリングを行う箱のようなイメージでしょうか。 これまでのネットワーク機器はRFC(RequestFor Comment)などの標準で定義されたプロトコルに沿って動作し、ネットワーク機器を利用するユーザはメーカーが用意した記述ルールに従い設定を行うのが一般的でした。このような状況からネットワークは受け身でしか利用できないイメージが定着していると思いますが、次世代ネットワーク制御技術「OpenFlow[1]⁠」の登場により状況が変化しつつあります。 ネットワークをプログラムするOpenFlow OpenFlowを用いればネットワークの動きをプログラムにより制御することができます。ネットワークの動きを

    第1回 OpenFlowって何だ!? | gihyo.jp
    umitanuki
    umitanuki 2011/09/07
    それはすごい。"OpenFlowの世界では従来のL2やL3といったOSI参照モデルの概念が崩壊"
  • 第42回 PostgreSQL 9.0に見るSQLインジェクション対策 | gihyo.jp

    PostgrSQL 9.0から追加されたエスケープ関数から、SQLインジェクション対策を再度解説してみたいと思います。 SQLインジェクション対策の4原則 基的にはSQLインジェクション対策として以下の原則を守っていれば、SQLインジェクションに脆弱なアプリケーションを作ることはありません。 すべてのパラメータを文字列としてエスケープする すべてのパラメータをプリペアードクエリのパラメータとして処理する 文字エンコーディングの設定をAPIで行う パラメータとして処理できない文字列はバリデーションを行う 原則1と原則2は重複して適用する必要はありません。どちらかを行います。文字エンコーディングの設定やプリペアードクエリのエミュレーション・抽象化ライブラリのバグ等でSQLインジェクションが可能になる場合もありますが、通常であればこの原則を守っている限りSQLインジェクション脆弱性を作ることは

    第42回 PostgreSQL 9.0に見るSQLインジェクション対策 | gihyo.jp
  • 第4回 x86プロセッサにおけるプロセッサ仮想化 | gihyo.jp

    これまで、x86システム仮想マシンの概要、およびその実例としてDebian GNU/Linux 6.0を利用した仮想マシンの実行方法について紹介してきました。今回からは、より具体的にCPU、メモリ、I/Oデバイスの仮想化がどうやって実現されているかを解説したいと思います。 今回は、仮想マシンを実装するための古典的手法およびそれを従来のx86プロセッサに適用する際の問題点、そして仮想マシンソフトウェアがどのようにそれらの障壁を乗り越えてきたかについて解説します。 システム仮想マシンに求められる条件 これまで、システム仮想マシンはどのようなものかについて説明してきましたが、仮想化仮想化の生みの親とも言えるGoldbergらは、1974年に書いた論文にて、仮想マシンソフトウェアとはどのようなものであるべきかについて、コンピュータアーキテクチャの観点から論じています。 彼らは、その仮想マシンソフト

    第4回 x86プロセッサにおけるプロセッサ仮想化 | gihyo.jp
  • 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
  • Perl Hackers Hub:連載|gihyo.jp … 技術評論社

    最終回 Carmelによる依存モジュール管理 CPANモジュールの更新を高速⁠⁠、安全に(2) 宮川達彦[著],牧大輔,福貴之,松木雅幸,大沢和宏[監修] 2023-10-17 最終回 Carmelによる依存モジュール管理 CPANモジュールの更新を高速⁠⁠、安全に(1) 宮川達彦[著],牧大輔,福貴之,松木雅幸,大沢和宏[監修] 2023-10-16 第79回最近Perlに追加された実験的機能 try文⁠⁠、defer文⁠⁠、class文(2) 石垣憲一[著],牧大輔,福貴之,松木雅幸,大沢和宏[監修] 2023-08-18

    Perl Hackers Hub:連載|gihyo.jp … 技術評論社
  • 2011年のJavaScript ─ウェブアプリ全盛の時代へ | gihyo.jp

    あけましておめでとうございます。昨年に引き続き、今年もJavaScriptの近い未来についてちょっとだけお話させて頂きます。 最初に昨年の予想を見返しておきましょう。昨年は次の3つを2010年の鍵として取り上げました。 ウェブ標準 ブラウザ拡張 サーバーサイドJavaScript この3つを軸に2010年を振り返ってみます。 2010年のJavaScript界隈でのニュース ウェブ標準 2010年最初のビッグニュースはなんといってもIE 9のPlatform Preview版の登場でした。これまでの独自実装路線から一転して(正確にはIE 8の時点でJSONやWeb Storageのサポートなど、その徴候はあったのですが⁠)⁠、HTML5などのウェブ標準のサポートを進めることを表明しました。そして実際に8週おきにPlatform Preview版をアップデートして、ECMAScript5・S

    2011年のJavaScript ─ウェブアプリ全盛の時代へ | gihyo.jp
  • 第11回 転置索引の圧縮 | gihyo.jp

    はじめに 第2回で、索引は多くの場合圧縮されていることに言及しました。また第7回では、索引構築時にどの部分で索引を圧縮すればよいかを疑似コードを用いて説明しました。今回は、転置索引の具体的な圧縮方法について説明していきます。 圧縮の目的 中規模から大規模な索引の場合、転置リストは非常に長くなり、検索時にはディスクからの大量のデータの読み取りが行われます。転置索引(を用いた検索エンジン)では、これによる検索処理時間の増加を防ぐために、転置リストを圧縮しディスクからの読み込み時間の短縮を図ります。 この場合、圧縮された転置リストをディスクから読み込みさらに復元処理を行う必要がありますが、通常は次のようになります。 これは、近年のCPUとディスクの速度差が大きいため、主にCPUにおける処理である復元処理が高速に行えることによるものです。よって、圧縮というと容量を節約の意図で使うことが多いと思いま

    第11回 転置索引の圧縮 | gihyo.jp
    umitanuki
    umitanuki 2010/07/30
  • 第12回 ボロノイ図の作成(後編) | gihyo.jp

    はじめに 前回は、半平面の交差にもとづいてボロノイ図を計算するための考え方を説明しました。最終回となる今回は、疑似半平面の生成を実装した上で、ボロノイ図作成のプログラムを完成させます。 凸多角形による疑似半平面表現 前回も述べた通り、ある母点のボロノイ領域を求めるには、その母点と他の各母点の垂直二等分線から作られる全ての半平面の交差を計算する必要があります。すでに学習済みの凸多角形の交差計算方法を、そのまま半平面の交差計算にも利用するため、半平面を擬似的に凸多角形へと変換することを考えます。 図1を見てください。点線で囲まれた正方形の内部が、実際にボロノイ図の計算を行いたい座標範囲だとします。この正方形を取り囲むように、三角形が置かれています。(0, -10)といった頂点座標のとり方に特別な意味はなく、正方形を覆い尽くしていることがポイントです。 図1 境界三角形の設定 ある直線が与えられ

    第12回 ボロノイ図の作成(後編) | gihyo.jp
  • 第1回 直線の幾何 | gihyo.jp

    計算幾何学とは 小学生や中学生の頃、算数や数学の授業で、台形の面積を求めたり、直線の方程式を解いたりした記憶が誰にでもあることでしょう。計算幾何学とは、コンピュータサイエンスの立場から、こうした「図形」に関するアルゴリズムを研究する学問です。計算幾何学は、今日のコンピュータグラフィックスやCADの発展においてきわめて重要な役割を担っているほか、地理情報システム(GIS)やロボット工学といった数多くの分野に応用されています。 連載では、ブログ可視化サイトの「Blogopolis」で採用されている計算幾何的アプローチを引き合いに出しつつ、Javaプログラムでアルゴリズムを実装しながら、計算幾何学の初歩を学びます。 Blogopolisとボロノイ図 Blogopolisは筆者の開発したWebサイトで、主に日国内で開設された25万件以上のブログを解析し、「⁠仮想都市景観」として視覚化したサービ

    第1回 直線の幾何 | gihyo.jp
    umitanuki
    umitanuki 2009/12/15
  • PostgreSQL Conference 2009 Japanの見所に迫る

    今回から数回に分けて、11月20、21日に開催される「PostgreSQL Conference 2009 Japan」について紹介します。 PostgreSQL Conference 2009 Japanとは 「PostgreSQL Conference 2009 Japan - JPUG 10th Anniversary Conference -」は、日PostgreSQLユーザ会(JPUG:)が11月20日(金)から2日間に渡って開催するPostgreSQLイベントです。副題に「JPUG 10th Anniversary Conference」とあるように、今年はJPUG創立10周年にあたり、毎年行われているPostgreSQLコンファレンス以上に力が入っています。記事ではPostgreSQL Conference 2009 Japanの見所に徹底的に迫っていきます。 2日間/2

    PostgreSQL Conference 2009 Japanの見所に迫る
  • 第10回 jQueryライブラリ(2183行目~2364行目) | gihyo.jp

    今回もイベントの処理に関する部分の解説になります。$(document).ready()を実装している部分が出てきますが、ここのソースコードは非常に興味深いです。よくある実装方法としては、動的にscriptタグを挿入してJavaScriptコードを実行する方法がありますが、jQueryの実装はもっと複雑なものです。また、DOMContentLoadedを利用して、処理の開始をできるだけ早くして、ユーザの体感速度を向上するための工夫も大変参考になります。 それでは、順に見ていきましょう。 jQuery.fn.bind() 2183: jQuery.fn.extend({ 2184: bind: function( type, data, fn ) { 2185: return type == "unload" ? this.one(type, data, fn) : this.each(fu

    第10回 jQueryライブラリ(2183行目~2364行目) | gihyo.jp
  • 連載:検索エンジンを作る|gihyo.jp … 技術評論社

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

    連載:検索エンジンを作る|gihyo.jp … 技術評論社
  • WEB+DB PRESS Tech Meeting [資料&動画]|gihyo.jp … 技術評論社

    当日の講演資料と動画を公開です。 動画はニコニコ動画を利用して配信しています。ニコニコ動画のアカウントをお持ちでない方でも,gihyo.jp上で動画を再生できます(コメントの書き込みはできません)。 動画の最後でニコスクリプトを使ったアンケートを行っていますので,ニコニコ動画のアカウントをお持ちの方はご協力いただければ幸いです。動画をクリックすることでニコニコ動画の該当ページへアクセスすることができます(ニコニコ動画のマイリストはこちら)。 今回の動画公開にあたって,gihyo.jp用に新たなニコニコ動画プレーヤーを作っていただきました。この場を借りてニコニコ動画の方にお礼を申し上げます。 JavaScript Tips & Technique IT戦士amachangが最近のJavaScriptのテクニックやTipsについてご紹介します。

    umitanuki
    umitanuki 2008/01/18
  • 1