タグ

programmingに関するoanusのブックマーク (65)

  • TeXのアルゴリズムの再実装 - プログラミングの30年間を振り返る

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    TeXのアルゴリズムの再実装 - プログラミングの30年間を振り返る
  • 契約による設計から見た例外 - Qiita

    正しさは相対的な概念である。 Bertrand Meyer [1] Bertrand Meyer氏は「契約による設計」という概念から例外を導出し、例外の必要性をエレガントに説明しています。また、彼の説明に則れば今までの議論と比べて例外をいくぶんか形式的に扱えるようになります。契約による設計を学ぶ前に、プログラムの正しさについてもう一度考えてみましょう。 プログラムの正しさ あるプログラムが正しいかどうかを判定するにはどのようにすれば良いでしょうか。最も簡単な方法は、あるプログラムの正しさを形式的に定義する事です。より直接的に言えば、あるプログラムの正しさを簡単な論理式で表現します。その論理式が真ならばそのプログラムは正しい。偽ならばそのプログラムは正しくありません。 これだけだと関数の戻り値を検査すれば良いだけのようにも聞こえます。しかし、そう簡単な話ではありません。純粋でない言語の場合、

    契約による設計から見た例外 - Qiita
  • オブジェクト指向は禁止するべき - きしだのHatena

    プログラムがまだ不慣れな人が「プログラムちょっとわかるようになったけど、まだぜんぜんオブジェクト指向とかできてません」のように言ったり、ちょっと慣れた人が「このソース、ぜんぜんだめ。オブジェクト指向ができてない」にようなことを言ったり、まるで、オブジェクト指向ができてるかどうかがよいプログラムかどうかを表すことになってるようだ。 Javaのアルゴリズムのに、「Javaなのにオブジェクト指向ができていない」のような書評がついているのを見たときには、お前は何を求めてるんだと思ったりもした。 そのようなオブジェクト指向は、窓から投げ捨てるべきだ。オブジェクト指向はプログラムのよしあしの基準にならない。 むだにHogeインタフェースとHogeImplクラスがあったり、むだにnewするだけのcreateメソッドがあったり、どこで値が設定されてるかわからないオブジェクトがひきまわされてたり、ソースコ

    オブジェクト指向は禁止するべき - きしだのHatena
  • プログラムに証明が付く日 | RANDMAX

    この記事は「Theorem Prover Advent Calendar 2013」6日目の記事です。 http://qiita.com/advent-calendar/2013/theorem_prover 神田「野らぼー」にて、地下の薄暗い店内で… 「そう言えばこないだ隣で起こってたポインタオーバーラン、対応大変そうだったですけどちゃんと家に帰れてたんでしょうかね、新婚なのに…」 「ヌルポとかポインタオーバーランとか、どうして無くならないんだろうね。その時はみんな手を抜いてるつもりなんて毛頭なくて、一生懸命考えて大丈夫だと思ってるはずなんだけどね。レビューもして、それでも起こった後でみんなでソース見てみると、なんで気づかなかったんだよ!ってことになる。」 「人間って、そういうの苦手なんでしょうねきっと。ほら、『何かほかにありませんか』って聞かれても出てこないじゃないですか。静的な解析っ

    プログラムに証明が付く日 | RANDMAX
  • Land of Lisp

    地球上でもっともパワフルなプログラミング言語であると言われながら、その謎めいたシンタックスやアカデミックな評判の高さなどから敬遠されることもあったLisp。そんなLispの不遇な時代に終わりを告げるのが書『Land of Lisp』(Lispの国)です。不思議なマンガやout-of-this-worldなゲームの数々とともに、ベテランLisperの著者が、謎多きCommon Lispを伝授。リストの操作、入出力、再帰などの基礎から始めて、さらにマクロや高階プログラミング、ドメイン特化言語などへと話題をすすめながら、Lispのより高度なテクニックについて解説しています。 翻訳者によるサポートページ(http://practical-scheme.net/wiliki/wiliki.cgi/Shiro:LandOfLisp) 謝辞 はじめに Lispがクールで、そして奇妙なわけ Lispがそ

    Land of Lisp
    oanus
    oanus 2013/02/08
    LISPこわい
  • Luciad | NVIDIA

    NVIDIA® のデータ センター GPU を使用することで、最も要求の厳しい HPC やハイパースケール データ センターのワークロードを高速化できます。データ サイエンティストや研究者は、エネルギー探査からディープラーニングまで、幅広いアプリケーションで、従来の CPU よりもはるかに高速に数ペタバイトのデータを解析できるようになりました。さらに、NVIDIA のアクセラレータは大規模なシミュレーションをかつてない速さで実行するために必要な馬力を提供します。また、NVIDIA GPU によって、仮想デスクトップ、アプリケーション、ワークステーションに最高のパフォーマンスとユーザー密度をもたらします。 NVIDIA のパートナー企業は、多様な AI、HPC、アクセラレーテッド コンピューティング ワークロードに対応できるさまざまな最新サーバーを提供しています。NVIDIA は、ワークロー

  • The Julia Programming Language

    Fast Julia was designed for high performance. Julia programs automatically compile to efficient native code via LLVM, and support multiple platforms. Dynamic Julia is dynamically typed, feels like a scripting language, and has good support for interactive use, but can also optionally be separately compiled. Reproducible Reproducible environments make it possible to recreate the same Julia environm

    The Julia Programming Language
  • 自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編)

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編) ふだん何気なく使っている鉄道。改札を降りるときにICカードを自動改札にかざすと、「ピッ」という音と共に一瞬のうちに運賃を計算してくれます。けれど、複数の路線を乗り継いだり、途中で定期券区間が挟まっていたりと、想像しただけでもそこには膨大な組み合わせがあります。それでも運賃計算プログラムはわずか一瞬で正しい運賃計算が求められ、バグがあったら社会的な一大事にもつながりかねません。 爆発的な計算結果の組み合わせがあるはずの運賃計算プログラムは、どうやってデバッグされ、品質を維持しているのでしょうか? 9月12日から14日のあいだ、東洋大学 白山キャンパスで開催された日科学技術連盟主催の「ソフトウェア品質シンポジウム 2012」。オムロンソーシアルソリューションズ 幡

    自動改札機の運賃計算プログラムはいかにデバッグされているのか? 10の40乗という運賃パターンのテスト方法を開発者が解説(前編)
  • ソフトウェアの基礎

    Benjamin C. Pierce Chris Casinghino Michael Greenberg Vilhelm Sjöberg Brent Yorgey with Andrew W. Appel, Arthur Chargueraud, Anthony Cowley, Jeffrey Foster, Michael Hicks, Ranjit Jhala, Greg Morrisett, Chung-chieh Shan, Leonid Spesivtsev, and Andrew Tolmach

  • MVCは死んだ。MOVEするときがきた - きしだのHatena

    Conrad Irwinさんの「MVC is dead, it's time to MOVE on.」を訳してみました。 MVC is dead, it's time to MOVE on. この訳文も原文のライセンスを引き継いでCC-BY-3.0ライセンスで利用可能とします。 追記13:58 すでに訳してた方がいました。MVCの時代は終わった。MOVEを使い始めましょう。 - ふじこのプログラミング奮闘記 MVCは死んだ。MOVEするときがきた MVCはすばらしいアイデアだ。モデルを持ち、モデルは内部に少しの状態をもつ。ビューは内部に少しのUIをもつ。そして、コントローラは内部に少しの・・・ 何を持つ? 私は確かにこのことに気づいた最初の人物ではない。しかし示されたようなMVCの問題のために、あなたは最後には過剰なコードをコントローラに詰め込むことになる。なぜなら、他にどこに入れていいか

    MVCは死んだ。MOVEするときがきた - きしだのHatena
  • フローチャートをめぐる迷信と妄言と愚昧 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    2011年12月20日の記事で: [フローチャートについて書くのは] 僕にとっては定期ポストみたいなものです。年に一,二度はこのことを言っておきたい、みたいな。 と書きました。それから半年たってないのですが、なんかまたフローチャート・ネタをやりたくなりましたね。 そう思い立ったのは; 「フローチャートを復権させよう -- 2020年代のプログラミングへ」のブックマークに、羽生章洋(id:habuakihiro)さんが次のコメントを残しておりまして、 昔フローチャートについて講演したりポジティブなことを書いたりしたら偉い叩かれたなあ。似たケースにJavaScriptの記事書いたときも叩かれてその後gmail+ajaxブームが来たら一転したり。みんな原理原則より流行が好き。 いまさらながら当時の情報を探して読んでみたのですよ。2006年夏、羽生さんの講演について大森敏行記者が書いた記事が残って

    フローチャートをめぐる迷信と妄言と愚昧 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • MapReduceできる10個のアルゴリズム - データサイエンティスト上がりのDX参謀・起業家

    HadoopとMahoutにより、ビッグデータでも機械学習を行うことができます。Mahoutで実装されている手法は、全て分散処理できるアルゴリズムということになります。Mahoutで実装されているアルゴリズムは、ここに列挙されています。論文としても、2006年に「Map-Reduce for Machine Learning on Multicore」としていくつかのアルゴリズムが紹介されています。 そこで今回は、(何番煎じか分かりませんが自分の理解のためにも)この論文で紹介されているアルゴリズムと、どうやって分散処理するのかを簡単にメモしておきたいと思います。計算するべき統計量が、summation form(足し算で表現できる形)になっているかどうかが、重要なポイントです。なってない場合は、”うまく”MapReduceの形にバラす必要があります。 ※例によって、間違いがあった場合は随時

    MapReduceできる10個のアルゴリズム - データサイエンティスト上がりのDX参謀・起業家
  • でらうま倶楽部 : ゲームを作ろうと思ったらライブラリを作ってはいけない

    2012年05月27日17:32 カテゴリプログラム雑記 ゲームを作ろうと思ったらライブラリを作ってはいけない さいきん告知ばっかりだったので(それも一年くらい!)、久々に思う事を思うように。 ここ数年、専門学校に教えに行ってるのですが、プログラミング初心者~中級者は、やっぱみんなハマるんだよね… ライブラリ症候群 ワシ的には「自作ライブラリで環境整備」「後々ほかのプロジェクトで使いまわせるようにコードを書く」のにはまったく積極的じゃないので、今回はそれについて書いてみるす。ゲームを作る事について書いてますが、ほかもだいたい同じだと思う。 みんなを見てると、まあだいたいこんな感じの流れ。 ゲームをつくるぜ!そのまえに、ライブラリなるものを作って環境を整えよう頓挫みたいな。最初の心意気はよかったものの、結果として何も完成しませんでした…という感じ。 なんでだろね。 コレ、途中から「ゲームを完

  • 圏論デザインパターン

    要求開発アライアンスのセッション『Object-Functional Analysis and Design: 次世代モデリングパラダイムへの道標』で使用するスライドについて背景説明を行ってきました。 関数型言語の技術マップオブジェクト・モデリングのボトルネック代数的構造デザインパターン今回は背景説明第4弾で、「圏論デザインパターン」として用意した以下の図を説明します。 関数型言語の技術マップで説明したように、型クラスの導入によって代数的構造や圏論の理論をプログラミング言語で直接利用できるようになりました。 代数構造的デザインパターンは、基中の基概念であるので、モノイド以外のパターンもいずれ広く使われるようになることが予想されますが、今の所広く使われているのは圏論デザインパターンの方です。 代表的な圏論デザインパターンは以下のものです。 圏(category)対象と射(対象間の構造を保

    圏論デザインパターン
  • 代数的構造デザインパターン

    要求開発アライアンスのセッション『Object-Functional Analysis and Design: 次世代モデリングパラダイムへの道標』で使用するスライドの背景説明第3弾です。 「代数構造的デザインパターン」として用意した以下の図を説明します。 関数型プログラミングでは、数学由来の手法を駆使してプログラミングしていきます。このため元になった数学理論に対する質的な理解は重要ではあるのですが、数学理論上では重要ではあるもののプログラミング的にはほとんど使われない概念や、数学理論上では枝葉の議論がプログラミング的には重要ということもありそうです。そういう意味で、プログラミングのために元になる数学理論を学ぶのは、プログラミングテクニックの習得という意味では遠回りです。 そこで、こういった数学由来の手法をオブジェクト指向プログラマに馴染みの深いデザインパターンとして整備して、プログラミ

    代数的構造デザインパターン
  • 60%の人間はプログラミングの素質がない

    Coding Horror: Please Don't Learn to Code Please Understand Learning to Code Coding Horrorで有名なJeff Atwordが、ある州知事が今年の目標としてプログラミングを習得することを挙げていることに対し、そもそも税金を払う我々市民は、政治家にはプログラミング習得以上に重要な、政治家にしかできない問題の解決を望む、よってプログラミングを学ぶのをやめてくれという記事を書いた。これに対して、反論が多数上がっているが、Jeffも読んでいるある論文をあげて、この議論の参加するためには、必ずこの論文を知っておくべきであると書いた人がいる。この論文は有名で、非常に興味深いので、全プログラマーが読むべきである。 ふたこぶラクダという名前で知られている有名な論文がある。この論文では、60%の人間にプログラミングの素質が

  • 2011年9月30日 FreeBSD 1.x系とFreeBSD 10.x系ダブルディジット問題について | gihyo.jp

    FreeBSD Daily Topics 2011年9月30日FreeBSD 1.x系とFreeBSD 10.x系ダブルディジット問題について heads-up 10.0-CURRENT 2digit issue current - FreeBSD開発版のバージョンが10.0へアップデートされたことで、10.0-CURRENTにおけるPorts Collectionの利用が不安定なものになっています。currentメーリングリストに流れた「HEADS UP: ports/ and 10.0-CURRENT - ReadList.com」が内容を紹介しています。 問題の多くはconfigureにあります。configureには次のようなコードが含まれていることがあります。これはFreeBSD 1.x系に対して処理を振り分けるものですが、この記述では10系もヒットしてしまい、予想されない状態に

    2011年9月30日 FreeBSD 1.x系とFreeBSD 10.x系ダブルディジット問題について | gihyo.jp
  • すごいHaskellたのしく学ぼう! - あどけない話

    ゾウこと「Learn You a Haskell for Great Good!」の訳が、ついに発売されます。 Learn You a Haskell for Great Good!: A Beginner's Guide 作者: Miran Lipovaca出版社/メーカー: No Starch Press発売日: 2011/04/15メディア: ペーパーバック購入: 1人 クリック: 1,024回この商品を含むブログ (7件) を見る 訳のタイトルは、「すごいHaskellたのしく学ぼう!」です。 すごいHaskellたのしく学ぼう! 作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行(ソフトカバー)購入: 25人 クリック: 580回この商品を含むブログ (73件) を見る すごいタイトルですね!

    すごいHaskellたのしく学ぼう! - あどけない話
  • Efficient data transfer through zero copy

  • code

    CODE < ^ > << new | old >> / 2023-03-27