プログラミング言語の「型」の定番書と言われる Types and Programming Languages (通称 TAPL) の翻訳本が、ついに 3 月 26 日に発売されます。 型システム入門 −プログラミング言語と型の理論−posted with amazlet at 13.03.01Benjamin C. Pierce オーム社 売り上げランキング: 598 Amazon.co.jpで詳細を見る (↑アフィリエイトなのでクリックするなよ!) (個人的に) 読んで欲しい人たちへ 「型」の教科書ということで、わりと Ruby の対極にあるような内容ですが、Ruby ユーザ (動的型付き言語しか知らない人) にこそ読んで欲しいと思ってます。 PHP しか知らない人が PHP の良さを語るのが滑稽なように *1 、型がないことのメリット・デメリットを語るには、本気で型がある言語の考え方を
Zopfli Compression Algorithm is a compression library programmed in C to perform very good, but slow, deflate or zlib compression. The basic function to compress data is ZopfliCompress in zopfli.h. Use the ZopfliOptions object to set parameters that affect the speed and compression. Use the ZopfliInitOptions function to place the default values in the ZopfliOptions first. ZopfliCompress supports d
某ファンドが月5万円の積み立てを年利10%で30年間行えば1億円になるという件で盛り上がっています。 http://kirik.tea-nifty.com/diary/2013/02/post-b4a9.html このリンク先にあるように、毎年10%の利回りを継続できれば、毎月5万円の積み立てで30年後には1億857万円の資産を形成できます。 ところが現実の投資には不確実性があり、定期預金・国債のようなケースを除けば毎年のリターンは一定にはならず、ばらつきが生じます。 このばらつきは「リスク」と呼ばれ、投資結果を考える上で無視することはできません。 今回はRを使って毎月5万円の積み立てを「平均利回り10%」とし、「利回りの標準偏差(リスク)」を様々に変えて30年間積み立てのシミュレートを行いました。 利回りのリスクって? まず大雑把にリスクの説明をしておきます。 ここでは利回りは正規分布に
pnegahdar Parham Negahdar I study finance & build sites. Check out GAuthify and RedditRewind say hello feed wp-svbtle February 28, 2013 Django Redis Pipeline Trick If you have projects where many of the pages/views somehow interact with the cache, make sure you use the Redis pipeline provided in redis-py. Pipelines allow you to run redis queries in batches so that the network latency isn’t multip
この小さくて精巧な装置はCADモデリングで作られた。家で作るときのコストは10ドル程度。3Dプリンターは使っていない。 この数年間、安価な3Dプリントが数多くのギークたちの心を掴んできた。そしてこの来たるべき製造革命のスターが主流に躍り出た。エコノミスト誌は、去年だけでも3Dプリンターに関する記事を20本ほど掲載している。これはただ事じゃない。 3Dプリントの魅力は簡単に理解できる。インターネットによるDIYムーブメントのルネッサンスと偶然に重なって人気も出た。しかし、そんな明るい興奮の裏には、ちょっと気になる影の面もある。ホームマニュファクチャリング(家庭での製造)の前に立ちはだかるもっとも大きな壁を甘く見てしまう恐れがあるのだ。それは、新世代のツールが登場したからといって、簡単に動くようなものではない。 ポリゴンを実際の物に変えてくれる安価なホビー向けの製造ツールは、じつは10年以上も
13歳のLauren Rojasが作ったサイエンスフェアのプロジェクトは、びっくりするほど高く舞い上がった。 カリフォルニア州アンティオックのコーナーストーン・クリスチャンスクール7年生の女の子が、3人の男性が高層大気圏に気球を飛ばすというVisaのコマーシャルを見た。そして彼女は、高度が気圧と気温に与える影響に関する仮説を証明するための実験をやりたいと思った。 「宇宙のことは、ずっと詳しくなりました」と彼女。 インターネットで有名人になったことで、予想外の勉強もした。 彼女の風船旅行のビデオは、YouTubeでほぼ100万ビューを記録した。気球のカプセルには銀色のロケットが取り付けられ、その中には、彼女が大好きなキティちゃんを乗せた。90分間のフライトの映像は、数台搭載したGoProカメラの中の1台で撮影された。キティちゃんは地上93625フィート(約28キロメートル)まで飛び上がったの
pratphall.org 2018 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy
こんにちは、斉藤です。 前々回はTDDというユニットテストを使った開発方法、前回はユニットテスト実行の自動化と、触れてきました。 今回もやっぱりユニットテストについてということで、方法論などをtips形式でお送りします。 * プライベートメソッドのテスト ユニットテストでは、公開されているメソッドを呼び出して実行します。 クラスを書いたことがある方なら知っている通り、プライベートメソッドを外部から呼び出すことは出来ません。 そのため一般的にこれは、避けた方が良いと言われていますが・・・自分はテストしたい派なので、以下の方法をご紹介します。 – パブリックメソッドでプライベートメソッドを呼び出す 一番簡単な方法ですね。 ただしこの場合だと、公開APIと非公開APIの区別が出来なくなってしまいます。 クラスに手を入れることになり、テストのためだけのコードが混じってしまうことがデメリットです。
Let me prefix this by saying that I know what foreach is, does and how to use it. This question concerns how it works under the bonnet, and I don't want any answers along the lines of "this is how you loop an array with foreach". For a long time I assumed that foreach worked with the array itself. Then I found many references to the fact that it works with a copy of the array, and I have since ass
ふと、今後5年でFPGAはバカみたいに安くなってくるかもしれないと思ったので、まとめておきます。 ただし、材料はブログで見た話とか人に聞いた話とかで、しかもそれをいいように解釈しての話なので、妄想レベルであることを最初に断っておきます。 用語として、FPGAのようなプログラム可能なチップに対して、出荷段階で回路が決まっているようなチップをまとめてASICと呼びます。(ASICの正確な定義は知らない) 今のFPGAは「なんでもできるけど高くて遅い」 前に、「CPUはオワコン」というタイトルでFPGAが来るよという話を書いたときにあった意見として、「CPUは終わらないでしょう」という話よりも「FPGAだけじゃないでしょう」という話が多かったように思います。 その根底には、FPGAはチップとしては遅いということと、もっと大きい要因として高いということがあります。 FPGAは、同じ回路であればAS
Last year I spent some time exploring GHC.Generics as a language for describing Protocol Buffers messages. Steve and I pushed just hard enough to get a real implementation out the door and it’s finally available on Hackage. This package avoids the typical/traditional Protocol Buffers flow of defining messages in a .proto file and running a preprocessor to generate code in some target language(s).
About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...ループを使わずに1から100までMore... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチ
Vim は、ウィンドウを分割することが出来ます。Vim のウィンドウは、バッファと独立に存在する「覗き窓」です。 分割されたウィンドウで、同じバッファ(ファイル)を開くことも、別のバッファを開くことも出来ます。あるファイルを編集しながら、ウィンドウ分割を利用して、同じファイルの別の部分を参照することも、別のファイルを参照することも可能です。 Vim のウィンドウ関連でノーマルモードで利用できるコマンドは、すべて <c-w> から始まる2ストロークのコマンドです。 :h CTRL-W からすべてを網羅した一覧を確認することも出来ます。 下に使用頻度の高いウィンドウ分割関連のコマンドを紹介します。 コマンド動作覚え方 <c-w>s <c-w><c-s> :sp (ファイル名) :split (ファイル名) ウィンドウの上下分割 split <c-w>v <c-w><c-v> :vs (ファイル
BWTとウェーブレット行列を使って、FM-IndexをJavaで実装してみました。 BWTのソースコードは以下にあります。ちょっとバグを見つけたので、気が向いたら直します。 http://rn.hatenablog.com/entry/2013/02/16/115423 ウェーブレット行列のソースコードは以下にあります。 http://rn.hatenablog.com/entry/2013/02/23/222314 FM-Indexは、圧縮全文索引であり、テキストを圧縮して保持しながら、全文検索を実現することができます。Compressed Suffix Array(CSA)よりも高速と言われているデータ構造です。FM-Indexは、ざっくり以下のようなことができます。 元のテキストを完全に復元することができる(self index) 任意のキーワードが出現する位置と数をキーワードの文字
第13回Unity開発技術勉強会 週末プログラミングで作るカジュアルゲーム 〜シューティング編〜/Unity 4 の最適化とか http://atnd.org/events/36077 週末プログラミングで作るカジュアルゲーム 〜シューティング編〜 - 饒平名(のひな)さん 2つ制作。それぞれ開発期間は2週間程度。 デザイナーから素材データが上がってくるまで待ち時間が発生したのでその時間を利用して制作を開始 1つ目の作品「Shooting Star Shooter」 iTunes App Store https://itunes.apple.com/jp/app/shooting-star-shooter/id584324918?mt=8 画面に現れるキューブをタップして行くゲーム タップとフリックで2種類の弾が使える 制限時間内に撃ち落とした数を競う 手抜きポイント 一切モデリングしない
Perl › 読み物 PHPやPerlやRubyやPythonなどのスクリプト言語に対して、変数に型がないということを否定的にとらえる人もいるかと思います。特にC言語やJavaなどの静的言語を使ってきた人にとっては、型がないということが不安材料として目に映ることが多いのではないかと思います。 けれども、型がないということは、本当に素晴らしいことです。型がないことによって、たくさんの面倒から解放されるからです。 どのような型の値でも代入できる まず基本的なこととして変数に型がなければどのような型の値でも代入できるということです。つまり、受け取るときに、どのような型の値を受け取るのかを意識する必要がありません。 my $str = 'Hello'; my $num = 1; my $nums = [1, 2, 3]; my $person = {age => 2, name => 'taro'
ウェブアプリケーションを書くとき、最近はだいたい Plack::Request なりなんなりを継承して、そのプロジェクト専用のリクエスト/レスポンスオブジェクトを作ることにしている。 特にリクエストオブジェクトは、リクエストのパラメータを適切に変換して返すようなメソッドを生やすことが多い。例えば以下の例: sub number_param { my ($self, $key, $limit) = @_; $limit ||= 'inf'; my $val = $self->param($key) // ""; if ($val =~ /^\d+(.\d+)?$/) { my $ret = $val + 0; if ($ret <= $limit) { $ret; } else { $limit; } } else { undef; } } この number_param() メソッドは、$
某エントリが型について再考するきっかけになったのは事実だが、個々人の思想の成否を問う気がないのでとくにリンクはしない。ここでは型とは何かという点について僕なりの思想を記しておきたい。 データ型を区別しない世界 ごくシンプルなチューリングマシンを考えよう。 チューリングの仮想機械は、 無限に長いテープ その中に格納された情報を読み書きするヘッド 機械の内部状態を記憶するメモリ で構成され、内部状態とヘッドから読み出した情報の組み合わせに応じて、次の動作を実行する。 ヘッド位置のテープに情報を書き込む 機械の内部状態を変える ヘッドを右か左に一つ移動する 上の動作を、機械は内部状態が停止状態になるまで反復して実行し続ける。 チューリングマシン この原始的な世界において「型」はない。メモリは抽象的で全てのメモリは同等に扱われ区別する必要はない。 また、チューリングマシンに程近い原始的なプログラム
Geoff’s site: The Silver Searcher: Better than Ack ggreer/the_silver_searcher · GitHub パターン検索にはackを利用していて、通常利用時には特に不満は無かったんですが、 ファイル数が多いディレクトリだと遅かったので、もっと他の方法が無いかと調べていたら ackの3〜5倍速いというThe Silver Searcherというものが あったので導入。 The Silver Searcherの特徴 公式に書いてあるThe Silver Searcherの特徴 ackの3〜5倍高速 .gitignore、.hgignoreに記載されているものを検索対象から除外 検索対象から除外したいファイルは.agignoreに記載 agというコマンド名で、ackと比べてコマンドが短い(33%減!) なぜ高速なのかは https
id:perlcodesample さんの 変数に型がないということの利点について考える - サンプルコードによるPerl入門 から。 ううむ。 けれども、型がないということは、本当に素晴らしいことです。 型がないことによって、たくさんの面倒から解放されるからです。 冒頭のこれが、「静的型付き言語にはメリットが(ほとんど)ない」と言っているように思えてしまいます。 コメントのやり取りを見ても、ある程度そう考えているように受け取れます。 勘違いなどが多く見られたので、補足というか、反論というか、そんな感じのことを書きます。 追記: ごく一部、このエントリを「動的型付き言語と静的型付き言語を比べて、静的型付き言語の方が素晴らしい言語である」ということを言うためのものだと勘違いしている人を見かけました。 このエントリは、そこについては言及していません。 あくまで、元記事で「動的型付き言語のメリッ
ScalikeJDBC Interpolation 1.4.7 から experimental 扱いで SQLSyntaxSupport という機能が追加されました。この記事ではこの機能の概要について紹介します。 https://github.com/seratch/scalikejdbc/tree/develop/scalikejdbc-interpolation SQLInterpolation とは何か まず ScalikeJDBC の SQLInterpolation とはどういうものかをご紹介します。なお SQLInterpolation は Scala 2.10.0 の新機能に依存していますので Scala 2.9 環境では使用できません。 まず、このようなマッピング先を用意しておいて import scalikejdbc._ case class Group(id: Long
昨日のコードには2つほど問題がある。一つはシーン切り替えのトリガが1フレーム処理の最後にあるところで、まあこれは単純なミスだ。 もう一つは、シーン切り替えの瞬間のみInput.updateが1フレーム中に2回呼ばれるところ。2回呼ぶのはDXRuby的には反則なのだが、これを1回にするように修正すると今度はシーン切り替え後のInput.key_push?(K_SPACE)がしょっぱなからtrueになって、SecondSceneがいきなり終わることになる。最初の入力を無視するのも面倒だし、どうしていくのがいいのかはおいおい考えるとして、今はこの状態で先に進めることとする。と思ったけどこれちょっと前に発覚したバグじゃん。まあ、結局のところ後で考えるわけだが。 今回はメニューぽいSceneを追加してみよう。 Escapeキーでメニュー表示するが、このときにメインのシーンはそのまま実行し続ける、とい
いや、理屈はわかる。使い方もわかる。んでも、なんだかいまいちピンとこないと言うか、なじまないと言うか。 DXRubyではWindow.loopを基本に作ることになっているが、これはちょっとしたものを極限まで簡単に作れるようにという意図でそうしている。逆に言えば、ちょっと規模の大きなものを作ろうとしたときにはこの仕掛けが逆に負担になってくる。つまり、すべてをWindow.loopの中に書かねばならないということだ。 こういう状況を打開する方法の一つとして、Sceneクラスを使うというのがある。Wikiにもサンプルを置いてはあるのだが、どうもいまひとつこれの使い方がしっくり来ないのだな。 例を挙げるとすれば、フェードイン/アウトをどう実装するか、とか。Sceneの一つとして分離してしまうか、そうじゃなければカウントとフラグでSceneのメイン処理の中に入れ込んでしまうことになる。どっちも正直な
今までシェルはbash一筋だったのですが、最強のシェルと聞いてzshを使ってみました。 Macには標準でもzshが入っていましたが、せっかくなので最新版をインストール。 インストールはHomebrewで brew install zsh で一発で出来ます。 デフォルトシェルの変え方はこちら(http://tukaikta.blog135.fc2.com/blog-entry-195.html)とか参照。 zshは.zshrcをいじることでカスタマイズできます。oh-my-zsh(https://github.com/robbyrussell/oh-my-zsh)が簡単で使いやすいらしいです。ただ僕はあまり好みではなかったので自作。下記の参考サイトを見て良さそうな機能をかき集めて作りました。 一番悩んだのがインクリメンタル補完機能。是非欲しい機能だけど、標準搭載のincremental-co
MethodViewのコードを読んでたら、例としてわかりやすかったのでメモ。どういう動きをするのかはあらかじめ「Pythonのメタプログラミング (メタクラス) を理解したい人のための短いコード片と禅問答」を読んでおくと良いと思う。 class MethodViewType(type): def __new__(cls, name, bases, d): rv = type.__new__(cls, name, bases, d) if 'methods' not in d: methods = set(rv.methods or []) for key in d: if key in http_method_funcs: methods.add(key.upper()) if methods: rv.methods = sorted(methods) return rv class Me
Continuum Analytics Python Visualization and Data Exploration Home Products Python for Big Data Anaconda Wakari Downloads Open Source Documentation Services Consulting Support Training Overview Practical Python Programming Python for Finance Python for Science Course Philosophy Trainer Bios Calendar Company About Us Our Team Careers Blog In the News NumFocus Open Source Contact Us Current
The Mandelbrot set in C++11 Posted on February 28, 2013 by Paul The code for this post is on GitHub: https://github.com/sol-prog/Mandelbrot_Set. Yet another how to draw the Mandelbrot set article ? Well, yes and no, on the one hand fractals are fun and on the other hand, it could be instructive to play with complex numbers and lambdas in C++11. Also, the article presents a not so common continuous
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く