タグ

programmingに関するototoiのブックマーク (18)

  • Triangle: A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator

    riangle A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator. Jonathan Richard Shewchuk Computer Science Division University of California at Berkeley Berkeley, California 94720-1776 Winner of the 2003 James Hardy Wilkinson Prize in Numerical Software. Created at Carnegie Mellon University as part of the Quake project (tools for large-scale earthquake simulation). Supported by an NSE

  • Amazon.co.jp: はじめてのCUDAプログラミング: 驚異の開発環境GPU+CUDAを使いこなす! (I/O BOOKS): 青木尊之, 額田彰: 本

    Amazon.co.jp: はじめてのCUDAプログラミング: 驚異の開発環境GPU+CUDAを使いこなす! (I/O BOOKS): 青木尊之, 額田彰: 本
  • The Go Programming Language

    Tips for writing clear, performant, and idiomatic Go code

    The Go Programming Language
  • Minise: MIni Search Engine

    ウェブサイトは現在工事中です.ソースコード公開は10/24頃を予定しています. 概要 Miniseは最小限必要な機能をサポートした非常にコンパクトな検索エンジンです.検索対象の文章に対し索引を構築し,検索クエリに対する全文検索を行うことができます. 索引の種類として逐次検索,転置ファイル,N-gram,接尾辞配列をサポートしています.また検索結果の取得については定義済みのスコア以外にユーザー定義のスコアを用いたランキングを行うことができます. 主な利用用途として、小〜中規模の検索向けまた,教育用,研究用目的に使われることを想定されております. ダウンロード Miniseはフリーソフトウェアです.修正BSDライセンスに従ってソフトウェアを使用,再配布することができます. 2009-10-24: Minise 0.01 リリース予定 2009-10-21: ホームページ公開 使い方

  • インテル Parallel Studioを使って 並列化プログラミングを試してみた

    CPUのマルチコア化に伴い、開発者にも「並列プログラミング」が必要とされる時代になってきています。5月下旬にインテルがリリースした「インテル Parallel Studio」を利用すると、使い慣れたVisual Studioの開発環境で、並列化プログラミングの様々なサポートを得ることができます。稿では、その概要やインストール方法、テスト結果などについて解説します。 はじめに IT業界はよく日進月歩だと言われます。確かに我々開発者を取り巻く環境は日々変化し、新しいテクノロジーが毎月のように発表されています。しかし、ある程度経験を積んだ開発者は、そのような変化は表面上のものだと考えます。 プログラミング言語は進化し、どんどん新しい機能が追加されてゆき、それに伴い新しい開発環境が登場します。ですが、冷静に考えてみればそう慌てることはありません。昨今騒がれている言語の新しい機能も大半が古くからあ

    インテル Parallel Studioを使って 並列化プログラミングを試してみた
  • C++とPythonの文字コード変換+正規表現速度比較ソース公開 @ 7bit

    以前書いたC++Pythonより重い… [1]でソースコードを載せると言いつつ載せて無かったので、引っ張り出してきました。 ptest_regex.zip をダウンロード [2] 昔のことで記憶が曖昧ですが、たしかC++, Python, 生grepで データセット実験1実験2実験3 ソースコードint.*\(^.*$^.*int.*$のち^.*\(.*$のち^.*\).*$ (英文?)和文は.*。^.*$^.*は.*$のち^.*た.*$のち^.*。.*$ をそれぞれ試しています。多分。 用いたデータセットや結果は過去のエントリ [3]を参照してください。 勿論「C++よりPythonが全面的に速い」「C++Pythonで同じアルゴリズムを実装すると後者が速い」ということが言いたいのではありません。(そしてそれは多分言えないと思う) 適当に使えそうな/気軽に使ってしまうライブラリ(C+

  • Kazuho@Cybozu Labs: スレッド間で共有する変数のアクセス権制御を C++ コンパイラで強制する方法

    マルチスレッドなプログラムを書いていると、スレッド間で共有する変数へのアクセスを正しく直列化できているか、という点が常に問題になります。どうせなら、正しく書けているかコンパイル時に確認したいよね、ということで、以下のような C++ テンプレートを書いてみました。 template <typename T> class cac_mutex_t { public: class lockref { protected: cac_mutex_t<T>* m_; public: lockref(cac_mutex_t<T>& m) : m_(&m) { pthread_mutex_lock(&m_->mutex_); } ~lockref() { pthread_mutex_unlock(&m_->mutex_); } T& operator*() { return m_->t_; } T* ope

    ototoi
    ototoi 2009/06/24
    foo.xではアクセスできないかと・・・。foo->x もしくは (*foo).x ならば可能。friendをつかってlockref経由でのみでしかアクセスをできないようにしているのがミソ。
  • Linux Kernel Watch 5月版 Firefoxのプチフリーズ問題から始まった大論争(1/2) − @IT

    5月版 Firefoxのプチフリーズ問題から始まった大論争 小崎資広 2009/6/1 今回メインのネタとして取り上げたFirefoxの「プチフリーズ問題」ですが、その後調べたところ、WindowsMacでも問題になっているようですね。「firefox sqlite」で検索するといっぱいヒットしました。 今回の件は、アプリケーションのミスでもカーネル側で無理やり何とかしてしまうLinuxの実利主義の真骨頂が表れたんじゃないかと僕は思っています。皆さんはどう思いますか? それでは、どうぞ! それはFirefoxのプチフリーズ問題から始まった すでに各方面で話題になっていますが、2.6.30のマージウィンドウでext3のトピックが荒れに荒れ、とんでもない騒ぎが起こっていました。 問題の発端は、あるFirefoxのbugzillaエントリから始まりました(注1)。「Linux版Firefoxを

    ototoi
    ototoi 2009/06/03
    fsync()/fdatasync()/sync_file_range()の違い
  • 実践的なパターン: テストの容易性を高める設計

    Contents Introducing TPL Structured Parallelism Overexposing Parallelism A Ray Tracer Example Dynamic Work Distribution Aggregation Fork-Join Parallelism Tasks and Futures Replicable Tasks The Task Manager Multi-processor machines are now becoming standard while the speed increases of single processors have slowed down. The key to performance improvements is therefore to run a program on multiple

    実践的なパターン: テストの容易性を高める設計
  • MacRuby: The Definitive Guide

    More than 5,000 organizations count on our digital courses and more to help their teams learn the tools and technologies that drive business outcomes. We can help yours too. New AI policy for O’Reilly authors and talent O’Reilly president Laura Baldwin shares the company’s ethical approach to leveraging GenAI tools and ensuring O’Reilly experts are compensated for their work. Read it now It’s time

    MacRuby: The Definitive Guide
  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • プラグインで独自ストレージを作ろう - mixi engineer blog

    OpenSocialとかC++0xとか世の中の流れが早すぎて、いろいろと勉強しなきゃなと焦りつつも、ついついピクミン2にはまってしまうmikioです。今回はTokyo Tyrant(TT)を使ってユーザ独自のストレージシステムを簡単に構築する方法について説明します。 プラグインとは オブジェクト指向プログラミングに慣れた人にとっては、インターフェイスと実装を分離することによってプログラムの拡張性や保守性を向上させる技法(データ抽象)は常識ですよね。その考えをさらに進めると、インターフェイスのみをプログラムに記述しておいて、具体的な実装は実行時に割り当てるという、いわゆるプラグイン(plug-in)という技法に至ります。プラグインでカスタマイズできる能力をプラガブル(pluggable)などと言ったりもします。 例えばTokyo Cabinet(TC)では、レコードの挿入、削除、参照といった

    プラグインで独自ストレージを作ろう - mixi engineer blog
  • C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター

    これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。 文字列 ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。 また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。 文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。 C/C++ における文字列の特性 犯しやすい文字列操作の間違い 文字列の脆弱性 プロセスのメモリ構成 スタック破壊の仕組み コードイン

    C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター
  • PowerShell FAQ

    型 文字列 [1][2] 配列[1] 連想配列[1] 16進数[1] 演算子 再帰代入演算子[1] 型演算子(-as/-is)[1] 文字列演算子(-f)[1] 基言語仕様 if構文、switch構文を利用する[1] ヒア文字列を利用する[1] 複数の変数へ同時に代入する[1] 文字列をコマンドとして実行する[1] ScriptBlockを実行する[1][2] スクリプトファイルをインクルードする[1] キロ、メガ、ギガを表す記号を利用する[1] Staticメソッド/プロパティにアクセスする[1] 特殊変数を利用する[1][2] 正規表現を利用する[1] 変数の属性を設定する[1][2][3] オペレーションの実行前に確認する(ShouldProcess)[1] 文字列操作 文字列を操作する[1][2][3] パス文字列を解析する[1][2] パス文字列の結合する[1] レジストリ

  • 10分で作るYahoo! OpenID RP

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。システム統括部脇阪です。 「OpenID関係の記事を24時間書く」という依頼の元、がんばって何か書こうと思います! OpenID関連の記事ということで、今回はYahoo! JAPANのOpenID対応RPを構築する方法を紹介したいと思います RPって何? RPとはRelying Partyの略で、OpenIDでログインできるサイトのことです。日ではsmart.fm(旧iKnow!)が有名です。 ちなみにOpenIDを発行しているYahoo! JAPANやmixi,livedoorなどのことはOP(OpenID Provider)と言います。今回はOPに関しては取り扱いません。 RPになるメリットって? ユーザーごとに

    10分で作るYahoo! OpenID RP
  • Linus「C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが 簡単に生産されるようになってる」

    /15 [4] (21:54) 原文: http://lwn.net/Articles/249460/ From: xxx To: xxx Subject: Re: [RFC] builin-mailinfo.c をマシな文字列ライブラリを使うようにすること Date: Thu, 6 Sep 2007 18:50:28 +0100 (BST) Message-ID: <alpine.LFD.0.999.0709061839510.5626@evo.linux-foundation.org> On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > Git のソースコードを最初に見たとき、ヘンだと思ったこと: > 1. C++ じゃなくてただの C を使ってる。理由は謎。移植性がどうとか言わないで、 > そんなのウソに決まってるから。 *あんた* のほうこそ

    ototoi
    ototoi 2009/01/26
    C++がなかったころ、多くの平均以下のプログラマーもCを使っていたんですがね・・・
  • More C++ Idioms - Wikibooks

    C++ はあまりに『熟練者に優しく』なってしまった」(C++ has indeed become too "expert friendly") Stroustrup 氏の言は真実である。なぜなら熟練者は言語のイディオムに深く精通しているからである。プログラマが理解するイディオムの増加に従って、言語は彼あるいは彼女にとってよりフレンドリーになる。この open content book の目的はほどほどに C++ に精通しているプログラマに対して現代的な C++ のイディオムを提示し、C++ をよりずっとフレンドリーに感じるレベルにまで知識を引き上げる助けと成る事である。書は熟練した C++ プログラマが C++ を使ってプログラミングや設計を行う際に用いる事の多い再利用可能なイディオムの網羅的なカタログと成るよう意図されている。これは、それらのテクニックや語彙をひとまとめにしようという

  • 1