タグ

programmingに関するkosakiのブックマーク (78)

  • ラムダ文字の由来:Rainy Day Codings:So-net blog

    Haskell で匿名関数を表現するのに \ を使うのはバックスラッシュがラムダ文字 λ に似てるかららしい。でもこれは Windows とかだと円記号になってしまって台無しである。それにバックスラッシュは相当多くの言語で一意にエスケープの意味を持つので混乱する。 匿名関数をラムダ lambda と呼ぶのは Lisp の影響だが、Peter Norvig の Paradigms of Artificial Intelligence Programming によると Lisp で匿名関数を lambda と書くのは以下のような由来らしい。 - Russel と Whitehead の Principia Mathematica では のように束縛変数の上にキャレットを置く書き方をしていた - Church がその記法を ^x(x+x) と変えた - キャレットの下に何も無いのが変だと思ったの

  • niigata新潟アクセス修飾子のご提案 by Rti 7743 on Prezi

    niigata新潟アクセス修飾子のご提案

    niigata新潟アクセス修飾子のご提案 by Rti 7743 on Prezi
    kosaki
    kosaki 2010/09/30
    これがウワサの新潟か
  • RubyはメッセージのないSmalltalkか、に関するまとめ

    Smalltalk-Squeakの日における先駆者の@abee2さんの発言に端を発した@sumimさんの発言を受けて@yukihiro_matz さんが直接回答。この会話をまとめました(2010/09/28)。 イテレータの話題に移っています。そのあたりを追加しました。発端の発言も追加しました。(2010/09/29)

    RubyはメッセージのないSmalltalkか、に関するまとめ
  • Variadicとは何ぞや

    C++0xには、Variadic templatesなるものが存在する。あえて訳すとしたら、可変テンプレートか、可変引数テンプレートあたりだろう。 この引数には、仮引数や実引数のような、厳密な区別はいらないだろう。 しかし、Variadicという単語は、どこから来たのだろう。意味は分かる。variableから来ているに違いない。意味はわかるが、念のため、辞書で確認しておこう。 載っていない。辞書に載っていないとはどういう事だろう。variadicは、プログラミングでは、非常に有名な言葉だ。これが載っていないとは解せない。 -icというのは、ofとかlikeという意味の接尾語である。日語にも、~的という都合のいい接尾語がある。では、dはどこから来たのか。単に発音上の都合なのだろうか。 さっぱり分からなかったので、ネイティブに聞いた。どうやら、variable + -ad + -ic らしい

  • 最近プリプロセッサの話しかしてないような気がするから、今日はちょっとプリプロセッサの話でもする - デ-mk6

    巷では、やれ「プリプロセッサは名前空間を台無しにする」だの「foo(n++)とかしたらn++が二回評価されて結果が云々」だの、「定義のときにカッコがどうたら」とかボロクソ言われてますが、まぁ正しいです。ですがプリプロセッサを見るにつけて、帰りに一杯やったマスオさんを見るサザエさんのような態度をとるのはいかがなもんですか。そこはまさにプリプロセッサを使うべきところかも知れないでしょう。そんなものに頼るなら標準化委員会に要望だせっていうのはちょっと思考が短絡的すぎます。短絡的なのは組み込み型に対する論理演算だけにしてください。C++は既に広く広くひろーく実用されている言語で、そう簡単には規格変更できないですし、何よりC++の規格の関係者がそんな適当なことはしません。彼らは「こういう機能が欲しい」という要求は腐るほど受けていますが、当は別にそういう機能がなくてもよくて、単に既存のアレを利用して

    最近プリプロセッサの話しかしてないような気がするから、今日はちょっとプリプロセッサの話でもする - デ-mk6
  • マルチコア時代のLock-free入門 - yamasaのネタ帳

    日、並カンにてLock-freeアルゴリズムについて発表しました。発表資料は以下になります。 なお、今回の発表で割愛したメモリバリアの詳細については、以下の発表資料を参照ください。 そろそろvolatileについて一言いっておくか また、Hazard pointerやタグ付きポインタを使用したサンプルコードを以下に置いています。こちらも参考にどうぞ。 yamasa/lockfree - GitHub マルチコア時代のLock-free入門View more presentations or Upload your own.

    マルチコア時代のLock-free入門 - yamasaのネタ帳
  • MacOSXではgprofが使えない→Sharkを使う - 西尾泰和のはてなダイアリー

    gprofの使い方がよくわからないですべての関数が0秒になってしまうことに悩んでいたが、gprofの使い方を間違えているのだと思って調べていたのが間違いだった。gprof bug on Mac OS X?。 で、かわりにSharkを使うという話が書いてあって調べてみたのだけどなかなかよさそう: Optimize with Shark: Big Payoff, Small Effort ついこの前ダウンロードしたXCodeが手元にあったのでそれから入れる。CHUDの中に入っている。 /Developer/Applications/Performance Tools/にインストールされた。 早速試してみた。 turnの中でfreeしているのが一番負担になっているということかな。明示的にfreeはしていないのだけど、ようは自動的に作られている一時オブジェクトが重たいということか。明示的に作ってf

    MacOSXではgprofが使えない→Sharkを使う - 西尾泰和のはてなダイアリー
  • 並カンで発表しました - 日記を書く [・w・] はやみずさん

    並カン(並列プログラミングカンファレンス)にて、「いいかげんな人のためのTransactional Memory Primer」という題で発表してきました。前日の夜に発表することがきまって、朝から資料を作りはじめたので超いいかげんです。 いいかげんな人のためのTransactional Memory PrimerView more presentations from hayamiz. いいかげんな人のためのTransactional Memory Primer

    並カンで発表しました - 日記を書く [・w・] はやみずさん
  • C++0x基礎文法最速マスター - Faith and Brave - C++で遊ぼう

    C++0xになると、C++03でごちゃごちゃした部分がだいぶ すっきり書けるようになるので、C++0xでの入門はこんな感じになるよー、 という気持ちで書きました。 1. Hello World C++0xでの入出力には、IOStreamというものを使用します。 <<演算子でどんどんつないでいきます。 以下のプログラムの読み方は 「標準出力(cout)に"Hello World"という文字列と、改行(endl)を出力する」 です。 #include <iostream> int main() { std::cout << "Hello World" << std::endl; return 0; } Hello World coutとendlを使用するには、 #include <iostream> のように、という標準ライブラリのファイルを読み込む必要があります。 2. コメント 行コメント

    C++0x基礎文法最速マスター - Faith and Brave - C++で遊ぼう
  • 次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳

    前のエントリで次期C++標準(通称C++0x)にatomic型とメモリバリアが導入されるという話をしました。今回はそのC++での実装について、もう少し深く追いかけてみます。 スライド資料では「atomic操作 + acquire/releaseバリア」が基であると書きましたが、実際に次期C++に導入される予定のatomic APIは、もう少し複雑な仕様になっています。一番の違いは、メモリバリアの種類が増えていることです。 次期C++標準の現在のドラフトでは、メモリバリアの種類を表すenum型の定義は以下のようになっています。 namespace std { typedef enum memory_order { memory_order_relaxed, memory_order_consume, memory_order_acquire, memory_order_release, m

    次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳
  • 人材獲得作戦の試験問題を解いてみた - 良いもの。悪いもの。はてな部屋

    出遅れた感があるけど、人材獲得作戦の試験問題をPythonで解いてみた。もちろん、調べたりググったりするの禁止で。というかググればコピペで終わりのような気がする。今回はゆるめの記事なので、メインのブログではなく、こちらに書いておく。 普通にダイクストラ法で書いたけど、何故か40分もかかった。途中でコードが気に入らなくて最初から書き直したり、ケアレスミスの修正をしたりしたからか。それにしてもすっきりしないコードだ。INFを100000で決め打ちしていたりとか、優先順位付きキューを用いていなかったりとか、周りに壁があること前提だとか。いろいろひどいなぁ。 これだけじゃ面白くないので、ダイクストラ法とA*アルゴリズムの違いを説明してみる。ダイクストラ法はスタート地点から順に隣接するノードの距離を足し合わせていき、常に最も距離の短いノードからそれに隣接するノードを調べていく方法で、A*は距離を足し

    人材獲得作戦の試験問題を解いてみた - 良いもの。悪いもの。はてな部屋
  • 汝の馬鹿を愛せよ | taro-nishinoの日記 | スラド

    新年早々のMatt S. Trout氏のエッセイ"Love your idiots"は言葉はキツイですが、コミュニティでの在り方を考えさせる味わい深いものです。どのコミュニティでも最低一人はこういう役割の人がいないとうまくいかないと私は思います。何故なら、そのコミュニティが全員超天才だったら、早々とコミュニティは崩壊してしまうことは明らかだと思います。以下、その私訳を載せておきます。 汝の馬鹿を愛せよ 2010年1月3日 Matt S. Trout プロジェクトマイルストーンと思考モデル そう、私は最近オープンソースプロジェクトのマイルストーンについてずっと考えている。コードベースのマイルストーンではないが…プロジェクトの利用とコミュニティから見たマイルストーンだ。普通は貴方が造れると言うよりも、出くわすものである。 しかし、今日私が話したいものは、苦くて甘い瞬間だが、貴方のプロジェクト

  • BLOG::broomie.net: gperfとTokyo Cabinetのスピードを比較してみた

    ここ何回かgperfのメモを取ってきて,かつここには書かなかったけど個人的にサンプルプログラムを作って改めて思ったんだけど,gperfってルックアップがめちゃくちゃ高速なわけですね.完全ハッシュなので当然っちゃー当然なのですが.早くてお手軽ってのがgperfの良いところなわけですが.さてさて,早いのわかったけど,どれぐらい早いの?ってのは何かの指標がなければわかりませんね.そこで,今のところ最強に早いといわれているTokyo Cabinetのhash DBMとのスピードの比較をしてみようという,結構無意味なベンチテストをやってみた. データの準備 やったことは単純で,ランダムにkey, valueのセットを作成し,それぞれ10セット,100セット,1000セット,10000セット,100000セット,のDBの作成時間と,ルックアップの時間を比較してみた.ちなみにkeyは[A-Za-z1-9

  • 本の虫: C++0xの新機能のリスト

    どうやら、C++0xのを執筆することになった。 ふと思えば、今まで一度も、C++0xの新機能がどのくらいあるのかということを考えたことがなかった。規格の変更は、もちろん大量にあるのだが、その中で、特に知っておくべき変更や追加というのは、どのくらいあるのか。整理するために、リストアップしてみた。このリストに載っていない機能や、既存の規格に対する変更で、特にユーザーも知っておくべきものがあれば、知らせて欲しい。 C++0xはまだドラフト段階だが、確実にこれは大きく変わらないだろうという機能は、かなりある。逆に、これはちょっとまだ分からないという機能もある。 言語機能 Rvalue Reference auto delctype static_assert Template Aliases extern template Variadic Templates Initializer lists

  • 一般教養としてのGarbage Collection (PDF)

    Garbage Collection ( ) (endo@logos.t.u-tokyo.ac.jp) 6 : Jan 27, 2005 1 Garbage Collection ? 2 (1) (2) ( 1) C C++, Pascal ML Java, Perl C malloc (allocate) free ( malloc Java/C++ ML tuple record ) C ( / free) 12 ML tuple record garbage collection(GC) GC • UNIX (1995 ) emacs GC • Java web Java 0.5 / ( )black box GC GC ( 1) Java Sun HotSpot VM (Ver. 1.4.2) GC 3 generational GC (6.2 ) ( ) copying GC (

  • 2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来

    PFI社内セミナー 2009年12月10日 20:00-21:00(予定) GPUコンピューティングの現状とスーパーコンピューティングの未来 発表者: 村主 崇行(プリファードインフラストラクチャー 研究開発部門・京都大学大学院 物理学第二教室) セミナー録画URL: http://www.ustream.tv/recorded/2837689 このスライドは、発表後にみなさまからいただいた貴重な意見をもとに改訂した版です。発表時点での版はこちら: http://www.slideshare.net/pfi/20091210-gpu-2735685Read less

    2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
  • 簡単なWebサーチエンジンの作り方 - Imagine with 加藤和彦

    筑波大学は3学期制で,12月1日から3学期が始まりました.3学期には私が担当している学類生(普通の大学の学部生)3年生向けの実験があります.約3ヶ月を掛けて,ほどほどの規模のプログラム作成を行います.私が作り,担当しているプログラム実験は「Webサーチエンジン」といいまして,テキストはこちらに公開しています. この実験,結構,自信作なんです.Javaの基的なプログラミングができることだけを仮定して,漏れのない全文検索を行うWebサーエンジンを作ります.Webデータ収集を自動的に行うクローラー付き.Googleのようなページランキング機能はありませんが,一応,サーチエンジンの基機能を備えます.自慢は,このテキストが実質A4で印刷して2ページくらいであること.数学の小問を解いていくように,順番に小問を解いていくと,最後にはWebサーチエンジンができます. ミソはサフィックス・アレイ(suf

    簡単なWebサーチエンジンの作り方 - Imagine with 加藤和彦
  • http://feed.designlinkdatabase.net/feed/outsite_299958.aspx

  • 岩田 雅樹 のブログ - Site Home - MSDN Blogs

    エバンジェリスト岩田のブログ 連載一時休止のお詫び 今回の震災・津波被害は当に言葉にしがたいものがあります。謹んで災害のお見舞いを申し上げます。私も昔、原子力工学専攻と呼ばれていた専攻に所属していたこともあり、福島の二次的な人災には心を痛めております... Author: jhmasuji Date: 04/23/2011 Windows 7 / Windows Server 2008 R2 はなぜ軽いのか – Kernel Mode からの視点 (1) 「機能を削っただけ」なーんて言われていますが、当はそうではないんですよね…。そんなわけで Windows 7 の魅力を連載でお伝えしていこうと思います。(不定期更新)... Author: jhmasuji Date: 02/25/2011 RemoteFX を有効にした仮想マシンに接続できない場合の対処 さっそく RemoteFX.

    岩田 雅樹 のブログ - Site Home - MSDN Blogs
  • CSSをお手軽にデバッグする方法 | Happy My Life

    何重にも依存して定義されているCSSをを簡単にデバッグする方法。以下の内容をCSS内に追加しておくとよい。 コードを見ての通り該当する個所が色付きで輪郭線が表示されるので、どういった構造になっているか一目瞭然。不要になったらコメントアウトするとよい。 * { outline: 2px dotted red } * * { outline: 2px dotted green } * * * { outline: 2px dotted orange } * * * * { outline: 2px dotted blue } * * * * * { outline: 1px solid red } * * * * * * { outline: 1px solid green } * * * * * * * { outline: 1px solid orange } * * * * * * *