みかんのブランドと品種について

*1
浜松では、三ケ日みかん、都田みかん、とぴあみかん などをスーパーでよく目にする。
あのダンボールに入ったみかんの品種は何なのか気になっていたので、農林水産まつりで農協のお兄さんに質問してきた。

Q. (ダンボールを指さして)例えばこのとぴあみかんの品種はなにになるんですか?
A. 時期によって変わる。

浜松周辺では主に、高林、早生、青島の3品種。この順番で出荷している。(丸浜みかんの片山は早生と青島の間)
糖度、酸味、大きさなどで等級分けされて、品種は混ざっている。

Q. 秀、優 など等級がダンボールに書いてあるが、同じ秀でも、赤い色の秀と、青い色の秀では違うと聞いたが本当ですか?
A. とぴあみかんの場合は、特選、赤秀、青秀 の順番でランク分けされている。ブランドや産地によって色分けや等級は異なる。


ほおおぉ!

勉強になった。ダンボールみかん = 1品種 ではなかったんだね。お兄さんありがとう。
これからスーパーでお買い物する際はみかんのブランドと品種をじっと観察してみよう!


今後研究したい事
  • 品種の見分け方。皮が薄くて濃厚なやつはどれか。皮がダブついてドイヒーな味になる要因とその品種の特定。
  • 美味しいみかんの見分け方。表面がぼこぼこしていてストイック(水分絞られてる感じ)なやつが酸味と甘味の濃度が高いことは証明されている。
  • 表年、裏年は生産者の言い訳、賢いところは最新の剪定技術でバランスよく収穫している説の検証。主婦が言いくるめられている事を憂いている。
  • 生産者の高齢化で一部産地の品質が落ちている説の検証。
  • 都田みかん最強説の検証。
  • みかんの皮の有効利用。

*1:Photographer: 酎犬 八号

Wikipedia APIで遊んでみた

使い方

http://ja.wikipedia.org/w/api.php?action=query&list=random&rnnamespace=0&rnlimit=10
にアクセスすればXML

http://ja.wikipedia.org/w/api.php?action=query&list=random&rnnamespace=0&rnlimit=10&format=jsonfm
formatにjsonfmを指定すれば読みやすいpretty JSONで表示してくれる。デバッグ時によい。

http://ja.wikipedia.org/w/api.php?action=query&list=random&rnnamespace=0&rnlimit=10&format=json&callback=callback
JSONPで使う場合はformatをjsonにして、callbackが必要なら付けられる。

Demo

Wikipedia APIを使ってランダムに記事を表示させるサンプル。

<html>
<head>
<meta charset="utf-8" />
<title>ja.infinipedia.org</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script>
$(function() {

var titles = [];

function stock() {
  $.ajax({
    type: "get",
    dataType: "jsonp",
    url: "http://ja.wikipedia.org/w/api.php?action=query&list=random&rnnamespace=0&rnlimit=10&format=json",
    success: function(json) {
      $.each(json.query.random, function(i, e) {
        titles.push(e.title);
      });
      $(document.body).trigger('wikijump');
      console.log(titles)
    }
  });
}

$(document.body).bind('wikijump', function() {
  if (titles.length > 1) {
    var title = titles.shift();
    setTimeout(function() {
      $('#wikiframe').attr('src', 'http://ja.wikipedia.org/wiki/' + encodeURIComponent(title));
      $(document.body).trigger('wikijump');
      console.log(titles)
    }, 8000);
  } else {
    stock();
  }
});

stock();


});
</script>
</head>
<body>
<iframe id="wikiframe" src="http://ja.wikipedia.org/wiki/%E7%89%B9%E5%88%A5:%E3%81%8A%E3%81%BE%E3%81%8B%E3%81%9B%E8%A1%A8%E7%A4%BA" width="100%" height="100%"></iframe>
</body>
</html>

まとめ

JSONPでクロスドメインの楽しさがやっと理解できた。MacBook Air 11インチ欲しい!

何がなんでもTitanium MobileでKitchenSinkを起動したい人の覚書(Windows)

20120726追記:Titanium Studioは管理者権限で実行する必要があります。


WindowsでKitchenSinkを起動するまでのバッドノウハウ(BK)やハマりどころをまとめました。

動作確認環境
Vista SP2, Titanium Developer 1.2.2 (Mobile SDK 1.2.0), adb.exe 1.0.26, KitchenSink 1.5.0-update2

最重要チェックポイント

環境変数pathにAndroid SDKは設定されているか
例 C:\Program Files\Android\android-sdk-windows\platform-tools;C:\Program Files\Android\android-sdk-windows\toolsの2箇所を追加。pathが通っていればコマンドプロンプトから adb version でバージョンが返ってくる。
TitaniumにAndroid SDKのpathは正しく設定されているか
左上のボタンのProfileから。例 C:\Program Files\Android\android-sdk-windows
android-sdk-windows\toolsのadb.exeをandroid-sdk-windows\platform-toolsにコピーしたか
API 2.2 まではtools\adb.exeが使われて、API 2.3以降はplatform-tools\adb.exeが使われるので移動ではなく、コピーという話だと思う。
SDK ManagerでAPIパッケージをインストールしてあるか
ここ参照 Titanium and Android SDK Tools r8 « Appcelerator Developer Center
エミュレータを実行する際、adb.exeがすでに起動していたら終了させる
これ一番ハマりやすい点だと思う。[ERROR] Timed out waiting for emulator to be ready, you may need to close the emulator and try again がでる。現バージョン(Mobile SDK 1.2.0)ではAPIを変える度にadb.exeを手動で終了させる必要がある。タスクマネージャのプロセスから終了。
KitchenSinkはSDK "APIs 2.2"か"APIs 2.3"で実行すべし
それ以外のSDKで実行すると、[ERROR] Failed installing com.appcelerator.kitchensink: pkg: /data/local/tmp/app.apk などがでて失敗する。

以下はTitaniumでKitchenSinkを起動するまでのざっくりした流れ。

準備

Android SDKとTitaniumのインストール、pathなどセットアップを以下のサイトなどを参考にして済ませておく。


KitchenSink 1.5.0-update2をダウンロード。解凍するとフォルダの中にAndroidiPhone用とiPad用の二種類入っているのでインポートの際に注意する。

KitchenSink起動まで

TitaniumにAndroidiPhone用をインポートする。SDK: APIs 2.3。ScreenはHVGAなど適当。
Launchすると処理が始まり
「キーボード履歴ユーティリティは動作を停止しました」
が2回出るが気にしない。「プログラムを終了させる」でダイアログを閉じる。あとは じっと待つ。
[INFO] Installing application on device
に時間がかかる。この間にエミュレータのカギ印を右に動かしてロックを外しておくとよい。エミュレータを自由に操作できる状態だが、Titaniumは処理を続けている。しばらくして読み込みが完了すると勝手にKitchenSinkが起動する。

メモ

WINDOWS USERS
Please place the Kitchen Sink demo in your user folder or a similarly shallow directory - windows' command line file path lengths cause problems with our build scripts.
appcelerator/KitchenSink - GitHub

  • これKitchenSinkをインポートする場所のpathが長いとうまく動かない場合があるらしいが、参考までに C:\Titanium_workspace\appcelerator-KitchenSink-e38b3dd\KitchenSink で正常動作した。
  • TitaniumのプロジェクトのTest & PackageのRun EmulatorのSDKの項目がLoading...となっている場合は、android-sdk-windowsにpathが通っていない状態。この記事の「最重要チェックポイント」にある、Titanium左上のボタンのProfileからSDKのpathを確認せよ。

Titaniumへ

  • Titaniumに一度Android SDKのpathを設定するとNew ProjectのInstalled Mobile PlatformsでAndroid SDK foundになるが、Android SDKを入れなおしたりして場所が変わっても、Android SDK foundになっていた。まぎらわしいので、起動するたびにチェックしたほうがいいのではないか。
  • エミュレータの閉じるボタンを押した後にadb.exeを終了するようにするか、Launchする度にadb.exeを再起動するようにしたらどうか。(更新されないadbの振る舞い自体がひどい仕様ぽいけど)

Titaniumがうまくいかなかったら

このエントリーもtwitterでヘルプしてもらって動作するようになったので書けました。みなさんも #titaniumJP を付けてつぶやいてみましょう。

Paste and Go 3の貼り付けて移動ボタンをロケーションバーに格納する

FirefoxPaste and Go 3をインストールするとツールバーに「貼り付けて移動」ボタンを追加できるようになりますが、大きくてダサいのでロケーションバーに入れるuserChrome.jsスクリプトを書きました。

拡張の要素の調べ方はいつものようにDOM Inspector(chrome://browser/content/browser.xulを開く)と userChromeお試し用スクリプト - Griever を使ってグリグリやりました。

画像右の#pg2-pasteandgo-toolbar-buttonをそのままロケーションバーにいれると大きいまま、widthは変えられるがheightが無理。style.listStyleImage = 'url(chrome://pasteandgo2/skin/go-button-16.png)'しても具合がわるいので、移動ボタンと同じようにimage要素にonclickで作成。

// ==UserScript==
// @name           PasteAndGo3p.uc.js
// @namespace      http://d.hatena.ne.jp/Cherenkov/
// @description    貼り付けて移動ボタンをロケーションバーに格納する
// @include        chrome://browser/content/browser.xul
// ==/UserScript==

(function() {

var pg = document.createElement('image');
pg.setAttribute("onclick", "pg2_PasteAndGo()");
pg.style.listStyleImage = 'url(chrome://pasteandgo2/skin/go-button-16.png)';
document.getElementById('urlbar-icons').appendChild(pg);

})();

配列をそのまま文字列にしたい

[["mikan","nashi"],["keizoku","spec"]]

この配列を

'[["mikan","nashi"],["keizoku","spec"]]'

のような文字列に変換したい場合は、

toSource()を使う
alert([["mikan","nashi"],["keizoku","spec"]].toSource());
// [["mikan", "nashi"], ["keizoku", "spec"]]
JSON.stringifyを使う
alert(JSON.stringify([["mikan","nashi"],["keizoku","spec"]]));
// [["mikan","nashi"],["keizoku","spec"]]


JSON.stringifyはスペースが付かなくて処理も速い。

rubyでサクっとファイル名置換スクリプト

ダウンロードした画像を整理する際にファイル名がバラバラで選別しにくい事ってよくありますよね。

サーバによってランダムにファイル名が付けられていると画像ビューアで取捨選択する際に並びが揃っていないので高速に処理できない。そこでプログラミング。

準備

  • rubyのインストール。irbが実行できること。
  • 画像を全部ダウンロードしておく。
  • ダウンロードに使ったサムネイル一覧のページを開いておく。
  • rubyjavascript、DOMの知識をフル回転。

方針

  • ファイル名の変更はrubyのFile.renameがよさそう。
  • 変更前と変更後の配列を作ってeachで回せばできそう。
  • ファイル名の配列作成はjavascriptで行う。
  • 配列の形式は以下のようにする。
[["asf82msd.jpg","M1000.jpg"],["sfmx9wr.jpg","M1001.jpg"]]

ソース

javascript:
r = [];
Array.forEach(document.querySelectorAll('.thumbImg a'),function(e){
  a = /([^/]+)$/.exec(e.href.trim())[1];
  b = e.parentNode.parentNode.parentNode.querySelector('.thumbTitle span').textContent;
  r.push([a,b])
});
prompt("以下をコピペしてirbで実行",JSON.stringify(r)+".each{|e|File.rename(e[0],e[1])if File.exist?e[0]}");
void(0)

使い方

  1. コマンドプロンプトでダウンロードした画像があるフォルダに移動しておく。
  2. 上のスクリプトを、サムネイル一覧のページで実行。
  3. プロンプトが表示されるので内容をコピー。
  4. irbを起動してコピーした内容を貼り付けて実行。

置換完了!


以上の研究結果をこちらのグリモンに実装した。
albertayu773 - direct link for Greasemonkey

msysGitで日本語対応するためにやったこと

この記事は、git-bashは諦めてコマンドプロンプトで日本語コメントはできたという内容だけど、githubでコメントを見ると文字化けしてるので参考にならないと思います。


msysGitをアップデートしたついでに日本語対応もできるようなので調べたメモ。1.5のときはgit-bash*1でgit commit -m "文字化けするので日本語コメントは敬遠してた"

  1. 日本語でコメントしたい。
  2. 日本語のファイル名をlsで表示したい。
msysGitのバージョン

git 1.5.6.1-preview20080701からGit-1.7.3.1-preview20101002への変更。

msysGitインストールで参考にしたページ
結果

上のサイトを参考にしてもgit-bashで日本語を表示したり入力する事はできなかった。
ls --show-control-charsでも日本語ファイル名化けてる。

これを入れればgit-bashで日本語を扱うことができるのかな?試してない。

git-bashはあきらめて

コマンドプロンプトでやったらどうか。
msysGitインストールからやり直してみた。
Run Git from the Windows Command Promptを選択。(インストールし直さなくてもGit\binのPATHを通せば同じだと思う)
これでコマンドプロンプトからgitコマンドが使えるようになった。しかしこの状態でgit logやgit show hoge.txtをしても文字化けしている。
そこで先ほどの日本語対応で参考にしたページからマルチバイトに対応したless.exeをGit\binに入れる。するとコマンドプロンプトから日本語がちゃんと表示されるようになった。あとよく分からないnkf.exeや設定ファイルも一応やっておいた。

手順まとめ
  1. msysGitをRun Git from the Windows Command Promptでインストール。
  2. Downloading lessのless.exeのバイナリをダウンロードしてGit\binに上書き。
  3. nkf.exe をダウンロードしてGit\binに入れる。
  4. Git\etc\inputrcとprofileをサイトを参考にしながら編集。意味があるのか、文字コードを悪く変えたり余計なお世話してないか不安。


これでコマンドプロンプトからGitで日本語を扱えるようになった。

ちなみに

コマンドプロンプトなどで日本語を入力するにはAlt+半角

*1:msysGitをインストールすると付いてくるgit操作するソフト