Android:Float値を扱えるカスタムSeekBarPreference
Float値を扱えるカスタムSeekBarPreferenceを作った.
動機
AndoridXのSeekBarPreference
(API)はSeekBarPreference#getValue/setValue
でInt
しか受け付けない.Float
型を扱えて,かつ値のフォーマット文字列を指定できるPreference
クラスを自作した.
実装
Vimでdenite.nvimでチートシートを出すやつ
\[ twitter やめ方 ] [検索]
近況について書こうかなと思いましたが一日目から暗い記事もアレなんで別のネタを書きます.
争い,自分にとってはどうでもいいこと,その情報は自分にとって有益なものなのか?私はただゲラゲラ笑っていたいだけなのに.そんなこんなでTwitterをやめることにしたわけですが,情報中毒患者の自分は情報を取り入れないと気がすみません.というわけでSlackを活用しましょう.
Advent Calendarを登録しておくと新しい記事を勝手に拾ってきてくれるスクリプトを書きました.OUCC Slackの #advent チャンネルに qiita.com 又は adventar.org のURLを投げると一定時間毎に新たに登録された記事を確認し,投稿してくれます.これでみんなもっとSlackを使ってくれるようになるかな.
みんなTwitterをやめよう
2016年12月4日 追記 ソースコードを公開しました github.com
SlackにownCloudの更新通知をする
このアプリを利用すれば良いのだが,ownCloud 8に対応していないし,ownCloudの内部にパッチを当てる必要があって,使いづらい.自力でownCloud 8に対応させるかと思っていたら,もっといい方法を見つけた.
「アクティビティ」画面で左下の歯車アイコンを押すとRSSフィードのURLが取得できる.
SlackのApp DirectoryにRSSというアプリがある.定期的にRSSを取得して更新があればchannelに流してくれる.更新間隔は指定できないぽい.
簡単だった.
Visual Studio Codeのすゝめ (Golang寄り)
OUCC Advent Calendar 2015 5日目の記事です.
VSCodeの紹介
Connect(); 2015でVisual Studio Code v0.10.1 beta(以下VSCode)が発表されました.
プレゼンテーション中にリポジトリを公開したそうです.ちょーかこいいですね.ダウンロードはこちらから.
0.10.1における新機能はこちらにまとまっていますが,この中で特に注目したいのが拡張機能のサポートですね.Marketplaceには発表後にどんどん拡張機能が公開されています.
Go言語拡張
数ある拡張機能の中でも特に注目を集めているのがGo言語の拡張ですね.Connect();でも紹介されています.
Go言語をサポートと聞いて「シンタックスハイライト程度でサポートしたというのはちょっと…」なんて思っていたのですが,ちゃんとコード補完,定義にジャンプ,リネームもサポートされています.これは拡張機能の開発者のツイート.
VS Code support for Go combines great Go toolchain (gocode, godef, gorename, etc) with the nice editor UX of @Code. pic.twitter.com/inNRpGMmnn
— Luke Hoban (@lukehoban) November 18, 2015
そしてなんと
おい待て,VS CodeだとGoのデバッグがサポートされてる!? https://t.co/8a3IHEnMcr
— ∫exp(-ax^2)dx=るーとπ/a (@yuntan_t) November 18, 2015
デバッグもちゃんとサポートされています.それまでGoを書くのにViMを使っていたのですが,デバッガが使えるというので乗り換える気になってしまいました.VSCodeはデバッガのインタフェースが組み込まれているのがViMやatomに対する優位点ですね(ViMやatomでもデバッガを使おうと思えば使えるのだけど).
拡張の機能の紹介(軽く)
インストール方法とかセットアップ方法はREADMEにあるとおりなので省略します.go get
で関連ツールをインストールする必要がある点に注意してください.
まあ普通に候補・補完・スニペット,シンボルをマウスホバーで詳細表示,定義にジャンプ,シンボルリネーム等効きます.編集時にリアルタイムでコード解析しエラーを表示してくれます.C#で開発してるみたいな感覚ですね(伝わりにくい感想).まあでもここまでならViMでできます.
デバッグ機能の紹介
VSCodeの目玉,デバッグ機能です.デバッグにはdelveを使用しています.なのでdelveのインストールが必要になります.現状Windowsはサポートされていません(delveが現状Windowsに対応していないからですが,開発中のPullreqが建っているのでそのうちサポートされるでしょう).Linuxではgo get github.com/derekparker/delve
するだけなのですが,Macでは色々とややこしそうです.Building · derekparker/delve Wikiを見ましょう.
delve
コマンドが使えるようになったら次にlaunch.json
を書きましょう.VSCodeのデバッグペインを開いてサイドバー右上の歯車アイコンをクリックします.READMEにも例はありますが,こんな感じです.
{ "version": "0.1.0", "configurations": [ { "name": "Launch syaro", "type": "go", "request": "launch", "mode": "debug", "program": "main.go", "stopOnEntry": false, "env": { "SYARODIR": "build" }, "args": ["sample"] // "cwd": "build" } ] }
program
にはpackage main
宣言をした(つまりmain関数を含む)ファイル又はパッケージのディレクトリを指定しましょう.stopOnEntry
は現状効果がありません.env
,args
,cwd
はそれぞれ,実行されるプログラムの環境変数,引数,ワーキングディレクトリを指定しますが*1,delve
がワーキングディレクトリの変更をサポートしていないのでcwd
は現状効果がありません*2.
実際にデバッグしている様子がこちらです.デバッグしているのはサーバーアプリケーションです.デバッグコンソールにログが流れ込んでくる様子*3やブレークポイント,コールスタック,変数の確認,ステップ実行機能が確認できますね.*4
この記事では紹介しきれませんでしたが,VSCodeはnodejs(TypeScript/JavaScript),C#での開発もサポートしています.これからも拡張機能の充実によりサポートされる言語は更に増えると思われます.VSCodeはAtomより一歩進んだコーディング環境が欲しい!という欲求を叶えてくれることでしょう.
番外 | JSON RPC 2
delve
との通信にはJSON-RPC 2.0という規格が用いられている.node(VSCode)からdelve
のプロセスをヘッドレスモードでspawn
して通信するだけ.json-rpc2パッケージを使えば簡単に通信できる.おそらくブラウザでも使用できるだろう.gRPCは今のところブラウザで使えないからなぁ…
HaskellでGoのtimeパッケージの模倣
Haskellで定期実行をしたいと思い,HaskellのスレッドシステムとSTMについて その1 — ありえるえりあとか見ながら書いた.
先のリンクの記事にもあるようにメインスレッドで待ってやらないと終了するので,chan
を使って待たせた.Goのchanと同じ考えで,chanの受信待機するとスレッドが止まると思いこうした.
ところで,GoのtimeパッケージにはAfter
とTick
という関数がある.どちらもchan Time
を返し,これを用いて定期実行を以下のように実行できる.Haskellでも同じことができないかと考えた.
Haskellにtimersパッケージがあるが,こちらはIO
を受け取るもののようだ.
参考
LaTeXで迷うこと・間違えること
どうでもいいっちゃどうでもいいことなんだけど
ここに書いてあるのは
1. Quote
"Yes."
ではなく
``Yes."
2. 微分
の前に空白を作る.はひとまとまりに見えるようにする.
dx dy = r dr d\theta
ではなく
dx \, dy = r \, dr \, d\theta
3. sinとかlogとか関数名
で定義されているものを使う.
\sin 2u = 2 \sin u \cos u
4. inline math
文中の記号はinline mathで書く.
Given a matrix $A$ and vector $b$, solve $Ax = b$.
Given a matrix and vector , solve .
といったところ.2は知らなかった.
で,それ以外にもだな
5. 括弧のでかさ
display mathで縦に長い式を括弧で囲むとき
\left(\int_0^1 x /, dx \right)
てなかんじに\left(
と\right)
で囲まないとかっこわるい
6. 微分記号のは斜体にしない
上の式でもやってる間違いなんだけどを斜体にしてはならない.斜体にならないようにするには
\mathrm{d}x
のように,\mathrm
を使う.
TODO: じゃあは?
7. ネイピア数,虚数の記号は斜体にしない
とかも斜体にしてはならない.
8. 上付き,下付き
よく
10^12
て書いて
[tex:{1012}]
になっちゃうことがある.ちゃんと{}
で囲む
10^{12}
これ以外にもありそうだけど
ところで,6,7については斜体にするのが間違いということでいいんだろうか?最初に上げたブログでは
Jeremy: I believe that is the European convention. My American eyes are accustomed to ‘d’ set in math italic.
という投稿者コメントがみられる.それからローマン体(イタリックにしない)を使うには\text
を使えだとかネイピア数は\operatorname{e}
にしろというコメントもある.
めんどくせぇ…