幸福なプログラマ

プログラマは幸福になれる。

axios-mock-adapterでモックしたAPIへのリクエストが404になる

jestでテストを行う際、以下のように axios-mock-adapter を利用してPost(or put)系APIのモックを作成していました。 const uesr = {...}; const mock = new MockAdapter(axios); const path = `https://dummy.url.com/api/v1/user/${userId}`; mock.onPost(…

react-testing-frameworkで要素が「存在しないこと」を確認しようとするとエラーになる

要素が存在しないことを確認しようとして次のようなコードを書いた。 it('check non-existence', () => { const { getByText } = render( <div>existence</div> ); const element = getByText(/non-existence/i); expect(element).toBeNull(); }); すると、以下のエラー…

iterm2インストールからfish導入まで

mac新調したのでターミナル環境を一から構築してみた備忘録です。 iterm2インストール iTerm2 - macOS Terminal Replacement hot key設定 Controlダブルタップで起動するように設定 Preferences->Keys->Hotkey->Create a Dedicated Hotkey Window... Double-…

Backlogのgitにpushする際ユーザ名とパスワードの入力を求められるようになった時の対処法

git

備忘録 Terminalからgitを操作してBacklog上のリモートブランチにプッシュしようとした際、常にユーザ名とパスワードの入力を求められるようになってしまった。 その場合、以下のようにリモートリポジトリを再設定することで現象が解決した git remote set-u…

sed -eによるパターン置換でエラーが出た時の対処法

sedで置換する際、以下のようなエラーが出た場合の対処法 sed: 1: "s/hogehoge...": bad flag in substitute command: '/'` -eオプションでパターンによる置換を行う際、区切り文字と同じ文字が置換対象の文字列に含まれている場合発生する。 エラーが出る例…

Homebrewでインストールしたpostgresqlのpsqlコマンドが動かなくなった時の対処法

sql

❯ psql -l psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? このようなエラーが出た場合の対処方法です。 エラーメッセージでGoogle…

Vue CLI 3 でvue-routerをインストールしたプロジェクトを作成する

タイトル通り、個人的なメモ ※macOSで実行 npmでVue CLI 3インストール ターミナルで以下のコマンド実行 vue create "APPLICATION_NAME" Please pick a preset と表示されるので Manually select freatures を選択 選択肢の中から Router を選択しEnter Use …

macで接続済のwifiパスワードを確認する方法

キーチェーンアクセス 起動 キーチェーン システム を選択、分類は パスワード を選択 これまでパスワード入力して接続したwifiの一覧が表示されているので、任意のwifiを選択 ダイアログが表示されるので パスワードを表示 にチェックを入れることで確認で…

Javascriptで連想配列にキーが存在するかチェックする方法

連想配列にキーが存在するかチェックしたい時やりがちな判定 var map = {"key": 0}; if (map["key"]) { // "key"がmapに存在する } でも、これだと if (0) となるためkeyが存在するのにfalseとなる。 そこで以下のようにするのが正しい var map = {"key": 0}…

jQueryで親要素へのイベント伝播を防ぐ

jQueryでクリックイベントを設定する際、以下のように子要素と親要素両方にイベントを設定すると、子→親の順にイベントが走る。 これを イベントバブリング と呼ぶらしい。 <tr> <td>Test</td> <td> jQuery(function($) { $('tr').click(function(e){ alert('tr click'); }); </td></tr>…

iOSデバイスにiOS12ベータ版を入れる方法

iOS

公式見れば全部書いてあるけど一応備忘録として。 アップデートしたいiOSデバイスから https://beta.apple.com/profile このURLにアクセスする ページ中程にある プロファイルをダウンロード ボタンを押す Appleデベロッパーアカウントでログインするとプロ…

Navigation Architecture Component を使えるようにする

Google I/O 2018 でAndroid Studioの新機能、Navigation Architecture Componentが発表されました。 どうやらXcodeで言うところのStoryBoardのようなものらしいです。iOS開発をしたことがないので一つもピンときていません。 とりあえず、Navigation Archite…

iPhoneで開発サーバーにのみ繋いでインターネットには接続させない方法

背景 自社サーバーには繋がっているけど他社のAPIサーバーには繋がっていない状況を作り出してテストしたい、なんてことがありました。 解決方法 結論から書くと、開発マシンにプロキシサーバーを立てて、iPhoneからそのプロキシサーバーを経由してネットワ…

Vagrant upでのエラー

Vagrant upしたときに Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please ve…

Picassoでエラーの詳細を取得する

Picassoでエラー発生時のコールバックを取得するとき Picasso.with(context).load(URL).into(ImageView, new Callback() { @Override public void onSuccess() { } @Override public void onError() { } }); こんな感じに書くことができるけど、これだとエラ…

Android Studioでドキュメントが自動的にポップアップしないようにする。

マウスカーソルが当たっているコードのドキュメントが勝手にポップアップするやつ、イライラするから消したい。 Preferences Editor>General>Code Complete内のAutopopup documentation in (ms)のチェックを外す 平穏。

ユーザ切り替えインテントを取得する

Android 5.0(lollipop)からマルチユーザに対応しました。(タブレットは4.2から) ユーザ切り替えが発生した際のインテントの取得したい場合、以下のように記述します。 class UserSwitchReceiver extends BroadcastReceiver { @Override public void onRece…

gitでリモートからブランチをチェックアウトするまでの流れ

git

空のディレクトリで始める手順です。 初期化 git init リモート名を指定してリモートリポジトリにアクセスできるよう設定 git remote add リモート名 リモートリポジトリのurl リモートリポジトリの変更を取得 git fetch ローカルブランチを作成してリモート…

ViewのVisibleが変化した際に起動するイベントリスナを作る。

1.イベントリスナをセットしたいViewを継承した独自Viewクラスを作成する。 public class MyTextView extends TextView { public MyTextView(Context context) { super(context, null); } } 2.イベントリスナのインタフェース・メンバ変数・セットメソッドを…

Android StudioでBreakpointの一覧表示

Android Studioで、設置したBreakpointの一覧を確認したい場合 ctrl+shift+F8 で以下のような子画面が表示されるので、そこで一覧表示・削除・設置等を行うことができる。

罫線のついたtextareaをcssで実現する。

css

ノートみたいな罫線をtextarea内に描画したい場合、以下のようなcssを記述することで実現できます。 textarea { font-size: 15pt; line-height: 31px; padding: 31px; /* テキストエリアに陰をつける */ box-shadow: 0.2em 0.2em 0.5em black; /* 罫線描画(…

Android StudioでUpperCase・LowerCaseのショートカット

ctrl + shift + u

1箇所だけ角丸のViewを作る

角丸のViewを作りたい場合は、以下のようなxmlを用意して対象のViewのBackgrounに指定することで実現できます。 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#fff" > </solid> <corners android:radius="30dp" /> </shape> それを↑の画…

ActionBarからアイコンを消す

AndroidのActionBarからアプリアイコンを消したい場合は、独自に定義したstylesに以下の1行を加えます。 <resources> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- ↓コレ --> <item name="android:icon">@android:color/transparent</item> </style> </resources> こうすることで以下のようにActionBarのアイコンが表示されなくな…

Android Studioで全文検索

Android Studioで全文検索したいときは Edit→Find→Find in path を選択して出てきた子画面のText to findにキーワードを入れてFindボタン押下で実行できます。 Optionsの意味は↓みたいな感じ。 名前 意味 Case sensitive 大文字と小文字を区別して検索。 Who…

Android Studioのバージョンを0.6.0に上げたときに出るエラーの対処法

Android Studioのバージョンを0.6.0に上げた際、既存のプロジェクトで以下のようなエラーが出ました。 Error:The SDK Build Tools revision (19.0.3) is too low for project ':app'. Minimum required is 19.1.0 Android SDKのリビジョンが古いということな…

新人教育に際して気をつけたいこと

先日、devlove名古屋のオブジェクト設計とリーン開発、その実践に参加した際、最後の質疑応答で増田さん(@masuda220 ](https://twitter.com/masuda220))が仰っておられたことが心に残ったので文章に残しておきます。 最後の質疑応答の時間に増田さんに対し…

非同期処理にはThreadを直接使わずにExecutorServiceを使用する

一個前の記事 で MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable); thread.start(); みたいな感じでThreadクラスのコンストラクタにRunnable実装したサブクラスを渡して非同期処理をしようと書いたけれど、以下の観点からお…

Threadクラスの継承ではなく、Runnableインタフェースを実装したクラスに処理を委譲する

javaで非同期処理を実現する際、以下のようにThreadクラスを継承したサブクラスを作成し public class MyThread extends Thread { @Override public void run() { // 非同期処理 } } 下記のように呼び出すと思います。 MyThread thread = new MyThread(); th…

javaのenumで要素数を取得する

enum Sample { ONE, TWO; } private int getSampleLength() { return Sample.values().length; } values()でenum型の配列が取得できるので、lengthを呼べば配列の要素数を取得できる。