ホーム » コンピュータ (ページ 43)
「コンピュータ」カテゴリーアーカイブ
自宅のApple HomeとGoogle Homeの設定
最近は、家族も Google Home に慣れてきたけど、自宅独自で使えるようにした機能の家族向け説明。
Apple Home
Apple Home の機能は、スイッチ機能として設定しているので「〇〇をつける/消す」が基本。
チャンネルもスイッチ扱いなので「〇〇に替える」という言い回しは使えない。「〇〇をつけて」と言うこと。
家電のスイッチ [テレビ|チューナー|レコーダ|プレステ] を [つける|消す] すべての電源を消す チャンネル選局 [NHK|Eテレ|HAB|テレビ朝日|MRO|TBS|日本テレビ |フジテレビ|ディスカバリー|AXN|アニマックス] をつける # ただし、先にチューナーにしておくこと
Google Home
「テレビをつける/消す」は、Chromecast を経由した制御なので、言い回しの自由度アリ。
他の機能は、IFTTTを経由して命令するようにしたので、言い回しは限定的。このため「次のチャンネルに切り替えて」は誤認される。
家電のスイッチ テレビ を [つける|消す] チューナーを [つける|消す] すべての電源をけす テレビの入力切替 入力を [チューナー|Chromecast|PS4] にする [前|次] のチャンネル # チューナーのチャンネルの切り替えなので、 # 事前に入力をチューナーに切り替える必要あり。 チューナーのチャンネルを [NHK|Eテレ|HAB|テレビ朝日|MRO|TBS|日本テレビ |フジテレビ|ディスカバリー|AXN|アニマックス] にする # この機能は認識率が低い
iPhone6 ガラス割れ
足を怪我したり、突発性めまいで往診してもらったりと、家族に心配をかけた最悪な一年と思ってたけど、シメはコレだった。
iPhone6 ガラス割れ
最近、バッテリーの持ちも悪くなり、機種変考えていたとはいえ、やっちまった。
職場のトイレから出て、携帯カバンから取り出したら0.8mほどの高さから落とした。この高さからは何度か落としても無事だったけど、落ちる角度によっては見事に割れるもんなんだ…。(T_T)
iPhone X に乗り換え
ガラス割れで、早々に機種変。au 販売店とか量販店では、入荷に2週間ほどかかるけど、au Online Shop なら即納と聞いていたので、発注し早々に届いた。iTunes でバックアップし、iPhone X でリカバーで復旧するけど、機能の違いからあまり設定が引き継がれなかったので、ほとんど再設定となった。
pychromecastを使ってgoogle homeにキャスト
Google Homeを活用を模索するなか、Google Home は chromecast のスピーカーでもあるので、パソコンからchromecastの制御の記事を探してみた。
すると、pychromecast の記事を発見。
$ sudo aptitude install python-pychromecast
記事を参考に python script をコピペしたけど開発がすすんで関数名などが変更となっているようで、github 側の記事をみてちょっとだけ修正。pythonをいつも使っていないので、chromecast の試行錯誤の前に、漢字コードの扱いの方で四苦八苦。
#!/usr/bin/python2 # -*- coding: utf-8 -*- from __future__ import print_function import sys import re import time import pychromecast #------ ddev = "" #------ args = sys.argv args.pop(0) dev = "" # device url = "" # chromecast URL mtype = "" # media type # コマンドライン引数からキャスト内容を取得 if len( args ) == 3 : dev, url, mtype = args elif len( args ) == 2 : dev, url, mtype = [ ddev ] + args elif len( args ) == 1 : dev = ddev url = args[0] if re.match( r'\.mp4$' , url ) : mtype = 'video/mp4' elif re.match( r'\.mp4$' , url ) : mtype = 'audio/mp3' elif re.match( r'\.jpg$' , url ) : mtype = 'image/jpeg' elif re.match( r'\.png$' , url ) : mtype = 'image/png' # デバイス一覧を取得 chromecasts = pychromecast.get_chromecasts() # 指定したデバイスを見つける cast = next( cc for cc in chromecasts if cc.device.friendly_name.encode( 'utf-8' ) == dev ) cast.wait() # キャスト開始 mc = cast.media_controller mc.play_media( url , mtype ) mc.block_until_active()
Symbol’s value as variable is void: last-command-char
Emacs25 の anthy.el で、”Symbol’s value as variable is void: last-command-char”のエラーがでるようになった。
他の方の記事をみて、$HOME/.emacs.d/init.el に以下を書き加える。
(define-obsolete-variable-alias 'last-command-char 'last-command-event "at least 19.34")
High Sierraのrootパスワード
High Sierra でユーザ名に root を入れたら、パスワード無しで root になれる件、対策で root のパスワード設定するだけでいいらしい。だけど、その方法の紹介記事が、root を有効にして…とか面倒な方法が書いてある。
$ sudo passwd root
でいいんじゃね?って思ったけど、やっぱそれで充分だよね。
JetPack Photonにビビる
自宅サイトは、pet カテゴリーに投稿した写真をランダムに選び、トップページに時々表示するようにしているけど、最近その写真を選ぶ処理がエラーとなっている。
原因を調べようと、WordPressによって生成されているソースを眺めると、画像ファイルの URL に、http://i0.wp.com とか、http://i1.wp.com とかが付加されている。一瞬、クラッキングされてマルウェアを誘導する外部サイトへのリンクが埋められたかとビビった。
これは、JetPack の Photon をインストールすると、画像のキャッシングを外部サイトと連動して行うために埋め込まれるらしい。JetPack の公式な機能だけど、処理がややこしくなるので、この機能は Off とした。
丹南ケーブルの新DNS
丹南ケーブルさんから、ネットワークの安定対策でDNSサーバの更新と、古いDNSを2018/01/16に停止するとの書類が送付されてきた。
- 202.127.80.1 プライマリ # 2018/01/16に停止予定 - 202.127.80.2 セカンダリ # 2018/01/16に停止予定 + 202.127.80.3 プライマリ + 202.88.193.82 セカンダリ
停止するDNSサーバは、IPアドレスが連番で、DNS 所属する上流ネットワークで機器トラブルが発生したら、サービス全体に影響してしまう。このため、セカンダリは別ネットワークに構成するのが定番なので、そういった対策なんだろう。
ただ、最近は DNS に、Google の 8.8.8.8 を指定するのがデフォルトな環境も増えている。んで、我が家は先日、Cisco の OpenDNS に切り替えているので、特に影響はない。
トラブル時の DNS 設定を探すために、/etc/bind/named.conf.options の fowardars 欄に、コメントで情報書き込んでおいた。
鶴亀算とプログラミングと人工知能
子どもに「プログラミングと人工知能の違いって何?」と聞かれたので、説明。
鶴亀算
鶴亀算とは、「鶴と亀がそれぞれ何匹かいます。頭が h 個、足が f 本だとする。この時、鶴が x 匹、亀が y 匹か答えよ。」という問題。
この問題をどうやって解くか?
(a)普通のプログラミング
この問題であれば、
h = x + y ; f = 2*x + 4*y ;
の関係が成り立つけど、コンピュータは自動的に連立方程式を解いてくれるわけではない。このため、問題から
h = x + y ; // アルゴリズムを考える作業... f/2 = x + 2*y ; よって y = f/2 - h ; // 解き方 = アルゴリズム x = 2*h - f/2 ;
こういう問題を解く考え方・手順をアルゴリズムという。
これを実際のコンピュータで動かすために、例えば C 言語で書いてみる。
#include <stdio.h> void main() { double h , f , x , y ; scanf( "%lf%lf" , &h , &f ) ; // 頭と足の数を入力 x = 2 * h - f / 2 ; y = f / 2 - h ; printf( "鶴=%lf\n" , x ) ; printf( "亀=%lf\n" , y ) ; }
このように、アルゴリズムを実際のプログラム言語で書くことが、プログラミング(コーディング)。プログラマーは、アルゴリズムを考えプログラムを作る人。あえてプログラマの仕事を分類するなら、アルゴリズムをや、どうプログラムを動かすのか設計するのがシステムエンジニア、その設計に沿ってプログラムを書くのがコーダ。
人工知能
最近は、碁の世界で、プロ棋士を人工知能のコンピュータが勝ったと、ニュースになって「人工知能」という言葉がもてはやされているけど、20年ほど前に研究されていた人工知能と、最近のディープラーニングとか機械学習といったキーワードで説明されている「人工知能」はまるっきり違うものである。例え話で言うなら、昔の人工知能は「論理的思考の左脳」を作ることを目指していた。一方、最近の機械学習の人工知能は「直観的思考の右脳」とみなすことができる。
(b)論理的思考の人工知能(左脳的人工知能)
鶴亀算でいうならば、問題から以下の方程式が与えられたら
h = x + y ; f = 2*x + 4*y ;
既知変数が、h , f で、未知変数が x , y だから、連立方程式を自動的に解いて、x , y を答えてくれるようなシステム。
(c)直観的思考の人工知能(右脳的人工知能)
最近の機械学習とかを、極端に簡単な表現をすると…
脳の神経細胞(ニューロン)の動きを真似する神経細胞網(ニューラルネットワーク)を作っておき、
h=2,f=6,x=1,y=2...間違い h=2,f=6,x=1,y=1...正解 h=3,f=8,x=1,y=1...間違い h=3,f=8,x=2,y=1...正解 :
というような、正解や間違いを大量に与えることで、x,yの関係を覚えていくのが機械学習。連立方程式を解く訳ではないので、学習が不十分だと、ほとんど正しい答えを答えるけど、たまに間違えるという状態の時もある。
最近の碁のシステムは、これらの組み合わせ
最近の碁などでの人工知能の活躍は、これらのプログラミングがうまく組み合わせることができるようになったから。例えば、石を打つ時に、石の配置を管理するのが(a)普通のプログラミング。石を打つ時に「ここはもっと深く先読みが必要かな?」、「ここは石の配置からいい手かな?」といった判断(静的評価)に(c)機械学習による人工知能を使う。さらに先読みすべきかの点数が高いものを選んで、その先の手を打った場合の石の配置の点数を集計して、先読みした場合の評価(動的評価)を行うのが、(b)論理的思考の人工知能のテクニック。
aptitude purge nano
Linux で vipw とか visudo とかのコマンドを実行する時に、”vi”という名前のくせに、エディタ nano が起動して相変わらず使い方が判らない。
“export EDITOR=vi”とかをやりながら使っていたけど、よく考えたら nano なんて使ってないし、消せば alternative 機能が vim.tiny に切り替えてくれる。 だったら素直に “sudo aptitude purge nano” でいいじゃん。
インドネシアでの接続許可
自宅サーバは、IPアドレスのgeoip情報を調べて 怪しい国からは接続拒否などをするようにしてあるけど、 インドネシアへの出張を控え、接続許可設定を行う。
# 出張終わったら、また接続拒否するだろうな…