タグ

programmingに関するkknsdのブックマーク (433)

  • マルチコア時代のLock-free入門 - yamasaのネタ帳

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

    マルチコア時代のLock-free入門 - yamasaのネタ帳
  • そろそろvolatileについて一言いっておくか - yamasaのネタ帳

    先月、CBUGとわんくまの勉強会にて、アトミック変数とかメモリバリアとかvolatileとかについて話をしてきました。 ちょっと遅くなりましたが、そのときの講演資料を一つにまとめたので、ここで公開しておきます。あと、補足記事も追加していってます。 volatileの実装の詳細について C++0xのメモリバリアについて(その1) C++0xのメモリバリアについて(その2) Double-Checked Lockingについて そろそろvolatileについて一言いっておくかView more presentations or Upload your own.

    そろそろvolatileについて一言いっておくか - yamasaのネタ帳
  • プログラマは皆どのようにしてLisperと化して行くのか?

    LispでWebサービスを作ればYahoo!に60億で買ってもらえると聞いて 実はCと同じくらい速いコードが書けると聞いて ルンバがLispで書かれていると聞いて リリカルなので 面接で笑われてカッとなった マンガでわかるらしいので iPhoneアプリが開発できると聞いて iアプリでLispが書けると聞いて 初めて手に入れたポケコンがAI-1000だった ハッカーと画家を読んでしまった 普通のやつらの上を行きたいので 舌足らずなので セグウェイを制御するコードが一日で書けるようになると聞いて How to become a Hackerを読んだ 専用の求人情報に応募できると聞いて プログラミングClojureを読んだ 初めての人のためのLispを読んだ 自前のLispで書かれた将棋が強かったので LispとPostScriptがあればハッピーになれると聞いて LOLの熱にあてられた On

    プログラマは皆どのようにしてLisperと化して行くのか?
  • wonderfl build flash online | 面白法人カヤック

    wonderflは、サイト上でFlashをつくることのできるサービス。 通常Flashをつくるためには、Flash IDEやFlex、FlashDevelop等といったツールを使って、コードを書き、コンパイルする必要がありますが、wonderflでは、サイトにあるフォームにActionscript3のコードを書けば、サーバサイドでコンパイルを行えます。 つまり、ブラウザさえあれば、Flashをつくれます。コンパイル結果はサイト上に表示され、作成されたFlash(swf)はページ上に自動的に表示されるので、完成したFlashをリアルタイムに見ながらコードを書くことができます。 ※APIとして、はてな OpenIDを使用してネットにさえつながれば、誰もがFlashクリエイターになれます。世界中のFlashクリエイターがユーザーになるwonderflは、 文字通り、世界のFlash図鑑となってい

    wonderfl build flash online | 面白法人カヤック
  • Break Free of Code Deadlocks in Critical Sections Under Windows

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Patterns in Practice Cohesion And Coupling Jeremy Miller Contents Decrease Coupling Increase Cohesion Eliminate Inappropriate Intimacy The Law of Demeter Tell, Don't Ask Say It Once and Only Once Wrapping Up Much of software design involves the ongoing q

    Break Free of Code Deadlocks in Critical Sections Under Windows
  • 米Google、高速・低メモリ消費の正規表現ライブラリ「RE2」を公開 | OSDN Magazine

    Googleは3月11日、正規表現ライブラリ「RE2」を発表した。動作が高速で「スレッドフレンドリー」な点が特徴。従来のバックトラック型正規表現ライブラリの代替として開発を進めていく。 Googleによると、同社はCode SearchやSawzallといったインフラやアプリケーションで正規表現を利用しているが、バックトラックアルゴリズムを利用した従来の正規表現実装では入力データに対し処理時間が指数的に増加することが問題となっていた。また、固定サイズのスタックを持つC++のマルチスレッドプログラムの場合、従来の正規表現実装ではスタックを使い切ってスタックオーバーフローを発生させることがあったという。これらを解決するために独自の正規表現エンジンを開発したとのこと。 RE2はどのような入力や正規表現に対しても一定の小さいメモリ量で動作するように開発されているのが特徴。オートマトン理論の下、処

    米Google、高速・低メモリ消費の正規表現ライブラリ「RE2」を公開 | OSDN Magazine
  • 【レポート】システムトレードでプログラミング入門(前編) | ライフ | マイコミジャーナル

    システムトレードとは、プログラミングを中心に過去のデータから特定のパターンを見つけだし、利益の出るシステムを構築して運用することです。しかし、プログラミング未経験者がいきなり「プログラミングの勉強……」となると大半の人が挫折してしまいます。 まずここでは、数行の簡単なプログラムからオリジナルのチャートが描ける方法をご紹介し、また皆さんがこれからプログラムを構築するための考え方・方法などもご紹介いたします。 ハードルがここまで下がったプログラミング環境 ここでは、システム開発のプラットホームは、システムトレードに必要な全ての機能をオールインワンで備えたひまわり証券の「トレードシグナル」を使って説明をしていきます。トレードシグナルは、ティックから月足までのデータを使い様々な条件を想定したシステム開発、そして自動売買までも可能なプラットホームです。 トレードシグナルが登場する以前のシステム開発は

  • 最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった (1/5) - ITmedia エンタープライズ

    動的計画法とメモ化再帰 今回は、非常によく用いられるアルゴリズムである、「動的計画法」「メモ化再帰」について説明します。この2つはセットで覚えて、両方使えるようにしておくと便利です。 なお、メモ化再帰に関しては、第5・6回の連載の知識を踏まえた上で読んでいただけると、理解が深まります。まだお読みになっていない方は、この機会にぜひご覧ください。 中学受験などを経験された方であれば、こういった問題を一度は解いたことがあるのではないでしょうか。小学校の知識までで解こうとすれば、少し時間は掛かるかもしれませんが、それでもこれが解けないという方は少ないだろうと思います。 この問題をプログラムで解こうとすると、さまざまな解法が存在します。解き方によって計算時間や有効範囲が大きく変化しますので、それぞれのパターンについて考えます。 以下の説明では、縦h、横wとして表記し、プログラムの実行時間に関しては、

    最強最速アルゴリズマー養成講座:アルゴリズマーの登竜門、「動的計画法・メモ化再帰」はこんなに簡単だった (1/5) - ITmedia エンタープライズ
  • ペア・プログラミングの実際の効果

    原文(投稿日:2010/01/22)へのリンク Royal School of SignalsのStuart Wray氏は、2010年1月版のIEEE Software Magazineに「ペア・プログラミングの実際の効果(How Pair Programming Really Works)」と題する記事を書いた。 その記事で氏は、まず、さまざまなペアリングのアプローチ(熟練者と初心者、ドライバとナビゲータ)について次のようにまとめている。 開発者としての私個人の経験から、ペア・プログラミングの使用は、一方がプログラムをし、他方が見ているというだけのテクニックではありません。両方のプログラマは、常に話し合いをし、残りのやるべきことを手早くメモし、また、画面上で数々のコードを指摘しながら密接に連携して作業します(ペア・プログラミングの常套句の一つに、「すぐに実行すれば、今日中に、画面は脂で汚

    ペア・プログラミングの実際の効果
  • ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記

    ラムダ計算は, 多くのプログラミング言語, とくに関数型言語の原形になっています. ラムダ計算について理解しておくことは, 多くのプログラミング言語の習得に役立つでしょう. ラムダ計算はチューリング完全で, 計算能力としてはふつうのプログラミング言語と同じです. ラムダ計算で計算を書く訓練をしておくことは, 任意の計算を関数のみを使って(他の制御構文を用いずに)書くときに役立ちます. ふつうに書いたら煩雑な処理を, 関数型言語のやり方で書くとすっきりすることが多々あり, コードを自由自在に書くためには必須の考え方と言えるでしょう. 項 ラムダ計算の式を項(term)と言います. 項は変数, 抽象, 適用のいずれかです. 変数 変数(variable)はふつう1文字で書きます. 変数には関数内の束縛変数(bound variable)か自由変数(free variable)かという区別があり

    ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記
  • Java変態文法最速マスター - プログラマーの脳みそ

    Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new

    Java変態文法最速マスター - プログラマーの脳みそ
  • そろそろvolatileについて一言いっておくか

    Please select the category that most closely reflects your concern about the presentation, so that we can review it and determine whether it violates our Terms of Use or isn't appropriate for all viewers.

  • Webで読めるLisp関連書籍

    2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ► 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ► 6月 (19) ► 5月 (14) ► 4月 (20) ► 3月 (13) ► 2月 (10) ► 1月 (14) ► 2019 (293) ► 12月 (11) ► 11月 (12) ► 10月 (24) ► 9月 (29) ► 8月 (27) ► 7月 (36) ► 6月 (40) ► 5月 (24) ► 4月 (35) ► 3月 (42) ► 2月 (6

    Webで読めるLisp関連書籍
  • 非同期処理と疎結合ができる「メッセージング」の常識

    非同期処理と疎結合ができる「メッセージング」の常識:企業システムの常識をJBossで身につける(5)(1/4 ページ) 企業向けアプリケーションのさまざまな“常識”をJavaのオープンソース・フレームワーク群である「JBoss」から学んでいきましょう。企業システムを構築するうえでの基礎となる知識をリファレンス感覚で説明していきます。初心者から中堅、ベテランまで大歓迎! 企業システムでは、さまざまなデータを使ってさまざまな処理が行われています。また、システムの複雑化・高速化により、データや処理が複数システムにまたがることもあります。システムが多様化されることにより、一部に変更や障害が発生しても全体にはできる限り影響しないように、各システムの連携は“疎結合”であることが望まれています。そこで、これらの連携手段として「メッセージング」というものがあります。 今回は、メッセージングに関連するJav

    非同期処理と疎結合ができる「メッセージング」の常識
  • 第15回 Scala 2.8の新機能 (1)

    SIer勤務。関数型プログラミング言語や形式手法に興味があり色々勉強中。"A Scala Tutorial for Java programmers"の和訳やScala勉強会(scala-beなど)での発表などScalaの普及活動を行っている。 現在使用されているScala 2.7系に対して、2009年後半にβ版が公開されテスト中のScala 2.8系では大きな変更や数多くの興味深い機能追加が行われています。今回と次回はScala 2.8についての紹介を行います。 なおScala 2.8は現在も開発中です。この記事は2009/12/24版のScala 2.8.0を元に執筆していますので、Scala 2.8の正式リリースまでに変更が加わる可能性があることを予めお断り致します。 Scala 2.8 について この記事を執筆している時点(2009年12月)におけるScalaの安定版は2.7.7

    第15回 Scala 2.8の新機能 (1)
  • 知れば天国、知らねば地獄――「探索」虎の巻

    いよいよ今回から、具体的なアルゴリズムの紹介に入っていきます。今回は、プログラミングにおける重要な概念である「探索」について考えます。グラフに変換し、探索する、という流れを知るとともに、そのグラフを効率よく探索する方法について紹介します。 今後紹介していくアルゴリズムについて お待たせしました! 「最強最速アルゴリズマー養成講座」という連載タイトルのとおり、今回の連載からいよいよ具体的なアルゴリズムの紹介に入っていきたいと思います。 しかし、それを読んでいただく前に、1つ注意してもらいたいことがあります。連載第3回でもお伝えしたように、「問題を、既存の適当なアルゴリズムに当てはめる」という考え方は、非常に危険である、ということです。 筆者の経験上、TopCoderでRedCoder以上を目指すのであれば、回答時間短縮のために、いままでのパターンを利用するのも方法の1つなのですが、連載では

    知れば天国、知らねば地獄――「探索」虎の巻
  • GoogleのJavaコレクションを使う理由、Multimapが便利 | エンタープライズ | マイコミジャーナル

    Javalobby - The heart of the Java developer community Googleが公開しているJavaライブラリのひとつにGoogle Collections Libraryがある。2009年12月30日(米国時間)にバージョン1.0になり、以後APIが互換性のない変更を受けることはないという宣言が発表された。0x1fff: 35 Google open-source projects that you probably don't knowでもGoogleプロジェクトのひとつとして紹介されている。 JavaにははじめからCollectionsライブラリが用意されている。Collectionsライブラリはまさまざまなデータを格納する便利な入れ物をまとめたもの。Google Collections LibraryはJavaの標準のCollectionラ

  • レビューで鍛えるJavaコーディング力 その2(バリデーション) - 谷本 心 in せろ部屋

    前回の問題は、そこそこ好評だったようで、嬉しい限りです。 これからも、週に1〜2回ぐらいのペースで問題を出していこうと思います。 では、今回の問題です。 問題 以下のコードの問題を指摘し、修正してください。 ただし、問題は複数あることもあれば、全くないこともあります。 public class EmpService { EmpDao empDao = new EmpDao(); public void register(Emp emp) { validate(emp); empDao.insert(emp); } protected void validate(Emp emp) { // 他のチェックは割愛。 // 例外処理や、メッセージ部分は、分かりやすさのためにベタ書きしているため指摘対象外。 if (ValidatorUtils.checkRequired(emp.getName()

    レビューで鍛えるJavaコーディング力 その2(バリデーション) - 谷本 心 in せろ部屋
  • 米Google、Javaコレクションライブラリ「Collections Library 1.0」を公開 | OSDN Magazine

    Googleは2009年12月30日、Javaのコレクションライブラリ「Google Collections Library 1.0」を発表した。Java 5以上の基コレクションライブラリで、Java Collections Frameworkの拡張と位置づけている。 Google Collections Libraryは、Javaのコレクション型、実装、関連機能などを集めたもの。List、Set、Mapなどの既存のコレクションフレームワークのユーティリティクラス、MultiMap、MultiSet、BiMapなどの新しいコレクション型、コンカレントハッシュマップビルダのMapMaker、クラスとコレクションのソーティングに必要な共通の作業を支援するメソッドを追加するOrderingなどを含む。 コレクションの振る舞いをカスタマイズできるForwardingSetなどのフォワーディング

    米Google、Javaコレクションライブラリ「Collections Library 1.0」を公開 | OSDN Magazine
  • ウェブサービス(Web API)とは?

    ウェブサービス(Web API)とは? 2009-12-24-1 [WebAPI][Programming] Webサービス(Web API)とは、ユーザがウェブ経由で他の人・会社が持っているデータや処理をアクセスして使うための技術。 プログラムから呼び出して使うことが多く、それを前提としたプロトコル、データ構造となっている。 商品検索、ウェブ検索、ソーシャルブックマーク、写真サービス、ツイッター、カレンダー、番組表、天気予報情報、路線情報、漢字変換、キーワード抽出、ウェブページのサムネイル、位置情報、地図情報、認証などさまざまなサービスで Web API が提供されている。 このような Web API を組み合わせてサイトやアプリケーションを作ることをマッシュアップと呼ぶ。 プロトコル Web API で利用されるプロトコルは大まかに下記の二つに分けられる。 (1) REST風 (2)

    ウェブサービス(Web API)とは?