Blog


Inttelijで_JAVA_OPTIONSにすごく苦しめられた

なんかInttelijでArtifactをBuildしようとしたらこんな感じに怒られました。

直訳してもさっぱりわからないけどググるとどうやら環境変数で-Dawt.useSystemAAFontSettings=onと指定されてるのを外せばいいっぽい。

ただどこの設定で-Dawt.useSystemAAFontSettings=onを指定してるのかがぜんぜんわからない。

.bashrcも/etc/profileもidea.vmoptionsも見たけど-Dawt.useSystemAAFontSettings=onにしてる記述はなし。

仕方なく/etc/profileに

と指定して解決

結局どこが指定してるのかわからなかった




東北復興イベントに行ってきた話、あるいは勉強会登壇を成功させる何かを見つけたかもしれない話

6月19日、学会のためアメリカに行ってしまったぼんぷろ先生(@bonprosoft )の代理として、Microsoft技術コミュニティ東北復興イベントであるRebirth! 東北 2016にて登壇を行ってきました。

 

くまみこ最新話を見ててよかった…仙台いいところですね。都会と森がいい感じのバランスとってると思います。

登壇は「Windows10アプリ開発入門」というタイトルでさせてもらいました。

タイトルがタイトルなだけに結構人が集まってくれて、みなさんの期待にこたえられるか不安でした。

 

 

Windows10 IoT Coreのデモとして徹夜で作った東北ずん子ちゃんが旗を振ってくれる超かわいいデバイスも出しましたがウケてよかったです。我ながらかわいい

今回の勉強会の反応

今まで同世代にしては比較的多くの登壇活動を行ってきたわけですが、その中でも今回の登壇は成功したほうだと思います。(もしかしたらそう思ってるのは僕だけかもしれないけど)

毎度毎度登壇をして帰ったあと自分のふがいなさに頭を抱えてるわけですがやっとそれなりの正攻法というか、理論?に気付けたのでここにまとめたいと思います。

登壇の目標

勉強会登壇の最大の目標は参加者全員の総合満足度を最大にするところにあると思います。

かのベンサムの功利主義でも語られたように、最大多数の最大幸福、より多くの人の幸せを最大にすることこそが善なのです。

勉強会に参加いただいているみなさんもご自身の貴重な時間を割いて、聞きに来てくれているわけで、勉強会の登壇者はその機会費用分の価値を提供する責任があると私は思っています。

やっちゃいけない例

やっちゃいけない例として私が思うのは、登壇者が参加者がまったく理解できないような内容を話し続け、参加者自身も「理解できないのは私のレベルが低いせいだ」と思い込んで納得したふりをする。なんかセッション自体はいい感じに成功した感じになったけど参加者は何も理解してなくて家に帰ってもなにをすればいいかわからないという感じのセッションだと思います。

特に.Net系では非常に登壇者と参加者のその分野における知識レベルの差が顕著だと感じます。(技術好きが追っている最新技術と参加者が実際に行っている技術には差がありすぎるということ)

参加者のスキルレベル、求めていることを事前に考えておく

何を当たり前のことを…と思う人もいるかもしれませんが意外と難しいしできてない人多いと思います。

どういう層の参加者が来ているのかを事前に想像しておくことはセッションを成功させるうえで非常に重要なファクターとなります。

具体的には事前にイベントの告知ページや内容、事前アンケートなどを行って、参加者のスキルレベルを把握します。全体的なスキルレベルでもいいですがどれくらいの比率でどれくらいレベルの人がいるのかなど、参加者を3~4のクラスタにわけて把握できているとすごくいいと思います。

もし事前に把握が難しい場合はセッションの最初に参加者に挙手してもらって層を把握しましょう。

私も今回のイベントは、非常に参加者層が把握しにくかったので最初に参加者に挙手制のアンケートをとりました。

セッション内容をレベルごとに分割する

これが正しいかはまだ確定できてないですが、今回やってみた感触は非常によかったと思います。

もしセッション全体のレベルを統一してしまうと、初心者向けに簡単な内容にすると、その分野に既に詳しい人がつまらなさそうになる、かといって最新技術や高度な話をすると初心者の方が理解についていけない感じになる。

IT勉強会の場合、初心者がプログラミングをやったことがあるならばまだ満足度があがるかもしれませんが、ノンプログラマーがいた場合、予備知識が足りなさ過ぎて非常に満足度が下がってしまいます。

そこで今回の登壇ではこのようにセッションを3分割してみました。

level

セッションの50%をしめる「All」では、UWPについての全体的な話、概念的な話や将来性についてのお話しをしました。

こうすることで、ノンプログラマーの方でも抽象的な話なので理解することができ、かつその分野に詳しい人も楽しむことができます。

次に40%をしめる「Beginner」ではUWPの具体的な作り方を少し具体的にして話しました。具体的にといっても実際にVisualStudioの使い方を話したわけではなく、スライドでVisualStuioでの作り方を抽象的に、他分野のプログラマーならば理解できる形で話しました。

さらに、実際にその抽象的な考え方がVisualStudioでどのように対応づくのかを示すために、デモを行いました。

もちろんデモ内ではVisualStudioの使い方の解説はせず、「こんなにも簡単に作れる」という印象を抱かせることにフォーカスしました。

さらに勉強会全体のハッシュタグにてデモ内容の具体的な手順をスクショつきで書いたスライドを流すことで、参加者は家に帰ったあと、スライドを見ながらセッションで語った抽象的な概念を照らし合わせてアプリを作り始めることができます。

 

最後、10%をしめる「Pro」向けセッションでは、WPFからUWPの差分について簡単に話しました。

おそらく参加者の中は.Netで業務アプリを作ってはいるが、UWPは作ったことがないという人が少なからずいると思ったのでその方たちのために、WPFの知識でUWPを開発するとき、どの点に注意すればいいのかを話しました。

このようにセッションを分割することで、参加者にとっては、求めていない部分も少しは存在するが、「かならずセッションの中に求めているものがある」という状態をつくることができ、参加者の満足度を高めることができます。

最後に開発ロードマップを必ず入れる

登壇の中で紹介した知識が、登壇内容でとどまることなく、参加者が次の一歩を踏み出すためにセッションの最後に「このあとどのサイトや書籍を見ればよいのか」というスライドを入れます。

roadmap

今回は最後駆け足になってしまったた上にスライドを共有する許可を得られなかったため、このロードマップのURLを共有できなかったのが失敗点でした。

次回からは何か共有する手段を作らないと..

セッションの評価尺度

今回このようなセッションをしてみて、参加者の反応が見ている感じよかったのを感じ取ることができましたが、それだけでなくセッションが終わったあと、3人の方から質問をいただきました。

参加者がわざわざ登壇者の前まで行って質問をしたくなるということはセッションをある程度理解することができ、かつ自分の中で沸いた疑問を解決しにきてくれたということなのでセッションの成功を評価するある種の尺度になると思います。

今までの登壇では終わったあと質問が直接くることはあまりなかったのでUWPの理解をすることができかつ将来性を感じてもらえたのだと思います。

まとめ

普段登壇されている方にとっては何を当たり前のことを…という感じかもしれませんが結構ここに気付いてかつ実践できてる人は少ないと思います。

私も年平均10回ぐらいITコミュニティで社会人に向かって登壇活動をもう5年ぐらい続けてきましたがやっと場慣れ?というか定説みたいなものを作れたので非常に勉強会登壇の難しさを感じます。

次はもっと落ち着いてセッションできるようになりたいですね(いつも焦り気味)

 

仙台の牛タンうまかったです。