mamimumemoomoo's blog

モーモー言いながら書きます。

しまぽを使って東京諸島に遊びに行った

タイトルの通りしまぽ通貨(電子しまぽ)を使って東京諸島の三宅島に行きました。
楽しい旅行の話はさておき、しまぽを使ってみて注意しないといけないことをまとめます。

shimapo.com

しまぽとは東京諸島の加盟店で使える電子通貨です。
1万円相当のしまぽを8000円で購入でき、東京都が2000円を負担してくれます。
しまぽ通貨は1人の最大購入金額が8万しまぽのため2人で合計10万しまぽを購入しました。
日本円では8万円です。

※ 8000円で1万円分のしまぽを購入できるため、以後は日本円換算時は円で、しまぽ利用時はしまぽでの表記にします。


購入し受け取ったしまぽは30%を宿泊専用しまぽに勝手に変換されるため、しまぽ利用できる宿を手配できないと絶対に損することになります。
2人で合計10万しまぽを受け取った場合、3万しまぽが「宿泊専用しまぽ」で、7万しまぽが自由に使える「どこでも使えるしまぽ」です。

1人のしまぽ購入上限が8万しまぽのため、2人で泊まった宿などの精算時には2人のアプリで別々に決済しないといけないですが、別のスマホで分けて決済も問題なくできます。
また、宿泊専用しまぽはお土産やアクティビティでの利用はできないため、宿の精算時点で確実に0しまぽにする必要があるため、どこでも使えるしまぽを宿の精算でも使う場がでてきます。
その場合、2人の「宿泊専用しまぽ」と「どこでも使えるしまぽ」の計4回に分けて支払いをする必要があり、今回そのようにさせてもらいました。

旅行が終わってしまぽが残っていた場合でも返金はされないので、確実に0しまぽにして残り少しを現金払いにしたいところです。

あと張り切ってしまぽをいっぱい買っていっても、キャリアによっては電波が悪く決済できない場合がありそうです。
(宿は電波が悪く決済に時間がかかり少しドキドキしました)
(レンタサイクルでは電波状況が悪く2重決済になりコールセンターに連絡したらすぐに取り消ししてくれました)

https://shimapo.com/faq?sf_paged=4

f:id:mamimumemoomoo:20190924192707p:plain


今回の旅行は船での渡航だったため3泊3日でした。
2名で往復運賃3万弱円
2名で2泊し5万弱しまぽ
2名でドルフィンスイムし5万弱しまぽ
2名でレンタサイクルで1万弱しまぽ

合計10万しまぽ(8万円)と約3万円
全て円換算なら1人5.5万円
これを全て現金払いなら6.5万円
1万円お得になりました。

三宅島までの船もドルフィンスイムの場所までの船も移動がしんどかったので2回目はうーんとなりましたが、初めての体験なら楽しいはずです。
それでは東京諸島の大自然と良いしまぽライフを!

関数などで重いスプレッドシートを軽くする

仕事で良くGoogle spreadsheetを使います。
複数人で使っていて便利ですよね。

しかし、サービスの運用などで長年使っておりデータ量も日増しに増えていき、徐々に重くなって気づいたら開くだけでも数分かかるみたいなことが発生します。

今回はそんなシートたちを軽くした方法のメモとこのブログを見てくれる誰かのための共有です。

まずはデータ量の確認

1000行2000行ではまず遅くなりませんが、5000行や1万行を超えると場合によっては重くなってきます。
まずは、そんな行数の多いシートから目星を付けてやっつけていきましょう。
非表示にしているシートでも裏では処理がされているので、非表示にしているシートも確認しましょう。

使っている関数の確認

1万行を超えているシートでもただの値だけが入っている場合は、そこまで遅くなりません。
やばいのはRANKやLOOKUPなど他のデータを範囲で見て処理する系の関数になります。
そのシートに範囲選択をしている関数がないか確認しましょう。
そういった関数があった場合、一度関数を使って結果を出してしていればいいデータはコピーして右クリックから値のみ貼り付けをし関数から値に変更するか、毎回処理をしないといけない場合ARRAYFORMULA関数を使い計算回数を減らします。

他のシートに依存していないか確認

IMPORTRANGEで別のワークブックのシートを参照している時は、その読み込みが終わるまで処理が続きます。
軽いシートを参照している時は大した処理ではないのですが、大量のデータがあったり、IMPORTRANGEの参照先で大量の処理をしていた場合やIMPORTRANGEの参照先が更にIMPORTRANGEをしていて別のシートを参照している場合はかなり時間がかかります。
VLOOKUPでも別シートを参照していて、そのシートで大量の処理をしていた場合はそれが終わるまではVLOOKUPの処理が開始できないので、それが何シートか跨っているとかなりの時間がかかる場合があります。
先述の通り、実際の値にするかARRAYFORMULA関数にして回避しましょう。

条件付き書式を確認する

他のブログにはあまり書かれていなかったのですが、条件付き書式でもかなりの処理が発生する場合があります。
特定の文字に色を付けたかったり、特定の行に色を付けたかったりするのに便利ですが、これも何千行とかあるシートの場合時間がかかります。
潔く条件付き書式をやめるか、処理回数が減らすような方法を取りましょう。
e.g.) シート内でOKの文字がある場合青背景色にNGの文字がある場合赤背景色にしたい場合、OKとNGの2つの条件付き書式を設定するのではなく元々の背景色を青にしてNGの文字がある場合のみ背景色付けるように条件付き設定するなど

諦めてExcelに移す

ブラウザ経由のスプレッドシートよりExcelのほうが軽いです。
特定の人しか使わないような関数がいっぱいの分析用データなどはExcelの方が適しています。
諦めましょう。



以上です!
それではシートの重さにイライラせず素敵なGoogle spreadsheetライフを!

DJIのドローン Telloを買った

買った。 入荷待ちで半月くらい待ったけど、普通にAmazonで12800円だった。

設定は特にすることなくApp storeでTelloのアプリを落としてきてtelloから出てるwifi繋いでアプリ起動するだけ。 ちょっと古いAndroidで使われていたmicroUSBのケーブルで充電する必要あるからそのケーブルはないといけない。

そのままだとフリーwifiだから、アプリつないだ後に設定からwifiにパスワード付けて再起動するとwifi見つけられず焦った。
電源長押しで赤ランプ点滅するとwifiリセットするらしくそれでリセットできた。
TELLO-から始まるSSID名を変更するとwifiちゃんと見つけられるようになった。
この不具合は機種依存かも知れないしファームウェアのアップデートで治るかも知れない。

2個目のドローン。前のに比べてめっちゃいい。 #tello #ドローン

1個目のドローンが5000円しない安いやつで全然安定しないし全然操縦できないのに比べてこれはこの値段でこれだけ動くのはすごい。
感動した。

初心者のエントリーモデルでとりあえず何買っていいか分からない場合はこれ買っておけばいいんじゃないかってくらい。
他分からないけど。

Amazonで専用ケース売っていたけど↑の写真の通りTelloが入っている箱がそもそも小さいから別に要らないのでは感あったから買っていない。

作り過ぎ食べ過ぎ防止

自炊をする中で作り過ぎて食べ過ぎてしまうということはよくある。
ダイエット目的だったり、節約目的で折角自炊をしても作り過ぎたり食べ過ぎたりすると本末転倒である。

そんな中、自炊歴数年を経て解決策をひらめいてしまった。

その方法とは、『作ってすぐタッパーに分けること』

めちゃくちゃ簡単。
今まで冷ましてからとか食べて落ち着いてからとか思っていたけど、鍋やフライパンにあると無意識な食欲により意外とおかわりしてしまうものである。
けれどタッパーに入れたものに手を出してしまう罪悪感はそれをも上回る。

作り過ぎに関してもちゃんと食べ切れたら何の問題ないので、タッパーでチルドなどに入れていると冷蔵庫より長持ちする。
冷凍は解凍時にかなり味が劣化してしまうので好みではない。

作ってすぐタッパーに分ける。
フールプルーフ的発想の最高のソリューションである。

英語のPerl Advent Calendar 2017を見てみる


この記事はPerl Advent Calendar 2017 16日目の記事です。

日本でもエンジニア界隈ではしっかりお馴染みとなったAdvent Calendarですが、実は英語の Perl Advent Calendarが最も古いAdvent Calendarのようです。
https://workq.qiita.com/products/adventcalendar/

ということで最古で最長のPerl Advent Calendar 2017を流し読みしてざっくりまとめてみました。
今は記事を書いている15日の記事分までしかありませんが、年内に25日までの記事を追記する予定です。

もっと過去の記事を見たい場合urlの2017を適当なものに変更すると表示できます。
そしてgithubでも公開されています。
http://www.perladvent.org/

Day1 Emoji - Printing Unicode with Perl

http://www.perladvent.org/2017/2017-12-01.html

見ても分からない文字コードじゃなくてASCII文字でも絵文字表現できます。

$ perl -e 'use open qw/:encoding(UTF-8) :std/; print "\N{FATHER CHRISTMAS}";'
🎅
$ perl -e 'use open qw/:encoding(UTF-8) :std/; print "\N{SNOWMAN}";'

http://www.fileformat.info/info/unicode/char/search.htm?q=snow

Day2 Around the world with Emoji - Emoji::NationalFlag

http://www.perladvent.org/2017/2017-12-02.html

CPANモジュール Emoji::NationalFlagの紹介です。
作者は@punytanさんです

$ perl -e 'use open qw/:encoding(UTF-8) :std/;use Emoji::NationalFlag qw/code2flag/;print code2flag('jp'). " ". code2flag('us'). " ". code2flag('gb');'
🇯🇵 🇺🇸 🇬🇧

Day3 Context Matters - Enforcing coding standards via Perl::Critic

http://www.perladvent.org/2017/2017-12-03.html

CPANモジュール Perl::Criticの紹介です。
コーディング規約に沿った実装ができているかを確認することができます。

Day4 Here(doc) it is Merry Christmas - Modern Heredocs

http://www.perladvent.org/2017/2017-12-04.html

perl 5.26からヒアドキュメントにもインデントを付けられるようになったという紹介です。
地味に便利!

perl -e '
{
  my $sql = <<~SQL;
  松島や
   ああ松島や
    松島や

      松尾芭蕉
  SQL
  print $sql;
}
'
松島や
 ああ松島や
  松島や

    松尾芭蕉

Day5 Santa Baby(cart) - The Babycart Operator

http://www.perladvent.org/2017/2017-12-05.html

テキストにリファレンスとかの変数を展開する話

Perl触ってすぐのころはどれが展開できるのか迷った記憶があります。
@{[ ]} をbaby cartと呼ぶんですね。初知り。 http://search.cpan.org/dist/perlsecret/lib/perlsecret.pod#Baby_cart

Day6 North Pole Safety Precautions - Import::Into

http://www.perladvent.org/2017/2017-12-06.html

CPANモジュール Import::Intoの紹介
Import::Intoを使うと様々なチェックが行われるようになります。

Day7 Choices, choices, so many choices! - Term::Choose

http://www.perladvent.org/2017/2017-12-07.html

CPANモジュール Term::Chooseの紹介
文字で説明するより記事のgif画像が一番分かると思います。
スクリプト実行時にy/nで選択するようなコードは書いたことあるけど、項目からインタラクティブに選択できるとは...

Day8 Constantly Merry - Const::Fast

http://www.perladvent.org/2017/2017-12-08.html

CPANモジュール Const::Fastの紹介
constを使って定義をすると変数に代入したり、変数にないものにアクセスしようとするとエラーになります。
Scalar, Array, Hashに対応しています。
perl標準のconstantプラグマを使うより変数として扱えるので便利そうです。

$ perl -e 'use Const::Fast; const my $HOGE => "hoge"; $HOGE = "fuga";'
Modification of a read-only value attempted at -e line 1.
$ perl -e 'use Const::Fast; const my $HOGE => +{ hoge => 1, huga => 1 }; $HOGE->{foo};'
Attempt to access disallowed key 'foo' in a restricted hash at -e line 1.

Day9 Matching the NaughtyNice Formula - Recursive Regular Expressions with Named Groups

http://www.perladvent.org/2017/2017-12-09.html

みんな大好き正規表現の紹介です。
BNF記法っぽく再帰的に正規表現を書けます。
日本語ドキュメントだとこちらが分かりやすかったです。 http://perldoc.jp/docs/perl/5.14.1/perlre.pod

Day10 Evaluating the NaughtyNice Formula - Eval::Closure

http://www.perladvent.org/2017/2017-12-10.html

CPANモジュールEval::Closureの紹介です。
Day9の続きの話になります。
Eval::Closureは文字列をクロージャーに入れて安全に処理してくれるらしいです。

use Eval::Closure;
my $str = '$hoge/$fuga+$poge';
my ($hoge, $fuga, $poge) = (10, 5, 1);
my $code = eval_closure(
    source => "sub { $str }",
    environment => {
        '$hoge' => \$hoge,
        '$fuga' => \$fuga,
        '$poge' => \$poge,
    },
);
print $code->(); # 3

Day11 Tiny Path Handling - Path::Tiny

http://www.perladvent.org/2017/2017-12-11.html

CPANモジュールPath::Tinyの紹介です。
ディレクトリやファイルを操作できます。

Day12 A Christmas Memory - Devel::MAT

http://www.perladvent.org/2017/2017-12-12.html

CPANモジュールDevel::MATの紹介です。
Devel::MATはメモリ解析のツールでMemory Analysis Toolの頭文字でMATらしいです。
Devel::MATを入れるとpmatコマンドが使えるようになります。

Day13 It's All There in the Numbers! - Unicode::UCD

http://www.perladvent.org/2017/2017-12-13.html

CPANモジュールUnicode::UCDの紹介です。
ユニコード名や文字コードからUnicode Character Databaseを元に調べることができます。

$ perl -e 'use Unicode::UCD qw/charinfo/;use Data::Dumper;print Dumper charinfo(12450);'
$VAR1 = {
          'block' => 'Katakana',
          'script' => 'Katakana',
          'decimal' => '',
          'bidi' => 'L',
          'name' => 'KATAKANA LETTER A',
          'upper' => '',
          'unicode10' => '',
          'digit' => '',
          'code' => '30A2',
          'decomposition' => '',
          'combining' => 0,
          'lower' => '',
          'title' => '',
          'comment' => '',
          'category' => 'Lo',
          'mirrored' => 'N',
          'numeric' => ''
        };
$ perl -e 'use Unicode::UCD qw/namedseq/;print namedseq("KATAKANA LETTER A");'
12450
$ perl -e 'use open qw/:encoding(UTF-8) :std/; print "\N{KATAKANA LETTER A}";'
ア

Day14 Prereqing around the Christmas Tree - Perl::PrereqScanner

http://www.perladvent.org/2017/2017-12-15.html

CPANモジュールPerl::PrereqScannerの紹介です。
依存したモジュールを抽出できます。
@moznionさん作の高速化されたPerl::PrereqScanner::Liteもあります。 http://moznion.hatenadiary.com/entry/2014/03/21/231805

Day15 Mojolicious on the Command Line - ojo

http://www.perladvent.org/2017/2017-12-15.html

CPANモジュールojoの紹介です。
Mojoワンライナーで書くことができます。
メソッドも全部1文字なので記憶力が試されそう。

$ perl -e 'use ojo;print g("http://www.perladvent.org/hoge.html")->text;' # スクレイピング
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>404 - Not Found</title>
 </head>
 <body>
  <h1>404 - Not Found</h1>
 </body>
</html>
$ perl -e 'use ojo;print r({ hoge=> [1,2,3] });' # dump
{
  "hoge" => [
    1,
    2,
    3
  ]
}
$ perl -e 'use ojo;print j([{ a => 1 },{ b => 2 }]);' # json encode
[{"a":1},{"b":2}]

まとめ

知らないモジュールばっかりで勉強になりました。
あと英語が全然分からないので頑張ろうと思います。

今年は寄稿者が同じ方だけですが18年目も無事完走しそうですごいです。
最後に2016/12/25の記事にいいことが書いてあったので抜粋と意訳

with thanks

Year after year the Perl Advent Calendar is our gift to you the Perl Community. The Perl Advent Calendar hopes to teach you all a little something more about Perl in a fun and playful way. Sometimes we focus more on the teaching, making things clearer and easier for every Perl programmer to understand. And sometimes we focus just on the fun...

http://www.perladvent.org/2016/2016-12-25.html

Perl Advent Calendarは毎年あなたへの贈り物です。
楽しく遊び心をもって教えられていることを願っています。
全てのPerlプログラマが理解できるように、より明確に、より簡単になることを目指します。
そして、時には楽しむことだけに集中します。


明日17日はPerlの軽量ORM Anikiの作者でもある@karupaneruraさんです。


アンダーアーマーのマネキンのサイズ

UNDER ARMOURの店でマネキンを見かけた。
めちゃくちゃムキムキである。

 

日本人が数年トレーニングしてもあれにはなれないだろう。
具体的なサイズが気になって調べてみたら実在の元NFLの選手らしい。 エリック・オグボグさんだ。

 

Wikipediaの通りだと
Height: 6 ft 4 in (1.93 m)
Weight: 270 lb (122 kg)

 

だが、こちらを見ると
> We believe our in-store fixtures and displays are exciting and unique brand-building fixtures, such as our “Big E” mannequin, a life size mold of Eric Ogbogu, a 6’4”, 275 pound former NFL defensive end and featured athlete in many of our brand campaigns.

マネキンは275ポンド 124.7kgらしい。

 

思ったより身長が高い。
何年トレーニングしても身長は伸ばせないからあの体は無理だろう。
普通の身長で言うとどれくらいの体重を維持して鍛えたらいいかを考えてみた。

 

とりあえずエリックを計算してみる。
身長193cmの場合は適正体重は81.1kgなのでエリックは適正体重より+40.9kg、BMI33.83である。
シンデレラ体重などを片手で5mくらいふっ飛ばしそうな強さだ。

 

この値を日本人の平均身長で考えてみる。
身長172cmで考えるとBMI33.83に相当するのはおよそ体重100.1kgになる。
数値だけ見るなら誰しもが太いと言う領域である。

 

しかしながらあのBig Eマネキンの腹筋の割れ方を見ると体脂肪率10%前後だろうか。
いくらトレーニングしても到底たどり着けそうにない境地である。

横浜市西区で花火できるところを調べてみた

横浜市西区で花火のできるところを調べてみた

結論だけ先に書くと以下の通りでした できるところもロケット花火や音の出るものはダメです

おすすめは蚊が少なくてまわりが明るい戸部公園 野毛山、掃部山は蚊や虫が多い 高島水際線公園は暗め


コウエニストとしてそれぞれの公園に行ってみた
取材は足で稼ぐもの

野毛山公園

OK f:id:mamimumemoomoo:20170828135406j:plain

掃部山公園

OK f:id:mamimumemoomoo:20170828135402j:plain

高島水際線公園

OK f:id:mamimumemoomoo:20170828135425j:plain

戸部公園

OK f:id:mamimumemoomoo:20170828135430j:plain

高島中央公園(要確認)

看板に記載はないので問い合わせ f:id:mamimumemoomoo:20170828135420j:plain

臨港パーク(ダメ)

火気厳禁です f:id:mamimumemoomoo:20170828135416j:plain

カップヌードルパーク

正確には西区ではないですがダメです f:id:mamimumemoomoo:20170828135412j:plain