2021年度 ダービー

今年もダービー終わりました、今日のレースはよかった、当然外しましたが…

日刊スポーツには、 「ダメだこりゃとは言わせない」 と書いてありました.

昼からやりつづけて、ダメージが蓄積してますが、明日から頑張ります、競馬教えてください。

Posted on 2021-05-30 21:34:18

Python3のsleepは寝ていない

すごい、飲みすぎいて頭イタなっているときに妙なtweetがながれてきて、忘れていたことを思い出し…

それは、 Pythonのsleepを呼び出すと処理が停止してしまう という現象だったのですが…

問題の処理内容

HaskellのAsyncライブラリを弄っていたときに遭遇した現象で以下のような処理をサンプルで作成しました

  1. HaskellのcreateProcessで子プロセスのPythonコードをexecしPipeでStdin,Stdoutをつなげる
  2. Python側でテキストファイルを読み込み1行ずつStdoutへ出力
  3. Haskell側はStdinからPythonが書き込んだデータを読み込み出力する

という簡単なものです、以下にコードを貼っておきます。

Haskellのコード

createProcessで子プロセスを作成しPipeをつないで、readHandle関数をmapConcurrentlyで並列に動かすという単純なサンプルです

{-# LANGUAGE ScopedTypeVariables #-}

import System.IO
import System.Process
import Control.Concurrent.Async
import Control.Exception

main :: IO ()
main = do
  (_, Just hout, Just herr, hproc) <-
    createProcess
      (shell "./extern_command.py")
      { std_out = CreatePipe
      , std_err = CreatePipe
      }
  res <- mapConcurrently (readHandle 0) [hout, herr]
  putStrLn "=== res"
  mapM_ (putStrLn . show) res

stdOut :: Handle -> IO Int
stdOut = readHandle 0

stdErr :: Handle -> IO Int
stdErr = readHandle 0

readHandle :: Int -> Handle -> IO Int
readHandle c h = do
  end <- hIsEOF h
  case end of
    False -> do
      readInfo <- hGetLine h
      putStrLn readInfo
      readHandle (c+1) h
    _ -> return c

Pythonのコード

単純にファイルをOpenし1行づつ返すものです

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import time
import sys
import os

sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', buffering=1)

def main():
    path = "test.txt"
    with open(path) as f:
        for s in f:
            time.sleep(2)
            sys.stdout.write(s)
        
if __name__ == '__main__':
    main()

test.txtファイル

ああああいいいいうううう
ええええおおおおかかかか
ききききくくくくけけけけ

実行

2秒ごとに1行づつ送り返してきます

~/Async $ runghc Async1.hs 
ああああいいいいうううう
ええええおおおおかかかか
ききききくくくくけけけけ
=== res
3
0
~//Async $ 

結果として、どこも悪くなく、Python3の ディフォルトバッファリングモードがブロックバッファリング ということで、 バッファリングするデータが多いと フラッシュまでに時間がかかり止まったように見えたということでした。

sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', buffering=1)

これを入れることによって、行バッファリングになるそうです、sleepつかってるのでそこでフリーズしたのかと勘違いしました。

ちなみに以下のPHPのコードは

#!/usr/bin/php
<?php

$f = fopen("test.txt", "r");
if($f) {
    fputs(STDERR, ">>>=== STDERR 1 put!\n");
    while($line = fgets($f)) {
        sleep(2);
        fputs(STDOUT,$line);
    }
    fputs(STDERR, ">>>=== STDERR 2 put!\n");
}
?>

これは行でフラッシュしてきます。

個人的には行の方がイメージ的に使いやすいのではないかと思いますが、この辺の動作はPython2から変わっているのかな、思い出して 「あぁー」 ってなったのですがすっきりしてよかったです。

Posted on 2021-05-26 07:18:26

広井酒店とコラボする日はくるのか

既に、日本酒 池ゆるキャン の聖地となっている、 広井酒店 の店主は、感慨深くもありますがラーメンの師匠です。

先日もお酒を買いに行きましたが、 を買うつもりが、店主からのパワハラをうけまして、 城ヶ崎 を買って返りました、春菊までもらいご馳走さまでした。

どうしても煮干しが食いたくなる、今回は塩ベースで頑張った

前日から昆布だの、しいたけ、水から出したものを塩ベースで調整、しょっつる入れてみたけど、味的にはどうか不明、素人はいろいろものでごまかす。

完成した塩だれ、に煮干しを粉砕し水からだす、煮干しの塩っけと水の量がむずかしい、でもいま煮干しをいただいているお店の煮干しはコンスタントの塩っけなので、煮干し300gで水4Lぐらいでちょうどいい塩梅。

子供のために細かく骨まで粉砕

この時期はハンバ海苔が収穫させるので、ラーメンに入れたら結構おいしい、香りがいいです。

今回は煮干しのワタをと頭を外したので、結構すっきりした味でおいしゅうございました。

参考文献

Posted on 2021-03-21 17:33:28

スィート男子に憧れた

「3時の一服」 と言えば、建築業界標準語ではありますが(20年ほど前ですが)、イカの塩辛ばかり食べていると人生損した気分になるので久しぶりに 「シュークリーム」 をいただきました。

これからの中年は 「アルチュー男子」 いただけませんね、恥ずかしい、やめてください。

これ、1つ150円って安くないですか、ケーキとか、バームクーヘンとかあるので、また買いにいきます、大変おいしゅうございました。

買ったお店

レマンの森

みなさんも、近所のケーキ屋さん探すのも楽しいかもしれません、リモートワークのお供にシュークリームを召し上がれ。

Posted on 2021-01-26 20:10:47

XLR生き返ったよ

XLR80といえばHondaの名車で、1987年ぐらいから販売しているので、もう40年ぐらいたつのかっ! と何気にビックリしましたが、こいつは何年制だか分かりません、既に半世紀近くたってしまってまだ走っているって すげぇーな と思います。

クソ汚い、SuperTrapのマフラーを無理くりセメントつっこんで走っていたのですが、どうも適当につめすぎて、あまりにもフケが悪いので、マフラーを エキパイから交換してやってやりました。

みた感じ、貧乏人が、高級時計したみたにアンバランスですが、また似合っていないのがいいですね、えぐいです。 バイクやさんも感じ良く、修理していただいてありがとうございました。

見た目より、機能重視ではめたんで、サイドカバーもつかなくなってしまったので、ちょっと恥ずかしいですが、加工してはめたいと思います。

近未来のバイクより、こういうレトロな単車の方が味があって手放せないですね、私が死んだら、これを棺桶に入れてもらいます。

ちなみにハイカム入れてます、パワーあるよぉー、早くエンジンかけたくて、落ち着かない…

お世話になったバイクやさん 二輪屋アルティ

Posted on 2021-01-25 18:30:51

はじめまして

静岡の極東の浜辺で何かをやっている人間です、基本的に季節を問わずBBQとオフロードをバイクで走るのがが大好きです、暇があれば何かを焼いているか走っています。どこかの浜で焼いている姿をみたら、gentooの話もで飲みながらしましょう...

Posted

Amazon

tags