OSPN Press 第92号 (2018/8/22発行)

No Comments
このエントリーをはてなブックマークに追加

■今後の開催は「ODC東京(8/25-26)」と「「OSC広島(9/23)」です!
■[開催報告]OSC京都、無事に終了
■ITニュース・総合
■ITニュース・オープンソースリリース情報
■オープンソースカンファレンス開催レポート
-OSC2018 Hokkaido
■オープンソースコミュニティ紹介 〜from OSS コミュニティ辞典〜
-CoderDojo光
-openwrt.jp
More

OSPN Press 第91号 (2018/7/18発行)

No Comments
このエントリーをはてなブックマークに追加

■今後の開催は「OSC京都(8/3-4)」と「ODC東京(8/25-26)」です!
■[開催報告]OSC沖縄、OSC北海道、無事に終了
■ITニュース・総合
■ITニュース・オープンソースリリース情報
■オープンソースカンファレンス開催レポート
-OSC2018 Okinawa
■オープンソースコミュニティ紹介 〜from OSS コミュニティ辞典〜
-関西オープンフォーラム
-Code for Amagasaki
■「オープンソース」を使ってみよう【第48回:Blazor】
More

昨年より多くの参加者で賑わった
OSC2018 Hokkaido

No Comments
このエントリーをはてなブックマークに追加

2018年7月6日-7日の2日間にわたって今年も札幌コンベンションセンターで
OSC2018 Hokkaidoが開催されました。あいにくの曇天となってしまいましたが、
多くの団体がオープンソースの「今」を熱く伝えました。

▼会場(札幌コンベンションセンター)

そんなOSC2018 Hokkaidoの様子を

  • けんつ (@lrf141)
  • あるねこ (@aruneko99)
  • ぐんじ (@com_gunzi)
  • ちくうぇいと (@chikuwa_IT)
  • あわあわくん (@materialofmouse)
  • はいばら (@haibaraaaaaaa)
  • がっちゃん (@gacchaaaaann)
  • すとんりばー (@strvert)
  • なな (@nanairoaisu)

のレポート班メンバーがお伝えします。
  

開催概要

ポスター

OSC2018 Hokkaido版のポスターは「昨年初めてきた学生さんがお祭り騒ぎの様な
ブースを見学してOSSに興味を持ち、今年もOSCに訪れてくれる」というコンセプト
を元に札幌市在住のデザイナー、コモモさんが作成してくださいました。
コモモさんは、このポスターの他にも懇親会参加証のデザインも手掛けてください
ました。

=1日目=

1日目は、1トラックセミナーのみ(展示なし)開催です。
13時スタートで、5つの企業がそれぞれセミナーを行いました。
セミナーではIntelliJ IDEAを初めとするJetBrains社製IDEの詳しい使い方の解説や、Elastic Searchによるログ解析の方法などが紹介されました。
たくさんの学生さんを含む約80名の方にお越しいただき、大変盛り上がりました。

また、セミナーの裏ではスタッフが恒例の資料の袋詰め作業や、2日目に備えて机を
配置したり届いた荷物をブースごとに配達したりする作業を行いました。
袋詰めの資料を入れた段ボールが裂けるなどのアクシデントもありましたが、
スタッフみんなの協力により素早く作業を終えることができました。

=2日目=

展示

日本仮想化技術株式会社

全国のOSCではおなじみの日本仮想化技術株式会社ブースでは、Raspberry Piを
使用したkubernetesクラスタや各種書籍などを展示していました。
クラスタはMaster3台、WorkerNode3台、Storage3台の合計9台で、ARM特有の
苦労話やStorage周りの話しなど非常に面白い話を聞くことができました。
また、書籍はVMware実践運用管理や入門kubernetesなどが置かれ、現代よく使われる
ようなインフラに関するブースでした。
  

Japanese Raspberry Pi Users Group

Japanese Raspberry Pi Users GroupさんのブースではRaspberry Piの各種
作例の紹介とRaspberry Piよろず相談が行われていました。実際にブースには
Raspberry Piを使用した様々な作品が展示されており、「こんなこともできるの
か!!」とブースを訪れた来場者の方で賑わっていました。
  

OpenStreetMap Taiwan

OpenStreetMap Taiwanさんでは、道路地図などの地理情報データなどの紹介、
またその利用例など展示をしていました。
ブースの中では、ステッカーやペンなどのグッズの配布も行っていました。

   
▼展示会場の様子


  

セミナー

Haskell入門ハンズオン Haskell-jp

担当:Haskell-jp

このセミナーでは、プログラミング言語Haskellへの入門ハンズオンが行われました。

“よく見る”プログラミング言語の構文とはちょっと違った、純関数型言語独特の
スタイリッシュな構文や機能などを、他言語との相違点を踏まえつつ分かりやすく
解説されていました。
Haskellのプロジェクトを構築・管理できるStackというツールについての紹介もあり、
実際に入門者がHaskellの開発環境を整えるまでの内容に触れた解説となっていました。

ハンズオンでは、Haskellの対話型インタプリタGHCiを用いた問題演習なども行われ、
Haskellの機能を用いて実際にどのような実装が行えるのかについても考えることが
出来ました。

45分ではとても足りない、もっと聞いていたいと思わせるような楽しい
ハンズオン/セミナーでした。

  

kubeadmよりも遠い場所〜手動でガンバるKubernetes on Raspberry Pi

担当:公立はこだて未来大学 システムソフトウェア研究室

最初に「Kubernetes」がどういうものか、またどこで利用されているものなのか
などの説明をされました。その後、「Kubernetes」のクラスタ構築支援ツールに
ついての説明がありましたが、それらツールを用いて構築を行うと、簡単に終わって
しまってつまらないとのことなので、手動で構築しよう!!!というお話でした。
手動で構築するメリットとして仕組みをよく理解できる、手元の環境に合わせた
クラスタ構築とありました。

しかし、これは「Kubernetes」に限った話ではないと思いますので、「Kubernetes」
ではない他のものであったとしても手動構築をチャレンジしてみてもいいのかもしれ
ませんね。

  

さくらのIoTプラットフォーム「sakura.io」体験ハンズオン

担当: さくらインターネット株式会社

さくらインターネットが開発するIoTプラットフォームサービス「sakura.io」と、
オープンソースハードウェア「Arduino」、オープンソースソフトウェア「Node-RED」
を組み合わせて、センサーで取得した値をWebページで表示する、Webページ上の操作
からLEDを点灯させるなどのハンズオンが行われました。sakura.ioはSIMカードが
組み込み済みの状態で販売されており、ユーザーがSIMの購入/契約をしなくても
よいため、手軽にIoTを始めることができるとのことでした。

Node-REDの機能を使って読み取ったセンサの値をtwitterに投稿する方法などの紹介も
あり、それぞれのシステムの使いやすさと拡張性の高さを感じることができるセミナー
でした。
  
▼セミナーの様子

  

北海道企画カレーカンファレンス2018 HelloWorld

”昼の懇親会”ことカレーカンファレンスは他のOSC参加者と一緒にカレーを食べて
交流をする企画です。
今年で4度目の開催となりました。レストランSORAさんの美味しいカレーを
いただきながら、自己紹介をしたり、おすすめのカレー屋さんや午前中に見た
セミナー、午後から見たいセミナーなどについて語り合ったりしました。
私は、歴戦のベテランエンジニアの方やお母さんと一緒に来たという小学生の
男の子と同じテーブルでカレーをいただきました。
それぞれの興味や、思い出のカレーなどについて話していると
あっという間に”ごちそうさまでした”の時間になってしまいました。

和やかで美味しい一時でした。

  

展示ツアー

「出展者にいろいろ話を聞きたいけど、OSCは初参加なので何から聞いたらよいのか
わからない。」そんな参加者のために今年も「展示ツアー」が開催されました。

実際に希望者の方と展示ブースを巡り出展者から各ブースでの最新トピックや
見どころを紹介していただきました。
今回の展示ツアーではジャンルを問わずコミュニティとスポンサー両方のブースを
周りました。

  

スカラーシップ制度で学生参加!

今回18名の学生さんがスカラーシップ制度を利用してOSC北海道に参加されました。
参加された前と後のアンケートを見てみると、参加後はそれぞれに成長されている
ことが伺えました。

開発を1人でもくもくとしていたけど、ブースで学んだり質問することで、
コミュニティへの活動に興味を持ち、自分の成長を感じている学生さんや、
参加前はVRやプログラミングに関心を持っていたが、北海道警察サイバー
セキュリティ対策本部のブースでセキュリティへの関心が高まり、公務員にも
エンジニア採用が必要とされているということを知り、将来の選択肢が広がって
いる学生さんもいて、それぞれに有意義な時間を過ごしていたようです。

▼参加後の感想(一部抜粋)
・今までは誰にも教えられずに1人で勉強して1人で開発していたが、今回OSCに
 参加し様々な話を聞いて、1人で勉強していた時とは比べ物にならないほど自分
 の成長を感じた。
・今回のOSCを通して、たくさんの技術にふれ、自身の開発へのモチベーションへと
 繋がった。
・大人になってからになってしまうんですが、僕は無料で「携帯スマホ安全教室」
 を開いて、小・中学生・高校生が被害に会う前に食い止めたいと思いました。
・LINEの乗っ取りの危険性や携帯の使い方など、技術を広めるだけではなく、
 学校等でも行われる「安全教室」に近い所もありとても内容が濃かったです。
・OSCに参加してみて、今まで知らなかったことしかなくてとても楽しかった。
 便利な技術や、人を楽しませる技術をいろんなところでいろんな人が作っている
 ということがわかった。

  

ライトニングトーク(LT)&閉会式

今年も恒例のライトニングトークと閉会式で締めくくりとなりました。
今回は特に様々なn周年にちなんだ話題や国外での話題が多く、時空や国を超えた
LTをはじめ捻りのある面白いLTの数々が披露され、とても盛り上がりました。

今回発表されたLTは以下の8本です。
– ルワンダに行ってきた話をするよ
– Eject10周年に向けて
– OSC1998 Web系最新情報
– LOCAL10周年に向けて 〜今後のLOCALの方向性〜
– DLLインジェクションによるゲーム環境の改善
– 日曜FLOSS開発とモチベーション
– 富良野から話しますよ.いいですか.よく聞いてください.
– PyconThailandで登壇した話と海外のサービス事情

▼OSC2018 Hokkaido実行委員長:工藤 裕の閉会挨拶

毎年大人気のLTですが、今回も立ち見が出るほどの賑わいをみせました。
最後までご参加いただいた皆さま、ありがとうございました。

  

懇親会

OSC終了後は去年に引き続き、札幌全日空ホテルにてビュッフェ形式の懇親会が
行われました。今年は182名の方に参加いただきました。

まず全員で乾杯が行われたあと、懇親会スポンサーの株式会社インフィニットループの
松井社長と日本仮想化技術株式会社の宮原社長とのお二人による鏡割りがあり、
参加者に枡で日本酒が振る舞われました。

また、例年通り懇親会LTやじゃんけん大会もあり大盛況でした。

  

終わりに

今年も無事にOSC2018 Hokkaidoを締めくくることができました。
昨年に引き続き多くの方にご来場していただき感謝しています。

来年は2019年5月31日(金)-6月1日(土)の開催を予定しております。
皆さまのご来場をお待ちしております。

「オープンソース」を使ってみよう
(第48回:Blazor)

No Comments
このエントリーをはてなブックマークに追加


C# で Single Page Web アプリが作れる
フレームワーク「Blazor」

「Blazor」とは、Microsoft が主導で開発しているオープンソースの
Single Page Web アプリケーションフレームワークです。

Angular や React、Vue のように、クライアント側 (ブラウザ側) で
動作するフレームワークライブラリなのですが、なんと、JavaScript ではなく
C# で書けるのが特徴です。

開発は GitHub 上 (下記 URL) で行われており、
ライセンスは Apache v.2.0 ライセンスとなっています。

2018年7月現在も、この GitHub リポジトリ上では Issue が立てられて
ディスカッションが行われたり Pull Request が飛んだりと、
活発に開発活動が行われています。

Pull request を送るなど実装で貢献したい場合は、上記リポジトリに
掲載の Contribution ガイドを参照するとよいでしょう。

C# がブラウザ上で動く仕組み

Blazor アプリケーションは C# 言語で記述するのですが、
さて、どうして C# 言語で書いたコードがブラウザ上で動作するのでしょうか?

まず、これは C# ソースコードから JavaScript 等々へのトランスパイルではありません。

なんと、C# 言語ソースコードをビルドして出来上がる .dll ファイル
(.NET アセンブリファイル) をブラウザに読み込んで、その .dll ファイルに
収録されている .NET 中間言語 (IL) を解釈・実行してしまうのです。

なぜそのような事が可能なのかというと、Web ブラウザの WebAssembly の仕組みの
上に、.NET の実行環境 (.NET CLR) を構築してしまったのです。

このような仕組みなので、.NET のアセンブリファイル (.dll) をそのまま読み込めて
しまうものですから、旧来からあるライブラリ (NuGet パッケージ) も Blazor アプリ内
からブラウザ上で使えてしまったりします。

プログラミング技法も、属性プログラミングはもちろん、リフレクションすらも
使えます。

また、同じ理由から、実は C# 言語に限らず、VB.net や F# などなど、いずれの言語で
あろうと最終的に .NET アセンブリファイル (.dll) をビルド・出力できれば、
Blazor アプリ内からブラウザ上に読み込んで実行することも可能です。

Blazor は SPA フレームワークである

Blazor が面白いのは、単に「C# がブラウザ上で実行できる」というだけでは
ない点です。

C# で "Single Page Web アプリケーション (以下 SPA)" を開発するのに必要な
フレームワークライブラリ込みなのです。

Blazor には コンポーネント (HTML テンプレート) や URL ルーティング、
データバインディング、依存性注入などなど、今時の SPA フレームワークを
手本とした各種機能が作り込まれて提供されており、すぐに C# によるSPA 開発が
できるようになっています。

Blazor による SPA アプリ作成のデモンストレーションとして、
下記 URL で "Flight Finder" が公開されています。

Flight Finder のソースコードは下記 URL の GitHub リポジトリで公開されています。

Visual Studio IDE による開発支援が強力

さらに Blazor は、Visual Studio IDE 2017 用のアドインも同時提供しています。

Blazor アプリを Visual Studio IDE 2017 上で開発する場合は、このアドインを
Visual Studio IDE 2017 に追加インストールしておくと、コンポーネント
(HTML テンプレート)の編集時に、インテリセンスをはじめとした各種IDE支援を
受けられるようになっています。

Blazor での SPA 開発は、開発者の負担を減らす

C# で SPA 開発をすることの魅力として言えることは、
開発者負担が削減されることです。

いくつか例を挙げてみましょう。

例. JSON からのオブジェクトの復元

一例として、サーバー側から fetch した JSON 文字列をオブジェクトに
復元する場合を考えてみます。

残念ながら JSON の仕様には日時型 (Date) は含まれておらず、
日時型の値は文字列に変換されます。

そのため、JavaScript での SPA 開発においては、日時型をプロパティに含む
オブジェクトを JSON.parse() だけでは復元できません。

つまり、日時型としたいプロパティに文字列がセットされてしまうので、
さらなる後処理が必要となります。

その点、Blazor は C# ですから、復元先の型情報を持っているため、
日時型であろうとなんであろうと、何も考えずとも、きっちり目的の型に
復元されます。

例. 管理が容易なビルドシステム

また他の例として、ビルドシステムの管理の容易さも挙げられます。

Blazor も C# プロジェクトファイルに基づくビルド形態です。

パッケージシステムも従来からの C# プログラマにはおなじみの NuGet で、
プロジェクトファイルとビルドシステムに透過的に統合されていす。

ビューコンポーネント (HTML テンプレート) を追加する場合でも、
touch コマンドで空ファイルを作って編集開始すればそれだけで OK。

外部ライブラリ (NuGet パッケージ) の追加も、プロジェクトファイルに
パッケージ名を追記すれば OK です。

JavaScript による SPA 開発における、パッケージシステム、タスクランナー、
バンドラー、といった各種ツールの構成ファイルの調整は不要です。

名前空間で識別されているので、他のコンポーネントからこの新規コンポーネントを
参照する場合でも、逐一 import しなくてもすぐに使い始められます。

…このような調子で、C# 言語とそのビルドシステムによる Blazor SPA アプリ開発は、
開発者にとってストレスの少ないものとなっています。

Blazor の始め方

macOS/Linux/Windows いずれでも、.NET Core SDK 2.1 さえインストールすれば
最低限の環境が整います。

Windows OS 上で開発するのであれば、インストールサイズは少々かさばりますし、
プロプライエタリな製品ではありますが、Visual Studio IDE 2017 と、その Blazor 用
アドインをインストールするのが、その快適な開発支援を得られるのでお勧めです。

もちろん、Visual Studio IDE 2017 がなくても、最低限テキストエディタがあれば
大丈夫。

.NET Core SDK でインストールされる "dotent" コマンドラインインターフェースを
シェル上から実行することで、プロジェクトの新規作成からビルド、実行、
単体テスト実施、発行まで、ひととおり開発作業を行うことができます。

ビューコンポーネント (HTML テンプレート) を除けば、モデルやビジネスロジック、
サービスなどのコードは、何の変哲もない C# プログラミングです。

なので、それらC# コードについては、Visual Studio Code などといった
オープンソースの高機能エディタを用いて、コード補完やリファクタリング支援などの
開発支援を得ながら開発することができます。

自習方法としては、公式サイトにチュートリアルがある他、筆者が作成した、
日本語の自習キットもあります。どうぞご活用ください。

Blazor の短所

このようにたくさんの魅力を抱える Blazor なのですが、もちろん短所もあります。

一例を挙げると、Blazor アプリは、.dll ファイルの集合体となるのですが、
その .dll ファイル群の総サイズがまぁまぁの大きさになります
(将来的には事前コンパイル技術の発達によってもっとスリムになるかもしれませんが)。
実例を挙げると、先の Flight Finder デモで、総転送サイズが 1.8MB ほど。

とはいえ twitter.com で総転送サイズが 4MB 程なので、このサイズ感をどう考えるか
次第なところもあります。

そして何よりも注意点として記しておかないとならないのは、Blazor は2018年7月現在、
まだ「実験的プロジェクト」として位置づけられていることです。

Blazor 開発を率いている Daniel Rose 氏も Twitter 上で、
「まだプロダクションレベルでは使わないで」とツイートしています。

実際、基礎部分はそれなりにしっかり作り込まれているものの、
末端レベルではまだまだ機能が足りない面も垣間見えます。

最後に

SPA フレームワークライブラリ「Blazor」は、開発者のプログラミング体験を
向上させます。

もっとも、開発者体験を改善しても、直接にはアプリの出来の良し悪しには
関係ないようにも思えます。

しかし、Blazor の採用によって、よりよい品質のコードをより短時間で紡ぎだすことができるようになれば、それはそれだけ早く価値をユーザーに届ける力になるのではないだろうか、と思う次第です。

今日時点ではまだ「実験的プロジェクト」と位置づけられている Blazor です。

それでも今日この時点から試用・評価を始めることで、いつの日にかの Blazor
の公式リリースに貢献できると思いますし、あるいはまた、JavaScript 以外の
処理系・エコシステムで SPA 開発ができることを身をもって体験できます。

Blazor は JavaSript へのトランスパイルでもなく、Adobe Flash のようなプラグイン
システムでもない、WebAssembly という Web 標準の仕組みの上に処理系・実行環境を
まるごと載せてしまう方法が、SPA開発及び実行の基盤として実用になることを示して
見せたとも思います。

Blazor は .NET の処理系ですが、他の言語・処理系でも、この方式で SPA が書ける
ようになると、各言語・処理系を得意とするプログラマやエコシステムのもと、
また新しい Web ブラウザプログラミング技法が生まれてくるかもしれませんね。

参考リンク

  • 昨年2017年に初めて公開された Blazor プロトタイプの NDC Oslo セッション動画 (YouTube) –
    https://j.mp/ndc-oslo-blazor

=======================
Microsoft MVP
Visual Studio and Development Technologies
坂本 純一 (@jsakamoto)
=======================

OSC2018 Okinawa!無事に終了しました!!

No Comments
このエントリーをはてなブックマークに追加

6月16日(土)にOSC2018 Okinawaを開催しました。
イベントの様子をフォトレポートでお伝えします。

日時:2018年6月16日(土)
会場:沖縄コンベンションセンター 会議棟B
展示:19ブース(協賛/後援8、コミュニティ11)
セミナー:3トラック17セッション
来場者数:約80名
ハッシュタグ:#osc18ok
展示一覧
セミナータイムテーブル

台風直撃となった今回のOSC沖縄。
前日の時点で東京から沖縄への飛行機が欠航になるかも?!
という不安もありましたが、無事に出展者の方も到着し開催できました。

午前中は雨と風が激しかったのですが、
午後からは午前中の雨風が嘘のように晴れて、穏やかな天気になりました。

▼午前の様子(激しい風と雨・・・)

▼午後の様子(穏やかに晴れました!)

=展示=
新しい出展者から、おなじみの出展者まで19団体の展示がありました。
皆さん、興味のあるブースに足をとめて、談笑していました。



=セミナー=
3トラック17コマのセミナーが行われました。
雨風が強かった午前中から沢山の方にご参加いただきました!
足元の悪い中ご参加いただき、ありがとうございました。



=懇親会=
30名が参加した懇親会。
沖縄料理のお店で、三線に耳を傾けながらオリオンビールを堪能しました!

▼懇親会の様子

=最後に=
台風直撃で午前中は大荒れの天気となった今年のOSC沖縄ですが、
無事に開催することができました。
出展いただいた皆さま、ご来場いただいた皆さま、本当にありがとうございました。

=======
 OSC事務局
=======

Older Entries Newer Entries