別アカウントに移動しました。 Haskell の型レベルプログラミングによるセッション型の実装 full-sessions を 晒します. くわしくはこちら → http://d.hatena.ne.jp/keigoi/20090622 π計算の型に セッション型というのがあって、そいつを Haskell上に実装して PPL2009 で発表しました。 ソースコードはこちら 発表論文はこちら 気をとりなおして。 Haskell用の C言語のパーザライブラリ Language.C の意味解析機能を使ってみる。 まずはグローバルスコープのシンボルテーブルを表示してみる。 こんなことができる 入力 (sample.c) enum enum1 {x, y, z}; void fundec1(); struct st1 { int a, b; }; typedef struct st2_ { int
■ [ruby][event] Ruby勉強会@関西-16「30分でわかるcallccの使い方」 先週末のRuby勉強会@関西で、Rubyにおけるcallccの使い方について発表させていただきました。 スライド: pdf ppt 継続の説明については「なんでも継続」がよく参照されるんだけど、 ちょっと説明がボトムアップすぎると思うので(僕も最初に読んだときは全然分からなかった)、「callccで何ができるか」という応用面から攻める 構成にしてみました。 最初は「継続かわいいよ継続」「それをすてるなんてとんでもない」と思ってたんだけど、 いろいろ調べてるうちになんでcallccが嫌われるのかが理解できてしまった。callccはかわいいけど、非常に手のかかる奴らしい。 しかも、面白い利用例はいっぱいあるけど実用的な例があんまりないんだよね^^;。 callccが無くなるとRubyの「かっこよさ
この記事はTppMark11の問題をCoqでやってみたという内容である。 問題はこちら: docs.google.com 命題論理式と同値であることの定義 命題論理式の定義 Inductive Term := | Var(v : Var.T) | Neg(t : Term) | And(t1: Term)(t2: Term) | Or(t1: Term)(t2: Term) | Impl(t1: Term)(t2: Term) | TRUE | FALSE . 同値であることの定義 変数環境を表すctxを Var.T -> bool の関数で表現し、命題論理式のevalを次で定義した。 Fixpoint eval ctx t : bool := match t with | Var v => ctx v | Neg t => negb (eval ctx t) | And t1 t2 =>
Mac OSXでSubversionクライアントとして、恐らく最も利用されているのはsvnXだろう。だが、どうも個人的にあのインタフェースに馴染めず、普段はSCPluginを使い、ファイルの差分を見る場合などはsvnXを利用していた。 しかし、これら二つのソフトウェアに対して、新たな刺客が現れた。しかもかなり強力そうだ。 今回紹介するオープンソース・ソフトウェアはSubcommander、クロスプラットフォーム対応のSubversionクライアントだ。 Subcommanderは3ペインの構成になっており、左がプロジェクト、右がファイルエクスプローラそして下がログになっている。さくさくと動作するので使い勝手はいい。Mac OSXのみならずWindowsやDebian packageも配布されている。 Subversionの機能も私が良く利用するものは問題なく利用できる。差分はもちろん、変更
継続、continuationと来ればやはりSchemeの話になるのだろうか。一般社会で schemeと言えば「すきーむ(n)計画。陰謀。」であるがソフトウェア業界で Schemeと言ったらLispの一種のことだ。Lispには変種が腐るほど存在するが、 Common Lispと並んで有名なのがSchemeである。Common Lispが標準化の課程でゴテ ゴテと装備して巨大化したのに対し、Schemeは遥かにコンパクトでクリアな仕 様を持つ。またSchemeとは言語の一般名であり、その実装にはGaucheとか scmとかguileとかMIT Schemeなどがある。 さてCall/CC、正式名称Call with Current Continuation、について 説明しよう。Call/CCはちょっと見はsetjmp/longjmpと同じように見えるのだが、 スタックが深くなる方向にもジャ
自然数が計算機の中で 2 進法により表現さ れていることは、みなさんご存じだろう。し かし、それ以外にも自然数の '0' と '1' の 列としての表現で有用なものが存在する。こ のコードは、グレイコードと呼ばれている。 2 進法は 0, 1, 10, 11 と始まる がグレイコードは、0, 1, 11, 10 と始まる。 一般に、2 進法では n 桁のコードを生成す るのに n 桁目を 1 にしてそこまでのコード を繰り返してたのに対し、グレイコードでは、 n 桁目を 1 にしてそこまでのコードを逆の 順番に用いている。つまり、新しい桁を 1 にしてそこまでのコードを対称に折り返す操 作を繰り返すことにより、このコードは生成 される。2 進コードからグレイコードへの変 換は簡単である。列を右に1文字シフトして、 元の列とビットごとの排他的論理和(異なれ ば 1、等しければ 0)をとればよ
Railsって聞いたことある?WebDBをすっごく簡単に構築できるフレームワークだ。MicrosoftのWindows,Mac、Linuxで動いている。私は今回、WindowsとLinuxで遊んでみた。とっても本当にコードレスに近い形でとりあえずは構築できる。RailsのサイトでBlogを15分で作ってある動画が流されているが、何しろ早口でウープスばかり言う外人が作っている動画、ましてや私には不得手なMacでやっているので、とりあえず、WindowsとLinuxでちょっと見栄えのよいBlogを作ってみた。数回にわけてアップする。 ノートパソコンはディスクトップPCと違って拡張性が著しく乏しいですね。ITの驚異的発展に対して1年で凄まじく性能が劣ってしまいます。そこで、管理人としては30種類以上のノートPCを分解した実績をもとにHDDの換装、Memory増強のためのノートパソコンの分解やOS
最新Eclipse徹底マスター ⇒ tK (08/25) GAE/J 開発環境でJDO入門 ⇒ bose999 (05/17) GAE/J 開発環境でJDO入門 ⇒ yosukehara (05/17) 日経ソフトウェア 2009年05月号に記事を書かせて頂きました ⇒ (03/25) 日経ソフトウェア 2009年05月号に記事を書かせて頂きました ⇒ 山本 (03/25) OSSとの良い循環 ⇒ imai78 (03/08) Seasar2とJBoss5 VFSの問題解決に向けて ⇒ bose999 (03/08) Seasar2とJBoss5 VFSの問題解決に向けて ⇒ ひが (03/06) Mobsterユーティリティプラグイン ⇒ bose999 (03/05) Mobsterユーティリティプラグイン ⇒ はしもと (03/05) 「SpringによるWebアプリケーションスーパ
Entry Page いまごらんの、このページ です Articles 多くの記事の本文です リンクは右側に一覧表に なっていますので、それ ぞれをクリックしてください About このサイトの趣旨について Links 電子回路に関する 技術情報、 部品の入手、 測定器メーカ、 シミュレータの情報、 展示会の情報、 などなど、、 たくさんのリンクがあります Glossary 電子回路に関する 記号と単語の説明です 単位もわかります Miscellaneous 次のような種々の情報です 電子回路設計Forum 添付ファイル集 DOS Tools 作者 藤原武 Profile ウェブサイト運営状況 気の向くままの写真集
ネットワークエンジニアの仕事って? ネットワークを学びたいけど何から学べばよいか分からない!! TCP/IPって何?ルーティングって何なのよ? Ciscoの資格、CCNAを取りたい!! 当サイトではそんなネットワークエンジニアを目指している方に向けて、ネットワークに関する情報を幅広く紹介し、そんな初心者ネットワークエンジニアのスキルの向上を目指しています。 トラブルにも動じないネットワークスキルを身につけよう! ネットワークに携わるエンジニア職に就きたいとお考えの学生の方や、ネットワークエンジニアの仕事に興味があって転職を考えているという方など、これからネットワークの技術を身につけていきたいとお考えのネットワークエンジニア予備軍に役に立つ情報を提供していきます。 ネットワークエンジニアのためのネットワークの基礎 イロハを学び始めて間もない方は、まず基礎をしっかり学ぶことから始めましょう。
コンテンツは現場にあふれている。会議室で話し合うより職人を呼べ。営業マンと話をさせろ。Web 2.0だ、CGMだ、Ajaxだと騒いでいるのは「インターネット業界」だけ。中小企業の「商売用」ホームページにはそれ以前にもっともっと大切なものがある。企業ホームページの最初の一歩がわからずにボタンを掛け違えているWeb担当者に心得を授ける実践現場主義コラム。 宮脇 睦(有限会社アズモード) 心得其の弐十八 ポイントと日本型賞与との類似点今週末には公務員の夏のボーナスも出揃い、ボーナス商戦も佳境へと向かいます。 そのボーナスですが、2か月や3か月分と貰える日本のボーナスは異質で、海外では「成果報酬」以外はあまり多くないといいます。これは日本の賞与水準が高いのではなく「給料の後払い」的な性格だからで、会社員だった頃はその分を毎月上乗せして欲しいと願ったものです。 家電量販店、携帯電話、航空会社のマイレ
画像処理の道具としてのMATLABの初歩を素早く学べるように構成しました. 「コマンドウィンドウ」,「プログラミング」,および「補足」による3ワールド構成です. 目次 ワールド1:コマンドウィンドウ ワールド2:プログラミング ワールド3:補足 ワールド1:コマンドウィンドウ まずは,MATLABを起動すると画面右側に現れる大きなコマンドウィンドウを使って,MATLABに慣れていただこうと思います. ステージ1-1:簡単な計算 JavaやC言語などの他のプログラミング言語とは違い,MATLABでは,「コマンドウィンドウ」に直接数式を打ち込むだけで計算を行ってくれます.とりあえず1+1を計算させてみましょう.コマンドウィンドウに以下のように入力してみて下さい. >> 1 + 1 すると,次のように計算結果を出してくれます. ans = 2 …簡単ですね.ちなみに括
長らく使っていたブログのタイトルを2023年3月21日に変更しました。何か思いつけば、新しいタイトルに変更します。 普段からUbuntu Desktopをメインに使っている。かれこれ7年くらい。それまではパソコンを両親に買ってもらってから、Ubuntuにくら替えするまで20年近くMacを使ってきた。必要に応じてWindowsは使っていて、まずは仮想環境で、性能が必要な場合はデュアルブートで起動している。 さて、新しいノートパソコンを入手したため、普段の作業用にUbuntuをインストーすることにした。Ubuntu 24.04 LTSをインストールしてみたが、インストールはすんなり(当然か)。インストール記事を読むと、それなりにトラブルが発生しているらしい。リリースまでもスケジュールに合うかどうか一悶着あったらしく、ぎりぎりだったそうな。 【Ubuntu日和】【第50回】2年ぶりのLTSである
#1 というわけで移転する こういうこともあろうかと(略)……というだけでもないのだが、一応サーバやドメインなど用意してあったのでそちらに移動。この記事が見えてるということは、すでにそこは単なるアーカイブで最新の状態ではない。 今までのこの日記のログ、及び俺がユーザー領域に置いておいたものは、以下の場所から見られるようにした。 http://www.foxking.org/oldsite/ また、今後日記というかブログというかそんなようなものは、とりあえずはてなダイアリーで継続してみようと思う。ちょうどHNSから乗り換え先を探してたしね。気が変わったらそれはそれでそちらに書くので、以下を参照。 http://d.hatena.ne.jp/KoshianX/ あとでmod_rewriteあたりでまるごと301 Movedを返すようにするつもり。 @ 説明が足りない気がするから追記: 俺
aki note ≫ Google 電話面接を受けました orz (いまは消えてるけど)にて割り算が壊れました。自分で実装してみてくださいという質問が紹介されていた。せっかく(?)の機会なので、割り算だけでなく、四則演算を全部壊してみて、JavaScript で実装して見ることにした。JavaScript を選んだのは、コンパイル不要、ビット演算がある、Firebug で手軽に確認できる、という理由から。それ以上の深い意味はない。ということで、次のような問題に一般化してみた。問い四則演算を JavaScript で実装しなさい。演算子は ==、!= およびビット演算子のみ使ってよいものとします。補足例えば、for 文で for(var i = 0; i { // ... } と書くためには、++ 演算子は次のように定義できる。 function increment(i){ var c =
関数型言語で高位合成をがすでにプロダクトになっていた。 まずはこのPDF見て欲しい。 Future Programming of FPGAs 英語だけど、10ページくらいしかないから大丈夫。 40年前の話を持ち出して、ソフトウェアの世界では、FortranとCは成功したけどLisp/Prologは失敗したよね。 でもハードウェアの世界は違うよ。C/C++/Javaが失敗して、Bluespecが成功するよ。からプレゼンは始まる。 最後は、ソフトウェアの歴史から学んだ教訓を忘れるな!で終わる。 cf. why Fortran and C succeeded cf. why Lisp/Prolog/Functional Languages (mostly) failed cf. why automatic parallelization (mostly) failed トレーニングの資料も公開さ
「Code Reading―オープンソースから学ぶソフトウェア開発技法」(毎日コミュニケーションズ発行,写真1)という本があります。私はこの本の監訳者ですから,やや自画自賛になってしまいますが,ソースコードの読み方を主題にした本はほかにはあまりありません。技法からツール,データ構造,アーキテクチャ,さらには実際にコードを読んで利用する実例まで紹介している網羅的で良い本だと思います。 この本の「はじめに」で「達人プログラマー」として知られるDave Thomas氏は以下のように書いています。 他人の作品を読まなかった偉大な作家,他人の筆づかいを研究しなかった偉大な画家,同僚の肩越しに技を盗まなかった腕のよい外科医,副操縦席で実地の経験を積まなかった767機長――果たして,そんな人たちが本当にいるのでしょうか? たしかにその通りです。ソフトウエア以外の領域では修行することとはすなわち,他の人の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く