yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

LINEはなぜ救いようがなく糞なのか

概要

LINEは話題を分ける文化が形成されず、通知量が爆発してしまうという設計バグがある。したがって我々はSlackないしDiscordを利用するべきである。

先行研究

セキュリティ的にガバガバという指摘がなされている(記事は2016年02月24日だけどそこから治ったという話を聞かない)

blog.livedoor.jp

問題事例

親戚の間で私のじいちゃんばあちゃんがなんか会った時のための緊急連絡用のグループがある。まあそこまではいい。

ところが緊急連絡以外の話題も「和みがあってもいいよね」なる謎理論で持ち込まれるようになった。

そして通知がうるさいから22:00-7:00まで緊急時以外投稿しないというworkaroundが出てきて運用している。

原因

人間集まれば話が脱線しいろいろ話をしたくなるものである。

LINEのグループも人が集まっていると捉えることができる。

ところがLINEのグループには話題を分ける手段が提供されていない。

さらに時間帯を指定して通知を切る方法もない。

つまり通知のON/OFFがグループ単位で、しかも時間指定がないので手動でしかできないため、話が脱線することを許容すると通知量が爆発していまい、かつそれを制御する方法がない。

LINEに限った解決策

話題ごとにLINEのグループを分けるという方法があるが、通常数多くのグループに所属しており、同じメンバーの別のグループを捜索するコストが高い。

またそもそも新しくグループを作るコストも馬鹿にできない。作ったグループは管理が必要だが(メンバーの追加/削除)そのコストも増大してしまう。

しかも時間帯を指定してグループごとに通知を切るのが結局全ユーザーの手動で行う必要がある。

人間面倒くさいことは長続きしない。

Slackでの解決策

Slackは主にプログラマーに人気の会話ツールだ。

プログラミングができる人には極めて高い拡張性を持ったSNSで、プログラミング?なにそれおいしいの?という人にもすでにある公開された拡張機能を使うことで大体の場合うまく行く。しかも拡張機能の導入方法は管理者だけが知っていればよく、ただ使うだけの人は何も知らなくていい。

channel

話題を分ける手段としてSlackならチャンネルがある。

チャンネルとは、LINEのグループの中に複数の会話する場所があると考えればよい。

また、チャンネルごとに通知を
受け取る/メンションされた(@のあとにユーザー名を書くとメンションが飛ぶ)/受け取らない
が設定できる。

Do Not Disturb

Do Not Disturbを設定すれば

23:00-7:00まで緊急時以外投稿しないというworkaroundが出てきて運用している。

のようなworkaroundはいらない。

こいつは時間帯を指定して予め通知を受け取らない時間帯を設定できる。

Discordでの解決策

主にゲームやプログラミングをする人に人気のSNSだ。SkypeというSNSを置き換えることを狙っている。Slackと違ってビデオ通話もできる。

channel

Slackと同様にchannelがある。

また、チャンネルごとに通知を
受け取る/メンションされた(@のあとにユーザー名を書くとメンションが飛ぶ) が設定できる

オンライン状態

Discordではオンライン状態というSkype由来の機能がある。

オンライン/退席中/起こさないで/オンライン状態を隠す

という4つの状態があり、これらは一定時間何もしなかったりするとなんかいい感じに自動検出して切り替わる(手動でも制御できるが)。「起こさないで」はDo Not Disturbの日本語訳だ。

これは通知の制御以外にLINEにある既読機能の置き換えでもある。

LINEの既読とはつまるところ誰が今居るのかを知るためのものではないだろうか?既読数という曖昧な情報しか得られないLINEと違い具体的に誰が居るか一目瞭然だ。

まとめ

LINEは優れたツールとは言えずむしろ無視できない欠点があるといえる。ツールの欠点に起因して運用でいろいろカバーするのは非常にめんdで健全ではない。

今一度LINEを利用している人はそれが妥当か検証するべきではないか。

陣馬山方面和田峠にママチャリで挑んできた

近年のママチャリの利用

近年ママチャリと言って思い出すのは何と言ってもコミケママチャリの人に違いない。

愛知県からコミケの行われる東京まで東海道周りでママチャリで走破するという偉業を成し遂げた。

その様子はねとらぼがまとめている。

nlab.itmedia.co.jp

nlab.itmedia.co.jp

実際これに触発されて、友人と「山越えして甲府盆地に、さらに諏訪大社までチャリでいくか」みたいな話をしていたが(東京都民です)、まあ予定が合わず流れていた。

東京から甲府盆地に入るには大体

  1. 大垂水峠(高尾山南)を抜ける
  2. 陣馬街道を抜ける(和田峠)
  3. 青梅から奥多摩へ、そこから丹波山村を通って柳沢峠を抜ける

さらに大垂水峠和田峠の場合は

  1. 笹子トンネルを抜ける
  2. 富士五湖を経由して大石峠や御坂山を抜ける

というルートが有るんだななんてことをその会話の中で調べていた。

ゆるキャン△

今季の冬アニメにゆるキャン△というのがある。

yurucamp.jp

富士山の近くが舞台で、キャンプ場でのリクリエーションや野外調理などといったアウトドア趣味の魅力と、それを身の丈に合った範囲で満喫する女子高校生たちのゆるやかな日常を描く作品だ。

公益社団法人のやまなし観光推進機構のゆるキャンの特集ページのクオリティが高すぎること、

www.yamanashi-kankou.jp

ネットスラング「くぁwせdrftgyふじこlp」を全力で発音したことや、

nlab.itmedia.co.jp

コッヘルでパスタを調理するためにパスタを2つ折りにしたことについて海外の掲示4chanで議論沸騰したこと

www.all-nationz.com

オープニングでテントが宇宙空間を飛ぶこと、同じくテントが等積変形することで注目を集めている。

登場人物の一人に「一人キャンプ=ソロキャン」が趣味の女子高生、志摩リンがいる。
アニメ第一話の序盤にミニベロ(小怪自転車)で山梨県の県道300号中ノ倉峠を彼女が超えるシーンがある。

img

まあ早い話、ゆるキャン△をみて、特にその中ノ倉峠を超えるシーンを見て、アウトドア欲というか峠越え欲が高まった

峠に挑みたい

というわけで火曜日(2/6)あたりに唐突に峠に挑みたい欲が出たので、現実的な手段を探ることにした。

東京都で峠と言ったら、そもそも山地が東京都の西に集中しているので、必然的に神奈川・山梨方面への峠越えルートしかない。つまり

  1. 大垂水峠(高尾山南)を抜ける
  2. 陣馬街道を抜ける(和田峠)
  3. 青梅から奥多摩へ、そこから丹波山村を通って柳沢峠を抜ける

これだ。

奥多摩は一度親と車でキャンプに行って腐ったお茶を飲んでお腹を壊して死ぬ気で柳沢峠を抜けた記憶が蘇ったのと、そもそもチャリで行くには遠すぎるので却下だ。

残る選択肢は大垂水峠和田峠だ。ここで私は以前親と一緒に高尾山から陣馬山までの縦走をしたことがある。和田峠から陣馬山までは上り30分、下り20分くらいなので、運が良ければ和田峠から陣馬山まで足を伸ばせる。

よし、和田峠に行こう。

ggrbilityが低すぎないだろうか、和田峠

行くと決めたからには当然情報を収集する。何も調べないで山だの峠だの行くのは自殺しに行くようなものだ。

ところが、どうも和田峠、2つあるらしい。

小諸市から八ヶ岳ゆるキャン△にも出てきた高ボッチ高原の間を抜け、下諏訪に至るる中山道(国道142号)の最大の難所も和田峠と言うらしい。

検索可能性(ggrbility)が低すぎやしないだろうか?

今回行くのは東京都から神奈川県に抜けるほう、山梨県道・神奈川県道・東京都道521号だ。521号って多分いちばん大きい数字なんじゃないか?[要出典]

仮にも都道だけあって、舗装はきれいでよく整備されているらしい。

とりあえず先行事例は見つけた。

web.archive.org

天候

関東地方では1/22から1/23にかけて、そしてその雪が溶け切らない間に2/1から2/2にかけて大雪となった。

weathernews.jp

weathernews.jp

肝心の和田峠はというと

まず1/22に通行止めになり

twitter.com

1/29に解除されるも

twitter.com

2/2に再び通行止めになり

twitter.com

2/5に解除された

twitter.com

つまり、通行止め解除からわずか3日後の挑戦となる。

まあ流石にガチガチに凍ってるんだろうなぁと思って、峠制覇にはこだわらず、凍ってたら引き返す方針にした。

装備

基本装備

ママチャリ

普段通学に使っている6段階変速で昔ながらのタイヤにこすりつけて回して発電するタイプのライト付きのありきたりな自転車だ

服装
  • スキーウェア(上): 軽さとポケットの使いやすさ、遮風性、防寒性能に優れる。フード付きでしっかりフィットするから耳あてもいらない。冬の峠越え装備に最適[要出典]
  • スボン: 青森県某所にあるジャスコで購入した気がする。裏がフリースになっていて温かい。
  • セーター: ありきたりなセーター。どのくらい寒いかわからないけど空気層として防寒に有効だってばっちゃが言ってた
  • タートルネック: 首が冷えないようにね。
  • ヒートテックのアンダーシャツ: 安定と信頼の
  • 厚手の靴下: せっかくモンベルで暖かい靴下を買ったのに前日にうっかり履いてしまったのでそのへんで売ってた厚手の靴下。
  • パンツ: この解説は必要か?
その他装備
  • 登山用杖: 運良く陣馬山まで行けそうになったら使えるかもしれない
  • レスキューシート: 天候の急変で身動きが取れなくなった時に気休めに
  • デジカメ(Panasonic TZ-60): 写真撮影とGPS記録に
  • ハンドタオル: 汗拭いたり温泉での手ぬぐいに
  • 懐中電灯(LED): いざという時の光源
  • WiMAX2+ルーター: 休憩時のインターネット回線確保に
  • iPod touch: 休憩時のネットブラウジング用とか
  • 携帯電話(au): 緊急通信用

バスタオルを持って行き忘れた。

飲食物
  • 鮭おにぎり x 1: セブンイレブンの安いやつ
  • ウィダーinゼリー エネルギー x 2: 安定と信頼の
  • アクエリアス500 ml x 1
  • 水500 ml x 1
  • 家で沸かした温かいお茶400 mlくらい: 魔法瓶に入れていったけど、ちょっと冷ましすぎたみたいでぬるかった

ルート

国立駅から谷保駅に抜けて、谷保天満宮へ、旧国道20号をすこし東に走って日野バイパスへ。そのまま八王子まで行き、陣馬街道へ。あとはひたすら陣馬街道を駆け抜ける。

続きを読む

ものすごく雑にlibstdc++のvectorの実装でcapacity決めているところを追う

std::vectorメンバ関数push_back/emplace_backなどを使っているときにlibstdc++の実装だとcapacityが倍づつ増えていくのですが、それがソースコードのどこに該当するか調べました。

C++ の string と vector の reserve() の挙動 - bkブログ 2009年のこの記事によれば

その代わり、「指数的な成長ポリシー」は _M_insert_aux() の中で実装されています。

のこと。ただ、その後C++11やらC++14やらが来るうちに実装もちょっと変わって、_M_check_lenというのが担当するようになったようです。

      // Called by _M_fill_insert, _M_insert_aux etc.
      size_type
      _M_check_len(size_type __n, const char* __s) const
      {
        if (max_size() - size() < __n)
          __throw_length_error(__N(__s));
        const size_type __len = size() + std::max(size(), __n);
        return (__len < size() || __len > max_size()) ? max_size() : __len;
}

相変わらずlibstdc++のソースコードのインデントはこの世のものとは思えない汚さだ。実装している連中の脳みそはどうなってやがるんだ・・・。

アロケータ絡みでチェックコードが入ってますが要はsize() + std::max(size(), __n)この部分が倍々ゲームを担当しているようです。

これがどこから呼び出されているかをオーバーロードとか無視して雑に調べて図にしました。

img