22時に寝ようと思って2時に寝る。

備忘録や日記を書いてます。きょうは早く寝よう。

備忘録

CircleCI - macOS イメージを使用するときに Ruby のバージョンを指定する

はじめに CircleCI が用意している macOS イメージを使用する際に、任意のバージョンの Ruby を使いたい場合があると思います。この記事では、macOS イメージにプリインストールされている chruby を用いて、Ruby バージョンを切り替える方法を紹介します。 …

CircleCI - iOSシミュレーター向け(x86_64)にアーカイブをビルドする

はじめに CircleCI 上で、x86_64 アーキテクチャで動作する iOS シミュレーター向けにアーカイブをビルドする方法について紹介します。結論としては、fastlane の xcodebuild コマンド を用いて、SDK のパラメータに Simulator用 SDK を指定してあげることで…

CircleCI - macOS コンテナ上で利用できる iOS Simulator を調べる

はじめに CircleCI 上で UI Test を実行する際に任意の iOS Simulator を指定することがあると思います。指定するにあたって、macOS のコンテナ上で事前に用意されている iOS Simulator を把握する方法について紹介します。 結論としては、CircleCI のジョブ…

CircleCI - コミットメッセージに特定の文字列が含まれていれば、ある処理を行う

はじめに この記事では、CircleCI で「コミットメッセージに特定の文字列が含まれていれば、ある処理を行いたい」場合の実現方法について紹介します。結論としては、circleci-agent step halt コマンドを利用することで比較的シンプルに実現できます。 今回…

fish - chruby で最新の Ruby をインストールする

fish 環境に chruby をインストールする方法をまとめます。 github.com 実行環境 > sw_vers ProductName: Mac OS X ProductVersion: 10.14.6 BuildVersion: 18G1012 > brew -v Homebrew 2.1.16 Homebrew/homebrew-core (git revision 92599; last commit 201…

Android - FileProvider で外部アプリとファイルを共有する

FileProvider とは Android7.0(API24, Android N)から、ファイルシステムに大きな変更が加わり、権限の仕様がより厳しいものへと変更されました。 API24 以降向けのアプリにおいて、プライベートディレクトリにアクセス制限が加わり、外部から存在、サイズ…

fish - rbenv で最新の Ruby をインストールする

fish 環境に ruby の開発環境を構築する方法をまとめます。 github.com 実行環境 > sw_vers ProductName: Mac OS X ProductVersion: 10.14.1 BuildVersion: 18B75 > brew -v Homebrew 1.8.2 homebrew で rbenv を導入 > brew install rbenv fish で rbenv を…

Gulp - v4 の series と parallel を使って直列・並列処理を制御する

Gulp v4 で導入された series と parallel を使ってみました。 動作環境 $ node -v v8.12.0 $ npm -v 6.4.1 $ ./node_modules/.bin/gulp -v CLI version 2.0.1 Local version 4.0.0 series の使い方 series は直列(同期的とも言える)に処理を順次実行しま…

デザイン組織のつくりかたを読んだ

きょうは デザイン組織のつくりかた という本を読みました。 デザイン組織のつくりかた デザイン思考を駆動させるインハウスチームの構築&運用ガイド作者: ピーター・メルホルツ,クリスティン・スキナー,長谷川敦士,安藤貴子出版社/メーカー: ビー・エヌ・…

fish - Macのシェル環境を新しくした

これまでシェルにそこまでこだわりがなかったのですが、身の回りの方々を見ていると、かっこいい・便利な感じにカスタマイズしている人が多く、「おっ、良さそうだな」と思ったので シェル環境を一新しました。 どのシェルを選ぶか 個人的な見解として、「死…

デザイン - 色の持つイメージ

色について 色というのは、人によって違ったイメージを持つもので、その人の経験や住んでいる国、その土地にある文化によって変化する。色によるイメージをポジティブ・ネガティブの2つの視点からまとめ、それに適した領域を以下に示す。 赤 ポジティブイメ…

iOS - AppExtensions Today の概要

前提としてToday ウィジェットは以下のように動作することを期待しています。 常に最新の情報が表示される ユーザーの操作に的確に応答する 効率よく動作する(特に iOS 向けウィジェットはメモリを浪費すると強制終了させられる) 簡潔に、きびきびと動作す…

RxJava - BackpressureStrategy の種類

今回は Backpressure の挙動を指定するための列挙型、BackpressureStrategy について見ていきます BackpressureStrategy とは Flowable は場合によって生成スピードが Subscribe の処理速度以上に速い場合があります。そういった場合は、データは通知される…

RxJava - IntelliJ IDEA で RxJava の環境構築

実際に RxJava のサンプルコードを書いていく上での環境を構築していきます。今回はエディタとして IntelliJ IDEA を用います。 www.jetbrains.com 動作確認環境 OS: macOS High Sierra 10.13.6 IntelliJ IDEA: 2018.2.1 (Ultimate Edition) Build #IU-182.3…

RxJava - Cold および Hot な生産者(Flowable / Observable)

今回は、生産者(Publisher)は大きく分けて Cold と Hot の2つに分類することができます。それら2つについて説明してきます。 Cold な生産者 Cold な生産者は 1つの消費者とのみ購読関係を結ぶ 1つの消費者と購読関係を結ぶ度にデータを通知するためのタ…

RxJava - オペレータについて

今回は、Publisher から通知されたデータを受け取って処理する際に用いるオペレータを見ていきます。 段階的にデータを整形する RxJava では、Publisher(Flowable / Observable)から Subscriber(Subscriber / Observer)にデータが通知される間に Subscri…

RxJava - Flowable / Observable と Subscriber / Observer について

今回は、RxJava における Reactive Streams 対応について見てきます。 RxJava における生産者と購読者 Reactive Streamsの概念では、データを生産し通知する役割を担う生産者と通知されてきたデータを受け取って処理を行う消費者がいます。消費者が生産者を…

RxJava - Reactive Streams のルール

Reactive Streamsの仕組みを理解する上で重要なルールを簡単に説明します。 詳しくは、以下の公式リポジトリの README.md を参照してください。 github.com 重要なルールは主に4つです。 購読を開始する通知である onSubscribe は購読につき一度だけ通知する…

RxJava - Reactive Streams とは

今回は、Reactive Streams について見ていきます。 Reactive Streams は、ライブラリやフレームワークに依存せず、データストリームを非同期的に扱うことができる仕組み・インタフェースを提供しています。 github.com The purpose of Reactive Streams is t…

RxJava - リアクティブプログラミングとは

最近、学び始めたリアクティブプログラミングについて備忘録としてまとめていきます。今回は、概要について触れます。 リアクティブプログラミングとは リアクティブプログラミング(Reactive Programming)は、最近注目されているプログラミングパラダイム…

gemの命名規則

gemの命名規則って、アンダースコアとハイフンはどう使い分ければいいのか、などわからず調べたので備忘録として残しておきます。 推奨される規則 Gem名 requireの書き方 主要なクラス名 および モジュール名 ruby_parser require 'ruby_parsor' RubyParser …

Enpass - パスワードマネージャーを乗り換えた

新社会人になり、情報セキュリティ対策の重要性を感じることが増えました。1年前からLastPassを無料プランで利用してパスワード管理をやんわり意識してはいたものの、しっかりと管理する意識に欠けていたなと思います。 そこで、今回はこれから継続的にパス…

Sketch - データ構造

これまでSketchを「雰囲気で」使ってきた部分が大きく、実際にSketchを使いこなせていない感がありました。 そこで、Sketch入門書を手に取りながら、実践し、記事にまとめていきたいと思います。 まずは、Sketchのシステムがどういったデータ構造でデータが…

Adobe学割 - Illustrator 単体プランからフォトプランへ無料で切り替える

結論から言うと、イラレプランからフォトプランへの切り替えはWeb上のAdobeIDのメニューからはできず、アドビカスタマーサポートへ電話することで可能でした。 イラレプランを解約したかった 1年ほど前からAdobeの学割を利用してIllustratorを利用していま…

MacbookPro - 勝手にクリック(連打)される現象の対処

勝手にクリックされる現象に対処する 一応、再現するスペックのMacbookProは以下です。 通常、トラックパッドを使ってカーソル移動やクリックを行っています。 MacBookPro(13-inch, 2016) macOS Sierra 10.12.6 結論から言いますと、「トラックパッドの付着…

Rails5 - 404/500ページをカスタマイズする

デフォルトの404/500ページをカスタマイズしたい 何かのWebサービスを利用していて、404や500を返された時、「このサービス、Railsで作られているんだ」と思わぬ発見があったりします。 エラーステータス: 404 エラーステータス: 500 このままでも特段問題…

Sketch - テキストをSVGでExportする

なぜSVGなのか 最近、Webページを作成するときのロゴはなるべくSVGを使用するようにしています。 たとえば、自分が所属しているチームのWebサイトを新しくする際にロゴも一緒に新調したのですが、SVGで出力したロゴを表示しています。 yurue.xyz 拡大しても…

Rails5 - utf8mb4(主にiOSの絵文字)に対応する

実行環境 CentOS release 6.9 (Final) ruby 2.4.1 Rails 5.0.3 10.0.31-MariaDB 文字コードのutf8mb4に対応する 今回、主にiOSの絵文字に対応するためにutf8mb4に変更する必要がありました。MySQLであればバージョン5.5以降でutf8mb4をサポートしています。 …

CentOS6.8 - MySQL5.1 から MySQL5.6へバージョンアップする

環境 CentOS release 6.8 (Final) 64bit 今回はRails5.0のアプリ開発の際に、絵文字(utf8mb4)に対応するためにMySQL5.1からMySQL5.6へのバージョンアップの必要がありました。 既存MySQL5.1を削除する 現在インストールされているMySQLを確認する # rpm -q…

RSpec - テストでは画像アップローダを無効にする

Cloudinary::CarrierWave::UploadError 現在開発しているRailsアプリでは、Userのプロフィール画像をCarrierWaveを用いて、Cloudinaryに画像をアップロードする方法で実装しています。 このUserモデルに関わるテストを行うときはFactoryGirlを用いてテストデ…