2015年4月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« 2013年7月 | トップページ | 2013年9月 »

2013年8月の3件の記事

2013年8月31日 (土)

enchantMOON : シールを作ってみました

シールを作ってみました。

もう少し早く手をつけたかったのですが、漸く今週いっぱいかけてシールを作ってみました。そろそろ仕様に対する要望も上げつくしたので。

作ったシールは「張り付けずに画面をクリアするシール」「画面に日付を入れるシール」の2つです。

ネット上(主に 7gano さんの処の site)で情報は得られてたので、先週末には何か作るつもりだったのですが、そうは簡単にいきませんでした。

手こずった要因は主に3つ。

1. manifest.json に記載するべき、必要十分な内容が分からない。

今は、プリインストールされている evernote 投稿シールを export して、その中の manifest.json をコピーして使っています。とりあえず動いているのですが、これで正しいのか、たまたまなのか、自信がありません。

2. 専用 USB ケーブルでの接続。

まず、本体側。とにかく接触が悪い。いろいろ試してわかったのが、少なくともうちの個体に関しては、プラグを根元までしっかり差し込むとダメ。奥まで差し込んだところから、2mm 程手前に戻すと接続できます。

Img_0036sこれだとダメ

Img_0038sこれでOK

PC 側。開発始めると、USB mount → hack.js の編集 → unmout → MOON 上で実行 → 完成していない限り、また mount(以下先頭から繰り返し)で、最初は手で抜き差ししていたのですが、効率が悪い悪い。素直に 7gano さんのお勧めに従って、この USB ハブ を買ってきました。一応目的は、特殊な開発者用ではなく、USB 接続周辺機器の待機電力カットなので、「一般人用」らしく、近所の電気屋さんに売っていました。

U2hys4bbkエレコム U2H-YS4BB

これは「あった方がいい」レベルではありません。「なければやってられない」レベルなので、UEI が某社の USB WiFi ドングルを買い占めた如く、我々でスイッチで切断できる USB ハブを買い占めましょう。

3. そもそも JavaScript でハマる。

JavaScript をまともにいじるのは今回が初めてでしたので、そもそもつまんないところでコーディングをミスるミスる。ソースを見て頂くと、ほんとに大したことをしていないんですが、この程度のコードを書くのに随分時間がかかりました。まだまだ JS らしい書き方なんかできてないでしょうから、今後もう少し凝ったものを作ろうとしたら、またハマりまくるんだと思います。

では、以下、2つのシールの hack.js を晒します。

「張り付けずに画面をクリアするシール」

importJS(["lib/MOON.js", "lib/enchant.js", "lib/ui.enchant.js", "lib/color.enchant.js", "lib/stylus.enchant.js", "lib/puppet.enchant.js", "lib/moon.puppet.enchant.js"], function() {
    enchant();
    enchant.puppet.prepareTheatre({
        assets: []
    });
    StickerPuppet.create("シール", {
        behavior: [{
            stickertap: function(event) {
                enchant.puppet.stopTheatre();
            },
            stickerattach: function(event) {
                var page = MOON.getCurrentPage();
                var backing = page.backing;
                var paperJSON = MOON.getPaperJSON( backing );
                paperJSON.strokes = [];
                MOON.setPaperJSON( backing, paperJSON );
                MOON.peel();
                enchant.puppet.stopTheatre();
            },
            stickerdetach: function(event) {
                enchant.puppet.stopTheatre();
            }
        }]
    });
});

画面を消すシールは、入門コースの定番だと思いますが、消したいだけなのに、まずシールを張り付けてからタップというのが面倒です。

8/26 の Crew & Developers Conference を見ていて、MOON.finish() の代わりに MOON.peel() を使うと、シールのコードからシールをはがせることが分かりましたので、ontap でなく onattach で paperJSON を clear して、その直後に MOON.peel() しているだけです。

正確には「張り付けずにクリアする」のではなく、「張り付けた直後に、タップしなくても画面をクリアして、そのまますぐにシールを剥がして終了するので、画面にシールが張り付いたまま残らない」だけなのですが、どこのページでも直ぐ消せるので、まあ便利と言えなくもありません。

「日付を入れるシール」

Screen21030831こんな感じ

MOON でメモを取る時に、各ページに日付を書いておけば、後から検索が楽なはずなのですが、画面の邪魔にならないように隅に小さく書いて、かつ文字認識してもらいやすいような文字を書こうとすると、殴り書きしづらくなります。(文字のきれいな人は除く)

それでシールにしました。これも、張り付かずに、日付を入れるとすぐに剥がれるシールにしてあります。やってることは単純で、まずひたすら、読みやすくて小さな数字を書いて、使えそうな数字が書けたらそのページの info.json から strokes データを抜き出してきては、座標を平行移動して使いやすい座標セットを得るところから始まります。ちなみに、普段は ruby の人なので、座標の加工は ruby でやりました (^^;

あとは、日付文字列を分解して、1文字ずつ strokes データに翻訳していって、最期に paperJSON に concat してるだけです。

importJS(["lib/MOON.js", "lib/enchant.js", "lib/ui.enchant.js", "lib/color.enchant.js", "lib/stylus.enchant.js", "lib/puppet.enchant.js", "lib/moon.puppet.enchant.js"], function() {
    enchant();
    enchant.puppet.prepareTheatre({
        assets: []
    });

    var Figure_strokes = [];
    Figure_strokes[ '0' ] = [{width:2.5,color:-16777216,type:"pen",data:[14.53125,7.0000005,0.2831190,15.09375,6.1428576,0.5522548,14.90625,5.2857144,0.5513691,14.4375,4.7857144,0.5504819,13.875,4.3571430,0.5478118,13.21875,4.0714288,0.5469188,12.375,4.0,0.5478118,11.4375,3.9285715,0.5487032,10.3125,4.0,0.5478118,9.09375,4.1428573,0.5478118,8.4375,4.7142859,0.5451286,8.0625,5.2857144,0.5451286,7.40625,6.1428576,0.5469188,7.125,6.9285717,0.5469188,6.84375,7.7857146,0.5460245,6.65625,8.7857146,0.5460245,6.46875,9.857143,0.5460245,6.28125,10.928572,0.5451286,6.1875,11.857143,0.5451286,6.1875,12.857143,0.5442312,6.46875,13.642858,0.5442312,6.46875,14.642858,0.5460245,6.65625,15.571429,0.5469188,6.65625,16.5000009,0.5469188,7.03125,17.5,0.5478118,7.40625,18.57143,0.5478118,7.96875,19.285715,0.5478118,8.625,19.714287,0.5487032,9.1875,20.07143,0.5557835,10.03125,20.214287,0.5566623,10.78125,20.0,0.5584156,11.625,19.857143,0.5601634,12.28125,19.357143,0.5619057,13.125,18.642859,0.5627748,13.6875,17.785715,0.5636427,14.25,17.0000009,0.5679618,14.71875,16.0714290,0.5696803,15.09375,15.285715,0.5713936,15.5625,14.642858,0.5713936,15.75,13.714286,0.5756547,16.125,12.785715,0.5973221,16.125,11.857143,0.6046415,16.40625,10.857143,0.6086699,16.40625,10.0,0.6110741,16.21875,9.2142860,0.6237401,16.125,8.2142860,0.6307531,16.03125,7.2857146,0.6460649,15.65625,6.5,0.6799747,15.09375,5.7857146,0.6835592,14.625,5.1428573,0.6749244,13.6875,4.7857144,0.6460649]}];

    Figure_strokes[ '1' ] = [{width:2.5,color:-16777216,type:"pen",data:[11.71875,5.7143,0.2761274,12.0,5.00002,0.4286877,12.09375,5.0714399,0.4320946,12.09375,5.3571499,0.4388289,12.0,5.7857199,0.4454615,11.90625,6.5714399,0.4476505,11.625,7.6428699,0.4530768,11.4375,9.00002,0.4573714,11.0625,10.42857,0.4626837,10.875,12.2143,0.47002,10.59375,13.42857,0.4782666,10.5,14.7857199,0.4853675,10.125,16.00002,0.4933576,9.9375,17.0714399,0.5002443,9.75,18.1428699,0.5070374,9.65625,19.00002,0.5315096]}];

    Figure_strokes[ '2' ] = [{width:2.5,color:-16777216,type:"pen",data:[5.96875,8.6428699,0.1362821,6.15625,7.8571499,0.6022116,6.625,7.0000200,0.6078663,7.28125,6.0714399,0.6110741,7.65625,5.7857199,0.6110741,7.9375,5.4285700,0.6110741,8.3125,5.1428699,0.6110741,8.78125,4.7143000,0.6118734,9.34375,4.3571499,0.6126717,10.09375,4.0000200,0.6126717,10.84375,3.7857199,0.6110741,11.40625,3.7143000,0.6118734,11.96875,3.7143000,0.6118734,12.4375,3.8571499,0.6110741,12.90625,4.1428699,0.6110741,13.28125,4.5000200,0.6110741,13.65625,5.0714399,0.6102737,13.75,5.6428699,0.6118734,13.84375,6.2857199,0.6118734,13.84375,6.8571499,0.6118734,13.65625,7.5714399,0.6118734,13.5625,8.2143000,0.6126717,13.28125,8.8571499,0.6126717,12.90625,9.5000200,0.6126717,12.53125,10.2143000,0.6126717,12.15625,11.1428699,0.6126717,11.59375,11.7143000,0.6118734,11.125,12.5000200,0.6110741,10.5625,13.2857199,0.6110741,10.0,14.1428699,0.6118734,9.4375,14.8571499,0.6150602,8.78125,15.7857199,0.6198098,8.21875,16.3571499,0.6245233,7.65625,16.8571499,0.6292014,7.09375,17.5714399,0.6338450,6.625,18.0714399,0.6460649,6.25,18.5714399,0.6756482,5.78125,18.8571499,0.6977131,5.96875,19.0714399,0.6963106,6.53125,19.1428699,0.6970122,7.09375,19.3571499,0.6963106,7.84375,19.3571499,0.6977131,8.875,19.3571499,0.6984132,10.0,19.5000200,0.7012069,11.21875,19.4285700,0.7060692,12.625,19.4285700,0.7108983,13.46875,19.5714399,0.7204593,14.21875,19.6428699,0.7170592]}];

    Figure_strokes[ '3' ] = [{width:2.5,color:-16777216,type:"pen",data:[11.125,4.0000200,0.1563263,10.5625,3.5714399,0.3495563,9.90625,3.1428699,0.4584388,10.0,2.9285900,0.4552292,10.09375,2.9285900,0.4552292,10.375,3.0000200,0.4541542,10.65625,3.1428699,0.4541542,11.125,3.2857199,0.4541542,11.78125,3.6428699,0.4552292,12.53125,3.9285900,0.4541542,13.1875,4.3571499,0.4541542,13.375,4.9285900,0.4573714,13.5625,5.5000200,0.4552292,13.65625,6.0000200,0.4552292,13.65625,6.5714399,0.4573714,13.65625,7.1428699,0.4584388,13.65625,7.8571499,0.4595037,13.28125,8.5714399,0.4595037,13.0,9.1428699,0.4616261,12.53125,9.7143000,0.4658420,12.15625,10.1428699,0.4731294,11.59375,10.5714399,0.4803062,11.03125,10.9285900,0.4883791,10.375,11.2143000,0.5165871,9.71875,11.3571499,0.5324284,9.15625,11.5000200,0.5645091,8.59375,11.5714399,0.5932168,8.6875,11.2857199,0.5915667,8.78125,11.2857199,0.5915667,9.15625,11.1428699,0.5915667,9.625,11.0000200,0.5907399,10.09375,10.9285900,0.5899119,10.75,10.7857199,0.5865884,11.59375,10.7857199,0.5815676,12.625,10.7857199,0.5705376,13.09375,11.0714399,0.5636427,13.65625,11.3571499,0.5415304,14.125,11.8571499,0.5369986,14.59375,12.5714399,0.5324284,14.875,13.1428699,0.5278185,15.15625,13.7857199,0.5259632,15.25,14.5000200,0.5259632,15.25,15.0714399,0.5278185,15.25,15.7857199,0.5296672,15.0625,16.3571499,0.5296672,14.6875,16.9285900,0.5296672,14.3125,17.5000200,0.5296672,13.9375,17.9285900,0.5305892,13.46875,18.5000200,0.5333455,12.90625,18.9285900,0.537908,12.4375,19.5000200,0.5451286,11.78125,19.8571499,0.5549035,11.21875,20.2143000,0.5662381,10.65625,20.5000200,0.5932168,10.09375,20.7143000,0.6205979,9.4375,20.9285900,0.6346156,8.78125,21.1428699,0.6490838,8.125,21.2143000,0.7019036,7.65625,21.2857199,0.7102104,7.0,21.2857199,0.7211373]}];

    Figure_strokes[ '4' ] = [{width:2.5,color:-16777216,type:"pen",data:[13.59375,4.357143,0.1250610,12.84375,3.6428576,0.3619216,12.09375,3.571429,0.3712545,11.15625,3.7142860,0.3854641,10.59375,4.2857146,0.3991682,10.125,4.714286,0.4159573,9.5625,5.6428576,0.4298264,9.0,7.0,0.4432617,8.34375,8.357143,0.4541542,7.875,9.642858,0.4731294,7.40625,10.785715,0.4813227,7.125,11.857143,0.5089617,6.65625,12.785715,0.5478118,6.28125,13.642858,0.6142651,6.65625,14.214287,0.6086699,7.21875,14.357143,0.6078663,7.96875,14.285715,0.6094723,8.8125,14.428572,0.6086699,10.125,14.357143,0.6086699,11.53125,14.214287,0.6086699,13.03125,13.785715,0.6094723,14.625,13.285715,0.6118734,15.65625,13.142858,0.6118734,16.78125,13.214287,0.6126717,17.8125,13.428572,0.6126717]},{width:2.5,color:-16777216,type:"pen",data:[15.09375,3.7857146,0.1531679,14.25,3.2142860,0.3991682,13.59375,3.2857146,0.4171307,13.21875,3.7857146,0.430962,12.84375,4.6428576,0.4421577,12.5625,6.1428576,0.4530768,12.375,8.0,0.4668900,12.28125,10.142858,0.4803062,12.193359,11.383929,0.4864389,12.09375,12.714287,0.492366,11.994141,14.178573,0.4981682,11.90625,15.57143,0.5041373,11.8125,17.57143,0.5175323,11.625,19.57143,0.5324284,11.53125,21.285715,0.5798843,11.34375,22.500002,0.6205979]}];

    Figure_strokes[ '5' ] = [{width:2.5,color:-16777216,type:"pen",data:[11.1875,3.0000200,0.5645091,11.1875,2.7143000,0.5662381,11.09375,3.1428699,0.5679618,11.09375,3.6428699,0.5705376,10.90625,4.4285700,0.5722484,10.71875,5.2857199,0.5765031,10.625,6.4285700,0.5790409,10.625,7.6428699,0.5807266,10.625,8.8571499,0.5857546,10.53125,9.6428699,0.5882525,10.4375,10.3571499,0.5923923,10.15625,11.0714399,0.6245233,10.15625,11.6428699,0.6276459,10.4375,12.2143000,0.6276459,10.625,12.6428699,0.6268667,11.09375,13.0714399,0.6276459,11.46875,13.4285700,0.6276459,11.9375,13.7143000,0.6268667,12.40625,14.0714399,0.6276459,13.0625,14.4285700,0.6284241,13.625,14.7143000,0.6284241,13.90625,15.2857199,0.6276459,14.09375,15.7857199,0.6268667,14.1875,16.3571499,0.6260865,14.1875,17.0714399,0.6268667,14.1875,17.6428699,0.6276459,14.09375,18.2857199,0.6338450,13.90625,18.7857199,0.6430316,13.53125,19.3571499,0.6676435,13.0625,19.7143000,0.6792555,12.59375,20.1428699,0.6906724,12.125,20.5000200,0.7012069,11.5625,20.7857199,0.7184212,10.90625,21.0000200,0.7251925,10.25,21.1428699,0.7372242,9.6875,21.2143000,0.7411913,9.125,21.1428699,0.7398713,8.84375,20.8571499,0.6885461,8.65625,20.4285700,0.6430316,8.5625,19.8571499,0.5798843]},{width:2.5,color:-16777216,type:"pen",data:[10.90625,11.2143000,0.2932942,10.4375,10.6428699,0.3294000,9.96875,10.2857199,0.5973221,10.0625,9.8571499,0.6046415,10.15625,9.6428699,0.6110741,10.4375,9.4285700,0.6174396,11.09375,9.2857199,0.6229561,11.65625,9.1428699,0.6276459,12.59375,8.8571499,0.6338450,13.625,8.6428699,0.6407473,14.65625,8.2857199,0.6490838,15.3125,8.1428699,0.6573146,15.875,7.7857199,0.6654436,16.625,7.6428699,0.6998114]}];

    Figure_strokes[ '6' ] = [{width:2.5,color:-16777216,type:"pen",data:[16.25,6.2857199,0.1563263,16.34375,5.7143000,0.2188568,16.34375,5.2143000,0.2813874,16.34375,4.5714399,0.3686121,16.25,3.8571499,0.5315096,15.78125,3.6428699,0.5369986,15.21875,3.7143000,0.5415304,14.65625,4.2857199,0.5478118,14.09375,5.0714399,0.5557835,13.15625,6.0000200,0.5627748,12.40625,7.2143000,0.5688217,11.375,8.5714399,0.5739540,10.34375,10.2857199,0.5790409,9.59375,11.7857199,0.5824075,8.9375,13.3571499,0.5865884,8.375,14.7143000,0.5890828,8.0,16.0000200,0.5907399,7.71875,17.2143000,0.5907399,7.4375,18.2143000,0.5907399,7.53125,19.0714399,0.5907399,7.71875,19.7143000,0.5907399,8.09375,20.1428699,0.5907399,8.65625,20.4285700,0.5915667,9.3125,20.5714399,0.5923923,10.0625,20.5000200,0.5923923,11.0,20.4285700,0.5915667,11.75,20.1428699,0.5915667,12.59375,19.7857199,0.5890828,13.15625,19.4285700,0.5890828,13.71875,18.8571499,0.5907399,14.28125,18.3571499,0.5907399,14.65625,17.7143000,0.5915667,14.84375,17.2143000,0.5981398,14.84375,16.5714399,0.6198098,14.84375,16.0000200,0.6346156,14.65625,15.3571499,0.6632365,14.375,14.7857199,0.6778149,13.90625,14.4285700,0.6934972,13.15625,14.0714399,0.7074523,12.21875,13.7857199,0.7204593,11.28125,13.6428699,0.7312331,10.4375,13.5000200,0.7378869,9.59375,13.5000200,0.742509,8.65625,13.5000200,0.7451374,8.0,13.5714399,0.7438243]}];

    Figure_strokes[ '7' ] = [{width:2.5,color:-16777216,type:"pen",data:[6.46875,2.7143000,0.3619216,6.65625,2.7143000,0.3905031,6.9375,2.8571499,0.4159573,7.21875,3.0714399,0.4354748,7.21875,3.7143000,0.4530768,7.21875,4.5714399,0.4679357,7.21875,5.4285700,0.4813227,7.5,6.4285700,0.5002443,7.59375,7.4285700,0.5060726,7.96875,7.8571499,0.5080005]},{width:2.5,color:-16777216,type:"pen",data:[8.15625,7.5714399,0.1901792,8.34375,7.2857199,0.2339678,8.4375,6.8571499,0.2813874,8.4375,6.3571499,0.4100401,8.53125,5.7857199,0.4803062,8.71875,5.2857199,0.4893788,9.09375,4.5000200,0.5080005,9.375,3.7857199,0.5146913,9.84375,3.6428699,0.5194177,10.5,3.3571499,0.5241014,11.15625,3.0714399,0.5315096,11.8125,2.7857199,0.5351752,12.65625,2.6428699,0.537908,13.21875,2.5714399,0.5388159,13.875,2.5000200,0.5369986,14.4375,2.4285700,0.5369986,15.09375,2.4285700,0.5424321,15.46875,2.7143000,0.5442312,15.75,3.2857199,0.5469188,16.03125,3.8571499,0.5487032,16.125,4.7143000,0.5522548,16.03125,5.7143000,0.554022,15.65625,7.0714399,0.5557835,15.1875,8.5714399,0.5601634,14.625,10.3571499,0.5645091,14.0625,11.8571499,0.5705376,13.59375,13.5714399,0.5790409,13.03125,15.2143000,0.5882525,12.46875,16.6428699,0.5973221,12.09375,18.0000200,0.6070617,11.90625,19.1428699,0.6166475,11.625,20.1428699,0.6543336,11.53125,20.8571499,0.6639730]}];

    Figure_strokes[ '8' ] = [{width:2.5,color:-16777216,type:"pen",data:[16.15625,6.2142939,0.4487410,15.6875,5.8571500,0.4689790,15.3125,5.6428599,0.4863734,14.9375,5.2857199,0.5002443,14.375,4.7857199,0.5099211,13.71875,4.4285699,0.5184758,12.875,4.1428599,0.5212962,12.125,3.8571500,0.5250332,11.28125,3.2142939,0.5278185,10.625,3.4285699,0.5287437,10.0625,3.5000100,0.5305892,9.40625,3.7857199,0.5296672,8.84375,4.2857199,0.5305892,8.375,4.7857199,0.5305892,8.1875,5.2857199,0.5305892,8.1875,5.7857199,0.5287437,8.375,6.3571500,0.5287437,8.65625,6.7142939,0.5287437,9.125,7.2142939,0.5287437,9.5,7.6428599,0.5296672,10.0625,8.2143000,0.5296672,10.625,8.5,0.5305892,11.1875,8.8571499,0.5296672,11.65625,9.2143000,0.5296672,12.21875,9.6428699,0.5296672,12.6875,10.0714399,0.5287437,13.15625,10.5714399,0.5287437,13.4375,11.1428699,0.5268917,13.71875,11.5714399,0.5268917,14.0,12.1428699,0.5268917,14.09375,12.7143000,0.5305892,14.1875,13.3571499,0.5305892,14.1875,14.0,0.5305892,14.1875,14.5714399,0.5296672,14.0,15.2857199,0.5296672,14.0,15.8571499,0.5324284,13.8125,16.5,0.537908,13.625,17.1428699,0.5442312,13.25,17.7143000,0.5531391,13.0625,18.2143000,0.5619057,12.59375,18.6428699,0.5696803,12.21875,19.1428699,0.5765031,11.84375,19.5,0.5865884,11.28125,19.8571499,0.5907399,10.71875,20.2143000,0.5948623,10.15625,20.5,0.5997718,9.59375,20.7143000,0.6094723,9.03125,20.8571499,0.6158544,8.46875,20.8571499,0.6198098,7.8125,20.7143000,0.6253054,7.34375,20.5,0.6276459,7.0625,20.0714399,0.6276459,6.78125,19.5,0.6276459,6.6875,18.7143000,0.6276459,6.6875,18.0,0.6268667,6.78125,17.2857199,0.6268667,7.0625,16.5,0.6276459,7.34375,15.7143000,0.6284241,7.625,15.1428699,0.6292014,7.90625,14.5,0.6292014,8.28125,14.0714399,0.6299777,8.65625,13.5714399,0.6299777,9.125,13.2143000,0.6299777,9.59375,12.7857199,0.6299777,10.0625,12.4285700,0.6292014,10.53125,12.0714399,0.6292014,11.09375,11.5714399,0.6299777,11.5625,11.2143000,0.6299777,12.125,10.7857199,0.6307531,12.59375,10.4285700,0.6292014,13.0625,10.1428699,0.6315275,13.53125,9.7143000,0.6453079,14.09375,9.4285700,0.6580578,14.65625,9.0714399,0.6934972,15.125,8.7143000,0.7251925,15.59375,8.2857199,0.7332356,15.875,7.7857199,0.8013917,16.25,7.3571500,0.8104884,16.53125,6.7857199,0.8242417]}];

    Figure_strokes[ '9' ] = [{width:2.5,color:-16777216,type:"pen",data:[18.90625,6.5,0.3917527,18.34375,6.5714399,0.4552292,17.59375,6.5714399,0.4720952,16.75,6.4286000,0.4973045,15.8125,6.2142999,0.5060726,15.4375,5.7142999,0.5127885,15.15625,5.2142999,0.5203578,14.78125,4.5714399,0.5296672,14.3125,3.8571499,0.5333455,13.65625,3.5714399,0.5351752,13.09375,3.3571499,0.537908,12.625,3.2142999,0.537908,11.96875,3.1428799,0.537908,11.40625,3.2142999,0.537908,10.75,3.4286000,0.5388159,10.0,3.7142999,0.5388159,9.4375,4.1428799,0.5369986,8.875,4.5714399,0.5369986,8.3125,5.1428799,0.5369986,7.84375,5.7142999,0.537908,7.375,6.3571499,0.5397222,7.0,7.0,0.5397222,6.625,7.5714399,0.5388159,6.53125,8.3571499,0.5388159,6.25,9.0,0.5369986,6.15625,9.5714399,0.5369986,6.34375,10.2142999,0.537908,6.4375,10.8571499,0.5388159,6.8125,11.4286000,0.5388159,7.09375,12.0,0.537908,7.65625,12.4286000,0.5388159,8.125,12.6428799,0.537908,8.6875,12.7142999,0.537908,9.4375,12.5714399,0.5397222,10.0,12.3571499,0.5397222,10.65625,11.8571499,0.5397222,11.40625,11.6428799,0.5406270,12.15625,11.1428799,0.5397222,12.71875,10.5,0.537908,13.28125,9.8571499,0.5369986,13.75,9.4286000,0.5433324,14.125,9.0,0.5504819,14.125,9.0714399,0.5513691,14.125,9.2857399,0.5513691,13.9375,9.4286000,0.5513691,13.65625,9.8571499,0.5522548,13.375,10.4286000,0.5522548,13.0,11.2857399,0.5522548,12.53125,12.2857399,0.5531391,12.15625,13.5,0.554022,11.875,14.2142999,0.5557835,11.59375,15.0,0.5584156,11.3125,15.8571499,0.5619057,11.125,16.7142999,0.5679618,10.84375,17.5714399,0.5731019,10.65625,18.2857399,0.5781962,10.46875,19.0,0.5824075,10.09375,19.6428799,0.5865884,10.09375,20.3571499,0.5890828,9.8125,21.0,0.6102737,9.71875,21.5,0.6190207,9.625,22.1428799,0.6338450,9.4375,22.6428799,0.6899643]}];

    Figure_strokes[ '-' ] = [{width:2.5,color:-16777216,type:"pen",data:[6.84375,14.000001,0.2254570,6.28125,13.071429,0.5915667,6.65625,12.571429,0.5940401,7.40625,12.428572,0.5956834,7.78125,12.357143,0.5965033,8.625,12.285715,0.5981398,9.65625,12.428572,0.5981398,10.6875,12.571429,0.5989564,12.09375,12.857143,0.5989564,13.59375,13.0,0.6260865,14.53125,12.785715,0.7108983]}];

    function strokes_for_figure( fig, base_x, base_y, pen_col ) {
        var strokes, one_stroke, src_stroke;
        strokes = [];

        if ( Figure_strokes[ fig ] ) {
            for( var i = 0, j = Figure_strokes[ fig ].length; i < j; i++ ) {
                one_stroke = {width:2.5, color:pen_col, type:"pen", data:[]};
                src_stroke = Figure_strokes[ fig ][ i ];
                for( var k = 0, l = src_stroke.data.length - 2; k < l; k = k + 3 ) {
                    one_stroke.data.push( src_stroke.data[ k ] + base_x );
                    one_stroke.data.push( src_stroke.data[ k + 1 ] + base_y );
                    one_stroke.data.push( src_stroke.data[ k + 2 ] );
                }
                strokes.push( one_stroke );
            }
        }
        return( strokes );
    }

    function make_date_strokes( d_str ) {
        var delta_x = 16;
        var x = 767 - ( delta_x * 11 );
        var y = 3;
        var date_strokes = [];

        for( var i = 0, l = d_str.length; i < l; i++ ) {
            date_strokes = date_strokes.concat(
                strokes_for_figure( d_str.charAt( i ), x, y, -16777216 )
            );
            date_strokes = date_strokes.concat(
                strokes_for_figure( d_str.charAt( i ), x + 2, y + 2, -1 )
            );
            x = x + delta_x;
        }
        return( date_strokes );
    }

    StickerPuppet.create("シール", {
        behavior: [{
            stickertap: function(event) {
                enchant.puppet.stopTheatre();
            },
            stickerattach: function(event) {
                var page = MOON.getCurrentPage();
                var backing = page.backing;
                var paperJSON = MOON.getPaperJSON( backing );

                var d = new Date();
                var date_str = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
                var d_strokes = make_date_strokes( date_str );
                paperJSON.strokes = paperJSON.strokes.concat( d_strokes );
                MOON.setPaperJSON( backing, paperJSON );
                MOON.peel();

                enchant.puppet.stopTheatre();
            },
            stickerdetach: function(event) {
                enchant.puppet.stopTheatre();
            }
        }]
    });
});

若干残念なのが、まだ今の MOON の API set には、ペンの色を取得する API がないので、画面背景が反転していても見えるペンの色が分からないことです。そこでここは潔く諦めて、座標を少しだけずらして白と黒で線を 2 本ずつ引くようにしてみました。こうすると、背景が反転していてもいなくても日付文字が見えます。

ちなみに、既にこの界隈では定番シールの一つになっている、tomo@klotho さん作成の罫線シール に、この日付ルーチンを組み入れて、ワンタップで罫線と日付の入るシールに改造してみようと思っているのが次のネタです。

以上、大したものではありませんが、使えるようならご自由にお使い下さい。

ダウンロード : [張り付けずにクリアするシール/clear.moon.zip] : [日付を入れるシール/dateStamp.moon.zip]

2013年8月 6日 (火)

enchantMOON あれこれ・いろいろ 08/06 分

hack せずにぐだぐだ~、というのもそろそろ限界かとも思うんですが…。

●描画の Undo UI 提案

消しゴムでなくて、Undo で描線を消したいところなんですが、7 note みたいに罫線に沿って文字を置いていくのであれば、ひと文字分に相当しそうなストロークひとまとまりごとに消していけばよいとして、どの順で字を置いていくとも限らず、線画や図表も混じるとなると、どんな単位で消していくか。

1 stroke ずつ消したいときもあれば、まとまった数の stroke をゲシゲシ消していきたいときもあるだろうし、1 stroke 消すシールをゲシゲシタップするというのは勘弁願いたい処。

既に実装されている UI の流用で、画面の輝度調整 UI と同じように、画面中心に大きな円、その円周上に小丸を表示して、小丸をジョグダイヤルみたいにぐるぐる回すことで、任意の段階まで消したり戻したり、いいところで [OK] で確定、っていのを考えました。もちろん、Undo しないことにしたら、その場で三本指スワイプ。

Undo が使えるようになるなら、結構頻繁に使うはずなので、起動方法が特殊なのは避けたいですね。これももういっそのこと、通常の描画モードで三本指スワイプで Undo 起動にしてしまいましょう。(Undo ≒ 描画の部分キャンセル)上記の UI, 技術的に実装できなくはないはずなんですが、問題はサクサク動くかどうかですね。

あと、技術的にどう管理されているのか理解できてないのが、stroke をどこまで消したら裏で認識されている検索文字列をどこまで消すかという処理。でもまぁ、今現在消しゴムで消しても検索文字列消してるんだろうから、きっとできるんでしょう。(まさか、消しゴムで描線だけ消しても、検索文字列は残っている、とかじゃないですよね)

●Wifi の暗号化モードの件

"enchantMOON の Wifi は WEP しか使えない" という情報が、いまだに流れています。私自身は、Twitter でずっと "enchantMOON" を watch してるので、勝手に新しい情報が入ってきますが、そうでない人は、まだまだ混乱してるようですね。というか、今改めて暗号化モードについて調べてみましたが、web site にも、マニュアルにも記載なし。本体のヘルプの中に WEP パスワードを入力するように記載があるだけなのですね。これは確かにいったん思い込んでしまったら、WEP しか接続できないと誤解されても仕方がない。(というか、他のモードで接続できるとは読めない)

次回のアップデートではヘルプメッセージも修正して、web site でも告知してほしいもんですが、検索にかかりやすいように、こういうところに書いておくのも必要かもしれません。

今のところ、TL に流れる情報と、自分で試してみた限りでは以下のようですが、「できます」はともかく「できません」は誤解の可能性もありますので、必要に応じて実地に確認されることをお勧めします。

  • 暗号化モード、WEP は当然として、WPA2-PSK(AES) でも問題なく接続できています。一見パスワード入力欄のスペースが足りないように見えますが、入力していくとスクロールしていきます。
  • 問題は(一応)セキュリティを考えると、SSID をステルスしたいんですが、一旦ステルス切って、接続確立してからアクセスポイント側をステルスに切り替えると、接続できなくなりました。そのうち気が向いたらもう一度 try してますが、ステルスすると接続できないのかもしれません。
  • MAC アドレスフィルタリングは可能なはずですが、いまのところ MAC アドレスを確認できていないので、これもまたいずれ。まあ、最悪裏蓋空けてドングルをPCに刺せば分かるわけですが、流石に 1-2 カ月はサポート送りを想定して、殻割りは控えておきたいです。
  • あと、TL で見かけたのですが、PC をアクセスポイントとして enchantMOON を Wifi 接続したところ、PC の sleep 復帰ごとにパスワード入力を求められたとか・・・うろ覚えですが。ほんとなら面倒ですね。

●MOON block / シールの hack

そ~ろそろ hack の方にも手を出したくなってきましたが・・・。正直専用 USB ケーブルでデータのやり取りは勘弁です。萎えます。遠からず、ネットワーク経由で hack データのやり取りができるようにする…とかどこかで見かけましたので、今月いっぱいくらいは、ゆるーく待機モードでいきたいと思います。

いや、うちの機体は、コロンビアが落ちるようなことがほとんどないので、とりあえず全部残る手書きメモとしては、結構使い物になってたりしますので。ver 2.3.1 にアップデートして、間違いなく実用度上がりました。

開発スタッフにはご苦労様と言いたい気持ちと、さっさと開発向け情報くれーっ、て気持ちが混在してますが、息留めて短距離走で倒れられてもこまりますし、マラソンで一年くらいは走り続けられるペースで、無理せず頑張ってほしいものです。

2013年8月 3日 (土)

enchantMOON 不満・要望 ??? もうわからん 08/02 分

「しばらく毎日まとめてみようと思います」とかいっておきながら、さっそく二日すっ飛ばしました。やっぱり日記とかブログは向いてないようです。

●ハード(分解を含む)の件

分解写真 を見せてもらえたので考えました。

  • アセンブルの醜美をコメントできるだけの知識はないので、そこはノーコメントとします。以下、妄想。
  • 筐体裏面左下にスリットがありますが、これは本来(技適さえ通れば) WiFi module がついた場所ではないかとコメントを見かけました。なるほどーっ、というところですが Wifi は Wifi として、このスリットは単純にバッテリーの充放電時の放熱用ということはないのでしょうか?Wifi 用なら、裏蓋開けて、Wifi ドングル分解して、厚みを減らしてからスリットの下まで電線ハンダ付けして延伸すれば感度が上がって幸せになれそうです。でも、放熱用スリットなら、スリット下に余分なものを置くと加熱してしまうかも。
  • ところで、ノート PC を分解すると、miniPCI の無線 LAN ボードが出てきたりするんですが、ああいうボードからは外付けのアンテナ線を延長接続できるようになっています。ドングルタイプのものには、アンテナ線つながらないんでしょうか。

USB 端子の謎再び

  • 専用 USB 端子をどうしてああいうのにしたのかといぶかしんでたのですが、よく考えてみると、わざわざ選んだというよりも、製造コストをコントロールするために、既に出来上がってる、使える基盤を探してきて組み上げたからなのですね。
  • では、それについては横において、これから巻き返しは可能なのか。
  • たとえば、結局 USB ケーブルしか繋げないなら、あんなに端子数必要ないですよね??? コネクタ外して、mini USB コネクタに付け替えるとかいうのは無理なんでしょうか。あるいは、こういうのができるとけっこううれしいんですけど、手作り可能ですか?

あと、ホントに妄想なんですが

  • microSD のスロット部分、あそこだけ筐体を開け閉めできるように切り欠きと蓋をつけて、いつでも抜き差し可能、PC とは microSD でデータ交換、という世界は、かなり工作能力必要ですよね。

ペンの小ネタな改造

  • ペンに関しては、重心を変えたいとか、消しゴムボタンの位置を変えたい、とかあるんですが、まーぁ無理ですので、小ネタに走りました。
  • 安直だけど、結構いいです。手書き文字やイラストを切り抜いてシールにするときに、指で描くよりずっと思った形に便利です。

手書きレスポンスの謎

  • 東芝やら、SHARP やらが、十分早くレスポンスする Android を開発・発売してて、「スゲーっ」と思うんですが、これって、結構難しいんじゃなかったんでしたっけ?
  1. 海外のエンジニアが、実はたいしたことない
  2. shi3z 社長が、海外のエンジニアの lip service に舞い上がった
  3. 東芝、SHARP が純粋にスゴイ
  • (3)だと、日本人としてはうれしいんですけどねー。

今日はここまでで勘弁を。

« 2013年7月 | トップページ | 2013年9月 »