タグ

ブックマーク / nonylene.hatenablog.jp (36)

  • ISUCON 予選突破のために Elastic Stack と GCP で分析環境を整えた (:old_noto_innocent: Team) - Unyablog.

    ISUCON 12 予選にいつもの id:utgwkk, id:wass80 と :old_noto_innocent: チームで参戦した*1。 結果は 50696 点で選出場! ここ数回と同様、自分はインフラと分析・観測を担当していた。ただ、毎年似たようなことをやっていてあまり貢献できていないなあという課題感があったので、今回はログやメトリクスの分析環境をしっかり作ることにした。目標は毎回ベンチ終了のたびにコマンドを叩くのをやめること! App 周りについてはチームメイトの記事を参照。 blog.utgw.net memo.wass80.xyz Elastic Stack でアクセスログ・スローログ可視化 ダッシュボード 最高便利 Google Cloud でトレーシング & プロファイリング Trace Profiler やってよかった 構築編 Elasticsaerch + Kib

    ISUCON 予選突破のために Elastic Stack と GCP で分析環境を整えた (:old_noto_innocent: Team) - Unyablog.
    nonylene
    nonylene 2022/07/24
    やりました
  • Android Studio をビルドする - Unyablog.

    この記事は KMC アドベントカレンダー 4日目の記事です。自分は5日目だと思っていてのんびりしてました… :bow: :bow: www.adventar.org 昨日は id:nojima718 さんの nojima.hatenablog.com でした! 題 今回は Android Studio をビルドしてみます。 大体ここに従ってます。 tools.android.com 何故 Android Studio 2.2 になってから mac で外部ディスプレイに繋げたときに色が全体的に色が濃くなりました。僕の使ってる Molokai テーマには致命的で、元からコントラストが高いのにさらに濃くなると目が痛くて仕方ありません。 だからといってテーマ変えても濃くてつらく、最近は外部ディスプレイに繋がずに使っていました。 ここで Android Studio の更新ログを見ると Impro

    Android Studio をビルドする - Unyablog.
  • cookpad のインターンに行ってきた話 - Unyablog.

    8/10 から今日まで一ヶ月間、恵比寿にあるクックパッドにインターンに行っていました。忘れないうちにヒュヒュっと書きます。 インターンについて 僕が行ったインターンは技術インターンシップです。 このインターンは前半一週間と後半二週間に分かれており、前半が講義、後半が実際に業務を行うというもの。 後半は相談可能と書いてある通り割りと柔軟に期日の設定が可能で、僕は時間があったので後半を一週間伸ばして一ヶ月となっています。 参加 初めはインターンではなく一ヶ月ほど夏にアルバイトとして行こうと思っていました。 しかし、インターンも薦められて迷っていると 「昼ごはんも出るよ?」 との声。 昼ごはんが出るなら選択肢は一つしか無いですね。インターンにしておいてとても良かったと思います。 前半 前半は社員の方が講師となり、6分野についての講義を受けます。 1日目は Rails や TDD。Rails は初

    cookpad のインターンに行ってきた話 - Unyablog.
    nonylene
    nonylene 2016/09/10
    記事公開しました!インターン楽しかったです!
  • SQLクエリチューニングメモ - Unyablog.

    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"] -> ランダムに取り出し -> "b" blist: [1, 2] -> mathced A: ["a"] -> ランダムに取り出し -> "a" blist: [1, 4] -> matched A: ["a", "b"] -> ランダムに取り出し -> "b" このとき、 select A from table_name where B in ({ b_list }) group by A having count(distin

    SQLクエリチューニングメモ - Unyablog.
    nonylene
    nonylene 2016/07/14
    昨日書いた
  • Android Studioでのビルドをクラウドで行い開発を高速化する - Unyablog.

    こんにちは。学校も始まり最近は健康な時間に起きています*1。 今回は 手元の Android Studio からビルドのみをクラウドで行う ことによって快適な生活を手に入れる話です。 概要 ビルドを移譲できる Android Sutudio のプラグインを書きました これを使ってクラウドのリッチなマシンでビルドを行い高速化 ビルドのみが移譲されるので操作感は変わらない 実装は割りと無理矢理 題 動機 最近 Android のビルドが遅くてつらいなあという気分でいました。 Java のコンパイル (Make) ぐらいならいいのですが、デバッグ等をするときにライブラリが多いため Dex 処理にすごく時間がかかります。Dex 処理は一行変えただけでも行われるので非常につらい。 足りないのはメモリとCPUで、とにかくマシンパワーが必要なのですが、まだ自分の PC を変える時期ではない*2。 結局

    Android Studioでのビルドをクラウドで行い開発を高速化する - Unyablog.
    nonylene
    nonylene 2016/04/28
    最近やってたこと書いた
  • クラウドの Linux 上で Android Studio をリモート操作するネタ - Unyablog.

    ※実用性はほぼありません。 Andorid のビルドが最近遅くて、ブラウザで動画流しながら StackOverflow 調べながら twitter 流しながら…とやっているとすぐに mac がファンファンなりだして音声は途切れるわ熱くなるわという状態になります😭 メモリ 8GB だし、数年前の mac だから仕方ないといえばそうなのですが新しい mac を買うのはまだ早い気もする。 結局いい感じの IaaS を借りてそこでビルドすると早いのではという結論にたどり着き、ここ三週間ほどいろいろ試行錯誤してる中で出てきた一つのネタです。 Android Studio をクラウドで動かしてリモート操作しよう ビルドだけ Linux 側でやるのはコマンド打てばいい話なのですが、そうするとせっかくの IDE の機能を活かすことができません。どうやら ADB の remote port forw

    クラウドの Linux 上で Android Studio をリモート操作するネタ - Unyablog.
    nonylene
    nonylene 2016/04/06
    そろそろ忘れそうだったので書いたやつ
  • iOS / Android アプリ作成入門スライドを公開しました - Unyablog.

    自分の所属している京大マイコンクラブ (KMC) では毎年3月に春合宿を行っており、60分ほど講座を行います。 今年は iOSアプリ作成入門 を行いました。 speakerdeck.com また、書いたけど没になった Android 編も公開しました。 speakerdeck.com iOS 編 これは僕が最近 iOS / Swift に入門したのをまとめたものです。 元々 Android だったのを iOS に変更したので、ほとんど宿についてからアプリもスライドも作ることになりました。*1 TableView のあたりは Android の RecyclerView と変わらないので一部流用できました。 SpeakerDeck だとリンクが効かないみたいですね... 来は SlideShare に上げたかったのですが日語がうまくレンダリングできない不具合が出ているらしく Speake

    iOS / Android アプリ作成入門スライドを公開しました - Unyablog.
  • iOS で Slack に投稿するアプリを作り実機にインストール - Unyablog.

    iOS チュートリアルが一通り終わったので、Slack に投稿するアプリを作ってみることにしました。 レポジトリは以下。 元々 Android 版をシュッと作っていたので、iOS 版という位置づけでやってみます。 アプリの機能は非常に単純で、webhook の URL を入力し、ユーザー名、アイコン、文字列を指定して OK を押すと JSON を webhook サーバーに POST するというものです。 UI を作る Andorid では適当に EditText を並べたものでしたが、iOS ではそのような UI はあまり見ないので UITableView に UITextField を入れることにしました。 ↑のようにUIを組み立てていきます。 UITAbleView で予め表示する要素が決定しているときは Static Cells を使います。StoryBoard 上で内容を決定して

    iOS で Slack に投稿するアプリを作り実機にインストール - Unyablog.
    nonylene
    nonylene 2016/03/04
    昨日書いた
  • iOS 入門 1日目 - Unyablog.

    春休みなので iOS 学んでみることにしました。*1 目標 作りたいアプリは特になくて、ただ iOS / Swift 学びたいなあという気持ちがあるという感じです。Swift で書かれた iOS のコード理解できるようになりたい。 当方ほぼ初心者です。(夏に Hello World ぐらいならしたことがある) 環境セットアップ Xcode アップデート 入れたプラグイン Alcatraz Xcode 用のパッケージマネージャらしい。プラグイン探してると大体ここに対応してるので入れました。 途中で mktemp: too few X's in template ‘com.mneorr.Alcatraz’ というエラーが出たのですが、 Make install script work if GNU mktemp is present. by idrisr · Pull Request #421

    iOS 入門 1日目 - Unyablog.
  • CircleCI で Android Library Project を GitHub Pages にデプロイ - Unyablog.

    こんにちは。最近 build.gradle をゴニョゴニョするのに慣れてきました。 ここ数日、 PhotoLinkViewer をモジュール分けしたいなーと思って一部分を切り離しました。 切り離したものは他のアプリでも使いたいので、プロジェクトとして独立させることにしています。 ここで切り離し元から参照するには 2つほど方法があり、 submodule などでプロジェクト直下等に置いて管理する aar 化してレポジトリに置き、 build.gradle の dependencies に組み込む。 という感じです。 submodule で管理する方法を使えば ManifestMerger が AndroidManifest をよしなにマージしてくれるので、切り離し元の AndroidManifest に Activity の情報を書く必要がありません。 aar はその点自分で書かないといけな

    CircleCI で Android Library Project を GitHub Pages にデプロイ - Unyablog.
  • Android 6.0 がおかしいと思ったらバージョンが古かった - Unyablog.

    marshmallow のつづりが未だに覚えられないです。 原因わかったので追記しました。 症状(preview 3 で確認されていた症状) さて、自分の作っている PhotoLinkViewer には「他のブラウザで開く」機能があります。例えば画像の開くアプリで PhotoLinkViewer をデフォルトのアプリに指定していて、その後画像だけではなくウェブサイトが見たくなった時などに重宝します。 これはどのように実現しているかというと、 startActivity(Intent.createChooser(new Intent(Intent.ACTION_VIEW, uri), getString(R.string.intent_title))) として行っています。 createChooser を用いることでこのアプリをデフォルト設定している時でもアプリ選択画面が現れるようにしていま

    Android 6.0 がおかしいと思ったらバージョンが古かった - Unyablog.
  • Raspberry pi 2 に GitLab を入れた - Unyablog.

    最近体調が悪いです。 さて、今回は自宅の Raspberry pi に GitLab を導入した話です。 GitLab とは、GitLab Inc. が開発しているサービスで、GitHub のクローン的なやつです。といってもインターフェースまでそっくりというわけではないですし、GitLab 独自の機能もあります。 昔は気持ち悪い生き物のアイコンで有名だったのですが、最近ロゴが変わってスッキリしました。 GitLab は自分のサーバーに設置することができ、さらにオープンソースの "Community Edition" なら無料です。無料でも十分な機能が使えそうでした。 導入理由 僕は書いたコードは GitHub で大抵オープンソースにしているのですが、レポートを tex で書いているのをオープンにするわけにもいかないので private repository にしようかなあと迷っていました*

    Raspberry pi 2 に GitLab を入れた - Unyablog.
  • Android Studio 2.0 preview で Instant Run を使ったら最高だった - Unyablog.

    この記事は KMC アドベントカレンダー 1日目 の記事です。 さて、先日 Android Dev SummitAndroid Studio 2.0 (以下 AS 2.0) が発表されましたね。この会自体は結構前から告知されていたのですがまさかこんな機能が来るとは思っていませんでした。 Android Developers Blog: Android Studio 2.0 Preview 目玉機能は 'Instant Run' というもので、デバッグ中コードを書き換えた時に差分を高速にビルドし、 再インストール・Activityを再起動せずとも アプリのコードを変えられるというものです*1。実際にそんなことがありえるのか...?と疑いたくなりますが、動画も上がっているし正しそう。 これは自分で試してみるしかない!ということで試してみた話です。 Android Studio 2.0 p

    Android Studio 2.0 preview で Instant Run を使ったら最高だった - Unyablog.
  • Android の CI テストがたまに落ちるので戦った - Unyablog.

    前々回と前回の記事です。 結局 travis でも CircleCI でも確率的に落ちるじゃん的な話でした。 travis だと 1/2、 CircleCI だと 1/4 ぐらいで落ちてしまいます。さすがにこれだけ落ちると陶しいのでなんとか直したいところ。 ということで直すために頑張った話です。 状況 android-22 のみ落ち続けていて*1、エラー内容は com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Unable to upload some APKs や com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException といったもので、その元凶は com

    Android の CI テストがたまに落ちるので戦った - Unyablog.
  • circleCI で Android アプリのテストをする (travis から移行) - Unyablog.

    前回の記事です。 circleCI に移行する 前回の記事でまあうまく行ったのですが結構な確率で落ちる。masterが進んでるわけではないのに pr と pull で違う結果になったり、 merge すると落ちたりしていました。 いろいろやってみたのですが結局不安定なまま変わらなかったし、travis が firefox で見るとめちゃくちゃ重い*1といった理由で travis で消耗するのをやめようということになりました。 そして CircleCI を使ってみました! CircleCI は travis CI と同じように CI サービスの一種です。travis は open source では無制限ですが、 CircleCI では4コンテナに制限されるみたいです。*2 まあ4コンテナもあれば十分でしょう。 build.gradle とかは前回の記事を参考にしてください。 .travis

    circleCI で Android アプリのテストをする (travis から移行) - Unyablog.
  • travis で Android (Kotlin 付き) のテストをするときにしたことのメモ - Unyablog.

    自分の作ってるアプリにテスト書いてtravisでやってくれるようにした話です。 テスト 長らくテスト全く書かずにしてきたのですがいい加減そろそろテスト書かないとなあと思ったのでテストをシュババっと書きました。*1 とりあえず gradle にシュッとそれっぽい依存を書いて そして kotlin でパパっとテストを書きました。*2 kotlin でテストできるか不安でしたが java でちょっとだけ書いてそれを convert したものを参考に書いたら普通に動いてくれたので安心。 ということでとりあえずテストは完成。実機でも無事通りました。 travis の前準備(キーの暗号化) 今までは secret key とかは key.xml 的な秘蔵のxmlに保存していましたが、 travis でコンパイルできるようにする必要があるためなんとかして travis にキーを伝える必要があります。 こ

    travis で Android (Kotlin 付き) のテストをするときにしたことのメモ - Unyablog.
  • macのスクリーンショットのファイル名変更したくてショートカットを設定した話 - Unyablog.

    mac でスクショを取って Dropbox に移動し、更に IFTTT 使って Google Drive に移送したかったのですが残念ながら mac のデフォルトのファイル名だとスペース入ってるからか IFTTT が認識してくれなかったのでファイル名を変更しようとしました。 検索したら で /System 内部をいじる方法がありましたが Rootless 使っているので残念ながら却下。 結局 Karabiner で や を参考にして Fn キーで ScreenShot コマンドを走らせるようにしました。 screencapture -i ~/Dropbox/Screenshots/Screenshot_`date '+%F_%H.%M.%S'`.png を走らせればいい(内部で date コマンドを走らせて日付と時刻をファイル名に挿入しています)ので、 <vkopenurldef> <na

    macのスクリーンショットのファイル名変更したくてショートカットを設定した話 - Unyablog.
  • kotlin 1.0 beta candidate に上げて戻した話 (betaで解決) - Unyablog.

    先日 kotlin の 1.0 beta がリリースされました。 AndroidStudio を立ち上げるとアップデートできるよ!と言われたので早速アップデートして 1.0 beta を入れてみました。 リストに [index] でアクセスできたり static 関係の java との融和性が上がったりしてよさ気だったのですが、 Android 4.3 以下で INSTALL_FAILED_DEXOPT エラーが出るようになってしまいました。 初めは2.3以下で発生するメソッド数のやつかな~って思ったのですがどうも違う。じゃあ kotlin か~~ってなって build.gradle のバージョンをもとに戻したけどそれでもうまくいかない。ましてや謎の Syntax Error が出て来る... ということでプラグインごとひとつ前に戻すことにしました。 幸いプラグインの過去バージョンは ht

    kotlin 1.0 beta candidate に上げて戻した話 (betaで解決) - Unyablog.
  • pom.xml なプロジェクトをAndroid Library にして IDE に読ませる - Unyablog.

    picasso で resize できるの便利なのですが、resize したときに callback がしたいと思ったので fork した ものを AndroidStudio で頑張って読み込ませた話です。 picasso には build.gradle がなく pom.xml 的なアレ。なのでこのままだと AndroidStudio で読み込んでくれません。 手段としては 直接 jar を生成する の一番上 local に maven レポジトリを作る などあるのですが、複数のマシンでいい感じに開発したかったので git submodule を使いたい。ということで gradle ファイルを自分で作りました。 といっても pom なプロジェクトのトップで gradle init --type pom とすればある程度いい感じに build.graedle が生成されるので、そこを弄ります

    pom.xml なプロジェクトをAndroid Library にして IDE に読ませる - Unyablog.
  • mac OS X El Capitan に上げた感想 - Unyablog.

    brew 使えるので安心 brew cask もだいたい使えるので安心 brew cask コケてもリカバリ入って Rootless オフにすればアンスコ成功するので安心 TeX 軽くなら使えるので安心 フォント埋め込みとかはしないので安心 split view 思ったより使わないので安心 電池持ちは相変わらず良いので安心 リアルタイム変換は使ってないので安心 ちょっと軽くなった気がするので安心 アプリはたいてい使えるので安心 Android Studio 二、三時間に一回強制終了するので安心*1 まれにしか画面ちらつかないので安心 前後2分ほどの作業内容しか失われないので安心*2 管理者パスワード打つときにフリーズしても電源キー長押しすれば終了できるので安心 Slack の太い文字が異常に太くて見やすいので安心 まあ普通に使えるので安心 安心。 OS X El Capitan 人柱報告

    mac OS X El Capitan に上げた感想 - Unyablog.