共用リポジトリ内で自分専用の名前空間を使う: 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

IntersectionObserver でオフスクリーンの画像を遅延読み込みする

Posted on 2018/12/03 in tech • Tagged with javascript, seo

Google の PageSpeed Insights が新しくなっていた。

で、改善案の一つに Offscreen Images のセクションがあったのだけれど、こう書いてあった。

Consider using an IntersectionObserver to intelligently determine when to lazy-load offscreen images. For example, suppose you have some images at the bottom of a very long page. With an IntersectionObserver, you can load the images only when the user …


Continue reading

エックスサーバー(ローカル環境)にtmuxを入れる

Posted on 2018/01/08 in tech • Tagged with tmux, shell

参考

エックスサーバーでsshログインする際にtmuxがないので泣いた。

エックスサーバーはubuntuで動かしてるようだけど、当然レンタルサーバーはapt-getができない。

仕方なくローカル環境へtmuxを導入した際のメモ。


前準備(なくてもいい)

~/tmpで作業

mkdir ~/tmp
cd ~/tmp

依存ライブラリインストール

依存ライブラリも当然ローカル環境にインストールする必要がある。基本はconfigure実行時に--prefixオプションでインストール先を指定する。

libevent

wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
tar zxf libevent-2.1.8-stable.tar.gz
./configure --prefix=${HOME}
make …

Continue reading