なりなり日記

IT関係、テニス、トレラン、自転車(birdy / BROMPTON / TRANS MOBILLY)の情報を発信中!

【birdyとTRANS MOBILLYで行こう!】小豆島・高松輪行旅行② 寒霞渓のヒルクライムと絶景

こんにちは、なりなりです(^ ^)

【birdyとTRANS MOBILLYで行こう!】小豆島・高松輪行旅行① サンライズ瀬戸と小豆島フェリー - なりなり日記

東京からサンライズ瀬戸で輪行して高松へ、小豆島に2泊してサイクリング、かえりは岡山から新幹線という旅行の続編です。

ホテルでチェックインして自転車で出発!



今日明日の宿泊先は「小豆島ベイリゾートホテル」です。




1階はチェックインカウンター、カフェスペース(無料のティーバッグなどが置かれていて、セルフで入れて寛げます)、土産物屋など。



大浴場は最上階12階にあり、屋上露天風呂も有るので、眺めがたのしみ(^_^)





近くの坂手港や便数の一番多い土庄港への送迎バスが出ています。

寒霞渓山麓駅へ


まだ部屋には入れませんが、荷物を預けてから輪行バッグからbirdyとTRANS MOBILLYを出して、寒霞渓に出発します。


自転車NAVITIME by NAVITIME ナビ

自転車NAVITIME by NAVITIME ナビ

  • NAVITIME JAPAN CO.,LTD.
  • ナビゲーション
  • 無料
今日も自転車NAVITIMEでナビして貰います。

目的地は寒霞渓ロープウェイの山麓駅です。



「坂道が少ない」ルートでは、畦道や住宅の合間などを通るので、僕らの様なポタリングには良いですが、ロードバイク向きのルートでは無いです。

ロードバイクは29号で山頂駅まで走れば良いでしょう。





ゴールが近づくと徐々に勾配が厳しくなり、「神聖道場」あたりから本格的な登りになります。



寒霞渓山頂方面と山麓駅方面の分岐あたりからはbirdyの1速でもまあまあ負荷のかかる勾配になりますが、シッティングのまま登り切れる程度です。

勾配的には箱根より厳しく、和田峠より楽です。

奥さんのTRANS MOBILLYは僕より重たいギアでグングン先に登っていきますが、たまに失速していました。

これは本人の持久力の問題ではなく、TRANS MOBILLYに問題が有る様です。

小豆島での2日間のサイクリング共通でしたが、グイグイサポートしてくれる時とそうでない時があるみたいなのです。

バッテリー残量は十分だし、漕ぎ出し直後でモーターか熱くなっているとも思えない、そもそも気温も大して高くないのに、駆動音はするけどアシストが弱くなることがあります。

普通なら故障ではないかと持ち込むところですが、うちのは改造してしまったのでサポート対象外です…

やっぱアシストサイクルは改造すべきでは無いようですが、そうなるとTRANS MOBILLY自体がお薦めではなくなります。

お洒落な折りたたみ電動アシスト自転車DE01
現状では、価格と重さでバランスの良いデイトナが一番かも。

寒霞渓山頂へ


今回は寒霞渓山頂からの下りを走ろうと思っているので、birdyとTRANS MOBILLYを両肩に担いで乗り込んだのですが、ゴンドラまで階段が長く、幅の狭いスロープもあったりで四苦八苦しました(^_^;)

体調不良と睡眠不足がたたって、ヘロヘロになりました…

そもそも2台担ぐ人も稀でしょうが、やめておいた方が良いです。

寒霞渓山頂での食事と眺望


お腹もペコペコだったので、山頂駅前の土産物屋2Fにある食堂で昼食です。

何かのフライ(ヘロヘロで覚えておらず)のセットです。

体調不良のため味も覚えていませんが、セットメニューばかりで単品が無かったのが不満でした。

ラーメンだけで良いのに、炒飯だけでなく他にも付いてるとかして軽く食べにくい。




山頂からの眺めは素晴らしく、モミジの木が多いので、特に秋は良いのではないかと。

是非、秋にまた来たいです。



ハート形松の前他の撮影スポットにはスマホ置きが設置されています。

寒霞渓の下り

自転車NAVITIMEで下りを検索して出発です。



気持ちよく少し下ると



本当にここすか?というダートに案内されます。




入って行くと、コンクリで舗装はされていますが、完全に山道です。

これは無いだろうと一旦引き返して、寒霞渓山頂から反対側に少し登ってみましたが、ひたすら引き返して元の道を進めと案内してくるので、上りがしばらく続くのだろうと思って、諦めて山道を下りました。

結局、自転車に乗って下るのは困難な急な葛折りを歩いて、ブレーキを頑張って引きながら、ロープウェイ山麓駅まで下りました…

最初の方で書きましたが、本格的に走るなら、29号を上って折り返すか、土庄に下りるのがお薦め。

ポタるなら山麓駅に自転車を止めてロープウェイ往復か、下りは登山道を歩いて下りる。

特に秋の紅葉シーズンなら、少なくとも下りは徒歩で、余裕があるなら上りも徒歩が良いでしょう。

丸金醤油を経てホテルに帰還

麓駅からは自転車に乗って、29号に合流して軽快に下ります。この辺りもモミジが多いので、紅葉シーズンは綺麗なはず。




途中、内海ダムをチラッと見てから海岸線まで下り






28号をホテルに向かう道すがら、丸金醤油に立ち寄って、記念館を見学してから醤油ソフトを頂きました。

疲労困憊してパクついたため、ソフトの写真は撮ってません(^_^;)

ホテルに帰って温泉と食事

まずは温泉

海沿いの12階の温泉だけあって眺めが最高です!


温泉 | 小豆島のリゾートホテル|ベイリゾートホテル小豆島の公式HP
写真はサイトのものですが



内風呂は大きく、全面ガラス張りの素晴らしい眺めがであるだけでなく、天井も大きなガラス張りとなっていて空が見えます。

そこをトンビがゆるりと回っていたりして、ずっと見ていられます。

窓の下は浅瀬になっていて、寝湯として使えますから。



露天からは山も海も眺められて気持ちいい。


注意点としては

  • 12階のため風が強いと露天は厳しい
  • 夜景は特に何でもないので、明るいうちがお薦め

ということ。

バイキングで夕食



















バイキングは和食中心なのでヘルシーに楽しめます(^-^)

食事を終えてる部屋に戻って一息、もう一度温泉に入ってから爆睡しました。

セブンも7/1からQRコード決済開始!各コンビニの対応状況まとめ

こんにちは、なりなりです(^ ^)

QRコード決済といえば

  • PayPay
  • LINE Pay
  • 楽天ペイ

が3方式がメジャーどころと思う人が多かったと思いますが、状況が変わるかもしれません。


セブン-イレブン、コード決済に対応 PayPayやLINE Payなど5社と独自の「7Pay」 - ITmedia NEWS
何とセブンが対応を表明したのは

  • 7pay(独自)
  • PayPay(国内)
  • LINE Pay (国内)
  • メルペイ(国内)
  • アリペイ(中国)
  • WeChat Pay (中国)

の5方式で、楽天ペイは非対応ということです。

結構衝撃です。

バーコード決済|サービス|ファミリーマート

メルペイ、Origami Payは非対応のファミマ


利用できるお支払方法|ローソン

バーコード決済 | サービス | ミニストップ

どこにも対応するローソンとミニストップ


http://www.poplar-cvs.co.jp/ir/pdf/index/2018/news_181212-1.pdfhttp://www.poplar-cvs.co.jp/ir/pdf/index/2018/news_181212-1.pdf

楽天ペイ、PayPay、d払い対応のポプラ


まとめると

LINE Pay 楽天ペイ PayPay Origami Pay d払い メルペイ
セブンイレブン × × ×
ファミリーマート × ×
ローソン
ミニストップ
ポプラ × × ×


  • PayPayが完全制覇
  • LINE Payも非対応はポプラだけなので問題無し
  • 楽天ペイは最重要のセブンが非対応

ということになりました。

ついでに言うと

  • Origami Payはセブンもファミマも非対応ということで絶体絶命
  • d払いも楽天ペイ同様にセブンが非対応

です。

セブンはシステム的に楽天ペイに対応出来ないことは考えにくいので、何らかの契約条項で合意出来なかったのでしょう。

折り合いが付かなかったのが手数料なのか何なのか分かりませんが、セブンからすれば楽天ペイ非対応は何の痛手にもなりませんが、最大顧客であろうセブンと契約出来ないのは楽天ペイには相当な痛手であるはすです。

そう遠くないうちに楽天が折れるでしょうが、プレスリリース前に折れるべきでしたね。トップの判断ミス。


僕的には楽天ペイが使えて欲しかったですが、PayPayでもLINE Payでも構わないので、7月以降はコンビニでのApple Payの利用は辞めて、大量にポイントが入ってくる予定のLINE Payを当面のメインにするつもりです。

LINE Pay非対応でSuica対応の店(電子マネー対応でSuica非対応は稀)では、LINE PayカードからチャージしたモバイルSuicaで支払います。

【birdyとTRANS MOBILLYで行こう!】小豆島・高松輪行旅行① サンライズ瀬戸と小豆島フェリー

こんにちは、なりなりです(^ ^)

先日、東京からサンライズ瀬戸で輪行して高松へ、小豆島に2泊してサイクリング、帰りは岡山から新幹線で輪行してきました。

今回はサンライズ瀬戸と小豆島フェリーの輪行に関して。

サンライズ瀬戸で東京から高松へ


これがサンライズ瀬戸・出雲です。岡山で車両を切り離して、高松行きと出雲行きに別れます。


サンライズ瀬戸・出雲の車内をご紹介します。

サンライズ瀬戸・出雲 285系:JRおでかけネット

公式サイトはこちら。



廊下は狭いので、大きな荷物を脇に抱えて歩くのは無理。自転車は1台ずつ縦にして前方に抱えて運びます。

車両のドアは広めなので2台抱えて乗り込み、一旦デッキに置かせて貰って、1台ずつ部屋に運びました。

また、デッキから2階へは直線の階段を登りますが、1階へは曲がった階段を下るため、自転車などの大きな荷物を持っている場合には2階がおススメです。

B個室寝台1人用(シングル)

僕ら夫婦はシングルを2部屋取りました。第1希望はツインだったのですが、部屋数が少ないため取れずにシングルになったんです。

JRの予約は1ヶ月前からの先着順ですから、宿と合わせて旅行代理店に頼むのが無難です。僕らは近ツーに頼みました。




奥さんは2階の奇数号室、海側です。TRANS MOBILLYは奥行が45cmもありますが、何とかドアは閉まります。



僕は2階の偶数号室、山側です。

birdyは34cmなので余裕です。

シングルは折りたたみ自転車なら大抵問題無く入りますし、ロードバイクでも荷物置き場まで含めれば何とか収まるでしょう。



とても広い窓があって景色が良いです。



4桁の暗証番号+#で施錠、4桁の暗証番号入力で解錠されます。



足元にはコンセント、テーブルがあり、窓際にも多少の荷物が置けます。

写っているタブレットは僕のiPad Airです。

iPad Airは大活躍でした。

  • 軽い
  • バッテリー駆動時間が長い
  • ガイドブックを読むのに十分な画面サイズ
  • 2人で見やすい画面サイズ
  • ホテルのWi-FiへのログインはiPadかiPhone何れかだけでOK

など。



枕、毛布、浴衣が用意されているので室内で快適に過ごせます。



枕側の脇には荷物置き場があり、大抵の荷物はここに収まるでしょう。


枕側の壁には

  • NHKラジオのボリュームとヘッドホン端子
  • 時計とアラーム
  • 室内灯
  • ベッドの下から温風が出るヒーター

のスイッチ類が有ります。





室内灯のRoomオンで左右の電気、Nightオンで片側だけの電気が点きます。

完全に消灯しても時計と緑色LEDは消えませんから、気になる人はシールでも持って行った方が良いでしょう。

奥さんは気になって棚側を頭にして寝たようですが、その場合はスピーカーが耳のすぐ横になるので、アナウンスが入ると驚きます。

僕らの出発数時間前に起きた品川の人身事故の影響で電車が遅れて、岡山乗換え予定の人が姫路乗換えに変更になったりして、早朝5時頃にアナウンスが入ったんです。



寝る時は完全にスクリーンを閉めて光はシャットアウト出来ますが、電車の振動はなかなかのものです。

僕も体調が今ひとつだったこともあって熟睡は出来ず、奥さんもうとうとしか出来なかったようです。

眠りやすさに個人差が有るので、夫婦やカップルの場合でもマイペースに過ごせる様に、シングルを2部屋取るのが正解だと思います。



眺めは絶対的に海側の奇数号室が良いです。

海沿いの海岸線、淡路島などは勿論、瀬戸大橋からの眺めも奇数号室が上です。

神戸駅を通過してすぐ、新長田駅前の鉄人28号も海側です。

車内とその他の部屋


B個室寝台1人用(ソロ)の1階です。2階への階段が出っ張っているため、シングルにある荷物置き場が無く、入り口の奥行も無いため、TRANS MOBILLYだとドアが閉まらない可能性が有ります。

ロードバイクの場合は、縦置きなら何とかなるかもしれません。




2階室は入り口が階段になっているため、自転車はここに無理矢理置くことになります。

1階でも2階でも、ソロは輪行向きではありません。




B個室寝台1人用(シングルツイン)は2段ベッドタイプです。

1人利用なら良いですが2人で自転車2台は無理かな。

ツインは売り切れで既に入室済みであったため写真は撮れず。





ラウンジも有りますが売店などが有るわけではありません。



唯一購入出来るのがドリンクの自販機ですが、Suicaは使えないのでご注意。





シャワー室もあり



1,000円のカードを買うことで利用できます。

高松港から小豆島フェリーで土庄港へ


無事、高松駅に到着!


今回の荷物は

  • birdy
  • TRANS MOBILLY
  • Fastpack 45(2人分の荷物)
  • 僕のウェストポーチ
  • 奥さんのリクセンカウル アレグラ

です。

僕が自転車を2台運ぶ時はFastpack 45を奥さんが背負います。




高松駅は首都圏ではまずお目にかかれないホームで、改札を出るまで段差が無くて楽です。



うどん駅の垂れ幕前で記念写真を撮ったら高松港へ向かいます。

高松駅から高松港は500m弱で平坦ですが、birdyとTRANS MOBILLY合わせて25kgほどを担いで歩くのは無理なので、一旦展開します。

僕は普段、20kgのバー + 80kgのウェイト、合わせて100kgのバーベルを背負ってスクワットをしていますが、それでもキツイです。


時刻表・運賃 高松~小豆島(土庄) – 小豆島へのお仕事・観光・レジャーは四国フェリーグループ・小豆島フェリーで/香川県高松市・姫路・岡山・宇野

高松から小豆島へ弥フェリーは、いくつか有りますが、一番本数が多いのが土庄港行きです。


アクセス | 小豆島観光協会【公式】
行き先毎に運行会社が異なるのですが、時刻表はこちらでまとめて確認出来ます。



フェリーに乗るには自動車と同じ場所か人専用のタラップかになりますが、荷物が多い場合はタラップはやめた方が良いです。幅が狭いしエレベーターも使えませんから。



この日は平日朝だったこともあって、フェリーは空いているので、手荷物として持ち込んだ自転車は席においても迷惑にはなりません。

輪行袋に入れて手荷物として持ち込む場合の手荷物料金は無料ですが、後で確認すると

  • 自転車 + 大人1人 1,360円
  • 大人1人 1,050円

だったので、輪行ではなく車両として運べば良かったです。




土庄港に到着!



土庄港にはシェアサイクルが有りました。


展開されているのは「HELLO CYILING」の電動アシストサイクルで、島内の主だったところにサイクリングステーションが有るし、1日1,500円です。

今回の場合、僕がbirdyを持ってくるのは良いとして、奥さんは宿泊した小豆島ベイリゾートホテル近くの京宝亭にあるステーションを使えば良かったかも(^_^;)

HELLO CYILINGは高松と小豆島で積極的に展開しているようです。残念ながら今のところ、しまなみ海道には有りませんが。


ともあれ、ホテルの送迎バスに自転車を詰め込んで、ホテルに向かいます。

続きはまた!

birdyの後輪折りたたみのコツ

こんにちは、なりなりです(^ ^)

birdy monocoque air プラチナシルバーを購入しました! - なりなり日記
birdyを購入して半年、何度も折りたたんでいるのですが、その時々で折りたたみがスムースに行く時とそうで無い時が有り、何が問題なのか分からずにいました。


ダメな時は後輪が何かにぶつかって完全に折りたためず、シートポストが下げられないのですが、何が起こっているのかようやく分かりました(^_^;)



ダメな時がこちら。

左側クランクが15時以降の位置になっていると写真の赤枠にスペースが無くてチェーンステーとクランクがぶつかってしまうんです。


折りたたむ前にクランクがこのくらいの位置に有ると



このようにクランクが14時かそれ以前の位置になって、ぶつかること無く後輪が完全に畳めます。

購入時に、折りたたむ時のクランクの位置は教えてもらっていたのですが、何のためなのか教えてくれなかったんですよね…


僕の場合は着脱式ペダルなので、クランクとチェーンステーさえぶつからなければ何も問題は有りませんが、そうでない場合は担いだ時にペダルが体にぶつからない位置を考える必要が有ります。

birdyの折りたたみで悩んでいる方はご参考に!

楽天ペイが5%還元キャンペーン中(〜7/1 9:59)

こんにちは、なりなりです(^ ^)

PayPayとLINE Payのキャンペーン合戦が一服しているところで、楽天ペイがキャンペーンを開始しています。



  • 期間 5/15 15:00 〜 7/1 9:59
  • ポイント 楽天カード支払いの場合4%ポイントアップ(楽天カードのポイント1%も付く)

ということです。

楽天カードユーザー限定キャンペーンですけど、僕はメインカードが楽天カードだし、楽天ペイも使っているので、当面は楽天ペイをメインで行きます。


但し、楽天ペイはあまり対応店が増えていない印象です。

というより、PayPayの営業攻勢が凄いです。

旅行で行った小豆島でもボチボチ使えました。

【Python入門】JupyterでのMatplotlibの日本語表示が上手くいかない時の対処方法

こんにちは、なりなりです(^ ^)

今日はWindows PCでJupyterを使う時の話です。

Matplotlibでの日本語表示については各所で語られているのですが、その通りにやってもうまくいかなかったりします。

ゼロからはじめるPython(3) JupyterでCSVファイルを視覚化してみよう | マイナビニュース
最近僕は「ゼロからはじめるPython」を参考にしてJupyterによるPythonの勉強をしていますが、書いてある通りだと駄目だったので、うまくいった方法を記しておきます。

使用環境は
・Windows 10(64bit)
・Jupyter Notebook
の組み合わせです。

%matplotlib inline
import matplotlib.pyplot as plt
plt.figure()
plt.xlabel("テストX")
plt.ylabel("テストY")
plt.title("テスト")

これを実行すると


この様にグラフの日本語が通称「豆腐」と呼ばれる「□」に文字化けしてしまいますので、まずは

IPAexフォントのダウンロード

ここから「IPAexゴシック」フォントをダウンロードします。

import matplotlib as mpl
mpl.__path__

これを実行すると、僕の場合は
"D:¥Users¥(user名)¥AppData¥Local¥Continuum¥anaconda3¥lib¥site-packages¥matplotlib"
が表示されました。これがMatplotlibがインストールされているフォルダです。

先ほどダウンロードしたフォントファイル"ipaexg.ttf"を
"D:¥Users¥(user名)¥AppData¥Local¥Continuum¥anaconda3¥lib¥site-packages¥matplotlib¥mpl-data¥fonts¥ttf"
にコピーします。

次に、"D:¥Users¥(user名)¥.matplotlib"にある"fontList.json"を削除してから、同じディレクトリで「右クリック→新規作成→テキスト ドキュメント」によってテキストファイルを生成し、
font.family : IPAexGothic
という1行を入力して、matplotlibrcという名前で保存します。

更に、Jupyterの上部のメニュー「Kernel→Restart」を実行します。



するとこの様に、先ほど豆腐だった部分が正しい日本語になったはずです。

僕の場合、「Kernel→Restart」と"fontList.json"削除の両方が必要でした。

モバイル変身自転車「iruka」をbirdy / BROMPTONと徹底比較!

こんにちは、なりなりです(^ ^)

東京の神宮前の株式会社イルカが開発した、irukaという新しい折りたためみ自転車を見つけました。

モバイル変身自転車「iruka」

iruka

モバイル変身自転車という変わった謳い文句ですが、

  • 折りたたみ可能
  • 完全に折りたたまない形態で押して歩ける

ということを指しているようです。



走行形態はとてもスタイリッシュで、流線型のフレームがイルカを連想させます。

中々かっこいいですね!



比較として、こちらbirdy monocoque air



こちらがBROMPTON S6L

スタイルはBROMPTONを更に洗練した感じです。



  1. ランモード(走行形態)
  2. ウェイトモード(駐輪形態、お座り)
  3. ウォークモード(押し歩き形態)
  4. スリープモード(収納形態)

の4モードに変形しますが、これはBROMPTONと同じ。

変型形態としては、後輪をクルッと180度回すのはbirdyやBROMPTONでお馴染み、フレームを折らずに前輪も回すのはbirdyと同じです。

irukaは片持ちフロントフォークなので、birdyと全く同じではありませんけど。

お座り比較


こちらiruka


僕のbirdy monocoque airです。
あまり知られていませんが、birdy monocoqueもリアキャリアを付けていればお座りします。



ミズタニ自転車の「with BROMPTON」より

BROMPTONのお座りは定番です。

収納形態比較


こちらiruka

高さが低い秘訣の一つは、シートポストが2段になっていることの様です。折りたたみや展開が面倒とも言いますが。



キャリア無しのbirdy monocoque air



BROMPTONのコンパクトさが分かりますね。


折りたたみ時のサイズ、容量(直方体として計算)と重さをbirdy monocoque air、BROMPTON S6Lと比較すると

車種 サイズ 容量 重さ
birdy W72 x H60 x D34cm 146L 9.87kg
BROMPTON W59 x H58 x D27 92.4L 11.5kg
iruka W78 x H48 x D35cm 131.0L 11.9kg


となっています。

サイズ的にはbirdyとBROMPTONの中間であり、BROMPTONの小ささが際立ちます。

重さはbirdyが2kg軽く、irukaとBROMPTONはほぼ同じ。


irukaのいくつかの特徴を個別に見てみると

片持ちフロントフォーク




片持ちは折りたたみ時のコンパクト化が目的なのでしょうが、D35cmはBROMPTONのD27cmには遠く及ばず、birdyのD34cmにも届きません。

リアキャリア

birdy monocoqueやBROMPTONの標準キャリアと比較すると、この方式は不格好ですね。もう少し考えた方が良かったのでは。

トレーラー

純正のリアトレーラーは珍しいですが、日本の道路事情を考えると利用シーンが多いとは思えません。

内装8段変更


変速機はシマノAlfine 8Sとのことです。


ALFINE(アルフィーネ)特集! - サガミサイクルセンター〈webショッピング・通販〉神奈川県横浜市の自転車総合専門店

ギア比はこちらに掲載されていました。

1速 0.527
2速 0.644
3速 0.748
4速 0.851
5速 1
6速 1.223
7速 1.419
8速 1.615


となっており、

  • タイヤはmonocoque airと同じSCHWALBE Kojak 18 x 1.25(周長1.325m)
  • フロント 56T
  • リア 18T

と合わせて、birdy、BROMPTON(標準の50Tと44TをBRO50、BRO44と略記)と一漕ぎ距離を比較すると

birdy BRO50 BRO44 iruka
- 7.98 - -
- - 6.86 6.66
6.26 6.49 - -
5.74 - 5.58 5.85
4.92 5.09 - 5.04
4.31 4.14 4.40 4.12
3.83 - - -
3.28 3.25 3.58 3.51
2.87 - 3.05 3.08
2.46 2.64 - 2.65
2.15 - 2.29 2.14

BROMPTON 44T相当のワイドレンジで、birdyを上回る登坂力と高速走行が可能なことが分かります。

但し、漕ぎながら変速できない内装変速機なので峠を走るのは厳しいです。長い上りの途中でキツくなったら一旦停止、シフトチェンジしてから再スタートという繰り返しになります。

BROMPTONでも内装3段 x 外装2段であるため、上りの最中でも2段は切り替えられますから、irukaより上です。

BROMPTON同様にフロントチェーリング以外はカスタマイズは難しそうです。

まとめ

  • ワイドレンジとはいえ内装変速機のため走行性能重視とは言えない
  • 折りたたみ時はbirdy並みとまずまずコンパクトだがBROMPTONには劣る
  • 特別軽くも無い

ということで、パッと見のインパクトはあるものの、残念ながら中途半端な印象です。


折りたたみ自転車の評価尺度は

  • 折りたたみ時の大きさ
  • 重さ
  • 走行性能
  • カッコよさ
  • 価格

などがあり、これらのバランスの良さや、いずれかが突出していることで自転車の個性が決まります。

  • 走りとカスタマイズ性のbirdy
  • 圧倒的な積載性と収納性のBROMPTON
  • コスパの良さのDAHON

の御三家に加えて

  • DAHONジュニアのtern
  • 走りを追求したKHS
  • 個性派Tartaruga
  • 走りの国産Tyrell

と個性派揃いの折りたたみ自転車業界の中で、価格も20万円を越えるirukaを敢えて選ぶ理由が僕には見つかりませんでした。

国産では走りに振ったTylellが有るので、折りたたみ時のコンパクトさでBROMPTON越えを期待したいところです。

大変でしょうけど。


あと、オプションで差を付けるとしたら、輪行バッグだと思います。

BROMPTONのキャスター付き純正輪行バッグ「軽がーる」は圧倒的な運びやすさがありますが、あれに匹敵するものを考えたい。

折りたたみ時の高さ48cmは突出していますから、これを活かして縦にした状態でバックパックタイプの輪行バッグを作るとか。

これが走行時にはサドルに引っ掛けておけるなど出来れば魅力アップ出来るのでは?

せっかくの特徴なので、一工夫して際立たせたいところでしょう。

一部訂正

SG-S7001-8
コメントでご指摘頂いたので、シマノのサイトで確認したところ、確かに

アシスト駆動による高負荷時でもスムーズな変速性能を発揮

この様に書かれているので、登坂中でも変速出来るようです。

これは良いですね。

BROMPTONにも採用して欲しいです。

【Python入門】iPadでブラウザをコントロールする

こんにちは、なりなりです(^ ^)

今日はiPad(iPhoneも同様ですが)でブラウザをコントロールしてみます。

Chromeをコントロール

ゼロからはじめるPython(49) Pythonでブラウザ自動操縦してカード明細を自動でダウンロードしよう(その1) | マイナビニュース
最近お気に入りのマイナビ「ゼロからはじめるPython」で、PythonでChromeをコントロールする記事がアップされていました。

pip install selenium

でseleniumモジュールをインストールして

pip install chromedriver-binary

でChromeドラーバーモジュールをインストールします。
これによって、chromedriver.exe(macOSでは、chromedriver)という実行ファイルがダウンロードされるということからして、iOSでは使えないっぽいことがわかります。

会社のPCでやってみて、これは便利だなと思ったのですけど。


Downloads - ChromeDriver - WebDriver for Chrome
chromedriverのサイトを見ても、Linux、mac、Windowsしか対応していないことが分かります。



Junoにもインストールは出来てしまうのですが、実行はできません。

Junoで標準ブラウザをコントロールする

webbrowser --- 便利なウェブブラウザコントローラー — Python 3.7.3 ドキュメント
実はPythonには標準ブラウザをコントロールするwebbrowserモジュールが標準で入っているのですが、

import webbrowser as wb
url = 'https://www.narinarissu.net/'
wb.open_new(url)

を実行しても


Trueが帰ってくるだけでSafariは起動しません。



iPhoneでも続きが出来るのは大きな利点ですけど。

pythonista3で標準ブラウザをコントロールする


同じことをPythonista 3ですると、ちゃんとブラウザが開きました。

やはり、JunoはiOSに依存する部分を制御するのは苦手で、Pythonista 3の出番なようです。

【Python入門】Juno for Jupyterで使えるモジュール一覧

こんにちは、なりなりです(^ ^)

Juno for Jupyter

Juno for Jupyter

  • Rational Matter
  • 仕事効率化
  • 無料

iPhone、iPadでの最高のPython開発環境、Juno for Jupyterで利用できるモジュールを確認してみました。

!python -c "help('modules')"

Junoのセル内でこのコマンドを実行して待つこと1分以上

Crypto              builtins            keras_applications  qtawesome
Cython              bz2                 keras_preprocessing qtconsole
Dora                bz2file             kernprof            qtpy
IPython             cProfile            keyring             queue
Kqlmagic            cachecontrol        keyword             quopri
OpenSSL             calendar            kiwisolver          random
PIL                 certifi             klein               re
PyQt5               cffi                knack               readline
__future__          cgi                 lancet              reprlib
_ast                cgitb               lazy_object_proxy   requests
_ast27              chardet             lib2to3             requests_oauthlib
_ast3               chart_studio        libarchive          resource
_asyncio            chunk               libfuturize         retrying
_bisect             click               libpasteurize       rlcompleter
_blake2             client              lightgbm            rmagic
_bootlocale         cloudpickle         line_profiler       rope
_bz2                clyent              line_profiler_py35  rpy2
_cffi_backend       cmath               linecache           rsrc
_cntk_py            cmd                 llvmlite            ruamel_yaml
_codecs             cntk                locale              runpy
_codecs_cn          code                locket              s3transfer
_codecs_hk          codecs              lockfile            samples
_codecs_iso2022     codeop              logging             sched
_codecs_jp          collections         luigi               scikitonx
_codecs_kr          colorama            lxml                scipy
_codecs_tw          colorsys            lzma                scripts
_collections        compileall          macpath             scrubadub
_collections_abc    concurrent          macurl2path         seaborn
_compat_pickle      conda               mailbox             secrets
_compression        conda_build         mailcap             secretstorage
_crypt              conda_env           markdown            select
_csv                configparser        markupsafe          selectors
_ctypes             constantly          marshal             send2trash
_ctypes_test        contextlib          math                service_identity
_curses             contextlib2         matplotlib          setuptools
_curses_panel       copy                mccabe              shap
_datetime           copyreg             memory_profiler     shelve
_decimal            coverage            mimetypes           shlex
_dummy_thread       coveralls           mistune             shutil
_elementtree        crypt               mkl                 signal
_functools          cryptography        mkl_fft             simplegeneric
_hashlib            csv                 mkl_random          singledispatch
_heapq              ctypes              mmap                singledispatch_helpers
_imp                curl                mock                sip
_io                 curses              modulefinder        sipconfig
_json               cycler              more_itertools      sipdistutils
_line_profiler      cython              mpmath              site
_locale             cythonmagic         mprof               six
_lsprof             cytoolz             msgpack             skbio
_lzma               daemon              msrest              skimage
_markupbase         dask                msrestazure         skl2onnx
_md5                datacleaner         multimethods        sklearn
_mssql              datascience         multipledispatch    sklearn_pandas
_multibytecodec     datashape           multiprocessing     smart_open
_multiprocessing    datetime            nacl                smtpd
_opcode             dateutil            natsort             smtplib
_operator           dbm                 navigator_updater   snakeviz
_osx_support        decimal             nbconvert           sndhdr
_pickle             decorator           nbformat            snowballstemmer
_plotly_future_     defusedxml          ndg                 socket
_plotly_utils       deprecated          netrc               socketserver
_posixsubprocess    difflib             networkx            socks
_pydecimal          dill                nimbusml            sockshandler
_pyio               dis                 nis                 sortedcollections
_pytest             distributed         nltk                sortedcontainers
_random             distro              nntplib             sphinx
_rinterface_cffi    distutils           nose                sphinxcontrib
_ruamel_yaml        doc                 notebook            spwd
_sha1               docker              ntpath              spyder
_sha256             dockerpycreds       nturl2path          spyder_breakpoints
_sha3               docopt              numba               spyder_io_dcm
_sha512             docs                numbergen           spyder_io_hdf5
_signal             doctest             numbers             spyder_kernels
_sitebuiltins       docutils            numexpr             spyder_profiler
_socket             dot_parser          numpy               spyder_pylint
_sqlite3            dotnetcore2         numpydoc            sqlalchemy
_sre                dummy_threading     oauthlib            sqlite3
_ssl                easy_install        odo                 sre_compile
_stat               easyconfig          ogr                 sre_constants
_string             edward              olefile             sre_parse
_strptime           elasticsearch       onnx                ssl
_struct             email               onnxconverter_common stat
_symtable           encodings           onnxmltools         statistics
_sysconfigdata_i686_conda_cos6_linux_gnu ensurepip           onnxruntime         statsmodels
_sysconfigdata_m_linux_x86_64-linux-gnu entrypoints         opcode              storemagic
_sysconfigdata_powerpc64le_conda_cos7_linux_gnu enum                openpyxl            string
_sysconfigdata_x86_64_apple_darwin13_4_0 errno               operator            stringprep
_sysconfigdata_x86_64_conda_cos6_linux_gnu et_xmlfile          optparse            struct
_testbuffer         fastcache           os                  subprocess
_testcapi           faulthandler        osgeo               sunau
_testimportmultiple fcntl               osr                 symbol
_testmultiphase     feedparser          ossaudiodev         sympy
_thread             filecmp             packaging           sympyprinting
_threading_local    fileinput           pandas              symtable
_tkinter            filelock            pandasql            sys
_tracemalloc        flask               pandocfilters       sysconfig
_warnings           flask_cors          param               syslog
_weakref            fnmatch             paramiko            tables
_weakrefset         folium              parser              tabnanny
_yaml               formatter           parso               tabulate
abc                 fractions           partd               tarfile
absl                ftfy                past                tblib
adal                ftplib              path                telnetlib
aifc                functools           pathlib             tempfile
alabaster           future              pathlib2            tensorboard
altair              gast                pathspec            tensorflow
anaconda_navigator  gc                  patsy               termcolor
anaconda_project    gdal                pbr                 terminado
antigravity         gdalconst           pdb                 termios
antlr4              gdalnumeric         pep8                test
appdirs             genericpath         pexpect             test_path
applicationinsights gensim              phonenumbers        test_pycosat
argcomplete         getopt              pickle              testpath
argparse            getpass             pickleshare         tests
array               gettext             pickletools         textblob
arrow               gevent              pip                 textwrap
asn1crypto          ggplot              pipes               tf2onnx
ast                 github              pkg_resources       theano
astor               glob                pkginfo             this
astroid             glob2               pkgutil             threading
astropy             gmpy2               platform            time
asynchat            gnm                 plistlib            timeit
asyncio             graphviz            plotly              tkinter
asyncore            greenlet            plotlywidget        tlz
atexit              gridfs              pluggy              token
atomicwrites        grp                 ply                 tokenize
attr                grpc                poplib              toolz
audioop             gym                 portalocker         torch
automat             gzip                posix               torchvision
automl              h5py                posixpath           tornado
autoreload          hamcrest            pprint              tqdm
azure               hashlib             prettypandas        trace
azureml             hdmedians           prettytable         traceback
babel               heapdict            profile             tracemalloc
backcall            heapq               prometheus_client   traitlets
backports           hmac                prompt_toolkit      traittypes
base64              holoviews           pstats              treq
bcrypt              html                psutil              tty
bdb                 html5lib            psycopg2            turtle
beautifier          http                pty                 turtledemo
benchmarks          humanfriendly       ptyprocess          twisted
bin                 hyperlink           pwd                 typed_ast
binascii            idlelib             py                  types
binhex              idna                py4j                typing
binstar_client      imageio             py_compile          typing_extensions
bisect              imagesize           pyang               unicodecsv
bitarray            imaplib             pyarrow             unicodedata
bkcharts            imghdr              pyasn1              unittest
blaze               imp                 pyasn1_modules      update_checker
bleach              importlib           pyclbr              update_checker_test
bokeh               incremental         pycodestyle         urllib
boto                inspect             pycosat             urllib3
boto3               io                  pycparser           uu
botocore            ipaddress           pycurl              uuid
bottleneck          ipykernel           pydoc               venv
bqplot              ipykernel_launcher  pydoc_data          warnings
brain_attrs         ipython_genutils    pydot               wave
brain_builtin_inference ipywidgets          pyexpat             wcwidth
brain_collections   isodate             pyflakes            weakref
brain_curses        isort               pyglet              webbrowser
brain_dateutil      isympy              pygments            webencodings
brain_fstrings      itertools           pykafka             websocket
brain_functools     itsdangerous        pylab               werkzeug
brain_gi            jdcal               pylint              wget
brain_hashlib       jedi                pymc                wheel
brain_io            jeepney             pymc3               widgetsnbextension
brain_mechanize     jinja2              pymongo             word2vec
brain_multiprocessing jmespath            pympler             wrapt
brain_namedtuple_enum joblib              pymssql             wsgiref
brain_nose          json                pymysql             xdrlib
brain_numpy         jsonform            pyodbc              xlrd
brain_pkg_resources jsonpickle          pypachy             xlsxwriter
brain_pytest        jsonschema          pyparsing           xlwt
brain_qt            jsonsir             pyprof2calltree     xml
brain_random        jupyter             pyspark             xmlrpc
brain_re            jupyter_client      pytest              xxlimited
brain_six           jupyter_console     pytest_arraydiff    xxsubtype
brain_ssl           jupyter_core        pytest_doctestplus  yaml
brain_subprocess    jupyterlab          pytest_openfiles    zict
brain_threading     jupyterlab_launcher pytest_remotedata   zipapp
brain_typing        jwt                 pytz                zipfile
brain_uuid          kafka               pyviz_comms         zipimport
brewer2mpl          kazoo               pywrapfst           zlib
bs4                 keras               pywt                zmq
bson                keras2onnx          pyximport           zope

随分時間がかかるなと思ったら、鬼の様に出てきました!

これは、無いモジュールを探す方が大変そう。

或いは、購入前に「Try Jupyter」でimportしてみて確認すると良いかもしれません。


万が一必要なモジュールがインストールされていなければ、普通のJupyter同様に

!pip install module名

!pipコマンドを使えばインストール出来ます。

やっぱ最強です!


ちなみに、

import BeautifulSoup

とするとモジュールが無いというメッセージが出たので

!pip install BeautifulSoup4

としてみたところ、インストール済みとのメッセージが!

どういうことかと思ったら、モジュール名はbs4という落ちでした。

【Phthon入門】iPadとJuno for Jupyterと気象庁の気象データを使って旅行日程を決める

こんにちは、なりなりです(^ ^)

PCより手軽で起動が早いiPadとキーボードの組み合わせは、こうしてブログを書いていても快適で、やはり最高です!

家ではiPhoneを使う頻度が大きく下がりましたし、電車で遠出する時はiPadを持って出かけることも増えそうです。

iPadでのPythonプログラミング

【Python入門】Pythonista 3の機能を拡張するStaShをインストールしてみたけど… - なりなり日記

【Python入門】GoogleのクラウドPython開発環境ColaboratoryはiPadでは使いにくい - なりなり日記

【Python入門】Juno for Jupyterを使ってiPadでPythonプログラミング - なりなり日記

Pythonでのプログラミングに関しても、紆余曲折の末

Juno for Jupyter

Juno for Jupyter

  • Rational Matter
  • 仕事効率化
  • 無料
Junoを使えばPCと同様にJupyterでのプログラミングが快適に出来ることが分かりました。


【連載】ゼロからはじめるPython | マイナビニュース
Pythonプログラミング入門としては、こちら、マイナビの「ゼロからはじめるPython」がとてもいいので、今回はこちらの記事を参考にして作業を進めます。


ゼロからはじめるPython(12) 過去の気象情報をもとに運動会の開催日を選んでみよう(その1) - 気象データの入手と簡単な統計 | マイナビニュース
僕が「おお!」と思ったのがこちら。Pythonで気象庁の気象情報を使って運動会の日を決めようという記事です。

僕らの様に自転車旅行を計画する場合などは天気は特に重要なので、それをプログラミングによって決めようなんて考えたことも有りませんでした。

気象データをダウンロード

気象庁|過去の気象データ・ダウンロード

まず、こちら気象庁の気象データをダウンロードします。今回は、既に決まっている5月の高松、小豆島旅行の日程が、気象データ的にどうなのか確認します。

本当は日程を決める前に試したかったですけど(^^;;


今回は

  • 地点: 香川県 >
  • 項目1つ目: 降水 > 降水量の日合計
  • 項目2つ目: 雲量/天気 > 天気概況(昼: 06-18時)
  • 期間: 5月1日から5月31日まで、1998年から2018年まで

自転車で走るのは主に小豆島なので、本当は内海の情報が欲しかったのですが、確認したところ天気概況が空欄だったので高松にしました。

Numbersでデータ加工


CSVをダウンロードしてみると



文字化けしてしまうのですが、Numbersにコピーすると



正しく表示されます。



Numbersで編集して必要な降水量と天気概要の列だけを残してDropboxにCSV形式で保存すると



文字化けが無くなりました。
恐らく気象庁のデータはSJISなのですが、Numbersで読み込んで保存するとUnicodeに変換してくれるのでしょう。

PythonのPandasではShift JISも扱えるので、Unicode変換は必要無いはずですけど。

JunoでPandasを使って解析



ファイルをアップロードしてPandasで表示してみました。

import pandas as pd
import re

df = pd.read_csv("data2.csv")

sumd ={}
for row in df.iterrows():
    ymd = row[1]["年月日"]
    kousui = row[1]["降水量の合計"]
    md = re.sub(r'\d{4}\/', '', ymd)
    if not (md in sumd): sumd[md] = 0
    sumd[md] += kousui
result = sorted(sumd.items(), key=lambda n: n[1])
top30 = result[0:30]
pd.DataFrame(top30, columns=['日付', '降水量'])

日付ごとの降水量を集計するプログラムがこちら。プログラムの説明は「ゼロからはじめるPython」にも記載されています。

但し、現状のJunoでは日本語入力が出来ずコピペしました。

App Storeのレビューにもありますが、近いうちに対応版がリリースされるとのこと。日本語入力未対応が現状のJunoの最大の欠点かも。

解析結果


実行結果がこちらです。Python自体は日本語対応しているので、実行には支障がありません。


因みに、僕ら夫婦はGWを避けて来週2連休を取り、5/15東京発のサンライズ瀬戸で高松に行って、16、17、18と高松、小豆島を自転車旅行するのですが、

  • 16日 :29位
  • 17日 :16位
  • 18日 :6位

という結果で有り、うーん、統計的にはあまり良くないですね…
後は神に祈ります…

但し、今週末でも

  • 9日:9位
  • 10日:27位
  • 11日:24位

なので、これよりましか…

翌週なら

  • 23日:30位
  • 24日:28位
  • 25日:15位

これは最悪。梅雨が近いですからね。

結局、5月なら天気的にはGWが良いという結論ですか。
でも、GW中の宿は高いし激混みだし、サンライズなんて取れないしな。


以上、iPadとJunoを使った簡単なデータ解析のご紹介でした。