Rubyでパターンマッチが使えるライブラリを作ってみた。

Rubyには、配列などから値を取り出したりするパターンマッチの機能はありません。 しかし、時々欲しいと思うことがあります。そんな時のために作ってみました。 (実は自分でもなんで作ったんだろうと思うような時もあるのですが) githubで公開しています。ht…

HTML5のCanvasを使って方眼紙みたいな画像を生成するプログラムを作ってみた。

HTML5のCanvasを使えば、Javascriptでも画像を生成するプログラムが簡単に作れます。 縦と横に線が並んでいて、線と線が交わるところに円が書かれた画像が欲しかったので、 多分同じことをするソフトはすでに存在すると思いますが、HTML5で作ってみました。 …

パターンマッチみたいなことをするプログラムを書いてみた。

Common Lispです。 パターンマッチといっても、束縛する値のリストを連想リストとして返すだけなので、プログラムに応用するにはもう少し工夫が必要かもしれません。 できるだけ簡潔に書こうと思っていましたが、結局長くなってしまいました。 (defun zip-wi…

GtkとWnckを使って、ウィンドウのリストを取得する。

作りたいものを思いついたので、Wnckについてもう一度、少し調べてみました。 今回は、その方法の実験として書いたプログラムです。 ウィンドウのタイトルと、ウィンドウを開いているアプリケーションの名前を取得します。 アプリケーションの名前は何なのか…

Lispbuilder-SDLのインストール

Lispでゲームを作りたいと思い、UbuntuにLispbuilder-SDL(Common LispからSDLを使うライブラリ)をインストールしてみました。 今回はその手順を書いておきます。 Common Lisp処理系には、apt-getでインストールしたSBCLを使っています。 準備 Lispbuilderで…

Rubyで二つのGdk::Pixbufを重ねて新しいGdk::Pixbufを作る。

GTKで画像を扱う時に使われるGdk::Pixbufを重ねて新しいGdk::Pixbufを作る方法を書いてみます。 背景画像の上に重なる画像には、背景が透過した画像を使います。 画像は二つとも、一辺が256ピクセルの正方形になっていることを想定して書いたので、256という…

wnckを使ってウィンドウが開かれたことを通知する

wnckというライブラリを使い、ウィンドウが開かれた時にウィンドウタイトルを表示するプログラムを書いてみました。 これはタイトルを表示するだけですが、wnckはウィンドウの位置やサイズを操作することができるようなので、うまく使えばいろいろな応用がで…

Rubyで外部コマンドの出力をGtk::TextViewに表示

外部コマンドの出力をパイプで取得してそのままGTKのテキストビューに表示するプログラムを書いてみました。 単純な方法でやっているので、ただ単に標準出力を表示するだけですが、 リアルタイムに出力を取得しているので、少しずつ出力されるコマンドは少し…

Haskellコンパイラ「jhc」をビルド

Haskellコンパイラの「jhc」をビルドしてみました。 Ubuntuでやってみました。 方法は、jhcの公式サイトの http://repetae.net/computer/jhc/building.shtml ここを参考に書いてみました。 必要なライブラリのインストール jhc自身もHaskellで書かれているの…

Pureの「reduce」がすごい

Pure言語には、「reduce」というマクロがあります。(PureではLispのようなマクロが使える)これは、「与えられた式をもう一度評価する」というマクロです。一見単純なようですが、たくさんの応用ができそうです。 簡単な使い方を紹介します。 foo expr = redu…

括弧ゴルフにPureで挑んでみた

「どれだけ括弧を使わずに書けるか」を競う「括弧ゴルフに、Pureを使って挑戦してみました。括弧は、「()」も「[]」も全く出てきません。0個です。階乗は大きい数(intだとオーバーフローしてしまうもの)も普通に出てくるので、それに対応するのに苦労しまし…

UbuntuでD言語からSDLとOpenGLを組み合わせて使ってみた。

方法はほとんど変わっていません。 ほぼメモのような感じなので、D言語でSDLやOpenGLを使う関係の記事はまとめたほうがよかったかもしれません。 ですが書き直すのが面倒なので書いてしまいます。前回と前々回の作業を行った後に行ったので、それを前提に書…

UbuntuでD言語からOpenGLとGLUTも使ってみた。

SDLの時の方法はSDL以外にも使えそうだったのでやってみました。 GLUTをインストール Ubuntuならaptで簡単です。 sudo apt-get install freeglut3-dev D言語用ライブラリの準備 「http://shinh.skr.jp/d/porting.html」の「OpenGL」をクリックしてzipファイ…

UbuntuにD言語コンパイラDMDとDSSSをインストールしてみる

最近D言語はあまりやっていなかったのですが、なんとなくやりたくなったのでインストールしてみました。 自分が行った方法を適当にまとめてみます。 「/opt/dmd2」の中にインストールされるようになっています。 DMDのインストール まずは、「http://www.dig…

UbuntuでもD言語からSDLを使ってみる

ゲームなどを作るときによく使われる画面描画ライブラリの一つに「SDL」というのがあります。 D言語からSDLを使う場合は、Windowsの場合の方法は結構見つかりますが、Linuxだとあまり見つかりません。 なので適当に書いてみました。 SDLのインストール Ubunt…

Google App EngineをScalaで使ってみる。

久しぶりのScalaだったので少し忘れているところもあって苦労しましたが、なんとか動かすことができました。 方法を書いておきます。http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/creating.html http://code.google.com/intl/ja/appe…

ニコニコ動画をHTML5で再生するBookmarkletをChrome拡張にしてみた

ニコニコ動画をHTML5で再生するBookmarklet「NicoHTML5」(http://d.hatena.ne.jp/saiten/20100225/1267110155)をGoogle Chromeの拡張にしてみました。注意: この拡張にはまだうまく動かないところや変な動作をするところもあるので、使用は自己責任でお願い…

Gaucheのパターンマッチを使いやすくするマクロを作った。

Gaucheでもutil.matchを使えばパターンマッチができますが、括弧が多いのであまり読みやすいとは言えません。 それをなんとかしようと思い、書いてみました。 こんな感じになっています。このマクロを使えば、階乗はこんな感じに書けます。括弧が減るので読…

Google翻訳の読み上げ機能をJavascriptから使えるようにするライブラリ「gtts.js」を作ってみた。

元は現在進行中のプロジェクトの一部でしたが、ライブラリ化したら便利だと思い、ライブラリとして使えるようにして、 さらに、バージョン管理ソフトの勉強も兼ねてGitHubに投稿してみました。ライブラリは http://github.com/tana/gtts.js ここにあります。…

haXeという言語を使ってみた。

JavascriptやFlashやPHPなどを生成することができる、ActionScriptに似ているようで少し違うようなプログラミング言語「haXe」を使ってみました。 インストール Ubuntuなら、簡単です。 sudo apt-get install haxe コンパイラはこれでインストールできます。…

Pure言語邪道テクニック? Whileを作る

この方法はあまり使うべきではないと思いますが、Pure言語で手続き型言語的なプログラムを書く方法として書いておきます。 まず最初に、While関数の定義です。 while expr body = body () $$ while expr body if expr (); = () otherwise;普通に、「exprを実…

Pure言語例文 FizzBuzz

例文になるのかどうかはわかりませんが、とりあえず、PureでFizzBuzzをやってみました。 こんなコードです。 check x = "FizzBuzz" if ~(x mod 3) && ~(x mod 5); = "Fizz" if ~(x mod 3); = "Buzz" if ~(x mod 5); = x otherwise; fizzbuzz n = map check (…

Gaucheで作ったTwitter Botをレンタルサーバーで動くようにした(少し改良もあります)

前に作ったbotは、ずっと起動していなければならないため不便で、 個人的な都合のために止めてしまっていたため、動作再開のために、レンタルサーバー(land.to)で動作するように改良しました。 仕組みも少し変更しています。 プログラム まず、ソースコード…

レンタルサーバーにGaucheのTwitterライブラリをインストール

GaucheでTwitter APIを使うライブラリ「Gauche-net-twitter」を、レンタルサーバー「land.to」にインストールしてみました。 方法を書いておきます。 「アカウント名」というところは、land.toの自分のアカウント名にします。 「26e0b0e」という部分は、ライ…

GaucheをSSHが使えないレンタルサーバーにインストール

GaucheでWebアプリを作ってみたいと思っていましたが、SSHが使える無料のレンタルサーバーが見つからなかったので、 SSHが使えないところ(land.to)にインストールしてみました。 自分のパソコンでコンパイルしたものをアップロードするという方法です。 他の…

Ruby/GTK2でタスクトレイにアイコンを表示

久しぶりにRubyとGTKでプログラミングしてみました。 今回は、RubyからGNOMEのタスクトレイ(通知領域)にアイコンを表示します。 http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3AStatusIcon ここや、 http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%…

ペイントツール「Pinta」をUbuntu 9.10で試してみる

Ubuntuで絵を描きたいけど、GIMPは大げさすぎる。Windowsの「ペイント」ぐらいのものがいい。 そんな時に使えそうなソフトです。ペイントよりは高機能ですが。 公式サイトは http://pinta-project.com/ ここです。画面はこんな感じです。 Windowsの「Paint.N…

Pure言語についてのメモなど

Pureの、機能や構文などについて、わかったことを書いておきます。 Pureマニュアル日本語版(http://d.hatena.ne.jp/cu39/20100609/1276102382)などを参考にしました。 この記事は未完成です。ずっと完成しないかもしれません。これからさらに追加される可能…

マウスの故障

マウスを使っていたら、突然、ホイールが空回りするようになってしまいました。 もちろん、回しても反応しません。ただ反応しないだけではなく、ホイールは普通、回したとき「カクカク」という感じがしますが、 突然、その「カクカク」という感じがなくなっ…

プログラミング言語「Pure」をインストール

最近知ったプログラミング言語「Pure」をインストールしてみます。 http://d.hatena.ne.jp/Dubhead/20100312/p1 ここも参考にして書きました。 Ubuntu 9.10でやっています。 Pureについて 動的型付けの言語らしいです。インタプリタとコンパイラ、どっちも使…