Hachi

今日の五条川、の大口某所。
向日葵畑は今年無しと書いたけど遅咲きなだっただけみたい。

himawari

盆休みと重なったせいか人が全然おらんくて寂しい。
いや筆者が訪れた時間がたまたまなかもしれないですが。

himawari

朝なのでしっかり全部の花が太陽を向いています。
白飛びを気にしてはいけません。

himawari

オリンパスブルーにしたいだけだろ、と突っ込まれそう。
そうです、本当は入道雲バックにしたいけど無いんだもん。

hachi

今年もハチさんが現れた、パナライカ 100-400 に交換。
ニホンミツバチかセイヨウミツバチかは筆者にはワカラン。

hachi

マクロレンズが欲しくなる場面なんだけど。
これでも結構辛いのでマクロレンズを手持ちで撮る自信無いよ。

しかしやはりレンズ交換が面倒、二台持ちに戻したい。
でも超望遠では OM Workspace の AI ノイズリダクションが必須。
サブ機ではオリンパスブルーにしたい、つまり両方 OM SYSTEM に。
うーん困った、OM-1 を買えば他を含めすべてが解決するんですけど。

と思ったらビックやヨドバシで OM-1 が 22 万に値下げされてる。
今ならキャッシュバックもあるし、そろそろ頃合いかな。

u

昨日の五条川、今日は収穫ゼロ。。。

u_kamo

カワウとカルガモ、飯が被っていないので仲良く共存。
しかしカワウってデカいし足の筋肉が凄い、可愛くないけど。

kawau

二月の撮影した繁殖期カラーだけどこの時期は少しカッコイイ。
しかしアオサギもそうだけどコイツら人間怖れすぎ、ということで。

aosagi

君たちはどう生きるか、は観ていないけどアオサギ。
逆光だったけど反射のおかげでカッコイイ写真になった。
こういう動かない鳥はフォーカスを端にして撮ると勝手にいい感じに。

センスとかテクニックとか才能とかそんなもの関係なくて。
「こうやってみたら上手くいったので機会があったら又やろう」
という経験値の積み重ねですよね、プログラミングも写真も。
動きの激しい小鳥はどうしても日の丸構図になってしまうけどさ。

JavaScript Object for-in

つい最近知ったのですが。
JavaScript のオブジェクトで for-in は順序固定になっていた。

#!/usr/bin/gjs

let text = 'あいうえおかきくけこ';
let ls = {};

for (let s of text) ls[s] = s+s+s;

for (let key in ls) print(`Key=${key} Value=${ls[key]}`);

gjs

マジだ、ES2020 かららしい。

これができないのが主な理由で ES6(ES2015) で Map が追加された。
Map なんて誰も使わなかったということなのだろうか。

JavaScript その他 – Paepoi
書き換えしなきゃなぁ、どんどん情報が古くなる。

そういえば Python の連想配列も 3.7 から順序固定になっていたんだっけ。
collections.OrderedDict は存在すら知らない人も多いし。

#!/usr/bin/env python3

text = 'あいうえおかきくけこ'
ls = {}

for s in text: ls[s] = s+s+s

for key in ls: print(f'Key={key} Value={ls[key]}')

まったく同じですね、流行なのかな。
まてよ、もしかして GLib なんかも。

#include <glib.h>
#include <glib/gprintf.h>

void
printfunc(gpointer key, gpointer value, gpointer user_data) {
    g_printf("key=%s value=%s\n", key, value);
}

int
main (int argc, char *argv[]) {

    GHashTable *table;

    table = g_hash_table_new(g_str_hash, g_str_equal);
    g_hash_table_insert(table, "あ", "あああ");
    g_hash_table_insert(table, "い", "いいい");
    g_hash_table_insert(table, "う", "ううう");
    g_hash_table_insert(table, "え", "えええ");
    g_hash_table_insert(table, "お", "おおお");
    g_hash_table_insert(table, "こ", "こここ");
    g_hash_table_insert(table, "け", "けけけ");
    g_hash_table_insert(table, "く", "くくく");
    g_hash_table_insert(table, "き", "ききき");
    g_hash_table_insert(table, "か", "かかか");
    //
    g_hash_table_foreach(table, printfunc, NULL);
    return 0;
}

glib

やっぱり駄目でした、普通はこうなるし。
C を久々に書いてみたけどメンドクセー!

Oniyuri

今日の五条川。
この時期の大口某所、ってヒマワリ畑は今年は無しなのね。

oniyuri

代わりにこんな厨二病全開な花を見つけたよ。
オニユリっていうらしい、五条川の土手に自生していた。

oniyuri

標準レンズも持ってきたけど面倒なので超望遠のまま、イイじゃん。
もうレンズはパナライカ 100-400 一本でもいいんじゃないかとか。

kawasemi

川底に立つカワセミ、珍しいものが撮れた。
砂に嘴を突っ込んでいたけど貝か何かがいるんだろうか?

shijyuukara

シジュウカラの若様、水浴びをしに来た所をパシャリ。
何カラだ?ってこの辺りにはシジュウカラしかおらんわい。

kawarahiwa

同じくカワラヒワ、この鳥って水浴びばかりやっているなって。
野鳥の少ない夏場では貴重なターゲットですね。

暑すぎるので午前中でやめ、ビールじゃビールじゃ。
バテバテのカラスをチャリで轢きそうになったし熱中症に気おつけて。

JavaScript filter

最近 JavaScript をまったくやっていないことに気がついた。
ES2023 とかどうなっているんだろう、全然知らないので検索。

JavaScriptのES2023・ES2022の新機能まとめ – ICS MEDIA

jxa

JXA てか JavaScriptCore は ES2023 対応だ、まあ Safari が対応済ですし。
Gjs は駄目だった、おいおい Spider Monkey さん。
ECMA Script を定義しているのって Mozilla さんなのに。

しかし配列の非破壊操作か、Tips を書くときに短くできるメリットはあるけど。
いや大規模な Web アプリとかなら必要になるのかもな。

配列を征する者はJSを制す。JavaScriptのスマートな配列操作テクニック – ICS MEDIA

filter は便利そうですね。
というか Python の内包表記みたいに使えるんでないの。

#!/usr/bin/env python3

ls = ['aa.js', 'bb.py', 'cc.js', 'dd.png', 'ee.js', 'ff.json']

# *.js を抜き出す
jss = [s for s in ls if s.endswith('.js')]
print(jss)

python

#!/usr/bin/gjs

let ls = ['aa.js', 'bb.py', 'cc.js', 'dd.png', 'ee.js', 'ff.json'];

// *.js を抜き出す
let jss = ls.filter(s => s.endsWith('.js'))
console.log(jss)

JavaScript

なんだ便利じゃん、今度からコレ使おう。
あと関係ないかもだけど。

log

Gjs でも console.log が使えるようになっていた、知らなかった!
以前から使えた log とは少し出力が違うのね、いや基本 print を使うけど。