Unyablog.

のにれんのブログ

Jenkins でローカルレポジトリを github のレポジトリに同期する

Jenkins でローカルにあるレポジトリから github に同期したい。pipline で行う場合、 GitPublisher Plugin が使えないので、自分で git push する必要がある。 1. cred-id で github にアクセスするためのユーザー名とトークンを記録しておく。 2. Declarat…

Actions on Google SDK を用いた Action の開発で詰まった点

Google Assistant 用のアプリケーションを開発するときは Actions on Google SDK を使う。 よくあるのは Dialogflow 経由で設定して Firebase などで返答を決定するものだが、 Actions on Google SDK というものもある。 これを使えば、json で Action につ…

systemd-nspawn に関するメモ (--as-pid2 / ネットワーク関係)

--as-pid2 指定されたものを pid 2 で実行する。pid 1 には STUBINIT が入り、pid 1 に課せられた仕事を代わりにやってくれる(シグナル処理等)。何か(実質)シングルプロセスで立ち上げたい時はコレ使ってると良さそう。 root@piyo:~# systemd-nspawn --mac…

option が disabled の時の jQuery の select multiple に対する val の挙動

<select multiple> <option>foo</option> <option disabled selected>bar</option> </select> 上のような select を用いた時に、jQuery で選択中の値を取得しようとすると disabled な option は省かれてしまう。 jquery/val.js at 56136897f241db22560b58c3518578ca1453d5c7 · jquery/jquery · GitHub bootstrap-select が上手く動かなくて…

ISUCON7 の予選に出た (95352点)

今年も isucon に参加した。 id:tyage と id:non_117 と一緒に参加した。 isucon.net max 113846、最終的なスコアは 95252 だった。言語は ruby 。今年は社会人枠で出たので本戦には10万点ぐらい足りなかった。 まあ学生の中だけで考えると上の方に位置して…

systemd-nspawn 235 のコンテナで mlock を行う

systemd-nspwan で Elasticsearch の運用をしている。親のホストは ArchLinux なので新しい systemd が入ってくる。 ある日、 pacman -Syu して systemd を 234 から 235 に上げたら Elasticsearch がエラーで落ちるようになった。 [2017-10-19T07:10:13,955…

sssd: sssd では ldapi は使えない

ドキュメントを読めば ldap[s]://<host>[:port] と書いてあるので当然である…。気をつけましょう。 linux.die.net 特に使える予定もなさそう。 Bug 627763 – sssd: connection problems with ldapi</host>

ldap: "additional info: objectClass: value #0 invalid per syntax"

slapd のセットアップで、ドキュメントに基づいて # cat ~/admin.ldif dn: dc=example,dc=com objectClass: organization objectClass: dcObject dc: example o: example dn: cn=admin,dc=example,dc=com objectClass: organizationalRole cn: admin を ldap…

OCaml 入門途中の感想

最近京大の五十嵐先生が公開しているテキストを使って OCaml に入門していた。 このテキストは object まで行かないので入門したとは言えそうにないが、一区切り付いたので初心を記録する意味で雑に感想を書いておく。 主に Haskell を考えながら書いていま…

pipenv を使ってみる

Python における bundler といえば (超ざっくり言えば) virtualenv になるのですが*1、イマイチ使いにくいなと思っていたら pipenv というものが登場していた。ちょっと使ってみたのでメモ。 何するやつ github.com Pipfile(.lock)を元に良い感じに virtuale…

vim-keymaps でキーマップを簡単に切り替える

vim

Vim のキーマップを簡単に切り替えられるプラグイン、 vim-keymaps を作りました。 github.com 下のように、複数のキーマップを設定することができ、簡単に切り替えることが出来ます。下では <C-k> でキーマップを切り替えています。 今すぐダウンロード! 使い方</c-k>…

zsh の色付き vcs_info を一行上の右端に出す

書いておかないとあとで分からなくなるのでメモ。 序 zsh 便利ですよね。vcs_info も便利ですよね。 vcs_info は名前の通り VCS の情報を出してくれる君です。 zshのターミナルにリポジトリの情報を表示してみる · けんごのお屋敷 本題 最近 zsh のプロンプ…

Shell の pipe と redirection を実装する

新年なので Shell の pipe と redirection を実装した。 前回の記事はこちら nonylene.hatenablog.jp 前回実装してみて、さすがに pipe と redirection ぐらいは実装しておいてもいいのでは?と思って実装してみた。 pipe github.com パイプについての説明は…

Mackerel Agent for Android

この記事は Mackerel アドベントカレンダー 21 日目の記事です。 qiita.com Mackerel について Mackerel とはサーバーを監視するサービスで、Slack などとの連携が便利だったりグラフが美しかったりと良いサービスです。 Mackerel にデータを送るためのサー…

軽い Shell を作った

↓の記事を読んで自分でもサクッと作れそうなので作ってみた。 brennan.io 名前は nsh (nonylene shell の略)。記事を参考にコードを書いていたら大体同じようなものになってしまった。 github.com 記事では C で書いているけど、nsh では Python3 で書いてみ…

サーバーを ConoHa に移行した

サーバーを家の Raspberry Pi から ConoHa に移行しました。 理由は単純に Raspberry Pi ではいろいろするのに辛くなってきたのと、最近謎のエラー*1により SEGV することが多くなって悲しくなってきたためです。カーネルの Early Memtest 使って軽くメモリ…

Android Studio をビルドする

この記事は KMC アドベントカレンダー 4日目の記事です。自分は5日目だと思っていてのんびりしてました… :bow: :bow: www.adventar.org 昨日は id:nojima718 さんの nojima.hatenablog.com でした! 本題 今回は Android Studio をビルドしてみます。 大体こ…

curl: (60) SSL certificate problem: certificate is not yet valid

対処 時刻がおかしいので ntp とか入れる 経緯とか 久しぶりに VirtualBox で入れていた Arch Linux を起動して、 bundler が入っていなかったので gem install bundler を打つと、 certificate verify failed とのエラーが *1。 確かに curl https://rubyge…

Android の df コマンドについて

最近 Android 用の mackerel-agent を作ろうとしていて、Android の /proc/meminfo を読んだりしていたのですが、 filesystem の metrics は df -P コマンドを使っていました。*1 Android にも df コマンドは存在していたのでパースしようとしたのですが、バ…

cookpad のインターンに行ってきた話

8/10 から今日まで一ヶ月間、恵比寿にあるクックパッドにインターンに行っていました。忘れないうちにヒュヒュっと書きます。 インターンについて 僕が行ったインターンは技術インターンシップです。 このインターンは前半一週間と後半二週間に分かれており…

RecyclerView で Drag と Swipe をサクッと実装

RecyclerView で並び換えや項目の消去をする UI を作成するには、ItemTouchHelper を用いると非常に楽です。 これを使うと、 長押しからの移動で並び替え スワイプで消去をする といった処理を行えます。 Kotlin での実装 val helper = ItemTouchHelper(obje…

Android Layout XML の名前空間はルート要素に定義する

たまに DataBinding を使うのですが、例えば TextView に tools:text を指定してレイアウトのプレビューを試みても上手くできないことがあって困っていました。 例えば、適当に <layout> </layout>

画像取得ライブラリの Glide 使ってみた

Android で画像を表示する際、 URL からいい感じにキャッシュしていい感じに表示してくれるライブラリはいくつかあります。 有名所だと Picasso Square のライブラリ Glide 元BumpTech のライブラリ (Google のプロダクトでも使われているらしい) Fresco*1 F…

SQLクエリチューニングメモ

SQL

table: "table_name" A B "a" 1 "a" 2 "a" 4 "b" 1 "b" 4 "c" 1 "c" 3 のようなデータが 100k レコードほど存在するデータベースにおいて、指定のB (b_list) が存在するA を ランダムに一つ抽出 する。 例: blist: [1] -> mathced A: ["a", "b", "c"] -> ラ…

norifyDataSetChanged でアニメーションする in RecyclerView

stackoverflow.com RecyclerView.Adapter#getItemId() でユニークな ID を返す RecyclerView.Adapter#setHasStableIds(true) を行う これだけで RecyclerView.Adapter#notifyDataSetChanged() のみでもいい感じにアニメーションしてくれます。 パフォーマン…

Haskell入門 14日目

十四日目 VBoxHeadlessTray を入れてみた。これだと一々 VM 起動してること気にしなくてよさそう。 SICP 読まないとなあとか思ってるこの頃。 Haskell, monad ぐらいまでやろうかなあとか思って目次見たけど一番最後だった。 すごいHaskellたのしく学ぼう!作…

Haskell入門 13日目

十三日目 時間が開いてしまってやることを忘れたのでまずここのログを読みなおした。メモ残すこと大事だなって思いました() Windows で Haskell しようかと思って Stack いれたけど cmd 使うこと考えると嫌になってすぐアンインストールしました*1。 7.9 …

Android Studioでのビルドをクラウドで行い開発を高速化する

こんにちは。学校も始まり最近は健康な時間に起きています*1。 今回は 手元の Android Studio からビルドのみをクラウドで行う ことによって快適な生活を手に入れる話です。 概要 ビルドを移譲できる Android Sutudio のプラグインを書きました これを使って…

Raspberry pi に GitWeb を入れた

昔 Raspberry Pi に GitLab を入れた記事を書きました。 nonylene.hatenablog.jp この時、重い重い言いながら運用していました*1が、ニヶ月ほど前にSDカードが壊れる事件が起きて、再構築した時に入れるのがめんどくさくて*2入れてませんでした。そもそもSD…

クラウドの Linux 上で Android Studio をリモート操作するネタ

※実用性はほぼありません。 Andorid のビルドが最近遅くて、ブラウザで動画流しながら StackOverflow 調べながら twitter 流しながら…とやっているとすぐに mac がファンファンなりだして音声は途切れるわ熱くなるわという状態になります メモリ 8GB だし、…