@kyanny's blog

私は天才ではありません。ただ、人より長く一つの事と付き合っていただけです - アインシュタイン

コーヒー: ハイチ モンラセル

近所の焙煎してる珈琲屋で初めて豆を買った。棚に並んでないがおすすめのがある、カリブ海のハイチの豆で少し高いがブルーマウンテンに匹敵する美味しさだ、ハイチは社会主義の国なので商社などでも扱いが少なくあまり流通していない、とのことで、カリブ海に惹かれて買った。中米のコーヒーが好きなので。200gで1800円。帰宅してすぐに淹れたらお湯を少しかけて蒸らすときにプクーっと膨らむ様子を初めて目撃して感激した。でも2日も経ったら膨らまなくなってしまった。味はずいぶん軽くて、味も香りも上品で美味しいけど、自分の好みではないなぁという感じ。もっと濃くて酸味が強く、個性的なのがいい。

Python: with 構文

reiki4040.hatenablog.com

要は Ruby のブロックと同じようなもの、という理解で良さそう。

Python

with open('/etc/passwd') as f:
  print(f.read())

Ruby

open('/etc/passwd') do |f|
  puts f.read
end

open 以外の例としては unittest の assertRaises がある。

unittest --- ユニットテストフレームワーク — Python 3.9.1rc1 ドキュメント

import unittest

class TestFoo(unittest.TestCase):
    def test_foo(self):
        with self.assertRaises(ZeroDivisionError):
            1/0

if __name__ == '__main__':
    unittest.main()

assertRaises に渡す callable として即席の関数を定義したり lambda を渡したりするよりも見通しがよくなる。

なお、 assertRaises で with を使うと良さそう、というのは以下の記事経由で知った。

y0m0r.hateblo.jp

PostgreSQL: psql -c の結果でページャを無効にする

1. -P (--pset) オプションを使う

psql -P 'pager=off' -c '\dp'

2. 環境変数で PAGER=cat とする

PAGER=cat psql -c '\dp'

検証手順

1. コンテナを作る

docker run --rm -e 'POSTGRES_HOST_AUTH_METHOD=trust' --name aa -d postgres

2. テストデータを作る

for i in {1..100}; do docker exec aa psql -U postgres -c "create table tt$i (id int)"; done

3. psql -c する

ページャが有効な場合

docker exec -t aa psql -U postgres -c '\dp'
                            Access privileges
 Schema | Name  | Type  | Access privileges | Column privileges | Policies
--------+-------+-------+-------------------+-------------------+----------
 public | tt1   | table |                   |                   |
 public | tt10  | table |                   |                   |
 public | tt100 | table |                   |                   |
 public | tt11  | table |                   |                   |
 public | tt12  | table |                   |                   |
 public | tt13  | table |                   |                   |
 public | tt14  | table |                   |                   |
 public | tt15  | table |                   |                   |
 public | tt16  | table |                   |                   |
 public | tt17  | table |                   |                   |
 public | tt18  | table |                   |                   |
 public | tt19  | table |                   |                   |
 public | tt2   | table |                   |                   |
 public | tt20  | table |                   |                   |
 public | tt21  | table |                   |                   |
 public | tt22  | table |                   |                   |
 public | tt23  | table |                   |                   |
 public | tt24  | table |                   |                   |
 public | tt25  | table |                   |                   |
 public | tt26  | table |                   |                   |
 public | tt27  | table |                   |                   |
 public | tt28  | table |                   |                   |
 public | tt29  | table |                   |                   |
 public | tt3   | table |                   |                   |
 public | tt30  | table |                   |                   |
 public | tt31  | table |                   |                   |
 public | tt32  | table |                   |                   |
 public | tt33  | table |                   |                   |
 public | tt34  | table |                   |                   |
 public | tt35  | table |                   |                   |
 public | tt36  | table |                   |                   |
 public | tt37  | table |                   |                   |
 public | tt38  | table |                   |                   |
 public | tt39  | table |                   |                   |
 public | tt4   | table |                   |                   |
 public | tt40  | table |                   |                   |
 public | tt41  | table |                   |                   |
 public | tt42  | table |                   |                   |
 public | tt43  | table |                   |                   |
 public | tt44  | table |                   |                   |
 public | tt45  | table |                   |                   |
 public | tt46  | table |                   |                   |
 public | tt47  | table |                   |                   |
 public | tt48  | table |                   |                   |
 public | tt49  | table |                   |                   |
 public | tt5   | table |                   |                   |
 public | tt50  | table |                   |                   |
 public | tt51  | table |                   |                   |
--More--

ページャが無効な場合

docker exec -t aa psql -U postgres -P 'pager=off' -c '\dp'
                             Access privileges
 Schema | Name  | Type  | Access privileges | Column privileges | Policies
--------+-------+-------+-------------------+-------------------+----------
 public | tt1   | table |                   |                   |
 public | tt10  | table |                   |                   |
 public | tt100 | table |                   |                   |
 public | tt11  | table |                   |                   |
 public | tt12  | table |                   |                   |
 public | tt13  | table |                   |                   |
 public | tt14  | table |                   |                   |
 public | tt15  | table |                   |                   |
 public | tt16  | table |                   |                   |
 public | tt17  | table |                   |                   |
 public | tt18  | table |                   |                   |
 public | tt19  | table |                   |                   |
 public | tt2   | table |                   |                   |
 public | tt20  | table |                   |                   |
 public | tt21  | table |                   |                   |
 public | tt22  | table |                   |                   |
 public | tt23  | table |                   |                   |
 public | tt24  | table |                   |                   |
 public | tt25  | table |                   |                   |
 public | tt26  | table |                   |                   |
 public | tt27  | table |                   |                   |
 public | tt28  | table |                   |                   |
 public | tt29  | table |                   |                   |
 public | tt3   | table |                   |                   |
 public | tt30  | table |                   |                   |
 public | tt31  | table |                   |                   |
 public | tt32  | table |                   |                   |
 public | tt33  | table |                   |                   |
 public | tt34  | table |                   |                   |
 public | tt35  | table |                   |                   |
 public | tt36  | table |                   |                   |
 public | tt37  | table |                   |                   |
 public | tt38  | table |                   |                   |
 public | tt39  | table |                   |                   |
 public | tt4   | table |                   |                   |
 public | tt40  | table |                   |                   |
 public | tt41  | table |                   |                   |
 public | tt42  | table |                   |                   |
 public | tt43  | table |                   |                   |
 public | tt44  | table |                   |                   |
 public | tt45  | table |                   |                   |
 public | tt46  | table |                   |                   |
 public | tt47  | table |                   |                   |
 public | tt48  | table |                   |                   |
 public | tt49  | table |                   |                   |
 public | tt5   | table |                   |                   |
 public | tt50  | table |                   |                   |
 public | tt51  | table |                   |                   |
 public | tt52  | table |                   |                   |
 public | tt53  | table |                   |                   |
 public | tt54  | table |                   |                   |
 public | tt55  | table |                   |                   |
 public | tt56  | table |                   |                   |
 public | tt57  | table |                   |                   |
 public | tt58  | table |                   |                   |
 public | tt59  | table |                   |                   |
 public | tt6   | table |                   |                   |
 public | tt60  | table |                   |                   |
 public | tt61  | table |                   |                   |
 public | tt62  | table |                   |                   |
 public | tt63  | table |                   |                   |
 public | tt64  | table |                   |                   |
 public | tt65  | table |                   |                   |
 public | tt66  | table |                   |                   |
 public | tt67  | table |                   |                   |
 public | tt68  | table |                   |                   |
 public | tt69  | table |                   |                   |
 public | tt7   | table |                   |                   |
 public | tt70  | table |                   |                   |
 public | tt71  | table |                   |                   |
 public | tt72  | table |                   |                   |
 public | tt73  | table |                   |                   |
 public | tt74  | table |                   |                   |
 public | tt75  | table |                   |                   |
 public | tt76  | table |                   |                   |
 public | tt77  | table |                   |                   |
 public | tt78  | table |                   |                   |
 public | tt79  | table |                   |                   |
 public | tt8   | table |                   |                   |
 public | tt80  | table |                   |                   |
 public | tt81  | table |                   |                   |
 public | tt82  | table |                   |                   |
 public | tt83  | table |                   |                   |
 public | tt84  | table |                   |                   |
 public | tt85  | table |                   |                   |
 public | tt86  | table |                   |                   |
 public | tt87  | table |                   |                   |
 public | tt88  | table |                   |                   |
 public | tt89  | table |                   |                   |
 public | tt9   | table |                   |                   |
 public | tt90  | table |                   |                   |
 public | tt91  | table |                   |                   |
 public | tt92  | table |                   |                   |
 public | tt93  | table |                   |                   |
 public | tt94  | table |                   |                   |
 public | tt95  | table |                   |                   |
 public | tt96  | table |                   |                   |
 public | tt97  | table |                   |                   |
 public | tt98  | table |                   |                   |
 public | tt99  | table |                   |                   |
(100 rows)