20200414のMacに関する記事は4件です。

# fishの導入

fishとは

  • インタラクティブシェル
  • 補完機能が充実

インストール

まずはインストール

$ brew install fish

$ fish -v

デフォルトシェルの変更

$ sudo vi /etc/shells # 末尾に /usr/local/bin/fish を追加

$ chsh -s /usr/local/bin/fish # デフォルトシェルを fish に変更

terminal再起動
※ターミナルを再起動して変更されているか確認します

fisherman

fishのプラグインマネージャ

docs

https://github.com/jorgebucaran/fisher

$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher
$ fisher -v

テーマの変更

fish__usr_local_var_workspace_practice_ionic-conference-app.png

(現状使用しているテーマ)
上記のように色々なテーマがこちらに存在するので、好きなテーマを使用できます。
※別途powerlineフォントをインストールしなければいけない場合があるのでそれは後述

powerlineフォント

多分、デフォのままだと文字化けを起こすので下記でpowerlineフォントをインストールしitermなどに設定する

$ git clone git@github.com:powerline/fonts.git

$ cd path/to/install
$ ./install.sh

プラグイン

テーマ適用

$ fisher add oh-my-fish/theme-bobthefish
  • ターミナル再起動

z - 履歴からディレクトリへ移動

z <文字列>のように入力すると、履歴から補完し補完内容から選択してディレクトリの移動が可能になります。

$ fisher add z

fish-bd - 親ディレクトリへ移動

cd ../../のようにディレクトリを遡ることがなくせます。
bdと入力すると親ディレクトリの一覧が候補として表示され、候補から選択しディレクトリの移動が可能になります。

$ fisher add 0rax/fish-bd

fish 設定

ブラウザからfishの設定が可能です。

$ fish_config

fish_shell_configuration.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Homebrewのdoctorで引っかかった話

背景

MacBookProを使っているのですが、Homebrewのdoctorコマンドに引っかかる珍しい現象が出たのでメモ代わりに残しておきます。

引っかかった内容(ログ)

brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: Some installed formulae are missing dependencies.
You should `brew install` the missing dependencies:
 brew install openssl@1.1

Run `brew missing` for more details.

対処

依存関係に文句を言われている様なのでopensslのインストールを実行(@1.1をつけ忘れているけど…)
詳しくみるなら brew missing を実行しろと言われてますが…

対処ログ

brew install openssl
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 4 taps (homebrew/cask-versions, homebrew/core, homebrew/cask and adoptopenjdk/openjdk).
==> New Formulae
bcoin                      gobo                       pass-git-helper
beancount                  hsd                        semtag
confd                      inxi                       vroom
emacs-dracula              llvm@9                     wolfmqtt
git-remote-codecommit      minipro
==> Updated Formulae

--- 長いので省略 ---

==> Downloading https://homebrew.bintray.com/bottles/openssl@1.1-1.1.1f.catalina
==> Downloading from https://akamai.bintray.com/72/724cd97c269952cdc28e24798e350
######################################################################## 100.0%
==> Pouring openssl@1.1-1.1.1f.catalina.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /usr/local/etc/openssl@1.1/certs

and run
  /usr/local/opt/openssl@1.1/bin/c_rehash

openssl@1.1 is keg-only, which means it was not symlinked into /usr/local,
because macOS provides LibreSSL.

If you need to have openssl@1.1 first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.bash_profile

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

==> Summary
?  /usr/local/Cellar/openssl@1.1/1.1.1f: 8,057 files, 18MB


結果

もう一回doctorを実行

brew doctor
Your system is ready to brew.

という事で修復できたみたいですね。
多分二度と起こらないと思うのでメモ代わりに残しておきます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

FileVault をオフにして開発速度を上げよう!

ベンチマークだと書き込みが1.3GB/s から 0.9GB/s になるぐらい

  • アプリの起動とかが遅いわけではない
  • 開発するする時のホットリロードとかは非常に遅い!

FileVaultをオフにすればNuxtのホットリロードだと、体感の比較は2倍以上早くなった

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Laravel セレクトボックスを実装する

目的

  • Laravelでセレクトボックスを実装するときの方法をまとめる

実施環境

  • ハードウェア環境
項目 情報
OS macOS Catalina(10.15.3)
ハードウェア MacBook Pro (16-inch ,2019)
プロセッサ 2.6 GHz 6コアIntel Core i7
メモリ 16 GB 2667 MHz DDR4
グラフィックス AMD Radeon Pro 5300M 4 GB Intel UHD Graphics 630 1536 MB
  • ソフトウェア環境
項目 情報 備考
PHP バージョン 7.4.3 Homwbrewを用いて導入
Laravel バージョン 7.0.8 commposerを用いて導入
MySQLバージョン 8.0.19 for osx10.13 on x86_64 Homwbrewを用いて導入

実施方法概要

  1. laravelcollectiveのインストール
  2. ビューファイルにコードの記載

実施方法詳細

  1. laravelcollectiveのインストール

    1. アプリ名ディレクトリで下記コマンドを実行する。

      $ composer require laravelcollective/html
      
  2. ビューファイルにコードの記載

    1. セレクトボックスを表示したいビューファイルを開く。
    2. 下記のコードを記載する。

      {{Form::select('age', ['Under 18', '19 to 64', 'Over 65'])}}
      
    3. ローカルサーバを起動し、下記のように表示される事を確認する。

      • 通常時

        スクリーンショット 2020-04-13 17.42.17.png

      • セレクトボックスクリック時

        スクリーンショット 2020-04-13 17.42.24.png

簡単な解説

  1. 先に記載したセレクトボックスのコードをHTMLのselect要素で記載するとどうなるか比較してみる。

    • Form::select()メソッド

      {{Form::select('age', ['Under 18', '19 to 64', 'Over 65'])}}
      
    • HTMLのselect要素

      <select name="age">
        <option value="0">Under 18</option>
        <option value="1">19 to 64</option>
        <option value="2">Over 65</option>
      </select>
      
  2. セレクトボックスでのデフォルト表示を変更したい時は下記のようにする。また、記載内容をHTMLのselect要素と比較する。

    • Form::select()メソッドで「Over 65」をデフォルト表示に設定

      {{Form::select('age', ['Under 18', '19 to 64', 'Over 65'], 2)}}
      
    • HTMLのselect要素

      <select name="age">
        <option value="0">Under 18</option>
        <option value="1">19 to 64</option>
        <option value="2" selected="selected">Over 65</option>
      </select>
      
  3. セレクトボックスで選択した際の値を任意に決めたい時は下記のようにする。また、記載内容をHTMLのselect要素と比較する。

    • Form::select()メソッド

      {{Form::select('age', ['first_ans' => 'Under 18', 'second_ans' => '19 to 64', 'third_ans' => 'Over 65'])}}
      
    • HTMLのselect要素

      <select name="age">
        <option value="first_ans">Under 18</option>
        <option value="second_ans">19 to 64</option>
        <option value="third_ans">Over 65</option>
      </select>
      

実装の例

  • /addにてセレクトボックスを表示する。当該ビューファイルに値を送信するボタンを設置し、押下をトリガーとして動作する。
  • /registにセレクトボックスでの入力値を飛ばし、リンクするコントローラのアクションで値を受け取る一連の処理を記載する。
  • コントローラ名はPostControllerとする。
  • セレクトボックスを表示するビューファイル名はaddとする。
  • PostControllerのregistアクションで入力値を取得する。

  • 当該処理に必要なルーティングファイルの内容のみ抜粋して記載する。

    アプリ名ディレクトリ/routes/web.php
    Route::get('/add', 'PostController@add');
    Route::post('/regist', 'PostController@regist');
    
  • 当該処理に必要なコントローラファイルの内容のみ抜粋して記載する。

    アプリ名ディレクトリ/app/Http/Controller/PostController.php
    class PostController extends Controller
    {
        public function add_todo() {
            return view('post.');
        }
    
        public function regist(Request $request) {
            $age => $request->age,
    
        //DBへのデータ格納処理
        //リダイレクト処理
        }
    }
    
  • 当該処理に必要なセレクトボックスを表示するビューファイルの内容のみ抜粋して記載する。

    アプリ名ディレクトリ/resources/view/post/add.blade.php
    <form action="/regist" method="post">
        @csrf
        {{Form::select('age', ['Under 18', '19 to 64', 'Over 65'])}}
        <input type="submit" value="send">
    </form>
    
  • ビューファイルで「Under 18」を選択して、ブラウザの「send」ボタンをクリックした場合、PostController内のregistアクション内の$ageには0が格納される。

  • ビューファイルで「19 to 64」を選択して、ブラウザの「send」ボタンをクリックした場合、PostController内のregistアクション内の$ageには1が格納される。

  • ビューファイルで「Over 65」を選択して、ブラウザの「send」ボタンをクリックした場合、PostController内のregistアクション内の$ageには2が格納される。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む