フロッピーディスクの残骸

フロッピーディスクを分解するのって楽しいよね

セキュスペ受験してきた

もうだいぶ経っちゃいましたが、
4/17に初めての高度情報処理技術者試験を受けてきました。

受験したのはセキュリティスペシャリストです。
本当はネスペ受けたかったんだけど、秋しかやってなかった...

応用とか持ってないので、午前1免除も当然無く朝から夕方まで。

IPAから出てる解答例から午前1,2を採点したところ
午前1 : 6割
午前2 : 8割
でした。

午後は、ITECから出てる解答例で採点してみました
午後1 : ギリ6割?
午前2 : ...(^q^;)

午後結構難しかったなあ。

セキュスペは受かる見込みないけど、
受かってたらいいなあ。

午前1免除は取れるっぽいので、
本命のネスペではちょっとだけ楽できそうです。

秋もがんばります。

Hueを買っちゃいました

久々にブログ書いてみた。
無事大学院も修了し、職にもつけました(^o^)/

さて、タイトルにも書いてあるHueですが、
2年前ぐらいから購入したいなーと考えていたけど
思い切って購入しました。

f:id:mty328:20160410000950j:plainf:id:mty328:20160410000957j:plain

Hueって何?

Philipsが出しているLED照明です。(公式サイト
その辺の照明と違うところは、ブリッジ(コントローラー)に対してAPIを叩けば、色や明るさを調節することが可能なところ。

最近、ASCIIでも取り上げられましたね。

ascii.jp

僕が買ったのは旧型です。
届いて3日後に新しいの出るとかショックだけど、
買うかどうかはそのうち考えるw
(追加料金払うから交換してー....^q^)

お値段は、スターターキット + 電球単品で3万円ちょっとでした。
結構なお値段するので大事に扱いたいと思います(^q^)

購入しようと思ったきっかけなんですが、
照明のスイッチとベッドとの距離が結構あって、
寝るときにわざわざ消しに行くのがめんどくさいからです^^;
スマホで電気消せたら便利だなと思ったのです。
ダメ人間です。

取り付け

電球を天井に取り付けて、コントローラーに有線LANと電源を挿せばOK

電球の口金もE26形式なので、大抵のお家には取り付けできます。
ここはきっちり調べておかないと買った後にゲッソリしちゃうので、買う前にきちんと調べておくこと。

f:id:mty328:20160410001348j:plain

ZigBee Light Link

電球とブリッジは、ZigBeeベースであるZigBee Light Linkという無線規格で接続されるらしい。
へー、こんな規格あったのね。

アプリを使う

iOS

公式アプリで結構遊べます。電球の色変えたりなんやかんやできます。
ピンク色もできるので、部屋をラブホ仕様にもできるんじゃないかな?(笑)
f:id:mty328:20160410001154j:plain 僕の部屋です

Hue Disco(有料)とかHue Partyとかもおすすめされたけど、Hue Partyはアプリが落ちるんだよねえ・・・

Mac

Colors for Hue

Colors for Hue

  • Furiki Designs
  • Utilities
  • Free
github.com

Alfredが好きなので、試してました
ランチャーから照明を操作できる日が来るとは思わなかったよ!w

Ambify - Turn Music into Light!

音楽に合わせて色が変わるやつ。
有料なんだけど、トライアル版で遊んでました。
部屋がクラブっぽくなるのでめっちゃ面白いです

youtu.be

1週間使ってみて

ここ1週間照明のスイッチを触ってません。
寝る前にスイッチを押しに行くってことをしなくなりました。
これだけで買ってよかったなと思ってます。
スマホから電気を消せるのって便利ー(∩´∀`)∩

朝起きる時間になったら電気をつける、家を出る時間には消す
これも自動でやってくれる。

寝る前には暗くしたりとか。 f:id:mty328:20160410001420j:plain

なんか他に面白そうなことできないかなーといろいろ考えてます。
1つだけで面白そうなアイディアを思いついたので
実現できたらそのうちブログネタにでもします。


おまけ

APIを見てみる

HueのAPIドキュメントは登録しないと見れないらしい。
SSL使ってねーのなあ。まあ、大した情報は上げないから別にいっかなーん。
Philips hue API

APIはRESTなので、curl叩けばいろいろ返ってきます。
jsonフォーマットで返ってくるので、jqコマンドをインストールしておくと便利です。

IPアドレスを知る

コントローラーのIPアドレスを調べたかったら下記にアクセスすると良いでしょう。IPアドレスが返ってきます。
IPアドレスを配っているDHCPサーバーのリースファイルを見ても良いでしょう。見慣れないMACアドレスがあれば多分それです。
それか下記にアクセスしてIPアドレスを調べることもできます。
https://www.meethue.com/api/nupnp

secretkeyを取る

secretkeyって呼んでいいかは分からんけど、
けっこー簡単。

# curl -d '{"devicetype":"__USERNAME__"}' http://__IPADDRESS__/api

電球の情報を取ってくる

さっきのsecretkeyを使う。

# curl  http://__IPADDR__/api/__SECRETKEY__/lights | jq

電球の数だけ下記が表示される。

  "3": {
    "state": {
      "on": true,  #消灯しているならfalse
      "bri": 74,   #電球の明るさ
      "hue": 47080,
      "sat": 251,
      "effect": "none",
      "xy": [   # 色情報
        0.3243,
        0.3236
      ],
      "ct": 156,
      "alert": "none",
      "colormode": "ct",
      "reachable": true
    },
    "type": "Extended color light",
    "name": "Hue Lamp 3",
    "modelid": "",
    "manufacturername": "Philips",
    "uniqueid": "";
    "swversion": ""
  }

結構SDKあるのねー。こっち使ってもいいかもね。

www.developers.meethue.com

今はRuby使ってみてます。

github.com

qiita.com

LEDの故障率

最近気になった記事とか。

blog.goo.ne.jp

iOS Tips2

CocoaPods.org
https://cocoapods.org

iOS Cookies.com SwiftOnlyなライブラリが探せる
http://www.ioscookies.com

カラーコード
http://www5.plala.or.jp/vaio0630/hp/c_code.htm

RGBの直接入力
http://qiita.com/stm3/items/1c334f4fe1d0a996714b

一定時間経過後に画面遷移
http://www.from.co.jp/weblog/技術情報/swiftでタイマーと自動ページ遷移/

UIColorExtension
http://yuu.1000quu.com/extension_to_be_convenient_to_specify_the_color_in_swift

SNS連携
http://www.sirochro.com/note/swift-sns-share-implement/

NavigationBarの表示・非表示

self.navigationController?.navigationBarHidden = false #表示
self.navigationController?.navigationBarHidden = true  #非表示

画面遷移
普段はpresentViewControllerでいいけど
NavigationBarの表示・非表示の切り替えの際はpushViewControllerを利用しないとダメ

pushViewController
presentViewController

サイバーセキュリティのセミナーに行ってきた

サイバーセキュリティのセミナーがあるというお話を聞いて、ちょっと行ってきました。
相次ぐサイバー攻撃にこういう対策をすべきだ!とかそんな話ではなくて、
セキュリティを考えるならまずは人を育てましょう、人は不足してるならまずは育てる。
若手を大事にって感じでした。

若手を育てるためにこういうことをやっていくんだ!
とかその辺の話はすごく頑張っているなあと。

他には、いくらソフトウェアはFirewallに金をかけたって
ウイルス、マルウェアの感染も完全に防ぐことはできない。(どうせ利用者はどこかでやらかすので)
それよりも、感染をいち早く検知し
少しでも早く正しい対処をするというのは全くもってその通りかなと。
早く正しい対処をするにも、知識が必要だからその辺わかるような人をどんどん育てましょうとか。

セキュリティを健康管理に例えて
医者任せ・専門家任せにして、自分は何もしないようにしてるとどんどん不健康になっていく。
もちろん専門家が全くいなくて良いという話ではなくて、
一定数は必要だけど、自己管理がなってなければ悪くなっていく一方だ
というのもすごい納得しやすい例だったなと。

ウイルスやマルウェアの検知についてはちゃんとログ1つ1つ取りそれを確認する。
確認するっていってもログは膨大になるわけで、
出てきたログに変なもんがあったらアラート出すとかそんなことをしましょう。とか。。。

CSIRT / SOC / CISO のあり方とか、その辺も貴重なお話をいただけた気がします。

いろいろ話はあったのだけれども結局は当たり前の対策を
当たり前にできているかとかその辺りが重要なんすよね。

あんまり書いてはいけないこともあると思うので、この辺にしときます。

OSXのVeertuを使ってて気になったこと

今年始めくらいに発表されたMacで使える仮想化基盤ソフトウェアVeertu

Veertu

まだまだ出たばかりで機能面ではVirtualBoxとかには劣っている感じですが、
ちょっとLinux触りたいとかであれば、全然良いアプリだと思います。
GUIから入れたいOS選択するだけど、OSイメージのダウンロードとインストールをやってくれます。

使い方とかは下記に詳しく書いてあるので参考になるかなと思います。

qiita.com


Veertuで複数台のVMを建てる際に気になったこと

CentOS7のVMを2台建てたときに気づいたんですが、
VeertuはVM作成時に毎回イメージを取ってくる。

毎回 Minimal.isoとhd0.imgのセットが出来上がるイメージ

 ~/Library/Containers/com.veertu.Veertu/Data/VM Library
 [328]$ tree
.
├── Centos\ 7\ minimal
│   ├── CentOS-7-x86_64-Minimal-1503-01.iso
│   ├── hd0.img
│   └── settings.plist
├── Centos\ 7\ minimal(1)
│   ├── CentOS-7-x86_64-Minimal-1503-01.iso
│   ├── hd0.img
│   └── settings.plist
└── Linux\ Ubuntu\ 14.04\ LTS\ Netinstall
    ├── hd0.img
    ├── mini.iso
    └── settings.plist

Minimal.isoでも636MBあるわけだし、これは容量食うなあ...(´・ω・`)

有料オプションでは、自前のISOイメージやVMイメージをインポートできるようで
無料では、それができないような対策が取られてるのだと思うけどちょっとなんとかしてほしい。
金払えばなんとでもなるのだが

過去に一度だけ、Veertu → KVMへのイメージ変換についての記事を書いたこともあるのよね。
考えたらあのときはVM1台しか建ててなかったから気づかなかったな;

328.hateblo.jp

おしま.

iOS Tips

iOSアプリ開発(Swift)のバイトを先週から引き受けてて
それに関するメモ書きです。

グラフの作成とかってどうしたらいいの?って思ってたんですが
どうやらCorePlotというライブラリを利用すると良いらしい。

ソーシャル連携についてもそういったライブラリがあるので
それを利用することで楽に機能を実現できる。

こういったライブラリはGithubを探せば大抵でてくる。

ただ、外部のライブラリをガンガンインポートして利用していると管理が煩雑になる。

こういう際に利用するのが CocoaPods である。
CocoaPodsはRuby製のフレームワークで、iOSで利用する外部ライブラリをPodfileに記述しそれを管理できる。
これは勝手な思い込みかもしれないけどGemfileとかあの辺に似てる気がするなあ。

環境構築

sudo gem update --system
sudo gem install cocoapods

利用してみる

プロジェクトのディレクトリ内に入り下記のコマンドを発行するとPodfileが生成される

pod init

CorePlotを利用する場合は、下記のように記述すると良い

target 'testapps' do
  pod 'CorePlot'
end

ライブラリのインストール

pod install

2回目以降は下記でも良い

pod update

エラーの詳細を確認するには下記のコマンドを利用する

pod install --verbose

こんなログが出てきた。

CocoaPods 1.0.0.beta.5 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

ので、下記のコマンドを発行

gem install cocoapods --pre

気になったこと

pod install,updateがすごく遅いこと。 これは

pod install --no-repo-update

のコマンドで回避できる。
コマンド発行時に最新のSpec情報を毎回取得するため、CocoaPods/Specsを毎回pullしているらしい。
常に最新のものが必要というわけではない場合は、
上記のコマンドで回避できるのだけれど、
最新のSpec情報が取れない可能性がある。 頻繁にpod install する際は、--no-repo-updateを利用するくらいしか回避策はなさそう。

Podsディレクトリはgitで管理すべきか

利点、欠点いろいろあるし、下記ににいろいろ書いてるんだけど、
僕はPodfileとPodfile.lockだけ管理することにした。

qiita.com

CorePlotを利用する

CorePlotはObjective-C製のライブラリであるため、Bridging-Headerというものを利用しなければなりません。
Bridging-Headerは、SwiftでもObjective-C製のライブラリを利用したい場合とかに利用します。 Bridging-Headerの設定方法は下記が参考になります。

tech.admax.ninja

なんで動かないんだ?って感じたら下記を見ると解決するかも。 ja.stackoverflow.com

僕は、xcworkspaceで作業していないだけでした(笑)

Xcodeで何故かエラーが消えないとき

ここ書き方あってるはずなんだけど、エラー消えない・・・?何故? ってときはXcodeのProductメニューからCleanをやると解決する場合があります。 下記が参考になるかも。 ez-net.jp

アプリ開発経験は全くないので、刺激があって面白いです。

CLIからWebのスクリーンショットを撮る

ある案件でWebページの定期スクショを撮りたいということになり
CLIベースでスクリーンショットを撮る方法はないかと模索しておりました。 そしたらこんな記事が

qiita.com

どうやらcutycaptというコマンドを利用すると可能らしい。
ということでやってみました。
今回用いた環境はCentOS7です。

環境構築

yum install xorg-x11-server-Xvfb vlgothic-fonts
yum install epel-release
sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel.repo
yum --enablerepo=epel install CutyCapt

使用コマンド

--urlのオプションにスクリーンショットを撮りたいURLを入力し、
--outオプションで保存するファイル名を指定する。

xvfb-run --server-args="-screen 0, 1024x768x24" CutyCapt --url=http://www.livedoor.com --out=web.png

定期スクショはcronでやればOKかな。 スクリーンショットから必要な部分だけ抜き出したいということであればImageMagicを利用すると良いでしょう。