2018-02-06
_ Zswapを有効にして少ないメモリを乗り切ろう
以前、書いたZramを有効にして少ないメモリを乗り切ろうの続編です。
某所で少ないメモリのマシンをなんとか頑張って使う話が出てたので書いておきます。
参考
- Enable ZSwap to increase performance - Tips, Tricks and Tutorials / Tips & Tricks - Ubuntu MATE Community: https://ubuntu-mate.community/t/enable-zswap-to-increase-performance/11302
- Zswap - ArchWiki: https://wiki.archlinux.jp/index.php/Zswap
Zswapの設定方法
まずはカーネルがZswapに対応しているか調べます。「CONFIG_ZSWAP=y」と表示されれば有効になっています。
$ cat /boot/config-`uname -r` | grep -i zswap CONFIG_ZSWAP=y
grubにZswapを有効にするカーネルパラメータ設定を書き込みます。
$ sudo editor /etc/default/grub
# quietのあとにzswap.enabled=1 zswap.compressor=lz4を追記 GRUB_CMDLINE_LINUX_DEFAULT="quiet zswap.enabled=1 zswap.compressor=lz4"
パラメータは「zswap.enabled=1」はZswapを有効にする、「zswap.compressor=lz4」は圧縮形式をlz4に指定するという意味です。 追記したらgrubの設定をアップデートします。
$ sudo /usr/sbin/update-grub
続いてinitramfsでlz4カーネルモジュールを読み込む設定を追記します。 こちらも追記したらupdate-initramfsでアップデートします。
$ sudo sh -c "echo lz4 >> /etc/initramfs-tools/modules" $ sudo sh -c "echo lz4_compress >> /etc/initramfs-tools/modules" $ sudo /usr/sbin/update-initramfs -u
これでマシンを再起動すれば終わりです。
設定の確認
再起動してsysfsの/sys/module/zswap/parameters/enabledにYと出ていれば有効になっています。
$ cat /sys/module/zswap/parameters/enabled Y
dmesgかjournalctlに、こんな感じの行が出ていればlz4が使われています。
# journalctl -k | grep -i zswap 2月 06 14:30:48 mate kernel: zswap: loaded using pool lz4/zbud
まとめ
当たり前の話ですがZswapを有効にしたからといってメモリが増えるわけでもなく、メモリが少なくなったらいきなり落とされたりや固まってしまうのが、操作できるぐらいで緩やかに耐えてくれる感じになるだけです。
とはいえ、最近はメモリも高騰してて買うのも躊躇しますしやっておくと安心感にはつながるので試してみてはいかがでしょうか。
2018-02-12
_ 個人事業主になって初めて青色申告をすることになったのでメモとTips
お願いと免責事項(2020/3/1追記)
GnuCashの利用について質問のメールを送ってこられても私は税理士では無いので答えられません。心配をするのであれば税理士や税務署などとご相談の上、ご自分の判断でお使いください。また、nofuture.tv内の記述を読んで実行したことにより、なんらかの被害を被ったとしても筆者は一切、責任を負いませんので、あらかじめご了承ください。
もうすぐ確定申告ですね。今年度から個人事業主になり青色申告をする必要がありますが、わからないことだらけだったのでメモしておきます。
国税庁の記帳指導はぜひ受けましょう
青色申告の申請をすると国税庁から「記帳指導を受けますか?」というお知らせがきます。 これは無償で受けられるのでぜひ受けましょう。
内容は年によって変わるそうですが、自分が受けた内容は全4回のうち前半2回は座学での会計ソフトの使い方講座、後半2回は実際のデータを元に税理士さんの直接指導でした。
前半2回は某会計ソフトの宣伝みたいなもので、まったく役に立ちませんでしたが、後半2回の税理士さんとの指導はとても役に立ちました。
自分のような成り行きで個人事業主になってしまった人にとって税理士さんを探すのは大変ですし、お金が儲かってるならまだしも売上がない状態でお金を払って相談するのはしんどい事ですが、それが無償でしてもらえるのは大変ありがたいので、これはぜひ活用するのが良いと思います。
会計ソフトはGnuCashでも大丈夫
複式簿記で帳簿をつけるにあたりWindowsの会計ソフトを試したりクラウドの会計サービスを試しましたが、どれもなじめず最終的にGnuCashを使って記帳しました。
税理士さんの記帳指導には、GnuCashの帳簿をドキドキしながら見せて指導を受けましたが「最終的な確定申告書は国税庁のページで転記して作る必要はあるけれど帳簿自体は必要な情報はあるので問題なし」との事だったので、Linuxユーザーの人は安心してGnuCashで帳簿をつけてください。
帳簿をつける前に領収書を勘定科目ごとに分ける。そして支払いを現金とそれ以外に分ける。現金以外の支払い取引データをダウンロードしておく
これは「個人事業者の【超簡単】経理」という本の受け売りですが、帳簿をつける前に領収書の整理と取引を現金とそれ以外に整理しておくと、GnuCashの入力で迷うことが少なくなります。
具体的な整理方法は、事業に関係のない領収書は捨てて事業の領収書をざっくり勘定科目で分ける。支払いについては現金とそれ以外に分ける。この2点だけですが、これをやっておくだけでも入力効率がかなり変わってきます。
本では、そこから会計ソフトに手入力していきますが、自分は極力手入力を省きたかったので銀行口座やカードなど現金以外の支払いの取引データをダウンロードしておいて、それをGnuCashに取り込むことにしました。
税理士無しでもできた! 個人事業者の【超簡単】経理
ぱる出版
¥1,650
GnuCash: 初めてのGnuCashはテンプレートから開く
GnuCashを初めて起動すると初回起動ウィザードか勘定科目のない真っ白な画面が起動します。
慣れていないと、その画面で何を操作していいのか途方に暮れてしまいますが、後述のGnuCash勘定科目テンプレートをダウンロードしておいて、そのテンプレートからGnuCashを起動すると初回起動ウィザードを飛ばしてかつ勘定科目がある画面が最初に表示されるので途方に暮れずに済みます。
GnuCash: 個人事業主向けGnuCash勘定科目テンプレートをダウンロードしておく
そのテンプレートですが、個人事業主向け勘定科目ファイルを作られている方がいらっしゃいます。
- GnuCash に勘定科目を登録する - GNU の青色申告: https://gnucash.jp/register-accounts-to-gnucash.html
このページの一番下にファイルが用意されているので、IT系エンジニアならば、これのエンジニア用を使って足りない科目は自分で追加する形で利用すると混乱することもなく記帳が始められると思います。
帳簿をつけるとき勘定科目で悩んでこのテンプレートを見つけたのだけれど、オープンソース的な振る舞いとしては、こういった野良勘定科目テンプレートではなく、日本の個人事業主向けに作ったテンプレートを本体に取り込んでもらって初回起動ウィザードでテンプレートを選べばサクっとできることが理想なので時間ができたら作って取り込んでもらおうかな。
- Account Hierarchy Template - GnuCash: https://wiki.gnucash.org/wiki/Account_Hierarchy_Template
GnuCash: 最初にメインの銀行取引データを取り込む
事業用と個人用のお金をキッチリ分けてる人は悩まずに帳簿がつけられると思いますが、自分も含めそうでない人は、どうやって分ければよいかで悩むはずです。そういう人は最初にメインバンクのデータを取り込みます。
理由は、お金を分けていなければ個人のお金から事業で使ったお金を振り分ける必要がありますが、銀行口座を中心に回しているならば、そこから選り分けていくのが一番手っ取り早いはずです。
取り込んだばかりの口座データは残高が派手に狂っていますが、元入金にその銀行の1月1日の開始口座残高(一番最初の出金とその出金後の残高を合計する)を入れると正しい額になります。
取り込んだデータは科目が設定されておらず「貸借不一致-JPY」となっているので、これを事業のお金はそれぞれの科目へ、個人のお金は「事業主貸」「事業主借」科目を使って外に出せば大体のお金の流れが見えてくるはずです。
メインバンクのほかに事業で使っている銀行やカードがあれば、それぞれインポートして同じように科目で振り分けをし、終わったら領収書を入力すれば、ほぼ出来上がります。素晴らしい!
補足
税理士さんからは「(あなたは)売上が少ないし帳簿に一括して取り込むと個人情報も含まれてしまうので、表計算ソフトを使って実際の取引だけまとめてもいいですよ」との話もありました。自分の場合は、自分が使ったお金の全体も把握したかったので、こういう形を取りました。あくまで、これは一例ということでお願いします。
GnuCash: GnuCashで銀行CSVデータをインポートするときの注意
銀行からダウンロードできるCSVデータは、文字コードと改行コードがShift JIS/CRLFになっているのでGnuCashに取り込むにはnkfやiconvを使ってUTF-8/LFに変換しておく必要があります。 そして銀行はデータダウンロードの期間が極端に短い銀行があるのでマメに取り込んでおく必要があります。
今回、OFXではなくCSVを使って取り込んだのは、ある銀行の1年間のデータを取り込もうとしたところ直近の取引データ以外はPDFしかダウンロードできず、PDF記載のデータを取り込むにはテキストデータに変換、加工して取り込む必要があったからでした。
課題としては、今回はCSVを使ったけれどOFXを使ったほうがいいかもしれないことや、銀行・カードの情報を一括してダウンロードできる「マネーサウンド」を使ってまとめてデータを取得してインポートしておくといいのかなと思いました。
GnuCash: 「貸借不一致-JPY」は用途不明のお金なので消す
複式簿記は難しいように思いますが、借方(左)と貸方(右)のバランスが取れれば良いので実は簡単です。
GnuCashの場合、片方の科目にしか金額が入ってなく左右のバランスが取れていないお金は「貸借不一致」という仮の科目に入ります。 ということは「貸借不一致」科目を正しい科目に設定してあげればバランスが取れて自動的に帳簿ができあがるということです。
具体的には、インポートした銀行やカードの科目を開くと「資金移動」フィールドに「貸借不一致」と並んでいます。これをクリックしてリストから正しい科目を選ぶと、選択した科目が同じ金額だけ上がるので左右がそろいます。 あとは、これをポチポチ繰り返して「貸借不一致」を消せば帳簿ができあがります。
この時、注意しなければいけないのは科目に入れるのは事業に使ったお金だけです。個人で使ったお金は「事業主貸」、逆に個人のお金が入金された時は「事業主借」科目を使って帳簿の外に出してください。 どうしてもわからないお金は、おそらく個人で使ったお金なので「事業主借」「事業主貸」で消してください。
GnuCash: 期首残高(元入金)の現金はゼロのままでいい
記帳を始めて「最初の手持ちの現金はわからないけれど、どうしたらいいんだ」と手が止まっていましたが、ここはズバッと現金ゼロで始めてください。
そのままつけていくと派手に数字が派手に狂っていきますが、大体の狂う原因は、上でも書きましたが既存の銀行口座を利用している場合の残高なので、ここでGnuCashの「元入金」科目に「資金移動」には利用している銀行口座、その銀行口座の1/1残高を「増加」分として入れれば金額は合うはずです。
それ以外のところで狂う事は無いはずですが、大体は1/1時点のお金が違っているので金額が狂うはずなので確認をしてみてください。
GnuCash: 個人のお金は「事業主借」と「事業主貸」で調整する
個人事業主で使う勘定科目に「事業主借」と「事業主貸」があります。
「狂った現金の残高を『事業主借』と『事業主貸』で調整するというのはどういう意味?」と思っていましたが、この科目は個人のお金を分けるためにあるとわかってからスッキリしました。
自分のイメージですが、帳簿は「事業さん」とします。そして自分自身である「個人(事業主)さん」がいます。 その事業さんと個人(事業主)さんの二人の間でお金のやり取りをするための勘定科目が「事業主借」と「事業主貸」である。そう理解してからストンと腑に落ちました。
「事業主借」と「事業主貸」という科目もこういうイメージに置き換えると迷わなくなりました。
- 事業さんの口座に個人(事業主)さんのお金が入金されたら、事業さんが個人(事業主)さんから借りているので「事業主借」
- 事業さんの口座から個人(事業主)さんに出金したら、事業さんが個人(事業主)さんに貸しているので「事業主貸」
最初の「現金残高はゼロでいい」というのは、現実の借金はないけれどマイナスになったお金はどこから持ってきているかを考えると、それは個人(事業主)さんのお金です。 実際、個人(事業主)さんのお金から出しているので、帳簿上はマイナスになっているお金は事業主科目を使って調整できる。ということでした。
GnuCash: クレジットカードは科目を2段階で移動する
現金で物を購入すると「現金」と「購入した物」の科目だけでわかりやすいのですが、クレジットカードを使って物を購入した場合はクレジット会社を間に挟むので2段階で移動します。
具体的には、購入確定の時点は購入した物の科目をクレジット会社が立て替えて払うので負債として「未払金」科目を使います。 続いて、引き落としはそのクレジット会社の「未払金」科目に対して「銀行」科目から払います。
給与所得は帳簿に入れない
自分は大学で非常勤講師もやっていますが、講師の仕事は給与としてもらっています。
この給与所得は帳簿に入れるのか悩みましたが、確定申告書は給与所得を別に書く欄があるので入れる必要はありません。 銀行口座に入ってきた給料は「事業主借」を使って帳簿の外に出します。
_ レイアウトを崩さずPDFをテキストデータに変換するにはpoppler-utils付属のpdftotextを使う
銀行が出している取引明細PDFをテキストに変換するには、poppler-utilsに入っているpdftotextに「-layout」オプションをつけて変換するとレイアウトを崩さずにテキスト化できます。
大量にある場合はこんな感じで流し込みます。改ページを削除する「-nopgbrk」オプションはお好みでつけてください。
$ ls (PDFファイル名) | xargs -n1 pdftotext -layout -nopgbrk
テキスト化した後はsedやawkで加工したり、LibreOffice Calcで読み込んで利用する時は区切りを固定長で幅を指定して読み込むといい感じに読み込めます。
2018-02-17
_ 古い無線LANアダプタはファームウェアのバグで「ネットワークインターフェイスの新しい命名方法」のデバイス名を使うとネットワークに接続できない
Debianで「古いBuffaloのUSB無線LANアダプタでネットに繋がらない」という相談を受けました。
この問題の原因から書くと古いチップの無線LANアダプタはファームウェアに問題があり新しい命名規則を使ったネットワークインターフェイスでは接続できないそうです。
- dhcp - "aborting authentication by local choice (Reason: 3=DEAUTH_LEAVING)" when trying to connect to wifi - Unix & Linux Stack Exchange: https://unix.stackexchange.com/questions/386925/aborting-authentication-by-local-choice-reason-3-deauth-leaving-when-trying
家にあったBuffaloのWLI-UC-GNM(Ralink RT8070)で試すと見事にそれに引っかかり、アクセスポイントを選択してパスワードを入力しても認証で勝手にコケるという症状に出ていました。
解決方法としては、古いネットワークインターフェイス名に戻すと使えるようになります。
- PredictableNetworkInterfaceNames: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/#idontlikethishowdoidisablethis
リンク先に書いてある古いネットワークインターフェイスに戻す方法は2つあり両方とも書きますが、実行するのはどちらか片方だけでよいです。
解決方法1: シンボリックリンクを張って無効にする
以下のようにシンボリックリンクを貼ります。
$ sudo ln -s /dev/null /etc/systemd/network/99-default.link
USB無線LANアダプタを抜き、再度挿し直します。
解決方法2: カーネルパラメータ「net.ifnames=0」を加えてマシンを再起動する
/etc/default/grubを編集して「GRUB_CMDLINE_LINUX_DEFAULT」に「quiet net.ifnames=0」を追加します。
$ sudo editor /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0" ←「net.ifnames=0」を追加
update-grubを実行してgrubを更新します。
$ sudo /usr/sbin/update-grub
PCを再起動します。
2018-02-18
_ サボタージュマニュアルがProject Gutenbergで公開されていた
以前書いたサボタージュ・マニュアルで国を潰そうの続き。
CIAのサイトでPDFは公開されているけどテキスト化したいなと思って検索したらProject Gutenbergでとっくに公開されてた。
- Simple Sabotage Field Manual by United States. Office of Strategic Services - Free Ebook: http://www.gutenberg.org/ebooks/26184
著作権は消滅しているしパブリックドメインで翻訳するといいかなー。
2018-02-20
_ みんながSNSを使う理由は全知全能感を得たいから
ふと思ったけれど、SNSを使う理由は全知全能感を得たいからではないかと思う。
SNSでつながれば、なにもせずに友達の情報が入ってくる。友達以外の情報も。あいつがあんな事をやっている。こいつはこんな事をしている。みんなの知識を集めればなんでもできるぞ。これぞ集合知だ!(古いけど)
使っている人が皆、善人であるならばとても素晴らしいけれど、実際には悪意の扇動者がウソを撒き散らすスピーカーにしかなっていない現状で、あんたが得ている全知全能感は幻で実はガラクタの集まりじゃないの?
と、そういうことをコーヒーのお湯を沸かしながら思っていました。