OSC2019 Fukuoka 参画

 OSC2019 Fukuoka に参加してきました。日本MySQLユーザ会としてセミナー1枠の開催とブース出展です。
今年の福岡の会場は、久々の 九州産業大学九産大)。

www.ospn.jp


 セミナーは、松久さん(@hmatsu47)と一緒に『「MySQL8.0の薄い本」に見るMySQL』と題するトークショーをやらせていただきました。「薄い本」は、hmatsuさんが個人で作られているもので、MySQL 8.0 の主に新機能に注目してまとめあげたものです。以下のURLで無料配布されていて誰でもダウンロードできます。また、hmatsuさんが自費で印刷して、参加イベントなどで配ってくれることもあります。

薄い本:
github.com

 セミナーでは、この薄い本を作るモチベーションは何か、から、MySQL 8.0 での注目機能などについて、だらだらと(笑)おしゃべりをしてきました。聞きに来てくださった方には、それなりに楽しんでもらえたのではないかと思います。しっかり資料を準備した「教育的(役に立つ)セミナー」も良いですが、OSCではこういった、「そこそこの経験を積んだ(というと偉そうですが、世間平均よりは興味を持って試したり情報収集をした人、くらいの意味だと思ってください)人が」「会場の反応を見ながら」「ライブ感を持って自然に」おしゃべりするのを聞いていただいたり、一緒にディスカッションに参加してもらったり、という場にするのも面白いんじゃないかな、と思い、最近、このスタイルに挑戦してみています。(一応書いておくと、このスタイルだからといって何の準備もなく会場入りして、いきなり適当に話すわけではなく、構成とか、会場の反応に応じた分岐だとか、引き出しの準備だとか、普通に45分間をストレートなシナリオでお話するのと比べて、結構準備が大変だったりします。資料が完成したから準備完了!みたいなのとは違って、準備の終わりがないので、直前までいつもドキドキなのです。始まると、楽しんじゃうんですけどね(笑))

 ブースは、一日中比較的おちついた感じだったと思います。他のブースでお話を聞いたりする余裕もあり、私自身も出展しながらも楽しんだOSCでした。ETロボコンのブースでは、九州地区で活躍されている(今回OSCには参加されていない)先生が、私の大学時代の大先輩(たぶんあちらは覚えていない)だということが確認できたりもして、いろいろな人たちがいろいろな所で繋がっている社会の面白さを感じました。

 実は今年から、OSCへの参加を少し減らす方向で、「行く理由(時間と費用をかけるに見合う:発表したいものがある、会いたい人がいる、食べたいものがある)があるところだけ厳選して参加する」という方針に変わりました。福岡に関しても第1回の開催から「無条件で参加する」場所だったところから、一旦ゼロベースで検討ということで、昨年の訪問の際には「来年来ないかも」と宣言していたのですが、幸いなことに熊本に行きたい場所ができたことから(時期は自分で決められたので)今回のOSCに合わせることで、参加できることになった次第。
 実際に参加すると、たくさんの人が歓迎してくれて、いろんな人とお話ができて、見知らぬ情報にも出会うことができる充実のOSC2019-Fukuoka でした。ラーメンも一応食べられたし。

#そしてここで再開した人の何人かとは、翌週のPostgreSQLカンファレンスですぐに再開することになります(笑)
f:id:sakaik:20191109181938j:plain
f:id:sakaik:20191109092728j:plain
f:id:sakaik:20191109214231j:plain

OneMix 3 をてにいれた。結構よさげな印象

最近の日常生活では、外で自分のモバイルPCを使う機会があまりないのですが、ここぞという時に、スマホタブレットでは面倒な(あるいはできない)作業をやりたいこともあるため、何らかのモバイルPCは持ち歩きたいと思っています。今まで、その目的に合いそうだということで Surface Go を持ち歩いていたのですが、これが意外と私の「ちょっと用」には使い勝手が悪く、困っていました。とにかくディスプレイ(というか本体)が自立しないのが問題で、ちょっと出してちょっとキーボード打って、ちょっとしまう、ということをやりたいだけのために、画面の裏側のスタンドを立てて水平な場所を確保して、そして置いてしか使えない、というのがネックで、事実上「ほとんど使っていない」、日々の荷物がちょっと重くなるだけの筋トレ用途(にもならないか)としてのみ、役割を果たしている状態でした。

 そんな中で知ったのが、OneMix 3。公称 659g はSurfaceGo よりもやや軽いですが、見かけの小ささからは、持った瞬間に少しびっくりするくらいに重くは感じました。とにかくディスプレイが自立してくれるのがいい(笑)。左手手のひらに載せたまま、右手で打てる! 

f:id:sakaik:20191020151647j:plain
f:id:sakaik:20191020151713j:plain
(単3電池はサイズ比較用。単3電池で動作するわけではありません)

OneMix3 を選択したポイント

  • まず、先にも述べたように「ディスプレイの自立」
  • 重さ。もう少し軽いと嬉しいけど、700g以下で、なんとかギリギリ私の「許容範囲」
  • 解像度 2560x1600
  • microSD 使用可能
  • m.2 ひとつあいてる!これが最大の選択ポイントと言ってもいいくらいです(OneMix 3S には無いらしいので注意)
  • 一応 microHDMI出力もついている(将来的にはこれだけでプレゼンまでできるとラクかも)
  • タッチパネル画面。もう画面タッチできないPCは使いたくない・・・・・
  • 質素、シンプル、質実剛健な外観。うるさくないのが一番。

OneMix3 で少し惜しいところ

  • RAM 8GB。まぁ通常の作業には問題ないのですが、3Sは 16GB ということで、ちょっと羨ましい
  • SSD 256GB。3Sが512GBなので、、、、ただし 3 は自前の拡張ができるのでここはOK
  • 英語キーボード。自分は他のPCで日本語刻印キーボードで(ソフト的に)英語配列になってしまっても一応は打てるくらいには英語キーボードも使えますが、それでもアタマが混乱するときもあるのでできれば日本語キーボードが嬉しかった

SSD の増設

 お気に入りポイントで「これが最大の選択ポイント」と書いたとおり、m.2 がひとつ空いています。 M.2 2242 が刺さります。
1TBを刺したい気分でしたが、私の観測範囲であまりなじみのないメーカーばかりだったので、今回は512GB増設することにしました。

f:id:sakaik:20191023225108j:plain
OneMix 3 と 512GB SSD


 増設は簡単。小さいプラスドライバ(なんていうサイズなんですかね。私は家にあった眼鏡用のプラスドライバを使いました)で、まず、裏蓋の6つのネジをはずします。ネジのひとつには封印らしきものがしてあるので、呪文を唱えて解除します。たぶん保証が効かなくなるとか、そういう作用があると思うので、もう保証なんか使わない!という覚悟はある程度必要かと思います。ご自身の責任において封印解除してくださいませ。


f:id:sakaik:20191026115810j:plain
OneMix 3 内部

 写真右上にあるのが M.2 です。ここに刺します。フラットケーブルが少し浮いていて、やや干渉しますが、折らないように片方(私は右側)にケーブルを寄せつつ、取り付けます。取り付けには、M2・2mm のねじを自分で用意しておく必要があります。あとネジ穴にカバーというかガードがしてあったので、剥がしてから作業しました。

f:id:sakaik:20191023225537j:plain
SSD取り付け途中

電源投入後にやったことメモ

 備忘として、電源投入後にやったことを書いておきます。

  • まずはWifiの設定。おうちネットワークへと接続。
  • bluetooth マウスの接続設定
  • なにはなくとも、Windows Update
  • 標準SSDのドライブの1本化。購入時は 100GB程度のCドライブと130GB程度のDドライブに分かれていました。Dドライブはカラ。これは(これから増設することを考えると)分かれている必要はないので、230GB程度のCドライブひとつにまとめました。 「コンピュータの管理」-「ディスクの管理」から、Dドライブの領域を削除し、Cドライブの領域を「ボリュームの拡張」で。
  • SSD の増設。上記通り。私の好みもあり、10GB程度のEドライブを確保した上で残りをDドライブとしてクイックフォーマットした。
  • 画面表示の設定。最初は「250%」表示になっていたので、150%や200%あたりで好みに設定
  • ソフト類のインストール。ATOK(passportライセンスに余裕あり)、Office(365ライセンス台数に余裕あり)、ESET Internet security (ライセンスに余裕あり)、秀丸エディタPoderosaEvernoteDropbox。これで一応最低限の作業はできそう。あとは必要になったときにぼちぼち。あ、Ubuntu(WSL)は入れておきたいな。
  • 外で使うための、スマホとのテザリング接続設定


 さて、これで少し機動力が増したので、生活が便利になりそうです。楽しみだ。
あとは刺しっぱなし前提で、microSDの512GBか1TBあたりを導入すれば、最強マシにになる予感。あーあと、目隠しシートが欲しいかも。常時貼りっぱなしでなくて、まわりに人の多いときだけ使う、下敷きみたいな感じの。

アイネックス M.2 SSD固定用ミリネジ PB-044

アイネックス M.2 SSD固定用ミリネジ PB-044

MySQL: ストアドで度分秒変換

GIS関係のデータを探していると、緯度経度を表す数値として、度で表されているものと、度分秒で表されているものがあります。MySQLで扱えるのは、度(「35.65810012度」のような数字)です。度分秒(「35度39分29.172秒」のような表現)で公開されているデータを度単位に直すのが意外と面倒くさいので、こんなストアドを試しに作ってみました。

delimiter //
CREATE FUNCTION dfb2deg(d float, f float, b float)
                RETURNS float DETERMINISTIC
  RETURN d+f/60+b/60/60
//
delimiter ;

こうやって使います。

mysql> SELECT dfb2deg(139, 44, 28.8869);
+---------------------------+
| dfb2deg(139, 44, 28.8869) |
+---------------------------+
|        139.74136352539062 |
+---------------------------+

 ちょっとした手作業の中で、度分秒を少数単位に変換したい場合は、上のような使い方で得た数字をコピーするなどして使えば良いですし、もう変換しながら処理に供したいような場合は以下のように、一旦変数に入れて ST_GeomFromText() かける方法がありそうです。(この例自体は、一旦内部バイナリに変換したものを、そのままテキストに戻しているだけなので意味はありませんが、利用法の例として)
 なおこの緯度経度があらわすのは、日本経緯度原点の十字の交点です。

mysql> set @lon=dfb2deg(139, 44, 28.8869);
mysql> set @lat=dfb2deg( 35, 39, 29.1572);
mysql> set @mypointwkt=CONCAT("POINT(",@lat," ", @lon, ")")

mysql> SELECT ST_AsText(ST_GeomFromText(@mypointwkt));                                                                         
+---------------------------------------------+
| ST_AsText(ST_GeomFromText(@mypointwkt))     |
+---------------------------------------------+
| POINT(35.65810012817383 139.74136352539062) |
+---------------------------------------------+


 MySQLでストアドを日常的に使っている人はあまりいないかもしれませんが、こうやって使うと便利だよという例としても、紹介いたしました。

OSC2019 .Enterprise に少し参加

OSC2019 .Enterprise に少しだけ顔を出してきました。単なる参加記録として。

www.ospn.jp


OSC.Ent は、いつも平日の開催なので、例年ならば私は、日中に別の用事を都内で済ませてから夜の懇親会だけ参加するパターンでした。
今回は、yoku0825 さんが、朝イチでセミナーをやられるので、これだけを目的に参加してきました。普段は個人として、ユーザ会のメンバとしての活動をされているので、会社名を出しての講演は、結構珍しいです。
『約1名で300台のMySQLを管理する技術 ~GMOメディアを支える技術をご紹介~』

www.ospn.jp


 「今まで大変だったうちの8割の部分を、2割の労力をかけて改善する」「ラクするために苦労する」「条件分岐の複雑なスクリプトを書くくらいなら、(バージョンごとに)ファイルを分けちゃう」「ログは、見たいものをピックアップするのではなく、確実に問題のないものを除外した残りを見る」など、私が普段から言っていることと被る事が多くて、とても共感しました。

f:id:sakaik:20191010094719j:plainf:id:sakaik:20191010100228j:plain

OSC2019-Niigata参画

オープンソースカンファレンス2019新潟(OSC2019-Niigata)に参加してきました。

ospn.connpass.com

 今まで私は、同じ場所を1年に2度訪れることはあまりなかったのですが、今年は、OSCとFOSS4Gに参加していたこともあって、何故か札幌2回、新潟2回。どちらも食べ物や飲み物がおいしいところなので、ウェルカムな一年になりました。
 OSC新潟は、新潟市で開催される場合と、長岡市で開催される場合があるのですが、今年は新潟市。新幹線組は少しだけ東京から遠い位置になりますが、飛行機組には新潟空港から近くて良い場所です。海も近いし。

 OSC新潟は他の地域の多くのOSCに比べてかなり小規模で、セミナーはワントラック、ブースもセミナールームの中に一緒にある、という作りです。普段のOSCはセミナーが各部屋に分かれて複数トラック実施されているので、聞く人は自分の聞きたい話題の部屋に移動して話を聞けるメリットがありますが、新潟方式(浜松も)は、一回座ったら、興味のある話題も興味のない話題も次々に流れてくるので、普段聞けない話を聞けるという利点もあります。いつも一緒にブースを出しているけれどもセミナーを聞くことがない仲間たちの話を聞けるのは楽しいですね。
f:id:sakaik:20191005112902j:plain


 私も15分の枠をもらってMySQLの話をしてきましたが、内容は先日の OSS推進フォーラムでのお話(認定試験+GIS)をコンパクトにまとめたものに、そもそもデータベースとは何かという話を冒頭に付け加えた程度のものなので、今回の資料公開はしない予定です。OSS推進フォーラムの資料を参照ください(slideshare)。

 今回のOSC新潟は昨年までとは異なり、運営になるべく事務局の手が入らない形の「自主運営」的な開催でした。私は運営メンバではありませんが、経過をずっと見守り、時々クチは出せる立場にいて、ギリギリまで実は結構やきもきしていました(笑)。
 でも翻って考えてみると、つまり、最近のOSCは非常に高度に効率化されていて、適切なタイミングで適切な事項がばしばっしっと決まっていく、実施されていく、そんな「しっかりした運営」ができているってことなんですよね。 今回のOSC新潟は非常に手作りな感じがあって、なんだか懐かしい感覚とともに、「そうだよ。これ!これでいいんだよ!」という安心感も得たことも事実です。すっごい楽しかった。
 手作り感の極みとして、ブースに張り出す団体名の紙も「手書きしてもらえばいいよ」という案が出ていたのに対して、私は「OSCとして」それはイヤだなーと思ったので、勝手に団体名を印刷した紙を用意していき、使ってもらいました。 「こうしたい」を持っている人が提案して、それが会の一部として取り入れてもらえる、こんな空気を持ったOSC新潟、素敵だったなぁと思います。楽しかった~。 来年は、もし、もっと協力できることがあれば運営面でも協力したいと思うので、宜しくお願いします。

f:id:sakaik:20191005122653j:plain
名物 政ちゃんのたれかつ
f:id:sakaik:20191004223305j:plain
前夜祭の二次会で食べたへぎそば。かなり一次会で呑んで記憶怪しく、ホテルに帰った私の胸ポケットには何故か蕎麦やさんの箸袋が。

Python Code Reading #00 ~みんPy著者の勉強会~に参加

Python Code Reading #00 - 定番入門書「みんなのPython」著者主催の勉強会』に参加してきました。
peatix.com

今回は『会の雰囲気を掴んで頂くため「イントロダクション」と「ウォーミングアップ」の二本をお届けします。』ということで、大きな全体像のお話をされたあとで、「微分積分」を例に、実際にPythonのコードが動く体験をする、という流れでした。 いやその、、わからないPythonを学ぶのに、わからない微分積分を使うというのは、、その、、あの、、、と思っていたのですが、学生時代に公式を覚えることに終始していた(そして今はすっかり考え方も公式も忘れてしまっている)微積について、今までとは違う角度からお話が聞けたのは面白かったです。まさに「分割」を大きいものから小さいものまで自由に変更できるのがプログラムの強みですよね。

 印象的だったのが、参加者のバックグラウンドの広さ。会のタイトルだけを見ると、どう考えても、プログラムをやる人が集まってきそうなものですが、そうでないお仕事、いわゆる「文系のお仕事」という方がかなり多く参加されていました。atsさんの普段の活動範囲の広さを見せつけられた気分です。すごい。 今、直接にはプログラムには関わっていないようなお仕事の方が、自分で書いてみたい、と興味を持って手を動かすのは、本当に素敵な事だと思うので、ますます広がるといいなと思いました。

 atsさんと会うのは非常に久しぶりで(もしかしたら10年くらい会っていないんじゃないかという気も)、お会いできたのも嬉しいことでしたし、相変わらずの落ち着いた語り口かつ、他の人たちよりも一段広い領域をベースにしたわかりやすい説明は健在(というより益々パワーアップ)で、良かったです。

 今回、会場で行ったビアバッシュ(懇親会)に飲み物が届かないというアクシデントがあり、急遽買い出し部隊を結成して調達してきました。こういうときに比較的イベント慣れしている私みたいな人が機転を利かせて動くのはある意味「当然のおつとめ」と考えているのですが、買い出し部隊にぱっと手をあげてくれた3人の皆さん、特にその中でひとり学生さんが「僕もいきます!」と言ってくれたのが、とても嬉しかったのです。ありがとうございました。Facebookでつながろうねと言ったけど申請来ず(こちらからは相手の情報はわからないw)、これをお読みになりましたらぜひ(笑)。

 次回 #01 は 11/21。ちょっと個人的に微妙な日程で、参加できるかわかりませんが、今後も会の継続と発展を楽しみにしています。→11/28にリスケしたっぽい
https://peatix.com/event/1348611peatix.com
peatix.com



f:id:sakaik:20191003185901j:plain

OSS推進フォーラム勉強会でお話してきました

日本OSS推進フォーラム アプリケーション部会で MySQL 三昧ナイトな勉強会を開きたいということで、お話をさせていただく機会に恵まれました。
勉強会のタイトルは「改めて聞きたい!MySQL ~最新MySQL8も紹介~」

ossforum.connpass.com


 普段の会合とは全然違う層が聞きに来てくれることを想定して、今まで他の場所でもお話したことがある内容をベースにして、わかりやすいように前提や背景の説明を加えたものを用意して行ったのですが、行ってみたら、普段よく顔を合わす人もたくさんいて(そして終了後の交流会に残ったのは、そのメンバー(笑))、ちょっと切り口を変えて持って行ったのが救いでした。

 今年しか言えない「令和元年の」をキーワードにしたかったので、MySQLの2つの「元年」をお話しました。
・認定試験元年(いままでもあったけど、改めて、これから来るぞ!」
GIS元年(正確にはもう1年くらい前からなんだけど、まだ盛り上がりに欠けるので、これから来るぞという意味での元年)


どちらも、少しでも興味を持たれた方がいたら、お試しいただければと思います。


www.slideshare.net


f:id:sakaik:20191002182304j:plain