/** Geminiが自動生成した概要 **/
SOY CMSの開発秘話は、製作者の齋藤氏がフリーランス時代に抱いた「誰でも簡単にサイトを作れるCMSを」という理念から始まります。当時主流だったMovable Typeは高価で、レンタルサーバーの普及に伴い手軽なCMSの需要が高まっていました。そこでPHPとMySQLで動作するCMSを開発することを決意。試行錯誤の末、2004年にSOY CMSの前身となる「SOY Shop」をリリースしました。 当初はECサイト構築に特化していましたが、ブログ機能やニュース機能などCMSとしての需要に応える形で進化。2007年にSOY CMSとして独立し、現在に至ります。開発当初からオープンソース化を目指し、誰でも自由に利用・改変できる柔軟性が大きな特徴となっています。
アーカイブ : 2018年04月
SOY CMSの記事のCSVエクスポートでラベルで絞り込みを追加しました
米の美味しさの鍵は糊化
/** Geminiが自動生成した概要 **/
米の美味しさの鍵は、炊飯時の糊化、特にデンプンの断片化にあります。 白米の浸水時に胚乳にクラック(ひび割れ)が生じ、そこから水が浸入し糊化が始まります。クラックが多いほど糊化が進み、甘みが増すと考えられます。 美味しさはクラックの発生しやすさだけでなく、クラック後にアミラーゼがどれだけ活発に働くか、つまり胚乳内に含まれるアミラーゼの量に依存します。アミラーゼはタンパク質なので、胚乳形成時にどれだけアミノ酸が分配されたかが重要です。アミノ酸の種類によっては吸水力に影響し、クラックの発生や炊き上がり後のご飯粒が立つ現象にも関与している可能性があります。 ultimately、光合成を促進しアミノ酸合成を活発にする健全な栽培が美味しい米作りに繋がります。
米は炊飯時に糊化される
/** Geminiが自動生成した概要 **/
米の美味しさは、デンプンの量よりデンプン分解酵素アミラーゼの効率性に依存する。アミラーゼはタンパク質と補酵素(カルシウムイオン)から成るが、カルシウムは土壌に豊富なので、米の美味しさへの直接的影響は少ないと考えられる。 米は炊飯時に糊化(アルファ化)し、デンプンの水素結合が切れ、酵素が分解しやすくなる。 糊化が進むほど、唾液中の酵素で糖に分解されやすくなり、甘みが増す。 記事では、米の美味しさの鍵となるアミラーゼの効率性、関連する酵素、タンパク質、アミノ酸、補酵素について解説し、糊化に関する論文を紹介している。
菜園ナビ公式イベント『楽しく学ぼう!第2弾 in 関東』で基肥の話をしました
/** Geminiが自動生成した概要 **/
菜園ナビ公式イベント in 関東で、基肥についての講演が行われました。内容は関西での講演と同様で、ネギ栽培における施肥設計の重要性と、長野県栄村小滝集落の台風でも倒伏しない稲作事例を基に、土地資源と植物性有機物の活用について解説しました。ネギ栽培では適切な施肥設計により農薬防除回数を減らせることが示され、小滝集落の稲作では土壌の保肥力向上と健全な生育を実現している点が紹介されました。これらの事例は「粘土鉱物を理解する旅」で詳細に解説されており、土壌の特性を理解し、適切な基肥を用いることで、健全な作物生育と環境負荷低減が可能になることを示唆しています。
今年も長野県栄村小滝集落のコメをいただきました
/** Geminiが自動生成した概要 **/
長野県栄村小滝集落産の極上米「コタキホワイト」を食した著者は、炊き上がった米粒の輝きと美味しさの関連性について考察する。粒の光沢は、表面の傷が少ないこと、そしてデンプンが水を吸って張りを出すことによるのではないかと推測。収穫機械の性能や米とぎの影響を考慮し、米粒自身の性質、特にデンプンの吸水性に注目する。デンプン量と食味の関係、地質や栽培技術との関連にも触れ、最終的に「米飯粒内の糊化進行過程の可視化」という論文に辿り着き、更なる考察を次回に持ち越す。
水親和性セルロースとは何だろう?
/** Geminiが自動生成した概要 **/
水親和性セルロースは、植物の細胞壁を構成するセルロースを細かく分解した肥料です。通常のセルロースは水と馴染みにくいですが、水親和性セルロースは分解によって増えたOH基(ヒドロキシ基)が水分子と結びつくため、保水性が高まります。土壌にこれを施すことで、水分の保持を助け、植物の成長を促進する効果が期待できます。
硬い幹の表面に根付きたい
/** Geminiが自動生成した概要 **/
森の木に寄生する植物を観察した。寄生植物は不定根を宿主の幹に食い込ませ、養分を吸収している。興味深いのは、不定根が四方八方に伸びている点だ。寄生に必要な数より多く、無駄に見える。根の生成コストは寄生によるコストより低いのか?あるいは、空気中からも何かを吸収しているのか?疑問が残った。
SOY CMSの記事投稿時の画像のアップロードでファイルマネージャをメインで使用する
/** Geminiが自動生成した概要 **/
SOY CMSの記事投稿画面で画像アップロード時にファイルマネージャを優先利用するための設定方法を紹介しています。サイト設定で「記事投稿時のおイメージの挿入設定」を行い、希望のアップロード方法(ファイルマネージャ、ドラッグ&ドロップ等)にチェックを入れます。これにより、記事投稿画面の画像挿入時に設定した項目がデフォルトで選択された状態になります。記事では、ファイルマネージャを優先利用するための設定例を画像付きで解説し、より使いやすくする方法を提案しています。関連記事として、SOY CMSで使用しているelFinderでjsファイルのアップロードを許可する方法を紹介する記事へのリンクも掲載されています。
妻にプログラミングを教えることにした-続き
/** Geminiが自動生成した概要 **/
プログラマは、システム不具合の多くが「想定外の使い方」に起因するため、電話での口頭説明ではなく詳細な情報提供を求める。これは、プログラミングが物理法則に縛られず、思考がそのまま反映されるため、想定外の動作が顕著な不具合となる特性による。効率的な情報伝達と問題解決のため、プログラマはコーディング規約、高機能エディタ、テスト自動化、タスク管理ツール、オープンソースといった手段を活用し、思考すべき点とそうでない点を明確化し、再発防止と情報共有を促進する。妻にプログラミングを教えるのは、これらの思考プロセスと情報伝達の重要性を体験させ、世界中の資産を活用する術を学ばせるためである。
大事なことをどこまで削れるか?
/** Geminiが自動生成した概要 **/
セイヨウタンポポの侵略に押されつつも、和タンポポは今も健在。コンクリートの隙間のような過酷な環境でも、たくましく生き抜いている様子が観察される。繁殖戦略の面で、セイヨウタンポポは単為生殖で効率的に子孫を増やす一方、和タンポポは虫媒による他家受粉を選択。多様性を維持することで環境変化への適応力を高めていると考えられる。都市環境において、和タンポポは個体数は少ないながらも、セイヨウタンポポとは異なるニッチを見つけて共存している。
Go言語で配列
/** Geminiが自動生成した概要 **/
Go言語で配列を扱う方法を示すコード例です。10個の文字列を格納できる配列`array`を宣言し、"ryoko"、"usako"、"kumata"を初期値として代入しています。`fmt.Println(array)`で配列全体、`fmt.Println(array[1])`で特定の要素を表示できます。`for i:=0; i<10; i++`のような通常のforループに加え、`for i, v := range array`を使うことで、インデックス`i`と値`v`を取得しながら配列の各要素にアクセスできます。インデックスが不要な場合は`for _, v := range array`と記述します。
Apache上で利用しているLet's Encryptの失効
/** Geminiが自動生成した概要 **/
旧サーバーでLet's Encrypt証明書の失効、新サーバーで新規発行の手順を解説。旧サーバーでは、`certbot`を使わず、`/opt/letsencrypt/letsencrypt-auto revoke`コマンドで証明書を失効、`delete`コマンドで関連ファイルを削除。ドメイン名(saitodev.co)を指定して実行。新サーバーでの証明書発行手順は別記事を参照。
桜の季節は終わってはいない
/** Geminiが自動生成した概要 **/
京都府立植物園では、春の終わりに咲く見事な菊桜が見頃を迎えているにも関わらず、訪れる人はほとんどいない。筆者は毎年この菊桜の美しさを紹介し、もっと注目されるべきだと訴えている。菊桜は、春の訪れを象徴する桜の集大成と言える存在であり、ひっそりと咲いているのは大変もったいないと感じている。同じ内容を過去にも記事にしており、関連する「桜の季節終盤」という記事へのリンクも掲載されている。記事には、植物園の場所を示すGoogleマップも埋め込まれている。
チャットワークとGoogle Apps Scriptで音声入力で投稿してみる
/** Geminiが自動生成した概要 **/
Googleドキュメントの音声入力とGoogle Apps Scriptを連携させ、チャットワークへの投稿を音声で行う方法を紹介。 「チャットワーク(投稿内容)終了」と話しかけると、内容がチャットワークに送信されるスクリプトを作成。1分毎にスクリプトが実行され、ドキュメントの内容をチェック、投稿後ドキュメントはクリアされる。APIトークン、ルームIDの設定が必要。音声入力はドキュメントのツールから利用可能。Androidスマホでは音声入力の設定を事前に確認する必要がある。この方法で、両手が塞がっている状況でもチャットワークに投稿可能。実用時はタスク登録ルールやToの指定が推奨される。
頑張った先に希望がある
/** Geminiが自動生成した概要 **/
日陰で繁茂するヨモギの中に、コンクリートの隙間を縫って陽光へと伸びるシュートがあった。最初の画像は日陰のヨモギ群落、次の二枚は少し引いたアングルで、シュートが明るい場所へ到達している様子を示している。この場所は朝だけでなく夕方にも日が当たり、一日を通して日陰になることはない。日差しを求めて力強く伸びるシュートの姿は、「頑張った先に希望がある」という言葉を実感させる力強さに満ちている。
スギナの生き様
/** Geminiが自動生成した概要 **/
スギナはアルミニウム耐性があり、酸性土壌で生育する。根から分泌する有機酸でアルミニウムを無害化し、土壌中のミネラルを回収する。葉の先端の溢泌液には余剰養分が含まれ、土壌に還元される。スギナは自ら生産量は少ないが、有機酸により土壌改良を行い、他の植物の生育を助ける役割を果たしている。その生き様は、繁殖だけでなく、環境への貢献という別の生きる意味を問いかけるようだ。
掴みどころが(少)ない
/** Geminiが自動生成した概要 **/
カヤツリグサらしい草が群生し、他の植物の繁茂を抑えている。スズメノエンドウは巻きひげで他の植物に巻き付く習性を持つが、この細いカヤツリグサ状の草には巻き付けられない。一見地味なこの草だが、他の植物の成長を阻害し、巻き付きも防ぐことで、この場所では春の強者となっている。通常は目立たない存在かもしれないが、この群生の中では生態系の主役と言える。目立つものが生態系を支配しているように見える好例である。
Go言語で繰り返し
/** Geminiが自動生成した概要 **/
Go言語の`for`ループは様々な繰り返し処理を実現する。`for i := 0; i < 10; i++` のように初期値、条件、増分を指定する一般的な方法に加え、`for {}`と`break`を組み合わせた無限ループも可能。`i += 1`は`i++`と同じくインクリメントを意味する。二重ループで九九の計算も容易に実現できる。外側のループ変数 `i`、内側のループ変数 `j` を用いて `fmt.Println(i * j)` で結果を表示する。
春の陣、アナザーストーリー
/** Geminiが自動生成した概要 **/
線路脇の草むらでは、スズメノエンドウとキク科植物の静かな戦いが繰り広げられていた。一見、固い茎を持つキク科植物が優勢に見えるが、スズメノエンドウは巻きひげを巧みに使い、相手の茎を曲げることで抵抗していた。写真では、キク科植物の茎がスズメノエンドウの巻きひげによって左へ、そして右へと大きく傾けられている様子が捉えられている。春の穏やかなイメージとは裏腹に、道端では植物たちの生存競争が繰り広げられているのだ。
Go言語でHTTPのPOST
/** Geminiが自動生成した概要 **/
Go言語でChatWork APIを用いてマイチャットにメッセージをPOSTする手順を紹介。 `http.NewRequest`でPOSTリクエストを作成し、ChatWork APIトークンをヘッダーに設定、`http.DefaultClient.Do`でリクエストを送信する。記事では"GOからのテスト投稿"というメッセージを送り、レスポンスコード200を確認することで成功を確認している。 また、ChatWork APIのルームID、トークンの取得方法については別記事を参照している。
Google Apps Scriptからチャットワークに投稿してみる
/** Geminiが自動生成した概要 **/
Google Apps Script (GAS)を使ってChatWorkに投稿する方法を紹介。ChatWorkClient for Google Apps Scriptライブラリを利用し、APIトークンとルームIDを指定することで簡単にメッセージを送信できる。GASのトリガー機能と組み合わせれば、Gmail受信やGoogleカレンダーの予定に基づいて自動投稿するなど、業務効率化に役立つアプリを簡単に作成可能。ChatWorkとG Suiteの連携で業務改善を実現できる。
線路沿い、春の陣、夏草目線
/** Geminiが自動生成した概要 **/
イヌムギは葉の裏にも葉緑素を持つため、ねじれた葉が多い。これは、春先に繁茂する巻きひげを持つ植物、例えばカラスノエンドウなどに葉を曲げられても光合成への影響を少なくするためと考えられる。つまり、イヌムギの葉のねじれは、巻きひげ植物との生存競争に有利な特性かもしれない。この推測が正しければ、線路沿いのような場所でも植物同士の激しい生存競争を垣間見ることができる。
Go言語でHTTPのGET
/** Geminiが自動生成した概要 **/
Go言語でHTTP GETリクエストを実行する方法を解説しています。`net/http`パッケージの`Get`関数で指定URLにアクセスし、レスポンスを取得します。`ioutil.ReadAll`でレスポンスボディを読み込み、`string`型に変換してHTML内容を表示します。エラー処理も実装し、最後に`response.Body.Close()`でクローズします。記事では、各段階の出力を示しながら、最終的にHTMLを取得するコードを完成させています。
線路沿い、春の陣
/** Geminiが自動生成した概要 **/
線路沿いの夏草が繁茂し始め、スズメノエンドウやカラスノエンドウはフェンスに巻きひげを絡ませながら上に伸びている。巻きひげは夏草の葉を曲げるほどしっかりと絡み、複数の巻きひげが集結している箇所も見られる。一見、エンドウ同士の激しい生存競争のようだが、俯瞰すると夏草の勢力に圧倒されているようにも見える。フェンスがあることで上に伸びることを選択したエンドウだが、フェンスがなければ横に広がっていた可能性もあり、どちらが有利だったかは分からない。エンドウと夏草が本当に競争しているのかは、草たちにしか分からない。
Go言語でユニットテスト
/** Geminiが自動生成した概要 **/
Go言語では、関数の動作を検証するためにユニットテストを行います。テストコードの作成には、以下のような手順があります。1. テストしたい関数の前に「Test」を付け、テスト関数を作成する。2. テスト関数に「(t *testing.T)」パラメータを渡す。3. 関数の引数と期待される値を設定する。4. 関数を実行し、期待される値と実際の結果を比較する。テストを実行すると、「ok」または「FAIL」が出力されます。「ok」はテストが成功したことを示し、「FAIL」はテストが失敗したことを示します。テストを失敗させるには、期待される値と実際の結果を意図的に不一致にします。この場合、テスト結果は次のように表示されます。```--- FAIL: TestJudgeEo (0.00s)func_test.go:10: 5は奇数なのでfalseを返さなければいけない```
SOY ShopでTrackingmore連携プラグインでwebhookに対応しました
/** Geminiが自動生成した概要 **/
SOY Shopで国際荷物追跡サービス「Trackingmore」と連携するプラグインを開発し、「webhook」機能を追加しました。webhookでは、配送業者が発送を開始するとTrackingmoreからSOY Shopに通知が届きます。これにより、リアルタイム追跡の手間を省きつつ、SOY Shopの注文状態や発送メールの自動更新が可能になります。この連携により、出荷予定日前に代行業者から発送情報を受け取れなくても、配送状況を監視し、集荷や発送が確認され次第、発送済みメールを自動送信できます。これにより、確認業務が大幅に削減されます。リアルタイム追跡も併用することで、変更情報の確度が向上します。
小さくて複雑な花
/** Geminiが自動生成した概要 **/
この記事は、小さな黄色のマメ科の花の複雑な構造を観察した記録です。コメツブツメクサかコメツブウマゴヤシと思われるこの花は、マメ科特有の舌状の花弁を持つため、蜜を吸える昆虫が限定されます。著者は、クズの花のような大きなマメ科植物と比較しながら、この小さな花の舌状の花弁を写真で示し、花の形状がマクロ撮影でないと分かりにくいことを指摘しています。そして、この小さな花にどんな昆虫が蜜を吸いに来るのか疑問を投げかけ、ハバチなどの小型のハチの可能性を示唆しています。さらに、ハバチの情報はWikipediaへのリンクで提供されています。
Go言語で制御構文のif文
/** Geminiが自動生成した概要 **/
Go言語のif文は条件が真か偽かを判定する制御構文です。変数iが5ならば「iに格納されている文字は5」と表示する例が示されています。==は等価性を表し、!=は不一致を表します。else ifステートメントは複数の条件を処理するために使用できます。elseは、他のすべての条件が失敗した場合に実行されるブロックです。例では、str変数にtestまたはhogeが含まれているかどうかがチェックされ、それ以外の場合は「strに格納されている値はtestもhogeでもありません」と表示されます。最後に、偶数か奇数かを判定する関数を示し、iが偶数であればtrue、奇数であればfalseを返します。
PHPでチャットワークAPIを介してメッセージを投稿してみる
/** Geminiが自動生成した概要 **/
ChatWork APIを使用してPHPからマイチャットに投稿するスクリプトを作成。投稿は成功し、マイチャットに「PHPからテスト投稿」のメッセージが送信された。また、ChatWorkでは電話代行サービスを開始しており、電話対応を減らす取り組みが進んでいる。仕事における電話が嫌煙される傾向が高まっている。
太古の植物たちのもつ熱量
/** Geminiが自動生成した概要 **/
石炭とその燃えかすを観察した著者は、石炭の成り立ちとエネルギー効率について考察している。石炭は太古の植物の遺骸が地中で変成したもので、泥炭から褐炭、瀝青炭、無煙炭へと石炭化が進むにつれ、カロリーが高くなる。石炭の高い熱量は、植物が持つリグニンという成分に由来すると考えられる。現代のバイオマス燃料研究は、木材を効率的に利用する方法を探求しているが、それは石炭の成り立ちを理解することで、木材を高速で無煙炭のような高カロリー燃料に変換する技術へのロマンを感じさせる。
ヤブガラシは栽培者に何を伝えるのか?
/** Geminiが自動生成した概要 **/
栽培地に生える草の植生は土作りの段階で変化し、栄養価の高い土壌ではナズナやホトケノザが増加する。これらの草は厄介な雑草の生育を抑えるため、土壌の環境が整うと雑草の種子が発芽しにくい状況になる。一方、日陰でひっそりと生えるヤブガラシは、土壌の栄養状態に関係なく生育できる。そのため、ヤブガラシの存在は、土壌の栄養状態が悪い、もしくは除草が十分に行われていないことを栽培者に示している可能性がある。ヤブガラシは、雑草の生育が旺盛な土壌よりも、ナズナやホトケノザなどのより丈夫な草が生える土壌で最後に残る可能性がある。つまり、栽培者が除草を怠っていると、ヤブガラシが土壌の健康状態に関する情報を提供している場合がある。
SOY ShopでTrackingmore連携を試作中
/** Geminiが自動生成した概要 **/
SOY Shopと荷物の追跡サービスTrackingmoreを連携するプラグインが作成されました。このプラグインにより、代行倉庫サービスを利用して出荷された商品の発送状況をリアルタイムで確認できるようになります。ただし、現時点では連続でAPIを叩く制限があるため、トラッキング件数の制限や実行間隔の調整が必要です。今後、Webhookを使用した配送状況確認機能が追加される予定です。この機能により、サーバのリソース占有が軽減されることが期待されています。利用に際しては、課題点に留意してください。
日陰にいる草たち
/** Geminiが自動生成した概要 **/
日陰の草むらでは、ホトケノザが繁茂する中、日陰の端にはドクダミ、スギナ、ヤブガラシが生息していた。栽培では厄介者とされるこれらの雑草が日陰に追いやられているのは、ホトケノザが良好な環境を占拠しているため。環境が悪い日陰では、栽培環境の悪さの指標となる草を生やす可能性がある。ヤブガラシは強靭だが、日陰では繁栄できない。ヤブガラシに悩まされる農家は、日陰など栽培環境が悪化していないか確認することが重要となる。栽培環境を改善するには、草が生えている環境に目を向け、そこに生える草の種類をヒントにすることで、栽培環境の問題点を把握できる。
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が自動生成した概要 **/
松尾大社の奥にひっそりと咲くシロヤマブキは、ヤマブキの白花変種。ヤマブキの鮮やかな黄色とは対照的に、純白の花弁が清楚な印象を与える。シロヤマブキは五弁であり、ヤマブキの四弁とは異なる。また、実の数も異なり、シロヤマブキは1つの花に4つの実をつけるのに対し、ヤマブキは1〜2個しかつけない。この記事では、シロヤマブキとヤマブキの違いを詳細に解説している。花弁の色と数の違い、実の数の違いに加え、葉の形状や樹高の違いにも触れている。さらに、シロヤマブキはヤマブキとは異なる種であり、バラ科シロヤマブキ属に分類されることも説明している。松尾大社の境内は、自然が豊かで四季折々の花が楽しめる。特に、ひっそりと咲くシロヤマブキは、訪れる人々に静かな感動を与えてくれるだろう。
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が自動生成した概要 **/
塀のひび割れは、植物にとって格好の侵入口となる。写真のホトケノザのように、植物は垂直な壁面でもひび割れに根を張り成長する。植物の根から分泌される酸は、コンクリートの炭酸塩を溶かす作用があるため、風化を加速させる。ひび割れは酸素の侵入も容易にし、風化作用をさらに促進する。結果として、わずかなひび割れも植物の根酸と風化によって拡大し、塀のような人工物にとって深刻なダメージとなる。所有者にとっては、ひび割れの発生は早急な対応が必要な脅威と言える。