Macbook Proで外付けHD使用時に発生していた無線LAN接続障害が解決した

問題の概要

MacBookProにBUFFALO製の外付けHDD

を取り付けたところ、wifi接続が切れてしまった。HDを接続した瞬間に通信が停止してしまう。
症状からHDDの動作ノイズがwifiと干渉を起こしているのではないかと思われた。解決策としてwifiの利用帯域を2.4 GHz帯から5 GHz帯へ切り替えることが考えられるが、使用していたLogitecのwifiルータにはそのような機能がなかった。

解決法

wifiルータを買い換えた。
www.aterm.jp
結果として非常に快適になった。不思議なことに、このルータを使用するとIEEE802.11g(2.4 GHz)でもHDDとwifiが両立した。電波強度的なあれだろうか。不思議ですね。

AtCoder AGC 34A

atcoder.jp

ハマったのでメモ。
ハマりの理由はlower_boundの戻り値に関する誤解だった。

cpprefjp.github.io

lower_boundは指定した値「以上」の値を表す最初のイテレータを返す。「以上」でなく「より大きい」だと思っていたためハマった。
色々試しているうちに思いがけずテストケースが不十分ではないだろうか?と思い始めた。"Yes"を出力しなくてはならないケースにおいて"No"を出力する「ニセ解法」プログラムにも関わらず、ACが出てしまう場合がある気がする。例えば "AC##BD"のようにA-CとB-Dが厚い壁で分離されている場合、"##"がA-D間にあるか否かで遷移の可否を判断すると誤った解答を出力してしまうが、上のジャッジではそのようなケースがないらしくACが出る。もうすでに指摘済みなんだろうか。

Codeforces Round #576 div 2

Cでハマった。

Problem - C - Codeforces

問題を誤読したこともあり、以下のようにたくさんミスをした。

1. 問題を誤読。1音あたり、連続する8 * I / nに収まる強度領域(intensity)を答えるものと思ってしまった。v[r] - v[l]を使って尺取り法をしてしまった。
2. また誤読し、連続しない強度を全て含めてしまった。つまりv[n]に頻度を収納してsortしてしまっていた。
3. 正しくr-lを使って尺取り法をした。しかし自前で定義した指数関数でオーバーフロー。
4. 1 << 8 * I / nとするもオーバーフロー。1llとしてようやく回避。

こういうの慣れるとマシになるんだろうか。

修行

最近あまりプログラミングに取り組めていない。
少しずつでも身に付けたいので、少しずつ練習問題をやっていこうと思う。

今日は「プロコンのためのアルゴリズムとデータ構造」の8-2、木構造についての練習問題をやった。
pythonと比べるとやはりc++は間違えてしまいがち。コーナーケースとか。修行が必要。

ラズパイの起動ディスクを修復できない

Raspberry Piが起動しなくなった。症状は複合的で、切り分けもできていない。リモートで運用していたのだけど、

  • reboot後にsshできなくなる
  • 何度か電源ブチ切り&再起動すると復活したりする
  • sudo コマンド打つとPAMが初期化できないなどと出て実行できない(なのでrebootできなくなる)

などの症状が出てきて、もしやカーネルが壊れているのではないかと思った。調べてみるとfsckファイルシステムの整合性を確認でき、それをやってみるという手順があるということなので、いっちょこれを試してみようと思い立った。
macOSbashにもfsckが入っているので、これが使えるのかとも思ったのだがext4を読めるのかというのがわからないため結局linuxを準備することにした。Windows Subsystems for Linuxが使えるのではと思いwindowsUbuntuを導入したが、ラズパイの起動ディスクを接続した際、windowsがディスクをマウントしてしまい、うまくいかなかった。きっと何かやり方があるのだと思うが。結局VMwareをインストールし、Ubuntu仮想マシンを準備。
一応ディスクは認識されているのだが、パーテションに対してfsckを実行すると、ディスクが読み取り専用となっているため実行できないというようなメッセージが出てしまい失敗。chmodも試したがそういう問題ではなさそう。けっきょく今も原因はつかめず、ラズパイは修復できていない。SDが壊れたかな。かれこれもう5年くらい連続使用していたし。

Raspberry Piをいじっている

動くメカニズムを図解&実験! Linux超入門 (My Linuxシリーズ)

動くメカニズムを図解&実験! Linux超入門 (My Linuxシリーズ)

Raspberry Piを本格的に活用したくなって、まずはLinuxの勉強だと思って本を買ったりしている。本に書いていないところでも、つまづくことが多くてなかなか難しいと感じる。昨日はPAMが初期化できないと言われて、sudoコマンドを使えなくなった。当然sudo rebootもできなくなってしまったので、結局電源ケーブルを引っこ抜いた。再度電源を入れたらうまいことsudoできるようになったのだけど、その理由がわからない。しかもsudo rebootするとネットワークに繋がらないという不具合も発生し非常に困った。iptablesの設定を見直したり、接続状態を定期的に確認して再接続するような設定を作ってみたりしたけど効果は出ていない。トラブル続きで多少勉強になってるのかもしれないけど、なかなかわかった気にはならないという。もしかして電源ブチ切りでOSデータが破損したり、そんなこともあるんだろうか?
OSのことがわかってくると、なかなか面白い。ネットワークについても勉強してみたいと思い始めた。

motivate yourselves

東大に散歩に行ってきた。いわゆる五月祭というやつだ。人混みは億劫なので、気をぬくと休みの日は近場でぶらぶらしてしまうのだけど、たまにくらいは良いでしょうということで足を運んだ。キャンパス近くの店で坦々麺を食べ、コンビニでアイスコーヒーを買ってそれを片手にブラブラ。人が多く活気があり、エネルギーのある空間だった。
屋台を眺めるとわりと俗なものも多かったが、研究の展示にはさすがに面白いものがあった。妻が興味のあって一緒にきいた、穴だらけ物質の研究についての10分トークは印象に残った。こんな感じで自分たちの興味のある展示について少し眺めて、オケを聴いたらすぐに夕方になってしまった。もう少し良く知らない研究、個人的には文系の学問なんかに触れられるように動けば良かったかな。刺激はモチベーションになる。自分自身をモチベートし続けるには、多少の努力がいる。