GOENがあってOpenBadgeを調べてみる1
本日、GOEN Summit 2017に参加してました。
色々お話を聞いていて、すごく刺激になったものの、教育もしくは教育に絡んだビジネスの話が多くて、エンジニア的には、若干のぼっち感を感じていました。 そんな中、お昼のポスターセッションで、自分のフィールドに持ち込めそうなお話があったので、ちょっと調べてみました。
それが、 OpenBadge です。
これが、どういったものかは上記の Mozilla Japan ブログを読んでいただくとして、 すごく大雑把に要約すると、PS4 や Xbox にあるトロフィーみたいな機能のオープンな仕様を Mozilla が策定したということです。
このブログのサイドバーに、 Coder Wall のバッヂを表示していますが、これがもっとオープンな仕様になっているわけです。
とりあえず、今回は最初にバッヂをゲットするまでの流れを備忘録的に書いていきます。
https://www.flickr.com/photos/julietbanana/6137702745
バッヂゲットまでの流れ
- Backpack を取得する
- OpenBadge を発行するサービスで学習する
- バッヂを発行してもらう
これだけです。
1.Backpack を取得する
Open Badge Backpack は、Badge の獲得履歴を溜めていくサービスです。
https://backpack.openbadges.org/backpack/welcomebackpack.openbadges.org
無料でアカウントが作成できます。
https://backpack.openbadges.org/backpack/signup
ここでメールアドレスとパスワードを登録しておきます。
ちなみに、パスワードは下記の条件があるようです(私が怒られた内容のみ記載)
- 1文字以上の数字を含むこと
- 1文字以上の記号を含むこと
- アルファベットの大文字小文字が混ざっていること
2.OpenBadge を発行するサービスで学習する
ここで、幾つかの操作を行うとバッジをゲットできます。 http://toolness.github.io/hackasaurus-parable/navigator-badge/
このページでバッジゲットのために、必要なアクションは、
- アドレスバーのURLにの末尾に
#icanhack
の文字を追加してエンターキーを押す
First, change your address bar so its URL ends with #icanhack and press enter.
Now select this text.
と書かれている部分にマウスカーソルを当てて、文字を選択した状態にする選択した
Now select this text.
をコピーして、 画面4行目の点線下線部分にペーストする2つあるテキストエリアの冗談の内容をコピーして、下段のテキストエリアにペーストする
画面右下にある画像(多分、こいつが hackasaurus)のURLをコピーして、画面一番下の点線下線部にペーストする
以上です。
3. バッヂを発行してもらう
以上で、操舵輪の画像が表示されます。これが、このページで表示されるバッヂの画像です。 この獲得履歴をbackpackに残すために画面下部にあるメールアドレス入力欄に、 Backpack のアカウント作成に使ったメールアドレスを入力します。
そうすると、ダイアログが表示されて、バッジを Backpack に送ることができます。
Backpack のページに行くと、獲得されたバッジが表示されていることがわかります。
AWS LambdaでScalaを使ってみたんだが
こんな記事を書きました
とても気になっている問題があります。
それが、AWS Lambda Deployment Limits です。
項目 | デフォルトの制限 |
---|---|
Lambda 関数デプロイパッケージのサイズ(.zip/.jar ファイル) | 50 MB |
リージョンあたりの、アップロードできるすべてのデプロイパッケージの合計サイズ | 75 GB |
デプロイパッケージ(非圧縮 zip/jar サイズ)に圧縮できるコード/依存関係のサイズ | 250 MB |
こういう制限があるけど、Scalaコードは、Scalaの標準ライブラリとかjarに含まれるはずなので、Javaで書くよりもjarのサイズは大きくなるはず。 この影響がどれぐらいかというのを調べてみました。
実験
とりあえず、シンプルなサンプルとして、Serverless Frameworkで create
しただけのjarのサイズを見てみます。
Serverless Frameworkについては、Web+DB PRESS vol.95 で取り上げられてたので、読むといいと思います。
- 作者: 小出淳子,黒澤剛志,牧大輔,横江亮佑,山口貴也,尾藤正人,佐藤琢哉,中橋研太郎,田中慎司,小西裕介,伊藤直也,稲富駿,前島真一,長野雅広,山際康貴,のざきひろふみ,うらがみ,岡林大,遠藤雅伸,ひげぽん,海野弘成,はまちや2,竹原,大場寧子,大場光一郎,野々下裕子,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2016/10/22
- メディア: 大型本
- この商品を含むブログを見る
$ sls create -t aws-scala-sbt $ sbt assembly $ ll target/scala-2.11/hello.jar -rw-rw-r-- 1 k2 k2 15M 10月 29 00:58 target/scala-2.11/hello.jar
ということで、 15MB のjarができました。 この時点で既に 50MBの 30% を消費しています。
ちなみに、冒頭の記事で最終的に作成した、依存関係に skinny-json を追加したバージョンのjarのサイズを見てみます。
$ sbt assembly $ ll target/scala-2.11/hello.jar -rw-rw-r-- 1 k2 k2 37M 10月 31 12:48 target/scala-2.11/hello.jar
なんと、 37MB まで増えました。
実に上限の 74% です。
もう少し調べます。
AWS Lamdaでは、zip/jarの展開後の容量も制限があって、250MBに収まっている必要があります。
$ mv hello.jar hello.zip $ unzip hello.zip $ du -hcd 2 15M ./models 24K ./hello 108K ./com/thoughtworks 17M ./com/amazonaws 5.2M ./com/fasterxml 22M ./com 60K ./skinny/util 64K ./skinny 184K ./mozilla 2.0M ./software/amazon 2.0M ./software 16K ./META-INF/services 188K ./META-INF/native 344K ./META-INF 12K ./scala/compat 20M ./scala/reflect 720K ./scala/sys 68K ./scala/ref 52M ./scala/tools 128K ./scala/annotation 868K ./scala/math 15M ./scala/collection 2.3M ./scala/xml 80K ./scala/text 900K ./scala/concurrent 44K ./scala/beans 2.5M ./scala/util 1.2M ./scala/runtime 196K ./scala/io 97M ./scala 3.7M ./org/joda 5.0M ./org/apache 2.9M ./org/json4s 12M ./org 148M . 148M 合計
skinny-jsonを追加した状態で、展開後のファイルサイズは合計148Mでした。 250MBの59.2%ですね。こちらも制限の半分を超えています。
やはり、./scala
が 97M と大変ボリュームがあります。
油断してライブラリを追加してしまうと、あっという間に上限に迫ってしまいそうです。 気持よく開発をつづけてたら、突然デプロイに失敗する危険があります。
依存関係の追加は計画的に行いましょう!!
ちなみに
aws-java-gradle テンプレートで build したzipのサイズ
$ sls create -t aws-java-gradle $ gradle build $ ll build/distributions/hello.zip -rw-rw-r-- 1 k2 k2 7.9M 10月 28 14:41 build/distributions/hello.zip
こちらは、 15.8% ですね。
Windows10 Aniversary Updateでデュアルブートしてるubuntuのパーティションが削除されなかった
事の発端
え?これまじ???相当困る。仕事できなくなるんだが… https://t.co/cyF1K4H8zE
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年8月9日
いいねもらって喜んでる場合じゃなくヤバイ。影響調べないと… https://t.co/5opCKEzpBf
— 口玉(I am Scala Ninja) (@Kuchitama) August 9, 2016
仕事用のマシンを、デュアルブートでUbuntu16.04 を使っているので、これがマジだと結構困ったことになります。 というわけで、色々調べてみました。
Windows 10 Aniversary updateの件、どうやら GRUB が上書きされるだけでパーティションは残ってるっぽい?まだちゃんと読んでないけど https://t.co/EbTh64d5S1
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年8月9日
また、一応デュアルブートをあきらめて、Windows上でbashを使うことも検討してみました。
うーん、昨日デュアルブートで怖い情報( https://t.co/5opCKEzpBf ) があったからこっちも気になってたけど、Java系が動かないのは厳しいな。まぁ、JDKはWindowsでやればいいかもだけど / “Bas…” https://t.co/exz0wTpFrS
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年8月10日
悪くない感じはするんですけど、Javaが動かないのは業務的に困るので、こっちに頼るのはやめました。
最終的に、GRUBが上書きされるだけだ、という情報を信じることにして、アップデートを決めました。 その結果。。。
Windows10のアップデート、ちょっと気合を入れてやるぞって思ったけど、全然落ちてこない。。。まんま、ここにある通り 1511でとまってる。どうしようかな。。。 https://t.co/uoBMsMBcRd
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年8月11日
Windows 10 Aniversary Update で、 デュアルブートしてるマシンのパーティションが削除されるとかの情報ありましたが、僕はなんら被害を受けること無くアップデート完了したことをご報告します。 https://t.co/5opCKEzpBf
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年8月12日
というわけで、問題なくAniversary Updateが適用できました。
アップデートにビビってる方、えいやっとやっちゃっても大丈夫かもしれません(責任は負いかねます)
Ubuntuの更新でVirtualBoxと無線LANが死んだ…
先日、Ubuntuのソフトウェアアップデートを行ったら、無線LANとVirtualBoxが動かなくなりました。 かなり、ハマりにハマってなかなか治らなかったんですが、3日費やしてようやくちゃんと動くようになったので、備忘録的にまとめておきます。
問題が発生したマシンは DELL XPS13 で、ubuntuのバージョンは 15.10 と 16.04 です。
VirtualBoxは 5.0 と 5.1 で問題を確認しましたが、4系でも同様のはずです。
原因
直接の原因は、アップデートでlinux-kernel がバージョンアップして 4.4.0-31-generic
になったためです。
このバージョンのカーネルとUEFIのセキュアブートが、どうやら相性悪いようです。
このバージョンのカーネルを使っている状態で、セキュアブートが有効になっていると、 module が有効化できないという問題が発生していました。
そのため、 wl
や vboxdrv
が有効化できませんでした。
対応
有効化するには、ubuntuを再起動して、起動時に boot menuを開きます。
SecureBootの項目があるので、そこで disable してやればOK
これで無線LANは認識されるはずです。もし、無線LANが認識されないようであれば、 sudo modprobe wl
すればいいはず
VirtualBoxについては、多分セキュアブートを無効にしてからVirtualBoxをインストールすれば問題ないはずです
本当は、下記の情報を参考に MOKを登録してやれば、 vboxdrv
を認識できるようになるはずなのですが、私の環境でうまく動作しませんでした
SecureBootとMOK(Machine Owner Keys)は下記がわかりやすいです。
技術者見習いの独り言: SecureBootとLinuxorumin.blogspot.jp
以上、ざっくりしたメモ書きでした
参考資料
- 作者: 大角祐介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/06/06
- メディア: 大型本
- この商品を含むブログ (5件) を見る
- 出版社/メーカー: Dell Computers
- 発売日: 2015/03/16
- メディア: Personal Computers
- この商品を含むブログ (1件) を見る
フロント苦手な私にはFrascoが最高のツールだった件
先日のRuby関西で紹介されてた Frascoというツールがとても良さげに感じたので、帰って早速使ってみました。
Frascoとは
Quick starter project for Jekyll including full setup for gulp, Sass, Autoprefixer, Bourbon/Neat/Bitters, Webpack, Imagemin, Browsersync, etc.
だそうです。 要は、JekyllでWebサイトつくるときに、便利なツール類まとめておいたから、さくっと始められるよ。ってことです。
DojoCon JapanのサイトもFrasco使ってるそうです。
GitHub Pages で Jekyll 使ってる人には便利だと思います。ちなみに DojoCon Japan のサイトはこれを使ってます。Frasco: Jekyll Starter Project https://t.co/zXv8c0QiMG
— Kite (@ixkaito) 2016年7月18日
Frascoの使い方
とりあえず、 jekyll
と npm
のインストールは必要です。それぞれ、自分のマシンにインストールしておいてください
それさえあれば、あとはFrasco公式ページに乗っている通り、 Frascoをcloneして、 npm install
, npm start
すればすぐに利用できます
$ git clone [https://github.com/ixkaito/frasco.git:embed] $ cd frasco $ npm install $ npm start
Frascoのいいところ
さくっとプラウザで確認できる
npm start
するだけで、Jekyllがビルドされてブラウザで確認できます。
sassなどの変更も見てくれるので、かなり快適にページ制作ができます。
とても便利で感動しました。
デフォルトでイケてるCSSフレームワークが導入されてる
これは、 Burbonと Burbon Neat がイケてるってことなんですけど、使いやすくて良いです。
sassファイルの変更も検知して、リロードしてくれるので、コーディング -> 確認の流れがスムーズで快適でした。
Frascoのイマイチなポイント
Frascoを軽く触ってみて、改善したいなと思ったポイントを挙げます。 対応できそうなものは、週末にでもPR投げると思います。
- Jekyllのバージョンが開発環境に依存
- プロジェクトのGit管理しづらい
Jekyllのバージョンが開発環境に依存
Frascoでは、gulp を通してjekyllのコマンドやその他のタスクを実行しています。
そのために、ローカルマシンの Jekyll に依存するのは、仕方ないのですが、プロジェクト内に Gemfile
などが用意されているわけではないので、Jekyllのバージョンなどの管理は完全にユーザ依存になっています。
複数人でサイトを管理するときに、(CIサービスなど使わなければ)各自のマシンのJekyllバージョンに依存することになります。
これは、ユーザ側で好きに Gemfile
を用意すればいいだけのことではあるんですが、Frasco側で推奨Jekyllバージョンみたいなのを用意してもいいんじゃないかと思いました。
プロジェクトのGit管理がしづらい
Frascoはサクッと開発できて便利なんですが、今のところFrasco本体のGitリポジトリを clone してその中で、開発を行います。 そのため、制作しているサイトを自分でGit管理するために色々と作業が必要でした。
あとは、必要に応じて READMEやpackage.json を書き換えます。 READMEは全部書き換えるだけでいいですが、package.jsonは内容を見て、部分的に書き換える必要があります。 大体、package.json 内の次の項目を書き換えるといいでしょう。
- name
- version
- description
- repository
- keywords
- author
- bugs
- homepage
- license
これは、Frascoをcloneして使うのではなく、 yo
などで、プロジェクトの雛型を吐き出すようにすればいいんじゃないかと思います。
私自身はyo
でテンプレートを作ったことはないのですが、少し勉強してできればPR投げたいなと思っています。
Frascoで作ってるもの
Frasco個人的にタイムリー!!めっちゃいいので、帰って早速使う!!!
— 口玉(I am Scala Ninja) (@Kuchitama) July 16, 2016
なにがタイムリーだったかって、ちょうどいい加減去年の大都会で宣言した A Tour of Go のScala版作るの真面目に取り組もうとしてたからです。
Jekyll使って作ろうというのは、なんとなく考えてたんですが、フロント開発が苦手で着手が先延ばしに鳴ってましたが、Frascoあれば雛型が出来上がってるので、重い腰がすっと上がりました。 これから、マジメに作ります。
Ruby関西勉強会で登壇してきました #rubykansai
先日開催された第73回 Ruby関西に参加してきました。
Ruby系の勉強会に登壇するのは初めてだったので、アウェー感を感じつつも、楽しい1日を過ごしました。 まぁ、着ていった服のせいでアウェー感がましてた気もします
Ruby関西73はじまったーーー。今日はScala界からの刺客(?)として、このカッコで登壇します #rubykansai pic.twitter.com/YPBl9ruKOq
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年7月16日
発表内容
発表資料はこちら。
Scalaプログラマの私がRubyやRuby on Railsを触った時に感じた違和感などを紹介しています。
自分の発表以外は、ゆったりと話を聞いてました。
今回は発表本数が多くて、楽しめました。
RedDotRubyConf
シンガポールで開催された RedDotRubyConf の模様を紹介して頂きました。 RedDotとはシンガポールの愛称だそうです。 世界地図上で見た時にシンガポールが国土が小さくて、点(Dot)の様に見えることと、国旗の色からつけられたそうです。
以下、気になった点のメモ
- シンガポールはみんな英語と中国語が話せる
- 発表内容は日本のRubyKaigiに比べてゆるめで、コワイ感ない
- 料理美味しい
- 教育水準高い
SciRubyプロジェクトの紹介
Rubyをデータ解析に活用できる様にするSciRubyプロジェクトの紹介。
Rubyでデータサイエンスをする、、、ためにRubyをよくして行こうぜ。遠大な話だなー。 #rubykansai
— 口玉(I am Scala Ninja) (@Kuchitama) July 16, 2016
ちょうどPythonの話題がTLに流れてきた https://t.co/ofcYM5KoXs
— 口玉(I am Scala Ninja) (@Kuchitama) July 16, 2016
Rubyでjsベースの可視化ソフトとの連携やるのは難しくない。けど、可視化するデータを作るための演算や機械学習などの前段部分が充実しないと、使う旨味がない #rubykansai
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年7月16日
気の長い話に聞こえましたが、そもそもPythonもRが出てきてから、後追いで現在のデータ解析に強い言語としての地位を築いたそうです。 負けるなRuby!!
Jekyll Starter Project: Frasco
Jekyll を 便利に使うために Frascoというツールを作られたそうです。 めっちゃ便利そう! Jekyllを始めるためにあった方がいいものが、全て最初に用意されているので、さくっとページ制作を開始できそうです。 これは、ぜひ触ってみたいです
一晩で作ったそう。綺麗なサイトである。frasco #rubykansaihttps://t.co/7B6pZ0TmvA
— そば (@sobameshi_m) 2016年7月16日
Webpack使ってるんだったらgulpいらないような?そんなことはないのかな?
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年7月16日
#rubykansai
Burbonとneat良さげ!!試していきたい
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年7月16日
Frasco個人的にタイムリー!!めっちゃいいので、帰って早速使う!!!
— 口玉(I am Scala Ninja) (@Kuchitama) July 16, 2016
登壇中に、発表者の @ixkaito さん作 Worker の GithubStarが300突破してました。おめでとうございます!!:embed]
#Wocker のスター数が300を超えた!ありがとうございます! #rubykansai https://t.co/iFUFfouE88
— Kite (@ixkaito) 2016年7月16日
RubyからC#を扱う
誰得なんだ、とか思いつつ聞いてました(すいません) 内容は、タイトルの通りのことを実現するための、ライブラリを開発されたそうです。
個人的には、内容そのものよりも、マイクロソフトが最近取り組んでいるオープン化が、実際身の回りにまで影響を及ぼしたことが感慨深かったです。 てらだよしおさんの話や、色々なイベントレポートで、マイクロソフトがオープンソースに舵を切っていることは知っていましたが、地方の全くMS関係ない勉強会にその取り組みに絡んだ内容が出てきたのは、成果の現れと言えるんじゃないでしょうか
RoslynのおかげでRubyからC#が使える。Microsoftのオープンソース推進の影響が遂に実感できるところまでやってきた感 #rubykansai
— 口玉(I am Scala Ninja) (@Kuchitama) July 16, 2016
わたしが Rails Girl になるまで
cherry.rb オーガナイザーの との さんの発表。 今年の初め頃に cherry.rbには何度か参加してたんですが、今こんなことになっているとは
俺が参加できなくなってからcherry.rb の女性比率が上がっただと!? #rubykansai
— 口玉(I am Scala Ninja) (@Kuchitama) 2016年7月16日
gemの話
gemについてのちょっとしたノウハウとか、おすすめgemとかでした
冒頭で、Gem作ったある人がどれくらいいるかアンケートしてました。
パーフェクトRubyにgem作る項もあったはずなので、その影響で作ったことある人多いんじゃないかな #rubykansai
— 口玉(I am Scala Ninja) (@Kuchitama) July 16, 2016
公開したことのある人もアンケートしたら良かったんじゃないかな?
2対のMVC (Double MVC)
GUI(React/Flux) と Web(Rails)でそれぞれにMVCを持ち、サービス開発するハンズオン
サービス全体を通してアーキテクチャの設計をする人には、非常に参考になると思います
資料がすごく長いけど、少しずつ進めていけばちゃんと理解できるはず
Ruby 初級者向けレッスン - Array と Hash
Ruby関西お馴染みの初心者向けレッスン なんですけど、たまたま座った席がcherry.rb勢が固まってて、レッスンせずに雑談してました(すいません)
最後に出てきたジョーク回答面白かったです
感想
ホントは懇親会行きたかったんですが、夏風邪のため体調優先で帰りました。 もっとRuby界隈の人とも交流していきたいので、また次回も参加したいと思います。
Cherry.rbでRails5やってみた
最近、仕事でRailsを触らずを得ない感じになってきたので、本格的にRailsの勉強をはじめました。
そしたら、ちょうどRailsのもくもく会があったので、参加してきました。
やったこと
このもくもく会では、毎回題材が決まってるっぽいです。
で、僕もこれやるつもりだったんですが、 Railsは5年以上触ってないって 主催者の一人の tono さんに話したら、 「こっちのチュートリアルがいいよ」と教えてもらえたので、 チャットアプリを作りました。
やってみた雑感
とりあえず2時間もあれば、ある程度動くものができる、しかもリアルタイムに更新されるから気分がいい 課題でした。
ただ、前提として Rails5に組み込まれた ActionCable / WebSocket を体感するためのサンプルなので、これでRailsの知識や力が身につくかというと、 まったくそんなことは無い です。
このサンプルは次にマッチする人には良さそうですが、僕にはマッチしませんでした。
- Railsをこれまで触っていて、WebSocketについて知りたい人
- Webアプリ開発初心者で、とりあえず動くものを作ったというモチベーションが欲しい人
このどちらかに当てはまる人にはいいんじゃないでしょうか?
つまったこと
基本的に、記事の通りに書いて動かしていけば、問題なく動きました。
唯一、Google先生に頼ったのは、次の問題。
どうも、uglifier が JSを圧縮するために、 node を使ってるらしい
その時に思わずつぶやいたのがこれ
Railsを初めようとしたら nodejsのインストールを迫られた。。。node色んな所に出しゃばり過ぎだろ… https://t.co/PYD9SIFlvr
— 口玉(I am Scala Ninja) (@Kuchitama) 2016, 2月 10
あとは、動かすぶんには問題なかったけど、とりあえず動かしただけで調べないといけないことがあるのでメモ
Redisの役割
Redisは概要ぐらいは知ってるものの、今回の実装の中でいつの間に使ったのかわかりませんでした。
あまりにもよしなにしてくれるので、役割が見えませんでした。
ActionCableが使ってるのか、 ActiveRecord が使ってるのかだと思うんですが、適当なときにちゃんと調べようと思います。
もくもく会の感想
会場が会社から近いし、ほどよくゆるい雰囲気なので、次回も参加しようと思います。
ある程度、Web開発の知識がある人向けに、Railsの勉強するお題があればだれか教えてくだしあ
- 作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一
- 出版社/メーカー: 技術評論社
- 発売日: 2013/08/10
- メディア: 大型本
- この商品を含むブログ (22件) を見る
- 作者: すがわらまさのり,前島真一,近藤宇智朗,橋立友宏
- 出版社/メーカー: 技術評論社
- 発売日: 2014/06/06
- メディア: 大型本
- この商品を含むブログ (8件) を見る