EOS R5の写真サンプル

写真をグリッドで並べるための実装を書いたのでせっかくなのでEOS R5で過去に撮影した写真を上げておきます。 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大 クリックで拡大...

2月 15, 2023

田舎暮らしの良いところ悪いところ

はじめに 完全に主観の話をします。 これは完全に個人の意見ですし地方によって多分違う話をします。 移動に関係 よく地方には交通機関ないと言われますが実にそのとおりです。 基本的に車を利用しています。 どちらかというと運転が好きな方であるので苦ではないので問題にはなっていません。 都会みたいに歩いていける範囲に商店がないので買い物は100%で行くと思って大丈夫です。 とはいえ人によったら運転したくない人もいると思います。 そういう人で田舎に住んで見たいと思う人がいたらおすすめは地方の郊外の大学がある街です。 そういう場所は都心よりも人は少ないですが歩ける範囲にコンビニがあったりバスの路線が存在したりします。 香川県だと善通寺市や丸亀市、坂出市あたりがそこまで辺鄙な場所ではないので都会生まれの人でも住みやすいエリアだと思います。 マイカー移動の最大の欠点は都会だと昼からお酒を飲みながら飲み歩くみたいなことができない点です。 基本的に酒を飲んでしまったら外出ができないと思ってください。 あと東京へのアクセスは飛行機などを使えば割とすぐにいけますが地方都市への移動はすごく大変です。 例えば四国から長野とかへ行こうと思うと東京を経由します。 飛行機を網目状に飛ばしてほしいですね。 人付き合い よく人付き合いがめんどくさくて田舎暮らしをやめましたみたいな話を聞きます。 たしかに古い因習が残る集落ではそういうことがあると思います。 そういうことを避ける方法もあります。 地方でも新しく山を切り開いて作った団地などはあまり人付き合いを気にしなくてもいい場合が多いです。 理由としては自治会が比較的新しいので変わったルールがないことと移住してきた人が若い家族が多いためです。 なので人付き合い関係で不安がある人は比較的新しい自治体を探してみるのはどうでしょうか? 通信関係 携帯電話の電波はよっぽど山の中とかでなければ入ります。 NTTドコモの回線が圧倒的に強いイメージはあります。 5Gに関してはドコモは町中や観光地は対応してるイメージがあります。 私が住んでいる場所は山間部になるので時々電波が途切れることはありますが完全に途切れることはないです。 なのでahamoとpovoを契約して基本的にはドコモ回線をメインで使い通信が多いときや山の中に遊びに行くときはpovoを使えるようにするみたいな運用をしています。 固定回線の話をしましょう。 インターネット事業者は都会みたいに多くを選ぶことはできません。 1、2社の中から選ぶことになると思います。 こだわりが強い人は予め調べておいたほうが良いと思います。

2月 13, 2023

たけのこの季節の前の準備をしました

たけのこの季節になる前に竹を間引く作業をしました。 去年の5月終わりあたりまでだいぶ減らしてましたがそれでも増えていたので1ヶ月くらいかけて減らして行きます。 古いものや曲がったものを切り倒して行きます

2月 12, 2023

狩猟免許の試験が近づきました

狩猟免許の試験が2週間後に近づいてきました。 というわけで狩猟読本と例題集を手に入れ来ていました。 狩猟読本と例題集 ちなみに狩猟免許の情報収集はこちらの本です。 秀和システム 東雲 輝之 (著) これから始める人のための 狩猟の教科書 第2版

2月 10, 2023

Nostrアカウント作りました

Nostrアカウント作りました。 pubkey: npub1f99vdsk2hr0tmadrjmy0vdrd997g87slla76mv4nve9u9mfdxgnsvjyrd0 一応承認バッジつけたり、satoshiをぶつけ合いできるところまで設定はしました。 承認バッジつけるときに.well-knownが公開されなくて悩みましたが、_config.yamlを作成したら公開されました。 追加したyamlのなかみです。 include: [.well-known] 参考文献 GitHub PagesとJekyllについて

2月 8, 2023

Go 1.20でlambdaで動くプログラムを書いてlocalビルドしてデプロイしたら死んだ

タイトルの通りでプロセスが死にました。 ログはこのような感じです。 2023-02-07T19:39:42.063+09:00 INIT_START Runtime Version: go:1.v13 Runtime Version ARN: arn:aws:lambda:ap-northeast-1::runtime:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2023-02-07T19:39:42.090+09:00 /var/task/main: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by /var/task/main) 2023-02-07T19:39:42.090+09:00 /var/task/main: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /var/task/main) 2023-02-07T19:39:42.090+09:00 2023/02/07 10:39:42 exit status 1 glibcの依存で周りで死んでるようですね。 わざわざlambda上にインストールするまでもないのでCGO_ENABLED=0をつけてstatic buildしてしまえば解決です。 $ CGO_ENABLED=0 go build -o main main.go

2月 7, 2023

今月の読み物予定

今日は2月の節分ですが特に節分感のあるネタもないので今月の読み物予定の紹介でもと思います. 今月はヤマケイ文庫のドキュメント 気象遭難を読もうと思います. 読もうと思った理由の一つは私自身が山に登るということがあります. 他の理由は最近雪崩事故があったいうことがあります. なので事例を知っておこうと思いこの本を選びました. ヤマケイ文庫 羽根田 治 (著) ドキュメント 気象遭難

2月 3, 2023

lambda function URLsのeventをプロキシしてhttp apiに流す

小規模なSlack BotはAWS lambda functions URLsに作ると楽だった の話の続きです. 先日lambda function URLsを利用してhttp apiのような実装を記述する方法を紹介しました. 今回は httpadapter と net/http/httputil を利用してlambda function URLsをリバースプロキシとして動かしてbackend apiに流す方法です. 概略図 実装 普通のリバースプロキシを実装するときはhttputil.ReverseProxyを定義してserverを作って待ち受けるわけですが、 今回の場合はhttputil.ReverseProxyを定義した後httpadapter.NewV2に食わせるだけですね. 次の例はlambdaのeventを受け取ったあとlocalで8080ポートで待ち受けるhttp serverにリクエストを流すproxyの例です. func main() { director := func(req *http.Request) { req.URL.Scheme = "http" req.URL.Host = ":8080" } rp := &httputil.ReverseProxy{Director: director} lambda.Start(httpadapter.NewV2(rp).ProxyWithContext) } すべてlambda関数上で完結させたい場合は func init() などでapiを予め立ち上げた後プロキシしてあげると良いと思います. github.com/ieee0824/le2hp ではそのような実装にしました.

2月 2, 2023

剣山へのアクセス方法の色々

徳島県の剣山へのアクセス方法についてです. 登山口について 剣山へ登るための登山口はいくつかあります. 見ノ越 見ノ越登山口 おそらく一番登山者の多い登山口です. この登山口はバスでのアクセスが可能であることと、 駐車場がよく整備されているので便利です. また見ノ越から西島までリフトがあるので体力のない登山者などでも登りやすいことが特徴です. リフトを使う場合疲れることなく森林限界まで上がれるので初めての登山にもおすすめです. 令和4年のものにはなりますが時刻表及び料金表を添付しておくので参考にしてください. 令和4年剣山運行情報 冬場はマイカーのみのアクセスになりますが利用することができます. 夜間は国道が通行止めになるので注意が必要です. 除雪がしっかりされている時は冬タイヤなら2駆でも走行できますがチェーンは携行してください. 冬期の国道438号線の様子 コリトリ 見ノ越から見ノ越隧道を通って国道438号線を進んだ先の垢離取(コリトリ)の登山口もしくはもう少し上がった剣神社から登る登山口です. 剣山へは一ノ森を通ったあと剣山へ歩きます. このルートは見ノ越からのルートより人が少ないです. 深田久弥は「剣山の姿勢は一ノ森から望むのが最上」と言っていますが同意します. 剣山と次郎笈を横並びで見られる珍しいルートでもあります. 一ノ森方面から剣山・次郎笈を望む このルートは私個人的には白骨樹がある独特な景色や見晴らしの良い縦走路もおすすめです. ただ人によれば往復する場合10時間くらい見といたほうがいいかもしれません. 奥祖谷二重かずら橋 奥祖谷二重かずら橋から登るルートです. ここを通る場合下りる場合も入場料が必要です. 剣山へは丸石を経由で登ります. 私はこのルートは剣山から三嶺への縦走でしか使ったことがないのでレビューできないので割愛します. 山の家奥槍戸 登山口の様子 私は厳密にはここからスタートして登ったことはありません. 私がここの登山口を利用した時は見ノ越から剣山、次郎笈を通って山の家歩いて山の家でカレーを食べたあと次郎笈、剣山を通って見ノ越までもどりました. 登山口として利用する場合は剣山スーパー林道を通ってアクセスする必要があります. もしくは剣山から次郎笈方面に歩いて三嶺方面への分岐を曲がったあと丸石行く手前の分岐で左に行くと剣山トンネルを通ってアクセスすることができます. 山の家のカレーを食べたいときについつい足を伸ばしてしまう場所です....

2月 1, 2023

小規模なSlack BotはAWS lambda functions URLsに作ると楽だった

はじめに ここで言う小規模なSlack Botというのは個人で使うようなBotやチームレベルで使う書き捨てレベルのようなもののことです. このような想定のBotを実装するときそこまでちゃんとインフラコストをかけたくありません. 自前でサーバーを用意したとして処理内容と維持管理費用が割に合わないのです. 無料でhttp serverを立ち上げることができるけど定期的にリクエストを送っておかなければプロセスがkillされるようなサービスもあります. そのようなサービスを使う場合定期的にリクエストを送るか立ち上がるまで待った後Botのためのリクエストを送らないと機能しない問題があります. それらの問題を解消するのにlambda functions URLsは要件にあってそうだなぁと思いました. lambda function URLsはlambdaなので課金が発生する時間単位が短いのでたまにしか実行されないようなものでもサーバーを立てて実現するよりお金がかからないです. またlambda function URLsにリクエストを投げるとlambdaのeventが発火して即時にlambda関数が実行されるので待ち時間も発生しません. 一つ問題があるとしたらlambdaのeventとして作成したプログラムから見えるので普段Botをhttpのapiとして実装している場合はhttp requestとlambdaのeventとのギャップを埋める必要があるということです. とはいえそこまで大きな問題にはならないと思います. 特にGo言語の場合は github.com/awslabs/aws-lambda-go-api-proxy/httpadapter を利用するとほとんどhttp serverと同じような実装でアプリケーションを作ることができます. Goでlambda function URLsを使ってリクエスト受ける例 github.com/awslabs/aws-lambda-go-api-proxy/httpadapter を利用した実装例を上げておきます. frameworkを利用しない例 frameworkを利用しない例です. 生のGo言語でhttp serverを実装したことがある人なら雰囲気が解ると思います. package main import ( "io" "net/http" "github.com/aws/aws-lambda-go/lambda" "github.com/awslabs/aws-lambda-go-api-proxy/httpadapter" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "It Works!") }) // lambda function URLsはapi gateway v2と同じeventなのでv2にする必要がある lambda.Start(httpadapter.NewV2(http.DefaultServeMux).ProxyWithContext) } Ginを利用した例 frameworkを利用することもできます. 例えばGinを利用する場合は次のように記述ができます. package main import ( "context" "net/http" "github....

1月 31, 2023