ブログ内検索

プログラミング教室
オンライン肥料教室を開催しています
 

Go言語でpackage

/** Geminiが自動生成した概要 **/
Go言語のpackage機能は関数をまとめて再利用や配布を可能にする。package名は作成するフォルダ名と同じにする。同じ階層のpackageを読み込むにはimport "./パッケージ名"を使用する。package内に複数の関数があっても、呼び出すときに指定する必要はない。また、Go言語には最初から組み込まれたpackage(例えばtime package)があり、それらを利用することもできる。

 

大きくて密集した花たち

/** Geminiが自動生成した概要 **/
道端でセイヨウタンポポの大きな花が目についた。特に密集して咲いているものの花が大きく、写真では分かりづらいがその大きさが気になった。セイヨウタンポポは単為生殖のため、昆虫による花粉媒介は不要である。にもかかわらず、大きく目立つ花を咲かせるのは、他の植物との光の競争に勝ち、受粉関係の流れを掌握しようとしているかのようだ。

 

SOY CMSで一つのページで複数のブログページのカテゴリ一覧を出力してみる

/** Geminiが自動生成した概要 **/
SOY CMSで複数のブログページを作成した場合、各ページのカテゴリ一覧を他のページで出力するモジュール「cms:module="common.multi_blog_category"」が追加されました。使用方法は、モジュール内に「b_block:id="category_on_{ブログページのURI}"」と記述します。これにより、ブログページ毎のカテゴリ一覧を出力できます。例えば、ブログ1ページ(URI:blog)とブログ2ページ(URI:sub/blog)のカテゴリ一覧を標準ページに出力するには、「b_block:id="category_on_blog"」と「b_block:id="category_on_sub_blog"」を使用します。このモジュールにより、標準ページから他のブログページのカテゴリ一覧にアクセスし、各ブログのカテゴリページに移動できるようになります。

 

Go言語で関数

/** Geminiが自動生成した概要 **/
Go言語では、関数は `func` キーワードを使用して作成され、引数とその型を定義できる関数です。関数は、エントリーポイントである `main` 関数から呼び出されます。整数同士の和を表示する関数 `sum` を作成する場合、関数は次のようになります。```gofunc sum(i int, j int) int {return i + j}```返り値がある関数は、その型を関数シグネチャに指定します。たとえば、`sum` 関数は `int` 型の値を返します。複数の値を返す関数は、関数シグネチャにタプルの型を指定します。たとえば、`sum` 関数が和とブール値を返す場合、そのシグネチャは次のようになります。```gofunc sum(i int, j int) (int, bool)```

 

上に伸びるカラスノエンドウ、下で構えるドクダミたち

/** Geminiが自動生成した概要 **/
フェンス際に生い茂るドクダミの隙間から、カラスノエンドウが巻きひげを使って上へ伸びている。巻きひげがなければドクダミに覆われてしまうが、上方に伸長してもドクダミの葉を覆うことはほとんどないため、ドクダミへの影響は少ない。むしろ、カラスノエンドウの根粒菌はドクダミにもプラスの効果をもたらすと考えられる。ドクダミは、まるで王者の風格で悠然と構えているようだ。

 

Go言語で変数

/** Geminiが自動生成した概要 **/
Go言語で変数の使い方を解説しています。整数型(int)は数値、文字列型(string)はダブルクォートで囲みます。実数型(float64)は小数点を含む数値、論理値型(bool)はtrue/falseを扱います。変数を宣言し、値を代入し、print関数で表示します。値を代入しないbool型変数はfalseになります。

 

php-webdriverでセレクトボックスの値を選択する2

/** Geminiが自動生成した概要 **/
php-webdriverでセレクトボックスの値をvalue属性で選択する方法について。以前は表示名("京都府")で選択する方法を紹介したが、今回はvalue("26")で選択する方法を解説。`WebDriverBy::name()`でセレクトボックス要素を取得後、`WebDriverBy::cssSelector("option[value='26']")`で目的のoption要素を特定し、`click()`で選択する。チェーンメソッドで簡潔に記述できる。

 

SOY Shop内でパイプハウスの施工管理アプリを開発しました

/** Geminiが自動生成した概要 **/
SOY Shopの在庫管理機能と管理画面からの注文登録機能を拡張し、パイプハウスの見積書作成アプリを開発。従来のエクセル管理では、膨大な部品の仕入れ値確認に時間と手間がかかっていたが、新アプリでは商品登録時に仕入れ値を記録することで、次回以降の見積書作成時の再確認作業を大幅に削減。商品名検索によるカート追加や、検索結果にない場合の即時商品登録機能も実装。さらに、見積書の商品一覧の並び替え機能、注文内容の自動バックアップ機能も追加することで、作業効率と正確性を向上。これらの機能はパイプハウス以外にも応用可能で、既存のネットショップ運営における経費削減にも貢献する。開発したパッケージは専用サイトからダウンロード可能。

 

Go言語でHello World

/** Geminiが自動生成した概要 **/
Go言語で"Hello World"を表示する方法を解説。Go環境設定後、workspace内のgoディレクトリにmain.goファイルを作成する。`package main`と`func main(){}`は必須。`print("Hello World")`を{}内に記述し、Ctrl+Shift+Bで実行すると"Hello World"が表示される。Atomの設定でBを押すと実行されるよう設定されている。 別の方法として、MINGW64などのコマンドラインから`go run main.go`を実行しても"Hello World"が表示される。

 

妻にプログラミングを教えることにした-後編

/** Geminiが自動生成した概要 **/
妻にGo言語を教えることにした。プログラミングを教えることで、教える側も理解を深め、学習効率が上がるためだ。Go言語を選んだ理由は、初心者にも扱いやすい点が多いからである。go runでLL言語のように手軽に実行でき、go buildでコンパイルもできる。システムプログラミングにも触れられるため、コンピュータの仕組み理解に役立つ。go fmtやgo importによる自動整形・補完でコードの書き方に迷うことも少ない。また、オブジェクト指向がないため学習コストが低い。冗長になりやすい、他言語学習時に混乱する可能性があるという欠点はあるものの、プログラミング入門には最適だと考える。妻の変化が楽しみだ。

 

妻にプログラミングを教えることにした-前編

/** Geminiが自動生成した概要 **/
妻にプログラミングを教えるのは、SOY Shop開発への協力を期待しているからではなく、プログラミングを通して「相手に的確に指示を伝える能力」を身につけてほしいからだ。事務職希望者が多い一方、経営者側は事務作業をコストと捉える現状がある。プログラミングは、パソコンを部下に見立て、明確な指示を出す訓練となる。これは事務作業の効率化にも繋がる。また、電話での行き違いによる業務の非効率性を指摘し、プログラミング的思考で事前に情報を整理し伝えることの重要性を説く。最終的には、どんな業種でも発生する事務作業を効率化し、円滑なコミュニケーション能力を養うことが目的である。

 

菜園ナビ公式イベント『楽しく学ぼう!第1弾 in 関西』で基肥の話をしました

/** Geminiが自動生成した概要 **/
菜園ナビのイベントで、基肥を中心とした土づくりについて講演しました。オーレック社運営の菜園ナビ5周年イベントで、ネギ栽培や長野県栄村の倒伏しない稲作の事例、そして京都農販の試験圃場と師匠の畑で見られる雑草遷移の観察から、土地資源と植物性有機物の活用、土壌のミネラルバランスの重要性を解説しました。雑草の種類の変化は土壌の状態を反映しており、土壌改良の指標となります。講演では、過去のネギ栽培に関する施肥設計の記事、栄村の稲作に関する記事、雑草遷移に関する記事も紹介しました。これらの実践例を通じて、健全な土壌づくりが、農薬の使用を減らし、高品質な作物を育てる鍵となることを示しました。

 

栽培環境は草達が教えてくれる

/** Geminiが自動生成した概要 **/
土壌改良の指標として、特定の雑草の植生変化が有効である。酸性土壌を好むヤブガラシが減少し、微酸性〜中性の土壌を好むシロザ、ホトケノザ、ナズナ、ハコベが増加した場合、土壌pHが改善され、理想的なpH6.5に近づいている可能性が高い。これは、土壌シードバンクの考え方からも裏付けられる。 土壌pHの安定化は、炭酸塩施肥や植物性堆肥の蓄積によって実現するが、特に後者は土壌改良の他の要素向上にも繋がるため、植生変化は精度の高い指標となる。加えて、シロザは次世代の緑肥としても有望視されている。

 

php-webdriverでiframe内のリダイレクトに対応する

/** Geminiが自動生成した概要 **/
PHPのWebDriverを使って、SOY CMSのiframe内リダイレクトを含む操作を自動化する際、リダイレクト後に要素が見つからないエラーが発生した。iframe内でリダイレクトが発生する度にsleepを挟むことで解決。Seleniumはiframe内のリダイレクトを即座に認識できないため、sleepで待機時間を設ける必要がある。TinyMCE操作時と同様に、iframe操作ではリダイレクトの有無に関わらずsleepを挟むのが安定動作の鍵となる。

 

SOY Shopで返金管理プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop向け返金管理プラグインが開発されました。注文詳細画面から返金・増額の振込額や銀行口座情報を登録可能になり、管理画面の注文一覧検索で返金関連情報による絞り込み検索もできるようになりました。 プラグインはsaitodev.coからダウンロードできます。このプラグインは、注文毎のキャンセルや変更に伴う返金・増額を記録し、処理状況を追跡する機能を提供します。注文状態に「返金処理待ち」ステータスも追加され、より詳細な注文管理が可能になります。 これは、既存の注文検索フォーム拡張ポイントと注文状態・支払状況フラグ追加拡張ポイントを利用して実現されています。

 

時には引いてみるのもいいはずだ

/** Geminiが自動生成した概要 **/
## ブログ記事要約:筆者は、いつもの道で見つけたヤマブキの花に、ところどころ花弁の脱色が見られるのを発見した。この珍しい光景に、芸術における「足してダメなら引いてみる」という考え方を思い起こす。不完全な「脱色」がある株を離れて見ると、「おや?」と思わせる独特の美しさや個性が際立っていたのだ。この日常の中の発見は、何かを「引く」ことで新たな魅力や視点が生まれることを示唆している。芸術家だけでなく、開発者やアイデアマンも、このような逆転の発想からヒントを得ているのではないかと、筆者は考察する。時には完全ではない状態が、かえって本質的な価値や創造性を引き出すことを教えてくれる、示唆に富んだ一文。

 

php-webdriverで現在開いているページのURLを取得する

/** Geminiが自動生成した概要 **/
php-webdriverで現在開いているページのURLを取得するには、`$driver->getCurrentURL()`メソッドを使用します。SOY CMSの管理画面で記事やラベルのIDを取得するためにこのメソッドを利用し、取得したURLから`substr()`と`strrpos()`を組み合わせてID部分を抽出できます。正規表現による抽出はメモリ消費が大きいため、文字列操作で対処しています。ただし、GETパラメータや#を含むURLの場合は、事前にそれらを除去する処理が必要です。

 

酵素の中の電子達

/** Geminiが自動生成した概要 **/
酵素は触媒反応で物質を変化させエネルギーを獲得する。その中心は電子の獲得と利用。電子伝達系では、糖から電子を取り出し、水素イオンの濃度差を利用してATPを生成する。電子は粒子と波動の二重性を持つため、量子力学的な理解が必要となる。酵素反応では、量子トンネル効果により、通常必要なエネルギーを使わずに基質から電子を取り出せる。つまり、酵素が持つ特異的な構造が、量子トンネル効果を促進し、効率的なエネルギー獲得を可能にしていると考えられる。

 

量子力学で生命の謎を解く

/** Geminiが自動生成した概要 **/
酵素の働きを量子力学的に理解すると、そのメカニズムがより明確になる。生物は高カロリー物質を低カロリー物質に変換する際、酵素を用いて必要なエネルギーを減少させ、その差分を生命活動に利用する。酵素反応は、電子の授受という観点から説明できる。金属酵素では、マンガンなどの金属が基質を引きつけ、反応を促進する役割を担う。つまり、酵素は電子の移動を制御することで、効率的なエネルギー変換を実現している。

 

続・Ideapad 720SにUbuntuを入れてWi-Fiを使用する

/** Geminiが自動生成した概要 **/
modprobeコマンドはLinuxカーネルモジュールを管理する。カーネルモジュールは、デバイスドライバやファイルシステムなど、カーネルの機能を拡張するコンポーネント。modprobeを用いて、これらのモジュールを動的にロードまたはアンロードできる。これは、システムリソースを効率的に使用し、必要に応じて機能を追加/削除する柔軟性を提供する。 ArchWikiのカーネルモジュールページでは、モジュールの種類、ロード方法、設定ファイル、トラブルシューティングなど、詳細な情報が提供されている。

 

仄暗い石の間から

/** Geminiが自動生成した概要 **/
寒空の下でも元気に咲くカタバミのたくましさに注目しています。カタバミは、コンクリートの隙間や石垣など、一見すると植物にとって厳しい環境でも生育することができます。これは、カタバミが他の植物に比べて低い生育温度で光合成を行うことができるためです。加えて、カタバミはシュウ酸を生成し、他の植物の生育を阻害することで、競争に打ち勝ちます。さらに、種子や鱗茎、匍匐茎による繁殖力の高さも、カタバミの繁栄を支えています。これらの特性により、カタバミは他の植物が生き残れないような環境でも繁殖し、群落を形成することが可能です。

 

ほぼ垂直の傾斜に根付く

/** Geminiが自動生成した概要 **/
ほぼ垂直の崖面にタンポポのようなキク科植物のロゼットが根付いていた。周りの土が削れていることから、比較的最近露出した場所だと推測される。綿毛付きの種子が風に乗り、崖面にぶつかって根付いたと考えられる。他の植物の種子では到達しにくい場所に、キク科植物は風を利用して根付くことができる。このことから、キク科植物は斜面の崩壊防止に重要な役割を果たし、山の維持に貢献していると言える。

 

草達はちょっとしたひび割れを常に狙っている

/** Geminiが自動生成した概要 **/
塀のひび割れは、植物にとって格好の侵入口となる。写真のホトケノザのように、植物は垂直な壁面でもひび割れに根を張り成長する。植物の根から分泌される酸は、コンクリートの炭酸塩を溶かす作用があるため、風化を加速させる。ひび割れは酸素の侵入も容易にし、風化作用をさらに促進する。結果として、わずかなひび割れも植物の根酸と風化によって拡大し、塀のような人工物にとって深刻なダメージとなる。所有者にとっては、ひび割れの発生は早急な対応が必要な脅威と言える。

 

排水口から滴り落ちる水で繁茂

/** Geminiが自動生成した概要 **/
ブログ記事は、排水口周辺にカタバミが異常に繁茂している状況を報告。筆者は当初、排水からの水を要因と推測するも、排水口上部での繁茂から別の原因を考察します。カタバミは強酸性のシュウ酸を含有しており、コンクリートなどの人工物の劣化を招く恐れがあると指摘。最終的に、排水口のすぐ奥が家庭菜園であることから、肥料の過剰使用がこの特異な繁茂の主要因であると結論付けています。

 

冒険の身支度は美大のカフェで

/** Geminiが自動生成した概要 **/
京都造形芸術大学内にあるカフェ・ヴェルディには、大学に寄贈された本が置かれたスペースがある。美術大学らしくない、地質学や宇宙関連の本が多く、中には特定の土地でしか買えないような珍しい本も。筆者は室戸ジオパーク訪問前にここで予習することを決意。カフェの存在だけでなく、美術創作の多様な着想源を示す興味深いエピソードとなっている。

 

春の訪れと共に大犬の陰嚢

/** Geminiが自動生成した概要 **/
オオイヌノフグリは、早春に鮮やかな水色の花を咲かせる越年草。その名前は果実の形が犬の陰嚢に似ていることに由来する。寒さに耐える工夫として、細胞内の糖濃度を高め、葉の毛で保温する。花は、中央に白い雌蕊があり、両側に雄蕊が配置されている。昆虫が蜜を吸う際に雄蕊と雌蕊に触れ、自家受粉を行う仕組み。他家受粉の可能性もある。花弁は大きさや色の濃淡が異なり、昆虫の着地目印になっていると考えられる。

 

Ideapad 720SにUbuntuを入れてWi-Fiを使用する

/** Geminiが自動生成した概要 **/
Lenovo Ideapad 720SにUbuntu 18.04β版をインストールしたが、内蔵Wi-Fiアダプタは使用できなかった。Wi-Fiアダプタ自体はRealtek製で物理的には動作しているものの、対応するドライバが見つからない。ArchWikiやRealtek、Githubのリポジトリを調査した結果、rtl8821ceドライバが必要だとわかったが、Ubuntuに導入できる形では提供されていない。そのため、現時点ではUSB接続のPocketWifiを利用してインターネットに接続している。


Powered by SOY CMS  ↑トップへ