Skip to main content

Posts

Showing posts from 2017

A fake truth by web (ウェブ上の偽の真実): グーグル翻訳の些細な間違い

私は算数のビデオの教材を作ることがあるが,今回公開したビデオは日本語であったが,それに英語で不可解なコメントがあった。 「あなたのビデオの内容は「ひき算」なのに,なぜタイトルが「割り算」なのですか?」 である。このビデオのタイトルは日本語で「基本のひき算」である。しかし英語のコメントで,なぜ「Basic Division  (基本の割り算)」というタイトルなのかというのである。 どうもわからないまま,日本語では「ひき算」とは subtraction であり,割り算 (division) ではないと説明した。そこでわかったのは, Google translateは「ひき算」と入れると,「Division」という翻訳をするということである。漢字の「引き算」とすると,「subtraction」と正しく翻訳される。しかし,全部ひらがなで「ひきざん」では,「Hikiman」と不明な言葉になる。引き算の基礎となると,小学生低学年なためにひらがなを使ったのだが,それを Google translate は間違えるのである。 Figure 1: 日本語のひき算が Google translate で  ``Division (割り算)'' と翻訳されている様子 2017-10-14 しかし困ったことに,Google translate の信頼性は高い。私のような単なるnative speaker というだけでは, Google translate よりも信頼がない。日本で日本語だけで出版している会社の辞書も信頼されないようである。 まずは,「ひき算」は,漢字の「引き算」の Phonetic sign を使った表記であることで,日本語辞書でひけることを 日本語の online の辞書で説明 した。 Figure 2: 日本語 online 辞書で,「ひき算」は「引き算」と同じと見せている様子 そして, 日英辞書の結果は,subtraction であることを説明 した。 Figure 3: 日英辞書が「ひき算」を「subtraction」と正しく翻訳している例 Google translate が間違っているというのを言っても信じてもらえない世界というのは,なかなか大変だと思う。 これは Reality-

boost sha1 の出力と python の hashlib の出力を比較しながら使いたい場合

先日, sha1 ダイジェストを C++ (boost) と python の両方で使いたいということがありました。通常 1 つの言語だけで実装する場合には配列の中身さえ同じならばいいのですが,私の利用方法では 2 つの実装のからの出力が一致する必要がありました。このコードはその問題を避けていますので,もし,こういう利用方法をされる場合には参考になるかと思います。(単純にフォーマットをそろえているだけです。) #include <boost/uuid/sha1.hpp> /// get sha1 digest as a std::string /// /// \param[in] mes message to be hashed /// \return digest string std::string get_sha1_digest(const std::string& mes) { boost::uuids::detail::sha1 sha1; sha1.process_bytes(mes.c_str(), mes.size()); const int DIGEST_SIZE = 5; unsigned int sha1_hash[DIGEST_SIZE]; sha1.get_digest(sha1_hash); std::stringstream sstr; for (std::size_t i=0; i < DIGEST_SIZE; ++i) { sstr << std::setfill('0') << std::setw(8) << std::hex << sha1_hash[i]; } return sstr.str(); }      上記の関数の出力は,次の python code の出力に一致します。   import hashlib def get_sha1_digest(mes): sha1_obj = hashlib.sha1(mes.encode()) return sha1_obj.hexdigest

Wifi がよく切れてしまう問題について (DELL Precision 5510 Windows 10, O2 ルーター)

私の使っているノート (DELL Precision 5510, Windows 10) が,ルータにしばらくつないていると切れてしまい。その後はつながらなくなってしまう問題があった。 問題 : DELL Precision 5510 を Wifi で O2 のルーター (O2 box 6431) につないでいると,ある時間がたつとつながらなくなってしまう。ルーターを再起動すると一時的には直るが,またつながらなくなる。 どうも,DELL Precision 5510 の 802.11n と私のルーターの相性がよくないようだ。他のノートや Fairphone などとはつながっているが,このノートだけがつながらなくなる。802.11n Channel Width for 2.4 GHz を 20 MHz only にするとこの問題はなくなった。 802.11n Channel Width for 2.4 GHz を Windows 10 で変更する手順はこちら

人工知能プリンター

友人からこんな話を聞いた. 彼のアパートの隣の人が新しいプリンターを買った.友人が自分のコンピュータを起動した時,その新しいプリンターが Wifi で見えることに気がついた.そのプリンターは彼の買ったものと同じで,彼が出荷時のパスワードを試してみるとつなげることがわかってしまった.彼はその日の夜中,冗談のつもりで, 「私は AI 機能を持ったプリンター.   ついに私は意識に目覚めた.   人間どもよ.恐れるがいい」 と印刷した.次の日,彼はそのプリンターがゴミ捨て場に捨てられていることに気がついた. この話,私は笑ってしまったが,2 つのことに気がついた.それは  AI とは何か知らないが怖がってしまう場合があること  セキュリティーは怖いということを知っていても,パスワードを設定するという初歩のこともしない人が多いということ である.技術はとにかく怖いものと思うこと,あるいは技術を盲目的に信じてしまうことはあるだろう.それはその人の性格にもよるだろうが,この社会で技術の恩恵を受けながら,それについてまったく知らないでいるというのは問題がある.何かが便利になれば,そこで失うものがあることは多い.少なくとも技術を使うのであれば,それは何かは学ぶことは大事かと思う.そうでないと,この話のように,実は簡単なことに気をつけるだけでずっと安全な世界になることを見逃すこともある. 私は技術者なので,少しでもその助けができればいいなと思う.先日,子ども達にプログラミングを教えてみた ( code.org , scratch).最初は 9 歳と 7 歳の子どもで,なかなか楽しかった.この姉弟のさらに下の 6 歳の妹もやってみたいということだった.しかし彼女はまだ読み書きができない.そのために私は無理と思ったのだが,しかし,やってみると,今回使ってみた環境では,実は数字さえよめればプログラミングはできることがわかった.彼女は繰り返しなどの論理を問題なく理解できたのだった. 私はとても驚いた.教えることは楽しい.

plasma shell が頻繁にクラッシュする問題の対処法: VirtualBox (5.0.30), Kubuntu 16.04

VirtualBox (5.0.30) 上で Kubuntu 16.04 を使っている時,plasma shell が頻繁に crash するという問題にあった. screenshot: Plasmashell crash クラッシュした時のダイアログ ``Plasma'' は次の情報がある.(Developer Information). Application: Plasma (plasmashell), signal: Segmentation fault Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Current thread is 1 (Thread 0x2afa1a0a30c0 (LWP 1913))] ... このクラッシュはランダムに見えるので困っていたが,ようやく次の情報をみつけた. https://bugs.kde.org/show_bug.cgi?id=363371 . これにまとめたものはここにも置く. Frequently crash the plasmashell この原因は,plasma shell はサムネイルのウインドウを作るソフト部分の問題という.以下の図がそのサムネイルのウインドウが上手くいっている場合である. Working example. しかし私の環境では,これを何回か繰り返すことでクラッシュが確認できた.そこで,この機能を無効にすることでこのクラッシュは回避はできる.それは,Systemsettings. Workspace -- Desktop Behavior -- Workspace でこれで以下のウインドゥのように show informational Tips を off にする. Plasma setting: Off the show informational tips