memorandums

日々のメモです。

GAS (Google App Script) のparseIntでドハマリした件

新学期が始まりました。

今年度の担当講義で、1つの試行として、この講義を真似して、講義中にちゃんと聞いていることを確認するため(寝させないため)、授業中にクイズを差し込んでみています。

クリッカーシステムがないので、これまでも利用したことがあるGoogle Formsでやってみたのですが、授業中にいちいちQRコードを読ませるのは効率が悪かったんですね。。。

そこで、Google App Script(以降GASと略)で簡単なWebアプリが作れるらしいので、Fusion Tableという簡易DBと組み合わせてクリッカーシステムを作り試験運用を始めています。

とりあえず集計して課題点として評価するために、GoogleスプレッドシートとGASを使って簡単な集計プログラムを作っていました。

で、やっと本題です。

クリッカーシステムでは学生番号を手入力させるのですが、面倒くさくないように、現役生は下2桁だけ入力するように、再履修生はフル桁で入力するように指示しています。それでも、よく聞いていない現役生がフル桁で入力する者がいたり。。。

そこで前処理として、現役生であれば前処理するようにしてみました。

学籍番号は「入学年度学科コード0001」という感じです。下2桁なら「1」でいいわけです。

とりあえず「入学年度学科コード」が邪魔なのでreplaceメソッドで取り除きます。よくある手です。

id = 入力された学籍番号.replace("入学年度学科コード",  "");

で、これで「"0001"」という文字列が得られますので、parseIntを使って整数化してゼロを除去しようとしました。

id = parseInt(id);

すると。。。なぜか結果がおかしい。。。


文字列を整数化すると1桁の数値は問題ないけと60以上の番号は他の数字に置き換わります。。。不思議。サンプルは以下のような感じでした。わかります?これで何が悪いか?

3 → 3
7 → 7
64 → 52
68 → 6

ここから調べること1時間位。。。いろいろとデバッグしてみた結果、parseIntの動きが怪しいことがわかりました。で、JSのドキュメントでparseIntを調べると、0始まりの文字列は8進数になる。。。という情報が。そういうこともありましたが。。。まさかここに効いてくるとは。

上記のコードを以下のようにしてみました。2番めの引数が基数になります。これでうまく結果が表示されました。

id = parseInt(id, 10);

64は確かに8進数では52になりますが、68が6になるのは意味がわかりません。バグか?

ちなみにローカルでnodeで確かめてみたんですが、nodeのparseInt("0064")もparseInt("0068")も単純に0を除外した整数にすることができました。。。

Googleのドキュメントを調べてみたのですが、parseIntの解説がなく。。。

最近、GASの本が発刊されて再燃?しているように思います。

もし、同じような仕様を実装するときには注意されたほうがいいと思います。はい。

もう終わりますが、praseIntで実験してみました。以下がテストプログラムです。

function myFunction() {
  for (var i=0; i<100; i++)
  Logger.log(parseInt("0" + i))
}

そして、以下が実行ログ。なんだろ。。。これ?仕様なのかな?バグなのかな?

0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
NaN
NaN
8.0
9.0
10.0
11.0
12.0
13.0
14.0
15.0
1.0
1.0
16.0
17.0
18.0
19.0
20.0
21.0
22.0
23.0
2.0
2.0
24.0
25.0
26.0
27.0
28.0
29.0
30.0
31.0
3.0
3.0
32.0
33.0
34.0
35.0
36.0
37.0
38.0
39.0
4.0
4.0
40.0
41.0
42.0
43.0
44.0
45.0
46.0
47.0
5.0
5.0
48.0
49.0
50.0
51.0
52.0
53.0
54.0
55.0
6.0
6.0
56.0
57.0
58.0
59.0
60.0
61.0
62.0
63.0
7.0
7.0
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN

ノマドできるところを1つ見つけたので

今日は授業がない日なのでどこででも仕事ができました。

普段は自宅近くの○大図書館に行くのですが、今日は別の候補地を探してみました。

ちなみに、以前にも探したことはありまして会員登録もして施設もとても綺麗なのですが1時間500円はなかなか高い。。。普通にカフェに行ってコーヒー飲みながら1時間くらいは作業できますからね。。。結局、これ一度きりでした。

ノマド的な隠れ家を探索してみた - memorandums

気を取り直して。

ググると、図書館系では電源が使える場所は以下の2箇所があるそうです。

福岡県立図書館

福岡市総合図書館

県立の方は箱崎なので、定期利用区間吉塚まで)から少し足せば行き来できます。総合の方は百道浜なので。。。ちょっと面倒。

箱崎に行こうかと思いましたが、もう少しぐぐってみると。。。以下がヒットしました。なんと、ここは1日いても500円!破格です。博多駅までなら毎日行きますので、それほど遠くはないし億劫でもありません。

福岡・博多の有料自習室 とても静かな環境の勉強場所 1日500円 博多駅前自習室

で、軽く予約して行ってきました。

入り口。

なかなか怪し。。。おっと失礼。

f:id:ke_takahashi:20180416134457j:plain

入るとすぐに受け付けがあり、予約した旨を伝えると電話番号を聞かれますので答えます。

そして、1日利用なので500円の徴収があり、あとは場所の選択になります。証明証の提示などが必要ないためネカフェより楽ですね。。。

場所はパソコンを使う場合と使わない場合にわかれるらしく。使う場所でも2種類があります。

1つは掘りごたつ形式。

f:id:ke_takahashi:20180416134352j:plain

もう1つは椅子です。

f:id:ke_takahashi:20180416105222j:plain

私は椅子の方を選びました。

電源があり、Wifiも使えます(もちろん使いませんでしたが)。

それぞれパーティションがありとても仕切られます。

周りの方も心得ているのか、とーーーーっても静かな環境です。

もし、うるさかったら知らせるシステムもあります。3人以上から苦情があった場合は利用停止になるとも書かれていました。こういう環境維持は重要ですね。

飲料は可で、食べ物は1階でとることとなっています。これも静音維持に効果ありますね。といっても食べている人はいましたが。。。

ちなみに1時間までであれば自由に外出できます。昼食が650円。その方が高いという感じ。。。

とにかく集中できることは間違いありません。

もちろん、また利用させてもらいます。いいところ見つけた。

退職したら、雑居ビルのフロアーを借りて、こういうスペース作るっていいかもなぁ。。。儲けを目指さないなら格安でもいけるだろうし。

想夫恋、美味いです

10年以上前に福岡(飯塚)にきたときから、この想夫恋の看板は目にしていました。

日田焼きそばの想夫恋

そもそも、なんて読むんだろう。。。という感じですが(ソウフレンと読むそうです)。

これまで一度も行ったことがありませんでした。

なぜか?

「やきそば?家で食べれるじゃん。。。店で食べて違いがあるとは思えない」と感じていたからです。

今日、午前中に小倉で非常勤があり、大学に戻る前に小倉駅で食事しようと店を探しました。

ちょうど駅チカに想夫恋があったので。

頼んだのは一番人気?とメニューに書かれていた生卵入りです。税抜き900円。ラーメンやうどんと比べると若干高めです。

昼時だったので10分くらいかかったと思いますが、来たのがこれ。

f:id:ke_takahashi:20180412131343j:plain

見た目はフツーの焼きそばです。

食べてみると。。。「違う」。いつも家で食べているのとも、キャンプなどで食べるものとも全然違いました。

まず、麺に油っぽさが全くないこと。そして、食べるとたまにシャキシャキする硬い部分もあり、それがまたいい。

ソースの味は食べたことがありません。ソースとも醤油ともいえない。。。独特な癖になる味です。

ご飯がサービスでつきましたが、これまた合います。

食べず嫌いとはまさにこのことをいうのでしょう。。。恐れ入りました。

ホームページによると日田発祥とか。

焼きそば、侮るなかれ。

B級グルメとして、各地で焼きそばを目にすることがありましたが、たぶん、そこそこで違って美味しいのでしょうね。

食べ比べしてみたいです。

デザイン思考

先週の日曜日にやることがなく、久しぶりに天神に行きまして、ジュンク堂書店で以下の本を見つけました。

 

まだ読んている途中なのですが感想を少し。 

 

エンジニアのためのデザイン思考入門

エンジニアのためのデザイン思考入門

 

 

東工大の大学院の一科目での試行をまとめられた本です。東工大生だけでなく、芸大生や社会人を巻き込んでチームを編成し、テーマを実現する様々な可能性を計画ではなくプロトタイピングすることにより一つの形にしていくようです。

 

この本で(まだ半分くらいですが)「はっ」としたのは、エンジニアリング思考とデザイン思考という言葉です。

同じチームに東工大生と芸大生がいて、一つのものを作る、このイメージで、今までモヤモヤしてたものが晴れました。

ちょっとそのモヤモヤについて書きます。

ここ数年、研究そっちのけでモノづくりしてみました。教える側がモノづくりできなくて、そもそも情熱すらないってのはあんまりだと思ったからです。要求はありません。イメージだけです。こんなのあったら面白いだろうなぁ。。。です。計画ベースのモノづくりはもちろん残るでしょうけどこれからはプロトタイピングしながら作っていくのが重要だと、ファブ系のイベントにも参加して実感してきました。しかし、これを人に教える方法論がない。。。事例もファブ系ならなくはないのですがモヤモヤ。。。という感じです。

また、最近、ネットでよく見かける「〇〇職やめて講習受けて3ヶ月でエンジニアになりました」という話。数年前から世界的にもブートキャンプで短期間に学びエンジニアとして活躍されているのを目にします。ツールの使い方だけ習得しても根本知らなかったら先ないんじゃないの?と思うこともありました。正直。全くもって余計なお世話なわけです。すいません。これが2つ目のモヤモヤについてです。

話を戻して、デザイン思考とは何か?本書の14ページに以下の説明があります。

デザイン思考とはユーザーへの共感から問題定義を行い、アイデアの発想、プロトタイプ、テストといった5つのステップを繰り返すことで、問題の本質をインサイトとしてとらえ、そのインサイトにもとづいたソリューションをデザインすること、そのプロセス、その考え方を、指します。

計画ベースではないことは明らかですね。アジャイル開発に近い。でも、アジャイル開発にデザイン思考が入っているのかと思うとそうとも言い切れません。

このあと半分くらいまで読んだ状態ですが、デザイン思考についてはこれ以上に明確な説明はないように見えます。

本書に書かれていますが、私の理解では、とにかく考えてこれがサイコーということは誰にも言えないのだから、実際に手を動かしてプロトタイプを作って様々な視点から意見をぶつけよう、ということがデザイン思考を実現する道筋だと思われます。その点はここ数年の自分の経験に照らしても納得です。

さらにここで重要なキーワードが「共感」です。プロトタイプを作ることで、ユーザーとも、チーム内でも、この「共感」を増すことができる、とのことです。

短期間にエンジニアになって活躍されてる人の話を書きました。なぜそれらの人が活躍できるのか、これは想像ですが、エンジニアリング教育をガッチリ受けることの弊害がないことが、この共感力を高めているのではないか?という点です。もちろん、短期間とはいえエンジニアリング思考的にも素晴らしい成果物を生み出し続けているエンジニアはたくさんいると思ますが、そういうスーパーマンは別として、ガリガリ学ばなかったからこそ見える世界があるんじゃないかと。そして、その感覚はユーザーと共感する点では最も重要なポイントと思います。

この共感という視点は全くもって欠けていたように思います。

もちろん、要求分析という言葉は知ってますし、実際に仕事としてやってきたこともありますが、あくまでエンジニアリングをベースとして考えてきたことを提案したり開発したりしてきました。

これが悪いとは思いませんが、どうしても完成しただけで時間切れ、あるいは満足してしまうことが多かったように思います。仕事としても、個人制作でもです。 

世の中で評価されているモノづくりは(技術主導の製品以外は)、この共感をうまく取り入れてきた成果なのではないかと思います。

私の感覚では、これまでが「作ってオシマイ」で、デザイン思考は「作って揉む」という理解です。

二年前から、建築士でもあるデザイン学科の先生と仕事(子供向けのデザイン教育イベントにも)させていただく機会がありました。その先生はテーマを決めるにあたって、場所もテーマを自由に選択できる状態から「こんなイメージにしたらどう?」という提案をさり気なくされます。そのとき、私はずいぶんと戸惑った覚えがあります。その先生の発言に対してではなくテーマを決めるにあたって自分からアイデアが出てこない自分に対してです。そのとき、仕事でも研究でも課題ありきで物事を考えてきたんだなぁ。。。と実感しました。

長くなりましたたが、今日はパソコンを忘れてきたので、電車内でスマホでこれ書いてます。かなり悪文かと思いますが。。。頭にあることを書き出してみました。

今年も卒業研究に、三年生向けのプロジェクトもあります。三年生のプロジェクトでは、今までにな音ゲーを作ろう、をテーマにしました。どんなものができるのか。。。楽しみです。エンジニアリングデザインプロセスを参考にさせていただきます。一度、見学させてもらいたいなぁ。。。

再生速度を3%にするととてもステキな音源になってしまうんですよ

本日、終日、在学生ガイダンスがあり、朝イチからだったので6時起きで出勤しました。帰ってきてフロってRSSを見てたら以下のような記事が目に入りました。

Windows 95の起動音を4000%の長さに伸ばしたらアンビエント風で瞑想に使えそうな神秘的サウンドに変化 - GIGAZINE

単純に面白そうなので真似してみようと思ったのが始まりでした。

とりあえず音編集といえばAudacityなので。。。やってみると以下のような感じになりました。

soundcloud.com

なんか違う。。。

以前、Premiereを使って動画編集したときに、ピッチを変えずにテンポを変える機能がなかなか優れてたなぁ。。。と思いだしたんですね。それで、Adobe Premiereで編集してみました。

まず、Windows 95のオリジナルの起動音が以下です。この音源はこちらからいただきました。

soundcloud.com

30%のスピードにしたのが以下。

soundcloud.com

次が9%のスピードにしたものです。

soundcloud.com

そしていよいよ3%が以下です。かなり上記サイトの音源に近づいたと思います。

soundcloud.com

他の起動音もあったので、ついでに3%スピードにしてみました。

Mac
soundcloud.com

Windows XP
soundcloud.com

Windows 98
soundcloud.com

Windows Me
soundcloud.com

Windows Vista
soundcloud.com

Windows NT 4.0
soundcloud.com

Windows NT 5.0
soundcloud.com

再生速度を落とすと使い物にならなくなるものと思ってきましたが、Premiereのアルゴリズムが素晴らしいのが、ほんと綺麗に処理できます。そして別の音源かのような感じにできちゃいます。素晴らしい!

ちなみに、これも再生速度を3%にしたものなのですが、何の音かわかります?😁

soundcloud.com

100均の耳栓でイヤーピース自作

ヘッドフォンの付属のピースが耳に合わず、手元にたまたまあったウレタン製のイヤーピースをつけて使ってきました。ウレタンいいですね。。。ほんとフィットする。

毎日使うせいか割れてきて。。。そろそろ変えなきゃと思っていたときに以下の記事を見かけました。

portal.nifty.com

で、出勤時に近所の100均に寄って耳栓を買ってきたんです。

f:id:ke_takahashi:20180403125643p:plain

昼飯終了して作業開始。

耳栓は長いので半分に切断しました。

上記の記事の通りで、穴をどうやってあけようかな。。。と。ドリルってのはいまいちそう。

とりあえず手元にあった金属棒をライターで熱して溶かす作戦をしてみましたが。。。黒焦げになるだけ。

次の思いついたのが穴あけパンチ。

ただ、どう考えても穴あけパンチのサイズはヘッドフォンの径より大きい。。。

100円だしダメもとでやってみたらうまくいきました。

f:id:ke_takahashi:20180403130011p:plain

かなーり不格好ですが、耳に入れてしまえば変形するので全然に気になりません。

若干、低音が若干薄くなった気がしますが。。。そもそも安いヘッドフォンなので気にしません。

結論としては、

  • 100均の耳栓は、他の多くの方の試行と同様に、イヤピースの代替えとして使えることが確認できました😁
  • 穴あけには、穴あけパンチがいいですね。

ちなみに、穴をウレタンの中心に持ってくるのはコツが入りますが、差し込んだあとクルクル回して中心に位置していることを確認するといいと思います。

以上です。

電動歯ブラシ(その後)

4ヶ月前に以下のエントリーを書きました。

memorandums.hatenablog.com

このときに電動歯ブラシを購入したのですがその後の報告です。

以前(ずーっと前)、親が使わないからともらったブラウンの電動歯ブラシを使ってみたことがあったのですが、1ヶ月も使わなかった記憶があり。。。買おうか迷った製品でした。

実際、使ってみると、本当にいいです。

買って使わなくなった家電やガジェットはたくさんありますが、電動歯ブラシはもう手放せないものになりました。

気分で普通の歯ブラシ(タフト)と切り替えながら使っています。

よい点をいくつか挙げてみます。

ツルツルになる

歯医者さんのブログで「就寝前の歯磨きは丁寧にした方がよい」とありました。で、寝る前は電動歯ブラシで磨くようにしています。この製品は磨きすぎを防止するために自動的に停止するようになっているのですが、夜は2回停止するまで(恐らく、推奨の2倍)磨くようにしています。ほんと、ツルツルになります。関係ありませんが、就寝前はフロスもするようにしています。

毎回きちんと磨ける

何をもって「きちんと」なのか。。。ですが、一応、アマゾンで染色剤も買ってみたのですが、うまく染まらなくて使っていませんが。。。歯の表面のツルツル感で磨けたと感じています。いい年になって気づいたのですが、歯磨きが下手なんですね。。。僕は。歯医者に通ったあとは意識していてもだんだんと「咥え歯ブラシ」になってしまい、特定の箇所だけを磨く傾向があるようです。気づけば10分以上磨いていることもよくあります。それでも、全体が磨けているかは。。。磨けた気になっていただけで、実際には何も磨けていなかったのでしょう。

時短になる

朝とか、時間がないけど、それなりに歯を磨きたいときには電動歯ブラシがぴったりです。電動歯ブラシのパッケージによく「手動の5倍」とか書かれていますよね?あれをまさに実感します。速度の分、時間が稼げるわけです。




春の新生活で家電等を買い揃えている方も多いはずですが、同じような問題感がある方は試してみてはいかがでしょうか?