投稿者「sasakima-nao」のアーカイブ

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 を使うけど。

Hasu

今週の土日はいかにも梅雨らしい雨模様。
湿気が凄いのでエアコンの効いたお家でのんびり。
流石に飽きた、ハスの花でも撮影にいこう。

hasu

近場の名所を知らないので名古屋市の某公演へ。
ポケ GO のおかげでココにならハスがあるって知っていたので。

hasu

標準ズームでは無理なのでここからパナライカ 100-400mm へ。
300mm にて、ワイド端とテレ端以外を意図的に使ったの初めてかも。

hasu

しばらくすると雨に、よし狙ったとおりだ。
ワイド端にて、雨水の線が思ったより細いなぁ。

hasu

テレ端で、こっちのほうがはっきりと雨が写るのね。
ぶっちゃけさ、超望遠ってテレ端とワイド端しか使わないよね。

hasu

花もいいけど天然のワイングラスもいいじゃないか。
雨中の撮影も楽しいや、いや湿気はどうにもならんけど。

ところでこの E-M5 Mark3 なんだけど。
EVF を覗いた状態から液晶タッチで AF ターゲットが動くんだが。
以前はできなくて困ったはずなのに何故だ。
ファームウエアもそのまんまだしなにか設定弄ったせいかな?
イマイチこいつの設定を筆者は理解できていない。

signal

先日 Python コードが実行できなくなっていて焦った。
でもソースを他のディレクトリに移動したら普通に動いた。
パーミッションや SE Linux コンテキストは問題無い、あれ?

本日原因が判明。
signal.py というファイルが同一ディレクトリにある、中身は関係ない。
from gi.repository import *** を行う。
という条件を満たすとエラーになる、他の from なら問題ないようだけど。
ついでに __pycache__ も同一ディレクトリに作られてしまう。

signal

import しなくても存在するだけで影響を受ける場合があるんですね。
モジュールに存在するファイル名を付けては駄目というお話でした。

それだけではアレなので。
下記のサンプルコードがいつのまにか GTK4 になっていました。

Overview ? PyGObject

いつまで GTK3 のまんまなんだよと思っていたけどやっとか。
set_application_name は意味無いだろ、は置いといて。
せっかくこんなネタなので signal の所を見てみよう。

Signals ? PyGObject

PyGObject で signal の定義はデコレータを付けるだけなのか。
シグナル名は関数名そのままってことでいいのかな、実験してみよう。

#!/usr/bin/env python3

import gi
gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')
from gi.repository import Gtk, Adw, GObject

class Win(Gtk.ApplicationWindow):
    def __init__(self, a):
        manager = Adw.StyleManager.get_default()
        manager.set_color_scheme(Adw.ColorScheme.DEFAULT)
        Gtk.ApplicationWindow.__init__(self, application=a)
        button = Gtk.Button(label='Click!')
        button.connect('clicked', self.on_button_clicked)
        self.set_child(button)

    def on_button_clicked(self, button):
        self.emit('my_signal')
        print('Button Signal')

    @GObject.Signal
    def my_signal(self):
        print('My Signal')

app = Gtk.Application()
app.connect('activate', lambda a: Win(a).present())
app.run()

signal

うん、普通に emit をキャッチできますね。
非同期になるわけではないしこういう使い方では関数と変わらないですが。
自作 widget に signal を実装したい場合こんなに簡単にできるみたいです。

Signals ? Building an Application ? GTK4 + GJS Book

ちなみに Gjs はこう、メンドクセー。
そりゃみんな PyGObject を選ぶよって。

hibari

今日は何故か芝生の中でヒバリのメスがハアハアしていました。
暑いなら日陰にいけばいいのに、日陰はカラスが占領していたけど。

Gakuajisai

十円ハゲみたく外側にだけ花が付いたアジサイ。
ハゲの部位がだんだん大きくなり普通のアジサイになると思っていた。

ガクアジサイの花言葉|種類、特徴、色別の花言葉  | LOVEGREEN(ラブグリーン)

あれってガクアジサイというアジサイの原種だったんですね。
しかも花に見える部位はガクで本当の花は十円ハゲだったなんて。
てことで 12-40 PRO レンズを持って小牧の某公園へ。

gakuajisai

改めて本当の花部分を見ると凄い複雑な形なんだなって。
久々にフォーカスクラッチを使った、存在を忘れる使用歩度。

gakuajisai

クリオネが沢山いるみたいな何ともいえない花なんですね。
今まで気にしたことなかった、新たな発見はジジイになっても嬉しい。

gakuajisai

いつもの 17mm にしてフォーカスは十円ハゲに。
我ながらイイ感じ、やっぱりオリンパスは青がいい。

gakuajisai

クマバチが現れた、ガクには目もくれず花ばかりに止まる。
なるほど、蜂はわかっているんだねって。

なんだよホンアジサイよりガクアジサイのほうが綺麗じゃん。
いや人によるけど、花も鳥も知れば知るほど面白くなる。