月別アーカイブ: 2019年6月

Xubuntu 18.04 で rclone を使ってGoogleドライブと同期する

rcloneでGoogleドライブとローカルを同期したのでメモ。

aptでrcloneをインストールする

$ sudo apt install rclone

それからrclone configで初期設定。

$ rclone config
2019/06/26 10:48:23 NOTICE: Config file "/home/hoge/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
n/r/c/s/q> n

新規作成は「n」

name> Google

設定の名前をつける。
わかりやすく「Google」

Type of storage to configure.
Choose a number from below, or type in your own value
 1 / Amazon Drive
   \ "amazon cloud drive"
 2 / Amazon S3 (also Dreamhost, Ceph, Minio)
   \ "s3"
 3 / Backblaze B2
   \ "b2"
 4 / Dropbox
   \ "dropbox"
 5 / Encrypt/Decrypt a remote
   \ "crypt"
 6 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
 7 / Google Drive
   \ "drive"
 8 / Hubic
   \ "hubic"
 9 / Local Disk
   \ "local"
10 / Microsoft OneDrive
   \ "onedrive"
11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
12 / SSH/SFTP Connection
   \ "sftp"
13 / Yandex Disk
   \ "yandex"
Storage> 7   

Googleドライブは「7」

Google Application Client Id - leave blank normally.
client_id> 
Google Application Client Secret - leave blank normally.
client_secret> 
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> y

client_idとclient_secretは何もいれずにEnter
そして「y」を押すとブラウザが開いてGoogle認証ログインするので、rcloneを「許可」するを選ぶ

Waiting for code...
Got code
--------------------
[Google]
client_id = 
client_secret = 
token = {"access_token":"...","token_type":"Bearer","refresh_token":"...","expiry":"2019-06-26T11:52:02.661189132+09:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

ターミナルに戻り、「y」

Current remotes:

Name                 Type
====                 ====
Google               drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

設定完了。
「q」で終了

そしたらローカルにフォルダ作って、リモートと同期

$ mkdir googledrive
$ cd googledrive
$ rclone sync Google: .

しばらく待つとリモートからローカルへの同期が完了する。

逆はこうだが、ローカルにないリモートのファイルが消されちゃうので、-n オプションつけて注意しながら同期という運用でカバー。

$ cd googledrive
$ rclone sync -n . Google:

Spark ScalaのmapとflatMapの動作

Spark始めた初期につまづいたのでメモ。
結果の違いで覚えた。

まずはRDDを作る。

val seq = Seq("Some People Feel the Rain", "Others Just Get Wet")
val rdd = sc.parallelize(seq)

このRDDに対してmap

rdd.map(x => x.split(" ")).collect

結果はこれ
Array[Array[String]] = Array(Array(Some, People, Feel, the, Rain), Array(Others, Just, Get, Wet))
入れ子になってる。

さっきのRDDに対してflatMap

rdd.flatMap(x => x.split(" ")).collect

結果はこれ
Array[String] = Array(Some, People, Feel, the, Rain, Others, Just, Get, Wet)
フラットになってる。

Xubuntu 18.04 のダークテーマを有効にする

Xubuntu 18.04のダークテーマを有効化したのでメモ

~/.config/gtk-3.0/settings.ini に下記をコピペして再ログインする。
ファイルがなければ作る。

[Settings]
gtk-application-prefer-dark-theme=true

Google BigQueryでタブ区切りTSVをインポート&エクスポート

すごいよく使うけどよく忘れるのでメモ

TSVのインポート
※ヘッダあり・10行未満のエラーは無視

$ bq load --source_format=CSV --encoding=UTF-8 --field_delimiter='\t' --skip_leading_rows=1 --max_bad_records=10 project:dataset.table file.tsv id:int64,name:string,...

TSVでエクスポート

$ bq extract --destination_format=CSV --field_delimiter='\t' project:dataset.table gs://gcsbucket/file.tsv

Spark ScalaでsortByKeyを降順にする

SparkでreduceByKeyしたあとにsortByKeyで降順にソートしたかったのでメモ

sortByKey()の引数にfalseを渡す。

val totalByItem = rdd.reduceByKey((x, y) =>  (x + y)) //要素毎にカウントして (要素, 個数)のtupleにする
val flipped = totalByItem.map(x => (x._2, x._1)) // tupleの要素と個数を入れ替えて(個数、 要素)にする
val sorted = flipped.sortByKey(false) // 降順でソート

Ubuntu 18.04 に Scala をインストール

Ubuntu(Xubuntu) 18.04にScalaをインストールしたんだが、REPLで打ち込んだ文字がエコーされなかったのでメモ

まずはaptでscalaをインストール

$ sudo apt install scala

インストールしたらscalaのREPLを起動

$ scala

と、REPLが起動するんだが、何を打ち込んでもターミナルにエコーされない。
構わずに「println(“hoge”)」と入力してEnterを押すと「hoge」と出るので、エコーだけの問題

解決策は、ここに書いてあった。JLine2ライブラリの問題。
sbt – Scala REPL no echo on input – Stack Overflow

以下の手順で直った。

$ wget https://launchpad.net/~lokkju/+archive/ubuntu/java-compat/+build/16458066/+files/libjline2-java_2.14.6-1ubuntu1~bionicppa1_all.deb
$ sudo dpkg -i libjline2-java_2.14.6-1ubuntu1~bionicppa1_all.deb

これでREPLが正常に動作する。

HuaweiのHonor MagicbookにXubuntu 18.04をインストール

PCを買い替えたのでメモ。
ファーウェイのHonor Magicbookをgeekbuying.comから購入。
ネットでの注文から出荷まで5営業日、それからちょうど7日後に到着。

Huawei Honor Magicbook laptop AMD Ryzen 5 3500U Quad Core 14″ IPS 1920*1080 8GB DDR4 512GB SSD

こいつはWindows中国版がプレインストールされていて、起動と同時に中国語で喋りだすw

中国版Windows。地域選択で「日本」を選んでも日本語にはならない。

「待て、慌てるな、これは孔明の罠だ!」と司馬仲達っぽいセリフを脳内で唱えつつ、
Windowsに用はないので即座にXubuntuクリーンインストールの計を実行。

中国語で喋り続けるMagicbookにXubuntuのインストールUSBを刺して再起動。

BIOS画面を開くには、起動時にF2キーを押しっぱなしでOK。
Fast BootとSecure Bootを無効にして、BootオプションではGeneral UEFIからの起動を選択。

で、さらに再起動後インストーラが起動するので、HDDを消去してからXubuntuをインストール完了。

MagicbookにXubuntuをクリーンインストール

あとは諸々設定するんだが、どうも画面の輝度が調整出来ない。
※そしていまだに未解決。

ググってgrubの起動オプション変えたり、無理やり /sys/class/backlight/acpi_video0/brightness 書き換えたり。
あとはAMDが公開してるGPUドライバーをインストールしたりと試すが変わらず。
で、そんな事してたらVirtubalboxが起動しなくなった。。

screen 0 does not appear to be DRI2 capable

というエラーを吐いて落ちる。

仕方ないので輝度調整は一旦諦めて、amdgpu-pro-uninstallでドライバー削除。

$ sudo amdgpu-pro-uninstall
$ sudo apt autoremove
$ sudo dpkg-reconfigure xorg

再起動したらVirtualboxも起動した。

そのうちカーネルパラメータいじったりアップデートで直るだろうからしばらく放置。