Scala Matsuri 2018 Day2 参加メモ

最終日の朝起きられずに13時からの参加になりました。なんかデジャブ感...

というわけで(?)昨日に引き続きかんたんにメモを残しておきます。

あと3日でJava 10がリリースですが、興味ある人いますか?

Scala初級の人でも分かる話

  • Option[T]の使い方、概念のお話だった。
  • for式のスコープは変数束縛した箇所からyieldまで
  • ScalaでプログラミングするときにJavaJVMはどれくらい意識する必要があるのか?
    • 数年間管理するようなプロダクトを除いてJavaJVMについて意識する必要はない。
    • Javaのライブラリを使用するときはそれについて調べる必要はある。

というわけで今日はあまり回れませんでしたが、最後までScala Matsuriを楽しむことが出来ました。スタッフの皆さん、発表者の皆さんありがとうございました。

f:id:uryoya:20180318230040j:plain

Scala Matsuri 2018 TrainingDay & Day1 参加メモ

PyConJP2017に参加して楽しかったのでScalaのカンファレンスにも参加しました。

自分のScala経験は1年弱で本格的に使い始めたのはここ2,3ヶ月くらいです。やっとScalaモナド(OptionとかEitherとかFutureとか)を機能として活用できるようになった程度です。圏論とかはさっぱりわかりません。

そんな感じのスキルでScala Matsuriに参加したメモと雑感をとりあえず今日の分までまとめます。スライドが公開されてるものは見つけた限りでリンク貼ってあります。

Training Day

トレーニングDayはScala初心者向けのセッションやOSSハンズオン・Scalaハンズオンなどがありましたが今回はセッションをずっと聞いてました。

Scalaに関する神話と真実

  • implicit はとりあえず implicit parameter のことを覚えておけばおk
  • Scalaが有効に活用できる場面はサーバで動かすアプリケーションなど、起動時間よりもその後のスピードが重要なもの。分散処理が得意なのでそのたぐいとか。逆にコマンドラインツールとかの起動時間がシビアなものは向かない(JVMの制約)。
  • SlackとGitterのコミュニティあります。
  • コミュニティ怖くないです。

Akkaで分散システム入門

www.slideshare.net

  • Akka強そう...

逆引き!Scala x ビッグデータ

www.slideshare.net

implicit入門

Implicit 入門

  • まず implicit parameter という機能があり、そして implicit conversion がある。
  • (あとはスライド見たほうが早いな...())

Day 1

量子コンピュータScalaでかわいくシミュレーションしてみよう♪

  • 量子ビットを再現するために複素行列を用いる(ここで僕の数学力の限界が訪れる)
  • かわいいの裏側には多大な努力が....

『暗黙』とうまく付き合うためのTips

  • 暗黙のスコープっていうのがある
  • enrich my library (あとで調べる)
  • Tips 1 : implicitを使ってるライブラリは、それのサンプルコードを読む
    • ライブラリのドキュメントとか、example、testあたり
  • Tips 2 : 暗黙のスコープの仕組みを理解しておく
  • Tips 3 : 聞き取れなかった....

SBT1

  • About timeという映画がありまして
  • SBTはシェルモードで起動するべき
    • バッチモードだと毎回jarの読み込み(?)をするので遅い。2倍位遅いこともあるとか。
      • (自分の環境で run するとCtrl-Dで復帰してくれないのどうしようということで後で調べる)
  • LSPというのがあって、それのSBT版があります

実用的な圏論入門

  • 途中で入ったからか同時翻訳を聞いてもさっぱりわからず...英語聞けてる感じの人のツイートを見ると結構良かったっぽいので日本語で聞きたい....(英語力ないのでハイ

リアクティブDDD実践入門

  • 実務経験がないと多分わからないという知見が得られた

雑感

圧倒的Scala力の無さを感じることが出来ました。もっとバリバリコードを書かないといかんですねこれは。とりあえず implicit parameter がどういったものなのかは2日間の内にあったセッションでなんとなくわかってきたので良かったです。あと流石に業務経験が無いと理解が難しいような内容も多かったのでそのあたりはこれからかなと思いました。学生の内に業務経験は積むのは難しい...というか多分他にやるべきことがある。

あとバイト先のご厚意で懇親会に出席したのですが質問が用意できるほど理解出来ていなかったので、あまりお話できなくてちょっともったいないことをしたなーと思いました。

というわけで本当に雑なメモですがこんな感じで。あとで見直します。2日目も行くので論理明日にまた記事書きます。

学生LTに参加しました

ずっと行こうと思っていた学生LTですが、丁度都合が合う日があったので行ってきました。

student-lt.connpass.com

たまたま近くにに引っ越した先輩の家に泊まっていたので、「余裕でしょ~w」と思って朝銭湯に行ってから会場に向かったら余裕で遅刻しました。良くない。あと会場のビルがさながらRPGのダンジョンみたいで面白かったです。都会慣れしていないのでエレベーターホールを2,3周してしまった...

記憶力がニワトリ並みなのですべての発表をちゃんと覚えていないのですが、スマートスピーカーRaspberry Piで作ったお話と、Kotlinエバンジェリストの長澤太郎さんのお話、株式会社PoliPoliの山田さんのお話が印象に残っています。

スマートスピーカーはてっきり既製品ばかりで規格(?)としてもかなり閉じたものかと思っていたのですが、そこは最近のTech企業が作るものなのでいろいろ組み合わせるとRaspberry Piで自作もできるらしいです。(ちゃんと覚えろ

長澤さんの発表ではKotlinの紹介とエンジニアとしてどのような取り組みをしているか―や、心構えのお話などを聞きました。 KotlinはJVM系の言語でAndroid開発でかなり人気のようです。話を聞いている雰囲気ではScalaっぽさも感じました。どれくらい似ているんでしょうか?

ScalaAndroid開発をするのはググった感じだと結構大変そうなのでAndroid開発をすることになったらKotlin使ってみたいです。

株式会社PoliPoliさんはなんと学生起業のベンチャーさんらしいです。政治家と有権者をつなぐプラットフォームということでLTではサービスの説明をされていました。下のツイートの通りですが、前々回の参院選では頑張って候補者の情報を集めようとしたところ、行政で用意されたWebサイトを見てもなかなかわかりづらかったのでありがたいです。次の選挙では使ってみたいですね。

長澤さんの発表ではいかに意識の高い(系とか(笑)ではなく)エンジニアになるかという話でアウトプットの重要性を説いていたので、久しぶりにブログを更新しました。頑張って書こうとするとなかなかしんどいので、今回のようなざっくりブログを書き続ける技術も身につけたいところです。ブログを投稿して僕の学生LT参加の締めとしましょう。学生LTお疲れ様でした!!!


株式会社PoliPoliさんの山口さんと書いていましたが正しくは山田さんでした。すみません🙇🙇🙇(記事中では修正しています)


あとがき(?)

このブログをたどるとこの記事とは別のTwitterアカウントの引用があるかと思いますが同一人物です。某アカウントは完全にオタクアカウントと化してこういうイベントの時に使いづらいので今回を機に運用を切り分けました。この記事に出てきたTwitterアカウントに興味のあるい方はそちらを、オタクアカウントに興味のある方は過去ブログをたどっていただけるといい感じになると思います(いい感じとは一体...)。

Ubuntu17.10のGDMロック画面の背景色を変える

Ubuntu17.10からデスクトップ環境のUnity/LightDMが廃止され、代わりにGNOME3/GDMになりました。それに合わせてGDMのテーマもUbuntuに合わせて変えられたのですが、ログイン画面背景色のオレンジがなかなか目にうるさいので普通のGDMの色に戻したいと思います。なお適当に探して見つけたので保証はしかねます。自己責任でお願いします。

root権限で /etc/alternatives/gdm3.css を開き、 #lockDialogGroupbackground の定義(カラーコードのみ)を下記の通り編集します。

#lockDialogGroup {
  background: #2e3436 url(resource:///org/gnome/shell/theme/noise-texture.png);
  background-repeat: repeat;
}

おそらく url(...)GDM - ArchWiki のように編集すれば背景画像も変えられると思います(未検証)。

続いて1675行目、 login-dialog-user-list:expandedbackground-color の定義(カラーコードのみ)を下記のとおり編集します。

  .login-dialog-user-list:expanded .login-dialog-user-list-item:selected {
    background-color: #215d9c;
    color: #ffffff;
}

保存して再起動すれば懐かしいUbuntu GNOME(というか素のGNOME3)のログイン画面っぽくなります。本格的に修正するのは骨が折れそうなのでこれで終わりにしました。

UbuntuでAndroid Studioのデスクトップエントリーを追加する

お題目はタイトルの通り。やり方だけ知りたい人は手順から。

背景

UbuntuAndroid Studioをインストールするときは公式サイトに従って、

  1. Download Android Studio and SDK Tools | Android Studio から.zipをダウンロード
  2. 解凍して /usr/local/ 以下に設置
  3. /usr/local/android-studio/bin/studio.sh を実行

という手順でインストールすると思います。そしてIntellij IDEA等ではインストーラを実行中に「デスクトップエントリの作成」の項目が出てくるのですが、ベースは同じはずのAndroid Studioでは出てきません。

そこでよくある手段として デスクトップエントリ を作成するのですが、そんなことをしなくても以下の手順でデスクトップエントリを追加できました。

手順

  1. まず起動すると出てくるあれを出します。 f:id:uryoya:20171125191731p:plain

  2. Configure のプルダウンメニューから "Create Desktop Entry" を選択 f:id:uryoya:20171125191959p:plain

  3. OKを押す。全ユーザにエントリを作りたい場合は "Create the entry point for all users ~" にチェックを入れれば多分OK(試してない)。 f:id:uryoya:20171125192302p:plain

以上でUbuntuにデスクトップエントリが追加できます。試したのは16.04と17.10です。 f:id:uryoya:20171125192444p:plain

起動するときに出てくるあれが出てこない場合は File > Settings > Appearance & Behavior > System settings > Startup/Shutdown > Reopen last project on startup のチェックを外せばスタートアップメニュー(あれ)が出てきます。多分Settingsからでも変えられると思うんですが探すのが面倒だったのでこういう方法で。

Ubuntu16.04でGDMが起動途中に死んでしまうのを直した話

Ubuntu16.04(Unity)にGNOME3を入れて、LightDM+GNOME3でしばらく動かしていた。その後にLightDMからGDMに変えたらGDMが起動途中に事切れてログインできなくなってしまったのを直しました。結論から言うと、

$ sudo dpkg-reconfigure gdm3

で直ったんですが、その前に紆余曲折があってどれが主原因だったのかわからないので記録しておきます。

GDM入れた直後の状態

GDMを入れて、「確かArch Wikiにこんなこと書いてあったなー」と思って

$ sudo systemctl disable lightdm
$ sudo systemctl enable gdm

とした所次に再起動した時には死んでいました...。起動画面はBtrfs scanとかなんとか言って止まっていた。TTYを変えるとCUIでログイン可能だったので助かりました。

この段階で、

  • Unity Desktop
  • LightDM
  • GNOME3
  • GDM

がインストールされていました。

CUIログインして startx とすると一応GNOME3が起動することが確認できました。

試行錯誤してみる

とりあえずググるdpkg-reconfigure gdm でLightDMからGDMに切り替わるらしいという情報を得たのでやってみたのですが断念(何故この時駄目だったのか...???)。そこでGDMを入れなおしてみたり、 ubuntu-gnome-desktop パッケージを入れたり、 ubuntu-desktop をpurgeしてみたものの直らず。この段階でgdm.serviceをenableしているにも関わらず、startxしたあとのgdm.serviceはinactive (dead)になっていることが判明。他のUbuntuマシンの状態を確認すると、ログイン後もGDMサービスが起動していたので、このあたりがおかしいらしい?と推理してみました。

そこでCUIログインした状態で systemctl gdm.service start した所GDMのログイン画面が登場。なんもわからん。もちろん再起動しても死んだまま。まじでわからん。

成功する

色々探した結果、また最初のコマンドが現れたのでダメ元で試したところ起動しました。次のコマンドです(最初と同じ)。

$ sudo dpkg-reconfigure gdm3

gdmgdm3 に差があるのかと言われると、 systemctl status gdm3.service としても gdm.service の状態が表示されたので怪しそう。いやちゃんと調べろよという話なんですが。

多分Unity周りのパッケージを消したのが良かったのかな?くらいしかわかりませんでした。というわけで記憶に怪しいコマンドは適当に入力しないようにしましょう。

PyConJP2017に参加しました(2日目)

2日目も参加しました(かなり寝坊しましたが…)。というわけで忘れないうちにメモっておきます。

起床するまで

実は昨日から@gurutaminnh8の紹介で@nnsnodnbさんと行動してて、ひやかしハウスに泊めてもらってました。 ありがとうひやかしさん!

で色々喋って4時になってやっと就寝し、起きたら12時になってました。いつも通りだね

見てきた物リスト&メモ

  • クイズ・python勝ち抜きバトル!!
    • 確か初級のあたりで死んだ。
      • その時の問題は「Pythonで整数型は最大いくつまでの数を扱えるでしょうか」。正解はDの「もっとずっと多い」だったけど、Bと答えてしまった。
        • 32bit整数だったような…とか思ってたけどそんなことはなかったよ
          • しかもその場合は4,294,967,296だし、FEやり直したほうがいいのでは()
    • is==の違いが出てくる問題は、いつも気をつけてるつもりだけど間違えてしまう…
      • 最後の方のTrue + False is Trueとかね
    • 髭のネタ面白かった
  • AWS APIGateway + Python Lambda + NEologdで作るサーバレス日本語形態素解析API
    • 202から移動せずにそのまま聞いてたけど普段自然言語処理をやらないので聞いたことのある単語くらいしかわからなかった(申し訳🙏)

LT

相変わらずアメリカ語わかんなくて、英語できるようにならねぇとなぁとなりました。精進します…

日本語のほうはちゃんとわかりました(当たり前)。皆さんのPythonへの愛情が伝わってきてよかったです。(Pythonはいいぞ!)

最後に

PyConJP2017に参加してよかったです。とてもいい刺激になりました。それとスタッフ&スピーカーの皆さんお疲れ様でした。楽しかったです!!

これからもPythonを書きまくりたいと思います!!!