タグ

2014年8月5日のブックマーク (11件)

  • Haskellによる並列・並行プログラミング

    並列・並行プログラミングはプログラマの重要な関心事であり、常に注目を集めている話題です。これまで、関数型言語は並列・並行プログラミングに有利であると言われてきましたが、それを説明する書籍はありませんでした。書では、純粋関数型言語Haskellが提供する並列・並行プログラミングの機能を俯瞰し、実践的な問題を解いていきます。その根底にある考え方は、関数プログラミングの核心であるモジュラリティです。また書では、実際の問題を解決するときに陥りがちな落とし穴や、高い性能を出すためのtipsなどをまとめています。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認

    Haskellによる並列・並行プログラミング
  • vimでハードタブ(タブ文字)とか全角スペースの表示 - Lism.in * blog - nekoya (id:studio-m)

    vimを使う時はいつも :set list して、改行文字とかタブ文字を表示してるんですが、ハードタブが「^I」になって見づらい。自分でコード書く時はハードタブとか使わないからいいけど、人のコードを読むのに :set nolist して読むとかしてました。 したら、id:kazukichopが :set lcs でぉkと教えてくれましたよ。 'listchars' - VimWiki set lcs=tab:>.,eol:$,trail:_,extends:\自分の.vimrcにはこんな風に書いてみた。 「全角スペースも表示したい」と言ったらまた教えてくれた。 highlight JpSpace cterm=underline ctermfg=Blue guifg=Blue au BufRead,BufNew * match JpSpace / /んで、.vimrcにこんなのを付け加えた。

    vimでハードタブ(タブ文字)とか全角スペースの表示 - Lism.in * blog - nekoya (id:studio-m)
    somemo
    somemo 2014/08/05
  • C++で2次元配列(文字列)の動的確保 - Gobble up pudding

    2021-11-23 前回のC言語C言語で2次元配列(文字列)の動的確保 - Gobble up puddingで2次元配列(文字列)の動的確保の続きです。 C++のnewによる前回説明したパターンと同じやり方です。 mallocの代わりにnewを使います。mallocを使う場合はC++ではキャストが必要になります。 説明の都合上、stringクラスは使っていません。 もちろんvectorも使ってません。vectorおとなしく使うのが正解なんですが…。 この方法いつ使うの?ってケースですが古いAPIを利用するときに charの形だと何かと便利なケースがあると思うのでそういう時に使います。 どうでもいいですけど、名前空間ってカンマ必要だったかどうかいっつも迷います。 ちなみにVC++でコンパイルするには先頭に #define _CRT_SECURE_NO_WARNINGS が必要です。 g+

    C++で2次元配列(文字列)の動的確保 - Gobble up pudding
    somemo
    somemo 2014/08/05
  • C言語で2次元配列を動的に割り当てる4つの方法 - FLYING

    2次元配列を動的割り当てしたいそんなとき,C言語ならキモくなるかも。 検索エンジンから来る人がそれなりに居るようなので,解説画像を追加しました(2014/12/05)。 各行のデータを保持する配列と各行へのポインタを保持する配列に分けて確保 おそらく最も基的なやり方。 int **matrix; int i, j, n, m; n = 100, m = 100; matrix = malloc(sizeof(int *) * n); for (i=0;i<n;i++) { matrix[i] = malloc(sizeof(int) * m); } for (i=0;i<n;i++) { for (j=0;j<m;j++) { matrix[i][j] = i * m + j; printf("%d\n", matrix[i][j]); } } for (i=0;i<n;i++) { f

    C言語で2次元配列を動的に割り当てる4つの方法 - FLYING
    somemo
    somemo 2014/08/05
  • Internet Explorer デベロッパー センター

    The new Microsoft Edge is here and now available to download on all supported versions of Windows, macOS, iOS and Android.

  • NATやファイアウォールの向こうへデータをお届けする fluent-plugin-pull_forward を書いた - たごもりすメモ

    Fluentdにおけるネットワークごしデータ転送プラグインといえば forward が組み込みであるし、通信路を暗号化したければ secure-forward がある。 しかしこれらFluentdのネットワーク転送プラグインは基的に全て送信元から送信先に対してプッシュする形になっており、ネットワーク接続も送信元から送信先に対して行うことになっている。このため送信先のFluentdがNAT下にある場合やファイアウォールで保護された場所にある場合、もしくはダイヤルアップ接続……は、まあ今は無いだろうけど、例えば移動するデバイス上にある場合など、こういったときにはうまくデータの転送を行う構成がとれない。 なぜこういう状況、つまりプッシュ型で転送を行うプラグインばかりなのかというと、FluentdのBuffer pluginの仕組みによる。細かく設計上の話をあれこれしてもアレだし面倒くさいので省

    NATやファイアウォールの向こうへデータをお届けする fluent-plugin-pull_forward を書いた - たごもりすメモ
  • Fluentd UI - Go ahead!

    fluent/fluentd-ui Fluentdのエコシステムの一つとして,Fluentd UIをリリースしました. すでに試してくれたユーザもいるようなので,現在の使用感などは下記の記事を参考にしてください. Fluentd UIが出たので触ってみた Touch the fluentd-ui(1) この記事ではFluentd UIそのものについてつらつらと書きたいと思います.英語でのアナウンスもいずれ公式ブログに載るはず. Fluentd UIの生い立ち Fluentd UIの背景として,Fluentdも最近は国を問わず色々な所でユーザが増えてきており, 「CLIとか楽勝!」以外のユーザの割合も増えつつあります. ログコレクタでリッチな管理UIを持っているプロダクトってほとんどないと思うのですが, 新しく使い始めるユーザの嵌まり所とか見ていると, GUIの方が始めるための敷居が下がりそ

    Fluentd UI - Go ahead!
  • 脱関数化を実用する

    [1 背景と導入](脱関数化を実用する 1#section1) [1.1 静的な個数のクロージャのある高階のプログラムのサンプル](脱関数化を実用する 1#section1-1) [1.2 動的な個数のクロージャのある高階のプログラムのサンプル](脱関数化を実用する 1#section1-2) [1.3 脱関数化とはつまり](脱関数化を実用する 1#section1-3) [1.4 関連研究](脱関数化を実用する 1#section1-4) [1.5 この研究](脱関数化を実用する 1#section1-5) [2 リストと木を処理するプログラムの脱関数化](脱関数化を実用する 2#section2) [2.1 二分木をリストへと平坦化する](脱関数化を実用する 2#section2-1) [2.2 リストの高階な表現](脱関数化を実用する 2#section2-2) [2.3 チャーチ符

    脱関数化を実用する
  • Go Concurrency Patterns

    Go Concurrency Patterns Rob Pike Google Video This talk was presented at Google I/O in June 2012. Watch the talk on YouTube 2 Introduction 3 Concurrency features in Go People seemed fascinated by the concurrency features of Go when the language was first announced. Questions: Why is concurrency supported? What is concurrency, anyway? Where does the idea come from? What is it good for? How do I use

  • Google I/O 2012 - Go Concurrency Patterns

    Rob Pike Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems can be solved gracefully with simple Go code. For all I/O 2012 sessions, go to https://developers.google.com/io/

    Google I/O 2012 - Go Concurrency Patterns
  • Go のスライスの内部実装 - Block Rockin’ Codes

    History 14/05/09: Merge2 を修正しました。http://twitter.com/jbking/status/464659353945911297 Intro Go のスライスは、いわゆる LL 系の言語が持つ可変長配列の実装と似ています。 よって LL のような手軽な扱いをすることもできますが、その内部実装を知ることでより効率の良いメモリハンドリングができ、パフォーマンスを改善や、メモリーリークの防止などに繋がる可能性があります。 この辺は SWrap というライブラリを作りながら勉強したので、今回は、この Go のスライスの内部実装を解説します。 Go の配列 スライスを知るためには、まず配列について知っておく必要があります。 Go の配列は固定長のため、以下のように長さを指定して宣言します。 var arr [4]int func main() { arr =