読者です 読者をやめる 読者になる 読者になる

techium

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

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…

ChefでNginx + Unicorn + Railsの開発環境を構築する

これまでMacにRailsの開発環境を構築していましたが、久しぶりに触ると環境がおかしくなってたり、いちいち環境構築し直したりがめんどくさ過ぎたので、Chefで環境の構築と管理ができれば幸せになれそうな気がしてました。 また、できるだけ本番に近い環境で…

AndroidStudioをビルドする

Motivation AndroidStudioの機能デバッグしたいんだけど、と前々から思ってたので時間とれたついでに試してみた。 ソース読んだりするのもIDEに食わせると楽できるのでオススメ。 Motivation repo sync Java6とJava8のインストール Intellij CEのインストー…

JackでDagger2が使えるようになった

先日、JackでDagger2が使えないという記事を書きましたが、なんとJackでもDagger2が使えるようになりました! Dagger2だけじゃなくannotation processingが使えるようになりましたので、他のツールも動くようになりました。 なぜ動くようになったかというとG…

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

Google I/O 2016 1日目 Google I/O 2016 に参加してきました! 例年会場はサンフランシスコ市街地にあるモスコーニ・センターでしたが、今年から会場が変更になるというイレギュラー。 (去年までの情報を色々参考に行けばいいやぐらいに考えていたのに。。) …

ChefでNginxをインストールし、設定ファイルをChefで管理する

今回は、ChefでNginxをインストールしてみたので覚書きです。 また、NginxをChefでインストールする場合、設定ファイル(nginx.conf)もChefで管理するのがベストです。 ということで、今回はNginxのインストールと設定ファイルの書き換えまでをChefで自動化し…

RxJava:Error Handling Operatorを使ったエラーハンドリング方法を理解する

RxJavaではObservableでExceptionが発生した場合、デフォルトではそのObservableを監視しているObserverのonErrorメソッドが実行され、出力元のObservableが終了します。 想定外のエラーが発生して処理を続行することが困難な場合はonErrorで適切な後処理を…

The experts' guide to Android development toolsで紹介されてたASショートカット(気になったのメモ

Motivation Google I/O 2016のセッションを少しずつ消化しているのだけれど、「The experts' guide to Android development tools」のセッションで紹介されていたAndroidStudioのショートカットが有用っぽいので備忘録がてらまとめておく。 とりあえず「ctrl…

AppLaunchCheckerを使って初回起動を判断する

Androidアプリを作るにあたって初回起動を判断する必要があると思います。 よくあるケースとしてははじめて起動した時にチュートリアルを表示して、2回目以降はチュートリアルを出さないようにするなどの処理を考えたりするときに判断が必要になります。 一…

RxJava:doOnEach系メソッドでObservableのライフサイクルを理解してデバッグに役立てる

今回はRxJavaのdo〜系メソッドを使ってObservableのデバッグに役立てる方法を紹介します。

Android Studio 2.2 PreviewでFirebase Analyticsを利用してみる

Google I/O 2016で発表のあったFirebase Analyticsについて、ちょっと試してみました。 Firebase AnalyticsはFirebaseの機能の一つで、AndroidやiOSなどのアプリケーションのイベントログを収集してレポートを作成してくれます。そのレポートを確認すること…

MaterialDesignのLoading中のProgressを作る

Motivation Material Designのガイドラインのコレが気に入ったので、汎用的に使えるようにFragmentで書いてみた。 Progress & activity - Components - Google design guidelines Motivation Progress Barを実装する FadeIn/FadeOutを実装する Activityから…

昼/夜のテーマを切り替える

AndroidではUiModeManagerを用いると端末自体のモードを切り替えることができましたが、アプリ内のテーマやリソースを切り替えることができませんでした。 最近になってAndroidのSupport Libraryに端末モードの切替に応じてUIのテーマやリソースを切り替える…

RxJavaのFiltering Operatorの使い方をまとめてみた

ReactiveExtenstionの根本的な概念としてObservableとOperatorがあります。前回はRxJavaをより深く理解するためにObservableの生成メソッドをまとめてみました。 今回は前回に続いて、Observableから流れてきた値をフィルタするFiltering Operatorの使い方を…

Berkshelfを使ってChef SupermarketからCookbookを取得してみる

前回は、Chef soloとKnifeを使って自分でCookbookを作成し、ゲストOSに適用しましたが、今回はChef SuperMarketに上がっているCookbookを取得してゲストOSに適用します。 Chef SupermarketはChefユーザのコミュニティで、Chefユーザ達が作成したCookbookやツ…

DataBindingで双方向バインディングしてみる

Motivation 色々調べ物をしつつ、お試しを書いてたらこんな事できたよ!と書いておく。 実際にどんなところで良いことがあるのかはわかんない。 Motivation つくるもの layoutの編集 Dataクラスの編集 つくるもの EditTextにテキストをインプットすると、そ…

Cloud Test Labを使ってテストしてみる

Androidのアプリを開発するうえで様々な端末やバージョンに対応する必要があります。 しかし、端末とバージョンを網羅的にテストするには費用がかかってしまうため基本的に個人の力で網羅するのは現実的ではありません。 そこでGoogleが提供しているCloud Te…

RxJavaのObservable生成メソッドを一通り試してみた

RxJavaを使いこなすためにはObservableを理解することが欠かせません。今回はより深くRxJavaを理解するためにObservable生成メソッドの挙動を調べてみました。 RxJava(というかReactivePrograming)については、以前も紹介した以下の記事が大変分かりやすかっ…

AndroidでFlexboxLayoutを使ってViewを並べる

FlexboxLayoutなるものが出たというのをチラッと見たので、どんなものなのか試してみました。 github.com FlexboxLayoutは、CSS Flexible Box Layout Module をAndroidに持ち込んだものらしい。 しかしまだバージョンが0.1.2(昨日は0.1.1だった)ということで…

ViewPagerにIndicatorをつける

Motivation Indicatorつけたいやん!!と思い立ち、これでイケる! と思った後に「あ、ライブラリありそう」とググったら見つけて 「あっ。。。」ってなりました。 実装は参考程度に、下記ライブラリを使うのが良いのではないでしょうか。 github.com Motivati…

Chrome ExtensionのContent Scriptsで特定のページをInjectする

Motivation ZenhubのExtensionを入れるとGithubのページにいくつかのViewが追加される。 これはいったいどうやってるの?と気になったので調べてみた。 Motivation Content Scriptsにできること 試しに実装してみる 今回実装したmanifest.jsonとjs 実行する …

Swift x Promise

Swift x Promise Swift x Promise Promise 実装例 chaining Building a Web API class との併用

Android-ObservableScrollViewでパララックスなスクロールを実装する

Android-ObservableScrollViewはScrollViewやListViewなどのスクロール可能なウィジェットのスクロール状態を取得して、スクロールに関するイベントをハンドリングできるようにするためのライブラリです。 このAndroid-ObservableScrollViewを使用することで…

Chef soloでapacheをインストールしてみる

MacでRailsを勉強していたのですが、開発環境の管理で苦労した経験からVagrantとChefで開発環境を管理できたら便利そうだと思い立ち、この機会にChefを勉強することにしました。 今回は、とりあえず試しにapacheのインストールを自動化してみたので、その際…