Studencheskie Programmisty

Page 1 of 3: 1 2 3 »

Feedly に検索機能をつけるスクリプトを書いた

Jul 02, 2013

先日 Google Reader から Feedly に移行したのだが、やはり検索機能がないのが不便だったので、ふと思い立って久しぶりに Greasemonkey スクリプトを書いてみた。インストールは Userscript.org から。

詳しい使い方などは userscript.org の方に書いたつもりなので、こちらでは技術的なことを。今回 IndexedDB を採用したのは、IndexedDB は Firefox 16 から接頭辞が外れており、かつストレージが無制限で使えるということがあったこと、およびIndexedDB を触ったことがなかったので、ちょうどいい機会だと思ったのが主な理由。

苦労した点としては、いろいろな方が書いているように、とにかく様々なバージョンでの説明が混在していること、そもそも情報が少ないので探すのが大変なこと、現在動くコードを紹介しているサイトが少ないということが挙げられる。なお、主に参考にしたサイトは以下。

使ってみた感じとしては、No SQL なので JavaScript との親和性が高く、手軽にデータを入れたり消したり出来るのがよいと感じた。ただ、全てが非同期 API なので、ちょっと凝ったことをしようとするとコールバック地獄に陥るのが辛い。Web Workerに期待といったところか。

    MikuInstallerとHomebrewで最新版のWineを簡単に使う

    Jul 01, 2012
    winecfgの「Wineについて」

    MacでWineを使ってる人には言わずと知れた、Wineを簡単に使うためのツールMikuInstallerだが、様々なところで指摘されているように、開発が止まってしまったせいで内蔵されているWineがかなり古いものになってしまっている(内蔵版のバージョンが1.1.2なのに対して現在の最新開発版は1.5.6)。最新のWineに入れ替える方法もいろいろなところで解説されているのだが、WineBottlerからWineを持ってくるとかの記事が多くて、これも今となってはあまり役に立たない(WineBottler内臓のWineはバージョン1.1.44)。

    なんとかして、あくまでMikuInstallerの内蔵Wineを置き換えるという方向で、いろいろいじっていたら、wineの更新に強い方法を発見したので自分用メモも兼ねて書いておく。以下その手順。

    MikuInstallerをダウンロード

    MikuInstallerからdmgファイルをダウンロードして好きなところへコピーする。

    Homebrewを使ってWineをインストール

    手抜きだがMacPortsのWine1.5からHomebrewのWine1.5に移行する|mattintosh noteにHomebrewの導入方法も含めて解説されているのでそちらを参照にしてHomebrewとWineをインストール。--develを付けないと最新安定版が、付けると最新開発版がインストールされる。

    MikuInstallerの中身をいじる

    多くのサイトでは、MikuInstaller.app/Contents/Resources/Wine.bundle/Contents/SharedSupport/ の bin, include, lib, share を上書きすると書いてあるのだが、Homebrewで /usr/local/bin/ 以下にWineをインストールすると、それらはすべて /usr/local/Cellar/ 以下へのシンボルリンクとなってしまい、単純にコピーしてしまうとリンクが切れてしまう。そこで、コピーするのではなく、startwine.shを書き換えてWineの読み込み先を内蔵Wineから /usr/local/bin/ にインストールしたWineへと変更する。

    MikuInstaller.app/Contents/Resources/Wine.bundle/Contents/Resources/script/startwine.sh の37行目

    PATH=/usr/bin:/bin:/usr/sbin
    

    PATH=/usr/bin:/bin:/usr/sbin:/usr/local/bin
    

    に変更し、同45行目

    MIKUSUPPORT="$MIKUBUNDLE/Contents/SharedSupport"
    

    MIKUSUPPOET="/usr/local/"
    

    に書き換えればOK。

    このように、startwine.shを書き換えてしまえば、Wineを更新したい時でも、いちいちインストール先からコピーして…という煩わしい作業をすることなく、ただWineをアップグレードすればよいのでとても楽ができるという利点もある。アップグレードの方法については、他に分かりやすいHomebrewの解説のサイトがあると思うので、そちらを参照して下さい。

      Posted at 13:26 日記 | Permanent Link | Comments/Trackbacks (3)
      Tagged as: developmentmac

      miのJavaScriptモードを作った

      May 12, 2012

      mi.app用のJavaScriptモードを作ってみた。miはコード補完機能が標準でついてないので、そこのところを補完することを第一目標として作成した。詳しい機能などはGithubの方に書いておいたので、そちらも参照のこと。

      スクリーンショット

      主な機能

      • JavaScriptの主要なプロパティ名/メソッド名をキーワードとして登録。
      • 関数・オブジェクト・変数名を自動的に見だしリストに追加し、かつキーワードとして登録。
        • キーワードに登録されたものは、コード入力中にescまたはCtrl+Spaceを押すことでコードの補完候補に現れるようになるので、入力の負荷が大幅に削減される。
      • function/if/for/whileなどのあとで自動的にインデントを一段深くする機能を搭載
      • ツールとして、JSDocのコメントをカーソルの位置に挿入する機能と、JSDoc Toolkitで表示中のファイルのドキュメントを作成する機能を搭載

      インストール

      Githubからダウンロード(ページ上の「ZIP」ボタンからzipでまとめてダウンロードできる)して、「JavaScript」フォルダをLibrary/Application Support/mi/mode/のなかに放り込めばインストールは完了です。

        Githubを導入してみた

        Apr 12, 2012

        受験も終わり、一息ついたので久しぶりにエントリを書いてます。以前より2台のパソコンで開発していたプロジェクトがあり、Google Codeで管理していたのですが、Subversionだとディレクトリを移しただけでうまく同期できなくなってしまい不便なので、以前導入しようとして挫折していた Github にもう一度挑戦してみました。

        よくよく調べてみると、Github には Github for Macというのがあり、コマンドラインでごにょごにょしなくてもレポジトリ作ったりコミットしたりできるみたいで、とても使いやすかった。使いやすそうな奴は軒並みシェアウェアなSubversionとは大違い。もっと早く導入すればよかった。

        というわけで、今後はuserChrome.jsスクリプトなどの制作物は基本的に Githubのアカウントの方に置いていきますので、よろしくお願いします。

          Posted at 17:52 日記 | Permanent Link | Comments/Trackbacks (0)
          Tagged as: developmentgithub

          NScripterの実行されている環境を知る方法

          Dec 13, 2010

          大概の人は、NScripterでゲームを作るとき、実行環境としてNScripterのみを想定しているのだと思う(当たり前だ)。 しかし、例えば同人ゲームなどで、NScripterの互換環境であるONScripterも サポートしようとすると、NScripterとONScripterで処理を分けたくなることがあるかもしれない(NScripterでしか実装されていない機能を使うときとか)。 そんなときどのようにして実行環境を調べればいいのかについて解説する。

          結論から言ってしまうと、getreg命令を使えば良い。これは、レジストリの値を取得する命令だが、ONScripterは疑似的にこの機能を実現するために、一定の書式で書かれた「registry.txt」を読み込む機能を実装している。つまり、戻ってきた値によってNScripterで実行されているのか、それともONScripterで実行されているのかを知ることができるというわけだ。

          registry.txt

          [software\divertissement\shitootome]
          "exec mode"="ONScripter"
          

          00.txt(部分)

          ;実行しているシステムを調べる
          getreg $0,"software\divertissement\shitootome","exec mode"
          if $0="ONScripter" mov $0,"ONScripter"  ;ONScripterの時
          if $0="" mov $0,"NScripter "            ;NScipterの時
          lsp 0,":s/20,20,4;#000000実行中の環境:"+$0,0,0
          

          なお、このままだとgetreg命令を解さない、ONScripter以外の互換環境もNScripterと判別されてしまうので、 より確実にNScripterのみを判別したい場合には、インストール時にレジストリに値を書き込んでおけばよい。