きりかノート 3冊め

おあそびプログラミング

ruby-2.1.2のlibffi-3.1対応

チケットが来てたので対応しました。内容についてはrubyのissie#9897にあるとおりです。いちお簡単に説明すると、ビルド時にマクロとしてRUBY_LIBFFI_MODVERSIONという値を定義しているのですが、従来の"3.0.13"のような数字3つのバージョンから"3.1"という…

RubyCocoa 1.2.0 リリース!

しました。ついにRuby 2.0以降に対応しました!(1.9は対応しません) https://sourceforge.net/projects/rubycocoa/files/RubyCocoa/1.2.0/ ちょっとパッケージング失敗したので、日本時間で今日の14:30以前にダウンロードした人は取り直したほうがよいかも…

RubyCocoa 今週のコミット ..2014-07-26 10.6/10.7での初期化エラーを修正

細かいとこではドキュメント更新したり、コンパイル時の警告つぶしたりしてた。大きい作業としては、Snow LeopardやLion環境では"trunkでrequire 'osx/cocoa'しただけで落ちる"という致命的な問題があってその対応をしていた。エラーメッセージはこんなの。 …

RubyCocoa 今日のコミット 2014-07-21 NSData.dataWithRubyString()をdeprecatedに

いちおRC出したのでそんなにいじるつもりはないので、yardのドキュメントをメンテしたり。便利メソッドとしてOSX::NSData.dataWithRubyString(str)というメソッドが昔からあるんだけど、使い道があんまりないなーと思った上に、そもそもエンコーディングなし…

RubyCocoa 1.2.0 RC (Ruby-2.0対応版)を公開

しました。いきなりリリースしてもよかったんだけど、自分だけの確認では不安だったので。 https://sourceforge.net/projects/rubycocoa/files/RubyCocoa/1.2.0-rc/ 動作確認用なのでOS X 10.9用のみです。なにかあればお知らせください。ヤバそうな問題が報…

RubyCocoa 今週のコミット ..2014-07-20 サンプルアプリの動作確認

sample/以下にあるアプリの一覧をつくって、ひたすら確認して直してた。 もともとおかしかったぽい make系のプロジェクトで-framework AppKitが足りない。 import 足しておいた。 ruby-2.0によるもの ruby-2.0でSyntax Errorになるものを直した。 他のアプリ…

WebVTTファイルを利用して動画に字幕を付ける

小ネタ。自分用のメモです。WWDCのtranscriptをテキスト化しているasciiwwdcのリポジトリwwdc-session-transcriptsをながめてて、拡張子".vtt"てなんじゃろと思って調べてみたところ、WebVTTという規格のテキストであることがわかった。テキストはこんな感じ…

RubyCocoa 今日のコミット 2014-07-14 インストーラ作成スクリプトの調整

10.9 Mervericks用はruby-1.8とruby-2.0の両方がOSに付いてるので、それぞれ用のRubyCocoa.frameworkのインストーラをリリースする予定。なのでそのあたりの調整あれこれ。 リリースファイルの名前を自由に指定できるように。 (r2587) パッケージ作成時の設…

RubyCocoa 今日のコミット 2014-07-10 ruby-2.xでThreadがおかしい?件に対応

だいたいruby-2.x対応できたので、samples/以下にあるアプリを動かしたりして動作確認してる。で、どうもrubyのThreadを使ったコードがうまく動かなくって、スレッドが切り替わらなかったりするのを調べてたんだけれどようやくわかった。 Thread.passがひつ…

port:pecoを0.2.0に更新

しました。先日MacPorts公式にport:pecoを登録してから気付いたんだけど、peco-0.1.12とMacPortsのportコマンドとの組み合わせで、どうも動作がおかしい。portの出力をpecoに渡すとそのまま固まってしまう(killしないと終了できない)。0.1.11以前は問題な…

pecoのPortfileを本家に投入した

先日の"pecoのPortfileを書いてみた"から、納得いくカタチまで改善できたので、本家にコミットした。 % port info peco peco @0.1.12 (sysutils) Description: peco can be a great tool to filter stuff like logs, process stats, find files, because unl…

RubyCocoa 今週のコミット ..2014-07-03 standaloneify.rbのruby-2.x対応

1週間以上前にテスト全部とおるようになったんだけど、実際にアプリ試してみるとダメなところあったりで対処中。今はstandaloneify.rbを対応してるとこ。 ruby-2.xで"$0 not initialized"を修正。(r2581) ruby-2.xでクラッシュするのを修正。(r2582) 簡単に…

RubyCocoa 文字列のエンコーディング (続き)

先週の続き。 if/switchによる変換を、st_tableの変換表に。→実装した。 名前によるエンコーディング変換表の自動作成。→うまくいかなかった。 変換できないエンコーディング。→可能ならUTF-8に。 試しながら考えたや課題など。 st_tableによる変換表 Rubyの…

第66回 Cocoa勉強会に行ってきた(6/14)

会場はいつもの新宿伊藤ビルの貸し会議室。以下発表など。内容的なことは勉強会のサイトのほうにレポートを書いたので、こちらは感想とか主観メインで。 発表「LightBlue Bean」(gadget) BLE(Bluetooth Low Energy)で接続できる、いろんなセンサーついてる、…

pecoのPortfileを書いてみた

さいきんちらほら見かけた、絞り込み選択インターフェイスのコマンドpecoが気になったので試してみた。golangで書かれているので、goでビルドしてやる必要がある。自分はMacPortsユーザなので、こういう状況になると「とりあえずPortfile書くか」というのが…

standaloneify.rb トラブルシューティング

RubyCocoaに添付されてる便利スクリプト、standaloneify.rbで問題が起きたときの対処法。 standaloneify.rbとは 各種ライブラリ(.rb, .bundleなど)を.app内にパッケージして配布しやすくするツール。いつのころからかRubyCocoaに添付されてる。わりと裏技的…

RubyCocoa 今週のコミット 2014-06-13 文字列のエンコーディング

Ruby 1.8と1.9以降のちがいについては、るびま25号の"Rubyist Magazine - Ruby M17N の設計と実装"に詳しい。すげー雑に書くと、 ruby-1.8: Stringはバイト列。文字列処理や正規表現のマッチは$KCODEで制御。 ruby-1.9: 個々のStringインスタンスが自分のエ…

RubyCocoa 今週のコミット ..2014-06-14 ruby-2.x対応

だいたいこんな感じ。 ruby-2.1上のテストの失敗をつぶす。 Ruby StringとNSString間のエンコーディング変換(超暫定)。 OS X 10.5以前用のコードを削除。 APIドキュメントの更新。 開発用のinstall.rbやRakefileの整備。 テストの失敗は(狭義では?)RubyCoc…

RubyCocoa 今日のコミット 2014-06-07 擬似オープンクラスの2.x対応

OSX.objc_classnames()を追加。 (r2530) OSX.ns_import_all()を追加。require_framework時に呼ぶように。 (r2531) テストコードの一部にns_importを追加。 (r2532) ということで、やっとここまできたぜ。。 % ruby2.1 install.rb test : Finished in 2.60618…

RubyCocoa 今日のコミット 2014-06-07 テストコードのruby-2.1対応

ruby-1.8と2.1の非互換でテスト失敗するところの対応あれこれ。 Array#[range] = nil (r2525) ruby-1.8ではrangeの範囲の値削除だったけど、1.9以降ではその位置にnilが入る。doc/ChangeLog-1.9.3に array.c (rb_ary_update): a[n,m]=nil no longer works as…

RubyCocoa 今日のコミット 2014-06-06 `?a`リテラルの修正

ruby-2.x対応に向けて、2月にメモった課題を調べてる。今日はテスト流すと何ヶ所かで"ArgumentError: invalid value for Integer()"って例外がでて失敗するとこがあるのについて。エラーが出てるのはrb_Integer(str)で文字を整数値に変換しようとしていると…

RubyCocoa 今日のコミット 2014-06-05

次のOS Xのバージョンは10.10に決まりましたね。そうならないことを期待していたのに。。 OSのバージョン判定を修正。(r2520) ビルドスクリプトの中で、"バージョン文字列".to_f >= 10.8とかやってるとこがいっぱいあったので直した。ついでに10.5以前用の処…

ruby-2.1.2に、 ruby-2.0.0をp481に更新

しました。変更点などは本家のリリースを見てください。 https://www.ruby-lang.org/ja/news/2014/05/09/ruby-2-1-2-is-released/ https://www.ruby-lang.org/ja/news/2014/05/09/ruby-2-0-0-p481-is-released/ MacPorts的には readline-6.3対応がされたので…

ruby-2.1, ruby-2.0.0をreadline-6.3に対応

port:readlineが6.3に更新されてたんだけど、それだとport:ruby21の拡張モジュールがコンパイルエラーになるとのバグレポートがきてた。 https://trac.macports.org/ticket/43296 rubyのtrunkは対応済み(bugs:9578)だったので、そっからパッチつくりだしてre…

ruby-2.1.1, ruby-2.0.0-p451, ruby-1.9.3-p545に更新

MacPortsのパッケージをそれぞれ更新しました。各リリースの更新内容などについては公式のアナウンスを参照ください。 Ruby 2.1.1 リリース Ruby 2.0.0-p451 リリース Ruby 1.9.3-p545 リリース アナウンスにあるように、1.9.3は今後1年間セキュリティメンテ…

第64回 Cocoa勉強会に行ってきた(2/8)

会場はいつもの場所に戻って新宿伊藤ビルの貸し会議室。 東京は大雪でしたが、来られるメンバーで開催。みんなおつかれした。直前の天気予報見ながら、1週後ろにずらせばよかったかなあ。。とか思いましたが、次の週も雪でしたね。以下発表など。内容的なこ…

発表:リマインダーの繰り返しを自由に設定する (Mac)(2/08)

アプリで設定できるものでは足らないので、EventKit経由で自由に繰り返しを設定するよ、という話。 あらすじ リマインダーで「3週間ごとの繰り返し」を設定したい それEventKitでできるよ 実際にAPI操作して確認してみた。ほんとうにできるぜ! RubyCocoaの…

BridgeSupportファイルにはどのくらいクラス定義があるか

こないだFoundation.bridgesupportにNSEnumeratorがないことがわかったので、実際どんなもんだろと確認してみた。 % ack --hh '^@interface' /System/Library/Frameworks/Foundation.framework/Headers | cut -f2 -d\ | cut -f1 -d\: | sed -e 's/(.*)//g' |…

RubyCocoa 今日のコミット 2014-02-01

やっぱイベントで内職ははかどる。。いや、話もちゃんと聞いてましたよ。ruby-2.0|2.1まわりの作業。未コミットの修正含めれば、ruby-2.0, 2.1でもテストはだいぶ通るようになってきた。 "ruby/st.h"の判定をHAVE_RUBY_RUBY_HからHAVE_RUBY_ST_Hに変更。 (r2…

Interface Builderにカスタムクラスやアウトレットが表示されない

@casualconcさんからmentionで教えてもらった。Xcode 5.0.2の環境で、ruby側で定義したクラスやアウトレットがInterface Builderで表示されないとのこと。ええとまあ、正直よく今まで動いてたなあ…って感じではあるのですが、内部的な仕組みとしてはこんなふ…