ビールから意識を遠ざけるための暇つぶし

Tech > Haskell

酒飲めずあまりに暇だったのでつまらない時間つぶし、ファイルかディレクトリか判断するだけのコード

import os

def main():
    r = []
    fs = os.listdir(".")
    for f in fs:
        r.append(os.path.isdir(f))
    return r

if __name__ == '__main__':
    r = main()
    print(r)

Pythonはカレントディレクトリ 「.」 と 親ディレクトリ 「..」 は親切に返してこない、これはいい

これほぼ同じコードをhaskellで書いてみた

import System.Directory
import System.Posix
import Control.Monad

main :: IO ()
main = do
  r <- return . map isDirectory =<< mapM getFileStatus =<< getDirectoryContents "."
  putStrLn $ show r

getFileStatusstat っぽい事してるので少し違うけど心地良い、ループがないけど最後の map でループしてて [チョメチョメ] が帰ってきて、 isDirectory の型さえ調べればもはや [Bool] これとすぐ分かる。 一番右の getDirectoryContents “.” と一番左の map isDirectory だけで真ん中はそんなに重要でなくなる。

そして、これをphpで書いてみた

<?php

$r = main();
var_dump($r);

function main() {
   $d = opendir('.');
   $res = array();

    while (($file = readdir($d)) !== false) {
        if (is_dir($file)) {
            array_push($res, true);
        } else {
            array_push($res, false);
        }
    }
    closedir($d);
    return $res;
}

久しぶりにphp書いたけど、結構エラーで叱られる、たまには違う言語も書かないとだめですね。

ちなみにphpはワンライナーでもやれる

<?php $r = main();var_dump($r);function main() {$d = opendir('.');$res = array();while (($file = readdir($d)) !== false) {if (is_dir($file)) {array_push($res, true);} else {array_push($res, false);}}closedir($d);return $res;}

phpつおい、ちなみに私は、 ZendFramework派 です。

Posted on 2021-09-11 17:10:36

夏の日の想ひで 後編

とりあえず飲むから走る

もう、柴漬け食って健康になろうとか、みのもんたが言ってたような記憶がありますが、年くったらなにも食わない方が健康だということを同級生から学んだ夏でした。

そして開始

こうなるとアルコールも水のようです、ご近所の人たちが暖かい目で見守ってくれています。

そして保護色になって何処をつかんだら良いのか…

浜で鮎

そして海で鮎、これは簡単に味わえない経験、なんとも感慨深い。

七輪が死にました

一夏で1480円の七輪を2つダメにした私にとって、もう金属以外を信用しろと言われても無理です。

キリン黒が大好きです

海で飲む黒が最高です

だが清い

最後まで清くいたいと思う今日この頃

無理

缶ビールの写真しか撮っていないので、ネタが無いため皆様にはご迷惑お掛けしましたが、今年も限界までやったとおもう、コロナ禍だが、関係ない、また来年。

Posted on 2021-08-30 21:49:00

カテゴリ管理機能のバグ修正しました

カテゴリ機能が一部腐っていました、 「▲」「▼」 の位置入れ替えボタンです。 onClickイベントを張り付かせて安心していたところ、動いていませんでした。

原因はここです

「あとでやればいいや」という考えはいけません、忘れます、ここです、Elmのコードです

  • jssrc/category/src/Category.elm抜粋
...
swapCate : SwapSw -> Cate -> List Cate -> List Cate
swapCate sw c cs =
    case cs of
        c0::c1::xs ->
            if c.unCatePid /= c0.unCatePid then
                ({ c0 | unCateList = ctonc (swapCate sw c (nctoc c0.unCateList))}
                  :: { c1 | unCateList = ctonc (swapCate sw c (nctoc c1.unCateList))}
                  :: swapCate sw c xs)
            else
                case sw of
                    SwapUp ->
                        if c1.unCateId == c.unCateId then
                            c1::c0::xs
                        else
                            c0::(swapCate sw c (c1::xs))
                    SwapDown ->
                        if c0.unCateId == c.unCateId then
                            c1::c0::xs
                        else
                            c0::(swapCate sw c (c1::xs))
        c0::[] ->
            if c.unCatePid /= c0.unCatePid then
                ({ c0 | unCateList = ctonc (swapCate sw c (nctoc c0.unCateList))}::[])
            else
                [c0]
        _ -> cs
...

入れ替えるために2つ要素が必要なので、「c0::c1::xs」 この書き方だと最低3つの要素が必要でした、なので、ちょうど2つの場合にパターンマッチせず、「_ -> cs」 へマッチするので、カテゴリの一覧はそのまま動かずと言うことでした、勢いで書いたので、汚さはお許しください。

一覧表示へカテゴリ表示

反省の意を込めて少し修正しました、その1

一覧でカテゴリを設定してある記事やフリーページが分かるようカテゴリを表示しました。

公開側へのカテゴリ出力

反省の意を込めて少し修正しました、その2

sitemap.xmlへカテゴリURL出力

反省の意を込めて少し修正しました、その3

https://blog.karky7.com/sitemap.xml で出力されるURLにカテゴリのURLも出力出きるようにしました、カテゴリに記事や フリーページが1つも登録されていない場合、出力されません(はずです、でなければまた反省です)。

BBQにいけなかった週末を利用して、3つの反省点を改善しました、今週末は、肉を浜で焼きたいと思っております。

Posted on 2021-08-18 18:30:58

夏のおもひで 前編

コロナ禍2回目の夏、ここでのBBQも最適化され、不自由ない。

こう天気がいいと、コーディングなんかやってらんない。

昼間に飲みたいから、とりあえず走る、が、この時期は命がけ、いつか倒れる感じがする、が、汗が吹き出る感覚が心地よい。

もはや、水割りの氷を割る道具となった、ハガシ

装備1

緊急事態に備えた常備

炙る技術。

さらに後編に続く…..

Posted on 2021-08-12 20:56:18

カテゴリ管理機能追加しました

ここ最近は週末が雨で、浜にいって肉を焼くことができなかったので、コード書いてました、ただ意識が浜辺へ向いていたためあまり集中して書けなかったのが残念でした、バグがありましたらゴメンなさい。

フロントはElm

Houbou自体はある意味いろいろ実践で利用できるか評価するための場所でもあるので、フロントは Elm を使ってできる限り作りたいと思っていたのですこし頑張って見ました。 少し、再帰的データ構造の扱いが 夏の日差しと、BBQ とアルコールで浸された脳みそには負荷がだいぶかかりました。 できれば elm-reference なんかが使えそうな感じがしたのですが、自分の不甲斐なさで諦めました。

記事とフリーページに設定が可能

作成したカテゴリは、記事とフリーページに設定が可能です。

一覧で絞り込みできます

カテゴリで記事と、フリーページを絞り込みする事ができます、もともと記事数が増えすぎて探すのが面倒くさくなったのが作るきっかけではありました。

CMS側出力

フリーページ用のフレームへ以下のテンプレートコードを追加していただければ出力できます、urlは https://ドメイン/catelist/カテゴリID になっています。

画像ですいません、直接貼るとgingerがこけるので、 こちら にファイルを置きましたので参照ください。

気が向いたら、もう少しCMS側にカテゴリデータ流そうかと思っていますが、うーん、やっぱり夏はコーディングしてる場合じゃないな、海いこう…

Posted on 2021-08-09 08:52:28

はじめまして

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

Posted

Amazon

tags

mask lens ワンライナー php redmine Linux Oracle Map OMap omap map BBQ カテゴリ管理 カテゴリ timestamp date oracle database string 麦焼酎 ダービー process 磨き蒸留 広井酒店、日本酒 芋焼酎 焼酎 ゆるキャン 広井酒店、日本酒池 spring framework java persistent spring session session spring hdbc-odbc persistent-odbc odbc day utctime スィート レマンの森 elm初期化 elm バイク xlr80 esqueleto database xl2tpd strongswan vpn l2tp ipsec 正月 ゲーム grub nginx systemctl portage 豚骨 圧力鍋 yesod-auth-hashdb yesod-auth yesod CentOS8 tsl ssl 設定 install gentoo ghci stackコマンド stack MathJax 数式 templete-haskell haskell とんこつラーメン プレビュー チャーシュウ python インストール CentOS7 ラーメン Houbou 置換タグ