脇の甘い日常

プログラミング関係のお仕事ネタや、チャリ、マラソン、トレランなどの趣味ネタを書き綴っていこうと思います

オープンソース活動==就職活動?

日々、オープンソースには本当にお世話になっている。

で、たまに思うことがある。この世知辛い世の中で、なんでこんなにボランティア精神に溢れる人が多いんだろう?

 

そこそこの時間は使うだろうに、何をモチベーションにしているのか。

以前は、純粋に自分が欲しいものを作って、それをオープンソースしていい感じに広げたいって動機がメインなのかと素朴に思っていたが、最近ではオープンソース活動が実は就職活動の一環になってるんじゃないかという気がしてきていた。

 

そんな中、さきほど目にしたブログがこちら。

tango-ruby.hatenablog.com

 

この記事を書いてる方はベルリングでスタートアップを立ち上げてる日本人だが、英語圏への転職で書類選考に通る確率を上げるには、Githubでのオープンソース活動が良いと書いておられる。

なるほど、いくらでも「盛り」ようがあって検証が難しい業務履歴書よりは、オープンで目に見える実績が役に立つということか。たしかに有名どころのオープンソースに貢献できていたらオっとなるかも。

 

そういえば全くの偶然なのだが、ちょっと前に初めてgithubオープンソースをあげてた。それがこちら。

github.com

 

今は組み込み関係のお仕事をしているのだが、シェルの無いリアルタイムOSなので、デバッグ用にシェル的なものが欲しいと思って作ったもの。

C言語で実装されたシンプルなシェルプログラム、名づけてnano-shell。

機能もシンプルで、プロンプトを出す、入力されたコマンドをパースしてargc,argv[]スタイルの引数で登録されたコールバックを呼び出すだけのもの。

githubにも自作シェル的なものは多くあるのだけど、かなりの大作だったり、依存関係が多かったりと、ざっくり見て気軽に使えそうなものが無かったので作ってみた。

 

別に海外就職の野望とかがあるわけじゃないのだが、自分が仕事で使える汎用的なものを上げとくと便利そう思ったのが動機。

 

行過ぎた自動化の先にあるのものは?

最近、やたら増えた気がするものがある。

自動清算機だ。

ちょっと前はスーパーの片隅に1台あるくらいだったのが、だんだんとその勢力を増している。よく行くレンタルDVD屋はフル自動清算になった。ユニクロはまだだが、近くのGUは基本、自動清算のセルフレジになってしまった。そういえばガソリンスタンドは、もはやセルフじゃないとこを探すほうが難しい。

  

それで気になったことがある。

低価格が生命線な業界については今後もこの流れは加速していきそうだが、そうなると世の中から「簡単なお仕事」ってのが、相当減ってしまうのではないだろうか?

 

すこし前に読んだ「AI vs 教科書が読めない子供たち」によると、中高生の3割が基本的な読解力も身についてないらしい。この子達は将来どんな仕事につくのだろう?

失業? 先進国では日本の若者の失業率は低いほうみたいだけど、今後さらに自動化が進んだらどうなるんだろう。

 

失業率の悪化と犯罪率の増加は相関があるらしいが、自動化によって直接的なコストは下げられても、失業保険やら犯罪対策やらで社会的なコストは増加しちゃんじゃなかろうか。

AIブームでさらなる合理化が進んでしまいそうな世の中だが、ほどほどにしといたほうが社会全体としては合理的なんじゃないかと感じる今日この頃なのです。

 

 

 

Netflixの海外ドラマ(非米国製)

 

 最新、Netflixの海外ドラマにはまっている。

海外ドラマといえば米国や韓国が主流なんだろうけど、Netflixではかなりマイナーな国の作品も扱っている。というかNetflixオリジナルとして製作している。

 

最近見たのはデンマークの「The Rain」とブラジルの「3%」。

「The Rain」は死の雨が降ってきて、それに触れるとウィルスに感染して死んでしまうという設定で、その原因を作ったとおぼしき主人公の父親を探すお話。

「3%」は世界のほとんどの人はスラムに住んでいて、プロセスという試験を突破して選ばれた3%になるとハイテクなセレブ生活が送れる島に行けるという設定で、シーズン1はそのプロセスをめぐるドラマ、シーズン2はプロセスを破壊しようとする組織と体制側?との間で翻弄される主人公達のドラマだ。

 

とにかく脚本が良い。俳優も無名な人ばかりなのだが、なかなか見せてくれる。あと、あまり人が死なない。これは偏見かもしれないが米国製のドラマはとにかくよく人が死ぬし、やたらと過激。リアルでも銃でばんばん人が死ぬ国なので、派手にやんないと刺激にならないのかもしれないが、オッサン的には疲れるのだ。でもこれらのドラマはじっくりと話しが進み、しっかりとストーリーを堪能できる。

それと吹き替えで使っている英語がわりと平易なので、英語の勉強にもちょうど良かったりします。オススメです。

 

雑なアップデートは非難を浴びる

先日、公開中のアプリをアップデートした。

いい感じの機能が出来て、旧来の機能はそれで補えるだろうということで、軽い気持ちで旧機能を削除してしまった。

とすると、どうだ。かなりの数のお怒りのメールと共に、アプリの評価が下がってしまった。まだ★の数に影響するほどではないが、最近の評価は上がる一方だったので大ショックである。

 

メールをくれたユーザさんに聞いてみたことろ、旧機能には自分が全く予想していなかった使い方があり、それは新しい機能では補えないものだったことが明らかになった。

結局、その使い方ができるような修正を行うことにした。

 

改めて今後のために、ユーザさんが現在利用中のオプションを全て把握できるような仕組みを組み込んでみた。その結果を見ると、今回影響を受けたユーザさんは全体の3%ではあったが、この1年でかなりユーザさんが増えたので3%でも結構なボリュームになる。これでは迂闊な機能削除や仕様変更は出来ないと思った。

 

競合アプリのレビュー欄を見てもUI変更などをした日には、「前のが良かった!」という書き込みで溢れいてる。それが良い方向であったとしても変化を嫌う人は一定数居て、ユーザ規模が大きくなるとその数も無視できないものになる。これは心すべきだなぁ。

 

 

 

電卓ができません

今リリースしているアプリに電卓的な機能がある。電卓といっても入力する金額の四則演算ができる程度なのだけど、さきほどユーザさんから「電卓ができません」とサポートメールがあった。この前後に文章はない。ただこの1行のみ。

まるでGoogle先生に問い合わせているみたいだ。

 

以前は、ほとんどの質問がしっかりとした文章だったのだが、最近、アプリのユーザ数が大きくなってからは、このような「1行質問」が増えてきた。

ユーザが増えるとは、いろいろなレベルの国語力を持ったユーザさんを相手にしなければならないんだと痛感した。

 

で、本題の「電卓ができません」という質問だが、当然この情報だけではどうにもならんので詳しく教えてくださいと返信した。

これまでの経験では、だいたい半数くらいはここで回答が無く終わってしまう。面倒になったのだろう。

 が、今回はちゃんと回答が返ってきた。

 

 「かけ算、足し算が出来ません」

 

うーん。一歩前進だがまだ分からない(笑)

この後、何回かのやりとりを重ね、やっと問題が見えてきた。

ひとつは掛け算の計算過程を表示するときに*を使っていたこと。

xではなく*だったのが混乱を招いていたらしい。

何の迷いもの無く*を使っていたよ(笑) 

パソコンユーザなら自然に理解してくれるだろうが、スマホオンリーの人にとっては確かに「打ったものと違う!」となるだろう。

ここは改善したい。

 

もうひとつの問題点は「=」ボタンが無いことだった。

スペース的に「=」を配置する場所がなかったので、ボタンサイズを小さくして詰め込むよりは、「+」ボタンを押せばその時点での計算結果は表示されるし、問題ないと考えていたのだが、これが大甘だったようだ。「+」で結果を表示させるという発想はなかなか出ないみたい。これも改善が必要だ。

 

そういえば昨日読んだ記事は絶妙なタイミングだったなと思い出した。

ユーザ目線で考えて、迷わせないUI設計を心がけたいものだ。

u-site.jp

 

二の補数

昔、学生の時に習った補数表現。
今まで何度かお仕事で使う機会があったのだが、その仕事が終わるとすぐに忘れてしまうので、備忘録的にまとめておく。

 

二の補数はマイナスの表現方法だ。
計算方法としては全ビットを反転させて、+1する。ただそれだけ。


例えば8bitの-1の二の補数は
 1) 元データ: 0000 0001
 2) ビット反転: 1111 1110
 3) プラス1: 1111 1111

十六進数だと0xFFとなる


もうひとつ、-128だと

 1) 元データ: 1000 0000
 2) ビット反転: 0111 1111
 3) プラス1: 1000 000

十六進数だと0x80となる

 

単純に最上位ビットを符号判定に使うほうが人間的には分かりやすいと思うのだが、コンピュータ的にはマイナスを二の補数にすることで全て「加算」で処理できるという大きなメリットがあるので、こちらが使われているようだ。


例えば5-3を考えると3の二の補数表現は111 1101なので

   0000 0101
+ 1111 1101
------------------
1 0000 0010

となる、先頭の桁あふれ部分は捨てられるので2が得られる。


多分、もう忘れないはず。。。

 

AI的思考な息子

下の息子が前回の中間テストでファンキーな点を取ってきて以来、毎晩30分ほど勉強を教えている。

 

何回か教えている中で、息子には計算や単語力とかそれ以前の問題として、驚くほど読解力が無いことに気づいた。
そもそも、まともに文章を読もうという気が無いのか、自分が知っているパターンを片っ端から当てはめている感じなのだ。
なので、ひとつの問題が解けたからといっても全く油断できない。似たような問題を出してもトンチンカンな答えをしたりする。
本当に理解して解けたのか、たまたま彼の持ってるパターンに一致して正解したのかを見極める必要がある。

 

そんな感じで四苦八苦してる時に、「ロボットは東大に入れるか」というプロジェクト(東ロボ)が東大合格を断念したというニュースを耳にした。

bylines.news.yahoo.co.jp

 

なかなか興味深い記事だった。

実はAIも文章の意味を理解できていないのだ。基本的には問題を検索と確率だけで解いている。
動詞や接続詞などを拾うことで選択の精度を高めることはできるが、「理解」はできていない。
さらにこの記事では、実は子供たちもAIと同じようにキーワードとパターンで解いている子が意外に多いと指摘している。
AIと同じことをしてたらAIに駆逐されますよというのが、この記事のテーマのようだ。

 

うーん、うちの子も駆逐されちゃうよ、、、
どうやったら読解力を鍛えることができるのか。
頭を抱える日々が続いている。