vol39. 日本 vs ポーランド戦で思うこと

mainichi.jp

サッカーW杯2018、1次予選 第3戦の試合をTV観戦した。

結果は0-1の敗戦だったが、日本代表は勝点4で、同H組2位を争うセネガルをフェアプレイ ポイント差でかわして、決勝トーナメントに進むことが出来た。

でも、観戦している中で日本代表がとった戦術について、いろいろな感情や思いが湧いて きた。きっと、この後、賛否両論、いろいろな意見がネットを中心にとび交うであろう。

その中の一つの意見として、自分もここに意見を述べてみたいと思う。

状況

状況はこうだ。

酷暑、前試合から中3日という状況だったため、日本代表は、先発を6人いれかえ、コンデ ィションのよい選手を優先させた。

試合内容は、日本代表が優勢、後半もチャンスがいくつかあった。しかし、後半14分にフ リーキックから失点。この時点ではコロンビア-セネガルは0-0の同点だったため、追いつ かないと決勝トーナメントに進めない状況。乾を投入し、点を取りにいくが、チャンスを つくれない。ボールも持てない。逆に、カウンターで更に失点する危機が多数。川島の2 度のスーパーセーブでなんとか持ちこたえる状況。

そんな中、 後半29分に、コロンビアが1点決めた。この時点で、セネガルと日本は勝点 数、得失点数、総得点数が共に同じ、直接対決は引き分け、という珍しい状況が起きた。 この場合、フェアプレイポイントと呼ばれる、もらったイエローカードやレッドカードか ら算出されるポイントで上位が判定される。そのフェアプレイポイントの差で日本が2位 の状態となった。

日本は攻めに行くも、まったくボールも奪えず、ボールを奪ってもまともな攻撃ができな い状況。その後、日本は長谷部を投入。セネガルがこのまま負けることを願い、守りには いったのだ。

ボールを保持した状態では、まったく攻めずにボールを回すだけ。守備では、カードをも らわないように接触プレーをさけてのディフェンス。ポーランドも勝っているので、特に ボールを追いかけない。観客からは大ブーイング。結果的にそのまま0-1で日本敗戦のま ま、試合終了。セルビアも0-1でコロンビアに破れ、試合終了。 結果、日本の決勝トーナメント進出が決まった。

感じたこと

この試合を観戦し終わって感じたことは、決勝トーナメントに進めるのは素直に嬉しい。 日本代表の試合が少なくとももう1試合みれるから。

でも、これは、後悔する戦い方だったと思う。

もし、セネガルが点を決めて追いついていたら、日本は決勝トーナメントに行けなかった 。その為に、決勝トーナメントにいけなかったら、本当に悔やんでもくやみきれない、他 者依存の戦い方だ。

それよりは、リスクを犯して1点を取りにいき、同点を目指して勝点を奪い、自力で決勝 トーナメントに進む戦いを目指してほしかった。後半失点するまでのパフォーマンスを見 ていたら、日本が攻めにいって、ポーランドから1点を奪える可能性は十分にあったと思 う。

反対論

客観的に考えるために、反対論を考えみよう。

リスクを犯して1点を取りにいき、2点目をポーランドに奪われた時にどう思うだろうか? やはり悔しい。後に、守りに入ればよかったと後悔するか?確かにするかもしれない。

失点後のパフォーマンス。著しく攻めてを欠き、ボールが繋がらず、セカンドボールが奪 えない。

  • 攻めの交代選手を入れて得点できる可能性、その時の失点する可能性
  • 守りに入って、カードを貰わずに失点しない可能性
  • セネガルが得点するであろう可能性

これらの可能性をすべて鑑みて出した結論が、西野監督のチョイスだったのだろう。 そういった意味では、結果論でいうと、正しい決断だという意見も一定の理解はできる。

まとめ

でも、そもそも何故、選手はワールドカップに出場したいと思うのか?

ワールドカップには、世界最高レベルで、全世界が見守る中で、自分達の力を試すために 、試合自体を楽しむために出場したいのではないのか?セネガル戦で、守って勝つより、 自分たちのプレーをして、みんなでカバーしながら戦おうという選択をして、守りきった ではないか!!あの時の気持ちを出してほしい。

もう一度言う。日本代表が予選を突破できたことは本当に嬉しい。 でも、もし全く同じ状況に、将来もう一度直面したら、その時は、ぜひとも戦ってほしい。 チャレンジしてほしい。それが皆に勇気を与えると思う。感動を与えると思うんだ。

勝っても負けても、日本代表として、日本人でよかった、 日本人が誇らしいという思えるような戦いを期待する!!

がんばれー、日本!!

追記 (2018/6/30)

試合後1晩が経ち、メディアには様々な意見がとび交う。 自分もいろいろな意見を聞き、西野監督の試合後の記者会見の模様をみて、出てきた思いは、

  • 世界の最前線でやっている人間こそ、肯定的な意見を表明している
    本当に厳しい世界で戦っているからこそ、なにがあっても結果を求める姿勢が大事なの ではないか?
  • 同じ日本人なのだから、仲間を守らなくてどうする?

試合中は、試合をみていても楽しくなかったし、やる気のないプレーに怒れたりもしたけ ど、その後冷静になってみると、西野監督や選手達も複雑な思いをもった決断だったんだ と改めて理解できた。そして、そういう中で、短い時間で判断し、結果をもぎ取った。

世界でも賛否両論があるが、ここは、日本のサポーターとして、日本人とて、日本代表を後 押しできるよう、決勝トーナメントに連れて行ってくれた監督の判断を支持したい。

本当に難しい戦いになると思うけど、もしベルギーに勝ったら、すべてが報われるような 気がする。がんばれ、日本!!

vol38. windows10でmDNSの問題を解決する

先日、windows10で名前解決の問題にぶち当たった。windows10からLAN接続されている機 器に対してpingが通らないのである。

結論からいうと、windows10に実装されているmDNSを無効にして、3rd party のmDNSをイ ンストール(bonjour)したら問題が解決した。

windows10に3rd partyのmDNSをインストールしても、window10で実装された標準mDNS が優先的に使用される、かつ、このmDNSがバグってる(予想)ので、うまくうごかなかった模様 。レジストリを修正して、標準mDNSを無効にしないといけない。

解決に丸1日以上かかったので、うっぷんばらしと、今後の備忘録代わりにブログに投稿 しておく。

問題の概要

ホスト名(hogehoge.local)でターゲットを指定すると、ホスト名が見つからないと怒られ る。IPアドレス指定は問題なしなことから名前解決の問題。 ホスト名指定でも、ping に-4オプションを加えとipv4指定すると動くが、-6とipv6指定すると動かない。 以下はそのログ。

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping hogehoge.local
ping 要求ではホスト hogehoge.local が見つかりませんでした。ホスト名を確認してもう一度実行してください。

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping 192.168.100.18
192.168.100.18 に ping を送信しています 32 バイトのデータ:
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping fe80::2fc:70ff:fe00:1
fe80::2fc:70ff:fe00:1 に ping を送信しています 32 バイトのデータ:
fe80::2fc:70ff:fe00:1 からの応答: 時間 <1ms
fe80::2fc:70ff:fe00:1 からの応答: 時間 <1ms

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping hogehoge.local -6
ping 要求ではホスト hogehoge.local が見つかりませんでした。ホスト名を確認してもう一度実行してください。

C:\Program Files (x86)\Microsoft Visual Studio 14.0>ping hogehoge.local -4
hogehoge.local [192.168.100.18]に ping を送信しています 32 バイトのデータ:
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.18 からの応答: バイト数 =32 時間 <1ms TTL=64

システム構成

システム構成は以下の通り

  • PC A (Windows10)
  • PC A (Linux Debian(Vmware on Windows10))
  • PC B (Windows7)
  • 機器A (Linux: hogehoge.local)
  • avahi daemon を利用して、mDNS をサポート。機器名はhogehoge.local

システム内の機器はEthernet Switch を通じて接続。システム内のすべての機器はipv4, ipv6対応している。

詳細

以下詳細。

  • PC A(windows10)から機器A(hogehoge.local)へのpingで名前解決ができない

    • ipv4指定にすると(ping -4) 問題なし
    • ipv6指定にすると(ping -6) 問題発生
  • PC A(Linux Debian@vmware)からの機器へのpingでは問題なし

  • PC B(Windows7)でも問題なし

    • 標準状態では、ipv4, ipv6指定共に、問題発生 これは、windows7ではmDNSはサポートされていないから。 windowsでは、DNSサーバーがなしの名前解決のプロトコルとして、LLMNRが採用されているが Linuxではこのプロトコルはサポートされていない。
    • bonjour for windows といった3rd party 制のmDNS cleinet をインストールする とipv4, ipv6共に動作するようになる
  • その他

    • windows10にもbonjour install してみたけどNG.

問題解決方法

冒頭にも述べたように、結論から言うと、windows10のmDNSの機能を無効にし、他のmDNSクライアントを 用いることで問題が解決する。

  1. mDNSを無効にする
  2. 3rd party のmDNS client をインストールする

これで動くようになった!!

いろいろ情報を集めたけど、最終的な決めてとなったのは以下の投稿。感謝!!

http:// https://superuser.com/questions/1330027/how-to-enable-mdns-on-windows-10-build-17134

vol37. mDNSとは

Linux 上で、avahi を使って、名前解決をする仕組みを知りたかったので調べてみた。 UDPの上位レイヤーで動作するmDNSというプロトコルを使用している。

mDNS とは何か

  • multicast DNSの略
  • 通常のDNSは、DNS server に問い合わせ名前解決を行う。
  • mDNSは、マルチキャスト転送で、ネットワーク内のデバイスに問い合わせる事により、
    名前解決を行う
    • DNSサーバーがいらない。
  • RFC6762で規定

名前解決の流れ

  • client は、mDNS query メッセージをマルチキャストで投げる
  • 対応する機器はmDNS response メッセージをマルチキャストで応答
  • mDNSは、マルチキャストアドレス 224.0.0.251、UDP 5353ポートを使用
  • IPv4, IPv6のIP address の問い合わせは、query のType field で指定
    • Type field: 0x01 (ipv4)
    • Type field: 0x1c (ipv6)

      mDNS query メッセージ

      f:id:john-rama01:20180614071616p:plain

      mDNS answer メッセージ

      f:id:john-rama01:20180614072209p:plain

zeroconf との関係

  • 名前解決は、zeroconf 3つの技術のうちの1要素
    1. ip address の割り当て
    2. 名前解決
    3. device の位置の特定
  • avahi はzeroconf を実現するためのLinux上での実装。applebonjourという実装。

nsswitchとは

  • Linux における名前解決の為のclient system(avahi はmDNSの為の、server systemの
    位置づけ)
  • local file, mdns, dns 等複数ある名前解決手法のうち、どの手法を用いて、どの順序
    で名前解決をするかを決める。
  • 設定ファイル

      /etc/nsswitch.conf  
      hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns  
    

    優先順位は、files(/etc/hosts), mdn4_minimal, dns, mdns の順序。
    miinimal はホスト名に.localが含まれていないと名前解決を行わない
    mdns4 はIPv4のみ
    mdnsはIPv4, IPv6双方で名前解決を行う。

  • ping hogehote.local とうつと、上記の設定では、まず/etc/hostsの中身を確認し、次に
    mdns ipv4 プロトコルで、名前解決を試みる。失敗したら、dns server に問い合わせを行い、  最後に、mdns (v4, v6) で解決を試みるというながれ。

vol36. Ethernet AVB / Milan プロトコル

本日、MILANプロトコルが発表された。

Ethernet AVB/TSN に基づいたPro AV 向けのプロコトルで、Certified デバイス間の相互
動作を保証する。概要をまとめてみたい。

MILANとは?

  • AVB/TSNの上位layer(アプリ層)のプロトコル
    • Certified されたAVB/TSN デバイス間の相互接続性を保証する
    • アプリ及びNetwork layerへの要求を定義
      • compatible media streams, formats, media-clocking, redundancy
        and controller software.
  • Pro AV アプリ向け
  • 2018/6/5 にプレスリリースされた

Creators

AVnul Alliance 内のPro AV Marketの企業

  • AudioScience
  • Avid
  • Biamp
  • d&b audiotechnik
  • L-Acoustics
  • Luminex
  • Meyer Sound

概要

  • AVB protocol base (gen1)
  • Stream Format はAAF、Media Clock RecoveryにCRF、Device Discovery やConnection
    Management にAVDECCを採用
  • Redundancy に対する項目もあるが、それを実現するために、どのプロトコルをサポ
    トしないといけないかは規定していない。
  • user-driven protocolとのことなので、user の要求に基づいて、仕様が追加されていく形になるだろう

White Paper

以下、Whilte Paper のポイントを列挙

http://avnu.org/wp-content/uploads/2014/05/Milan-Whitepaper_FINAL-1.pdf

  • Ovewrview
    Milan creates the endpoint solution layer for professional
    audio equipment based on the following AVB IEEE stan-
    dards:

    Therefore, Milan defines a set of technical profiles for these
    IEEE standards dedicated to professional audio endpoints:

    • Media Clocking Specification
    • Stream Format Specification
    • Redundancy Specification
    • AVDECC Specification for Endpoint
  • Media Clocking Specification

    • What Format and Sample Rates are supported?
      • mandatory 48kHz
      • optional: 96kHz, 192kHz
    • CRF (Clock Reference Format) defined in IEEE 1722-2016.
  • Stream Format Specification

    • AAF 32bit (mandatory)
      • max 8ch per stream
    • High Capacity 32 bit (optional)
      • max 56ch per stream
    • High Capacity 24 bit (optional)
      • max 64ch per stream
  • Redundancy Specification

    • duplicating the network infrastructure into two independent logical
      networks (e.g. a broken cable or power loss of a bridge). By
      connecting endpoints to both networks, seamless redundancy can be
      achieved.
    • Milan does not specify a particular implementation, rather defines the
      gen- eral requirements that implementations must adhere to in order to
      achieve interoperability.
  • AVDECC Specification for Endpoint

    • The Milan AVDECC specification provides a consistent set of
      requirements that provides the following features:
      • Automatically discovers the addition and removal of pro audio
        devices on the network
      • Retrieves the entity model of the discovered pro audio devices
      • Connects and disconnects streams between the discovered pro audio devices
      • Obtains status information about the discovered pro audio devices
        and their connections
      • Controls the discovered pro audio devices
  • 参考
    http://avnu.org/milan/
    http://www.inavateonthenet.net/news/article/avb-based-milan-protocol-promises-to-boost-open-standards-networking

vol35. 英語の勉強方法について振り返る

過去に色々な英語を試してみた。どの勉強方法が効果的だったかをあらためてふりかえってみたい。

ipad で英語タイトルのドラクエ

  • 1タイトル500円 - 2500円程度
  • ドラクエ1から8まで発売されている(英語版は7はまだリリースされていない)
  • ipad で辞書を引きながら進める
  • 幼少の頃にはまったドラクエ。ストーリはバッチリ覚えているので、わからない英
    語があっても飛ばして楽しめる。街の人々との会話は、まさに英会話のレッスンになる
    スマホ版でリメイクされていて、グラフィックがキレイになり、新しいキャラやスト
    ーリーも追加されている。AIモードも追加されているし、quicksave機能でフィールド
    上ですぐにsaveができるのも便利。iOS11のsplitview 機能をつかって、気になる単語
    が出てきた時は、辞書ですぐに調べると語彙力もグンとあがる。

https: appadvice.com

オンライン英会話

いろいろなオンライン英会話学校がある。skypeをつかって、ネット上で海外の先生と話
す。自分は、skytalkを利用した。skytalkの先生はフィリピン在住の先生が主。フィリピ
ンは主言語が英語なので、どの先生もペラペラ。

  • skytalk
    • 月 5000円 で毎日25分レッスン
    • 先生をその日の気分で選べる
    • 英語を話す時に感じる照れの解消や度胸をつけるのに役立った。

skytalk.co.jp

図書館で、幼児向けの英語の絵本を大量に借りる。

  • 図書館だからタダ
  • 1冊5分-10分くらいでサクサク読める
  • 最初は楽しく読んでいたが、ストーリーが幼稚で流石に飽きてきた

Youtube 幼児向け動画

  • Peppa Pig
    • これも1話が5分-10分くらい。
    • 絵本と同じく、これも、最初は楽しんでいたが、ストーリーが幼稚で流石に飽きてきた
  • 他にも色々とあるが他にいいものを自分は見つけれなかった。

www.youtube.com

日本アニメの英語版

  • 子供の頃にみたアニメ番組が、英語で吹き替えされて、海外で放映されている。
    ネットで"watch anime dubbed"等で探すと、ガンダムとかエヴァンゲリオンとかジ
    ブリの映画とかがみつかる。
    もちろん、洋画を普通にみてもいいんだけど、ものによっては英語が聞き取れなく
    て、ストーリーについていけなかったりするから、過去にはまったものを英語で改
    めてみてみるのも良いと思う。英語に大量に触れるには良い題材だ。

その他

最後に

本当は、海外の人と1on1で話す場数を踏むのがもっとも早いと思う。何事もoutput が大
事だ。ただ、NOVAとか英会話学校は授業料が高いので、なかなか気軽に大量のレッスンは
受けれない。

なので、以下のブログのような、フィリピンセブ等への短期語学留学はとっても良い方法
だと思う。1ヶ月の滞在日、食費込みで、20万ちょい。後は飛行機のチケットを手配すれ
ばいいだけ。空き時間は、ビーチ等でのんびりできるしとても、よいかと思う。

おすすめの勉強法があったら、是非教えてください。

vol34. Linuxの時間関数

Linuxでは、time_t, tm, timespec, timevalなど、様々な型や構造体が、様々な関数で 使用されている。全体像を整理してみた。

全体像

f:id:john-rama01:20180602050949p:plain

man page で引くと
- gmtime() やlocaltime()は、ライブラリ関数
- time(), gettimeofday(), clock_gettime()はシステムコール

である

全体的にみると、システムコールカーネル層から取得した時刻を、ライブラリ関数で人
間にもわかりやすい形に加工するといった構造だ。

time_tは秒単位の情報を、timespec, timevalはそれぞれ、us, ns単位の情報を扱う。

    struct timeval {  
        time_t tv_sec;            /* Seconds.  */  
        suseconds_t tv_usec;      /* Microseconds.  */  
    };  

    struct timespec {  
        time_t tv_sec; /* Seconds.  */  
        long tv_nsec;  /* Nanoseconds.  */  
    };  

timeval時刻を取得するには、gettimeofday()を、timespec時刻を取得するには、
clock_gettime()を使う。ただし、gettimeofday()はPOSIX環境で古くから使われてきたが
、今は、非推奨でclock_gettimeが推奨されている。

time_t のインプリはアーキテクチャ依存で、32bit だったり、64bitの変数だったりする

time_tの情報を人間にわかりやすい形の情報で格納するための構造体がstruct tmだ。

    struct tm {  
        /*  
         * the number of seconds after the minute, normally in the range  
         * 0 to 59, but can be up to 60 to allow for leap seconds  
         */  
        int tm_sec;  
        /* the number of minutes after the hour, in the range 0 to 59*/  
        int tm_min;  
        /* the number of hours past midnight, in the range 0 to 23 */  
        int tm_hour;  
        /* the day of the month, in the range 1 to 31 */  
        int tm_mday;  
        /* the number of months since January, in the range 0 to 11 */  
        int tm_mon;  
        /* the number of years since 1900 */  
        long tm_year;  
        /* the number of days since Sunday, in the range 0 to 6 */  
        int tm_wday;  
        /* the number of days since January 1, in the range 0 to 365 */  
        int tm_yday;  
    };  

個々の関数の役割は、man page で確認して欲しい。

参照:

vol33. GDPRとは

最近、会社でGDPRに関する説明会が実施されたり、いろいろな会社から、GDPRに関する
メールが届いたり、GDPRという名前を急に身の回りで聞くようになった。

そこで、GDPRについて調べてみた。

GDPR(General Data Protection Regulation) とは

  • 欧州で始まる、個人情報保護に関する新しい法律

    • EU市民の個人情報の管理を厳格化し、個人データが安全であることを保障しなければならない
    • 個人データの利用方法について明確な同意を本人から得なければならない
    • 顧客の権限を強化
      • 本人の個人データへのアクセスや修正、削除を可能に
  • 2016/4/27に採択、2018/5/25より適応

  • 個人データは、名前、写真、メールアドレス、銀行の詳細、SNSの投稿やウェブサイト
    の更新情報、場所の詳細、医療情報、コンピューターのIPアドレスCookie、生体遺伝
    子情報、 思想信条、入れ墨に至るまで、個人に関する広範囲な情報

なぜ、EUでこのような法律が採択されたのか?

企業にとっては、GDPRに対応するのには大変な労力と資金が必要になる
では、なぜ、EUでこのような法律が採択されたのか?

  1. プライバシーの保護
    • ヨーロッパでは、会社から監視を受けること自体に大きな抵抗がある
  2. EU内のビジネスの保護
    • 特に米IT企業に強く抵抗するため

結果、米国のITスタートアップ企業やゲーム制作会社、広告技術会社の数社はGDPR
違反を犯すリスクより、EU撤退を選んだ。米国の小規模企業の一部でこうした動きが広
がっている。

なぜ今なのか?

ビジネスのグローバル化ビッグデータの台頭、クラウドサービスの利用拡大などのITの
進化により、個人情報保護の重要性が高まる一方で、サイバー攻撃や内部不正等によって
、個人情報に関るリスクが高まっていることが背景。
https://www.secure-sketch.com/blog/gdpr-5minutes-explanation

このプライベートデータは、何も欧州だけでなく、世界各国共通の事項だ。
欧州だけでなく、米国やアジアでも今後似たような法律が採択されるのか?