imaizumeの個人メモ

コードとか旅とか飯とか

macOS High Sierraでスクリーンロックのやり方がちょっと便利になっていた件

KeyChain Accessがメニューバーに表示できない

先日自宅のMacbook PromacOS High Sierraにアップグレードした。

自分のマシンは自宅のみで使うためスクリーンをロックする必要が無く、KeyChain Accessのメニューを表示させていなかった。

詳しくは以下のリンクを見ていただければわかるが、簡単に言うとKeyChain Accessの設定画面に「メニューバーに状況を表示」という項目があり、チェックするとメニューバーにアイコンが追加されて、そこからスクリーンロックができるようになっていた。

[blogcard url="http://inforati.jp/apple/mac-tips-techniques/application-hints/how-to-lock-keychain-or-display-easily-in-macos.html"]

 

自分はHigh Sierraにした後に、上記のような方法で簡単にスクリーンロックできるよう設定したかったのだが、自分の設定画面ではなぜか上記のメニューが表示されなかった。

最初なぜ項目がなくなっていたのか分からなかったが、どうもHigh Sierraに上げたのが原因ではないかという仮説に行き着き調べてみることに。

スクリーンロックはAppleメニューに追加されていた

すると同じような問題で困っている人を発見!

[blogcard url="https://apple.stackexchange.com/questions/300006/high-sierra-10-13-keychain-access-menubar-item-missing"]

 

その答えは

"Lock Screen" is now available via the Apple menu. (訳: Appleメニューに「スクリーンロック」が追加されたよ)

 

なんと、KeyChain Accessの機能だったものがAppleメニュー (電源OFFとかを表示するメニュー) に追加されたとのこと 😄

Hight SierraでAppleメニューにスクリーンロックが追加された

確認してみると、確かにメニューに追加されていた ❗

しかも嬉しいことにCtrl + Cmd + Qでロックできるショートカットまでついていてこれは便利、めでたしめでたし。

会社のマシンもアップグレードしたら、離席する時ちょっと楽になるかも 😉

普通に「High Sierraでできること」的な記事に書いても良いレベルの機能だと思うのだが、特に調べてて引っかからなかったのはなぜだろうか。

Android 7.1.1 のアップデートで音量ボタンが動かなくなったらアクセシビリティメニューのスイッチアクセスをOFFに

Android 7.1.1 にアップデートしたら音量ボタンが壊れた(と思っていた)!

Nexus 5Xを使っていて、1ヶ月ほど前にAndroid 7.1.1へアップデートしてから音量ボタンが使えなくなって焦った。 普段携帯をジプロックに入れて風呂でYouTube鑑賞している(良い子は真似しないでね)ので最初はてっきり浸水しのだと思っていたが、先日ようやくこれが設定の問題だったことが判明したので対処法を載せておく。

アクセシビリティメニュー内の『スイッチアクセス』をOFFにしたら解消

似たような症状の人はけっこういるっぽくて、いくつか試した中でここに載っていたアクセシビリティメニューの「スイッチアクセス」をOFFにするというのを試したら解消した。

[blogcard url=https://productforums.google.com/forum/#!topic/nexus/zBUCfSh0rNo;context-place=topicsearchin/nexus/category$3Amic-and-voice-actions]

 

Also, Can you check at Settings > Accessibility to see if Switch Access is enabled? This accessibility feature lets you use the volume keys for navigating, which disables using them to control volume.

(訳: "設定 > アクセシビリティ > スイッチアクセス" がONになっているとボリュームキーが音量コントロールではなく、ナビゲーションに使われてしまうよ)

こういう特にONにした記憶が無い設定が原因で突然現れるバグは本当に困る。 しかも自分はBluetoothヘッドセットも使っていて、そちらについている音量ボタンではなぜかUIには出てこないけど音量調節はできたのと、Kindleのページめくり機能も使えなくなっていたのもあって、対処法がわからず完全にハードウェアが死んだとばかり思っていた。

調べてみたところ、日本語だと7.1.1のバグに関する情報自体が少なく、海外のスレだと同じバグでスレがたくさん立っていて盛り上がっていた。 そもそもキャリアのAndroidスマホでは Nougat にアップデートできる機種がまだ少ないからなのかな。

このバグの原因にはいくつかのパターンがあるみたいなので、上記の方法で解決しない人は他の海外サイトもググってみると良いかも。 例えば自分は最初に「トークバックの設定をOFFにする」というのをやってみたけれど特に効果はなかった。

本当に壊れたと思ったので iOS の Assistive Touch 的なアプリで代用していた

音量ボタンがマジでダメになったと思ったので、実はiPhoneのAssitive Touchと同じ、ハードウェアボタンを画面上にソフトウェアボタンで配置する機能をAndroidで実現するアプリまで入れてしまっていた。 しかもかなり気に入ってしまったので有料版まで買ってしまったという(笑) カメラとかスクショの機能も同じメニューから使えて有料版だとボタン配置も変えられるから、アプリとしてはとても便利で気に入っているし、本当にハードウェアボタン壊れたらこれはなかなか使えると思う。

Button Savior Non Root
価格:0  平均評価:4.2(7,177 件)

 

Google Play で手に入れよう

 

Ruby Silver取ったので例によって合格体験記書きました

Ruby Silver ゲットだぜ!!

昨年末にRuby Silver試験を受験して合格した。 75点合格ラインのところ、自分は84点でパスしたのでちょっと危なかった。 実際、試験終了ギリギリまで悩んだ問題も10%くらいあったことを考えるとこの結果には納得。

これで晴れて「俺はRuby書けるんだぜ」  (...え、何それ自慢??) というのを卒業し「俺はRuby Silver持ってるんだぜ!!」とドヤれる ( ̄¨ ̄) ...というのは嘘で、まぁSilverは基本レベルなのでそこまでドヤる程のものではない(汗)

さてRuby Silverの試験勉強で参考になるのが、ブログやQiitaに上がっている受験者の合格体験記。 知っての通りRuby SilverやGold試験は参考書がクソ参考書を解いただけでは独特の傾向や重点的に学習すべき部分が分からないので、そういうときには試験を受けた方の話が参考になった。 ということで、自分も試験を体験記を書いてみた。

前提条件

自分の体験記を書く前に、アドバイスが適切な人に届くよう自分のRubyに対するスペックを書いておく。 というのも人によって持っている前提知識がいろいろ違うと思うので、開発経験が浅い人はできれば違うポストを参考にしてほしい。

  • Rubyでの開発経験
    • 年数: 3年
    • 触れる頻度: 平均して週3,4日
  • 用途

こんな感じで、日常的にRubyに触っていて、ブロック渡しとかArray#mapとかの関数も割と普段から使っている点に注意されたい。

合格するまでに使った教材

ではお待ちかねの合格までの道のりを

Ruby技術者認定合格教本

これについては説明不要ですね。 とにかくこれで出題範囲をおさえて、知らない知識をどんどん取り入れていきましょう。 古いバージョン(Ruby 1.8対応)ではなく2.1対応のもの買うこと。

自分はこの本を1周して、知らないところにバンバン付箋を貼っていった。 そして知らなかったところをpryを使ってコードを打ち込みひたすら確認してを繰り返していくと知識の「穴」が埋まっていく。 本書では初めにirbの使用方法が紹介されているが、補完やシンタックスハイライトが効くし公式も推しているのでpryの方がオススメ。

[blogcard url=http://labs.timedia.co.jp/2011/12/rubyist-should-use-pry.html]

最後に演習問題がついているので、こちらも活用して出題傾向の把握に努める。

あとGold試験の教科書としてメタプロ本が推奨されているけれど一部はSilverに通じるところもある。 オープンクラスとか変数のスコープの話が参考になるので、Gold試験を受けるなら事前に買って読んでおいても損はないが、覚える必要も特にはない。

メタプログラミングRuby 第2版
Paolo Perrotta オライリージャパン 売り上げランキング: 76,543

公式サンプル問題

教本の問題だけだと足らないので、試験に慣れるためにも公式が出している模擬試験問題はやっておくべき。 以下のページ内の「模擬問題PDF(Silver) 」からPDFがダウンロードできる。

[blogcard url=http://www.ruby.or.jp/ja/certification/examination/]

ちなみに試験前日にこれを解いてみたときの正答率は50問中41問だった。 正直コレを見てかなり焦ったが、幸いここで外した問題を復習したことが当日にいくらか役に立った。

Ruby資格試験対策アプリ (Android)

なぜかAndroid限定なのだけれど、同じく公式が問題アプリを出してくれているのでこちらは移動時間に活用

無料で30問、課金すると全100問の問題が解けるらしい。 自分はこのアプリを使うのが試験直前になってしまったので結局課金しなかったけれど、30問で足らない人は是非課金しよう。

Google Play で手に入れよう

ミニツク

ミニツクというプログラミングドリルを無料で提供してくれているサイトがあり、アプリ同様参考書が開けない外出時等にスマホで問題を解くことができてとても重宝した。 出題の形式も、大体が4~5択の選択問題で実際の試験に合った形になっていたのが良かった。

[blogcard url=http://www.minituku.net/?locale=ja]

Ruby初心者だったら、ここの他の講座の練習問題も解いてみるのも良い。

 

以上が自分が使った教材。 読み物の数は教本だけだったし、演習用の教材は探せばもっと出てくるかも。

傾向と対策

とりあえず思ったことを書くと

  1. 実は「満遍なく出ない」=特に出題されやすい部分を重点的に覚える
  2. 似たような名前のメソッドもできるだけうまく整理して覚える
  3. 予約語とか変数の命名規則とか偽の値を選ぶ問題はボーナス問題と捉えよ
  4. 試験当日に解いた問題は教材でやった演習よりも優しく感じた (たぶんそういう風につくってあるのかな??)

まず1について。 実際に問題で出る範囲はある部分に集中しているので、早めに教本を一周して演習で傾向をつかむこと。 特によく出ると思った部分は

  • chopchompで最後の文字列を切り取るかどうか
  • StringArray の [] メソッド (範囲選択して部分文字列や配列を切り取らせるやつ)
  • Array#map や 和集合、積集合の演算
  • 正規表現と日付のパターン (英数字空白と行頭行末表現、年月日と時刻くらいは最低限覚えよう)

このあたりは重点的に覚えて可能な限り落とさないようにしたいところ。

次に2については、これがこの試験の特徴かつ関門と言える部分。

  • index, match, scan (String)
  • chomp, chop (String)
  • delete ファミリー, reject, slice (Array, Hash)

この辺りがしっかり区別できると高得点が期待できるし安心できる。

あとは

  • each_with_indexで渡すブロックで変数は |index, value| それとも |value, index| ??
  • Array(3,4)は [3,3,3,3]?それとも [4,4,4] ???
  • ArrayやHashの生成方法って[]{}以外に何があったっけ??

このあたりも忘れがちだけれどちょくとく聞かれるので忘れないようにする。

それから3についてだけれど、よく聞かれる問題はややこしいものばかりではない。 nilfalse を選べば良い問題や、_と英字で始まる単語を選べば良い問題などは、覚えることがとても単純なので、ボーナスと捉えて絶対に落とさないように。

4については個人的な感想なので絶対言い切れるわけではないけれど、参考書の方が難しく作ってあるというのはフツーにありそうなので、練習で9割取れるようになれば十分自信を持って試験に臨んで良いと思う。

まとめ

  • 考える問題はあまりないので、90分という時間は気にしなくて良い(大抵の場合たぶん余る)
  • 覚えるための近道は
    • 教本は1周でわからなかった所だけ付箋でメモる
    • その後はとにかく練習問題や演習をやる
    • 間違えた所はirbやpryで写経する
  • エディタ上では書けても、選択問題で出されると意外とわからなくなるよ (なのでしっかり演習をやること)

自分は直前まで修論の提出とかいろいろあって演習時間が思うように割けなかったが、それでも80点には届いたのであと2,3倍ちゃんと演習していれば90点は確実だっただろうなと思う。

次はGold試験を年度内に受ける予定。 覚える範囲広がる上に、メタプロ要求してくるとかなかなかハードル上がるなぁ...