プログラミング

finkからHomebrewへ

Mac で非標準なコマンドをインストールするときに、これまでは fink を使っていたのですが、Homebrew cask が使いたくなって、brew に転向することにしました。 fink のアンインストールは /sw を消せばよいだけでお手軽だったのですが、brew doctor してみ…

IntelliJ で Emacs 互換の ctrl-r の挙動

ようやく悩んでいた挙動を解決できた感動で久しぶりに記事を書いちゃいました。 JetBrains IntelliJ は、有料ですが、活発に機能追加が行われている素晴らしいエディタです。Sublime Text が流行って、猫も杓子も Goto Anything な昨今、Search Everywhere …

Rubyで日本の休日一覧

急に、日本の休日の一覧を取得したくなりました。 幸いなことに、Ruby には 2050 年までの日本の祝日(予定)一覧が取れる holiday_jp という Gem がありますので、有難く使わせていただきます。 > gem install holiday_jp こちらには日曜日は入っていません…

ラピュタの覆面算

今日はラピュタの日ということでタイムラインは賑わっておりますが、そんな中、こんな素敵な Tweet を見かけました。 パズルとバルスのツイートをすべき空気だから再掲しとこう。「シータとパズーがラピュタで出会う=バルス」って覆面算パズル(同じ文字に…

ビジュアルプログラミング: Google Blockly

最後の記事がスマガだったことに気づき慌てた訳ではありませんが、ビジュアルプログラミング言語(VPL)関連の話題がちらほら出ているのでメモっておきます。まずは Google Blockly。命令をブロック状に組み立てていくよくあるパネル式のVPL。新規性は、ブラウ…

Python で Skype の応答メッセージを変更する

久しぶりの更新がこれなのはアレですが、世の中にサンプルがなさそうなので……Skype4Py を使用して、Skype の応答メッセージ (voicemail greeting) として、PC上のwaveファイルをアップロードします。wave ファイルには、16KHz, 16bit, モノラルという制限が…

Eclipse Plugin 開発の情報を探して……

ネット上の開発情報は、えてして古かったり勘違いしていたりしていることも多いので、複数のソース元を当たらねばなりません。と思って、GEF*1 の正しい使い方を勉強するために、CodeZine と ObserveEclipse と書籍の「Eclipseプラグイン開発徹底攻略―Eclips…

ルービックキューブっぽいものをシミュレートする Perl スクリプト

某問題のために作ったものです。シミュレートするだけで、解いてくれたりはしません。 かなりのやっつけ仕事でしたので、対称性とか全然考えていない汚いコードです。R での回転操作と、Y 軸周りと Z 軸周りの持ち替え操作だけを定義して、他の操作はその組…

ひらがな対応のシーザー暗号の Perl スクリプト

シーザー暗号をかける Perl スクリプトをついカッとなって作ってしまいました。できたと思ってスレを見たら、すでに解かれてしまっていたりw標準入力にいれれば、標準出力から答えが出てきます。シーザー暗号は、ずらす値を正負逆にするだけで、同じプログ…

もっと難読 FizzBuzz: ふるあだー活用

昨日の続き。モダンな CPU にはせっかく1クロックで動く32bitフルアダーが載っているんですから、それを有効活用しないともったいない、ということで、もっと難読 FizzBuzz。 #!/bin/env perl my $bits = 16; my @strs = ( undef, "Fizz\n", "Buzz\n", "Fizz…

難読 FizzBuzz: N進カウンタ篇

LL魂にて、にしおくんの顔を見ていたら、無性に難読 FizzBuzzを超えてみたくなってしまったので、以前ベッドの中でちらっと思いついたアイデアを休み時間中に実装してみました。FizzBuzz とは何か、については→ どうしてプログラマに・・・プログラムが書け…

LL魂

Lightweight Language のイベント「LL魂」に行ってまいりました。毎年名前が違うという変なイベントです。前から興味はあったのですが、ようやく今年、初めて参加できました。会場は神保町の日本教育会館一ツ橋ホールでした。プログラミング言語の有料イベン…

生パケット送受信用スクリプト

やはり、生パケットの送受信をスクリプトで操作したいという需要はあったようです。Nessus というセキュリティスキャナを使用すると、 NASL (Nessus Attack Scripting Language) という言語を使ってパケットの送受信を行うことができるとのこと。参考: NASL …

本日の成果

プライベートな時間でやりたいことがいろいろあるのですが、本業に休日が浸食される今日この頃です……。ただ、せっかくの休日なので、今日の成果物は世に公開しておくことにします。お題は「TCP 通信っぽい応答を Raw IP を使ってやってみよう」。 適当な TCP…

ビット演算のマニアックなドキュメントを無料ダウンロード

プロシンの夜のセッションの和田先生のお話より。Knuth 先生の The Art of Computer Programming は、現在 Vol.4 が鋭意執筆中ですが、その中のいくつかの節の草稿がプロフェッショナルのコメントを求めるために Knuth 先生のページ で公開されています。現…

es オペレーティングシステム

研究用の es オペレーティングシステム なるものが SourceForge.JP で、オープンソースとして公開されていることを slashdot.jpの記事 で初めて知りました。履歴を見ると8月くらいから公開されていたみたいですね。突っ込みどころが満載でいかにも楽しげなの…

パスカルの三角形を Haskell で

「入門Haskell―はじめて学ぶ関数型言語」と「ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門」を書店で見かけ、衝動買いしてしまいました。そこで、iterate なる、いかにもあつらえたようなリスト関係の関数を見つけてしまったの…

パスカルの三角形を OCaml で

OCaml で書いてみようとふと思い立ったのですが、二番煎じっぽいものしかできませんでした……。 let rec next_pascal_sub ls ld x = match ls with [] -> x :: ld | hd :: tl -> next_pascal_sub tl ((x + hd) :: ld) hd;; let next_pascal l = next_pascal_s…

続・パスカルの三角形

というわけで、昨日話題を振ったパスカルの三角形の Enumerable 活用版です。 ruby -e '(0..9).map {|k| (1..k).inject([1]) { |a,dummy| (a + [0]).inject([0,[]]) { |(prev, li),x| [x, li + [prev + x]] }[1] } }.each {|l| p l}'もしくは、中間結果をき…

師曰く、畳込み関数は偉大なり

そういえば、以前、右畳込み関数 foldr さえあれば他は要らない!との主張を聞いたことがあるのですが*1、遅延評価しない処理系で、foldr って何かうまみがあるのか、どなたか教えてくださいませんでしょうか……。畳込み関数 foldr, foldl がどんなものなのか…

パスカルの三角形とリスト操作

先日の Ruby 勉強会@関西の Enumerable の演習ネタが パスカルの三角形 - rubyco(るびこ)の日記 をみんなで作ってみよう、だったのですが、せっかく Enumerable をやっておきながら、combination なんて再帰関数を作るのは少々残念です。というわけで、ma…

Lua の代替言語: squirrel

友人から聞き知ったのですが、ゲーム用組込みスクリプト言語として、squirrel というものが最近出てきたそうです。 エンジンのサイズやライセンスなどの理由から、ゲーム用の組込みスクリプト言語としては Lua が圧倒的なシェアを誇っているのですが、不満点…

Bean Scripting Framework

404 Not Found (日本語) Apache Commons BSF™ - Bean Scripting Framework (英語) Ruby 勉強会にて、JRuby が Java と統合するために Bean Scripting Framework (BSF) というものを利用していると聞きかじったのでメモ。BSF は Jakarta プロジェクトの成果物…

大学で最初に教える言語は何が良いか

情報科学を専攻する学部生には scheme をまず教えるということで問題ないと思いますが*1、そうじゃない普通の学生さんにプログラミングの授業でどの言語を教えるか、というのはよく話題に上がるネタです。さすがにいまどき Pascal という選択肢はないとは思…

プリエンプティブとノンプリエンプティブ

マルチタスクのスケジューリングポリシーで、タイムスライスでタスク/スレッド/プロセスの優先度を切り替えないが、割り込みハンドラ内の処理により高優先度のタスク/スレッド/プロセスが実行可能状態になると、ハンドラから抜けた場合にそちらに実行が移る…

C++ 組み込みの ActiveObject 機構

http://d.hatena.ne.jp/kmt-t/20060109#1136757641 経由で http://216.55.183.63/pdc2005/slides/TLN309_Sutter.pptこのスライドは PDC2005 での "C++: Future Directions in Language Innovation" というセッションのもの。前後の文脈が完全に分かっていな…

萌え指向プログラミング言語「萌香」

経由で 萌え指向プログラミング言語「萌香」上記サイトからのプログラム例: 「なっち を 「(n) 「もし (n 0 =) ならば 0 「もし (n 1 =) ならば 1 「((n 1 -) なっち) と ((n 2 -) なっち) を たす」」」 仕事」 と 定義 します」 「(10 なっち) を 表示」ぱ…

言語は何を考えて設計するべきか

↓のような思考の流れもあって、言語をデザインする際に検討すべきポイントを既存の言語を参考に考えてみようか、という一人ブレスト。これからのプログラミング言語の姿 - Game Scripting Memo 名前推論 - Game Scripting Memoプログラム意味論やソフトウェ…

Draw2D と GEF の日本語資料

(この記事は2006/01/09に書かれたものです)eclipse 上でフローチャート的な View を実装したいなぁ、と思っているのですが、それには Draw2D および GEF というフレームワークを使用するのが一番お手軽です。ただ、GEF に関して日本語で入手可能な資料はこれ…

my ショートカット集

(この記事は2006/01/08に書かれたものです)自分のために、知っていると便利っぽいショートカットをメモ。 C-S-l: ショートカット一覧 C-e: エディタ一覧のドロップダウンリスト表示 F12: エディタをアクティブにする C-F4, C-w: エディタを閉じる C-F6, C-S-…