読者です 読者をやめる 読者になる 読者になる

Pick me up!

デジタルガジェットとかプログラミング

MOS Excel 2013 Expert 2も受験

せっかくExpert1に合格したのでExpert2にも合格して、Expertとしての資格を確定するために受験して合格。これで5連勝(笑)

いつものごとく対策本の模試プログラムで対策。

Expert1までは対策本に添付されている模試プログラムだけでも十分かなという感じでしたが、今回は若干不安になったので今回は模試プログラムの内容をふまえて以下の内容を確認。

  • 表示形式のユーザ定義の記号の意味
  • ROUNDUP関数の仕様

さらに不安を解消するために対策本の本体も確認して、以下の知識を習得。

  • 財務関数(FV、PMT、NPER)
  • 数式の検証
  • ソルバー
  • 複数の表の統合

Ruby Programmer Silver version 2.1

すっかりIT系資格取得マニアになりつつありますが、今回はRuby 2.1 Programmer Silverを受験し合格しました。 正式名称は、”Ruby Association Certified Ruby Programmer Silver version 2.1”。 100点満点で75点以上が合格のところ、80点とギリギリでしたけど…。

Ruby on Railsでの開発を2年ほど経験していたのでさほど勉強することはないのと思いつつ、一応対策を行うことにしました。 いつもなら対策本を購入するのですが、今回は「ミニツク」というサイトを利用しました。RubyおよびRuby on Railsを学ぶためのe-Learningサイトです。無料ですし、Open-IDをつかってログインすれば学習履歴も残せるのでとても便利です。

  • Ruby入門コースでざっとおさらい
  • Ruby技術者認定試験(Silver)対策コースで試験問題の意図を学ぶ

ただし、気をつけなければいけないのは2016/4/3現在、ミニツクのRuby技術者認定試験(Silver)対策コースは、Ruby 1.8.7を前提としています。一方の試験はRuby 2.1ですので文法や出力結果に多少の違いがあります。Ruby 2.1をインタプリターで実際に動かしながら学習したほうが良さそうです。

おさらいと言いつつ、知らないことがありました。ちゃんとRubyを学んだことがなく、既存のコードと過去に使っていた数々のプログラミング言語から、かってに推測していたことが多かったからですね。 せっかくなので、ミニツクをやって身に付いたことを書き記しておきます。

rubyコマンドでの文字コードの指定

ruby起動時に-Kオプションで文字コードを指定できます。

オプション 文字コード
-Ku UTF-8
-Ks Shift_JIS
-Ke EUC-JP
-Kn ASCII(デフォルト)

&&とandの違い

どちらも論理演算子の積ですね。でも、優先順位は&&のほうがandよりも高いんですね。もちろん、||のほうがorよりも優先順位が高いのは言うまでもありませんね。

クラスメソッドの定義方法

クラスメソッドの定義方法として、selfやクラス名をメソッド名の前につける方法は知っていましたが、複数のクラスメソッドを一括して定義するのに便利な方法を初めて知りました。以下のコードでfoo1()はインスタンスメソッドですが、foo2(), foo3()はクラスメソッドです。

class Hoge
  def foo1()
  end
end
#ここからクラスメソッドの定義
class << Hoge
  def foo2()
  end
  def foo3()
  end
end

module_function

このキーワードすら知りませんでした。Moduleで定義したメソッドをクラス・メソッドというか、モジュールメソッドとして利用するためのキーワードです。主にmoduleをネームスペース(名前空間)として使うときに利用されるようです。

[1] pry(main)> module Foo
[1] pry(main)*   def msg
[1] pry(main)*     puts("Hello World!!")
[1] pry(main)*   end  
[1] pry(main)* end  
=> :msg
[2] pry(main)> Foo.msg
NoMethodError: undefined method `msg' for Foo:Module
from (pry):6:in `__pry__'
[3] pry(main)> module Foo2
[3] pry(main)*   def msg
[3] pry(main)*     puts("Hello World!!")
[3] pry(main)*   end  
[3] pry(main)*   module_function :msg
[3] pry(main)* end  
=> Foo2
[4] pry(main)> Foo2.msg
Hello World!!
=> nil
[5] pry(main)> 

RUBY技術者認定試験 公式ガイド (ITpro BOOKs)

RUBY技術者認定試験 公式ガイド (ITpro BOOKs)

FireTVにBluetooth 2.1はつながらない?

部屋を掃除していたらだいぶ昔に購入したZeemote JS1Hというスマートフォン向けゲームコントローラーが出てきた。 Zeemote JS1Hは、片手で操作できる3ボタンのゲームコントローラーで、Bluetooth 2.1接続。 購入したのもだいぶ前だが、購入した時点でも叩き売りされていたので、発売はかなり昔のはず。 でも、一応、iBuffaloの製品ページは残っているし、Amazonには定価よりもだいぶ高く出品されている(2016/3/24現在)。

これを使えば、寝ながらFireTVでゲーム出来るなぁと思い試してみたが認識されませんでした。 Zeemoteには、ジョイスティックモード、ポインタモード、キーパッドモードという3つのモードがあり、FireTVにはゲームコントローラー、その他のBluetooth端末という2つのペアリングモードがある。結果、3×2=6通りでペアリングを試したが、どのパターンも認識しない。

もしかして、ZeemoteかFireTVのどちらかが壊れているのかもしれないとおもい、個別にためしてみることに。 結果、ZeemoteはXperia Z3 Tablet Compact(SGP621)で認識でき、FireTVではレノボ ThinkPad Bluettoth ワイヤレスキーボード(KT-1255)を認識した。 ということで、FireTV+Zeemote JS1Hの組み合わせがダメということ。

前述のとおり、Zeemote JS1HはBluetooth 2.1という結構古い規格。 それに対して、FireTVの技術仕様を見ると「HID、HFP、SPPプロファイル対応、Bluetooth 4.1」と書いてある。 つまり、FireTVはBluettoth 4.1はサポートしているが、3.x系統や2.x系統は(正式には)サポートしていないということ。 さらに調べてみるとFireTVで認識できたレノボBluetoothキーボードは3.0のため、3.x系統であればFireTVは認識できるのかもしれない。


なおZeemoteを掃除中に発見した時には本体がベトベトになっていました。手元にあったキッチン用のおそうじシートでベトベトを拭きとってみたところ、サラサラになりました。Zeemoteは2つ購入していて未開封のものもあったのですが、こちらもパッケージから出してみるとベトベトでした。おそらく表面に塗られていた滑り止めの塗装が原因だと思われます。

Amazon Fire TV

Amazon Fire TV

MOS Excel 2013 Expert 1に合格

MOS Excel 2013 Masterにひきつづき、Expert1も受験し、合格しました。 スコアレポートを見ると「ブックの管理と共有」が50%となっていて、その他は100%。一問間違えたのかなぁと思いつつも、こんなカテゴリの問題がシュツッ題されてたっけ?という疑問が…。一応、見直しもしたのですが、問題の最後の方に書いてある操作を見落としていたのかも…。

今回も対策本を購入して、本文は読まずに添付のCD-ROMに収録されている模試をやりました。試験を申し込んでからこの本を発注しようとしたら、Amazonでもヨドバシでも売り切れ…。一体何がおこっているの?と思ったら、翌日にヨドバシに入荷していてホッとしました。 この本に付属している模試は3回分だけなので、対策日数は1日です。まぁ、Expert1の最大重要ポイントであるピボットテーブルはかなり業務で使っていたという背景もあります。知識的にはこの本を使う必要はありませんでしたが、問題の意図の解釈のしかたを知るためには重要でした。 おそらく、この本を使っていなかったら、試験中に問題を理解するのに時間を要して、結構な焦りを感じたことでしょう。

そして、前回のMaster受験では対策本(の模試)では登場しなかった関数が出題されたので、MOSのオフィシャルサイトであらためて出題範囲を確認。すると、TRANSPOSE()関数と、PowerPivot(パワーピボット)という未知のものがありました。

TRNASPOSE()関数は指定された範囲の行と列を入れ替えて別の場所に埋め込む関数。操作方法は厄介なので、何度かやってみて手に覚えさせたほうが良いタイプですね。

PowerPivotは、外部ソース(他のExcelAccess)を入力して処理するピボットテーブル/グラフのことのようです。 参照:PowerPivot: Excel での強力なデータ分析とデータ モデリング

でも、ここを見ると、我が家のHome and Business 2013ではPower Pivotのアドオンは提供されていないようです。まぁ、外部ソースを扱えるピボットテーブルであることがわかっていればなんとかなるでしょということで、一通り解説を読んであとは試験中にできる範囲でやれば良いやということで対策終了。

i-dio WiFiチューナーを試す

無料モニターに申し込んでおいてすっかり忘れていたが、i-dio WiFiチューナーがやってきたので早速試してみた。早速といっても、開封したらバッテリー残量がほぼ0だったので、一晩充電してからなんですが。

i-dioというのは2016/3/1に新たに始まった放送サービス。以前、地上波アナログ放送(VHF)で使っていた周波数帯を利用して行うサービスである。

現状、i-dioを受信するには今回頂いたWiFiチューナーを使うか、Covia製のスマホi-dio Phoneを使うしか無い。 2016/3/12現在の放送エリアは東京、大阪、福岡のみである。 しかし、わざわざガラパゴス規格のi-dioを搭載したスマホを買う人がいるのだろうか。天下のDoCoMoが扱っていたNOTTVですらサービス終了するのにね。まぁ、i-dioは今のところ無料だからNOTTVとはちょっと位置づけが違うかもしれない。

i-dio WiFiチューナーは日本アンテナ製。結構小ぶりだが、バッテリー内臓なのでそれなりに重みがある。外観はいかにも安いデジタルガジェットにありがちな感じ。

Google Playから、専用アプリをインストールして起動するとユーザ情報の登録画面が表示される。この情を受かって、地域ごとの防災安全情報も配信してくれるらしいが、チューナー側の電源を常に入れているわけではないので、このチューナーを使う場合にはあまり意味が無いのかもしれない。

f:id:ftakeki:20160313122643p:plain

チャンネルの一覧。ここから一度チャンネルを選んだ後に、どうやってこの画面に戻ってくるのかわからない。この画面に戻ってこなくてもチャンネルを変更することはできるので困ることはないのだが、不思議な仕様である。

f:id:ftakeki:20160313122651p:plain

受信中のチャンネルの番組表が表示される。いまのところ画面に動きが見られないので、ラジオって感じですかね。

f:id:ftakeki:20160313122659p:plain

すでに再生(音声)が始まっているのにいろいろとデータをダウンロードしている間は、「受信中」のダイアログが表示されっぱなしなのもセンスが悪い。ダイアログは閉じて画面の隅に受信中のマークかプログレスバーを表示するのがよいんじゃないかな。

f:id:ftakeki:20160313122702p:plain

住んでいるところが悪く地デジの電波を拾うのも難しいのに、i-dioは室内でもすんなりと受信できたのでチューナーの感度はよさそう。とはいえ、放送内容がまだまだという感じだし、チャンネルに対する情報も多くないので、これからのサービスだろう。サービス内容を充実させることと、世間に認知させるための活動しだいってところ。まぁ、普及する/しないのどちらに賭けるかといわれたら、まちがいなく「しない」ほうに賭けるけどねぇ。

LPIC Level 1 101を受験する

前回MOS Excel 2013 Specialistを受験しましたが、今回はLPIC Level 1 101を受験して合格しました。 受験してみての感想は以下のとおり。

  • 試験時間は90分ですが、見直し含めて30分かかりませんでした(笑)
  • 正直、わからない問題も結構あったので不合格かと思いました…。

Level 1ということでなめていましたが、試験対策は結構苦戦しました。 RedHat系、Debian系の両方の知識が問われるのが個人的に難関でした。CentOSには馴染みがあるのでRedHat系の知識はともかくとして、Debian系はちょこっとUbuntsuに触っていた程度なのでdpkg,apt系のパッケージ管理コマンドのオプションまではさすがに分かりません。 ということで、今回も対策本にお世話になりました。

Linux教科書 LPICレベル1 Version4.0対応

Linux教科書 LPICレベル1 Version4.0対応

でもこの本にはちょっとした例題はありますが、模試のプログラムは付属していません。 ということで、ping-tというIT系の試験対策サイトにお世話になりました。幸い、LPIC Level1 101の範囲であれば無料で使えます。 勉強の流れとしては以下のとおりです。

  1. 上記の対策本の一章分を読む
  2. ping-tのサイトで最強WEB問題集LPIC Lv1-101 (Ver4.0)の対応するカテゴリをひたすら解く。 2.1 間違った問題の解説を読む。 2.2 すべてのゴールド(2回連続正解)になるまで繰り返す。
  3. 試験対象の4章分について上記を行う。
  4. もう一度対策本を読みながら、コマンドのオプションなどを覚えやすいように自分なりに手書きでまとめる。

次はLPIC Level 1 102の範囲を受験しようと思います。でも、ping-tでは102の範囲は有料なんですよね。

なお、MOSと同様にLPICもこの資格を持っている事自体が役に立つかどうかは分かりません。というか、あまり役立たないでしょう。 でも、普段Linuxをなんとなく使っているけど、細かいところまで知っているわけではない人が知識を増やすためには、LPICを受験するのは良い機会になると思います。

Kodi Add-on "ebooks 1.1.0"を試す

結論から言うと、ebooks 1.1.0の時点では以下の観点から、常用は難しい。 (Kodi 16.0 + ebooks 1.1.0)

  1. 縦書きに対応していない
  2. 次の章に読み進めるためには一旦、目次(チャプターリスト)に戻らなければならない
  3. 全画面表示でない。 Kodiの画面の一部に表示される。
  4. ネットワークフォルダ(SAMBA(CIFS), NFSなど)のデータはローカルにコピーする。しかも一覧に表示しただけなので、大量の電子書籍を抱えている状態だとローカルのストレージが大変なことになる。
  5. ネットワークフォルダの場合、日本語のファイル名、フォルダ名に対応していない。

とはいえ、こういうAdd-onを開発してくれるのはありがたい。これをベースにもっと有用なものを作れば良いんじゃないか。幸い、GitHubでソースを公開しているので、改良してPullRequestを出しちゃおうかななんて考えたのだが挫折…。

改良しようとしたところは、ネットワークフォルダで日本語のファイル名、フォルダ名を扱えるようにすること。

  1. ebooks Add-on内ではフォルダ名、ファイル名は基本UNICODE型で処理しようとしている。
  2. 一部処理でstr型で扱いたい場面があって、その場合にUNICODE型からstr型に変換している。
  3. 上記処理でUNICODE型で保持しているデータ内に日本語(というかASCII範囲外?)の文字があると、str型に変換できないとして例外発生
  4. いっそのこと、できるだけstr型で扱っちゃえばよいのではと考える。
  5. epubファイルをコピーしようとして失敗する

というところまでやって、最初に書いたその他の問題に気が付き、モチベーションが低下して、保留(というか断念)してしまいました。

def os_path_join(dir, file):
    #中略
    return os.path.join(dir, file).encode("utf-8")