quattro_4's diary

また同じ過ちを繰り返すと気付かんのか!?

Macがkernel panicで予期せず再起動していたのを直した話

使用しているマシーンはMacBook Pro (Retina, 13-inch、Early 2015)

症状としては

  • ある日から突然、1日に2〜3回予期せず再起動するようになった
  • 画面が一瞬(数秒)止まる、トラックパッドが反応しなくなる
  • 放置していても起きていることがある
    • 負荷が高いと起きるとは限らない
  • 落ちる時のアプリケーションに規則性はない
  • OS X El Capitan 10.11.6
    • 過去2週間で大きなアップデート、インストールは無し

直した方法の結論から言うと「NVRAM/PRAMのリセットを行う」⌘⌥+P+R
参考にしたのは検索上位で見つかった次の記事
Macがカーネルパニックを起こした時に試したい8つの対処法 | gori.me(ゴリミー)

今回の問題について、いろいろ検索で調べて書かれている症状と比較して、自分の症状で特徴的だったのが、
(1) カーネルパニックが起きる時のタイミング、アプリケーション、ログの内容などに規則性が無かった

(2) 起動音を消すスクリプトを使用していて、これが電源を落とした時などに動作している
El CapitanやSierraでMacの起動音を確実に消す方法

直ってみれば、起動音消すのを試した時に、別の方法でnvramを変更する方法もあったので、このスクリプトが影響して壊れる可能性も十分ありうるなと思った


今回学んだことは、Appleのフォーラムなど読みにくい情報も多いが、複数の情報から理論的に考えていけば、正確な情報は見つけられると思った
買い替えやApple Store持ち込みをする前にできることはだいぶある

"PRAMクリア Appleの電話サポートでも、対策の一つとして一番初めににこれを勧められました。簡単にできる"
(再起動時の画像を検索したついでで見つけた記事)
Macのカーネルパニックが未だに頻発。解決の為に自分で試した6つ事! | [毎朝8時更新]Re:birthDesign Blog

他に見つけた正しく書いていそうなサイト(SMCはPRAMとは別物)
2017年2月からMacBookタイプのSMCリセットが変わった!? - Apple In

OSインストールはPRAMをリセットしない
"A fresh OS install won't reset the hardware, SMC or PRAM."
macos - Does clean install reset everything, including SMC? - Ask Different

規則性がないカーネルパニック(occasionally resulting in a kernel panic, random kernel panics)
Bad NVRAM NVRAM consists of a small amount of memory dedicated to storing important settings for the way Mac OS X interacts with hardware components. For instance, one NVRAM variable tells the system how much primary RAM to recognize.
These settings can sometimes become correct or otherwise problematic, occasionally resulting in a kernel panic. As such, clearing NVRAM can prove a quick fix when the cause of random kernel panics or particularly kernel panics at startup proves elusive. (see "Kernel panics at startup or shutdown" section below).
Tutorial: Avoiding and eliminating Kernel panics - CNET


やったこと、今回効果無かった

解決した方法

  • NVRAM/PRAMのリセット

なぜか「NVRAM/PRAM」は違うと予想してスキップしてしまい、無駄な作業も多かったがクリーンインストール復元とか、買い替えを余儀なくされた時の良い予行練習になった
DropboxGitHubに必要なものを全部上げておくことが重要と認識した

Rubyでスクレイピングする話をしました “Web Scraping with Capybara”

trbmeetup.doorkeeper.jp

Kindleの情報集めるやつ kindle_manager
Amazonの注文履歴を集めるやつ amazon_order
を作ったので興味ある人は試してほしい

特にamazon_orderは誰でも使えると思う
自分の過去のAmazonでの注文履歴10年以上を合計したら300万超えてて反省の余地ありそう

次のような感じで簡単に集計出せる

f:id:quattro_4:20170708220254p:plain

あとKindleも次の感じで概算できて、全然読まないくせに無料のコミック1巻を買いまくっているのをやめられないでいる
反省すると無料本や安売りセールの本は出費は問題ないが、
無駄に買うことで本来読むべき本が埋もれてしまっているのが大きな問題

f:id:quattro_4:20170708220333p:plain

今年やったこと

やらなかったことはブログを書かなかった


何をやっていたかというと
主に分析回り

形になったものに関連するものを挙げると

  • Exploratory
    • dplyr
  • shiny + shiny server
  • RStudio
    • RMarkdown (knitr)
  • Jupyter
    • pandas

自分の扱っているテーマは、世間的に盛り上がっている大きいデータとは違いあまり大きくないので、Machine Learningなどは興味はあるが、深くやる機会がない


形にならなかったが少し触って使い方は少し分かったもの

  • caret
    • RandomForest
  • scikit-learn
  • tensorflow
  • mecab
  • 画像処理

ずっとやってみたいが全く手をつけられていないもの

普段は、環境に恵まれているのでRails周り(Rails 5含む)を中心に手を動かしている



あまり思想的なことを書くことはしないのだが、いろいろ思ったこと(分析周りの雑感)


実感した事は、プログラム畑の人が分析スキルを身に付けようとする場合、ツールの使い方を知る事は大して難しい事じゃない
難しい事は考え方

分析において、新しい価値を生み出すには、まず第一に「考え方」と思うことが多々あった
その次は結局、その新しい考えを実現しようとすると、それに合わせたデータを作る必要が出てきて「データ加工」が重要と言うか、ただひたすら手間と時間がかかる
そのデータ加工は半分くらいの頻度で微妙に間違っている箇所があったりして、何度かやり直すことになる
そもそもデータが無くて収集から始めなければいけないこともある
結果が出た後の検証(測定)も大事


「考え方」って漠然としているけど、具体例を一つ挙げると、
有名なtutorialのネタでTitanicの分析があるが、その模範解答の中に名前からFamilyを導き出すものがある
Titanic: Feature Engineering

模範解答のない身の回りの分析のデータに対して、そういった発想を思いつき、それを実際に加工・分析・検証できることが仕事で使えるスキルだと感じている


ここまでの話は条件付きというか前提がある
お金という成果で考えた時、前提として大きく
0を1にしたいのか
100を105にしたいのか
に分けて考えるのが良いと思っている

自分が言っている「考え方」というのは0を1にする方の話


ツールをいろいろ使ってみるとか、ツールの性能向上が役に立つシーンはもちろんあるが、それはすでに利益を上げていてデータがある企業に必要な事
ビッグデータとかディープラーニングとか流行りで良く聞くものがあるけど、そのほとんどは100を105にする方に適した手法だと思う

数だけで言えば、そもそも分析っぽいことをほとんどしていない企業が分析を活用してみたいという需要が結構あると思う(予算は小さい)
そういった比較的小さい企業の経営層が分析にお金を出すと決めた際に、
100を105にするための手法を売りつけられて、肌感覚では効果はあったような気がするみたいなことが多いんじゃないかと想像してる
(実際には測定が足りずに証明出来ないか、効果はプラスだが微妙なレベル)


個人的にいろいろやってみて思うことは、こうなったら改善するんじゃないかという仮説は5つくらい思いついたら、そのうち本当に効果があるのは1つくらいしかない
他はあったとしても微々たるもので、個人でやる分には良くない結果を捨てる判断はできるのだが、おそらく会社とかでやると、コストがかかっている建前もあって考えなしに導入することになる
こういった効果がわずかだが、メンテナンスコストを増やすものが技術的負債になるんだなと思う

リカバリ方法は無いわけではなく、効果の薄い機能・サービスを削除すれば良い

効果が無いって分かることも、無駄なことではなくて、すごい価値のあることだと思う

確定申告のまとめ - フリーランスエンジニアの確定申告

まとめ
各トピックへのリンクと一言

確定申告書の作成 - フリーランスエンジニアの確定申告

ここで書いている情報の注意事項についてはフリーランスエンジニアの場合をまず見てください

freeeやっぱすごいなと終わってから思ったのは、確定申告の書類作成の部分だと思った
質問に答えていくと書類が作成され、提出までにやるべきことなどの指示も画面に提示してくれる

公式の動画があるのでそれを見ると良いと思う
具体的なfreee上の画面は27分あたりから

まず取引の登録が終わっているいないに関わらず、確定申告書類の作成を実行してみると良い
実行して進めたら後から直せなくなるとかいうことはなかったし、むしろ、申告書出力、見直す、取引を修正するの繰り返しになる

質問に答えるだけでダメだったポイント

源泉徴収票を見て入力する質問があるけど、給与を前提としている質問で、自分の場合は前職の分があったのでそれを入力した
その後、進めていくと支払うべき税金が10万以上とかになっていた
が、これは結果的に間違った数字だった

問題としては、個人事業として収入を得ているが源泉徴収はある場合の源泉徴収額を入力する流れが欠けていた
つまり、前職の給与の源泉徴収事業収入での源泉徴収の2つが必要だった

解決方法は

  • 「直接編集」に行き、「所得の内訳」に新しく行を手入力で埋める
  • 所得の種類は「営業」
  • 重要となる源泉徴収税額は、取引先に支払調書を発行してもらってその金額を埋めるようにする

参考:所得の種類

正しく入力したら、最終的な税額は10万円以上還付されるという結果となった
一般的に、収入のほとんどが源泉徴収されている場合は、ほぼ間違いなく税金を払いすぎていると考えて良い
なので、計算された還付される税額がない場合は間違っているので見直した方が良い


今確定申告作成時の質問の部分を見直すと、複数の給与がある場合は「直接編集」で入力という注意書きはある
ただ、あくまで「給与」+源泉徴収票という前提で説明がなされているので、freeeの説明には改善の余地があるかと思う

参考:源泉徴収の入力

手作業に比べて何がすごいのか
  • 計算式とか自動でやってくれる
    • 自分で調べるだけだったら自信ない
  • 書類の種類がけっこういっぱいあり、手で埋めるとなると大変な気がした
    • 書類用意しなくていい
    • 数字を入力し間違える可能性が減る
  • 提出後の税務署から見た信頼度は正直高いと思う

細かいけど寄付の控除一つとっても、少し複雑な計算式があり、通常は2000円マイナスするところとか大した額じゃないけど実際間違えてたのでそういった細かいところに気付けた
手作業ならおそらく間違えて申告していたと思う

freeeはおまかせ
Railsと同じ


自分はもう提出したので、正直このブログのまとめが一気に面倒に思えてきた
ただ、大きく金額に影響するようなポイントはここまでですべてまとめたので良しとする

細かい部分でわからないところが出てきたら自分で調べてください

取引の登録の仕方(経費・支出) - フリーランスエンジニアの確定申告

ここで書いている情報の注意事項についてはフリーランスエンジニアの場合をまず見てください

経費の種類については、どんな経費があるのか参照
口座についての説明や売上の登録については取引の登録の仕方(売上・収入)を参照

操作方法などはfreeeの公式の動画も参考になると思います
www.youtube.com

経費、プライベートの入出金の登録

ユースケースで見ていく
事業主借(収入)についてもここで説明します

事業用(=freee上で口座登録している)①銀行②クレジットカード③現金
プライベート用(=freee上で口座登録していない)④銀行⑤クレジットカード⑥現金
がそれぞれあるとします

事業用銀行口座
  • 生活費を引き出した -> 事業主貸
  • 経費にならないものの引き落とし -> 事業主貸
    • 保険料とかいろいろ
  • 経費になるものの引き落とし -> それぞれの勘定科目
    • 家賃、水道、ガス、電気などの引き落とし
  • プライベートのクレジットカードの引き落とし -> 事業主貸
  • [収入] 口座にお金を預け入れた、または振り込んだ -> 事業主借
  • [収入] 利息 -> 事業主借
    • 完全に事業としてしか使われていない状態なら事業収入とする場合もあるかも
    • 借入金とか絡む場合も?
④プライベートの銀行
  • 生活費を出し入れした -> freeeに登録しない
    • 他に経費にならないものすべて
  • 経費になるものの引き落とし -> 手入力で「プライベート資金」を選択し、それぞれの勘定科目
    • 家賃、水道、ガス、電気などの引き落とし
    • テンプレートを使うと良い
⑤プライベートのクレジットカード

経費の多くはこのクレジットカードが使われているものと想定

  • 経費になるものを使った -> 手入力で「プライベート資金」を選択し、それぞれの勘定科目
    • 日付(発生日)はクレジットカードの明細の日で良い
    • 引き落とし日とか振替とか全く悩む必要がない
  • 経費にならないものに使った -> freeeに登録しない

手入力でも慣れてくればそんなに苦にならないはず
テンプレートを活用すると良い
件数が多ければ、ファイルアップロードも検討

②の事業用を運用していたとしても、後で経理がわけわからなくなったのであれば、freee上での口座の登録を解除し、⑤のプライベート用と同様に処理すれば良い

⑥プライベートの現金

freee上の「現金」口座は事業用の現金(③)であり、あなたの財布のお金とは違う
財布のお金はプライベートの現金(⑥)という概念で考えれば良い
基本的にはプライベートの銀行、クレジットカードと何ら変わらない

  • 経費になるものを使った -> 手入力で「プライベート資金」を選択し、それぞれの勘定科目
    • 日付(発生日)は領収書から
  • 経費にならないものに使った -> freeeに登録しない

現金手渡しによる事業収入がある場合にはfreee上の「現金」口座(③)を使う機会があると思う

⑥に③が混ざることにより経理が混乱するので③を使わないことでシンプルになる

事業用クレジットカード

ヘルプを参照してください
クレジットカードの利用内容を記帳する(一括払い) – ヘルプセンター

事業用の銀行から後日引き落としがあった場合、銀行口座の取引で引き落としに該当する取引に対して「口座振替・カード引き落とし」でクレジットカードを選択して処理します

銀行とクレジットカードの明細

いろいろやってみて、銀行とクレジットカードの明細の情報の分かりにくさに少し苦労した
幾つかは明細行をもとに次のように調べ直さないといけなかった

  • 金額からメールを検索(GMail最高)
    • さらに日付で検索して特定
  • 明細行に知らない(店・業者の?)名前などがあるとそれをネットで検索

この辺にかかる手間は自動同期しても解決しないんじゃないかと思った
普段メモを取っておいたり、月次で忘れないうちにまとめたりするのが良い

あと、明細特定ですごい良かったのがPayPal
プライベートのクレジットカード+PayPalの場合のデータをPayPalから情報を取得してアップロードしやすくするとかいいかもしれない


登録の仕方がわかったのであとはひたすら明細を集めて入力するだけ

自分は最初freee上の登録は間違ったらごちゃごちゃになって元に戻せないんじゃないかと心配して、各項目について調べて完全に理解するまであまり登録作業が進まなかった
でも、結局はいろいろ間違っていたり、特別な処理をしたいケースなどが後から見つかって、最初に登録した取引も結構修正が入った
修正、削除などが入ってもデータは別にごちゃごちゃにはならなかった
登録作業を進めてみてはじめて理解できる部分も多々あった

事業用)現金口座というのが理解するまで紛らわしかったな
自分の財布の金=事業用現金(③)と勘違いしていたことで全く理解が進まなかった
→自分の財布の金=プライベート現金(⑥)

あと、最初口座の自動同期とかいろいろわっと全部入れておけば、家計簿的な感じで役に立つんじゃないかと勘違いしていた
→全部残高とか含めきっちりする必要があると考えた→わけわからなくなる→嫌になる
家計簿と事業の経理は同じシステム上で扱うものじゃない

繰り返しになるが、freee上で操作していくことで経理を学んでいくことができる

取引の登録の仕方(売上・収入) - フリーランスエンジニアの確定申告

ここで書いている情報の注意事項についてはフリーランスエンジニアの場合をまず見てください

ここまでいろいろ書いてきたが、それだけでは何をどうすれば良いのか正直わからない
時間がかかるのは、取引を登録していくことと、分からないことを調べること
なので、ここでは実際の作業とも呼べる取引の登録について簡単に説明する

細かい言葉などは基本freeeを使用する前提で説明する
操作方法などはfreeeの公式の動画も参考になると思います
www.youtube.com

取引の登録の仕方

経費については、どんな経費があるのかでだいたい説明した
あとは、明細などが手元に揃っていてば、時間のかかる取引の登録作業に取り掛かることができる

口座

取引の登録で素人が迷うものはまず「口座」という考え方

深く考えずに次のルールに従って登録を進めていけば良い

口座とそれぞれの使い方について

  • 現金
    • 基本使用しない
  • 〇〇銀行 (事業用の銀行口座)
    • freee上で口座を登録し自動同期する
    • すべての売上がこの口座に入金されるものと想定
  • 事業用のクレジットカード
    • 前述している通り非推奨、または自動同期はせず経理上はプライベート資金に含める
  • プライベート資金
    • 上記以外のものは全て基本的にこれで登録
売上の登録で最も大事な事

収入の登録の説明の前に、売上の登録で大事な事を書きます

金額、源泉税などは当たり前のように大事なのですが、「発生日=取引日=売上計上日」が重要です
freee上では3通りの表現があるみたいだが、すべて発生日を表していると思われる

例えば、12月に働いた分を1月の頭に請求書を出したとします
他を調べてもらえば分かりますが、「発生日」は12月の最後に働いた日(例えば12/28)などにする必要があります
何も考えずに取引データを作ってしまうと、発生日が1月の頭の日付になってしまい、確定申告の税額などを大きく間違ってしまうことになります

受託などの場合はたしか納品したとか契約が発生したとか調べてもらえば分かりますが、少なくとも請求日ではないです

freeeの請求書作成機能では追加情報というところに「売上計上日」が折りたたまれて気づきにくい

自分は、確定申告出力機能を使う頃まで気付かず、間違った登録をしていました

収入の登録

いざ説明しようとしたが、自分はfreeeの請求書作成の機能を使ったらそこから取引が自動登録され、それでうまくいったので、違うパターンはよくわかりません
調べてください

自分の場合を例にとると、月次請求で源泉徴収ありでした

手入力にした場合、共通すると思われる部分をまとめると

  • 「収入」「未決済」を選択
  • 「期日」- 請求の支払い期日
  • 「取引日」- その請求について最後に働いた日、納品日など
  • 「勘定科目」- 売上高
  • 「金額」- 税込みの金額
  • 「取引先」「備考」など入力し分かるようにする

請求書の明細で行が分かれるものは、1行目のメインの金額を登録後、「➕行を追加」して追加登録していく(勘定科目:売上高)

消費税は勘定科目を選んだ時に自動でセットされるのでそれに従えば良いと思います
税込みか税抜かは会計ソフトの設定によってやり方が変わるかもしれません

源泉税

源泉税がある場合は「預り金・支払手数料を追加」でマイナスを意味する「▲」として登録(勘定科目:事業主貸)
源泉所得税のタグをつけておくと、年末に合計額を集計しやすい

交通費

請求の中に交通費を含んでいる場合、その勘定科目は売上高で良いと思います
源泉税はそれを含めて計算すれば良いと思います

決済

後日入金されたら、「➕決済を登録」で金額を確認し日付を入力すれば良い
事業用の口座を自動登録しておけば、「自動で経理」機能の助けを借りられます

現金の口座

自分は1度も登録に使うことはありませんでした

請求したお金の受け取りが手渡しだったりした場合に「現金」の口座は登場するのかな?
その後、現金の分はそのまま「現金」からの支出に割り当てるか、「プライベート資金」「事業用銀行口座」に移動するのかどうか
銀行口座の登録をしない場合は使うことがあるかも?

freeeで請求書作成機能から登録された取引の修正

自分は「発生日=売上計上日」が間違っていることに後から気づいて修正した
修正方法が少しわかりにくかったのでメモ

「取引の一覧」などの画面からは売上の発生日やその他を修正できない
なので、請求書の一覧へ行き、編集から「売上計上日」を変更して保存

最初、修正方法が全然わからず、決済を削除してみたり、登録済みの取引を削除して、請求書画面から再作成したり色々苦労した

聞いたところでは請求書の機能はMisocaの方が良いと言っていました
今調べたらfreeeとの連携もできるみたい

参考:freeeの請求書編集画面の様子(売上計上日)
f:id:quattro_4:20160224164203p:plain


ちなみに上記の取引登録は調べたわけではなく、freee請求書作成機能を使ったら勝手に取引登録されたので、勘定科目とか何に該当するかとかを後から学んだ
入金期限(請求書の決済期日)が近づいた時のメール通知とか、消し込みもすごい役立った
請求(登録)と入金(決済)とそれぞれの日付の処理とか後から理解が深まった
freee上でとりあえず操作していくことで経理を学んでいくことができる