ブログ内検索

プログラミング教材開発
大阪府高槻市原地区で肥料教室を開いています
検索キーワード:「ベース」
 

自宅で親子で学ぶプログラミング教室のオープンしました

/** Geminiが自動生成した概要 **/
2025年の振り返りとして、念願だった自宅での「親子で学ぶプログラミング教室」オープンが報告されました。妻が主体となり、補助金申請から生徒募集までを担当し、初年度の目標生徒数を達成。 本教室はmicro:bitを主要教材とし、小学生はMakeCode、希望する保護者はMicroPythonで学びます。特徴は、前半が小学生向け、後半が保護者向けの時間に分けられている点。保護者向けでは、当初予想に反して音響機器のIoT化やGPS機器の自作といった電子工作が人気でした。貸出PCにはRaspberry Pi 5やChromebookを用意。 今後は、LEGOでのラジコンカー製作やIoT機器の仕組み学習を通じ、小さな街の再現を目指す計画です。

 

人工貯水池にギンヤンマのヤゴの餌と成り得る生物はいるか?

/** Geminiが自動生成した概要 **/
稲作害虫対策として注目されるギンヤンマは、浮葉植物が自生する人工貯水池等で産卵する可能性がある。この記事では、閉鎖的な環境でギンヤンマのヤゴの餌となる生物がいるのかを検証。公益財団法人日本科学協会の事例によると、プールのような閉鎖水域でもギンヤンマが産卵・成長し、ヤゴは生態系の頂点に立つ捕食者として君臨するという。主な餌は、同じ閉鎖環境に多数生息するタイリクアカネやウスバキトンボのヤゴ。特にウスバキトンボは成虫・幼虫ともにギンヤンマに捕食される。ウスバキトンボのヤゴはボウフラ等を食べるため、人工貯水池の環境を整えれば、ギンヤンマの数を増やすことが期待できる。

 

やまどうぐレンタル屋様サイトの韓国語サイトの制作で、生成AIを活用して編集作業を大幅に削減しました

/** Geminiが自動生成した概要 **/
やまどうぐレンタル屋の韓国語サイト制作で、1000件超の商品情報翻訳を担当。膨大な翻訳量を効率化するため、生成AI「Gemini」のAPIをCMSに組み込み、商品情報の自動翻訳・データベース挿入システムを開発しました。 「手ぶら割」など独特な言い回しの翻訳失敗を避けるため、文字列分割・再結合処理を導入。これにより翻訳成功率は約80%に達し、手動修正を含めても当初予定の1/20の作業時間で完了しました。 また、既存の英語・中国語サイトの管理画面におけるページ周りのUI改善も行いました。

 

SOY CMSで静的テンプレートプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの静的テンプレートプラグインは、HTMLファイルから直接テンプレートを読み込むことで、同じデザインの複数ページ管理を簡素化します。従来、URL構造の違い(例:/soycms/soycms/tutorial/1 と /soycms/soyshop/tutorial/1)により、同じデザインでも別ページとして管理が必要でした。このプラグインは静的テンプレートを利用することでこの問題を解決し、管理の手間を削減します。SOY Shopでは標準機能ですが、SOY CMSではプラグインとして提供されます。ダウンロードはsaitodev.co/soycms/ から可能です。

 

鉢底石用の軽石

/** Geminiが自動生成した概要 **/
鉢底石に使われる軽石について、鹿沼土と比較しながら考察している。鹿沼土は脆い一方、鉢底石用の軽石は硬いため、採取地による性質の違いに着目。生成AIが提示した採取地候補のうち、榛名山軽石について調査を進めている。榛名山軽石は6世紀頃の噴出物で、鹿沼土よりも新しい。生成年代の違いが軽石の硬さに影響するのか疑問を呈し、今後の検証を示唆している。

 

白木蓮と辛夷

/** Geminiが自動生成した概要 **/
ハクモクレンとシモクレンはどちらも蕾が生薬「辛夷」の原料となるが、有効成分が異なる。紫色のシモクレンはオイゲノールを含み、白いハクモクレンはエストラゴールを含む。エストラゴールはオイゲノールのヒドロキシ基がメトキシ基に、メトキシ基が水素に置き換わった構造をしている。このベンゼン環における官能基の違いが花弁の色の違いに関連している可能性がある。

 

紫木蓮と辛夷

/** Geminiが自動生成した概要 **/
紫木蓮の花蕾は生薬「辛夷」として用いられ、有効成分はオイゲノールである。オイゲノールはカシワの葉にも含まれる成分。モクレンの生薬は冬芽ではなく花蕾が使われるが、オイゲノールは花弁形成段階で増加するのか、冬芽の葉に他の苦味成分が多いのかは不明。生薬研究は新たな知見につながる可能性がある。

 

キノンはケトンの特徴を持つと捉えると見えるものが増えるはず

/** Geminiが自動生成した概要 **/
キノンを理解するために「キノンはケトン」と捉えるアプローチが紹介されている。ケトンはカルボニル基(-C=O)を持つ化合物で、ホルムアルデヒドやアセトンが代表例。キノンの構造式を見ると、カルボニル基が二つ重なって見えるため、ケトンと類似していると言える。この視点により、キノンへの理解が深まり、腐植の理解にも繋がる。今後はカルボニル基の理解を深めることが重要となる。

 

腐植酸とは何なのか?1

/** Geminiが自動生成した概要 **/
腐植酸は、フミン酸、フルボ酸、ヒューミンに分類される。フルボ酸は酸性・アルカリ性溶液に溶け、植物生育促進効果が高い。これは、カルボキシル基やフェノール性ヒドロキシ基のプロトン化、および金属イオンとのキレート錯体形成による。フルボ酸はヒドロキシ基(-OH)豊富なタンニン由来でキレート作用を持つ構造が多い一方、フミン酸はメトキシ基(-OCH3)を持つリグニン由来でキレート作用が少ない構造が多いと推測される。

 

エビスグサの効能

/** Geminiが自動生成した概要 **/
エビスグサ、別名決明子は、種子と地上部にアントラキノン(クリソファノール、エモジン)、ナフトピロン(トララクトン)という成分を含みます。アントラキノン類は、両端のベンゼン環に水酸基やメチル基が付与された構造を持ちます。エモジンには抗菌作用がありますが、目に直接作用するメカニズムは不明です。決明子は漢方薬として、目の充血や視力減退などに用いられますが、具体的な作用機序は解明されていません。

 

合歓木と合歓皮

/** Geminiが自動生成した概要 **/
筆者は「ネムノキ」を漢方薬の観点から調べた。熊本大学薬学部のデータベースによると、ネムノキの樹皮、花、小枝と葉は薬用として使われ、主な成分はサポニンとフラボノイドである。薬効成分は多くの植物で似ており、フラボノイドの重要性が改めて認識された。ネムノキは漢字で「合歓木」、生薬名は「合歓皮」と、そのままの意味でわかりやすい。

 

アカメガシワの花が咲いていた

/** Geminiが自動生成した概要 **/
舗装された小川に生えるアカメガシワが開花し始め、ハエが集まっていました。アカメガシワは梅雨時から梅雨明けにかけて咲くため、養蜂において重要な蜜源花粉源となります。在来種でパイオニア植物、蜜源、落葉による土壌肥沃化などの特徴から、里山復活においても重要な存在と言えるでしょう。今回は咲き始めなので、満開時にも観察を続けたいと思います。

 

きんぴらに大薊

/** Geminiが自動生成した概要 **/
アーティチョークは、ヨーロッパやアメリカで人気のある野菜です。つぼみの部分が食用となり、独特の風味と豊富な栄養価が特徴です。アーティチョークには、抗酸化作用、コレステロール値の低下、肝臓の健康維持、消化促進などの効果があると期待されています。具体的な栄養素としては、ビタミンC、ビタミンK、葉酸、カリウム、食物繊維などが豊富に含まれています。アーティチョークは、蒸したり、茹でたり、グリルしたりと様々な調理法で楽しまれています。

 

クズの葉は炊ぐ葉に成り得るか?

/** Geminiが自動生成した概要 **/
記事は、クズの葉を柏餅のように使えるかという疑問から、クズの葉に含まれる成分について考察しています。クズの根は葛餅の材料になりますが、葉にも食用となる可能性があるのかを調べた結果、薬用成分であるダイジンが含まれていることがわかりました。ダイジンはアルコール依存症治療の可能性がある一方で、クズの葉を食用にするための十分な情報は得られず、更なる調査が必要です。結論として、現時点ではクズの葉を食用とすることは推奨できません。

 

アカメガシワは代表的な民間薬

/** Geminiが自動生成した概要 **/
アカメガシワは、身近に見られるありふれた木ですが、実は樹皮や葉に薬効を持つ民間薬として知られています。特に樹皮に含まれる「ベルゲニン」という化合物は、強い免疫調節作用を持つとされ、人々の生活に役立ってきました。昔の人々がアカメガシワを生活圏に植えていたのも、その薬効にあやかろうとしたためかもしれません。葉にもベルゲニンが含まれている可能性があり、おにぎりや餅を包むのに利用していたという事実とも関連付けられます。

 

患いを無くすムクロジの木

/** Geminiが自動生成した概要 **/
ムクロジは、神社やお寺に植えられている木で、その実からは天然の界面活性剤であるサポニンが得られます。ムクロジは漢字で「無患子」と書き、これは「病気にならない」という意味が込められています。昔の人は、ムクロジの実を石鹸として使い、健康を願っていたと考えられます。ムクロジサポニンには、風邪の早期回復効果も期待されていたのかもしれません。ムクロジは、単なる木ではなく、人々の健康への願いや歴史が詰まった、文化的にも重要な存在と言えるでしょう。

 

SOY Inquiryの個人情報の取り扱いについて

/** Geminiが自動生成した概要 **/
SOY Inquiryで、削除したはずの問い合わせ内容が管理画面から検索できてしまうという個人情報保護の観点からの指摘に対し、以下の改善策を講じた。 1. 論理削除後30日でデータベースから完全に削除される「自動削除機能」を追加 2. 過去の問い合わせを一括で論理削除しやすくするため、「問い合わせ一覧の件数指定」機能を追加 3. 誤って削除した場合も復元できるよう、「論理削除したレコードの確認・解除機能」を追加 これらの機能はSOY Inquiry 2.8以降で利用可能。SOY Shopでも同様の要望があれば、問い合わせページから連絡を。

 

清水っ粉でできたからまる米すたー

/** Geminiが自動生成した概要 **/
今年の農業における大きな成果は、物理性改善、レンゲの利用、中干しなしの稲作法による米の品質向上です。レンゲは土壌の窒素固定に貢献し、中干しなしの稲作法は雑草抑制と水分保持を促進します。これらの改善により、粒の揃った大粒の米が収穫でき、炊飯すると粘りと弾力が感じられました。この成功は、米の自給率向上と日本の食料安全保障に貢献すると期待されます。

 

春の七草のはこべらの効能

/** Geminiが自動生成した概要 **/
ハコベは春の七草の一つで、利尿、浄血、催乳作用がある。これは、ハコベが肥沃な土壌で育ち、豊富なミネラルを含むことが関係していると考えられる。人の健康は土壌の状態に左右されるため、ハコベの薬効は土の健康さを示している可能性がある。

 

リンゴの果皮の赤色は何の色素か?

/** Geminiが自動生成した概要 **/
ポリフェノールとアミノ酸は、食品の加工や保存中に反応し、褐色物質(メラノイジン)を生成することがあります。この反応は、食品の色や風味に影響を与える可能性があります。ポリフェノールの種類や量、アミノ酸の種類、温度、pHなどの要因によって反応速度は異なります。褐変を防ぐ方法としては、加熱処理、pH調整、酸素遮断などが挙げられます。 (244文字)

 

桃仁の効能

/** Geminiが自動生成した概要 **/
古代中国から邪気払いの力があるとされてきた桃の種「桃仁」には、アミグダリン、プルナシンという青酸配糖体が含まれています。 これらは体内で分解されると猛毒の青酸を生成しますが、ごく少量であれば安全に分解されます。桃仁は、血の滞りを除き神経痛を和らげる効能があり、風邪の予防や生活の質向上に役立ちます。 少量ならば薬、過剰摂取は毒となる桃仁は、まさに邪気を祓うイメージを持つ植物と言えるでしょう。古代の人々がその効能を見出したことに感銘を受けます。

 

国生み最後の地の大倭豊秋津島

/** Geminiが自動生成した概要 **/
この記事は、纒向遺跡の周辺環境と食料生産の関係について考察しています。 筆者は、纒向遺跡周辺は海に近くても稲作に適した土地ではなく、なぜヤマト政権最初の都が置かれたのか疑問視しています。そして、吉野川流域で培われた稲作技術が、都が京都に移るにつれて高度化していったのではないかと推測しています。 最後に、この記事の内容を網羅的に説明できる学問領域を探しています。

 

ヤンバルでシマアザミと出会う

/** Geminiが自動生成した概要 **/
ヤンバルで緑色片岩を探していた著者は、白い花のシマアザミと出会う。シマアザミは、葉が薄く肉厚で光沢があるのが特徴で、これは多湿な沖縄の気候に適応した結果だと考えられる。また、花の色が白であることにも触れ、紫外線が強い環境では白い花が有利になる可能性を示唆している。さらに、アザミは、その土地の環境に適応した形質を持つことから、シマアザミの葉の特徴と緑色が薄い点について考察を深めている。

 

玄米は水稲と陸稲で食品成分の差はあるのか?

/** Geminiが自動生成した概要 **/
玄米の水稲と陸稲の食品成分の違いを、文部科学省の食品成分データベースを基に考察しています。陸稲は水稲に比べ、炭水化物が少なくタンパク質が多いことが分かりました。これは、水田の水による冷却効果が関係している可能性も考えられます。今後、飼料米として陸稲の栽培が増える可能性がありますが、ミネラル豊富な日本の土地を生かすため、水稲栽培の利点も見直す必要があるでしょう。

 

玄米食で亜鉛不足を解消できるか?

/** Geminiが自動生成した概要 **/
玄米食は白米食に比べ亜鉛含有量に大きな差はなく、亜鉛不足解消に劇的な効果は期待できない。 玄米(穀粒)100g中の亜鉛含有量は1.8mg、精白米(穀粒)は1.4mgと、糠層より胚乳に多く含まれる。 亜鉛はタンパク質合成に必須だが、植物の生育や人間の健康に欠かせないため、摂取が難しい栄養素である。 土壌への牛糞施肥は亜鉛吸収を阻害する可能性があり、光合成効率を高める川からの恩恵や、大豆生産における稲作技術の活用が重要となる。

 

豆腐に含まれるリシンはどれくらい?

/** Geminiが自動生成した概要 **/
味噌の原料である大豆は、タンパク質や必須アミノ酸のリシンが豊富です。しかし、大豆から豆乳を絞って作る豆腐は、タンパク質量が減少し、リシンも100gあたり480mgに減少します。一方、絞り粕である大豆粕にはタンパク質が多く残り、最近の味噌にはこの大豆粕が使われています。つまり、大豆のタンパク質は、豆腐よりも味噌に多く含まれることになります。

 

玄米食でリシンの摂取はどのように変化するか?

/** Geminiが自動生成した概要 **/
この記事は、白米と玄米のリジン含有量を比較し、玄米食がリジン摂取量増加に有効かどうかを検証しています。 白米100gあたりのリジン含有量は102mgである一方、玄米は310mgと約3倍も多く含まれています。茶碗一杯(150g)に換算すると、白米は153mg、玄米は465mgとなり、玄米食の優位性が分かります。 しかし、味噌汁一杯(味噌15g)のリジン含有量は87mgと少なく、味噌汁だけでリジン不足を補うのは難しいようです。 記事では、味噌汁の具材である豆腐なども考慮する必要性に触れており、今後の検証が期待されます。

 

稲作の大規模化に向けた土壌の物理性の向上の技法の確立は急務

/** Geminiが自動生成した概要 **/
日本の稲作は大規模化が進んでいるが、地力維持の負担増加が懸念される。大規模農家にとって、冬期の労働集約的な地力向上策は現実的ではない。そこで、簡易的な土壌物理性改善方法の確立が急務となっている。解決策の一つとして、ヤシャブシの葉のようなタンニン豊富な有機物資材の活用が挙げられる。この方法は、大規模化に対応しながら、土壌の物理性を向上させる可能性を秘めている。

 

フリーランスの攻略本で私の仕事を紹介して頂きました

/** Geminiが自動生成した概要 **/
フリーランスエンジニアの齋藤毅さんが、ユニークキャリア株式会社運営の「フリーランスの攻略本」で紹介されました。記事では、プログラミングと農業を組み合わせた独自のキャリアや、IT系フリーランスとしての心得について語られています。 インタビューは全てWeb上で行われ、DXの進歩を実感する機会になったとのこと。今回の取材は、齋藤さんにとって自身のキャリアを振り返り、未来を考える良い機会になったようです。 また、過去にはレバテックキャリアの技術ブログでも紹介された経験があり、多様な働き方を実践しています。

 

SOY CMSでプラグインの状態チェックを最適化して表示速度を改善

/** Geminiが自動生成した概要 **/
SOY CMSの表示速度改善についての記事です。 今回はプラグインの有効・無効の判定処理を最適化しました。従来は全プラグインの状態を都度ファイルシステムから読み込んでいましたが、キャッシュ化して参照するように変更。これにより、ファイルシステムへのアクセス回数を減らし、不要なプラグインのクラスファイル読み込みを削減することで表示速度を向上させています。 同様の速度改善は、設定情報のデータベース参照回数を減らしたSOY Shopでも行われています。

 

SOY Shopで設定周りのデータベース参照回数を減らし表示速度を改善

/** Geminiが自動生成した概要 **/
SOY Shopの表示速度改善のために、データベース参照回数を減らす対策を行いました。 従来は各種設定状況やプラグインの有効状態確認の度にデータベースを参照していましたが、これを改善し、必要な設定を事前に取得・保持するように変更しました。具体的には、よく参照する設定はメモリ上に保持し、プラグインの有効状態は配列で管理することで、データベースへのアクセス回数を減らしています。 この結果、ページ表示の度に発生していたデータベースへのアクセスが減少し、表示速度の向上が期待できます。

 

SOY CMSで一つ深い階層にサイトを作成する

/** Geminiが自動生成した概要 **/
SOY CMSで、サイトを一つ深い階層に作成する方法を解説します。 まず、サイトIDを「hoge」として、/var/www/html/hogeにサイトを作成します。次に、/var/www/html/hoge/huga のように、hugaディレクトリを作成し、必要なファイルを配置します。 データベースのSiteテーブルを開き、サイトIDが「hoge」のレコードのurlとpathを、それぞれ `http://example.com/hoge/huga/` と `/var/www/html/hoge/huga/` に変更します。 最後に、/var/www/html/hoge/huga/.htaccess の RewriteBase を `/hoge/huga` に変更します。 稼働中のサイトのURLを変更する場合は、上記の手順に加えて、SOY CMS管理画面でサイトURLを変更する必要があります。

 

生分解性プラスチックのポリ乳酸とは何か?

/** Geminiが自動生成した概要 **/
## 記事「光合成の質を高める為に川からの恩恵を活用したい」の要約 この記事は、農業における水源として川の水がもたらす恩恵について解説しています。川の水には、植物の光合成に不可欠な二酸化炭素の吸収を助けるカルシウムイオンが含まれており、さらに土壌にカルシウムを供給することで、根の成長促進、病害抵抗性の向上、品質向上などの効果も期待できます。一方で、川の水には有機物が含まれており、過剰な有機物は水質悪化や病気の原因となるため、適切な管理が必要です。水質検査や専門家の意見を参考に、川の水の特性を理解し、適切に活用することが重要です。

 

BBC Micro:bit、トランジスタとDCモータ再び

/** Geminiが自動生成した概要 **/
この記事では、BBC Micro:bitとトランジスタを使ってDCモーターを制御する方法を解説しています。前回はモーターを回すことができませんでしたが、電気回路とトランジスタの動作原理を学び、今回は見事成功しました。 成功の鍵は、トランジスタのベース電流を制御するための抵抗値の計算です。目標とするモーター電流を100mAとし、トランジスタの増幅率などを考慮して、ベース抵抗を4.7kΩに設定しました。 その結果、Micro:bitのボタン操作でDCモーターの回転を制御することができるようになりました。今回の実験を通して、トランジスタの動作原理への理解を深めることができました。

 

トランジスタ4増幅率

/** Geminiが自動生成した概要 **/
この記事では、トランジスタ、特にNPN型トランジスタの増幅率について解説しています。トランジスタの性能指標として、絶対最大定格、コレクター電流、ベース電流、増幅率(hFE)の4つが挙げられています。 増幅率はトランジスタによって異なり、ランク分けされています。記事で例に挙げられている2SC1815-GRはGRランクで、増幅率は200~400倍です。つまりベース電流が5mAなら、コレクター電流は1Aになる計算となります。 ただし、ベース電流の最大値はデータシートに記載がないため、コレクター損失(400mW)を考慮して、安全な電流値を見積る必要があると指摘しています。

 

トランジスタ3電流増幅作用

/** Geminiが自動生成した概要 **/
この記事では、トランジスタの増幅作用、特に電流増幅作用について解説しています。トランジスタは、小さな電流を大きな電流に増幅することができます。 具体的には、NPNトランジスタを例に、ベースにマイクロビットからの微弱な電流を流すことで、コレクタ-エミッタ間に大きな電流を流せることを説明しています。 そして、この電流増幅作用を利用して、マイクロビットからの信号では光らせることのできないLEDを、トランジスタを介することで光らせることができるようになることを図解しています。

 

トランジスタ2スイッチング

/** Geminiが自動生成した概要 **/
この記事では、トランジスタの仕組み、特にスイッチング作用について解説しています。バイポーラトランジスタを構成するN型半導体とP型半導体の働きに触れ、マイクロビットと青色LEDを用いた回路を例に、トランジスタがどのように電流を制御するのかを図解しています。ベース電流の有無によってコレクター-エミッタ間の導通・非導通が切り替わり、これがスイッチのオン/オフ動作に対応することを示しています。記事では、トランジスタの基礎知識を学ぶことで、電子回路への理解を深めることを目指しています。

 

トランジスタ1

/** Geminiが自動生成した概要 **/
この記事は、電子工作初心者向けにトランジスタの基礎を解説しています。トランジスタは、「スイッチング」と「増幅」の役割を持ち、電流を制御したり増幅したりする電子部品です。記事では、トランジスタの構造と名称、増幅率などの基本的な用語について解説しています。著者は、トランジスタの理解には電流の理解が不可欠であることを実感し、今後の学習目標としています。

 

SOY CMSのカスタムフィールドアドバンスドの見直しで表示速度の改善

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドとサムネイルプラグインの表示速度改善に関する記事の要約です。 記事では、多数の記事を表示する際に発生する表示速度の低下について、その原因と解決策が解説されています。 主な原因は、記事ごとにカスタムフィールドの値を取得する際に、データベースへのアクセスが繰り返されるためでした。 解決策として、記事に紐づくカスタムフィールドの値を全記事分一度に取得し、必要な値のみに絞り込むことで、データベースアクセスを削減しました。 この改善により、特に記事数が50件や100件といった大量に表示する場合に、表示速度の向上が期待できます。

 

BBC Micro:bitでpHメーターから得られるアナログ値を読み込んでみた

/** Geminiが自動生成した概要 **/
このブログ記事は、BBC Micro:bitの内蔵AD変換機能を用いてpHメーターのアナログ値を読み取る実験について解説しています。筆者は、専用のAD変換器が届く前に、Micro:bitのP0/P1ピンがアナログ値の読み込みに対応することを発見し、これを活用。pHメーターをMicro:bitに接続し、MakeCodeでアナログ値をディスプレイに表示するプログラムを作成しました。 実験では、水道水で748、重曹水で916のアナログ値を取得。重曹水がアルカリ性であることから、測定値の傾向が妥当であることを確認し、アナログ値の読み取りに成功しました。今後はpHメーター出力値とMicro:bitのAD変換の詳細調査が課題としつつも、pH値に応じた自動制御(例:サーボモータでの溶液調整)への応用可能性に大きな期待を寄せています。

 

プログラミング教育で注目すべきはARM + Debian + Pythonであるはずだ

/** Geminiが自動生成した概要 **/
プログラミング教育の格差解消には、安価で高性能なARMアーキテクチャ搭載PCが有効である。Raspberry PiはDebian系OSとPythonを標準サポートし、電子工作から本格的な開発まで対応可能なため、ChromebookやMicro:bitよりも優れている。ARM対応ソフトの充実が課題だが、低価格でDebianやPythonに触れられる環境は、OSSやサーバー学習へのハードルを下げ、将来的なIT人材育成に貢献する。

 

SOY CMSでWordPress記事インポートプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用のWordPress記事インポートプラグインが新しく開発され、WordPressの記事をSOY CMSに移行することが可能になりました。 このプラグインは、WordPressのデータベースからSQLiteまたはMySQLのSOY CMSデータベースに最大2500件の記事を移行できます。ただし、現時点ではWordPressの「記事の抜粋」フィールド(post_excerpt)の処理方法が確定していません。 このプラグインの使用を検討しており、「記事の抜粋」の取り扱いについて希望がある場合は、SOY Boardフォーラムにご連絡ください。プラグインを含むパッケージは、saitodev.coからダウンロードできます。

 

SOY CMSで履歴自動削除プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの履歴自動削除プラグインが公開されました。記事とテンプレートの古い履歴を任意の日付で一括削除、または個別に残す履歴件数を指定できます。記事履歴のみ自動削除、テンプレートは保持といった個別設定も可能です。SQLite版ではSQLite VACUUMプラグインと併用でサーバー負荷軽減が期待できます。利用時はデータベースのバックアップ推奨(SQLite版は専用プラグインあり、MySQL版は無し)。パッケージはsaitodev.co/soycms/からダウンロード可能です。

 

Raspberry Pi 4 Model Bを購入した

/** Geminiが自動生成した概要 **/
子供に初めて与えるPCとしてChromebookを検討していた筆者は、Micro:bitのシリアル通信の課題からRaspberry Pi 4 Model B(8GB)を購入。GPIOピンによる電子工作の可能性、安価でLinux学習に適した点を評価している。Raspberry Piはクレジットカード大の基盤に主要部品を搭載し、microSDカードにOSをインストールして使用する。高スペックゆえの発熱対策として冷却ファン付きケースも購入。Raspberry Piを子供用PCとするには、親のLinux(Debian系)知識やハードウェア管理の理解が必要と結論づけている。

 

SOY Shopでアクセス制限プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのアクセス制限プラグインが開発され、標準機能として同梱されました。このプラグインは、特定のブラウザからのみアクセス可能なページを作成し、IPアドレスと紐づけた固有の鍵をクッキーで管理することで実現しています。管理画面でブラウザを登録すると鍵が生成され、クッキーに保存。SOY Shop側は鍵とIPアドレスをデータベースに格納し、有効期限を設定します。これにより、鍵の偽装や不正アクセスを防ぎ、セキュリティを高めています。このプラグインは、タブレット等で特定機能を利用する際の利便性向上に役立ちます。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopで子商品の検索回数の設定で高速化

/** Geminiが自動生成した概要 **/
SOY Shopリリース10年を経て、一部ショップで商品データ増加による表示速度低下が見られた。高速化のため、商品一覧・詳細ページで子商品データ取得設定を追加。これにより、表示件数分のSQL実行を伴う`child_item_list`処理を省略可能に。商品数と表示件数によってはDBアクセス数が膨れ上がるため、今回の対応でパフォーマンス改善を見込む。最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能。

 

Chromebookはプログラミングの教育の端末として向いているか?を調査する

/** Geminiが自動生成した概要 **/
ChromebookのLinuxアプリで日本語入力ができない問題を解決する方法を解説した記事の要約です。 ChromebookのLinux環境では標準で日本語入力ができません。この記事では、fcitx-mozcをインストールすることで日本語入力できるようにする方法を、スクリーンショット付きで丁寧に説明しています。 まず、Linuxターミナルを開き、必要なパッケージをインストールします。次に、設定ファイルを作成・編集し、fcitxを起動するように設定します。最後に、Chromebookを再起動し、入力メソッドの設定で日本語(Mozc)を選択すれば、日本語入力が可能になります。記事では、詳細なコマンドや設定内容、トラブルシューティングについても触れています。

 

SOY Shopで顧客情報引継ぎプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop向けプラグインを開発。予約注文型ネットショップで来店人数を制限するため、ネットショップと予約カレンダーを連携させる。一つ目のショップサイトで注文後、リンク経由で予約カレンダーを持つ二つ目のサイトへ遷移。この際、開発したプラグインにより顧客情報を一つ目のサイトから取得し、二つ目のサイトでシームレスに手続きを継続できる。設定は各サイトに「別サイト顧客情報引継ぎ用リンク設置プラグイン」「別サイト顧客情報引継ぎプラグイン」をインストールし、指示に従う。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能。

 

地獄の釜の蓋

/** Geminiが自動生成した概要 **/
里山で出会ったロゼット状の草は、花の上に葉が展開する珍しい形をしていました。図鑑で調べた結果、シソ科のキランソウの可能性が高いことが分かりました。キランソウは「地獄の釜の蓋」という異名を持ち、優れた薬草として知られています。 薬効成分はフラボノイドとステロイドで、フラボノイドはルテオリンという成分です。ルテオリンはアーティチョークにも含まれる成分で、抗酸化作用などが期待されます。ステロイド成分のシアステロンは上皮成長因子受容体(EGFR)の阻害作用があるとされています。 一見何気ない草にも、様々な薬効成分が含まれており、里山の豊かな生態系と知見の宝庫であることを改めて実感しました。

 

SOY CMSでSameSite cookiesの対応を追加しました

/** Geminiが自動生成した概要 **/
Android版ChromeでPHPセッションが突然切れる問題への対応についての記事を要約します。問題は、特定のAndroid版ChromeのバージョンでSameSite属性のないcookieがアクセス拒否されることに起因していました。解決策として、PHPで`session_set_cookie_params`関数を使用し、`SameSite=None`と`Secure`属性をcookieに設定することで、HTTPS通信時にのみcookieが送信されるようにしました。この変更により、Android版Chromeでのセッション維持が可能になりました。さらに、データベーススキーマの見直しやマイページの処理最適化を行い、表示速度の向上も実現しました。関連情報として、Webブラウザセキュリティに関する書籍の紹介や、cookie属性の詳細を解説するMDNのドキュメントへのリンクが掲載されています。

 

SQLインジェクションに対してプリペアードステートメントが有効であるかを試してみる

/** Geminiが自動生成した概要 **/
この記事では、PHPにおけるSQLインジェクション対策としてプリペアードステートメントの有効性を検証しています。まず、脆弱なコード例を示し、攻撃者がSQL文を操作して意図しないデータを取得できることを実演。次に、プリペアードステートメントを用いた修正版を紹介し、SQL文と入力データを分離することで攻撃を防ぐ仕組みを解説しています。具体的には、プレースホルダを用いてSQL文を準備し、executeメソッドでパラメータをバインドすることで、入力データがSQL文として解釈されることを防いでいます。結果、同じ攻撃を試みてもデータが取得できず、プリペアードステートメントの有効性が確認されました。関連記事として、SOY2DAOでのプリペアードステートメントの利用方法も紹介されています。

 

ブナ科の系統を見る再び

/** Geminiが自動生成した概要 **/
ブナ科の系統分類について、新刊のどんぐり図鑑と既存の研究を参考に考察。コナラ属はコナラ亜属とケリス亜属に分けられ、落葉性のコナラはコナラ亜属、常緑性のシラカシはケリス亜属に属する。興味深いのは、落葉性のクヌギとアベマキもケリス亜属に分類される点。クヌギ等はカシとは異なるケリス節に属するが、同じ亜属に常緑樹と落葉樹が含まれることは進化の謎を解く鍵となる可能性を秘めている。

 

SOY Shopで自動注文無効プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのクレジットカード決済では、カード入力前に在庫を確保するため、入力を中断すると在庫が減ったまま注文が確定しない問題があった。これを解決するため、自動注文無効プラグインを作成。 設定した時間より前の仮登録注文を無効化し在庫を戻すことで、カード入力中断による在庫の減少を防ぐ。プラグインは仮登録から無効化までの時間を設定可能。クレジットカード決済特有の問題への対策として、在庫管理の精度向上に貢献する。

 

SOY CMSでWordPress記事インポートプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS向けWordPress記事インポートプラグインを開発しました。WordPress(3.3以降、現行5.5.3も対応)のMySQLデータベースから記事データを抽出し、SOY CMS用に変換・インポートします。開発時のWordPressバージョンは5.5.3ですが、データベーススキーマは3.3系から変わっていないため、3.3以降のバージョンに対応しています。実運用サイトでの移行実績はまだありません。実際に利用を希望される場合は、移行予定サイトでの最終調整にご協力ください(無償)。利用希望の方はお問い合わせください。

 

WordPressのデータベースのスキーマを調べる

/** Geminiが自動生成した概要 **/
WordPressからのデータ抽出のため、データベーススキーマのバージョン調査を行った。テーブル名は`wp-includes/wp-db.php`に定義されており、バージョン2.5.0から変更がない。テーブルスキーマは`wp-admin/includes/schema.php`にSQLで定義され、バージョン3.3.0から変更がないことがわかった。よって、データ抽出ツールはWordPress 3.3.0以降に対応させ、それ以前のバージョンはアップグレードしてから利用するよう条件付けすれば良い。

 

アザミの咲き方いろいろ

/** Geminiが自動生成した概要 **/
初夏から観察していたアザミの開花を確認し、改めて観察すると、各節に三つの蕾があり、一つずつ開花する独特なパターンを発見した。以前観察した他のアザミと比較しても、その多様性に感動し、アザミの個性に興味を持った。アザミは現在分化の最中で、地域や季節によって様々な特徴を持つため、アザミの個性を探ることで、個性の獲得について理解を深められる可能性がある。観察したアザミの種類を国立科学博物館のデータベースで調べようとしたが、サムネイルがなく特定が困難だった。

 

PHPのOPCacheで生成されるキャッシュを見る

/** Geminiが自動生成した概要 **/
PHPのオペコードを確認するにはVLD拡張モジュールを使用します。VLDはPHPスクリプトをコンパイルし、生成されたオペコードを人間が読める形式で出力します。出力には、各オペコードの行番号、オペコードの種類、オペランド、結果などが含まれます。これにより、PHPスクリプトの実行方法を詳細に理解し、パフォーマンスのボトルネックを特定するのに役立ちます。VLDのインストールはPECLを利用し、php.iniで`vld.active=1`などを設定することで有効化できます。関数`vld_dump()`で特定の関数のオペコードを出力することも可能です。

 

SOY CMS / Shopで別サイトのモジュールを読み込む

/** Geminiが自動生成した概要 **/
SOY CMS/Shopで、別サイトのHTMLモジュールを読み込む新機能が追加されました。サイトIDをプレフィックスとして`{siteId}.moduleName`のように指定することで、HTMLのみで構成されたモジュールを別サイトから呼び出せます。例えば、`{otherSite}.html.sample`と記述すれば、siteIdが"otherSite"のサイトにある"html.sample"モジュールが表示されます。ただし、SOY CMSとSOY Shop間でのモジュールの相互利用は不可で、データベースを参照するモジュールも使用できません。この機能は、最新版のSOY CMS/Shopパッケージで利用可能です。

 

SOY CMSで複数ページフォームプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS向け複数ページフォームプラグインが開発されました。このプラグインは、管理画面でページ構成と遷移を設定し、公開側でフォームを表示します。各ページの設定、完了ページでのSOY Inquiry連携、高度なページでのSOY2HTML利用、フォームデザイン変更といった機能を提供します。これにより、複雑な複数ページフォームの作成コストを大幅に削減できます。プラグインはsaitodev.co/soycms/からダウンロード可能です。

 

SOY Shop 2.0.0

/** Geminiが自動生成した概要 **/
非公式にメンテナンスされているSOY Shop 2.0.0βが公開されました。データベース構造は1系とほぼ変わらず、通常のバージョンアップ手順で適用可能です。主な変更点は、Bootstrapを使ったレスポンシブ対応の管理画面UIと、公開側ページの読み込み速度最適化です。後者は必要なクラスファイルのみを読み込むことでメモリ消費量を削減し、表示速度向上と同時アクセス耐性向上を実現しています。 HTMLキャッシュプラグインも同梱され、キャッシュ機能で更なるメモリ消費削減が可能です。ダウンロードはsaitodev.co/soycms/soyshop/ から。一部プラグインのUIはまだ2系に対応していませんが、順次修正予定です。

 

SOY Shop 2.0.0 β

/** Geminiが自動生成した概要 **/
SOY Shop 2.0.0βでは、管理画面のUIをSOY CMS 3系に刷新。開発元の停滞を受け、非公式ながらバージョンアップを実施。拡張性向上のため、デザイン崩れを防ぐ3系テンプレートを採用した。標準機能のUI変更は完了し、プラグイン対応を進めている。現在はカスタムフィールド系、初期プラグイン、PAY.JP/Coiney決済プラグインが対応済み。今後、予約カレンダーや伝票管理プラグインへの対応を予定。データベース構造は変更なし。ダウンロードはsaitodev.co/soycms/soyshop/ から可能。管理画面のみ使用モードの追加により、ECサイト構築だけでなく、会員管理システムなど多様な用途にも対応できるようになった。

 

【SEO対策】他のCMS向けの総当り攻撃を避ける

/** Geminiが自動生成した概要 **/
サイバー攻撃の増加は深刻な問題であり、特にCMSを狙った攻撃は増加傾向にある。記事ではSOY CMSへの攻撃事例を通して、その脅威を具体的に示している。攻撃者は管理画面へのログインを試みたり、脆弱性を突いて不正アクセスを試みる。対策としては、管理画面のURLを変更したり、.htaccessでアクセス制限をかけることが有効である。また、WAFの導入やセキュリティプラグインの活用も推奨されている。常に最新の情報に注意し、適切なセキュリティ対策を実施することで、被害を最小限に抑えることが重要である。

 

【SEO対策】最終産物のHTMLのキャッシュで高速化

/** Geminiが自動生成した概要 **/
SQLiteを採用するSOY CMSでサイト表示を高速化するため、最終生成HTMLのキャッシュ化機能を導入した。データベースやファイル読み込みを省略することでPageSpeed Insightsのスコアが大幅に向上。この機能はHTMLキャッシュプラグインをインストール後、index.php内のexecute_site()をexecute_site_static_cache()に変更することで有効になる。ただし、カート内容の表示など動的なコンテンツはキャッシュ化できないため、リッチなサイト構成との両立は難しい。高速化とSEO対策には見栄えよりも内容重視の割り切りが必要となる。SOY Shopでも同様のキャッシュプラグインが開発されている。

 

【SEO対策】データベースチューニング

/** Geminiが自動生成した概要 **/
SOY Shopのデータベースパフォーマンス改善にはインデックスの見直しが効果的です。 商品点数やアクセス数の増加に伴い、データベースへの負荷が増大し表示速度が低下することがあります。 特に商品検索や絞り込み機能は複雑なクエリを実行するため、適切なインデックスが設定されていないとパフォーマンスに大きな影響を与えます。 インデックスはデータベース内の特定の列に付与されることで、データ検索の高速化を実現します。 SOY Shopでは、商品コードや商品名、公開状態など、頻繁に検索される項目にインデックスを設定することが推奨されています。 しかし、不要なインデックスは更新処理のオーバーヘッドとなるため、適切なインデックスを選択することが重要です。 記事では、phpMyAdminを用いたインデックスの確認方法、SOY Shop管理画面からのインデックス設定方法、そしてインデックス設定の注意点が解説されています。 インデックスを適切に設定することで、データベースの負荷を軽減し、表示速度の向上、ひいてはユーザーエクスペリエンスの向上に繋がるとしています。

 

高谷ベーカリーの高槻産の米の米粉ロール

/** Geminiが自動生成した概要 **/
高槻市の高谷ベーカリー(アローム清水店)で、地元産米粉を使った「米粉ロール」を食した。ブルーチーズの培養にフランスパンが使われていたことからパンに興味を持ち、米粉パンの技術的背景を知り、実食に至った。米粉ロールは、ほんのり茶色で、クラムはホームベーカリーで焼いたパンよりも糊化しており、モチモチしっとりとした食感は米餅の要素を感じさせた。うるち米から作られたこのパンは、米とパンの良いとこ取りを実現しており、食味や省力化に特化した結果汎用性が低下した米の新たな活路となる可能性を感じさせた。

 

SOY CMSでMySQL8系に接続できない時の対処

/** Geminiが自動生成した概要 **/
MySQL8系にアップグレード後、SOY CMSが「データベースの接続に失敗しました」エラーで起動しない場合の対処法。原因はMySQL8.0の認証方式変更にPHPのPDOが対応していないため。Ubuntu環境で、MySQLの設定ファイル(/etc/mysql/mysql.conf.d/mysqld.cnf)の[mysqld]セクションに`default_authentication_plugin=mysql_native_password`を追加し、MySQLを再起動することで解決する。これはPDOの対応までの応急処置。

 

SOY CMSで記事詳細高速表示プラグインを作成しました

/** Geminiが自動生成した概要 **/
SEO対策として表示速度向上に取り組んでいるサイト運営者が、SOY CMSの記事詳細表示を高速化するプラグインを開発した。従来、柔軟性のため記事テーブルのエイリアスカラムにUNIQUEインデックスを貼っていなかったが、今回ユニーク制約を設けることで高速化を実現。同時に、記事の投稿時刻にもインデックスを追加し、アーカイブページの表示速度も向上させた。投稿時刻は同時刻投稿の場合、1秒ずらす仕様とした。このプラグインはダウンロード後、有効化することでデータベースに反映される。

 

PHPで並行処理

/** Geminiが自動生成した概要 **/
PHPで並行処理を行う方法として、exec関数でジョブファイルを実行する方法が紹介されています。ジョブファイルはバックグラウンドで実行され、メインプロセスとは独立して動作します。ただし、ジョブファイルの結果をメインプロセスに返すことができないという欠点があります。 記事では、Google OAuthを使ったジョブで、メインプロセスのセッション情報をジョブファイルで利用する方法についても説明されています。ジョブファイルの引数にセッションIDを渡し、ジョブファイル内でセッションを復元することで、アクセストークンなどのセッション情報を共有できます。 最終的に、ジョブの結果をメインプロセスで扱う方法については触れられていませんが、Go言語やNode.jsのような並行処理に適した言語の使用が推奨されています。

 

SOY Shopでカテゴリ商品ブロック生成プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のプラグインで、複数カテゴリの商品一覧を1ページに表示できる機能を追加しました。標準のナビゲーションページではカスタムサーチフィールド等のプラグインとの連携が難しいため、簡易的に商品ブロックと同等の機能を実現するプラグインを開発。管理画面で生成個数を指定すると、`<shop:module>`と`<block:id="item_list">`を使った記述が生成され、`category`属性にカテゴリIDを指定することで各カテゴリの商品一覧が表示されます。カテゴリIDはカテゴリ詳細画面のURL末尾の数字で確認できます。今後はカスタムサーチフィールドにも対応した商品ブロック作成プラグインを開発予定です。現在はカテゴリと表示件数、カスタムサーチフィールドに対応したプラグインを公開中です。

 

チーズの素晴らしさは乳糖を気にせず栄養を確保できること

/** Geminiが自動生成した概要 **/
ビタミンB12は、動物性食品に多く含まれる必須栄養素で、植物や菌類にはほとんど存在しない。土壌中の細菌がビタミンB12を生成するが、現代の衛生環境では摂取は難しい。ビタミンB12はDNA合成や赤血球形成に関与し、不足すると悪性貧血や神経障害を引き起こす。 一部の藻類もビタミンB12を含むとされるが、種類や生育条件により含有量は大きく変動する。そのため、ベジタリアンやビーガンはサプリメントなどで補う必要がある。ビタミンB12は他のビタミンB群と異なり体内に蓄積されるため、欠乏症の発症は緩やかだが、定期的な摂取が重要となる。

 

苦土が多い不思議な砂質土

/** Geminiが自動生成した概要 **/
福岡県糸島市の海岸沿いの畑の土壌分析結果で、苦土(マグネシウム)が異常に高く、カリウムも多いという不思議な現象が見られた。現地調査の結果、畑の土は近隣の森を切り崩した土で客土されており、周囲の地質は花崗岩主体だが、斑れい岩質の深成岩も存在する事がわかった。斑れい岩は苦土や鉄を多く含むため、客土された土に斑れい岩由来の成分が含まれていると推測される。この仮説は、畑の土から緑色の鉱物粒子が確認されたこと、土壌図で畑が森林土に分類されていることからも裏付けられる。通常の砂質土壌とは異なり、この畑では苦土による緩衝作用は期待できないため、腐植による緩衝に注力する必要がある。近隣の他の畑は通常の砂質土壌で、今回の畑は特殊な事例と言える。

 

SOY Shopの予約カレンダーでレスポンシブ対応

/** Geminiが自動生成した概要 **/
SOY Shopの予約サイト構築用プラグインに、レスポンシブ対応のカレンダー表示機能が追加された。PCでは1ヶ月分のカレンダー、スマホでは今日から2週間分の縦型カレンダー表示となり、Bootstrap 4ベースでUIが改善。この機能は「予約カレンダースマホ拡張プラグイン」で利用可能。開発案件のニーズに応え、予約アプリ導入コスト削減を目指し開発された。更新版パッケージはsaitodev.co/soycms/soyshop/からダウンロードできる。

 

レンゲとアルファルファタコゾウムシ

/** Geminiが自動生成した概要 **/
マルチムギは、劣化した土壌の改善に効果的な緑肥です。土壌被覆による雑草抑制、線虫抑制効果、高い窒素固定能力を持ち、土壌微生物のエサとなる有機物を供給することで土壌構造を改善します。さらに、アレロパシー効果で雑草の発芽を抑え、土壌病害も抑制。線虫の増殖を抑制する働きも確認されています。他作物と比べて栽培管理の手間が少なく、痩せた土地でも生育可能なため、土壌改良に有効な選択肢となります。特に、連作障害対策や有機栽培への活用が期待されています。

 

SOY CMSで管理画面のログイン時のパスワードを忘れた場合の再設定

/** Geminiが自動生成した概要 **/
SOY CMSの管理画面パスワードを忘れた場合、パスワードリマインダが有効でなければ使えません。有効化は必須です。パッケージを最新版に更新すると手順が簡略化されます。 パスワード無しでログインするには、AdministratorLogic.class.phpのlogin関数とcheckUserIdAndPassword関数に"return true;"を追加します。管理画面へのアクセス制限としてBasic認証を設定しておくのが安全です。 ログイン後、管理者情報ページを開くにはDetailPage.class.phpに初期管理者ID取得のコードを追加します。パスワード変更時はChangePasswordAction.class.phpでエラーチェックとパスワードチェックを無効化し、管理者IDを強制的に初期管理者に設定します。変更後はファイルを元に戻し、ログイン確認後、パスワードリマインダを有効化してください。

 

SOY Shopで管理画面のみ使用モードを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopは、9年の歴史の中で機能強化を重ね、ネットショップだけでなく業務アプリとしての需要が高まっている。今回、業務アプリ利用時のサンプルデータ削除の手間を省くため、「管理画面のみ使用モード」が追加された。サイト作成時にチェックを入れるだけで、サンプルデータなしで管理画面を利用できる。 業務アプリとして利用する場合はMySQLデータベース推奨。併せて、管理画面の使い始めのガイダンスも追加された。このアップデートにより、在庫管理や顧客管理など、SOY Shopを業務システム基盤として活用する際の初期設定が簡素化される。ダウンロードは公式サイトから可能。

 

SOY ShopでSQLiteからMySQLに移行するプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの長年の運営でSQLiteからMySQLへのデータベース移行の需要が高まり、今回専用の移行プラグインが開発された。SQLiteはファイルベースでサーバーのスペックに依存する一方、MySQLはサーバーベースでリソース割り当てによるパフォーマンスチューニングが可能となる。ただし、MySQL移行自体が速度改善を保証するわけではなく、サーバー環境によっては逆効果になる場合もある。特に共有サーバーでは注意が必要。移行プラグインは、サーバー移転を伴うデータベース移行作業の簡素化を目的としており、チューニング可能なサーバーへの移転と合わせて検討することが推奨される。プラグインはsaitodev.coからダウンロード可能。

 

SOY Shopのデータベースのインデックスの見直しで運営の限界を上げる

/** Geminiが自動生成した概要 **/
SOY Shopユーザーから、サイト表示速度の遅延に関する問い合わせを受け、SQLiteの限界(注文件数約1万件)を指摘した。ユーザー自身はデータベース設計の最適化を提案、実行速度の大幅改善に成功した。この貴重なフィードバックを基に、開発初期コードを大幅改修、最新版をリリースした。開発元を離れ孤独な開発を続ける中で、ユーザーによるコードレベルの貢献は開発者として大きな喜びとなった。SOY Shopの普及にはプログラマの参加が不可欠だが、コミュニティの活性化は課題となっている。

 

SOY Shopで業種に合わせて高度なメール種別を追加してみる

/** Geminiが自動生成した概要 **/
登山用品レンタルサイト「やまどうぐレンタル屋」では、返却完了メールにレビュー割引適用者への催促文面を自動挿入する機能を追加した。まず「メール送信種類追加プラグイン」で「返却完了メール」を作成。次に、`soyshop.order.mail`拡張ポイントを利用したプラグイン`notify_review_discount`を開発。このプラグインの`getMailBody`メソッドで催促文面を返し、`SOYShopPlugin::extension`の第一引数に`soyshop.order.mail.henkyaku` (henkyakuはメールID) を指定することで、返却完了メールへの挿入を実現した。この手法は特定メール種別へのカスタマイズを可能にする。他にも隠れた拡張ポイントが存在し、サイトの特殊な要件に対応できる可能性があるため、必要に応じて開発元に相談するのが良い。

 

SOY Shopの商品一覧ページで変則的な並び順の対応をしてみる

/** Geminiが自動生成した概要 **/
SOY Shopでカテゴリごとに商品一覧の並び替え順を変える方法。カスタムフィールドで「使用人数」や「使用温度」などの項目を作成し、ソートに利用する設定にする。データベースのカラム型を数値に変更。soyshop.item.list拡張ポイントでプラグインを作成し、getSortメソッドでカテゴリごとに異なるソート条件を返す。テントなら使用人数の降順、シュラフなら使用温度の昇順など。標準設定は価格の昇順にする。URLを変えずに同一ページで並び替え順を変えられるため、SEOにも有効。

 

水草とは何だろう?

/** Geminiが自動生成した概要 **/
水草とは何かという疑問を解消するため、「異端の植物 水草を科学する」を読んだ結果、水草は藻類とは異なり、陸上植物が水中で生きる機能を獲得したものだと分かった。DNA系統樹からも、水草は様々な陸上植物の科に分散しており、バイカモと水槽で飼育される水草のように系統的に遠い種類も存在する。また、ワカメやコンブといった海藻は褐色藻類に分類され、広義の植物ですらなく、陸上植物とは葉緑体の構造も異なる。つまり水草は、進化の過程で水中生活に適応した陸上植物なのである。

 

SOY Appの管理画面のUIのレスポンシブウェブデザイン対応

/** Geminiが自動生成した概要 **/
SOY CMS ASP版運営プラグインに続き、SOY AppのUIをSOY CMS 3系のレスポンシブウェブデザインに合わせました。これにより、SOY Shopサイトの新規作成画面、SOY Mail、SOY InquiryのUIがBootstrapベースのレスポンシブデザインで表示されます。SOY Appのバージョンアップ前にSOY CMSのバージョンアップが必要です。最新のパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY CMSのキャッシュモードで表示の高速化

/** Geminiが自動生成した概要 **/
SOY CMSのブログでデータベースをMySQLからSQLiteに変更することで、パフォーマンス向上とデータ管理の簡素化が期待できます。特に共有サーバーなど、MySQLのチューニングが難しい環境では効果的です。変更手順は、まずphpMyAdmin等でMySQLのデータをエクスポートし、SQLite形式に変換します。次に、SOY CMSの設定ファイルでデータベース接続設定をSQLiteに変更し、変換したデータをインポートします。記事データが多い場合、変換とインポートに時間がかかるため、夜間などアクセスが少ない時間帯に行うのがおすすめです。また、SQLiteはMySQLと比べて同時アクセス性能が劣るため、高トラフィックのサイトには不向きです。変更前にデータベースのサイズやアクセス状況を確認し、SQLiteのメリット・デメリットを理解した上で検討することが重要です。

 

Go言語でJSON

/** Geminiが自動生成した概要 **/
Go言語でJSONを扱う方法について解説されています。 `sample.json`ファイルにID、名前、読み仮名などのデータを保存し、`main.go`でそのデータを読み込んで利用する方法が示されています。 `ioutil.ReadFile`でJSONファイルを読み込み、`json.Unmarshal`でGoの構造体`Sample`に変換します。`Sample`構造体はJSONデータのキーに対応するフィールドを持ちます。変換後、`sample.Name`のようにアクセスすることで、JSONデータの値を取得できます。

 

SOYCMSのブログでデータベースをMySQLからSQLiteに変更する

/** Geminiが自動生成した概要 **/
SOY CMSブログで表示速度低下に悩んでいたところ、MySQL版が遅い共有サーバ環境のため、SQLiteに移行するプラグインを開発しました。ベンチマークは1.3倍改善、表示速度は2秒以下に。MySQL→SQLite、SQLite→MySQLの切り替えが可能で内部SEO対策にも有効です。Gravatar連携など一部プラグインは未対応ですが、カスタムフィールド等は対応済み。使用前にバックアップと注意点記事の確認を推奨。ダウンロードはsaitodev.co/soycms/から。この開発を通して、MySQL専用CMSは共有サーバではSEO的に不利になりやすいと感じました。

 

SOY Inquiryで同一IPアドレスからの連続した問い合わせをブロックする

/** Geminiが自動生成した概要 **/
SOY Shopでクレジットカード番号の不正取得を試みる「クレジットマスター」への対策が強化されました。クレジットマスターは短時間で大量のカード番号を試し、有効な番号を盗み出す攻撃です。対策として、クレジットカード入力画面にreCAPTCHA v3を導入し、ボットによるアクセスを検知します。また、一定回数以上の決済失敗時にアカウントをロックする機能を追加し、不正アクセスの被害を最小限に抑えます。さらに管理画面へのログインにもreCAPTCHA v3を適用し、セキュリティを向上させました。これらの対策により、クレジットマスターからの攻撃を効果的に防ぎ、安全なECサイト運営を支援します。

 

Go言語とSQLiteでトランザクション

/** Geminiが自動生成した概要 **/
Go言語とSQLiteでトランザクションを実装する方法を示すコード例です。user_id=1の金額から1000円減算し、user_id=2に1000円加算する処理を、db.Begin()でトランザクション開始、tx.Commit()で終了させています。途中のエラー発生時は、それ以前の変更もデータベースに反映されません。各処理はtxオブジェクトを使ってSQLを実行し、エラーチェックを行っています。これにより、一連の操作が原子的に実行され、データの整合性が保たれます。

 

SOY Shopでキャンセルと仮登録の注文の自動削除プラグインを作成してみた

/** Geminiが自動生成した概要 **/
オープンソースのネットショップパッケージは自由度が高い反面、軌道に乗った後に予期せぬ問題に直面することがある。記事ではSOY Shopを例に、月商1000万円を超えるとキャンセルや仮登録注文データの蓄積が処理速度に影響することを指摘。標準機能ではこれらのデータは削除されず残り続けるため、パフォーマンス低下を招く。解決策として、一定期間以前の不要な注文データを自動削除するプラグインを独自開発。管理画面を開く度に自動で削除を実行することで、データ量の増加を抑え、サイトのパフォーマンス維持を図る。この事例は、オープンソース利用における自由と引き換えに、独自対応が必要な場面が存在することを示している。

 

SQLiteで集計をしてみる

/** Geminiが自動生成した概要 **/
SOY ShopのSQLiteデータベースから、姓が「齋藤」の顧客の注文回数を集計する方法を説明しています。`soyshop_order`テーブルと`soyshop_user`テーブルを`user_id`と`id`で結合し、`WHERE`句で名前を絞り込み、`GROUP BY`句でユーザーごとに集計します。注文金額の合計は`SUM(price)`、注文回数は`COUNT(o.id)`で算出できます。結果として、各「齋藤」さんの注文回数と名前が表示されます。

 

SQLiteでデータを入れて取り出してみる

/** Geminiが自動生成した概要 **/
Windows 10 で SQLite を使い、データを操作する方法を解説しています。SQLite をダウンロード、インストールし、環境変数を設定後、コマンドプロンプトでデータベースファイル(sample.db)を作成します。SQL文を用いて、テーブル作成、データ挿入、削除、並び替え、表示など基本操作を例示しています。`CREATE TABLE` でテーブルを作り、`INSERT INTO` でデータ挿入、`SELECT * FROM` で全データ表示、`DELETE FROM` でデータ削除、`ORDER BY` で並び替え、`LIMIT` で表示件数制限を行います。DB Browser for SQLite での確認方法にも触れています。

 

ツユクサの季節

/** Geminiが自動生成した概要 **/
ミカン栽培跡地にマルバツユクサが生育している。マルバツユクサは九州の果樹園で防除困難な雑草として知られる。ツユクサ科の特徴である葉鞘を持ち、単子葉植物に分類される。単子葉植物は葉柄がなく、葉鞘を持つ。また、不定根による発根が特徴で、土壌変化に大きく貢献する。ミカン栽培跡地では、ツユクサの生育により、植物全般が育ちやすい土壌へと急速に変化している可能性が示唆される。

 

SOY CMSを介さずにSOY2DAOを使ってみる2

/** Geminiが自動生成した概要 **/
SOY CMSを使わずにSOY2DAOでSQLを実行し、オブジェクトで結果を取得する方法を解説しています。 独自SQLの実行には`executeQuery()`ではなく`executeObjectQuery()`を使用します。`executeObjectQuery()`の第一引数にSQL文、第二引数にDAOクラス名を指定します。戻り値は指定したクラスのオブジェクト、もしくはオブジェクトの配列となります。記事では、`SOY2Sample`クラスと対応するテーブル`soy2_sample`を例に、`id`と`text`を取得するSQLを実行し、結果を`SOY2Sample`オブジェクトの配列として受け取る方法をコード付きで示しています。これにより、データベースから取得したデータをオブジェクトとして扱いやすくなります。

 

SOY CMSを介さずにSOY2DAOを使ってみる1

/** Geminiが自動生成した概要 **/
SOY CMSを使わずにSOY2DAOを単体で利用する方法を紹介。SQLiteのインメモリデータベースを例に、テーブル作成、データ挿入、検索のコードを記述。WEBAPP_DIRの定義、SOY2のinclude、RootDir設定、SOY2DAOConfigによるDSN設定を行い、SOY2DAOでSQLを実行。結果として、挿入したデータが期待通りに取得できることを確認。次回はDAO本来の機能を探る。

 

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

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

 

SOY2HTMLで繰り返し表示 - HTMLList編

/** Geminiが自動生成した概要 **/
SOY CMSのブロック内で繰り返し表示される記事に、一定の間隔で任意の文字列を表示するには、下記の手順に従います。 1. HTMLListクラスを継承したPHPクラスを作成し、populateItemメソッドで表示したい内容をHTMLタグで記述します。 2. HTMLファイルで、populateItemメソッドで作成したHTMLタグをsoy:idを使用して囲みます。 3. 表示する間隔をsoy:id="loop"に指定します。 4. 表示する文字列をsoy:id="index"に指定します。 これで、指定した間隔で任意の文字列が繰り返し表示されます。

 

遺伝子の水平伝播

/** Geminiが自動生成した概要 **/
遺伝子の水平伝播は、親から子への垂直伝播以外で個体間や種間で起こる遺伝子の移動です。微生物では、プラスミドによる遺伝子の移動が知られていますが、死んだ細菌から取り込むという手段もあると考えられています。 この水平伝播により、微生物は抗生物質耐性などの便利な形質を容易に獲得でき、農薬開発などの対策を困難にします。また、いったん獲得した形質が水平伝播で維持されれば、その形質を捨てて増殖を改善するということも起こりにくくなります。そのため、微生物は耐性を保持したまま、長期間にわたって脅威となり続ける可能性があります。

 

サイトの表示が遅くなってきたのでSQLiteのVACUUMを試す

/** Geminiが自動生成した概要 **/
さくらインターネットの最安値VPS上でSQLite版SOY CMSを運用するブログ運営者が、サイト表示速度の低下に対処するためSQLiteのVACUUMを試した。データベースファイルが肥大化し表示が遅くなったため、サーバ移行も検討していたが、SQLiteのVACUUMコマンドで一時データの削除を試みた。実行手順を掲載し、ファイルサイズが約0.3MB減少した結果を報告。速度改善効果への期待を示し、今後はauto_vacuum機能の利用も検討しているが、データベース作成時に設定が必要なため、現状では利用できないという結論に至った。

 

SOY2HTMLでsoy:idを作る - HTMLLabel編

/** Geminiが自動生成した概要 **/
SOY2HTMLでPHPの処理結果をHTMLに表示するには、`soy:id`を利用します。PHP側では`addLabel`メソッドを使い、`soy:id`と同じ名前を第一引数、表示する値を`text`か`html`プロパティに設定した配列を第二引数に渡します。`text`は文字列をエンコードし、`html`はHTMLタグをそのまま出力します。`addLabel`は`createAdd`メソッドの簡略形で、本来は第二引数に`HTMLLabel`クラスを指定します。`soy2prefix`を指定すれば`soy:`部分を変更できます。

 

SOY2HTMLで処理とデザインを切り分ける

/** Geminiが自動生成した概要 **/
SOY CMS/Shopのモジュール内でSQLを実行するには、SOY2DAOを利用します。データベースへの接続情報はSOYShop_DataSetsクラスで管理されており、`getDataSourceName()`でデータソース名、`getDatabaseUserName()`でユーザー名、`getDatabasePassword()`でパスワードを取得できます。データベースに接続するには、`SOY2DAOFactory::create("データソース名")`を使用します。createメソッドの引数は省略可能で、省略した場合はshopデータベースに接続します。SQLを実行するには、`query()`、`executeQuery()`、`execute()`メソッドを使用します。これらのメソッドは、`SOY2DAO`クラスのインスタンスメソッドとして呼び出します。

 

SOY CMSでサイト用ディレクトリのディレクトリ名を変更したい場合

/** Geminiが自動生成した概要 **/
SOY CMSでサイトディレクトリ(例:site)の名前を変更(例:hoge)するには、まずディレクトリ名を変更後、データベースのSiteテーブルを編集します。site_id、url、pathを新しいディレクトリ名に合わせて変更します。MySQL版ではdata_source_nameは変更不要ですが、SQLite版ではpathと同様にdata_source_nameも変更が必要です。これにより、システムが新しいディレクトリ位置を認識し、サイトが表示されます。記載内容は未検証のため、ご注意ください。

 

SOY CMSの開発秘話後編

/** Geminiが自動生成した概要 **/
SOY CMSはデザイナとプログラマの完全分業を目指し、機能はHTMLコメントタグの`<!-- cms:id="..." -->`に集約。これによりCMSを介さずともデザインが崩れず、改修コストを大幅削減。デザイナはPHP/SQLを触れずに済む一方、PHP記述許可モードで複雑な表示も可能に。不要な複雑さを排除し、クリエイティブな活動に注力させる開発理念が込められている。

 

Google Apps ScriptでJPEGの画像からOCRで画像内の文字列を取得してみた

/** Geminiが自動生成した概要 **/
Google Apps ScriptでJPEG画像からOCRで文字列を取得する方法を検証。GoogleドキュメントでのOCRをGASで自動化する方法を紹介している。 Drive APIを有効化し、画像URLを指定して`Drive.Files.insert`メソッドでGoogleドライブに挿入、`ocr:true`オプションでOCRを実行。 生成されたGoogleドキュメントには画像とOCR結果のテキストが含まれる。日付や画像中の文字認識は難しいが、本文は高精度で取得できた。以前試したGoogleドキュメント直接OCRより精度は高い。

 

SOY Shopの管理画面の注文一覧ページで表示速度周りを改修しています

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面、特に注文一覧ページの表示速度改善に取り組んでいます。月商数千万円規模のショップで顕著になる速度低下の原因となっていた、顧客名表示等の処理をDAO経由からSQL直書きに変更。顧客情報全体を取得する代わりに必要な名前だけをデータベースから取得することで、処理を効率化しました。他にも例外処理の見直しやテストコードによるエラー修正を行い、体感できる速度改善を実現。今後も処理速度の改善を継続し、最新版はサイトからダウンロード可能です。

 

福岡県八女市の春口農園さんの社内勉強会に呼ばれ肥料の話をしました

/** Geminiが自動生成した概要 **/
京都農販は福岡県八女市の春口農園の社内勉強会で肥料の施肥設計について講演しました。NPKのみに注目した施肥設計は、後々に追肥や農薬散布のコスト増につながることを指摘。pH、EC、CECといった土壌環境を考慮した施肥設計の重要性を解説し、肥料・農薬コスト削減の理由を説明しました。窒素、pH、EC、腐植量などに関する詳細な記事へのリンクも紹介。今回の講演内容は、施肥設計の見直しによる農薬防除回数削減に繋がるもので、より詳しい内容は京都農販日誌で確認できます。

 

宮城県遠田郡涌谷町のうじいえ農場さんの社内勉強会に呼ばれ肥料の話をしました

/** Geminiが自動生成した概要 **/
宮城県涌谷町のうじいえ農場で、京都農販の社内勉強会を実施。追肥設計と基肥設計について講演しました。追肥は京都農販の木村が、基肥設計は私が担当。基肥設計では、NPKだけでなく、pH、EC、CECに着目することで肥料や農薬の経費削減に繋がる理由を解説しました。窒素、pH、EC、腐植量に関する記事も紹介し、施肥設計の見直しで農薬防除回数を減らせることを強調しました。

 

UbuntuサーバでNode.jsのアプリの再起動に苦戦した時のメモ

/** Geminiが自動生成した概要 **/
UbuntuサーバーでNode.jsアプリを再起動する際、cronで@reboot時に実行するとデータベースファイルのパスがずれる問題が発生した。相対パス指定では実行ディレクトリが変わるため、`./_module/db.js` や `./db/sqlite.db` のような記述は`index.js`からの相対パスではなく、実行時のカレントディレクトリからの相対パスとして解釈されていた。これを解決するために、`__dirname` を使用して `index.js` のあるディレクトリを確実に取得し、`__dirname + '/_module/db.js'`、`__dirname + '/db/sqlite.db'` のように絶対パスを指定することで、どのディレクトリから実行してもデータベースに接続できるように修正した。

 

京都八幡の渋谷農園さん主催の勉強会で基肥の話をしました

/** Geminiが自動生成した概要 **/
京都八幡の渋谷農園主催の勉強会で、京都農販が基肥設計の重要性を解説。NPK重視の施肥設計は、後々追肥や農薬散布のコスト増につながる点を指摘。pH、EC、CECを考慮することで肥料・農薬費用削減が可能となる理由を説明した。窒素、pH、EC、腐植量に関する記事へのリンクも紹介。今回の基肥設計の講義は、施肥設計見直しによる農薬防除回数削減へと繋がる内容となっている。

 

SOY CMS3.0.0とSOY Shop1.18.0の差分をマージしました

/** Geminiが自動生成した概要 **/
SOY CMS 3.0.0とSOY Shop 1.18.0が公開され、筆者がコードを検証しました。SOY ShopがPHP7に対応し、データベースに変更がない点は評価されるものの、懸念点が複数指摘されています。フォーラムで要望の多かったブログ記事の自動保存や総当たり攻撃対策、標準プラグインの機能追加(検索フォームなど)、SOY Shopの外税計算修正は未実装です。さらに、jQuery読み込み最適化により、既存のjQuery利用プラグインの大半が動作不能になっているため、バージョンアップの際は特にjQuery関連の動作確認を十分に行うよう強く推奨されています。

 

高知の土佐園芸生産組合さんで基肥の話をしました

/** Geminiが自動生成した概要 **/
高知の土佐園芸生産組合で、京都農販が肥料に関する勉強会を開催。基肥設計において、NPKのみに注目すると追肥や農薬散布のコスト増につながる理由、pH、EC、CECを重視することで肥料・農薬経費削減できる理由を解説した。窒素、pH、EC、腐植量に関する記事へのリンクも紹介。この内容は、施肥設計見直しによる農薬防除回数削減につながるもので、次作以降の栽培での活用を推奨している。

 

SOY CMS3.0.0βの差分をマージしました

/** Geminiが自動生成した概要 **/
開発元退職後も私がSOY CMS開発を続ける理由は、情熱と責任感にあります。SOY CMSは私の人生の一部であり、ユーザーにとって無くてはならない存在だと認識しています。退職によって開発が滞り、ユーザーに迷惑をかけることは避けたい。オープンソース化という選択肢もありましたが、継続的な開発とサポートを提供するため、個人で開発を引き継ぎました。収益化は二の次で、ユーザーのニーズに応え、SOY CMSを成長させることが最優先です。この決断は私にとって大きな挑戦ですが、SOY CMSとユーザーへの愛着が原動力となっています。

 

SOY CMSで常時SSL化対応後の各記事内の画像のパスの対応

/** Geminiが自動生成した概要 **/
SOY CMSの常時SSL化後、記事内の画像パスがhttpのままとなり、エラーが発生する問題を解決するプラグインが作成されました。記事内の画像はhttpで始まる絶対パスで挿入されるため、手動またはデータベース操作で修正が必要ですが、このプラグインを使えば記事内の画像パスを一括でスラッシュから始まる絶対パス(例:/site/files/hoge.jpg)に変換でき、常時SSLに対応できます。プラグイン名は「画像URL変換プラグイン」で、saitodev.co/soycms/からダウンロード可能です。

 

農研機構の日本土壌インベントリー

/** Geminiが自動生成した概要 **/
農研機構の「日本土壌インベントリー」は、緯度経度で土質を検索し、詳細情報を提供する画期的なWebサービスです。これにより、訪れたことのない地域の土壌特性を把握し、栽培計画に役立てることが可能になります。 さらに、産業技術総合研究所の「日本シームレス地質図」と組み合わせることで、土壌の母岩や地下水に溶け込む養分まで推測でき、より深い土壌理解に繋がります。記事では、土壌データのアプリケーション連携の課題に触れつつ、京都・京北地域の黒ボク土を例に、地質情報との連携による詳細な土質分析の可能性を具体的に考察しています。

 

農研機構の谷和原圃場の土質

/** Geminiが自動生成した概要 **/
農研機構の筑波、谷和原圃場の土壌について、著者は視察を通じて考察している。圃場の土壌は褐色の黒ボク土で、茶色い土の色が特徴。土壌の間隙が多く、排水性が高いことが視覚的に確認できる。実際、雨天にも関わらず水たまりはなかった。著者は、この高い排水性を有する土壌が、農研機構の研究成果のベースとなっていることを念頭に置くべきだと結論付けている。

 

SOY CMSのバージョンアップについて

/** Geminiが自動生成した概要 **/
SOY CMSを古いバージョンから最新版にバージョンアップするには、0.1ずつ段階的にバージョンアップし、公式サイトのバッチファイルを適用します。1.5系以降は一気にバージョンアップできますが、初期管理者でログインしてキャッシュをクリアしてください。1.11系以降のSOY Shopは自動バージョンアップに対応しています。

 

SOY Shopの商品情報の出力時にカテゴリのリンクを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品情報出力にカテゴリリンクを追加しました。商品一覧と商品詳細ブロック内でカテゴリへのリンクを出力するタグが利用可能になります。商品グループの場合は、親商品名、詳細ページリンク、カテゴリ名とリンクも出力可能です。 また、商品一覧と検索結果ページのデータベース読み込み回数を最適化し、表示速度を向上させました。特に商品数が多いサイトで効果的です。更新版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。追加タグの詳細は同サイトのブロックタグページに記載されています。

 

SOY Shopのカスタムサーチフィールドの多言語化対応

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドが多言語化対応しました。商品名・カテゴリ名に続き、カスタムサーチフィールドの値も各言語毎に設定可能になり、CSVのインポート/エクスポートにも対応。管理画面では、各言語商品編集画面からカスタムサーチフィールドの設定を開き、言語ごとの値を入力できます。CSVによる多言語データの一括登録も可能になり、運用負荷を軽減。カスタムサーチフィールドは、カスタムフィールドと比べデータベーススキーマが洗練されており、表示速度の低下が起こりにくいメリットがあります。多言語対応版はsaitodev.coからダウンロード可能です。

 

日本シームレス地質図で見えることが増えたはず

/** Geminiが自動生成した概要 **/
「日本の石ころ標本箱」を参考に、栽培の成功/失敗と地質の関係を探る試み。成功地は酸性岩土壌、失敗地はチャート主体で規則性を持つ母岩だった。サンプル数は少ないが、地質を事前調査することで栽培適地の判断材料になると考えた。産総研の日本シームレス地質図を用いて、ミネラル欠乏がない地域は超塩基性岩/塩基性岩地帯、鉄過剰症の地域は塩基性岩地帯と判明。事例は少ないが、今後各地で地質と栽培結果を比較することで、より精度の高い事前予測が可能になると期待している。関連として海底火山の痕跡についても言及。

 

自由を求めてオープンソースのネットショップパッケージへ。軌道に乗った頃に遭遇する問題について

/** Geminiが自動生成した概要 **/
SOY CMSを利用したネットショップ運営において、初期段階では自由度の高さがメリットとなるが、注文データの増加に伴い表示速度の低下という課題に直面する。これはGoogle検索ランキングにも影響する。記事では、表示速度低下の原因としてデータベース設計の冗長化、特にTEXTカラムの多用を指摘。SOY CMS/Shopでは不要な機能をインストールしない、外部データベースの活用などで冗長化を回避しているものの、注文データテーブルでのTEXTカラム使用は課題として残る。解決策として、サイト高速化とデータベースチューニングの必要性を提示している。具体的な対策は後述としているが、別記事ではPageSpeed Insightsのスコア99達成についても言及している。

 

SOY CMS/Shopを利用する際、どのデータベースを利用すれば良いか?

/** Geminiが自動生成した概要 **/
SOY CMS/Shop開発者が最も感銘を受けたネットショップは、1日に約3万件もの注文を処理しながら、サクサクとした動作を維持しているサイトです。この驚異的なパフォーマンスは、MySQLデータベースの綿密なチューニングと、徹底的なキャッシュ戦略によって実現されています。数百台ものサーバーが複雑なシステムを支え、注文処理から配送までがシームレスに連携。サイト運営者の技術力と、顧客満足度を最優先に考えた設計思想に開発者は深く感銘を受け、自らの開発にも活かそうと刺激を受けています。膨大なアクセスと注文を処理しながらも快適なユーザー体験を提供するこのサイトは、ネットショップ開発の理想形として、開発者の心に深く刻まれています。

 

カルシウム過剰によるカルシウム欠乏

/** Geminiが自動生成した概要 **/
京都市内の畑で、肥料過多と土壌pHの低下により野菜が育たない問題が発生。土壌分析の結果、リン酸過剰とpH4.5という強酸性が判明。施肥設計書に基づき堆肥と石灰を投入してきたことが原因で、土壌中のリン酸が鉄やアルミニウムと結合し、植物が利用できない状態になっていた。さらに、石灰過剰によりカルシウム濃度が異常に高く、マグネシウム欠乏も引き起こしていた。解決策として、有機物を投入し微生物の活性化を図り、リン酸を可給化することが提案された。この事例は、過剰な肥料投入とpH調整が土壌劣化につながることを示す重要な教訓となる。

 

リービッヒの無機栄養説

/** Geminiが自動生成した概要 **/
リービッヒは、植物の栄養源は無機物であるとする無機栄養説と、植物の成長は最も少ない栄養素によって制限される最小律を提唱した。これは現代農業でも有用だが、欠点もある。例えば、カルシウム欠乏は土壌中のカルシウム不足だけでなく過剰によっても発生する。リービッヒの最小律だけを適用すると、カルシウム欠乏にカルシウムを追肥し続け、症状を悪化させるという誤った対応につながる可能性がある。

 

SOY Shopの商品詳細ページで商品コードの置換文字列を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページでSEO対策と商品コード表示の課題を解決するため、タイトルフォーマット等のメタタグに商品コードとカテゴリ名の置換文字列を追加。商品名に商品コードを含めることで発生するデータベース肥大化や表示変更の煩雑さを解消。商品名は本来の役割に特化させ、商品コードはメタタグで管理することで、システムの効率化と柔軟な表示を実現。この変更はGitHub上の最新SOY Shopパッケージに含まれており、SEO効果の向上と運用コストの削減に貢献する。

 

ネットショップ用CMSはカタログサイトの構築にも向いている

/** Geminiが自動生成した概要 **/
カタログサイト構築にネットショップ用CMS(例:SOY Shop)を推奨。理由は、将来的な物販開始時のデータ移行が不要になるため。ブログ利用の場合、商品登録のインポートが煩雑になる。 CMSなら注文ボタン設置で物販開始が可能。事例としてコトブキ園のサイトを紹介。商品一覧・詳細ページがあり、豊富なコンテンツ登録が可能。高度な検索フォーム設置も容易。 会員制カートプラグインで直購入防止、SOY Inquiry連携で商品毎の問い合わせフォーム設置も実現できる。これにより、情報豊富で問い合わせ対応も可能なカタログサイトが構築できる。

 

一般的に赤土には腐植が多いと言われるけれど

/** Geminiが自動生成した概要 **/
火山岩由来の赤土と花崗岩由来の真砂土では、赤土の方が腐植が多い理由について考察している。花崗岩は風化しやすく土になりやすい一方、安山岩は風化しにくいため、土壌化に植物の根や微生物の活動がより必要となる。つまり、安山岩の風化には生物の介入が多く、結果として生物の死骸由来の腐植が蓄積しやすいため、赤土の方が腐植が多くなるという仮説を立てている。この理解が正しければ、山を切り開いた農地への取り組み方も変わると述べている。

 

在庫数一括設定プラグインで商品カテゴリによる絞り込みが甘い不具合を修正しました

/** Geminiが自動生成した概要 **/
SOY Shopの在庫数一括設定プラグインのバグ修正について。当初、商品カテゴリ検索でカテゴリIDのLIKE検索を用いていたため、意図しないカテゴリの商品も検索結果に含まれる不具合があった。例えば、カテゴリ1(ID:1)で検索すると、カテゴリ10(ID:10)も検索対象となっていた。これはIDに"1"が含まれるため。この不具合は修正済みで、修正版はGitHubからダウンロード可能。

 

SOY2DAOでトランザクションを利用する

/** Geminiが自動生成した概要 **/
SOY2DAOではトランザクション処理が可能です。トランザクションを使用することで、複数のSQL文をまとめて実行し、処理に失敗した場合に一連の変更をすべて取り消すことができます。 トランザクションを開始するにはbegin()メソッドを使用し、終了するにはcommit()メソッドを使用します。処理中にエラーが発生した場合は、successedフラグをfalseに設定し、処理をロールバックします。 これにより、複数の処理が確実に実行されることが保証され、データの一貫性が維持されます。

 

Dropboxにバックアップする時はパスワード付きzipにしておく

/** Geminiが自動生成した概要 **/
Dropboxへのバックアップ時に、個人情報を含むデータベースをzip圧縮する際のセキュリティ強化策として、パスワード付きzipファイルの作成方法を紹介している。 zipコマンドの-eオプションで暗号化が可能だが、対話式でパスワード入力を求められるため、crontabでの自動化にはexpectコマンドを使用する必要がある。サンプルスクリプトでは、expectでパスワード入力を自動化し、指定ディレクトリをパスワード付きzipファイルとしてDropboxにバックアップする方法を示している。 スクリプトの実行例として、Dropboxへのアップロードとダウンロード後の解凍時にパスワードが要求されることを確認し、セキュリティが向上したことを示している。さらに、パスワードの強度を高める方法や都度生成する仕組みの必要性にも言及している。

 

SOY2DAOでSQLを実行して、オブジェクトで返す

/** Geminiが自動生成した概要 **/
SOY2DAOで複雑なSQLを実行しつつ、結果をオブジェクトで取得する方法が紹介されています。顧客テーブルとカスタムフィールドテーブルを結合し、特定のカスタムフィールド値を持つ顧客情報を取得する例が示されています。 `SOYShop_UserDAO` の `executeQuery` でSQLを実行し、結果の配列をループ処理で `getObject` メソッドに渡すことで、各レコードが `SOYShop_User` オブジェクトに変換されます。これにより、カスタムフィールドの値で検索しながら、必要な顧客情報のみをオブジェクトとして扱いやすく取得できます。この手法は、以前紹介されたSOY CMSの検索フォーム追加の記事でも活用されています。

 

SOY2DAOでデータベースから値を取り出す

/** Geminiが自動生成した概要 **/
SOY2DAOを用いたデータベースからの値の取得方法を解説。プリペアードステートメントに続き、今回はDAOの機能を活用した取得方法を紹介。SOY Shopの顧客情報を例に、`SOY2DAOFactory::create("user.SOYShop_UserDAO")` でDAOオブジェクトを生成し、`$userDao->get()` でデータを取得する様子をコードで示す。取得したデータはSOYShop_Userオブジェクトの配列となり、`$user->getName()` のようにゲッターメソッドで簡単に値にアクセスできる。SQL直接実行の場合と比べ、オブジェクト指向の恩恵で可読性・安全性が向上する点を強調。最後に、SQL実行結果もオブジェクトで扱いたいケースへの言及で締めくくっている。

 

SOY2DAOでプリペアードステートメントを利用する

/** Geminiが自動生成した概要 **/
SOY2DAOでプリペアードステートメントを使う方法を解説します。SQLインジェクション対策として、SQL内に直接値を埋め込むのではなく、プレースホルダ(:name)を使用します。 例: $sql = "SELECT * FROM soyshop_user WHERE mail_address = :mail AND password = :pass"; $binds = array(":mail" => $m, ":pass" => $p); $results = $dao->executeQuery($sql, $binds); executeQueryの第二引数にプレースホルダと値の連想配列を渡すことで、SOY2DAOが安全にSQLを実行します。これにより、$mや$pにSQL構文が挿入されても、悪意のあるクエリの実行を防ぎます。

 

SOY CMS/Shopのモジュール内でSQLを実行する

/** Geminiが自動生成した概要 **/
SOY CMS/Shopのモジュールでは、PHPで自由にSQLを実行できる。PDOは結果の整形が面倒だが、SOY2DAOクラスを使うと便利。 例えば、`soyshop_user`テーブルから上位5件を取得するSQLを、PDOで実行すると連想配列と数値添字配列の混合配列が返り使いにくい。SOY2DAOの`executeQuery`メソッドを使うと、同じSQLでも整形された連想配列として結果が返るため、foreach文などを書かずに扱える。

 

フローラルディップ法で遺伝子組み換え

/** Geminiが自動生成した概要 **/
従来の遺伝子組み換え(アグロバクテリウム法)は、特定の細胞を改変後、培養して個体に育てる手間があった。これに対し「フローラルディップ法」は、開花前の蕾にアグロバクテリウムを感染させ、受粉・受精を経て得られた種子から直接遺伝子組み換え株を育成できる。これにより、面倒な細胞培養が不要となる。 筆者は、遺伝子組み換えは微生物の特性を最大限に活用するもので、イメージされる精密なメス操作とは異なると指摘。植物に他生物の遺伝子が入ることも自然な現象と強調し、医学的応用が進む中で、遺伝子組み換えへの最低限の理解が不可欠だと訴える。

 

SOY CMSのサイトでPageSpeed Insightsのスコアが99になりました

/** Geminiが自動生成した概要 **/
SOY CMSサイトのPageSpeed Insightsスコアを99にするため、静的化プラグインを開発。標準ページをHTMLファイル化し、システムを経由せず直接読み込むことで高速化を実現。記事更新時はindex.html、ページ更新時は該当HTMLを削除し、即時反映を維持。DB接続回数を減らしサーバー負荷も軽減。内部SEO対策にも有効。プラグインはフォーラムで配布中だが、Google Analytics設置に関する提案への対応は未解決。

 

MySQLのバックアップスクリプトを作成してみた

/** Geminiが自動生成した概要 **/
CPIの仮想専用サーバで開発中に、無料の50GBバックアップサーバを利用してMySQLのデータベースをバックアップするシェルスクリプトを作成した。スクリプトは`mysqldump`で全データベースをダンプし、gzipで圧縮、`scp`と`expect`を用いてパスワード認証でバックアップサーバに転送する。`expect`はscpのパスワード入力を自動化し、cronでの実行を可能にする。古いバックアップファイルの削除処理は未実装。`chmod +x`で実行権限を与え、cronで毎日実行するように設定。最後にバックアップサーバにbackupディレクトリを作成し、動作確認を行った。

 

インストーラーで再インストール後にサイトを復元

/** Geminiが自動生成した概要 **/
SOY CMSのインストーラによる再インストール後、サイトを復元する方法です。 まず、再インストール前にサイトのソースコードからサイトID(例: /site/files/ の"site"部分)を確認しておきます。 次に、インストーラで再インストールする際、インストール先ディレクトリを既存のものと異なる名前に変更します。インストール完了後、初期管理者を作成し、「サイトの復元」ではなく「サイトの作成」を選択します。 ここで、事前に確認しておいたサイトIDを入力してサイトを作成します。サイトIDが正しければ、既存のファイル群が使用され、サイトが復元されます。 最後に、元の管理画面URL(例: /cms/admin)で再インストールを行い、以前のデータベースに接続できないようにすることでセキュリティ対策を行います。データベース接続設定ファイル(例: mysql.db)を復旧すれば、元のアカウントも復元可能です。

 

SOY CMSでインストーラを削除せずにいたらどうなるか?

/** Geminiが自動生成した概要 **/
SOY CMSのインストーラを削除しないと、再インストールが可能になり、サイトデータが消去される危険性がある。攻撃者は用意したデータベース情報で再インストールし、初期管理者権限を奪取できる。管理画面URLが判明していれば、インストーラ経由でサイトを初期化・乗っ取りが可能。他CMSでもインストーラが残っていれば同様の危険があるため、インストール後は必ず削除する必要がある。

 

SOY ShopにEC CUBE2.4系のログインチェックを導入しました

/** Geminiが自動生成した概要 **/
EC-CUBE2.4系からSOY Shopへの移行時に、顧客のパスワードをそのまま利用できるようログインチェック機能を導入。EC-CUBEとSOY Shopのパスワード暗号化方式の違いを考慮し、SOY Shop側でEC-CUBEの暗号方式を適用する処理を追加。暗号化パスワードにスラッシュの有無でEC-CUBEかSOY Shopかを判別。EC-CUBE2.4.4以前のバージョンに対応しており、顧客がパスワードを変更すればSOY Shopの方式に自動更新されるため、特別な切り替えは不要。将来的には2.11.1以降のバージョンにも対応予定。修正版はフォーラムまたはGitHubから入手可能。

 

EC CUBEからSOY Shopにデータベースを引っ越す

/** Geminiが自動生成した概要 **/
EC-CUBEの動作遅延に悩むユーザーが増加し、高速なSOY Shopへの移行ニーズが高まっている。そこでEC-CUBEからSOY Shopへのデータ移行プラグインが開発された。このプラグインはEC-CUBEのデータベースから直接データを読み込み、SOY Shop用に変換・挿入する。パスワードはセキュリティ上、ランダムに設定され、ユーザーには再設定を促すメルマガ送信が推奨される。EC-CUBE2系と3系のデータ移行実績があり、フォーラムで配布されている。

 

脇芽を知って、挿し木を知ろう

/** Geminiが自動生成した概要 **/
この記事では、植物の「脇芽」と「挿し木」の関係について解説しています。植物の茎には「原基」があり、そこから葉、根、枝(脇芽)が発生します。脇芽は別個体のように扱うことができ、挿し木はこの性質を利用した技術です。 挿し木は、脇芽を伸ばした枝を土に挿すことで、原基から根(不定根)が発生し、新しい個体として成長させる方法です。ソメイヨシノの増殖などに使われています。 脇芽は茎と葉柄の間に発生する、葉と茎を持った枝のような部分(シュート)です。このシュートを土に挿すと不定根が発生します。 サツマイモは、この挿し木がよく使われる作物の代表例です。

 

複葉を意識すると脇芽が見えてくる

/** Geminiが自動生成した概要 **/
複葉を理解すると脇芽の位置が正確に把握できる。一般的に脇芽は茎と葉の付け根から発生するが、複葉の場合、小葉一枚一枚ではなく、複葉全体の付け根から脇芽が発生する。一見すると小葉の付け根から脇芽が出ているように見えるが、実際は複葉の基部から出ている。この規則はダイズなど複葉植物の芽かき作業で実感できる。小葉ではなく複葉全体を一つの葉として捉えることで、脇芽の位置を正しく理解できる。

 

光合成からアミノ酸の合成へ

/** Geminiが自動生成した概要 **/
植物は光合成で得た糖を分解し、クエン酸回路の中間体である有機酸に、硝酸から還元したアミノ基(-NH₂)を付加することでアミノ酸を合成する。グルタミン酸はα-ケトグルタル酸に、アスパラギン酸はオキサロ酢酸に、アラニンはピルビン酸に、それぞれアミノ基が付加されて生成される。グルタミン酸は、アスパラギン酸とアラニンの合成にも関与する重要なアミノ酸である。植物がアミノ酸を直接吸収できれば、硝酸還元と糖分解の過程を省略できる。動物もアミノ基があれば有機酸からアミノ酸を合成できるが、必須アミノ酸は体内で合成できないか、合成量が不足するため、食物から摂取する必要がある。グルタミン酸は旨味成分としても重要である。

 

SOY CMSのブロックで記事のランダム表示

/** Geminiが自動生成した概要 **/
SOY CMSのブロックで記事をランダム表示するスクリプトモジュールブロックのコードが紹介されています。指定したラベルの記事をランダムに並び替え、指定件数分出力します。 `/site(サイトID)/script/soycms_random.php` にPHPコードを記述し、テンプレートで `cms:label` にラベルID、`cms:count` に取得件数を指定することで利用できます。コードはフォーラムにもアップロードされています。記事の取得件数を指定しない場合は、該当ラベルのすべての記事を取得しランダムに表示します。

 

Dockerの他コンテナにあるSOY CMSからMySQLのコンテナにアクセスしてみる

/** Geminiが自動生成した概要 **/
Docker Composeを用いて、PHP7/ApacheとMySQLのコンテナを連携させ、SOY CMSを動作させる方法を解説。MySQLコンテナでは`bind-address`を指定し、PHPコンテナでは`pdo_mysql`拡張をインストールする必要がある。データベース接続設定では、MySQLコンテナの内部IPアドレスとポート(3306)を指定。SOY CMSのデータベース設定ファイル(mysql.php)を適切に編集することで、コンテナ間のデータベースアクセスを実現。記事では、`docker-compose.yml`の設定例や、コンテナ内でのデータベース作成手順、SOY CMSの初期設定画面へのアクセス方法などを示している。また、PHP7環境でのSOY CMS動作に関する修正はGitHubで公開されている。

 

さくらのVPSでSOY CMSを動かした時のメモ

/** Geminiが自動生成した概要 **/
Apacheサーバのバージョン表示はセキュリティリスクとなるため、非表示にすることが推奨されています。本記事では、Apacheの設定ファイル`httpd.conf`または`apache2.conf`を編集することで、バージョン情報を隠す方法を解説しています。具体的には、`ServerTokens`ディレクティブを`Prod`に設定することで、公開されるサーバ情報を最小限に抑えられます。また、`ServerSignature`ディレクティブを`Off`にすることで、エラーページなどからサーバのバージョン情報が削除されます。これらの設定変更後、Apacheを再起動することで変更が反映されます。さらに、セキュリティ対策としてmod_securityなどのセキュリティモジュール導入も推奨しています。

 

SOY Shopで商品詳細ページの下に同じカテゴリの商品一覧を表示する

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページ下部に、同カテゴリ商品一覧を表示する方法を解説。 パーツモジュールを追加し、IDを「parts.item_list」、モジュール名を「商品一覧モジュール」とする。 モジュール内では、商品詳細ページの場合のみ、表示商品のカテゴリIDを取得し、DAOで同カテゴリの公開商品を取得、`SOYShop_ItemListComponent`を用いて商品一覧ブロックを生成する。 商品詳細テンプレートに`shop:module="parts.item_list"`を記述し、内部に`block:id="item_list_by_detail"`と商品表示用のcms:idを記述することで、一覧表示を実現する。 カート追加機能も確認済。 パーツモジュールを活用すれば、簡単なプラグイン機能を開発可能。

 

Webでの肥料の販売の開始です

/** Geminiが自動生成した概要 **/
京都農販のWebサイトが公開されました。SOY Shopで構築されたこのサイトは、現在は商品カタログですが、将来的にはネットショップとして運用予定です。開発者はSOY Shopに5年間携わっており、そのノウハウを活かし、特に商品詳細ページに注力しています。商品情報に加え、「この肥料を使うために、これは知っておきたい!」セクションでは、SOY CMSで作成した関連コラム記事を自動表示。肥料の使用方法や実際の栽培事例を学ぶことができます。これにより、ショップ管理者は商品情報に集中し、営業担当者はブログ投稿でサイトを盛り上げることが可能になります。スマホ対応も実装済みです。今後はコンテンツ拡充に注力していきます。

 

白い下地に着色していくもの

/** Geminiが自動生成した概要 **/
ポインセチアは育種が盛んで、多様な品種が存在する。特に色のバリエーションが豊富で、白い下地をベースに赤い色素の量でピンクから真紅まで変化する。また、部分的な脱色による斑入りも存在する。これは色素が欠損している部分であり、白い色素が発現しているわけではない。同様の現象はチューリップの花弁でも見られるが、ポインセチアの場合は苞葉という葉で起こっている点が異なる。

 

Goで一方向ハッシュ関数によるパスワードの暗号化を書いてみた

/** Geminiが自動生成した概要 **/
SHA-2は、SHA-1の後継として開発された暗号学的ハッシュ関数群です。SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256といったバリエーションがあり、それぞれ異なるハッシュ値の長さを生成します。SHA-2は、メッセージダイジェストを作成することでデータの整合性を検証し、改ざんを検出できます。内部構造はSHA-1と類似していますが、より安全で攻撃に対する耐性が高いとされています。現在、SHA-256とSHA-512が広く利用されており、SSL/TLSやデジタル署名など、様々なセキュリティアプリケーションで重要な役割を果たしています。

 

肥料成分としての窒素(N)

/** Geminiが自動生成した概要 **/
ブログ記事は、肥料のN:P:Kに記載される窒素(N)が全て同じではないと指摘。一般的な硫安(硫酸アンモニウム)のNと黒糖肥料(アミノ酸由来)のNは、同じ「窒素」でもその性質が大きく異なると解説しています。硫安Nは作物に吸収されなければ流出しやすい一方、アミノ酸Nはカルボキシル基を持つため保肥力向上や微生物の餌となり、土壌改善に貢献。筆者は、性質の異なるこれらNを同一視すべきではないと強く主張し、従来の土壌診断の根本を問う重要な問題提起をしています。

 

検索フォームと検索結果ページを作ってみた3

/** Geminiが自動生成した概要 **/
SOY CMSで検索機能を実装する方法を解説。`/site(サイトID)/script/soycms_search.php`に検索スクリプトを記述。SQLで記事タイトル、本文、追記フィールドを検索し、公開期間内の記事を抽出。結果はEntryオブジェクトに変換後、配列`$soycms_search_result`に格納。テンプレートには`<form method="get" action="/search">`で検索フォームを設置し、クエリパラメータ`q`で検索文字列を受け取るようにする。`$dao->getObject($row)`で検索結果をEntryオブジェクトに変換することで、テンプレートに記述した`<!-- block:id="result" -->`で表示可能になる。

 

パーツモジュールでカノニカルタグを作ってみた

/** Geminiが自動生成した概要 **/
SEO対策のカノニカルタグを、ページ毎に挿入する手間を省くため、パーツモジュールで自動生成する仕組みを作成した。 ブログページとそれ以外のページで処理を分け、ブログページでは記事、カテゴリ、月別アーカイブそれぞれのモードに応じてURLを生成。HTMLテンプレートに`<link rel="canonical" href="生成したURL">`を出力することで、どのページでも正しいカノニカルタグが自動で挿入されるようになった。 実際にカテゴリページで確認した結果、期待通りのURLが出力され、今後の作業効率化に繋がることが期待される。

 

SOY CMSでどのページでも使えるブログのサイドバーを作ってみた

/** Geminiが自動生成した概要 **/
SOY CMSのPHPモジュールを使用して、ブログページのサイドバーコンテンツを他のページでも表示できるようになった。最新の投稿、カテゴリー一覧、月別アーカイブを取得するロジックを実装し、表示を整形した。これにより、ブログページと同様のコンテンツを非ブログページでも表示できるようになった。また、使用したSOY2DAOFactoryとSOY2Logicはデータベース操作やロジック処理を行うために使用された。

 

GnuCashでMySQLを使ってみる

/** Geminiが自動生成した概要 **/
GnuCashでMySQLを使用することで、設定したデータをローカルのMySQLデータベースに保存できます。データベースは自動生成され、データテーブルも自動生成されます。これにより、自作の解析アプリを作成することが可能になり、帳簿以外の用途にも拡張性が高まります。

おすすめの検索キーワード
おすすめの記事

Powered by SOY CMS   ↑トップへ