Hi all, A few months ago I finished my BSc in Computer Science, where my final project looked at the fixing and updating of a quantum computing package in haskell. I created a paper documenting this, while also giving a detailed introduction in quantum computing. Will post it here in the hope of providing a tutorial into quantum computing, and its combination with haskell. The paper can be found h
この文章の背景について この文章はテスト容易性設計をテーマに 2013/11/26 に CodeIQ MAGAZINE に寄稿したものです。残念ながら CodeIQ のサービス終了と共にアクセスできなくなっていたため、旧 CodeIQ MAGAZINE 編集部の皆様に承諾いただき、当時の原稿を部分的に再編集しつつ、ライセンス CC BY(クリエイティブ・コモンズ — 表示 4.0 国際 — CC BY 4.0) で再公開いたしました。 旧 URL にいただいたブックマークとご意見はこちらです(これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE)。旧記事には本当に多くの反響をいただき、誠に感謝しております。 目次 この文章の背景について 目次 出
Ruby 開発チームに4週間インターン生として参加いたしました、永山 (GitHub: NagayamaRyoga) です。 私は「Ruby中間表現のバイナリ出力の改善」という課題に取り組み、Railsアプリケーションのコンパイルキャッシュのサイズを70%以上削減することに成功しました。以下ではこの課題の概要とその成果について述べたいと思います。 InstructionSequenceの概要 まず、RubyVM 内で実行される命令の中間表現、InstructionSequence (以下 ISeq と省略) について簡単に説明します。 通常の Ruby プログラムは、以下のような手順で実行されます。 ソースコードを構文解析し、抽象構文木を作る。 抽象構文木をコンパイルして、ISeq を作る。 RubyVM (YARV) で ISeq を解釈し、実行する。 ISeq は、このように Ruby
CS 32: Puzzles, Games & Algorithms, Fall 2014 What’s new? Assignments Discussions on Piazza (for enrolled students only) General Information and syllabus. Handouts Lecture Notes Programing in Racket Required Materials Resources This is the home page for the course CS 32: Puzzles, Games and Algorithms: Introductory computer science through the exploration and analysis of mathematical puzzles and ga
What Remains is a narrative adventure game for the 8-bit NES video game console, and was released in March 2019 as a free ROM, playable in emulator. It was created by a small team, Iodine Dynamics, over the course of two years of on and off development. It’s currently in the hardware phase as a limited batch of cartridges are being created from all recycled parts. The game plays out over 6 stages,
Text Rendering Hates You Rendering text, how hard could it be? As it turns out, incredibly hard! To my knowledge, literally no system renders text “perfectly”. It’s all best-effort, although some efforts are more important than others. I’ll be assuming you want to support arbitrary text provided by users with custom fonts, colors, and styles with line-wrapping and support for text-selection. Basic
ヨウコ編を作り終えて、ようやく帽子世界の全てが完成しました。 長かったですね。 最初の記事が12年前ですよ。どんだけやねん。 いや、だからといって作るのに12年費やしたわけじゃないんです。 実質たぶん6年くらいだとおもう。 とはいえ6年でもけっこう長い。 途中で何回か頓挫の危機はありました。 記憶に残ってるのは棘の城が作れなくてスランプになった時。 ここでたぶん半年は帽子世界から離れてた。 一度心が離れると戻るのは難しい。 エターナる最大の原因はここだとおもう。 気持ちが離れちゃったらどんな短編だろうと完成しないんですよ。 でね。 どんなに愛着を込めてようが、自分の作品から心が離れる時期ってのは避けられないんですよ。短編がエターなりにくいのは、心が離れる前に速攻で完成させられるからってのも大きいと思うんです。 だから長編作る上で重要なことって、作品から気持ちが離れた後でどうやって戻るかって
日本の切り紙から着想を得て、ハーバード大学工学・応用科学大学院(SEAS)にあるMahadevan研究室の研究者たちが、シート状の素材を意図した形状へと変形させる数学的フレームワークを考案した。この論文は2019年8月19日、『Nature Materials』に掲載された。 同研究室は以前、ミウラ折りを活用して1枚のシートをさまざまな3Dの曲面形状へと変形させる手法を編み出し、2016年1月にその成果をNature Materialsに掲載。今回発表された論文は、その研究に続くものになる。 折り紙は紙を折って形を作るが、同研究室では切り紙から刺激を受け、1枚のシートに切り込みを入れて意図した形状へと変形させる手法を研究。切り込みを入れる箇所の数/長さ/方向を計算して決めていくことで、意図したとおりの形状に1回の動作で変形できるようになったという。 研究を進める際、研究者たちはまず切り込み
The list of type class constraints in a function signature can sometimes get out of hand. In these situations, we can introduce a type synonym (thanks to ConstraintKinds) to avoid repetition. Say we want to group together the Show and Read constraints: type Serialise a = (Show a, Read a) Now Serialise a can be used anywhere where we require both constraints: roundtrip :: Serialise a => a -> a roun
Introduction to databases Comparing database types: how database types evolved to meet different needs IntroductionDatabase types, sometimes referred to as database models or database families, are the patterns and structures used to organize data within a database management system. Many different database types have been developed over the years. Some are mainly historic predecessors to current
What can we do when it takes GHC a lot of time to compile a given module? Where is it spending its time? Where can we start to get a 10,000 feet view of what GHC is doing? This blog post covers one possible answer, using the eventlog mechanism. (This post has also been published on the GHC blog.) Eventlog ? GHC has a mechanism that allows us to record all sorts of “events” to an eventlog (a simple
LLVM 9.0では、定数として宣言されたメモリ領域への代入については「実行されないコード」と判定して削除するような振る舞いになったという(リリースノート、@shafikyaghmour氏のTweet、@shyouhei氏のTweet)。 これは、たとえばC/C++で「const」キーワード付きで宣言された変数をキャストを使って非constなものとして扱った際などに発生しうる。この結果、LLVMでコンパイルした際に今まで発生していなかった不具合が生じる可能性があるようだ。
最近hmatrixで深層学習を実装する機会があったのですが、hmatrixはベクトルと行列しか提供していないので3階以上のテンソルが必要になって困るという場面に出くわしました。そこで自分で長さ付きベクトルを組み合わせてサクッとn階テンソルが作れると便利かな〜と調べていたら(素直にrepaやmassivを使えという話ではあるのですが )表現可能関手を使うことでn階テンソルとその演算が楽に(そして抽象的に)実装できるという文献1を見つけたので備忘録も兼ねてまとめておこうと思います。 この記事で紹介したコードは以下のGistで公開しています。 https://gist.github.com/lotz84/78474ac9ee307d50376e025093316d0f 関手、つまりFunctorのことですが、表現可能関手はその中でも特別な性質を持つものです。この記事は前半と後半に分けて、前半では
前回から引き続き、Haskell Implementors’ Workshop 2019への参加レポートとして、私の印象に残った発表を紹介します。 今回は、Gibbonという、GHC以外のHaskell(の、サブセット)の処理系についての発表です。 Link to hereThe Gibbon Compiler: Accelerating a small subset of Haskell 発表者: Ryan R. Newton Indiana University, Michael Vollmer Indiana University, USA, Chaitanya Koparkar Indiana University Gibbonは最適化の手法を研究するために作られたコンパイラーです。 具体的には、我々(特にHaskeller)がよく使う、木構造全体に対する処理の最適化です。 こうし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く