Netlifyで failed to transform resource: TOCSS: failed to transform "style.sass" って出た時の対処法

正確なエラー文はこれ

failed to transform resource: TOCSS: failed to transform "style.sass" (text/x-sass): this feature is not available in your current Hugo version

 

結論から行くスタイル

(1)Build image selectionでUbuntu Xenial 16.04(default)を撰ぶ

f:id:yasuhallabo:20200614174032p:plain

続きを読む

macのクリーンインストール @ansibleで自動インスコ付き【2019/09版】

雑なメモ書きですが約1.5年ぶりにクリーンインストールしたので作業メモです。

クリーンインストールメモ

参考サイト

qiita.com

前回記事【2018/01版】

yasuhallabo.hatenadiary.org
※ちょっとバグがあったので今回直しています

OSのクリーンアップ

  • 必要なファイル等は外付けHDDなどに退避する。

今回は新規のMBPにインストールしたのでディスク消去はしていない

  • 電源起動時に、command + Rを押しっぱなしにする
  • OS X ユーティリティからディスクユーティリティを選択
  • ディスクを消去する
  • OS X ユーティリティからOS Xを再インストールするを選択
  • ソフトウェア使用許諾契約に同意する
  • インストール先のディスクを選択してインストール
  • AppleIDとパスワードを入力
  • OSダウンロードが始まり、その後インストールが開始されるので放置

  • 今は情報の転送はしないを選択
  • Macを探すは許可する
  • コンピュータアカウントを作成(iCloudアカウントは使わなかった)
  • FileVaultディスク暗号化を有効にする
  • 診断と使用状況はチェックした
  • クリーンインストールが終わったらApp storeからシステムアップデートをかける。

最新のOSをインストール

  • 新規で購入したMBPなのにHighSierraが入っていなかったのでインストール

Xcodeをインストール

  • 時間がかかるので最初にやる。App storeからXcodeをインストール。
  • インストールが終わったらXcodeを起動して規約に同意する
  • Xcodeのライセンス認証。
  • sudo xcodebuild -license

Dock

  • サイズを小さくする
  • 拡大にチェック。1/4ぐらい
  • 画面上の位置を左に変える
  • 以下をDockから消去
    Siri、Safari、連作先、カレンダー、メモ、リマインダー、マップ、写真、メッセージ、FaceTime
    Pages、Numbers

セキュリティとプライバシー

  • スリープとスクリーンセーバの解除を15分後に
  • Apple WatchでこのMacのロックを解除できるようにする → チェック入れても動かなかったので未設定

キーボード

  • キーのリピートを速く(最速)
  • リピート入力時間を短く(最短)

トラックパッド

  • タップでクリックにチェック
  • 軌跡の速さを速くする(最速)

サウンド

  • メニューバーに音量を表示にチェック

iCloud

  • iCloud、キーチェーン、Macを探すにチェックのみ

共有

  • コンピュータ名をかわいいのに変える

日付のオプション

  • 曜日を表示
  • 日付を表示

表示オプション

  • デスクトップを右クリック → 表示オプションを表示
  • アイコンサイズ 16x16
  • ラベルの位置 右側
  • 表示順序 名前

Homebrewをインストールする

Homebrewのインストール

xcode-select --install
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

anacondaをインストールする
brew install python  3系のanaconda入れたいので却下
brew install ansible pythonのフォルダにインストールしようとするので却下

anacondaは以下からダウンロード
https://www.anaconda.com/download/#macos

chmod 755 ./Anaconda3-2019.07-MacOSX-x86_64.sh
./Anaconda3-2019.07-MacOSX-x86_64.sh

確認

Python -V
Python 3.7.3

ansibleインストール

brew install ansible

Ansibleの実行

プロビジョニング用のディレクトリ作成。

mkdir .macbook-provisioning
cd .macbook-provisioning/

ansible用のinventoryファイル作成

echo 'localhost' > hosts

テキストを開き、以下をlocalhost.ymlとして保存

- hosts: localhost
  connection: local
  gather_facts: no
  sudo: no
  vars:
    homebrew_taps:
      - caskroom/cask
      - homebrew/services
    homebrew_packages:
      - { name: readline }
      - { name: openssl }
      - { name: openssl, state: linked, install_options: force }
      - { name: git }
      - { name: wget }
      - { name: curl }
      - { name: go }
      - { name: rbenv }
      - { name: ruby-build }
      - { name: vim }
      - { name: mysql }
      - { name: redis }
      - { name: p7zip}
      - { name: cmake}
      - { name: swig}
    homebrew_enabled_services:
      - mysql
      # - redis # redisは今後自動起動に入れない
    homebrew_cask_packages:
      - { name: iterm2 }
      - { name: firefox }
      - { name: google-chrome }
      - { name: google-japanese-ime }
      - { name: atom }
      - { name: skype }
      - { name: slack }
      - { name: vagrant }
      - { name: virtualbox }
      - { name: phpstorm }
      - { name: pycharm }
      - { name: datagrip }
      - { name: sequel-pro }
      - { name: postman }
      - { name: cyberduck }
      - { name: gimp }
      - { name: marp }
      - { name: vmware-fusion }
      - { name: sourcetree }
      - { name: docker }
      - { name: bettertouchtool }
      - { name: firefox }

  tasks:
    - name: homebrew の tap リポジトリを追加
      homebrew_tap: tap={{ item }} state=present
      with_items: "{{ homebrew_taps }}"

    - name: homebrew update確認
      homebrew: update_homebrew=yes

    # brew
    - name: brew packageのインストール
      homebrew: >
        name={{ item.name }}
        state={{ item.state | default('latest') }}
        install_options={{
          item.install_options | default() | join(',')
          if item.install_options is not string
          else item.install_options
        }}
      with_items: "{{ homebrew_packages }}"
      register: brew_result
    - name: brew パッケージの情報保存先ディレクトリを作成
      file: path=brew_info state=directory
    - name: brew パッケージの情報を保存
      shell: brew info {{ item }} > brew_info/{{ item }}
      with_items: "{{ brew_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list }}"

    # brew services
    - name: Get currently available brew services.
      shell: "brew services list | sed '1 d' | cut -d ' ' -f 1"
      register: brew_services

    - name: Enable brew services.
      command: "brew services start {{ item }}"
      with_items: "{{ homebrew_enabled_services }}"
      when: "'{{ item }}' in brew_services.stdout_lines"

    # cask
    - name: cask パッケージをインストール
      homebrew_cask: >
        name={{ item.name }}
        state={{ item.state | default('installed') }}
      with_items: "{{ homebrew_cask_packages }}"
      register: cask_result
    - name: cask パッケージの情報保存先ディレクトリを作成
      file: path=cask_info state=directory
    - name: cask パッケージの情報を保存
      shell: brew cask info {{ item }} > cask_info/{{ item }}
      with_items: "{{ cask_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list }}"

  handlers:
    - name: run fc-cache
      shell: fc-cache -vf

Homebrew Caskオプションを設定

echo 'export HOMEBREW_CASK_OPTS="--appdir=/Applications"' >> ~/.bash_profile
source ~/.bash_profile

作成したPlaybookを実行する

ansible-playbook -i hosts -vv localhost.yml -e 'ansible_python_interpreter=/Users/<ユーザー名>/anaconda3/bin/python'

以上で概ねアプリはインストールできる。

インストール中の注意

インストール後

  • Dockerは起動しないとパスが通らないので一度起動してください。
    一度起動すればdocker-composeもパスが通ります。
    起動後はコンテナに割り当てるメモリ容量を上げてください。Defaultの設定は2GBなのでメモリ食うコンテナは起動失敗します。
  • slackはアプリ起動してログインし直す。
  • Mac Mailは各Gmailアカウントでログインし直せば振り分けも自動で設定されます。
    (私はメールの振り分けをGmail上で設定しているため)
  • FirefoxFirefox syncを使って同期しました。

動作確認環境

MacBookPro 2019 Mid 15インチ (Mojave)で動作確認済み
(CPU : 8core x 2.3GHz Intel Core i9、Mem : 16GB、SSD : 512GB)

感想

バックアップが一番めんどくさいですね。
不要なものを削除しつつ、7z で固めて保存しているので手間が掛かります。
タイムマシンとかで自動化すると便利なのでしょうけど、仕事のファイルは消さなければいけないものも結構あるので、この機会に手動でお掃除しています。

学生アルバイト・103万円の壁について

所得税は103万を超えると課税されるが、勤労学生控除が適用されると130万円まで非課税
いわゆる「150万円の壁」は配偶者に関するものなので学生は関係なし

勤労学生控除の対象となる3つの条件
(1)「給与所得などの勤労による所得があること」
(2)「合計所得金額が65万円以下(収入が130万以下)で、しかも(1)の勤労に基づく所得以外の所得が10万円以下であること」
(3)「特定の学校の学生、生徒であること」

住民税も勤労学生控除は適用される。
勤労学生控除が適用されない場合、例えば年収120万円の大学生Aさん(20歳)だと所得税と住民税で3万程度の納税が必要になる。

年収が130万を超えると社会保険の扶養からも外れる。
→会社の社会保険に加入するか、国民健康保険に加入する必要がある。

例)月11万、年収132万だった場合で会社の社会保険に加入すると
健康保険と厚生年金合わせて月15,526円→年18万以上給与から引かれます。(社会保険は保険と年金がセットです)

国民健康保険に加入する場合は健康保険だけの加入もOK。
例)年収132万で沖縄市在住の場合の国民健康保険料は年82,555円かかります。

20歳未満は国民年金を払う必要がなく、20歳以上は支払う義務があるが学生納付特例の猶予制度あり。

 --------↑ここまでは学生本人について↑--------

 --------↓ここからは親の納税について↓--------

子供の年収が103万を超えると親の扶養控除からは外れる(勤労学生かは関係ない)

例)年収120万円のAさん(20歳)のケース
年齢が19歳以上23歳未満の扶養家族は「特定扶養親族」に当てはまり、所得税63万円、住民税45万円が親の課税所得から扶養控除として差し引かれる。
所得税率は課税所得により異なりますが、仮にAさんの父親の課税所得が195万円超330万円以下だったとすると、税率は10%です。Aさんの年収が103万円を超えると控除されていた分の所得税や住民税を支払うことになるので、単純計算で
63万円×0.1(所得税率)+45万円×0.1(住民税率)=10万8000円
親の納税が増えることになる。

勤め先独自の家族手当等がある場合、それらも外れる可能性あり。
年収が130万を超えると社会保険の扶養からも外れるが、親の社会保険料に変更はない。

結論>学生本人も年調や確定申告の手間が増えるので103万を超えないほうが妥当

Python札幌(PythonBeginners沖縄オーガナイザー来札スペシャル)で登壇してきました!

こんにちは(`・ω・´)ゞやすはるです



2018/09/05(水)にPython札幌 (PythonBeginners沖縄オーガナイザー来札スペシャル)で登壇してきました!




Python札幌 勉強会 PythonBeginners沖縄オーガナイザー来札スペシャル | connpass

当日の様子(Facebookグループ「PythonBeginners沖縄・助け合い所」アルバム)




はじめに



久々の札幌入り!

15年住んでいたこともあり愛着の深い札幌。上の息子が北海道にいることもあり定期的に札幌に帰っています。(できれば拠点ほしい)



Python札幌3日前には息子と食事へ

息子の手前、見栄を張って注文した「網走監獄和牛」

くっそ美味かったけど財布は空になりました!



勉強会直前には「すみれ」のらーめん食いに行きました。


開店直後なのに行列。。。勉強会に間に合わなくなるんじゃないかと不安にw

次回はもう少し早めに行こう・・・w



会場は株式会社インサイトテクノロジーの札幌開発センターで行われました。



ちなみに今回の勉強会はPython札幌の稲地さんに相談して1時間後には内容、会場が決まりました(仕事早い!)


この日は早朝の台風で被害が出ていました。
足が遠のくかと心配しておりましたが、たくさんの参加者が来てくださり、大変盛況でした。





[LT1] 沖縄のPython・データ分析コミュニティ(やすはる)


最初の登壇者は私でした。
沖縄のPython・データ分析コミュニティについて紹介させていただきました。


今回来場者が多かったのでなぜ来てくれたのかを聞いてみたところ、「沖縄から来た」という点と「Beginner向け」だったことが来場しやすさに繋がったようでした。



[LT2] 業界未経験で1年間独学を続けて、どんなものを作れるようになったのか(nokonoko_1203 さん)


次はプログラミング業務未経験のnokonokoさんの発表でした。
初心者もLTしやすいのが「Beginner向け」の醍醐味ですよね。


「これまでに作ったもの!」
Pythonbot、ラズパイ、progate、Mecabなどなど・・・沢山のことにチャレンジしていて凄いですね!



[LT3] モチベ保つ自分用サービス作ってみる話(大城慶知くん)


次は琉球大学三年生の大城慶知くん
唯一の学生LTだったので超絶期待LTですね!


まとめ「LT駆動開発で誘惑の多いところにいてはいけない(戒め)」
安定のネタLTでした。期待を裏切らない男ですねw
海鮮丼やらラーメンやらが美味しすぎるのが悪い、と札幌をAgeつつネタをまとめるネタスキルの高さを見せつけてくれました。



[LT4] M5GOでMicroPython(稲地さん)


次はPython札幌の稲地さん
PyCon Boot Camp in 札幌でお会いして、IoTの知識が豊富な方だなと思っていました。
こんな形で一緒に勉強会ができて嬉しかったです。


M5Stack凄いですね。私も触ってみたいと思いました。



[LT5] モデルを圧縮してFPGA実装した話(中澤くん)


次はPythonBeginners沖縄でおなじみの人気講師・中澤くん
モデル圧縮してFPGA実装した話です。


FPGAという超並列でプログラマブルなプロセッサのポテンシャルを引き出すために立ちはだかる容量の壁をモデル圧縮して押し込む貴重な話でした。

札幌の方々でもFPGAPythonの話は貴重だったようです。



[LT6] 中村良幸さんの話(Insight Labや勉強会について)


最後は今回会場をご提供いただいたインサイトテクノロジーの中村さんのLT
Python札幌のオーガナイザーでもあります。


Insight Labの行っている様々な事業の紹介や、ご自身が立ち上げた勉強会(めちゃくちゃ多い!)について語っていただきました。
実際の案件や事業に関わる話は中村さんだけでしたので貴重なお話を聞くことが出来ました。
サブリミナル紹介で知っているワードが見えてしまいましたが、ここには書くことは出来ませんねw(秘密ですw



懇親会


勉強会の後、懇親会にも参加しました。
バックグラウンドの異なる方々一人ひとりとお話させていただき、みなさんとの距離が近づくのを感じることができました!
週の半ばの平日でしたし、終電近くなってしまったので切り上げましたが、もう少し一緒に話していたかったですね。。。


懇親会後には札幌駅前で記念撮影しました


なぜか三脚をお持ちの宮沢さん(準備良すぎぃw)のおかげで懇親会参加者全員の写真を取ることが出来ました。



そしてこの一枚

中澤くんだけ異次元転送直前みたいになってて笑ってしまいました。





おわりに


Python札幌の方々との勉強会はとても楽しく、時間が短く感じました。
Python札幌オーガナイザーの中村さんとは、もし沖縄に来る機会があったら沖縄でも勉強会をしましょうね、と話して盛り上がりました。
ほんとに実現できたらとても嬉しいですねw


そして、このブログは翌日には書き上げるつもりだったのですが、この約3時間後に北海道胆振東部地震が起きまして、MacBookProの電池切れを懸念してアップを差し控えることに。
その翌々日には電気が回復いたしましたが、各種イベントが再開されるまでは自粛しておりました。
被災された皆様の復興をお祈り申し上げます。


ちなみに停電中の様子がこちらです。

ご覧のように私達はたくましく生きておりましたので、ほとんど被害にはあいませんでした。
また札幌には行くつもりですので、次回も一緒に勉強会したいですね!
札幌の皆さん、よろしくお願いいたします!




関連リンク


Python札幌 conpass
Python札幌 github.io
PythonBeginners沖縄 conpass
PythonBeginners沖縄 助け合い所
PythonBeginners沖縄 slack(招待は助け合い所でご相談ください)
PythonBeginners沖縄 twitter

Djangoのmigrationでforeignkeyを設定する

意外とModel側と似たような書き方で思ったとおりに書ける。シンプル。

        migrations.CreateModel(
            name='ChildModel',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True)),
                ('parent_model', models.ForeignKey('ParentModel', on_delete=models.CASCADE)),
            ],
            options=[
                ('db_table', 'child_models'),
            ]
        ),

これでMulキーも付きます。
int型。
DB上のカラム名は 'parent_model_id' になる。
環境:Django2.0 Python3.6

macのクリーンインストール @ansibleで自動インスコ付き【2018/01版】

雑なメモ書きですが

OSのクリーンアップ

  • 必要なファイル等は外付けHDDなどに退避する。

今回は新規のMBPにインストールしたのでディスク消去はしていない

  • 電源起動時に、command + Rを押しっぱなしにする
  • OS X ユーティリティからディスクユーティリティを選択
  • ディスクを消去する
  • OS X ユーティリティからOS Xを再インストールするを選択
  • ソフトウェア使用許諾契約に同意する
  • インストール先のディスクを選択してインストール
  • AppleIDとパスワードを入力
  • OSダウンロードが始まり、その後インストールが開始されるので放置

  • 今は情報の転送はしないを選択
  • Macを探すは許可する
  • コンピュータアカウントを作成(iCloudアカウントは使わなかった)
  • FileVaultディスク暗号化を有効にする
  • 診断と使用状況はチェックした
  • クリーンインストールが終わったらApp storeからシステムアップデートをかける。

最新のOSをインストール

  • 新規で購入したMBPなのにHighSierraが入っていなかったのでインストール

Xcodeをインストール

  • 時間がかかるので最初にやる。App storeからXcodeをインストール。
  • インストールが終わったらXcodeを起動して規約に同意する
  • Xcodeのライセンス認証。
  • sudo xcodebuild -license

Dock

  • サイズを小さくする
  • 拡大にチェック。1/4ぐらい
  • 画面上の位置を左に変える
  • 以下をDockから消去
    Siri、Safari、連作先、カレンダー、メモ、リマインダー、マップ、写真、メッセージ、FaceTime
    Pages、Numbers

セキュリティとプライバシー

  • スリープとスクリーンセーバの解除を15分後に
  • Apple WatchでこのMacのロックを解除できるようにする → チェック入れても動かなかったので未設定

キーボード

  • キーのリピートを速く(最速)
  • リピート入力時間を短く(最短)

トラックパッド

  • タップでクリックにチェック
  • 軌跡の速さを速くする(最速)

サウンド

  • メニューバーに音量を表示にチェック

iCloud

  • iCloud、キーチェーン、Macを探すにチェックのみ

共有

  • コンピュータ名をかわいいのに変える

日付のオプション

  • 曜日を表示
  • 日付を表示

表示オプション

  • デスクトップを右クリック → 表示オプションを表示
  • アイコンサイズ 16x16
  • ラベルの位置 右側
  • 表示順序 名前

Homebrewをインストールする

Homebrewのインストール

xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta

参考サイトの情報のままだと上手く行かないのでanacondaインストールする

brew install python ---> 2.7系が入るので嫌。3系のanaconda入れたい
brew install ansible ---> pythonのフォルダにインストールしようとする
brew install caskroom/cask/brew-cask ---> エラー出る

anacondaは以下からダウンロード
https://www.anaconda.com/download/#macos

chmod 755 ./Anaconda3-5.0.1-MacOSX-x86_64.sh
./Anaconda3-5.0.1-MacOSX-x86_64.sh

確認

Python -V
Python 3.6.3 :: Anaconda, Inc.

ansibleインストール

brew install ansible

どうもこれ↓は入れなくて良い様子

brew install caskroom/cask/brew-cask ---> エラー出る

試しにbrew install cask atomと打ってみたところ行けた

Ansibleの実行

プロビジョニング用のディレクトリ作成。

mkdir .macbook-provisioning
cd .macbook-provisioning/

ansible用のinventoryファイル作成

echo 'localhost' > hosts

テキストを開き、以下をlocalhost.ymlとして保存

- hosts: localhost
  connection: local
  gather_facts: no
  sudo: no
  vars:
    homebrew_taps:
      - homebrew/binary
      - homebrew/dupes
      - caskroom/cask
      - homebrew/services
    homebrew_packages:
      - { name: readline }
      - { name: openssl }
      - { name: openssl, state: linked, install_options: force }
      - { name: git }
      - { name: wget }
      - { name: curl }
      - { name: go }
      - { name: rbenv }
      - { name: ruby-build }
      - { name: vim }
      - { name: mysql }
      - { name: redis }
    homebrew_enabled_services:
      - mysql
      - redis
    homebrew_cask_packages:
      - { name: iterm2 }
      - { name: firefox }
      - { name: google-chrome }
      - { name: google-japanese-ime }
      - { name: atom }
      - { name: skype }
      - { name: slack }
      - { name: vagrant }
      - { name: virtualbox }
      - { name: phpstorm }
      - { name: pycharm }
      - { name: datagrip }
      - { name: sequel-pro }
      - { name: postman }
      - { name: cyberduck }
      - { name: gimp }
      - { name: marp }
      - { name: vmware-fusion }
      - { name: sourcetree }

  tasks:
    - name: homebrew の tap リポジトリを追加
      homebrew_tap: tap={{ item }} state=present
      with_items: "{{ homebrew_taps }}"

    - name: homebrew update確認
      homebrew: update_homebrew=yes

    # brew
    - name: brew packageのインストール
      homebrew: >
        name={{ item.name }}
        state={{ item.state | default('latest') }}
        install_options={{
          item.install_options | default() | join(',')
          if item.install_options is not string
          else item.install_options
        }}
      with_items: "{{ homebrew_packages }}"
      register: brew_result
    - name: brew パッケージの情報保存先ディレクトリを作成
      file: path=brew_info state=directory
    - name: brew パッケージの情報を保存
      shell: brew info {{ item }} > brew_info/{{ item }}
      with_items: "{{ brew_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list }}"

    # brew services
    - name: Get currently available brew services.
      shell: "brew services list | sed '1 d' | cut -d ' ' -f 1"
      register: brew_services

    - name: Enable brew services.
      command: "brew services start {{ item }}"
      with_items: "{{ homebrew_enabled_services }}"
      when: "'{{ item }}' in brew_services.stdout_lines"

    # - name: Install bundler(インストールは成功するが、Projectによってはうまく動作しなかった)
    #   gem:
    #     name: bundler
    #     user_install: no
    #     executable: /usr/local/bin/gem

  handlers:
    - name: run fc-cache
      shell: fc-cache -vf

Homebrew Caskオプションを設定

echo 'export HOMEBREW_CASK_OPTS="--appdir=/Applications"' >> ~/.bash_profile
source ~/.bash_profile

作成したPlaybookを実行する

ansible-playbook -i hosts -vv localhost.yml

※MacBookPro 2017 Mid 15インチ (High Sierra)で動作確認済み

SettingWithCopyWarningメモ

こんな感じでdataframeにseriesを入れようとするとエラーが出る

df2['time'] = s1

表示されるエラー文はこんな感じ

/Users/Suzuki_Yasuharu/miniconda3/lib/python3.6/site-packages/ipykernel_launcher.py:3: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  This is separate from the ipykernel package so we can avoid doing imports until

対策

# こう↓するとエラーが出なくなる
pd.options.mode.chained_assignment = None
df2['time'] = s1

消費メモリを小さくするためのワーニングですんで、そのこと理解した上で使いましょー(・ω・)ノシ


参考サイト
indexing-view-versus-copy(エラー文に書いてあるページ)
pandas 0.21.0 documentation
How to deal with SettingWithCopyWarning in Pandas?


ちなみにこちら↓のようにconcatするとワーニング出ません(なんかちょっとやりたいことがが変わってしまう気はしますが)
python pandasでの列(column)へのSeriesの追加


要素1つ1つを選択しているのならこちらのやり方が正です。
Pythonの覚え書き(DataFrameのSettingWithCopyWarningの対処方法)