ICTについて使える情報を発信していきます. 遠回りしたり, 自分のペースで...

このブログを検索

Blogger テンプレート 公式ドキュメント リンク

Bloggerのテンプレートですが, めっちゃいじりたかったのです. 時間がなかったので後回しにしてましたw

幸い, 少し時間が抽出できたのでドキュメントをあさってきたのですが, 英語だと何故かエディタをすすめられて, だいぶ遠回りしましたw Adobe Dreamweaverとか, Template Toasterとか.

Bloggerのテンプレートの属性値がいまいちわからなかったので 「いや, タグの意味とか…」とか思ったのですが, ちゃんと公式のDocumentがあったんですね. Bloggerのヘルプから見れました

これを見ながら, 少しずつ変えていこうと思います.

Read More

2018年9月の面白いと思った記事7選

2018年9月の面白い, 興味深い記事7個ぐらい紹介したいと思います. ちなみに順位付けはしてないので, あしからず.

今回は以下のサイトから記事を選びました.

GoogleやFacebookなどの巨大な管理者なしで個人同士がつながりを作り出す新しいウェブの世界「Dweb」とは?

検索といえばgoogle(もしくはyahoo), SNSといえばTwitter, Facebookなどのように, これらは巨大な企業がユーザーの情報などを管理しています. 1つの企業がユーザーの情報などを持ち, それを管理, 保守しているわけです. 中央集権的ですが, これをなくして個人ごとにつながろうというのがDWebです.

そのメリットとしては

  • 個人データを提供する必要がない.

    • 企業のせいで個人情報が流出することはない.
    • システムが壊れても被害が少ない. データは個人が持っているから.
    • 個人情報が利用されることがない.
  • 保守コストが下がる.

    • 一人一人のパソコン, スマホが機能を提供するため, 良い.
  • 管理者による情報規制が行われない

    • なんでも好きなことを書ける.
    • 規制に時間が取られないため. だが, 今のweb上でも規制は後からかける物が多いので, 実はそんなに変わらないかもしれない.

があります. 一方でデメリットは

  • 個人データは自分で管理しなければいけない.

    • バックアップは相手が保存してくれない.
  • 情報規制が行われないので, ダークな部分も規制できない.

    • みんな同じ権力なので, 削除ができない.
    • えっちぃのとかグロがあふれるかも.
    • ユーザーが見ないようにすれば良さそうだけど.

って感じです. もっとありそうですが, 気になる方は中央集権と地方分権のメリット, デメリットを考えるといいと思います. 中央集権が今の形で, 地方分権がDwebの世界です. メリットがいまいち少ないと思うので, 私はあまり賛成ではないですが, 発想が面白いと思いました.

Google Chrome70からブラウザ上での顔認識や指紋認証が可能になる見込み

Chromium Development Calendar and Release Info Estimated* Stable Dates, Chrome Platform Statusより, リリース日は2018年10月16日の予定らしいです. 記事によると

Chrome 70から対応する形状検出APIは、顔検出API・バーコード検出API・テキスト検出APIという3種のAPIで構成されています。

となるらしいです. いやぁ, どうやってパソコンで指紋認証するのか. 指紋認証対応のキーボードとか出そうだなと思ったりしました. それにしても, ブラウザで質の高いAPIが増えると, Developerもやりたいこと増えていいと思います.

脳波で3機の航空機と通信して操縦が可能な技術が実現、まさに「ファンネル」の実現まであと少しか

これ興奮しませんか? ファンネルができるらしいです.

3機のドローンを操ることができる段階に居るらしく, 更に重要なのは航空機の位置などもわかるらしいです. 国防高等研究計画局(DARPA)が開発したものなので, 一般公開されるかはわかりませんが, かなり未来が近づいている気がしませんか? 最近一番胸熱なトピックです.

「この感じ……ニュータイプか!」と一般人が言える日も近そうですな.

CHIIZ: Toothbrush 4.0

なんと口にあてがうだけで歯磨きできちゃう商品です.
唐突な商品紹介ですがこれとっても欲しくないですか?w

子供の時からずっと歯磨きがめんどくさかったんですよね. あと正しい歯磨きの方法もよくわからないし. これだと, 少し口につけるだけで簡単です. ながら作業もできますし.

ただ, 形状的に歯並びが悪い人には向かなそうです. 個人によって歯並びが違いそうなのが大変そうですね.

Early Bird Pro Kitが安いので, 興味のある方はそちらを購入してみるといいと思います. どうぞご検討ください.

過去のあらゆるマシン&ソフトを実行でき科学の再現性を守る仮想システム「Olive」とは?

Dockerが流行ってから仮想化がトレンドになっている気がします. やはり「再現性」, つまり, ある手順を踏むとやりたいことが達成できるのは大事だと思うのですよ. 塩が無いからって, 砂糖を入れても, 料理は美味しくなるとは限らないんです. 「あのパソコンで使えるソフトがこのパソコンで使えない」とか悲しいですよね. (特にMacのSteam対応ゲームの少なさはやばかった.

IT技術の発達は早いため, 簡単に昔の技術, パソコンが対応できなくなり, 実験ができなくなる. よって, 再現性を守るためにカーネギーメロン大学の研究者が「Open Library of Images for Virtualized Execution(Olive)」というのを作ったそうです. これによって, 昔の再現をして実験するなりできるわけですな.

今はまだ制限ありのプロジェクトらしいですが, これクラウドとかに乗せそうですよね. そのときにいっぱいいじれそうなのが楽しみです.

アップル、自動車のシート位置やミラー角度などの設定をスマホで再現–特許取得

これ発想がいいと思うんですよ. ものの設定って結局めんどくさいじゃないですか. ゲーム然り, スマホ然り, 家電然り. 今回アップルが取り組んだのは自動車系だけですが, 設定を個人に最適化していくのって未来必要だと思うんですよ. みんなが便利になる取り組みだと思ってます.

しかも, スマホに記録するだけでいいのでお手軽です. どうやって設定を反映させるかはまだわかりませんが, レンタカーを使う人などは, たしかに便利だろうなと思っています. もしかしてシェアリングエコノミーも活性化させる?

未来ではIoTとAIを連携して設定をやってくれそうではあるんですが, 結局微調整は人間の手がいると思います. AIの発達段階の今だからこそ, この技術によってデータが蓄積され, 生かされていくのではないでしょうか.

IPアドレスなしで通信 IoT向け新技術「NIDD」、ソフトバンクが試験サービスへ

これ最初見たとき「え, IPなしでどうやってスマホやパソコンを識別できるの?」と思ったのですが, まぁsimで本体ごと識別するからいいよーって話らしいです. IMSI, APNで識別して, 基地局が送る感じですね. つまり, スマホ - 基地局間がIP必要なくなっただけっぽいです.

今まではsimとIPの両方で誰のスマホか識別してたんだけど, IPで識別しなくてもいんじゃない?という発想ですね. まぁそりゃね.

それでもいろいろメリットはあったらしく,

  • IPを使わない分, 通信サイズが少なくなる
    • 通信を解析する箇所が少なくなるので, 使う電力が少なくなる.
    • 電波を送る量も少なくなるので, 通信エリアも広くなる?(これはよくわかんない.

と言ったところです. 技術の進化によって無駄が削ぎ落とされていく…

まとめ

いかがでしょうか. 本当はもっと面白い記事あるんですが, 私が力尽きましたw

今月はGigazineさんが多かったですね. やっぱり面白い記事多いんですよ. (今月のお気に入りの80%ぐらいがGigazineの記事でした)

10月の中盤で9月を振り返るのも中々に面白かったです. これらの技術は未来でも発展していきそうなので, 楽しみですね. それでは, ありがとうございました~.

参考文献

Read More

apt, ファームウェアのアップデートと自動アップデート設定 [RaspberryPi3]

私がしたRaspberryPiの設定は, 「RaspberryPiの設定 まとめリスト」にまとめてあります.

  • 今回の設定のメリット
    • パッケージの最新版を利用できる.
    • セキュリティ的にアップデートは随時しておいたほうが良い.
    • というか必須な感じ.
  • 今回の設定のデメリット
    • 不具合発生しそうとか? でもやったほうが良いよね.

sshしていることを前提にします.

aptのアップデート

aptのアップデートをします. ちまたではapt-getが多いですが, apt-getの上位互換がaptなので, aptを使うほうがよろしいらしい.
ソースはこちら「Is ‘apt-get’ deprecated? [duplicate]

まぁ, aptもapt-getもパッケージツールなので, 必要なものがaptに無ければapt-getを使うというぐらいで良いのかも.

ではssh先でaptのアップデート.

$ sudo apt update 
$ sudo apt upgrade 

aptのみで良いですが, apt-getもやりたい方はこちららしいです.

$ sudo apt-get update 
$ sudo apt-get upgrade 
$ apt-get dist-upgrade 

ファームウェアのアップデート

ssh先で次のコマンドを打ちます.

$ sudo rpi-update

その後, 再起動すれば終わりです.

$ sudo reboot

自動アップデート

いちいち手動でアップデートをするのもめんどくさく, 忘れることも多いと思うので自動アップデートも設定します. 次のコマンドを打ちましょう.

$ # 設定ファイルの作成, aptの自動アップデート設定
$ sudo sh -c 'echo "59 23 * * * /usr/bin/apt update ; /usr/bin/apt -y upgrade  ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean" > /root/crontab_root_file'

$ # ファームウェアのアップデート自動化
$ sudo sh -c 'echo "59 23 * * * /usr/bin/rpi-update" >> /root/crontab_root_file'

$ # 自動アップデートの登録
$ sudo crontab -u root /root/crontab_root_file

ちょっとややこしいと思いますが, コマンドを追加している部分は

「echo “59 23 * * * /usr/bin/apt update ; /usr/bin/apt -y upgrade ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean”」

などです.

数字の部分「59 23 * * *」は順に「分 時 日 月 曜日」となります.
毎日23時59分に

「apt update ; apt -y upgrade ; apt -y autoremove ; apt autoclean"」

というコマンドを実行します. 自動アップデートや, アップデートした後に不要なものの削除などの設定です. ファームウェアのアップデートも同じです.

実際に登録されたかは, 次のコマンドを打てば良いです.

$ # 登録されたリストを表示
$ sudo crontab -u root -l
59 23 * * * /usr/bin/apt update ; /usr/bin/apt -y upgrade  ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean
59 23 * * * /usr/bin/rpi-update

「/usr/bin/apt update ; /usr/bin/apt -y upgrade ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean」などが登録されているのがわかります.

おまけ

ワンライナーみたいにするなら,

$ (sudo crontab -u root -l ; echo "59 23 * * * /usr/bin/apt update ; /usr/bin/apt -y upgrade  ; /usr/bin/apt -y autoremove ; /usr/bin/apt clean" | sort | uniq) | sudo crontab -u root -

$ (sudo crontab -u root -l ; echo "59 23 * * * /usr/bin/rpi-update" | sort | uniq) | sudo crontab -u root -

こんな感じ.

自動再起動

こういうアップデートは再起動しないと設定が反映されない場合もあるので, 時々再起動しなければいけない場合があります.
自分はそれがめんどくさいので, 定期的に再起動してくれるようにこれも設定しました.

$ # 設定ファイルに追記
$ sudo sh -c 'echo "0 4 * * 1 /sbin/reboot" >> /root/crontab_root_file'

$ # 自動アップデートの登録
$ sudo crontab -u root /root/crontab_root_file

これは任意でやって下さい.

参考文献

Read More

NVIDIA DLI(DIGITSによる画像分類入門)をやってみた.

NVIDIA DLI(DEEP LEARNING INSTITUTE) の 「DIGITSによる画像分類入門」をやってみました.

NVIDIA DLIとは.

NVIDIA Deep Learning Institute (DLI) では、人工知能 (AI) とアクセラレーテッド コンピューティングに関するハンズオン トレーニングを提供することで、実世界の問題の解決に貢献しています。都合のよい時間に自分のペースで進めることができるオンライン コースを受けたり、インストラクターによるワークショップに参加していただけます 引用元 : NVIDIA DEEP LEARNING INSTITUTE

つまり, オンラインで機械学習やそれに関連したコースをオンラインで受けられるということです. 殆どが有料ですが, 無料なのもいくつかあります. また, GPUなどを使ってやるらしいので, 学習時間も速いです.

実際にDLIをやってみよう

NVIDIAの人が実際にやり方を公開しています.
https://qiita.com/ksasaki/items/65cd2a9e6b5f370bed0e

詳細な説明はそちらに任せて, こちらは大雑把な説明のみを書いていきます.

ハンズオンサイトに登録

実はDLIはQwiklabsという他のサイトを使う必要があります. これはNVIDIAのホームページでは見つかりにくくなっています.
QwiklabsにNVIDIAの提供しているラボ(演習)があります.

Joinが登録となりますので, 登録しましょう.

出典: Qwiklabs Home Page

言語設定

そのままだと英語で勉強します. 英語が読める人は良いですが, 読めない人はこの設定をしましょう.

ログインできたら
「My account」 -> 「Profile info」 -> 「Language」からJapaneseを選択し, 「UPDATE USER」を押しましょう. これで言語設定はできました.

出典: Qwiklabs My Account Page

「DIGITSによる画像分類入門」を試す.

では「DIGITSによる画像分類入門」を試してみましょう.

「Catalog」から「ラボ」を選んで下さい. 結構たくさんあります. この中で無料のものもいくつかありますので, 好きなものを試して下さい. 私は「DIGITSによる画像分類入門」を実際にやってみました.


出典: Qwiklabs Catalog Page

「ラボを開始」を押すと, しばらくセットアップが始まるので待ちましょう. セットアップが終わると「LAUNCH LAB」がでてくるので, それを押します. すると, タブでjupyter notebookが開きます.

出典: Qwiklabs DIGITSによる画像分類入門 Page

あとはjupyter notebookに従って自習しましょう.

まとめ

実際にNVIDIA DLIをやってみました.
NVIDIAのホームページから, 無料のものをたどるのが難しかったため記事にしました.

参考文献

Read More

IPアドレス固定(DHCP固定割当設定) [Oculus Go]

今日はoculus goのIP固定について.

※ 重要 (2018-06-01追記)
Oculus GoのWifi設定から, 自分のWifiネットワークを長押しで, Wifiの詳細設定ができるということが分かりました…こちらが圧倒的に楽ですね.

Wifiルーターには「DHCP固定割当」という機能があります.
これは, 特定のMACアドレスに特定のIPアドレスを割り振るという方式です.

MACアドレスとは, コンピュータ1つ1つで違う値が設定されています(指紋みたいなもの).
これさえわかれば, ルーターからパソコンを簡単に調べることができるので, このパソコンにはこのIPと割り振る設定ができます.

では, 早速固定していきましょう.

環境 & 必要なもの

  • Oculus Go
  • ルーターとその管理者権限
  • Mac(PC)

Oculus Go MACアドレスを調べる

MACアドレスを調べるには3つ方法があります.

  1. adb接続して確認する.

  2. LAN内で使われているIPアドレスを調べる6つの方法(Linux/Windows)」から, arp or arp-scanコマンドを使って, 怪しいものを片っ端から調べる.

  3. 「MAC Address for Oculus Go Wi-fi access?」より, mobile hotspotを使う.

3つ以外もあるかもしれませんが, 私が知っているのはこれで終わりです.

今回は1について解説していきます.
ちなみに, 1番楽にできるのは2の方法だと思います1

Oculus Go 開発者モード設定

このサイトを見るとできます.
UE4 Oculus GoでVRアプリの開発を開始するまでの方法

すみません. 手を抜きましたw

adbインストール

Macなら, ターミナルで次のコマンドを打ちましょう.

$ brew tap homebrew/cask
$ brew cask install android-platform-tools

これでMacではadbのインストールできます.

Windowsの方なら「もっと簡単!adbコマンドを使えるようにする方法-ダウンロードして解凍してパスを通すだけでOK」を見れば設定できると思います.

adbで接続し, MACアドレスを取得する.

まず, MacとOculus GoをUSBで接続します.

そうしてOculus Goを見てみると, 「パソコンを信頼しますか?」みたいなのが出てくるので許可します.

その後, Macのターミナルで次のコマンドを打ちましょう.

$ adb devices
List of devices attached
adb server version (32) doesn't match this client (39); killing...
* daemon started successfully
xxxxxxxxxxxxxx device

「xxxxxxxxxxxxxx device」と出てくるはずです.

もし, 上のコマンドで下のようなエラーになった場合はOculus Goがスリープ状態?なため, コントローラーのホームボタンを長押しして, もう一度上のコマンドを打って下さい.

$ adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
ADB server didn't ACK
Full server startup log: /var/folders/zl/m1myvbps58sby5zzvrbvwrf40000gn/T//adb.501.log
Server had pid: 93474
--- adb starting (pid 93474) ---
adb I 05-30 15:44:40 93474 6217004 main.cpp:57] Android Debug Bridge version 1.0.39

~~ 省略 ~~

* failed to start daemon
error: cannot connect to daemon

$ # Oculus Goのスリープ状態を解除してもう一度
$ adb devices
List of devices attached
adb server version (32) doesn't match this client (39); killing...
* daemon started successfully
xxxxxxxxxxxxxx device

それでも出ない場合はUSBを接続し直したり, もう一度コマンドを打ったりしましょう.

Oculus Goが認識されたら次のコマンドを打ちます.

$ adb shell ip addr show wlan0
5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 3000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.xxx brd xxx.xxx.xxx.xxx scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx scope link 
       valid_lft forever preferred_lft forever

この3行目の「link/ether xx:xx:xx:xx:xx:xx」の「xx:xx:xx:xx:xx:xx」の部分がMACアドレスです. こちらを取得すればadbは終わりです. MACアドレスはどこかにメモをしておいて下さい.

ルーターでDHCP固定割当を設定し, IPを固定する.

MACアドレスもわかったので, ルーターでDHCP固定割当を設定します. そうすることで必ずそのIPアドレスが割り振られるので, 固定したことになると思います.

ルーターにログインする.

今回は「Macで自分のゲートウェイを確認する方法」より, 「route -n get 0.0.0.0」コマンドを使います.

$ route -n get 0.0.0.0
   route to: default
destination: default
       mask: default
    gateway: xxx.xxx.xxx.xxx
  interface: en0
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 

これで, Gatewayが取得できました. 5行目の「gateway: xxx.xxx.xxx.xxx」のxxx:xxx:xxx:xxxの部分をブラウザに入れましょう. 今回は「192.168.11.1」と仮定します.

すると, ポップアップなどでユーザー名とパスワードの入力を促されるので入力しましょう.

「ルーター ログイン」で検索し, 同じメーカーのルーターを見つけると, 初期ユーザー名と初期パスワードぐらいは出てくると思います. 設定した覚えのない方はそちらを見てみるのも良いと思います. もしくは初期化して, 初期ユーザー名と初期パスワードを打つ…という手もあります.

あとは, ルーターによって操作が違います.
私のwifi機器のメーカーはaterm(型番は忘れました)なので, それに沿った解説をします. aterm以外のメーカーの方は「<メーカー名> DHCP固定割当」で検索すると方法が出てくると思います.

atermルーターでのDHCP固定割当

まず, LAN設定を開きます. そして, 割当数を確認します.

Gatewayの4番目をその割当数以下のIPアドレスに設定しないと固定割当してくれないです.
例 Gatewayが「192.168.11.1」で, 割当数が「64」なら, 固定できるIPアドレスは「192.168.11.2 ~ 192.168.11.64」までです.

確認したら, 「DHCP固定割当設定」をクリックして, 追加を押しましょう.

そうすると, MACアドレスとIPアドレスを入力する画面になるので,

  • MACアドレスはメモしていた値をそのまま「xx:xx:xx:xx:xx:xx」
  • IPアドレスは, 上のGatewayの4番目をその割当数以下のIPアドレス「xxx.xxx.xxx.xxx

を設定して保存しましょう.

念の為, もう一度「DHCP固定割当設定」をクリックして, 設定されていることを確認して下さい.

これで固定割当は終わりです.

Oculus Go の再起動

Oculus Goを再起動します. USBをつなげたままなら, 次のコマンドを打てば再起動します.

$ adb reboot

その後, Oculus Goのコントローラーのホームボタンを長押しして, また「adb devices」を打ちましょう.

$ adb devices

最後に, 「adb shell ip addr show wlan0」を打ちましょう.

$ adb shell ip addr show wlan0
5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 3000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.xxx brd xxx.xxx.xxx.xxx scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx scope link 
       valid_lft forever preferred_lft forever

7行目の「inet xxx.xxx.xxx.xxx」が自分で設定したIPアドレスと同じになっていれば固定されています. おつかれまでした.

adbを無線で使えるようにする

IPアドレスを固定化した利点として, 簡単にadbを無線で使えるようになります. まず, ポートを開きましょう. 今回は「Oculus Document ADB」のexampleより, 5555を開きます. ほんとは4桁以上なら何でもいいです(多分)

$ adb tcpip 5555

コマンドを打ったあと, USBを抜いて下さい.
そして次のコマンドを打って下さい.

$ adb connect xxx.xxx.xxx.xxx:5555 
connected to xxx.xxx.xxx.xxx:5555

自分はなかなかできなくて, 一旦待ってもう一度やってみるとできました. なので, 少し待ってもう一度コマンド打ったらできるとかあるかも…できた原因が不明です.

まとめ

以上でIPの固定ができました. やってて思ったんですがsleep止めたいのに, sleepを止める手段がセンサーを塞ぐという物理的な手しか無いというのが…これからに期待ですね.

参考文献


  1. 2については「河童星人@kappaseijin」という方が既にツイートしていたので, 1の手順でやってみました. ↩︎

Read More

Popular Posts