Fedora でハイバネーションを使う

Posted on 2024/04/16 in tech • Tagged with fedora, systemd

tl;dr

ハイバネーションを使うなら素直に zswap を使えないか検討する。

ただスワップ領域は暗号化されないので注意。


Fedora でハイバネーションを使いたい

Linux のサスペンドには Arch wiki に詳しくまとまっている通りいくつかの種類がある。

その中でもハイバネーションはシステムの電源を完全に落とす。この電源を落とすという性質がある以上、不揮発なスワップ領域にマシンの状態を保存する必要がある。

zram はハイバネーションできない

Fedora Workstaion デフォルトのスワップには zram が使われる。1

zram は RAM 上にページデータを圧縮保存するブロックデバイスを作成する。

RAM 上にあるということは電源を落とせば揮発する。つまり zram のみだとハイバネーションは使えない。

zram を使いながらハイバネーションする

じゃぁ zram を使っているとハイバネーションできない、というわけではなく、ストレージデバイス上にもスワップ領域を作成すればいい。

ただ、ストレージに作成したスワップ(以下ストレージスワップと呼ぶ)は zram と一緒に使わない方がいいらしい(要出典)ので、ハイバネーション時にのみストレージスワップを有効化する …


Continue reading

Linus Torvalds 氏の理想の git 運用と GitHub

Posted on 2023/03/05 in tech • Tagged with git

Note
本記事の内容は Linus 氏の発言が人を傷つける場合に筆者がそれを良しと考えるといった意図はございません

少し古い記事になるが、 Linus Torvalds 氏 の GitHub に対する苦言が記事になっていた。

Linus 氏が GitHub について苦言を呈するのは今に始まったことではない(後述)が、
別に GitHub のすべてを否定しているわけではない。[1]

では一体何が不満なのか。Linus 氏の理想とする git の開発フローを考察した上で、整理してみたい。

Linus 氏の理想

結論からいうと、

「意味あるコミットを作れ」「コミットを大事にしろ」 という思想が伺える。

では 「意味あるコミット」「大事にされたコミット」 とは何なのか。 筆者なりに整理したところ以下 2 つに集約されるように思う。

  • 信頼性: パッチの身元がわかること

  • 説明性: パッチの目的・背景がわかること

信頼性 …


Continue reading

共用リポジトリ内で自分専用の名前空間を使う: Git namespaces

Posted on 2021/03/01 in tech • Tagged with git

独自の名前空間に push できる機能、gitnamespaces を紹介します。

基本的な使い方

オプション

--namespace オプションを git コマンドの直後に付与します。

$ git --namespace=me push origin main
$ git --namespace=me fetch origin

上記例では、名前空間 me に push しています。

環境変数

GIT_NAMESPACE 環境変数を利用します。

$ GIT_NAMESPACE=me git push origin main
$ GIT_NAMESPACE=me git fetch origin

名前空間の仕組み

名前空間 me に push されたリモートリポジトリ上では、ブランチ [1 …


Continue reading

git: レンタルサーバーに cgit で構築する Web インターフェイス

Posted on 2021/02/07 in tech • Tagged with git, cgi

cgit とは

kernel.org で利用されている git リポジトリの Web インターフェイスです。

cgit という名前からも察せられるように、 cgi で動きます。

さくらのレンタルサーバー で試しに cgit をセットアップしたところスムーズにセットアップできたのですが、 設定で少々詰まったところもあり、また日本語どころか英語の情報もあまりなかったので、メモがてら書いていきます。

この記事で書か ない こと

レンタルサーバー上の設定を考慮しているので、以下のようなことは書いてません。

  • Apache のインストール方法
  • httpd.conf (apache2.conf) の設定方法

また、ssh でのログイン方法なども書いてません。

書くこと

逆に、以下のようなことは書きます。

  • Makefile …

Continue reading

JEPX スポット価格(市場連動価格)の Google カレンダーを作りました

Posted on 2020/10/12 in tech • Tagged with poem

数ヶ月前の話なのですが、自然電力に変えました。

自然電力のでんき|自然電力株式会社  ※アフィリエイトリンクでは ありません 1

以前から変えたいなと思っていましたが、新型コロナで大気汚染が改善された みたいな話を聞くようになったのが後押しになりました。

新型コロナ 地球 空気 というワードでググる(検索ワードが恣意的なのは認める)と

みたいなニュースが今現在はぱっと出てきます。

感染症は歴史的にも避けられない 2 3 ものではあると思います。
ただ一方で、こういった ブレーキ自然界のパランスを保っている 、という面は少なからずあると思っちゃうのですよね。

地球温暖化防止 …


Continue reading

Pipenv をやめて venv を使いだした話

Posted on 2020/10/11 in tech • Tagged with python

tl;dr

仮想環境の作成

Python の開発には組み込みの venv で閉じた環境(仮想環境)を作成できる。

環境の自動化

direnv を入れればカレントディレクトに応じて activate/deactivate を自動化できる。
これは .envrc

layout python

を書けばいい。

Python バージョンを指定した仮想環境の作成

任意の Python バージョンを指定したい場合、pyenv を使う。
インストール済なら .envrc

layout python ~/.pyenv/versions/3.X.X/bin/python

のように Python のパスを末尾に書けば、3.X.X のバージョンで仮想環境が作成される。1

依存ライブラリの管理

依存ライブラリのバージョン固定には …


Continue reading

Vim と LSP で Java 開発

Posted on 2019/05/12 in tech • Tagged with vim, java

Java の開発は VSCode でやっていたのだけれど、最近 Vim プラグインの調子がとてもよくない。

dd とか cc で行削除すると、カーソルが末尾に移動してしまうというもの。issue も立っていた。

こりゃ本家の Vim に頼るしかないと思って Java の開発環境を整えたメモ。

この記事でできること

Vim で

  • Java の自動補完
  • Java のシンタックスチェック
    • Lombok による生成コードも考慮する

この記事でできないこと

  • Java のインストール
  • Java のデバッグ …

Continue reading

サイトのリンクをタイトル付きのマークダウンでコピーする

Posted on 2019/01/20 in tech • Tagged with javascript, bookmarklet

ブログやメモは Markdown で書いてるし、Trello も Markdown をサポートしてる。

こうなると参考サイトとかの URL をよくタイトルでリンクにして使うことがあるのだけれど、いちいち

  1. URL をコピー
  2. タイトルを調べる
  3. Markdown に整形する ([タイトル](http://hogehoge.com) みたいなテキストにする)

とやるのがとても面倒だったので、ブックマークレットを作った。

ブックマークレットとは

ブックマークには http(s):// から始まるテキストだけじゃなくて、javascript: から始まる javascript テキストも登録できる。

javascript: から始まるブックマークは、クリックされたときに登録された javascript を実行してくれる。

これをブックマークレットという。

任意のテキストをコピーするスクリプト

何かのテキストをコピーするブックマークレットを作るとき、テンプレとして使っているソースがあるので公開。

(function() {
  var text = 'hogehoge'; // このテキストをコピーする

  // ブラウザ上の選択エリアをすべて解除する
  var selection = document …

Continue reading

ローカルのファイルを暗号化しながらリモートに保存する

Posted on 2019/01/13 in tech • Tagged with encrypt, openssl, unix, shell

そもそも論

シェルを書くなら標準入出力ベースで考えるのがスマートだと思うのです。

極論いうと

$ cat hoge.txt

みたいなのは

$ cat < hoge.txt

と書こう、みたいな。

流石に cat でこんなことはしないけれど、

  • 読み込みは標準入力
  • 出力は標準出力

をベースとして考えるのが、シェラー1の道第一歩だと思うのです。

ローカルのファイルをリモートサーバに保存したい。

たまたまそれなりなサイズの嫁2動画ファイルが手元にあって、いいアーカイブ場所を探してたときに、いい感じに容量が有り余ってるレンタルサーバがあった。

......これはもう ここに置くしかない でしょう。

ただ、レンタルサーバというのは基本管理者(サービス提供者)が自由にアクセス・閲覧できるサーバである。 そこにプライベートなものを置くのは多少なり抵抗があるので、 暗号化したい

対象ファイル

ファイルというかディレクトリ。ビデオカメラで撮影したデータを SD カード経由で取り込み、 そのままのディレクトリ階層で保存したい

ここでは単純に hoge,foo,bar の 3 つのディレクトリを保存することを考える …


Continue reading

Isso でブログにコメント機能を導入する

Posted on 2019/01/06 in tech • Tagged with blog, docker, oss

このサイトは最近 Pelican で作成したものに置き換えたのだけれど、 Pelican は静的サイトジェネレータなので、当然ながらコメント機能がついていない。

動的なコメントには Disqus を使えと書いてある のだが、Disqus はいきなり広告を出し始めて反発を買った とか。広告は上位のサイトだけとか、個人利用なら表示されないようだけれど、そういう不安の種は抱えたくない。

代替案

前提として、VPS があるので自前ホスティングでもよかった 3 つくらい良さそうなのを見つけた

Commento

Commento はデモ画面に惹かれた。

一度導入してみたのだが、無料の CE プランの場合コメントが投稿されたときの通知機能が使えない という致命的な問題がある。

スクリプト仕込んで自前の通知をつくってもよかったが、そこまでしたくない。

Staticman

Staticman は Github 上にコメントファイルをホスティングするという エンジニア的にはナイスな発想でコメント機能を提供している。

仕組みとしては、

  • コメント管理したいリポジトリのコラボレータに staticmanapp を追加する
  • コメント投稿時の POST リクエストを Staticman の …

Continue reading