techium

このブログは何かに追われないと頑張れない人たちが週一更新をノルマに技術情報を発信するブログです。もし何か調査して欲しい内容がありましたら、@kobashinG or @muchiki0226 までいただけますと気が向いたら調査するかもしれません。

Macのzshでpyenvが「command not found: pyenv」

PythonをMacにインストールする際にHomebrew+pyenvで開発環境を整えようとした時に「command not found: pyenv」と表示され正しくバージョンの切り替えができなかったのでその内容をまとめました。

Android 7.0 Nougatの新しい外部ストレージアクセスを試してみた。

Android 7.0 Nougatでは新しい外部ストレージへのアクセス方法が提供されました。 developer.android.com developer.android.com これまでAndroidで外部ストレージにアクセスするには、ManifestファイルにPermissionを定義し、さらに6.0からはパーミッション…

Android7.0 nougatがリリースされたので手持ちのNexus5xをアップデートしてみた

Nougatがリリースされました。 Nexus端末を持っていたとしても、OTAアップデートが配信されるのはしばらく先になるだろう。 この記事は最新OSのOTAが降ってくるのを待ちきれない人向けの記事です。 端末の手動アップデートは文鎮化などの危険が伴います。自…

RUBY ON RAILS TUTORIAL (RAILS 5)

RUBY ON RAILS TUTORIAL (RAILS 5) Rails チュートリアルを始めてみたがすっかりご無沙汰。 Rails 5 が出てしまったことだし仕切り直し。 RUBY ON RAILS TUTORIAL (RAILS 5) 参考 ゼロからデプロイまで クラウドIDEでRailsサーバーを実行

iOSDC 2016 に参加してきました

iOSDC 2016 2016年8月20日午前10時3分 土 iOSDC 2016 に参加してきました。 とても濃く、参考になる内容ばかりでした。 次回開催があれば是非また参加したいです。 懐かしい面々にも再会でき、そういった意味でも参加してよかったです。 try! Swift で「凄い…

FirebaseでAuthを用いたパスワード認証を行う

Firebaseではユーザ認証を行うことでデータの安全性を確保することができます。特にRealtime Databaseを利用する際に、データにアクセスしているのが誰なのかを確認することはとても重要です。 Firebaseでは幾つかのユーザ認証方法が用意されていますが、今…

Spinnerのデータとしてenumの配列を使用する場合のTIPS

Spinnerの表示データとしてenumを使用したときに引っかかった罠があったので共有したいと思います。 Spinnerとは Spinnerは複数の選択肢から一つの要素を選択するためのUIを提供するWidgetです。 詳しいことはDeveloperサイトを御覧ください。 developer.and…

Android Studioにコードジャンプするログを作る

Androidのstacktraceなどでコードジャンプするログが表示されています。 コードジャンプ自体はAndroidStudioの機能になるのですが、ログの作り方を工夫することでコードジャンプすることができるログを作ることができます。 そこで今回はコードジャンプする…

オープンソースになったLaunchKitのセットアップをしてみた

LaunchKitとは LaunchKitとは、モバイルアプリのリリース用スクリーンショットの作成やアプリ用Webサイト(ランディングページ)の作成、アプリレビューのモニタ、売り上げの管理など、モバイルアプリのリリースに関わることを色々便利に管理できるものであ…

Active Recordを利用してRubyのアプリを作る

Active Recordは、Ruby on Railsでも利用されているORマッパーのgemパッケージですが、RailsではないRubyアプリで単体利用することもできます。 今回たまたまRubyで利用したい思う機会があったので調べて試してみましたので備忘録です。

FirebaseのRealtime Databaseでルールを試してみる

今回は、Firebase Realtime Databaseのルールについて調べてみました。 ルールを設定することで、Firebaseに保存されたデータに対して読み書きを行う上での条件を付与することができます。 ここではそのサンプルを用意して確認してみます。 基本的にはこの辺…

RxJava Mathを使って最大・最小・平均・合計を計算する

RxJavaを最近使うことが多くなってきてストリームに流れているデータ内の最小値と最大値を取ることができないか調べておりました。 そうするとRxJavaのMathというのがありそれで実現できたのでそのやり方とMathの機能についてごしょうかいします。

Androidオールスターズ2

Androidオールスターズ2 2016年8月7日午後1時30分 日 【満員御礼につき50席増枠★】Androidオールスターズ2 - dots. [ドッツ] 参加してきました。 メモ書き程度ですが、後日資料も公開されるとのことで楽しみにしています。 大変学びが多く、刺激のある内容…

AndroidライブラリからアプリケーションプロジェクトのBuildConfigの値を参照する

Androidアプリ開発の際にオープンソースのライブラリを組み込むことが多いと思います。 そういった中でアプリのデバッグの時にはライブラリのログを出したいとかデバッグの時だけこういった挙動をしたライブラリがほしいことかがあります。 そこで今回はaar…

FirebaseのRealtime Databaseを利用してみる 〜その2〜

前回に引き続き、FirebaseのRealtime Databaseについてです。 今回は、前回保存したデータをクライアント上から参照してみます。 Realtime Databaseはその名の通り、データベースに変更があった場合に、それをリアルタイムにクライアントに反映させることが…

Retrofit2のレスポンスをmockに置き換える Retrofit-Mock編

前回の記事では、MockWebServerを使用してサーバ自体をMockに置き換えた。 blog.techium.jp 今回はRetrofitMockにてResponseの内容をMock化する方法を使う。 build.gradleの修正 // レスポンスのパースにgsonを使用 compile 'com.squareup.retrofit2:convert…

ContentProviderアクセステスト用ライブラリPantomimeを公開しました

Androidの開発を行うにあたってContentProviderへアクセスする場合にContentProviderの中身が動的に変化する場合にテストを書く場合に同じ環境にならなくてユニットテストが失敗したりすることがあります。 そこで今回作ったPantomimeを紹介します。

ちょっといい加減会社でGit布教したいんや

そろそろGitわからんまんがいい加減に減って欲しい この資料が役に立つことをいのって。 Learning git from Shinji Kobayashi 主にGitlabの布教用に書きました。 Gitlab云々よりもGitコマンドについて厚めに。 いつもだいたい聞かれて答えるようなやつだけな…

FirebaseのRealtime Databaseを利用してみる 〜その1〜

FirebaseのRealtime Databaseを利用してみました。と言っても、まだデータを登録しただけなので、導入編といった感じです。 Realtime DatabaseはFirebaseがクラウド上に提供するNoSQL型のデータベースです。 今回はこのRealtime Databaseを利用して、データ…

Retrofit2のレスポンスをmockに置き換えるMockWebServer編

ユーザー登録画面など、ネットワーク通信を伴う画面のUIテストするとき、実際のサーバへアクセスしては、テストが意図した結果にならないことがあるだろう。 MockWebServerを使用することで、サーバへのアクセスを回避し、かつ、必要なレスポンスを返すよう…

gitでremoteレポジトリにあるファイルを探したい

Motivation AOSPのtools/base辺りをビルドしようと試行錯誤していると、なんかこのファイル参照してるけど、いったいどのブランチにいるの? みたいなことによくなるのでスクリプト書いてみたよみたいな。 Motivation 探す対象 リモートブランチのファイルを…

Intellij Ideaプラグインでモジュール生成時にフォルダ/ファイルを作成する

Intellijでセットアップウィザードを作成を前回行いました。 blog.techium.jp そこでセットアップウィザードを終えたあとにプロジェクトフォルダにファイルの自動生成を行う方法をご説明します。

Realm JavaのRealmQueryをループで使ったらヒドい目に遭ったという話

先日からAndroidアプリの開発でRealmを使っていますが、今回はRealmの仕様なのかバグなのかよくわからない挙動にハマってヒドい目に遭ったというお話。 歴戦のRealmerには既知の問題かもしれないので何か情報をお持ちの方は適宜突っ込んでもらえると助かりま…

ChefのKnife用プラグインを作ってみた

こちらの記事でも触れていますが、ChefはKnifeというコマンドラインツールを使用してリポジトリ操作を行います。 Knifeにはサブコマンドが多数用意されており、それらを使ってリポジトリの作成やクックブックの作成を行うわけですが、自分で新たにプラグイン…

Nearby Messages APIを使ってみた iOS API使用方法

前回は、iOSのプロジェクトの設定とGoogleDeveloperConsoleの設定について説明した blog.techium.jp 今回は実際のAPIの使用方法について解説する MessageManagerの初期化 Nearyby Messageのpublishとsubscribeを管理するクラスである、GNSMessageManagerを生…

ワークフローエンジンDigDagのSlackプラグイン公開しました

DigDag用のSlackプラグインの作成記事を下記で行いました。 その続報となります。

Intellij Ideaプラグインでセットアップウィザードを作る

Androidの開発やJavaアプリの開発など様々な場面で利用されるintellijですが機能を追加する機能としてプラグインがあります。 そこで新しい言語や新しいプロジェクト構成の画面を作りたい場合にプラグインを作成してサポートする機能を追加することができま…

ChefでLet's Encryptを利用するためのDefinitionを定義してみた

Chefのレシピを記述する際は、リソースを使用することで簡単にパッケージのインストールやサービスの起動、フォルダの作成などを行うことができます。 Chefから提供されているリソースには便利なものがたくさんありますが、Definitionを使えば自分で作成する…

ワークフローエンジンDigDagのプラグイン機能を試してみる

ワークフローエンジンのDigdagについて記事を書いてきましたが、v0.8.3からプラグイン機能が入ったというアナウンスがありましたので早速サンプルを動かしてみました。 ドキュメントやトラブル等があったのでそれらの対策等を紹介いたします。 また、Slackに…

Realm.writeCopyTo(File f)で.realmファイルの確認を簡略化する

前回の記事ではRealm BrowserでRealmのデータをGUIで確認する方法を紹介しました。 今回はRealm Browserでデータを確認する際の手順を簡略化する方法を紹介します。

vagrantでSonarQubeを立ち上げる(環境構築編

Motivation ソースをCI回すに当たって、複雑度とか重複度とか規模感とか、トレースできるといいなと思って探してたらSonarQube(旧Sonar)というものを見つけたのでサーバー立ち上げまでを進める。 次回はAndroidのプロジェクトに対しての実施についてまとめ…

Core Data 入門

Core Data 入門 Core Data 入門 設計思想 クラス分け モデルオブジェクト モデルマネージャ 実装 モデリングツール エンティティの追加 関連の追加 今時 Realm とかあるしもう触らなくて済むかと思っていた Core Data。 やんごとなき理由により触らなければ…

Realm Browserで.realmファイルの中身を確認する(Android編)

Realmを使用する時に、実際に作成したDBの情報を確認する方法としてRealm Browserを使う方法とStetho-Realmを使う方法があります。 今回はAndroidでRealmのデータを作成後、Realm Browserで.realmファイルの中身を確認する方法を紹介します。

Let's Encryptを使ってSSL通信してみた(Cent OS 6 + Apache2)

Let's Encryptが正式サービスを開始したということで、試しに使ってみました。 Let's EncryptはSSL/TLSによるHTTPS通信を行うためのサーバ証明書を誰でも簡単に取得、インストールできるサービスです。また、サーバ証明書の取得とインストールを自動化できる…

Nearby Messages APIを使ってみた iOSセットアップ

引き続きNearby Messages APIの使用方法について記載する 今回からはiOSでの使用方法について記す 最終的にAndroidとiOS端末間での通信ができることが目標である 1. 開発環境をダウンロードする Nearby Messages APIをiOSで使用するにはXCode6.3以上のバージ…

ワークフローエンジンDigDagでDockerを使ってみる(追記:6/28)

ワークフローエンジンのDigDagではワークフローを動かす環境をDockerにすることが可能とのことです。 そのためDockerで環境をワークフローを動かすときに構築するため、過去の設定情報などをクリアすることなく動作させ得ることができるため、ワークフローを…

「Dribbbleのぬるぬる動くメニューUIのアイデア10選」からDelivery Card(FoldingCell)を試してみる

Dribbbleのぬるぬる動くメニューUIのアイデア10選という記事を見たので、実際に試してみました。 今回はこの記事の中で紹介されている「Delivery Card」を実現するためのFoldingCellを実装します。 www.youtube.com

AndroidStudioのProjectテンプレートを弄る

Motivation 最近のAndroidアプリ開発だとライブラリを使うことが前提であることが多い。 毎回毎回プロジェクト立ち上げ後にライブラリを取り込んでいくのが非常に面倒なので、 テンプレートを弄ってみた。 Motivation プロジェクトのbuild.gradleファイルの…

Google Nearby Messages APIを使ってみる〜実際使ってみた編〜

前回の記事でNearby Messages APIのセットアップまでを紹介した。 blog.techium.jp 今回は実際にAndroid端末でメッセージの送受信を確認する。 動作確認に使用した端末はNexus 5 、Nexus 5x、全てのコードはActivityに実装した。

HomeKit in WWDC 2016

HomeKit in WWDC 2016 この記事は全て公開情報をもとに記載しています。 HomeKit in WWDC 2016 HomeKit HomeKit 対象機器を構築(?) HAP-NodeJS 立ち上げ Home アプリで登録 余談

ワークフローエンジンDigDagのサーバ/クライアント構成を試してみる

ワークフローエンジンというのを知っていますか。 申し訳ないのですが私は全く知りませんでした。 ワークフローエンジンの定義は仕事の流れをツールが回してくれるツールのことが一般的のようです。 幾つかそういったワークフローエンジンがあるようですが今…

GcmNetworkManager使って21未満でもJobSchedulerっぽいことする

Motivation 存在はよくJobSchedulerの説明と一緒に現れるので知ってたけど、後回しにしてしまってたので。 JobSchedulerの使い方の記事と一緒にどうぞ。 techium.hatenablog.com GcmNetworkManagerは21まではplay-servicesを使ってJobSchedulerのバックポー…

PlantUMLのアクティビティ図の新記法と旧記法の違いを確認する

前回の記事ではAndroidStudioにPlantUMLのプラグインを追加してFizzBuzzをアクティビティ図で表現してみました。 そこでアクティビティ図の作成には2つの記法があるということにさらっと触れましたが、今回はそれぞれの記法で同じ図を作成してそれぞれの違い…

Mac(El Capitan)にTensorFlowを入れようとしてハマった残念な私

機械学習に入る前の備忘録and私の残念な思い出話。 発端 少しずつ機械学習の勉強を始めていた私ですが、今週末は出張になってしまいました。 自宅のデスクトップ環境だけでしか作業できないのは不便... よっしゃ!この機会に調子悪いMacをクリーンしてEl Cap…

Rails 5.0 RC1が出たと聞いたのでインストールしてみた

こんにちは。RoR永遠の初心者seitです。 Railsに5.0 RC1が出たというのをチラッと目にしたので、インストールして少しさわってみました。

Google Nearby Messages APIを使ってみる〜セットアップ編〜

Nearby Messages APIはBluetooth Bluetooth Low Energy Wi-Fi 超音波モデムの組み合わせでデバイス間通信を行う仕組みである。 GooglePlayServicesの一部として提供されている Nearby Mesasges APIを利用可能なバージョンは以下のとおりである。 Android OS…

ETC1を使ってデータ量を少なくする

Androidで画像リソースを利用する場合はPNGが多いと思いますが、PNGは可逆圧縮のフォーマットのためどうしても一定サイズ以下にデータを小さくできません。 そこでよく行われるのPNGを最適化して使ったり、WebP、JPGなどが良くあります。 最近ではVectorDraw…

Google I/O 2016 参加レポート(もはや日記) 2日目

Google I/O 2016 2日目 Google I/O 2016 参加レポート第2弾。 1日目は Keynote メインで書いたが、会場全体についてや、参加してきたセッションについても触れていこうと思う。 Google I/O 2016 2日目 会場全体図 Google Plex Google Merchandise Store セ…

AndroidStudioでPlantUMLを使う(Mac)

最近業務でPlantUMLを使い倒してるけど、そういえば自宅のMacbook Proには入れてなかったなーと思ったので導入してみたメモ。 「PlantUMLってなんぞや」という人はこの辺見てみると幸せになれるかも知れません*1。 *1:まだastahで消耗してるの?

Google Cloud Vision APIを使って顔識別用の顔画像を作る

動機 Tensorflowで顔識別をさせてみたいが,顔画像を大量に用意しなければならない。 顔認識をさせて顔画像を切り出さないといけないが,調べてみるとOpenCVの顔認識はデフォルトだとそこまで精度は高くないらしい…。 そこで今回は,Google Cloud Vision API…