ブログ内検索

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

SOY InquiryでGmail API OAuth2.0認証の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Inquiryは、Gmail API(OAuth2.0認証)経由のメール送信機能を追加しました。これにより、管理者メールをGmailに設定している場合でも、送信メールが迷惑メールとして扱われるのを効果的に回避できます。この新機能を利用するには、SOY CMS 3.22.1以降、SOY Inquiry 2.10.0以降のバージョンへのアップデートが必要です。詳細な設定方法は専用のチュートリアル記事で確認でき、最新版は公式サイトからダウンロード可能です。

 

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

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

 

SOY Calendarの予定の登録周りのUIを見直しました

/** Geminiが自動生成した概要 **/
SOY CalendarのUIが大幅に改善され、ユーザー利便性が向上しました。公開側での翌々月以降のカレンダー表示における予定登録の分かりにくさに対し、従来のセレクトボックス形式から、曜日が直感的に確認できるカレンダー形式へ変更。これにより、別カレンダーでの確認手間を解消し、よりスムーズで効率的なスケジュール管理が可能になります。予定登録処理も一部変更され、最新版はSOY Calendar公式サイトでダウンロード提供中です。

 

ポリフェノールを合成する細菌

/** Geminiが自動生成した概要 **/
ブログ記事は、腐植の主成分であるポリフェノールやリグニンが植物由来であることに着目し、「植物以外にもこれらを合成する生物(特に土壌微生物)がいるのか」という疑問から調査を開始。 その結果、ポリフェノールの一種であるプロトカテク酸については、コリネ型細菌がグルコースを原料として生合成する事例が判明しました。プロトカテク酸は強い細胞毒性を持ちますが、コリネ型細菌はこの毒性に対し高い耐性を持つとされています。一方で、リグニンについては植物以外の生合成例は見つかりませんでした。本記事は、腐植の構成要素の生物学的起源と土壌微生物の新たな可能性を提示する内容です。

 

メイラード反応はまだ続く

/** Geminiが自動生成した概要 **/
メイラード反応を深掘りする本記事では、フランやピロール等に加え、フルフラールとリシン由来の環状新化合物「furpipate」の生成経路を解説。執筆の目的は、過去記事で触れた「腐植酸の形成」とメイラード反応の関連性解明です。腐植酸の環状構造がメラノイジンに由来する可能性に着目し、フェノール性化合物やポリフェノールとの複合的な視点から現象理解へ。今後は「ポリフェノールとメラノイジン」をキーワードに調査を継続します。

 

鉄の散布は低級脂肪酸由来の悪臭を抑制できるか?

/** Geminiが自動生成した概要 **/
本記事は、家畜糞処理における悪臭対策として、鉄の散布が低級脂肪酸、特にプロピオン酸由来の悪臭抑制に有効かを検証。前回触れた硫化水素に続き、今回は酸味系の不快な腐敗臭であるプロピオン酸に着目しています。プロピオン酸は鉄と反応することで、揮発性の低いプロピオン酸鉄を生成する化学反応が示されています。この反応によってプロピオン酸の揮発性が低下し、人の鼻で臭いとして認識されにくくなるため、悪臭発生を効果的に抑制できる可能性を提唱しています。

 

メイラード反応の中間段階まで

/** Geminiが自動生成した概要 **/
本記事は、メイラード反応の複雑な中間段階を深掘りします。導入では、コーヒーの香気成分であるジメチルピラジンが、植物病原菌に対し抗菌作用を示す可能性に言及。メイラード反応の初期段階であるアマドリ化合物(フルクトースリシンなど)から、脱水・分解を経てジカルボニル化合物(3-デオキシグルコソン:3-DG)が生成される過程を解説します。さらに、この3-DGがメチルグリオキサールやフラネオールへと変化する中間段階までを詳述。フルクトースがアマドリ化合物を経由せず3-DGになる経路も紹介し、メイラード反応の奥深さを紐解きます。

 

テルペン系香気物質について2

/** Geminiが自動生成した概要 **/
テルペン系香気物質の続編です。今回は、前回のモノテルペンに続き、テトラテルペンに属する重要な化合物「カロテノイド」に焦点を当てます。ニンジンなどに含まれるβ-カロテンは、ビタミンAの元となるだけでなく、低濃度で強い香りを放つ「イオノン」の生成源でもあります。このイオノンが食品や香料の風味に大きく貢献することを紹介。筆者は、甘い香りのニンジン体験から、香りと甘さの関連性に興味を持ち、その解明にはゲラニル二リン酸の理解が鍵となると考察しています。

 

テルペン系香気物質について

/** Geminiが自動生成した概要 **/
酵素で生成されるフレーバーの一種「テルペン系香気物質」について解説。代表例はウンシュウミカンに含まれる「テルピネン」で、これはシクロヘキサジエン骨格を持つテルペン炭化水素です。一見するとベンゼン環を持つフェノール性化合物のように見えますが、実は異なります。 テルピネンは「モノテルペン」に分類され、炭素数10のゲラニル二リン酸(GPP)が環状に変化して生成されます。記事では、これらの専門用語を丁寧に解説し、テルペン系香気物質の構造や生成過程の奥深さを順を追って掘り下げていきます。

 

緑色片岩で層毎に風化の仕方が異なるのは何故か?

/** Geminiが自動生成した概要 **/
ブログ記事「緑色片岩で層毎に風化の仕方が異なるのは何故か?」は、色の薄い層が風化しやすい一方で、濃い層は風化しにくいという現象の理由を探求しています。筆者は、愛知県総合科学博物館の資料から、濃い緑色の緑泥石と黄緑色・淡い緑色の緑簾石が縞模様を形成していることを発見。さらに、緑泥石が粘土鉱物であるのに対し、緑簾石はそうではない点に着目し、「濃い緑色の緑泥石を含む層が粘土鉱物であるために風化しにくいのではないか」という仮説を提示。緑色片岩の風化メカニズム解明に向けた考察を深める内容です。

 

油脂を多く含む肥料は食味の向上に繋がるか?

/** Geminiが自動生成した概要 **/
**要約** 「油脂を多く含む肥料が食味向上に繋がるか?」という疑問に対し、記事は油脂が植物内で膜脂質(リン脂質)となる点に注目します。研究によると、リン脂質の一種であるホスファチジン酸(PA)やホスファチジルイノシトール(PI)は、苦味成分を抑制する効果があることが判明。これらは舌の苦味センサーを阻害したり、苦味物質と結合したりすることで、苦味を和らげます。結果として、甘味や旨味が引き立ち、食味全体の向上に繋がる可能性を示唆しています。

 

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

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

 

限りなき旅路

/** Geminiが自動生成した概要 **/
10年間毎日投稿を続けた筆者が、節目を振り返ります。この10年で最も印象深かったのは「緑色片岩」との出会いです。全国各地を巡り、土の始まりである母岩の理解を深める中で、それが農業生産性、特に稲作の品質と密接に関わることを発見しました。また、緑色の岩石には興味深い地域の伝承や日本の歴史との繋がりがあることも知りました。得られた知見を協力者の田で実践し、米の品質・収量を地域トップクラスに向上させ、講演の機会も得ました。今後は知見を共有し、学びの「限りなき旅路」を続けると結んでいます。

 

米ぬか嫌気ボカシ肥の施肥で土壌改良の効果はあるか?の続き

/** Geminiが自動生成した概要 **/
米ぬか嫌気ボカシ肥作りで米ぬか中のポリフェノールは、酸素不足で縮合せず、腸内細菌と同様に分解されると考えられる。フェルラ酸は分解され、最終的に酢酸等の短鎖脂肪酸になる。これらがアルコールとエステル化し、良い香りに変化する。木質チップを混ぜたボカシ肥で香りが強くなるのは、木材のフェノール性化合物の開裂が原因かも。次はオガクズを加えて、木質成分の分解を試みたい。

 

ロボットによる有機農業の自動化を目指すトクイテンさんの自社圃場を訪問

/** Geminiが自動生成した概要 **/
トクイテンさんの自社農場を訪問し、ロボットによる有機農業の自動化に向けた取り組みを見学しました。特に、トマト栽培の簡易化を目指すロボット開発に感銘を受けました。様々な創意工夫が凝らされており、得られた知見が他の作物にも応用できる可能性を感じました。今後、何らかの形でトクイテンさんの取り組みに関わっていきたいと考えています。

 

炭における酸性官能基と塩基性官能基は何だ?

/** Geminiが自動生成した概要 **/
バイオ炭は炭化温度で性質が変わり、低温炭化ではカルボキシ基やフェノール性水酸基などの酸性官能基が多く、pHが低くなる傾向があります。高温炭化では、酸性官能基が減り、窒素や酸素含有官能基、炭素表面のπ電子といった塩基性官能基が増え、pHが高くなります。特に塩基性官能基は陰イオンを吸着する特性があり、土壌のAECを高める効果が期待できます。

 

窒素を含む有機酸のムギネ酸の続き

/** Geminiが自動生成した概要 **/
ムギネ酸は、メチオニンからニコチアナミンを経て合成される。土壌中の鉄利用率を高め、高pHやリン酸過剰な環境でも効果を発揮する可能性があり、作物の生育に貢献する。ムギネ酸単体の資材化は難しいが、その恩恵を早期に受けるための活用法が重要となる。

 

SOY CMSで生成AIによるキーワード自動抽出プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS向け「キーワード自動抽出プラグイン」が開発されました。Google Gemini APIを利用し、記事内容からキーワードを自動抽出し、サイト内検索を強化します。特徴は、キーワードの読み仮名検索に対応している点です。例えば、「風化」を「ふうか」と入力しても記事がヒットします。MeCabのような形態素解析エンジンの導入・設定の手間を省き、生成AIの力で実現しました。将来的には入力補完や類義語検索も実装予定です。プラグインパッケージはsaitodev.co/soycms/からダウンロードできます。

 

サリチル酸の角質軟化作用について5

/** Geminiが自動生成した概要 **/
サリチル酸はタンパク変性に加え、脱脂作用も持つ。ベンゼン環(疎水性)、ヒドロキシ基とカルボキシ基(親水性)という構造から、弱い界面活性剤のように働く。このため、角質層の油脂と反応し除去する。油脂は水を弾くため、その除去は角質層の水分の保持を促し、軟化につながる。サリチル酸の構造が界面活性剤と類似していることが、角質軟化作用の一因となっている。

 

サリチル酸の角質軟化作用について4

/** Geminiが自動生成した概要 **/
サリチル酸は角質軟化作用を持つ。細胞膜を浸透したサリチル酸は、タンパク質や脂質に作用する。タンパク質はアミノ酸がペプチド結合し、水素結合、ジスルフィド結合、イオン結合、疎水性相互作用によって複雑な三次構造を形成する。サリチル酸はフェノール性ヒドロキシ基でタンパク質の水素結合に介入し、ベンゼン環の非極性によってイオン結合と疎水性相互作用にも影響を与え、タンパク質を変性させる。この二段階の作用によりタンパク質の機能、例えば生理活性や水溶性が変化し、角質軟化につながる。エタノールもタンパク質を変性させるが、ベンゼン環を持たないためサリチル酸のような強い角質軟化作用はない。

 

サリチル酸の角質軟化作用について3

/** Geminiが自動生成した概要 **/
サリチル酸は、ベンゼン環による非極性と、カルボキシ基及びフェノール性ヒドロキシ基による極性という両方の性質を持つため、脂溶性でありながら、細胞膜表面の親水性部分にも近づける。この両方の性質が、細胞膜への浸透に重要となる。 サリチル酸は、外側の親水性部分に弾かれることなく、内側の疎水性部分にも弾かれることなく浸透し、角質軟化作用を発揮する。膜貫通タンパクや脂質との反応は、更なる研究が必要である。

 

サリチル酸の角質軟化作用について2

/** Geminiが自動生成した概要 **/
この記事はサリチル酸の角質軟化作用のメカニズムを解説しています。まず、角質の硬さはケラチンによるものであると述べ、サリチル酸はケラチン自体に作用するわけではないことを指摘しています。次にサリチル酸の構造を図示し、ベンゼン環、カルボキシ基、ヒドロキシ基から構成されることを説明しています。ベンゼン環とカルボキシ基の存在によりサリチル酸は脂溶性を示し、油などの非極性物質と混ざりやすい性質を持つと解説しています。最後に、ベンゼン環とヒドロキシ基によるフェノール様の性質については、次回以降に持ち越すと述べています。

 

サリチル酸の角質軟化作用について1

/** Geminiが自動生成した概要 **/
サリチル酸の角質軟化作用について、角質とケラチンの説明から始まっている。角質は皮膚最外層の死んだ細胞層で、ケラチンという硬タンパク質を含んでいる。ケラチンの硬さは、システインというアミノ酸同士がジスルフィド結合していることによる。そして、サリチル酸はケラチンに直接作用するのではなく、別のメカニズムで角質を軟化させることが示唆されている。

 

医薬品としてのサリチル酸

/** Geminiが自動生成した概要 **/
ドラッグストアでイボ取り薬の有効成分がサリチル酸であることに気づき、植物ホルモンとしても知られるサリチル酸の作用機序に興味を持った筆者は、その角質軟化作用について調べた。サリチル酸は角質細胞間のタンパク質を分解し、水分の浸透を促すことで角質を剥がれやすくする。 この強い反応性を持つサリチル酸を植物がどのように利用しているのか疑問に思い、その歴史を調べると、ヤナギ樹皮から抽出されたサリシンを加水分解・酸化することで得られることがわかった。植物は、反応性の高いサリチル酸を配糖体などの形で扱いやすくしていると考えられる。

 

最高の開発環境を求めて2024

/** Geminiが自動生成した概要 **/
ChromebookとRaspberry Pi 5の組み合わせが最高の開発環境。ChromebookのLinux開発環境(Crostini)の制限をRaspberry Pi 5をサーバーにすることで回避。複数人でRaspberry Pi 5にアクセスし、Micro Editorを使って開発することで、小中学生でも容易にコーディングが可能に。ChromebookのSSH機能強化も貢献。Raspberry Pi 5のストレージはNVMeに換装することで信頼性向上。以前のRaspberry Pi 4B単体での開発環境に比べ、高速でストレスフリー。Chromebookはターミナルとして使用し、開発環境はRaspberry Pi 5に集約することで、ChromebookのPowerwashの影響も回避。

 

腸内細菌叢の話題で短鎖脂肪酸が注目されているそうだ

/** Geminiが自動生成した概要 **/
腸内細菌が食物繊維などを分解して産生する短鎖脂肪酸(酪酸、プロピオン酸、酢酸など)が注目されている。特に酪酸は、無菌マウス実験でうつ様症状を改善する効果が報告されている。つまり、酪酸は単なるエネルギー源ではなく、何らかのシグナル機能を持つと考えられる。ただし、過剰摂取は免疫系への悪影響も報告されており、適量の摂取が重要となる。その他、プロピオン酸や酢酸は食欲や肥満への関与も示唆されている。

 

ポリフェノールの分解

/** Geminiが自動生成した概要 **/
ポリフェノールは腸内細菌叢で代謝され、最終的に単純な有機酸となる。ケルセチンを例に挙げると、フロログルシノールと3-(3,4-ヒドロキシフェニル)-プロピオン酸に分解され、それぞれ酪酸・酢酸と4-ヒドロキシ馬尿酸へと変化する。4-ヒドロキシ馬尿酸生成過程ではアミノ酸抱合が関わっていると考えられる。この代謝経路は土壌中での分解と類似すると推測される。ポリフェノール豊富な飼料を家畜に与えると糞中ポリフェノールは減少し、土壌改良効果も低下するため、ポリフェノールを含む食品残渣は直接堆肥化するのが望ましい。

 

ポリフェノールと生体内分子の相互作用2

/** Geminiが自動生成した概要 **/
ポリフェノールと生体内分子の弱い化学結合に着目し、水素結合、配位結合に加え、π-π相互作用、CH-π相互作用、カチオン-π相互作用などを紹介。ベンゼン環の重なり合いによるπ-π相互作用は腐植物質形成の重要な要素と考えられ、土壌の保水性や保肥力にも関わると推測される。これらの相互作用は腐植物質の立体構造形成に寄与し、有機物の理解を深める上で重要である。

 

腐植酸とは何なのか?2

/** Geminiが自動生成した概要 **/
腐植酸、特にフルボ酸のアルカリ溶液への溶解性について解説している。フルボ酸は、陰イオン化、静電気的反発、水和作用を経て溶解する。陰イオン化は、フルボ酸のカルボキシル基とフェノール性ヒドロキシル基が水酸化物イオンと反応することで起こる。フェノール性ヒドロキシル基はベンゼン環に結合したヒドロキシル基で、水素イオンを放出しやすい。カルボキシル基はモノリグノールやポリフェノールには含まれないが、フミン酸の構造には酒石酸などのカルボン酸が組み込まれており、これがアルカリ溶液への溶解性に関与すると考えられる。良質な堆肥を作るには、ポリフェノールやモノリグノール由来の腐植物質にカルボン酸を多く付与する必要がある。

 

腐植酸とは何なのか?1

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

 

紅茶の赤色色素も縮合型タンニンになるか?

/** Geminiが自動生成した概要 **/
紅茶の赤い色素テアフラビンは、エピカテキンとエピガロカテキンという2つの縮合型タンニンから構成されています。縮合型タンニンは、フラボン骨格を持つポリフェノールの一種で、抗酸化作用などの機能を持つことが知られています。テアフラビンの形成過程では、エピカテキンとエピガロカテキンが酸化された後、縮合反応を起こします。このような縮合反応は、腐植酸の理解にもつながる重要な反応です。

 

フラバン-3-オールの役割は何か?

/** Geminiが自動生成した概要 **/
フラバン-3-オールは、カテキンなどのフラボノイドの構成要素であり、縮合型タンニンの前駆体となる物質です。植物は、フラバン-3-オールを紫外線フィルターとして合成していると考えられています。芳香族炭化水素を持つフラバン-3-オールは紫外線を吸収するため、落葉樹の葉などに多く含まれ、紫外線から植物を守っています。このことから、フラバン-3-オールを多く含む落葉樹の葉は、堆肥の主原料として適していると考えられます。堆肥化プロセスにおいて、フラバン-3-オールは縮合型タンニンに変換され、土壌中の窒素と結合し、植物の栄養分となる可能性があります。

 

縮合型タンニンの生合成

/** Geminiが自動生成した概要 **/
縮合型タンニンは、フラボノイドの一種であるフラバン-3-オールが複数結合した化合物です。フラバン-3-オールは、フラボノイドの基本構造であるフラボノンから数段階を経て合成されます。縮合型タンニンの合成では、ポリフェノールオキシダーゼという銅を含む酵素が、フラバン-3-オール同士の結合を触媒します。具体的には、一方のフラバン-3-オールのC環4位の炭素と、もう一方のA環8位の炭素が結合します。縮合型タンニンは、ヤシャブシの実などに含まれ、土壌中の窒素固定に貢献するなど、植物の生育に重要な役割を果たしています。

 

消毒液としてのエタノール

/** Geminiが自動生成した概要 **/
エタノールは、細胞膜を容易に透過し、タンパク質間の水素結合を破壊することで消毒効果を発揮します。タンパク質は水素結合などにより安定した構造を保っていますが、エタノールが入り込むことでこの構造が崩れ、変性や細胞膜の破壊を引き起こします。単細胞生物である細菌やウイルスにとって、細胞の破壊は致命傷となるため、エタノールは消毒液として有効です。

 

Google TV StreamerでSteam Linkを試してみた

/** Geminiが自動生成した概要 **/
Google TV StreamerでSteam Linkを試した結果、Chromecast with Google TVであったカクつきはメモリ増強により解消された。しかし、Raspberry Pi 4B 8Gと比較するとまだ動きが荒く、更なる設定調整が必要である。 動作改善にはメモリ増強が有効であることが示唆されたが、Raspberry Pi 4B 8Gとの性能差の原因はメモリ以外の部分にもある可能性がある。

 

造岩鉱物の黒雲母を見る5

/** Geminiが自動生成した概要 **/
記事「く溶性苦土と緑泥石」は、土壌中のマグネシウム供給における緑泥石の役割について解説しています。 土壌中のマグネシウムは植物の生育に不可欠ですが、多くの場合、植物が直接吸収できる「く溶性」の状態にあるマグネシウムは限られています。そこで注目されるのが緑泥石です。 緑泥石は風化しにくいため土壌中に長期間存在し、ゆっくりとマグネシウムを供給します。つまり、緑泥石は土壌中のマグネシウムの貯蔵庫としての役割を担っています。 さらに、土壌中のpHや他の鉱物の影響を受けて緑泥石からマグネシウムが溶け出す速度が変化することも指摘されています。

 

造岩鉱物の黒雲母を見る4

/** Geminiが自動生成した概要 **/
ミカン栽培において「青い石が出る園地は良いミカンができる」という言い伝えがあります。この青い石は緑泥石を多く含む変成岩である「青石」のことです。緑泥石は保水性・排水性・通気性に優れており、ミカンの生育に必要なリン酸の供給源となるため、良質なミカン栽培に適した土壌となります。言い伝えは、経験的に緑泥石がもたらす土壌の利点を表しており、科学的根拠に基づいた先人の知恵と言えます。

 

SOY CMSで生成AIによる記事概要の自動生成の機能を作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用プラグインを開発し、記事概要を自動生成する機能を追加しました。GoogleのGemini APIを使用して、記事本文から要約文を生成します。この機能により、記事一覧で表示される要約文が明確かつ読みやすくなりました。ただし、生成された要約文は必ずしもサイトの趣旨と一致するわけではありません。このプラグインは「記事概要自動生成プラグイン」として公開されており、「https://saitodev.co/soycms/」からダウンロードできます。

 

造岩鉱物の黒雲母を見る3

/** Geminiが自動生成した概要 **/
かつて黒雲母は単一の鉱物と考えられていましたが、現在ではマグネシウムを多く含む金雲母と鉄を多く含む鉄雲母の固溶体であることが分かっています。金雲母の化学組成はKMg3AlSi3O10(OH)2、鉄雲母はKFe3^2+AlSi3O10(OH,F)2です。金雲母は風化すると、緑泥石やバーミキュライトといった粘土鉱物へと変化します。つまり、金雲母の風化を理解することは粘土鉱物の理解を深めることに繋がります。

 

造岩鉱物の黒雲母を見る2

/** Geminiが自動生成した概要 **/
黒雲母の結晶構造は、ケイ酸の平面網状型重合体層間にAl、OH、Kが挟まれた構造をしています。Kは層間に位置し、2:1型粘土鉱物と類似していますが、黒雲母には水分子層が存在しません。2:1型粘土鉱物は層間にMⁿ⁺イオンと水分子を保持しており、これが保肥力に影響を与えると考えられています。水分子層の存在が黒雲母と2:1型粘土鉱物の大きな違いであり、その形成条件を理解することが重要です。そこで、粘土鉱物の構造と化学組成に関する文献を参考に、水分子層の形成メカニズムを詳しく調べていきます。

 

造岩鉱物の輝石を見る

/** Geminiが自動生成した概要 **/
輝石はかんらん石よりもケイ酸の重合が進んだ構造を持っており、そのため風化しにくい。ケイ酸が一次元の直鎖状に並んでおり、その隙間に金属が配置されている。この構造では、金属が常に外側に露出しているように見えるが、ケイ酸塩鉱物では重合が進んだ構造ほど風化速度が遅くなることが知られている。つまり、輝石の金属溶脱はかんらん石よりも起こりにくい可能性がある。

 

水田の肥効にズレが生じているのでは?

/** Geminiが自動生成した概要 **/
レンゲ米の水田では、土壌の物理性が改善され、窒素供給が緩やかになるため、初期生育が遅く葉色が濃くなる傾向があります。しかし、今年は周辺の水田で葉色が薄いという現象が見られます。これは、肥料、特に一発肥料の効きが影響している可能性があります。 例えば、鶏糞など有機成分を含む肥料は、気温や水分量によって効き目が変化します。今年の6月は梅雨入りが遅く気温が高かったため、肥料の効きが早まり、初期生育が促進されたものの、根の成長が追いつかず、養分吸収が追いついていない可能性が考えられます。

 

愚者の金

/** Geminiが自動生成した概要 **/
日本の土壌では、火山活動の影響で硫黄を含む黄鉄鉱が多く存在するため、硫黄欠乏は起こりにくいとされています。黄鉄鉱は金色の鉱物で、水田の秋落ち現象にも関わっています。土壌中に含まれる黄鉄鉱は、酸化により鉄と硫酸に分解され、植物に硫黄を供給します。そのため、頻繁な土壌交換を行わない限り、硫黄不足の心配はほとんどないと言えるでしょう。

 

脂質の酸化再び

/** Geminiが自動生成した概要 **/
活性酸素の一種であるヒドロキシラジカルは、脂質の不飽和脂肪酸と反応し、脂質ラジカルを生成します。 脂質ラジカルは酸素と反応して脂質ペルオキシルラジカルとなり、さらに他の不飽和脂肪酸と反応して脂質ペルオキシドとなります。 一度始まった脂質の酸化は連鎖的に進行し、脂質ペルオキシドは新たな活性酸素の発生に関与する可能性も示唆されています。

 

メグスリノキの薬効

/** Geminiが自動生成した概要 **/
メグスリノキは、古くから眼精疲労によるかすみ目に効果があるとされ、その有効成分はカテキンだと考えられています。また、エピロドデンドリンというチロシナーゼ阻害作用を持つ成分も含まれており、化粧品開発への応用が期待されています。さらに、ロドデンドロールという成分には肝炎への効果も報告されていますが、その作用機序は明らかではありません。チロシナーゼ阻害作用との関連性も不明です。

 

小学生たちがナガミヒナゲシを摘んでプレゼントし合っているらしい

/** Geminiが自動生成した概要 **/
ナガミヒナゲシは、さくら市を含む多くの自治体で駆除対象の危険外来生物に指定されています。繁殖力が強く、在来植物への影響が懸念されています。種子だけでなく根からも増えるため、抜き取って可燃ごみに出す必要があります。開花期には種子拡散を防ぐため、花が咲く前に駆除することが効果的です。

 

農業用の直管パイプは何からできている?

/** Geminiが自動生成した概要 **/
農業用の直管パイプに使われている「鋼管」について解説しています。鋼は鉄に炭素を0.02〜2.1%含んだもので、強度の高い材料です。製造過程で石炭由来のコークスが使われており、鋼の中の炭素もこのコークス由来と考えられます。 著者は、サビた鉄パイプの粉(酸化鉄)を水田にまけば、メタン発生抑制と窒素肥料節約になるのではないかと考えており、その過程で鋼管の材質についても調べています。

 

榊と柃

/** Geminiが自動生成した概要 **/
この記事は、サカキと同様に神事に用いられるヒサカキを通して、古代人がサカキに神秘性を感じた理由を探求しています。 ヒサカキは漢字で「柃」と書きますが、「令」は美しいという意味があり、見た目の美しさから名付けられたと考えられます。しかし、ヒサカキの葉にはギザギザがあり、古代人が神秘を感じたであろう常緑樹の特徴には当てはまりません。 そこで記事では、古代人は当初、常緑樹全般を神聖視しており、生活に必要な木に名前がつけられていく中で、名無しの常緑樹が「サカキ」となり、神事に用いられるようになったという説を紹介しています。

 

山に生えるマツ

/** Geminiが自動生成した概要 **/
海岸に生えるクロマツに対し、アカマツは山で見られる。アカマツはマツタケと共生するが、土が肥えた森林では生存競争に弱い。しかし、岩場や乾燥しやすい尾根筋など、他の植物が生息できないような劣悪な環境でも育つため、強いと言える面もある。要するに、アカマツは厳しい環境に適応した、たくましいマツと言えるだろう。

 

コトブキ園さんから恵壽卵を頂きました2024

/** Geminiが自動生成した概要 **/
神奈川県の養鶏場「コトブキ園」から「恵壽卵」を贈呈された。本記事は、以前贈呈された「恵壽卵」に関する記事を参照する。 「恵壽卵」は、こだわりの飼料で育てられた鶏から産出され、味と栄養価に優れている。動画では、贈呈された卵の開封と調理の様子が紹介されている。 関連情報として、「有機質肥料と飼料の類似性」や「コトブキ園から贈呈された『長壽焼ぷりん』」の記事が挙げられている。

 

松脂とは何か?

/** Geminiが自動生成した概要 **/
記事は、千葉県市川のクロマツに戦争の傷痕を伝える説明板が設置されたことを報じています。 戦中、航空燃料の原料である松脂を採取するため、このクロマツにも傷がつけられました。市民団体「市川の歴史を語り継ぐ会」が調査した結果、傷跡が残るクロマツは市内約20本確認され、戦争の記憶を後世に伝えるため、説明板の設置に至りました。 説明板には、松脂採取の歴史や戦争との関わり、平和の大切さなどが記されています。戦争を経験していない世代にも、身近な場所にあるクロマツを通して、過去の出来事や教訓を伝える貴重な資料となっています。

 

植物はニコチン酸をどのように合成するのだろう?

/** Geminiが自動生成した概要 **/
植物はニコチン酸を吸収すると、エネルギー運搬に関与するNADHなどの合成に必要な反応ステップ数を節約できるため、乾燥耐性が向上します。では、ニコチン酸吸収によって具体的に何ステップ省略できるのでしょうか? 植物はアスパラギン酸から始まり、イミノアスパラギン酸、キノリン酸を経てニコチン酸モノヌクレオチドを合成し、最終的にNADHが生成されます。ニコチン酸はニコチン酸モノヌクレオチドからNADを経て生成されますが、今回の目的はNADH合成の省略ステップ数なので、この経路は関係しません。 現状では、ニコチン酸吸収によるNADH合成の省略ステップ数を明確にすることは難しいですが、このような視点を持つことが重要です。 なお、ナイアシン含有量が多い食品として、米ぬかとパン酵母が挙げられます。酵母が米ぬかを発酵すると、ナイアシンが大量に合成される可能性も考えられます。

 

核酸の肥効について考えてみた

/** Geminiが自動生成した概要 **/
これからの稲作は、気候変動による水不足に対応するために、土の保水性を高めることが重要になります。従来の品種改良や窒素肥料中心の栽培では、水不足による収量低下が懸念されます。そこで、土壌中の有機物を増やし、保水力を高める土づくりが重要になります。特に、土壌微生物の活性化による団粒構造の形成が、保水性の向上に大きく貢献すると考えられます。

 

胆汁酸と炎症性腸疾患

/** Geminiが自動生成した概要 **/
広島大学大学院統合生命科学研究科の加藤範久教授らの研究グループは、緑茶に含まれるポリフェノールの一種であるカテキンが、大腸がんの危険因子である二次胆汁酸(リトコール酸など)を減少させることを発見しました。腸内細菌によって産生される二次胆汁酸は、大腸がんのリスクを高めるとされています。本研究では、カテキンが腸内細菌叢の構成を変化させ、二次胆汁酸の産生を抑制することを明らかにしました。この発見は、カテキン摂取による大腸がん予防の可能性を示唆するものです。

 

硝石の製造方法について

/** Geminiが自動生成した概要 **/
白川郷ではかつてトイレの横で硝石を作っていました。硝石は黒色火薬の原料となる物質です。伝統的な製法は手間がかかりますが、牛糞と草木灰から硝酸とカリウムを取り出すことで精製できます。牛糞と草木灰はカリウム肥料としても有用ですが、リン酸やカルシウム過多になる可能性も。硝石製造の過程でリン酸やカルシウムだけを取り除くことができれば、よりバランスの取れた有機肥料を作れるかもしれません。 **文字数: 126文字**

 

タチバナの子孫のオウゴンカン

/** Geminiが自動生成した概要 **/
タチバナの子孫と考えられる黄金柑は、明治時代に鹿児島県で「黄蜜柑」と呼ばれていました。来歴は不明ですが、鹿児島で自然交配によって誕生したと考えられています。ウンシュウミカンとユズの交配という説もありますが、タチバナの子孫であるという研究報告から、タチバナの子孫で果皮が黄色の品種との交配が有力です。 鹿児島は温州ミカン発祥の地としても知られており、カンキツ栽培の歴史が深い地域です。

 

黒潮の彼方にあると考えられた死と再生の異郷「常世」

/** Geminiが自動生成した概要 **/
古代日本人は、黒潮の向こうに常世という異世界を信じ、死と再生のイメージを重ねていました。黒潮の流れと種子島の例を見ると、常世はアメリカと沖縄を指すとも考えられます。これは、田道間守が不老不死の果実を求めて沖縄へ渡った伝説とも符合します。沖縄貝塚時代の遺跡から、当時、大和政権と沖縄の交流を示唆する痕跡も見つかっています。タチバナ栽培に必要な年数を考慮すると、10年という歳月は現実的であり、常世国が沖縄であった可能性を裏付ける一つの根拠となるかもしれません。

 

天沼矛のモデルとなった上立神岩

/** Geminiが自動生成した概要 **/
淡路島は「国生みの島」で、古事記の国生み神話に登場する天沼矛で創造されたオノコロ島は、淡路島南の沼島とされます。沼島南端の上立神岩は天沼矛のモデルとされ、緑色片岩でできています。沼島が中央構造線の縁に位置することから、この地質的特徴と、緑泥石(稲作豊作の要因)の価値が神話着想の元になったと考えられます。日本列島形成に関わる中央構造線と神話の関連に興味を持った筆者は、古事記をさらに探求するため関連書籍を購入しました。

 

沖縄でタチアワユキセンダングサらしき草をよく見かけた

/** Geminiが自動生成した概要 **/
タチアワユキセンダングサは、沖縄で「さし草」と呼ばれる外来植物です。繁殖力が強く、サトウキビ畑の強害雑草となっています。種子は衣服に付着しやすく、靴底に挟まった土に混入して広がります。一方で、飼料や養蜂の蜜源としての利用価値もあり、駆除すべきか資源として活用すべきか、議論が続いています。 (244文字)

 

沖縄の土を考える

/** Geminiが自動生成した概要 **/
沖縄の土壌改良について、琉球石灰岩由来の赤い土と、亜熱帯気候による有機質分解の速さ、多雨による風化の早さが土壌特性に影響を与えている点を指摘しています。特に、有機物の分解が速いため、暗赤色土の期間は短く、2:1型粘土鉱物は有機物の保護を受けられないため、1:1型粘土鉱物に変性してしまう点が、土壌改良を考える上で重要となります。

 

廃菌床とカブトムシと魚の養殖

/** Geminiが自動生成した概要 **/
魚の養殖において、餌として魚粉の代わりに家畜の糞が検討されています。特に鶏糞は栄養価が高く、魚粉の代替として有望視されています。 鶏糞を利用した魚の養殖には、いくつかのメリットがあります。まず、コスト削減が可能です。次に、廃棄物である鶏糞を有効活用できます。 一方で、鶏糞の利用には課題も存在します。魚の嗜好性や成長への影響、安全性確保などが挙げられます。 これらの課題を解決することで、鶏糞は魚の養殖における持続可能な餌資源となる可能性を秘めています。

 

SOY CMSで多言語ラベルプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSで英語サイトを同じURLで運営したい方向けに、多言語ラベルプラグインを作成しました。 このプラグインにより、ラベルごとに日本語と英語の両方の表記を管理できます。 ただし、同一URLでの多言語サイト運営には、PHPモジュールや画像パス変換プラグインなど、追加の対応が必要です。 これらの対応が必要な方は、フォーラムからお問い合わせください。 プラグインを含むパッケージは、サイトからダウンロードできます。

 

末延農園さんのReaper Death麺を食べてみた

/** Geminiが自動生成した概要 **/
末延農園さんの「Reaper Death麺(激辛)」は、想像を絶する辛さでした。普段から辛い物に強い私でも、涙と汗が止まらないほどの激辛です。 袋には「内蔵が弱い人や明日大事な予定がある人は食べてはいけない」と注意書きがありますが、まさにその通り。ドライアイが一時的に解消されるほどの辛さは、もはや罰ゲームレベルです。 この辛さの秘密は、世界一辛い唐辛子「キャロライナ・リーパー」。末延農園さんでは、国産キャロライナ・リーパーの栽培から加工・販売までを一貫して行っています。 「Reaper Death麺」はAmazonで購入可能です。辛い物好きの方は、ぜひ挑戦してみてください!

 

ChromecastでSteam Linkを試してみた

/** Geminiが自動生成した概要 **/
著者は、Chromecast with Google TVでSteam Linkを使ってゲームができるか検証しました。しかし、ゲーム動作がカクカクしてしまい、原因を調査。ネットワーク速度を向上させるためにイーサネットアダプターを導入しましたが改善されず、Chromecastのスペック不足が原因と推測しました。そこでRaspberry Pi 4Bで試したところ、スムーズに動作。Chromecastのメモリ容量が影響している可能性を指摘し、他のスペックのマシンでの検証を希望しています。 追記として、Chromecastの後継機であるGoogle TV Streamerでも同様の検証を行った記事へのリンクが掲載されています。

 

リノール酸の過剰摂取問題について触れてみる

/** Geminiが自動生成した概要 **/
リノール酸は必須脂肪酸だが、過剰摂取すると脳血管系疾患リスクが上昇する可能性がある。 これは、リノール酸からアラキドン酸が、α-リノレン酸からDHAが合成される経路が競合するためである。DHAは脳の働きに重要だが、リノール酸過剰摂取によりDHA合成が抑制される。特に乳幼児の脳発達への影響が懸念されるため、粉ミルクのリノール酸量には注意が必要だ。α-リノレン酸やDHA摂取を意識することで改善が期待される。

 

複合脂質のリン脂質

/** Geminiが自動生成した概要 **/
コリンは、細胞膜の構成成分であるリン脂質や、神経伝達物質であるアセチルコリンの原料となる重要な栄養素です。水溶性ビタミンの仲間ですが、体内で合成できるため、厳密にはビタミンではありません。 コリンは、肝臓で脂肪の代謝を促進し、細胞膜を維持することで動脈硬化や脂肪肝の予防に役立ちます。また、脳の神経細胞の活性化や記憶力、学習能力の向上にも貢献します。 不足すると、肝機能低下や認知機能の低下、胎児の発育不全などのリスクがあります。卵黄、レバー、大豆製品などに多く含まれています。

 

【SEO対策】Bootstrapを利用しつつ、Core Web Vitalsのスコアを改善する

/** Geminiが自動生成した概要 **/
この記事は、Bootstrapを用いてWebサイトのCore Web Vitalsスコアを向上させる方法を解説しています。具体的には、BootstrapのボタンコンポーネントのCSSのみを抽出し、ページHTMLにインライン挿入する方法を紹介しています。 手順としては、Bootstrapのソースファイルから必要なSCSSファイルをサイトディレクトリに配置し、SOY CMS側でSCSSコンパイルの設定を行います。これにより、ボタン用のCSSがページに直接記述され、外部ファイルの読み込みが不要になります。 さらに、生成されたCSSを圧縮してインライン化することで、ページ表示速度の向上を目指します。ただし、毎回SCSSをコンパイルするのは非効率なので、CSSやページ全体のキャッシュ化が推奨されています。

 

SOY CMSでSCSSコンパイラを実装しました

/** Geminiが自動生成した概要 **/
SOY CMSにSCSSコンパイラを実装する方法を解説した記事です。scssphpを用い、ページ出力時にSCSSファイルをコンパイルして表示するモジュールを作成します。具体的な手順としては、scssファイルを配置し、モジュールにコンパイル処理を記述します。記事ではサンプルコードも紹介されており、ダウンロード可能なパッケージも提供されています。@importの記述に誤りがなくstyle.cssが空の場合、pscssに実行権限を与える必要がある場合があります。

 

無酸素性運動の非乳酸性エネルギー供給機構で用いるクレアチン

/** Geminiが自動生成した概要 **/
クレアチンは、グリシンとアルギニンから合成される非必須アミノ酸で、無酸素運動のエネルギー供給に重要な役割を果たします。クレアチンの合成は腎臓と肝臓で行われ、筋肉組織に貯蔵されます。休息時には、筋肉組織でATPを用いてクレアチンリン酸が合成され、無酸素運動時にエネルギー源として利用されます。クレアチンリン酸は、筋肉中に貯蔵されたクレアチンとATPから合成され、無酸素運動の初期段階でエネルギーを供給します。つまり、クレアチンは、短時間・高強度の運動時に重要なエネルギー源となる物質です。

 

SOY CMSの各プラグインのアイコンの変更方法について

/** Geminiが自動生成した概要 **/
2007年リリースのSOY CMSには、あまり知られていない機能が存在します。それは、プラグイン管理画面に表示される各プラグインのアイコンをカスタマイズできる機能です。 初期状態ではすべてのプラグインのアイコンが豆蔵アイコンになっていますが、128x128ピクセルのGIF画像を「icon.gif」というファイル名でプラグインディレクトリに配置することで、任意のアイコンに変更できます。 これはリリース当初から存在する機能でしたが、当時のプラグイン数は少なく、あまり活用されませんでした。しかし、10年以上経過しプラグイン数が増加した現在、この機能を活用することで、目的のプラグインを見つけやすくなる可能性があります。

 

原子吸光光度法を用いてマグネシウムを測定する

/** Geminiが自動生成した概要 **/
土壌中のマグネシウム測定に原子吸光光度法が用いられる理由を解説しています。原子吸光光度法は、物質を高温で原子化し、そこに光を照射して特定の波長の光の吸収量を測定することで元素濃度を分析する方法です。マグネシウムは炎光光度法では測定できない波長を持つため、原子吸光光度法が適しています。一方、カルシウムも原子吸光光度法で測定されていますが、これはコストや感度、多元素同時分析の可能性などが関係していると考えられます。

 

大豆イソフラボンが筋萎縮の緩和に関与する

/** Geminiが自動生成した概要 **/
記事では、大豆イソフラボンの一種であるゲニステインが筋萎縮の緩和に効果がある可能性について解説されています。 東京大学の研究によると、ゲニステインはエストロゲン受容体に作用し、運動不足や骨折による筋萎縮の進行を遅らせる効果が期待されています。 また、脱脂大豆にはトレーニングに必要な成分やイソフラボンが残っており、健康食品や人工肉、大豆麺といった形で市場に登場しています。 これらのことから、大豆イソフラボンは女性ホルモンと同様の効果を持つ可能性があり、脱脂大豆の価値は今後さらに高まっていくと予想されます。

 

プロテインは何からできている?

/** Geminiが自動生成した概要 **/
プロテインは、主にホエイ・カゼイン・ソイの3種類から作られます。 * **ホエイプロテイン**は牛乳からチーズを作る際にできる上澄み液から作られ、吸収が早く運動後におすすめです。 * **カゼインプロテイン**は牛乳から脂肪分とホエイを除いた成分で、吸収が遅く就寝前におすすめです。 * **ソイプロテイン**は大豆から油脂を除いた成分で、吸収はゆっくりで朝食におすすめです。 社会情勢を考えると、今後は大豆由来のソイプロテインが主流になっていく可能性があります。

 

Raspberry PiでScratch3.0の開発環境を構築する

/** Geminiが自動生成した概要 **/
Raspberry PiにScratch3.0の開発環境を構築する方法を解説しています。 Node.jsのバージョンはScratch3.0との互換性のため14.20.1を使用し、パッケージ管理にはYarnを採用しています。 まずNode.jsとnpmをインストール後、nを使ってNode.jsのバージョンを管理します。次に、scratch-vmとscratch-guiのリポジトリをクローンし、yarn linkとyarn installコマンドで依存関係を解決します。 最後にyarn startコマンドでVMを起動し、ブラウザからhttp://localhost:8601/ にアクセスするとScratch3.0の画面が表示されます。 記事ではyarn installに時間がかかること、エラーが発生しても問題ない場合があることなど、注意点も解説されています。

 

さくらインターネットのVPSでUbuntuのアップグレード後にapt updateが使えなくなった時の対処

/** Geminiが自動生成した概要 **/
さくらインターネットのVPSでUbuntu 20.04から22.04にアップグレード後、`sudo apt update`が使えなくなり、pingも通らなくなった問題の解決策です。 原因は`/etc/resolv.conf`内のnameserver設定にあり、`127.0.0.53`を`8.8.8.8` (Google DNS) に変更することで解決しました。 ただし、`/etc/resolv.conf`の直接編集は再起動時に初期化されるため、正しくは`/etc/systemd/resolved.conf`に`DNS=8.8.8.8`を追記し、`sudo systemctl restart systemd-resolved`を実行する必要があります。

 

フェニックスのタネの大きさはどれくらい?

/** Geminiが自動生成した概要 **/
記事は、道路の隙間に生えたヤシのような植物を見て、単子葉木本の種はどれくらい小さいのか?という疑問から、単子葉木本の代表であるフェニックス(カナリーヤシ)の種の大きさを調べたものです。 調査の結果、フェニックスの種はペットボトルキャップより少し小さい2cm程度であることがわかりました。道路の隙間から生えるには少し大きいものの、不可能ではない大きさです。 ただし、最初の植物が本当に単子葉木本であるかは不明であり、今後の課題として残されています。

 

台風対策とESG

/** Geminiが自動生成した概要 **/
「台風に負けない」という根性論的な農業発信は、ESG投資が注目される現代においては効果が薄い。台風被害軽減と温室効果ガス削減を結びつけ、「土壌改良による品質向上と環境貢献」をアピールすべき。農業はIR活動の宝庫であり、サプライチェーン全体のCO2排出量削減は企業の利益にも繋がる。土壌環境向上はCO2削減に大きく貢献するため、農業のESG投資価値は高い。

 

隕石由来のエアロゾル

/** Geminiが自動生成した概要 **/
気象研究所の研究によると、地上8000mの対流圏で採取したエアロゾルから隕石由来の物質が発見されました。このエアロゾルは、成層圏で生成され対流圏に流れてきたと考えられています。エアロゾルは鉄やマグネシウムを含む硫酸塩粒子で、これが雨に混じって地表に降ると、作物に良い影響を与える可能性があります。普段私たちが目にする雲は、エアロゾルを核として形成されます。今回の発見は、宇宙から飛来する物質が地球の気象や生態系に影響を与える可能性を示唆する興味深いものです。

 

MCreator 2022.2を使ってみた

/** Geminiが自動生成した概要 **/
Minecraft: Pi Edition: Rebornにアイテムを追加するため、MCreator2022.2を使用し、ブドウを追加する方法を解説した記事です。 まず、MCreatorをダウンロードしてインストールします。次に、新規Modを作成し、アイテムの画像を作成します。画像作成は、MCreator内のペイントツールを使用します。完成した画像は任意の場所に保存します。 この記事では、CPUがARM64のマシンにはMCreatorをダウンロードできないことも補足されています。

 

Minecraft: Pi Edition: RebornのSDKを使ってゴールデンシャベルを追加してみた

/** Geminiが自動生成した概要 **/
この記事は、Minecraft: Pi Edition: Reborn (MCPI++) のSDKを使って、ゲームに「ゴールデンシャベル」を追加する方法を解説しています。 まず、MCreatorを使って16x16ピクセルのゴールデンシャベルのアイコン画像を作成し、既存のitems.pngに挿入します。次に、C++で書かれたgoldenshovel.cppを作成し、アイテムの追加、アイコンの設定、ゲーム内での表示名などを定義します。最後に、CMakeを使ってコードをコンパイルし、生成されたライブラリファイルをmodsディレクトリに配置することで、ゴールデンシャベルがゲームに追加されます。 記事では、コードの各部分がどのような役割を持っているか、また画像ファイルやCMakeLists.txtの設定方法などが詳しく解説されています。

 

Minecraft: Pi Edition: RebornのSDKを使ってみる2

/** Geminiが自動生成した概要 **/
この記事では、Minecraft: Pi Edition: Reborn (MCPI++) のSDKにあるライブラリを呼び出す方法を解説しています。 CMakeを使ってプロジェクトを作成し、SDKのヘッダーファイルをインクルードします。サンプルコードでは、libreborn.hをインクルードし、空の関数を定義しています。 CMakeLists.txtでは、SDKへのパスを設定し、ビルドターゲットとして共有ライブラリを作成しています。 ビルド後、生成されたライブラリをmodsディレクトリに移動し、MCPI++を起動して動作を確認します。

 

Minecraft: Pi Edition: RebornのSDKを使ってみる

/** Geminiが自動生成した概要 **/
Minecraft: Pi Edition: Reborn (MCPI) の拡張SDKを使い、ターミナルに"Helloworld"を出力する手順を紹介しています。 まずMCPI++ 2.4.3-3をインストールし、C++コンパイラなどの開発環境を整えます。 次に、"Helloworld"を出力するコードを記述した"hello.cpp"を作成し、共有ライブラリとしてコンパイル、MCPIのmodsディレクトリに配置します。 MCPIを実行すると、起動時に"Helloworld"が出力されます。これは、共有ライブラリ内の特定の関数がエントリポイントとして機能するためです。 記事では最後に、ゲーム画面に影響を与えるコードの作成に意欲を示しています。

 

タカサゴユリとシンテッポウユリ

/** Geminiが自動生成した概要 **/
筆者は白いユリの花を見て、テッポウユリとタカサゴユリの交配種であるシンテッポウユリについて調べた。その後、花弁に筋があり葉が細いことからタカサゴユリと判断できるユリの花を見つけた。そこは頻繁に草刈りされる場所だが、円錐状のオリの中では除草されず、タカサゴユリは立派な花を咲かせていた。このことから筆者は、タカサゴユリの勢いは今後も衰えないだろうと感じた。

 

キーボード一体型のRaspberry Pi 400を購入した

/** Geminiが自動生成した概要 **/
子供がRaspberry Pi 4B 8GBでマインクラフトをプレイするため、発熱と火傷が心配で購入に至った。ケースに入れているものの電子工作がしにくいという欠点もあった。マイクラを通してプログラミングに興味を持ち、Pythonでコードを書きながらプレイするようになった。Raspberry Pi 400の発熱がどれ程なのか検証したい。

 

制御用水位センサーを使ってみる

/** Geminiが自動生成した概要 **/
記事は、稲作の自動化技術の進展について述べています。特に、水位管理の自動化に焦点を当て、水位センサーを用いた実験を紹介しています。 著者は、水位センサーモジュールを購入し、Micro:bitに接続して水位の変化を数値化できることを確認しました。水位の変化に応じて、Micro:bitに表示される数値が変化することを実験を通して明らかにしています。 記事は、水位センサーの仕組みの詳細には触れていませんが、今後の調査課題としています。稲作における自動化技術の可能性を探る内容となっています。

 

ChromebookのCrostiniでMicro:bitのフラッシングをしてみた

/** Geminiが自動生成した概要 **/
ChromebookのCrostiniでMicro:bitのフラッシングを行う際、Crostiniは仮想環境のためUSBを直接認識できない。そこで、Crostini上のMicro:bitの認識先である`/mnt/chromeos/removable/MICROBIT/`を`uflash`コマンドのターゲットとして指定することでフラッシングが可能になる。

 

Raspberry PiにMCPI++を入れてみた

/** Geminiが自動生成した概要 **/
この記事は、Raspberry PiにMinecraft: Pi Edition: Reborn (マイクラリボーン) の拡張版をインストールする方法と、その拡張機能について解説しています。拡張版では、ブロックやアーマーの種類が増えるなどのアップデートがあります。インストールは、スクリプトを実行するだけで完了します。拡張版はマイクラリボーンの新バージョンに合わせて更新されるようです。

 

PokitMeterを購入したので、Micro:bitのPWMを測定してみた

/** Geminiが自動生成した概要 **/
記事では、PokitMeterという小型測定器を用いて、Micro:bit(マイクロビット)が出力するPWM信号の周波数を測定しています。 PokitMeterは測定結果をスマホで確認できるため非常にコンパクトで、Chromebookでも使用可能です。 マイクロビットのP0ピンから出力されるPWM信号をPokitMeterのオシロスコープモードで測定した結果、デューティ比50%で、周期20msの矩形波が観測されました。 このことから、マイクロビットのPWM周波数は標準で50Hzであることが分かります。 今後はPokitMeterを活用して、より深くマイクロビットの機能を探求していく予定です。

 

Ubuntu + LXDEでデスクトップにFirefoxアイコンを設置する

/** Geminiが自動生成した概要 **/
この記事は、Ubuntu 22.04 LXDE環境でデスクトップにFirefoxのアイコンを設置できない問題を解決する方法を解説しています。 問題はsnap版Firefoxをインストールした場合に発生し、デスクトップエントリを作成することで解決できます。 手順としては、 1. `/usr/share/applications/firefox.desktop` ファイルを作成し、必要な情報を記述します。 2. メニューからFirefoxを見つけて右クリックし、「デスクトップに追加」を選択します。 これにより、デスクトップにFirefoxのアイコンが設置されます。記事ではデスクトップエントリの詳細についても触れています。

 

アサリから二枚貝の形について学ぶ

/** Geminiが自動生成した概要 **/
この記事では、貝殻の形のバリエーションについて、二枚貝を例に解説しています。二枚貝は、円錐形の貝殻が進化の過程で変化したもので、円錐の高さを低くし、左右の成長量を調整することで、特徴的な二枚の貝殻を持つ形になったと考えられています。貝殻の頂点部分の構造や、ホタテガイのような複雑な模様など、興味深いテーマはありますが、ここでは省略されています。

 

タニシから貝が立体的に巻くということを学ぶ

/** Geminiが自動生成した概要 **/
この記事では、貝殻の立体的な巻き方について、タニシを例に解説しています。 まず、円錐形をベースに、左右の伸長量を調整することで巻き貝の基本的な形が出来ることを説明した上で、タニシのような複雑な形状は、渦巻を立体的に捉えることで理解できると述べています。 具体的には、先細りの螺旋構造が安定性を生み、タニシが水底や壁を器用に移動することを可能にしたと推測しています。 また、関連記事へのリンクを通じて、タニシの一種であるジャンボタニシの目撃情報についても触れています。

 

アンモナイトから貝が巻くということを学ぶ

/** Geminiが自動生成した概要 **/
古代生物であるアンモナイトの巻き貝は、チョッカクガイに見られる円錐形の殻の進化から説明できます。 チョッカクガイの円錐形において、右側が大きく伸長し、左側が抑制的に成長すると、アンモナイトのような螺旋状の構造になります。 アンモナイトの規則的な渦巻きは、長い進化の過程を経て獲得されたものです。 NHK for Schoolの動画では、様々な形状のアンモナイトの化石を通じて、その進化の過程を垣間見ることができます。 貝に興味を持った方は、ぜひ動画をご覧ください。

 

メインの開発機をRaspberry Pi 4Bにしてみる

/** Geminiが自動生成した概要 **/
## プログラミング教育におけるARM+Debian+Pythonの可能性(要約) 記事は、高性能化・低価格化したRaspberry Piに代表されるARMデバイスが、プログラミング教育に最適であると主張しています。 その理由は以下の3点です。 1. **安価で入手しやすい:** Raspberry Piは数千円で入手でき、故障時のリスクも低い。 2. **DebianベースのOS:** 安定性・信頼性が高く、豊富なソフトウェアが利用可能。 3. **Pythonの標準搭載:** 初心者に優しく、実用的なプログラミング言語として人気が高い。 これらの要素により、ARMデバイスは教育現場におけるプログラミング学習のハードルを下げ、生徒の学習意欲向上に貢献できると結論付けています。

 

イネの二次代謝物のフェノールアミドを調べてみた

/** Geminiが自動生成した概要 **/
イネは、害虫であるトビイロウンカを防ぐため、フェルロイルプトレシンやp-クマロイルプトレシンというフェノールアミドを合成する。これらの物質は、ジャスモン酸の前駆体であるOPDAによって誘導される。p-クマロイルプトレシンは、リグニンの合成にも関わるクマル酸を基に合成される。土壌劣化はクマル酸合成に必要な微量要素の欠乏を引き起こし、イネの害虫抵抗性を低下させる可能性がある。つまり、土壌の健全性は、イネの生育だけでなく、害虫に対する防御機構にも影響を与える重要な要素である。

 

レンゲ栽培の効果は田植え後の雑草管理にも影響を与える

/** Geminiが自動生成した概要 **/
レンゲ栽培は、雑草管理にも効果があります。レンゲはアレロパシー効果は弱いものの、生育後に速やかに分解され、土壌表面に有機酸を含む層を形成します。これが雑草の発生を抑制する効果を生みます。 著者は、レンゲ栽培後の水田で雑草の発生が抑制された経験から、レンゲの分解による有機物層の効果を実感しています。 稲作は、レンゲの活用など、植物の特性を活かした興味深い知見に溢れています。

 

タンポポの茎から出てくる白い液に触れて大丈夫?

/** Geminiが自動生成した概要 **/
タンポポの茎から出る白い液体は、ラクチュコピクリンとラクチュシンという物質を含んでいます。これらには鎮痛、鎮静作用がありますが、ラクチュコピクリンは多量に摂取するとコリンエステラーゼを阻害する可能性があります。 しかし、花茎を折った時に触れる程度の量では、健康被害を心配する必要はありません。コリンエステラーゼ阻害作用は、口から摂取した場合に懸念されるものです。そのため、過度に心配せず、タンポポ観察を楽しんでください。

 

OpenStreetMap API版Soil & Geoロガー

/** Geminiが自動生成した概要 **/
「Soil & Geoロガー」がOpenStreetMap APIを使って改良されました。以前はGoogle Maps APIを使用していましたが、OpenStreetMap APIに切り替え、地図表示と位置情報の取得を簡素化しました。これにより、地図上の任意の場所をクリックするだけで、その地点の緯度経度を取得し、土壌情報と地質情報へのリンクを生成します。さらに、オフライン機能を提供していたIndexedDBとサービスワーカーAPIは、インターネット接続環境の向上により廃止されました。この改良により、土壌情報と地質情報へのアクセスが容易になり、施肥設計や地域資源の活用に役立ちます。

 

ChromebookでMinecraft: Pi Edition: Rebornを動かしてみた

/** Geminiが自動生成した概要 **/
LXC (Linux Containers) は、単一のLinuxカーネル上で複数の分離されたLinuxシステム (コンテナ) を実行するためのOSレベルの仮想化手法です。各コンテナは独立したシステムリソース (CPU、メモリ、ネットワークなど) を持ち、ホストOSや他のコンテナから隔離されます。 LXCは、chrootのような従来の分離機構よりも軽量で効率的でありながら、仮想マシンよりもオーバーヘッドが少なくなっています。これにより、開発、テスト、運用環境において、アプリケーションの移植性、セキュリティ、リソース効率を向上させることができます。LXCは、DockerやLXDなどのコンテナ技術の基礎となっています。

 

AppImage形式のMinecraft: Pi Edition: Rebornでスキンを変更してみた

/** Geminiが自動生成した概要 **/
この記事は、AppImage形式になったMinecraft: Pi Edition: Rebornでスキンを変更する方法を解説しています。 まず、AppImageファイルを実行する準備として、`chmod`コマンドで実行権限を与え、`fuse`パッケージをインストールします。 スキンの変更は、`~/.minecraft-pi/overrides/images/mob/`ディレクトリに`char.png`という名前でスキンファイルを配置します。 ただし、このままだとスキンが崩れてしまうため、`minecraft_skin_fixer.py`というスクリプトを使って修正します。 最後に、AppImageファイルを`/usr/local/bin`に移動して`mcpi`というコマンド名で実行できるように設定しています。

 

Minecraft: Pi Edition: Rebornでmcpiライブラリを試す

/** Geminiが自動生成した概要 **/
記事では、プログラミング教育に最適な環境として、ARMアーキテクチャ、Debian系OS、Pythonの組み合わせを提唱しています。低価格なRaspberry Piを例に挙げ、その手軽さ、豊富なライブラリ、活発なコミュニティが教育現場にもたらすメリットを解説しています。従来の教育用PCよりも安価で汎用性が高く、電子工作などにも応用できる点が魅力的だと結論付けています。

 

Minecraft: Pi Edition: Rebornでスキンを変更してみた

/** Geminiが自動生成した概要 **/
この記事は、Minecraft: Pi Edition: Rebornでスキンを変更する方法を解説しています。 まず、好みのスキンをダウンロードします。次に、標準のスキンのPNGファイル(char.png)をバックアップし、ダウンロードしたスキンで置き換えます。この際、ファイルパスに注意が必要です。 スキンを変更後、デザイン崩れが発生する場合は、Pythonスクリプト(minecraft_skin_fixer.py)を使用して修正します。スクリプト内のファイルパスを自身の環境に合わせて変更する必要があります。 修正後、Minecraft: Pi Edition: Rebornを再起動すると、スキンが変更されているはずです。

 

Rasbperry Piにゲームパッドを繋ぎ、マインクラフトを操作する

/** Geminiが自動生成した概要 **/
この記事は、Raspberry PiまたはUbuntuに接続したLogicool F310ゲームパッドを使用してMinecraft: Pi Edition: Rebornを操作する方法を解説しています。 Windows PC用のゲームパッドをLinux環境で動作させるため、joystickとjstest-gtkドライバをインストールします。jstestコマンドでゲームパッドが認識されていることを確認後、qjoypadをインストールし、GUIで各ボタンにキーボードやマウスの操作を割り当てます。 記事では、マイクラリボーン用に設定したボタン割り当てを紹介し、動作確認を行うよう促しています。

 

プログラミング教育用のノートパソコンを探せ

/** Geminiが自動生成した概要 **/
Minecraft: Pi Editionを教材にプログラミング教育をしたいが、Raspberry Piは持ち運びに不便なため、代わりのノートパソコンを探している。Ubuntuが動作する中古PCでは性能不足が懸念される。そこで注目しているのが、QualcommのSnapdragonを搭載したSamsungの格安ノートPC「Galaxy Book Go」だ。ARMアーキテクチャを採用し、Ubuntuも動作する可能性があり、Raspberry Piの自由度とChromebookの価格帯の中間をいくマシンとして期待できる。

 

Minecraft: Pi Edition: Reborn on Ubuntu

/** Geminiが自動生成した概要 **/
記事では、子供向け科学雑誌に掲載された「Minecraft: Pi Edition: Reborn」(マイクラリボーン)を、Raspberry Piだけでなく、普段使いのUbuntuパソコンでも動作させた体験談を紹介しています。 記事では、マイクラリボーンがUbuntu 20.04以降で動作すること、amd64、arm64、armhfのdebファイルが配布されていることから、Intel Core i5搭載のUbuntuパソコンにインストールして動作確認を行ったことが記載されています。 その結果、Raspberry Pi版と同様に動作し、ローカルネットワーク経由で一緒に遊ぶこともできたと報告しています。 そして、この経験から、教育用パソコンにおけるARM、Debian、Pythonの重要性について、次回以降の記事で考察していくことを示唆しています。

 

BBC Micro:bitのプルダウン抵抗3

/** Geminiが自動生成した概要 **/
この記事は、BBC Micro:bitのプルダウン抵抗の機能について解説しています。 最初に、`pin0.get_pull()`を使ってプルダウン抵抗の状態を取得しようとしますが、GPIOピンが未使用の状態ではエラーが発生します。 次に、`pin0.read_digital()`を実行すると、自動的にプルアップ抵抗が設定されることがわかります。 最後に、`pin0.set_pull(pin0.PULL_DOWN)`を使って明示的にプルダウン抵抗を設定し、外部のプルダウン抵抗なしでも動作することを確認しています。 記事では、プルアップ抵抗、プルダウン抵抗、ノー・プルそれぞれの状態に対応する`get_pull()`の戻り値 (0, 1, 2) も紹介されています。

 

BBC Micro:bitのプルダウン抵抗2

/** Geminiが自動生成した概要 **/
マイクロビットのGPIOピンを安定させるにはプルダウン抵抗が有効です。スイッチOFF時はプルダウン抵抗によりGPIO 0はLOW状態を保ちます。スイッチON時はGPIO 0に電流が流れ、信号が送られます。プルダウン抵抗はショート(短絡)を防ぐため、一般的に10kΩの抵抗が使われます。プルアップ抵抗はスイッチと抵抗の位置が逆になり、スイッチOFF時はGPIO 0がHIGH、スイッチON時はLOWになります。

 

BBC Micro:bitのプルダウン抵抗1

/** Geminiが自動生成した概要 **/
記事では、マイクロビットを使ってプルダウン抵抗の仕組みを解説しています。 まず、タクトスイッチと10kΩの抵抗を用いてプルダウン回路を構成し、ボタンを押すとマイクロビットのディスプレイのアイコンが変わるプログラムを作成しています。 記事では、プルダウン抵抗の詳細は後述するとして、動作するコードを示しています。 具体的には、マイクロビットのGPIO 0ピンに接続されたタクトスイッチが押されると、ディスプレイのアイコンが悲しい顔から笑顔に変化し、2秒後に再び悲しい顔に戻るというものです。 記事は、この動作例を通じて、プルダウン抵抗の役割について詳しく解説していくことを予告しています。

 

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

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

 

抵抗とオームの法則

/** Geminiが自動生成した概要 **/
抵抗とは、電気の流れを妨げる働きをする要素で、単位はオーム(Ω)で表されます。水流に例えると、管に設置された篩のようなもので、水の流れを制限する役割を果たします。 電圧(水圧)、電流(水量)、抵抗の間には、オームの法則(V = IR)が成り立ちます。抵抗値が大きいほど、同じ電圧でも電流は小さくなります。 例として、Raspberry PiのGPIOピンとLEDを接続する際に、LEDの仕様に合わせた抵抗を選定する必要があることが挙げられています。しかし、GPIOピンの電流信号をどのように考慮すべきかについては、まだ理解が追いついていない点が示唆されています。

 

電流について整理する

/** Geminiが自動生成した概要 **/
## 最近の肥料でよく見かける酸化還元電位の内容要約(250字) 記事では、土壌中の酸化還元電位が植物の生育に大きく関わることを解説しています。酸化状態の高い土壌では、窒素が植物に吸収されにくい硝酸態窒素として存在し、逆に還元状態では吸収しやすいアンモニア態窒素が優勢になります。 従来の化学肥料は土壌を酸化させる傾向にありましたが、近年は酸化還元電位を適切に保つことが重要視され、還元状態を促進する資材を用いた肥料も登場しています。 記事では、酸化還元電位を測定する重要性や、測定値に基づいた適切な土壌管理の必要性を説いています。

 

4-20mA電流信号

/** Geminiが自動生成した概要 **/
この記事は、制御信号に使われる電流信号、特に4-20mAについて解説しています。Raspberry PiのGPIO出力は3.3V・16mAであり、4-20mAの範囲でモジュールを制御しています。筆者は、GeekServo 9gモーターを電流信号で動かす方法を探求中です。モーターの仕様から、100~500mAの電流が必要と推測していますが、そのためにはトランジスタによる増幅が必要と考え、その方法を模索しています。

 

BBC Micro:bitでDCモータを動かしたい

/** Geminiが自動生成した概要 **/
BBC Micro:bitのGPIOピンを使ってDCモータを動かそうとしたが、3Vピンでは動作するのに、GPIOピンでは動作しないという問題が発生しています。 原因を探るため、GPIOピンの仕様を調べてみたところ、「タッチセンス機能のため、端子0, 1, 2には弱いプルアップ抵抗(10MΩ)が接続されている」という記述を見つけました。 このプルアップ抵抗が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が自動生成した概要 **/
この記事は、電子工作初心者向けにトランジスタの基礎を解説しています。トランジスタは、「スイッチング」と「増幅」の役割を持ち、電流を制御したり増幅したりする電子部品です。記事では、トランジスタの構造と名称、増幅率などの基本的な用語について解説しています。著者は、トランジスタの理解には電流の理解が不可欠であることを実感し、今後の学習目標としています。

 

BBC Micro:bitでリレー経由でDCモーターを制御してみる

/** Geminiが自動生成した概要 **/
BBC Micro:bitを使ってリレー経由でDCモーターを制御する方法について書かれた記事の要約です。 記事では、マイクロビットのGPIOピンでは電流が不足するため、トランジスタの代わりにリレーモジュールを使ってDCモーターを制御する方法を紹介しています。 具体的な配線方法やマイクロビットのコード例も掲載されており、実際にDCモーターを回転させる様子を収めた動画も埋め込まれています。 記事は、マイクロビット初心者にもわかりやすく、リレーモジュールを使ったDCモーター制御の方法を学ぶのに役立つ内容となっています。

 

BBC Micro:bitとトランジスタ

/** Geminiが自動生成した概要 **/
BBC Micro:bitのGPIOピンを使ってDCモーターを動かそうとしたが、電圧不足のため動かなかった。そこでトランジスタを使って電圧を上げることを試みた。書籍を参考に青色LEDをトランジスタで点灯させる回路を組んだところ、LEDは点灯したものの、DCモーターは動作しなかった。トランジスタについて更に学習する必要があると考えられる。

 

ChromebookでScratchとBBC Micro:bitを接続してみる

/** Geminiが自動生成した概要 **/
この記事は、ChromebookのScratchでBBC Micro:bitを動かす方法を解説しています。 まず、Google PlayからScratchをインストールし、Scratch用マイクロビットのHEXファイルをダウンロードしてマイクロビットに転送します。 次に、Scratchの拡張機能でmicro:bitを選択し、接続を確立します。 記事では、接続確認のため、マイクロビットのAボタンを押すと音が鳴るプログラムを作成・実行しています。 最後に、小学一年生には漢字が読めないため、ひらがなモードのScratchが必要だと述べています。

 

改めてSPIについてを知る5

/** Geminiが自動生成した概要 **/
SPI通信のモードは、クロック極性(CPOL)とクロック位相(CPHA)の組み合わせで決まります。CPOLはクロックのアイドル状態(0か1)を、CPHAはデータ取得がクロックの立ち上がり edge か、立ち下がり edge かを示します。組み合わせは4種類あり、モード0(CPOL=0, CPHA=0)からモード3(CPOL=1, CPHA=1)まで存在します。

 

改めてSPIについてを知る4

/** Geminiが自動生成した概要 **/
本稿では、SPI通信におけるSSとSCLKの役割を解説しています。SSはスレーブ選択信号で、LOWにすることで特定のスレーブとの通信を有効化します。SCLKはクロック信号であり、この規則的なHIGH/LOW変化を基準に同期してMOSI/MISOでのデータ送受信が行われます。 具体的には、SS1をLOWにし、SCLK信号に合わせてデータ送受信を行う例を図解で示しています。 今回のSPI通信解説により、以前の記事で扱ったESP8266,Raspberry Piを用いたソケット通信やUARTと合わせて、IoTにおけるセンサーデータ取得から遠隔地への送信までの仕組みの理解が深まります。

 

改めてSPIについてを知る3

/** Geminiが自動生成した概要 **/
SPI通信について、マスタースレーブ構成、データ送受信の流れ、シフトレジスタによるデータの受け渡しなど、具体的な例を挙げながら解説しています。\ 特に、8ビットデータ転送を図解で示し、LSB、MSB、MOSI、MISOといった用語を用いながら、マスターとスレーブ間におけるデータの移動を詳細に説明しています。\ 最後に、Raspberry PiとAD変換器を用いたSPI通信のコード例を紹介し、次回の記事ではシフトレジスタの仕組みやSSの役割について解説することを予告しています。

 

改めてSPIについてを知る2

/** Geminiが自動生成した概要 **/
シフトレジスタは、複数のフリップフロップを連結してデータを順次移動させるデジタル回路です。各フリップフロップは1ビットの情報を保持し、クロック信号に従って隣に情報を渡していきます。 例えば、直列入力直列出力型では、入力データが"11010000"の場合、各クロックサイクルで1ビットずつシフトされ、最終的に出力"00001101"として得られます。 このように、シフトレジスタはデータを一時的に記憶したり、ビット列を操作したりする際に活用されます。

 

改めてSPIについてを知る1

/** Geminiが自動生成した概要 **/
SPIは、マスター機器が複数のスレーブ機器と通信する規格です。マスターはSCLK, MISO, MOSI, SSの4つの信号線でスレーブと接続します。SSはスレーブ選択線で、マスターはHIGH/LOWを切り替えることで、どのスレーブと通信するかを選びます。複数のスレーブを接続する場合、マスター側にスレーブ数分のSS(GPIOピン)が必要です。SSは通信開始と終了の合図にもなります。

 

ビット演算を介してシリアル通信を見る

/** Geminiが自動生成した概要 **/
この記事では、ビット演算をPythonコードを用いて解説し、シリアル通信の一つであるUARTのデータ構造を擬似的に再現しています。 まず、スタートビット、データビット、パリティビット、ストップビットから成るUARTのビット列を、ビットシフト演算子を用いて生成する過程を示します。 次に、乱数を用いてデータビットの0/1をランダムに設定することで、より現実的なUART通信を模倣しています。 これにより、ビット演算がハードウェアレベルでのデータ通信を理解する上で重要であることを示し、今後のSPI通信学習への足掛かりとします。

 

Pythonでビット演算子のビット否定に触れる

/** Geminiが自動生成した概要 **/
Pythonではビット否定演算子~を使うと、整数のビット反転ではなく、**負数の表現**として用いられます。 記事中の例では、13 (~0b1101) のビット否定は、-14 (-0b1110) となります。これはPythonが整数を**符号付き2進数**で表現しているためです。符号付き2進数では、最上位ビットが符号を表し、残りのビットが数値を表します。 ビット反転を行うには、ビット演算とマスクを組み合わせる必要があります。単にビット反転を行うだけであれば、`~` 演算子ではなく、各ビットを反転する関数を定義する方が分かりやすいかもしれません。

 

Pythonでビット演算子の排他的論理和に触れる

/** Geminiが自動生成した概要 **/
Pythonのビット演算子の一つである排他的論理和(XOR)について解説しています。XORは、^ 演算子で表され、2つのオペランドのビットが異なる場合に1を返す演算です。 記事では、真理値表を用いてXORの動作を具体的に説明し、13と10のXOR演算を例に、ビット演算の結果が7(0b111)になることを示しています。さらに、ビットごとのXOR演算を手計算で説明し、2進数表現での理解を深めています。 最後に、CPUの説明などで用いられるXORの記号を紹介しています。

 

Pythonでビット演算子の論理積に触れる

/** Geminiが自動生成した概要 **/
今回の記事では、Pythonのビット演算子の一つである論理積(&&)について解説しています。論理積は2つの値の両方が1の場合にのみ1を返す演算です。 記事では、変数 `cmdout` と16進数 `0x80` の論理積を計算するコードを例に挙げています。`cmdout` は、前の処理で192(2進数で `0b11000000`)に設定されています。`0x80` は10進数で128、2進数で `0b10000000` です。 これらの論理積をとると、`0b10000000` となり、これは10進数で128です。 記事では、この計算がSPI通信でのデータ送受信に関連していることを示唆していますが、具体的な意味についてはまだ明らかにされていません。 最後に、論理積を表す電子回路の記号も紹介されています。

 

Pythonでビット演算子の論理和に触れる

/** Geminiが自動生成した概要 **/
Pythonのビット演算子、特に論理和(OR)について解説しています。 記事では、UARTとSPIの通信方式の比較を題材に、SPI通信のコードで使われているビット演算を理解しようと試みています。 まず、`|=`という演算子がビットごとの論理和を計算し、結果を変数に代入するものであることを説明します。 具体例として、`cmdout |= 0x18`というコードを解説しています。初期値0の変数`cmdout`と16進数`0x18`(2進数では`00011000`)の論理和を計算することで、`cmdout`の値が`00011000`となり、10進数では24になることを示しています。 最後に、論理和を表す回路図の記号も紹介しています。

 

UARTについてを知る4

/** Geminiが自動生成した概要 **/
この記事では、UARTにおける「非同期」の意味について解説しています。UARTは調歩同期方式を採用しており、これはSPIのような外部クロックを使わずにデータを送受信する方法です。スタートビットとストップビットを利用することで、クロック同期なしにデータのやり取りを実現します。Webアプリで用いられる非同期処理とは異なる概念であることに注意が必要です。SPIのような同期通信方式も理解を深める上で重要ですが、複雑なため、別途学習する必要があると結論付けています。

 

UARTについてを知る3

/** Geminiが自動生成した概要 **/
この記事では、UART通信におけるボーレートについて解説しています。ボーレートとは、1秒間に送受信するデータビット数を表し、送受信側で一致させる必要があります。 記事では、一般的なボーレートの値として9600、115200などを紹介し、Micro:bitとRaspberry Piを接続する際のコードを例に、送受信側でボーレートを合わせる必要があることを説明しています。 UARTは非同期通信のため、クロック信号を用いずにデータを送受信します。そのため、ボーレートを合わせることでデータの整合性を保っています。

 

UARTについてを知る2

/** Geminiが自動生成した概要 **/
この記事は、micro:bitのMicroPythonを使ってUART通信の基礎を解説しています。UARTではHIGH(1)とLOW(0)の信号でデータを送受信し、文字列をバイト型に変換して送信します。 記事では、データ送信の仕組みとして、アイドル状態(1)、スタートビット(0)、データビット、パリティビット、ストップビット(1)からなるシリアル通信の構造を図解で説明しています。 特に、パリティビットはデータ送信時の誤り検出符号として、奇パリティと偶パリティがあることを解説し、micro:bitでの設定方法にも触れています。 最後に、ボーレートについても触れる予定としていますが、詳細は次回に持ち越しとなっています。

 

UARTについてを知る1

/** Geminiが自動生成した概要 **/
この記事は、UARTを用いたシリアル通信について解説しています。 UARTとは何か、Raspberry Piとmicro:bitを接続した図を例に、TXピンとRXピンを用いてどのようにデータがやり取りされるのかを説明しています。 具体的には、文字列"abc"をUART通信で送信する際に、コンピュータ内部では文字コードを用いて処理されていることを解説し、Go言語でのバイト型変換例を示しています。 さらに、microbitのUART設定における"bits=8"というパラメータを取り上げ、1ビットと8ビットの関係、表現できる数値範囲について触れています。 最後に、"0x610x620x63"という16進数表記で送信データ例を示し、次回にuart.initのパラメータ解説を行うことを予告しています。

 

BBC Micro:bitのメンテンスモードから抜ける

/** Geminiが自動生成した概要 **/
BBC Micro:bitがメンテナンスモードになり、フラッシングができなくなった場合の対処法について解説しています。メンテナンスモードは、リセットボタンを押しながらPCに接続すると発生します。 解決策は、micro:bitのファームウェアを更新することです。まず、micro:bitのバージョンを確認し、公式サイトから対応するファームウェアをダウンロードします。ダウンロードしたファイルを、PCに接続したmicro:bitのMAINTENANCEフォルダに移動します。しばらく待つと、micro:bitがメンテナンスモードを抜け、通常のモードに戻ります。 記事では、Ubuntu環境での画面表示も掲載し、読者の理解を助けています。

 

ESP8266のUARTその2

/** Geminiが自動生成した概要 **/
この記事は、ESP8266をUARTの受信側としてRaspberry Piと通信する方法を解説しています。 前回の記事ではESP8266から送信したデータにREPLの情報が含まれていましたが、今回は受信側にすることでREPL情報を含まないデータを受信できることを確認しています。 具体的には、ESP8266側で受信したデータを少し変更してRaspberry Piに送り返すPythonコードを記述し、Raspberry Pi側では"send from pi."というメッセージを繰り返し送信するPythonコードを記述しています。 その結果、Raspberry Pi側で"received:send from pi."というメッセージが表示され、REPL情報を含まないデータが受信できていることが確認できました。

 

ESP8266のUART

/** Geminiが自動生成した概要 **/
ESP8266のREPLは、シリアル接続を通じてMicroPythonと対話するためのコマンドラインインターフェースです。UART0がデフォルトで使用され、ボーレートは115200bpsです。REPLでは、コードの実行、変数の確認、関数の呼び出しなどが行えます。Ctrl-Aでプロンプトの先頭、Ctrl-Eで末尾に移動できます。Ctrl-Bで一文字戻り、Ctrl-Fで一文字進めます。Ctrl-DでREPLを終了し、プログラムの実行を再開します。REPLはMicroPythonの開発やデバッグに役立つ強力なツールです。

 

BBC Micro:bitのUART

/** Geminiが自動生成した概要 **/
BBC Micro:bit (microbit) の UART 通信では、microbit から Raspberry Pi へのデータ送信と、その逆の受信が可能。microbit は `uart.any()` 関数を使用して受信データを待ち受け、Raspberry Pi はシリアルポートを介して通信する。データの送受信を確実に行うには、microbit と Raspberry Pi 間の TX/RX ピンの正しい接続と、双方で一致するボーレートの設定が重要。また、microbit では `uart.init(115200)` を使用してシステムを初期化することも推奨される。これらの手順に従うことで、microbit と Raspberry Pi 間の双方向 UART 通信を実現できる。

 

ESP8266とRaspberry Piでソケット通信を試す

/** Geminiが自動生成した概要 **/
この記事では、ESP8266モジュールをクライアント、Raspberry Piをサーバーとしたソケット通信を試みています。 まず、ESP8266側でWiFi接続を行い、サーバー側のIPアドレスとポート番号を指定してソケット通信を行います。 記事では、ESP8266から"send socket from esp8266"というメッセージをサーバーに送信し、サーバー側で受信できていることを確認しています。 これにより、ローカルネットワーク内でESP8266からRaspberry Piにデータを送信できることが確認できました。今後は、温度などのデータを送受信する方法を検討していく予定です。

 

コンピュータ二台でソケット通信を試す

/** Geminiが自動生成した概要 **/
この記事は、二台のコンピュータ間でローカルネットワークを通じてソケット通信を行う方法を解説しています。 まず、Raspberry Piをサーバー側にして、そのローカルIPアドレスを調べます。次に、Pythonで記述したサーバープログラムを、調べたIPアドレスを使って修正します。クライアント側にはLinuxマシンを使用し、同様にローカルIPアドレスを調べます。 その後、クライアントプログラムを実行し、サーバープログラムが実行されているRaspberry PiのIPアドレスとポート番号を指定して接続します。 記事では、接続が成功したことを確認後、NodeMCUとRaspberry Piでのソケット通信に進むことを示唆しています。

 

コンピュータ一台でソケット通信を試す

/** Geminiが自動生成した概要 **/
この記事では、マイコンを用いたデータ送信システム構築に向けて、まずは一台のPCでのソケット通信を試行しています。 具体的には、Pythonを用いて、受信側(サーバー)と送信側(クライアント)のプログラムを作成し、同一PC上で動作させています。 サーバー側はポート番号12345で接続を待ち受け、クライアント側からの接続があると、入力されたデータを受信し、"Successed!"というメッセージを返信します。 記事では、それぞれのプログラムのコード例と実行結果を示し、実際にデータの送受信が成功していることを確認しています。 今後は、2台のPC間でのソケット通信に挑戦する予定です。

 

NodeMCUでHTTP GETリクエストを試してみた

/** Geminiが自動生成した概要 **/
NodeMCUを使ってHTTP GETリクエストを試行した記録です。 記事では、MicroPythonのソケット通信を使って"http://www.example.com/"にGETリクエストを送信し、"200 OK"レスポンスとHTMLを取得できました。 しかし、"https://saitodev.co/"のようにHTTPSのURLでは失敗しました。これは、HTTPS通信に対応するためにコードを修正する必要があるためです。 記事では、将来WiFi経由でデータ送信を行う際にHTTPS通信が必要になると述べています。

 

NodeMCUをWebサーバにしてみた

/** Geminiが自動生成した概要 **/
NodeMCU(ESP8266)をWebサーバにする実験。MicroPythonのサンプルコードを参考に、GPIOピンの状態をWebページに表示する仕組みを作成。NmapでNodeMCUのIPアドレスを特定しブラウザからアクセスした結果、GPIOピンの状態がリアルタイムに確認できた。HTTP通信の基礎を学ぶ良い機会となり、今後は外部からのリクエストに応じて処理を行う仕組みも試したい。

 

NodeMCUにファームウェアをインストールする

/** Geminiが自動生成した概要 **/
ESP8266 NodeMCUモジュールにMicroPythonファームウェアをインストールするには、esptoolツールを使用します。ファームウェアのbinファイルをダウンロードし、`esptool`コマンドを使用してフラッシュを消去してから、新しいファームウェアを書き込みます。 ファームウェアがインストールされたら、Thonny IDEを使用してLチカプログラムを作成します。ThonnyをESP8266に接続し、`main.py`という名前でプログラムを保存します。プログラムを実行すると、NodeMCUのLEDが点滅します。

 

ESP8266のWiFiモジュールを購入した

/** Geminiが自動生成した概要 **/
## ESP8266を使って、PicoからWebアプリにデータを送信する方法を探る 筆者は、pH測定データをWebアプリに送信するために、WiFiモジュール「ESP8266」を購入しました。 目的は、Raspberry Pi Picoなどのマイコンで取得したデータを、WiFi経由でWebアプリに送信することです。 ESP8266はTCP/IPスタックを搭載したWiFiモジュールで、GPIOピンも備えているため、単体でのデータ処理も期待できます。 今後の記事では、PicoからWiFiを介してWebアプリにデータを送信するために必要な手順を一つずつ解説していく予定です。

 

AD変換器の基準電圧とは何だろう?

/** Geminiが自動生成した概要 **/
AD変換器の基準電圧(VREF)とは、アナログ電圧をデジタル値に変換する際の基準となる電圧です。MCP3208の場合、VREFは2.7V〜5Vの範囲で設定でき、高い電圧ほどデジタル値の分解能が向上します。 記事では、VREFを5Vにすることでサンプリング精度を高め、ノイズの影響を抑えるためにVREFに入力フィルターを入れることを推奨しています。 さらに、AGND(アナロググランド)とDGND(デジタルグランド)についても今後の課題としています。

 

Raspberry PiにPH4502Cを繋いでみた

/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiにpHメーターPH4502Cを接続し、pHのアナログ値をデジタル値に変換して取得する方法を解説しています。 筆者は、MCP3208というAD変換器を用い、GPIO Zeroのライブラリを使ってRaspberry Piで値を読み取っています。 記事内では、回路図やコード例、実験中の問題点と解決策が詳しく説明されています。 最終的には、水道水のpHを測定し、約2.8Vの電圧値を得ることに成功しましたが、値のばらつきが課題として残りました。 筆者は、今後さらに知識を深め、GPIO Zeroを使わない方法やpH測定の精度向上に取り組む予定です。

 

PH4502CのpHの計算方法を調べる

/** Geminiが自動生成した概要 **/
この記事は、PH4502C pHメーターのpH計算方法を解説しています。まず、起電力とpHの関係式を求めるために、既知のpH値と対応する起電力値から係数と定数を算出します。次に、ADCを用いる場合の計算式を導出し、ADCのビット数とpHの関係式を確立します。最終的に、任意のADCビット数に対して、ADC出力値からpH値を計算する式を提示しています。ただし、精度の高い測定には電圧計を用いたキャリブレーションが必要であると結論付けています。

 

AD変換器から出力されたデジタル値を読み込む

/** Geminiが自動生成した概要 **/
この記事では、AD変換器を使ってアナログ値をデジタル値として読み取る方法を解説しています。AD変換器からのデータ送信には、複数のピンを使ったSPI通信という方式が使われています。SPI通信では、マスター(Raspberry Pi)とスレーブ(AD変換器)間でデータのやり取りが行われます。重要な点は、AD変換器からのデジタルデータは1本のピンではなく、SCLK、MISO、MOSI、SSの4本のピンを使ってやり取りされることです。

 

AD変換器の概要に触れる

/** Geminiが自動生成した概要 **/
diymoreのLiquid PH Value Detection Detect Sensor Moduleは、Arduinoやマイクロコントローラと連携して水溶液のpH値を測定するセンサーモジュールです。pH測定範囲は0~14で、精度は±0.1pHです。動作電圧は3.3~5Vで、出力はアナログ信号とTTLレベルのデジタル信号の両方を選択できます。校正は付属の校正液を用いて簡単に行えます。このモジュールは、水耕栽培、水質監視、化学実験など、pH値の測定が必要な幅広い用途に最適です。

 

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値に応じた自動制御(例:サーボモータでの溶液調整)への応用可能性に大きな期待を寄せています。

 

pH測定で用いるガラス電極法に触れてみる

/** Geminiが自動生成した概要 **/
筆者はpH測定器の仕組みを理解するため、ガラス電極法について調べています。 ガラス電極法は、pHガラス電極と比較電極を用い、pHガラス応答膜の内側と外側のpHの違いにより生じる起電力を測定することでpHを算出します。 pHガラス応答膜の内側にはpH7の塩化カリウムが用いられ、測定したい液体に当てると、pHの差に応じて起電力が発生します。 この起電力は温度によって変動するため、測定前にキャリブレーションが必要です。 筆者はpH測定器をRaspberry Piに接続しようとしましたが、A/D変換が必要なため、接続は保留となっています。

 

pHの測定を理解する為にリトマス試験紙から触れる

/** Geminiが自動生成した概要 **/
この記事は、栽培用の測定器について理解を深めるための導入として、リトマス試験紙を取り上げています。リトマス試験紙は、水溶液のpHを測定し、酸性かアルカリ性かを判定するために用いられます。 記事では、リトマス試験紙の由来である「リトマスゴケ」について触れ、それが地衣類の一種であることを説明しています。地衣類は藻類と菌類の共生体で、空気のきれいな場所に生息し、大気汚染の指標にもなっています。 そして、リトマスゴケやウメノキゴケの色素がpH測定にどのように関わっているのか、次の記事で詳しく解説することが予告されています。

 

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

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

 

落葉針葉樹の根元から

/** Geminiが自動生成した概要 **/
落葉針葉樹の下は、広葉樹と比べて落葉の堆積が少なく、光が遮られにくいので、アベマキのドングリにとっては発芽しやすい環境に見えます。しかし、針葉樹の葉には、モノテルペンアルコールという物質が含まれており、これが植物の種子の発芽を抑制する効果を持つことが研究で明らかになっています。具体的には、クロマツやスギから抽出したモノテルペンアルコールが、ハツカダイコンの種子の発芽を抑制することが確認されています。このモノテルペンアルコールについて、さらに興味深い情報があるので、それは次回の記事で紹介します。

 

Raspberry PiのPWMでサーボモータを動かしてみる

/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiのPWM機能を使ってサーボモーターを制御する方法を解説しています。 サーボモーターは、パルス幅によって回転角度を制御することができます。この記事では、GeekServo 9G Servo-Grayというサーボモーターを使用し、GPIO 12に接続して制御しています。 コードでは、RPi.GPIOライブラリを使ってPWM信号を生成し、ChangeDutyCycle()関数でデューティ比を変更することで、サーボモーターの回転角度を制御しています。 具体的には、デューティ比2.5%で-45度、7.25%で90度、12%で225度回転するように設定されています。

 

Raspberry Piと赤色LEDでホタルのような点滅を試す

/** Geminiが自動生成した概要 **/
記事では、Raspberry PiとLEDを用いて、PWM(パルス幅変調)による疑似アナログ信号の生成と、その効果について解説しています。PWMは、デジタル信号のパルス幅を調整することで、見かけ上アナログ信号のような出力を行う技術です。記事では、パルス幅を徐々に変化させることで、LEDの明るさが滑らかに変化する様子を「ホタルの光」に例えています。 具体的には、Pythonコードを用いてPWMのデューティ比を周期的に変化させることで、LEDの明るさを制御し、ホタルの点滅のような効果を実現しています。

 

Raspberry Piと赤色LEDでパルス幅変調を試す

/** Geminiが自動生成した概要 **/
この記事は、生物系出身でRaspberry Piに挑戦している筆者が、パルス幅変調(PWM)を学ぶ過程を記述しています。 まず、LEDの点灯と消灯を繰り返すLチカを通して、HIGH(電気が流れる状態)とLOW(電気が流れない状態)について学びます。次に、PWMの概念、周期、パルス幅、デューティ比について解説し、PWMを用いたLEDの明るさ制御に挑戦します。 具体的なコード例を示しながら、デューティ比を徐々に上げることでLEDが明るくなる様子を観察し、PWMによる制御を体感します。最後に、HIGHはデューティ比100%の状態であり、デューティ比が低くても実際には高速で点滅しているため暗く見えることを補足しています。

 

Fritzingを使って、Raspberry Piの回路図を作成する

/** Geminiが自動生成した概要 **/
Fritzingというアプリを使えば、電子回路の回路図が簡単に作成できます。Raspberry Piなど、様々な電子部品がパーツとして用意されており、ドラッグ&ドロップで配置できます。標準パーツにない場合は、ネットから追加することも可能です。例えば、Raspberry Pi 4 Model Bのパーツは、フォーラムで共有されているfzpzファイルをダウンロードしてインポートすることで使用できます。

 

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

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

 

草だらけのキク科植物たち

/** Geminiが自動生成した概要 **/
キクイモは草本であり、木本のように太い幹を持ちません。草本と木本の定義は曖昧な部分もありますが、一般的に木本は太い幹を持つ植物を指します。 キク科の植物はほとんどが草本ですが、日本の小笠原諸島には木本であるワダンノキが存在します。ワダンノキは元々は草本でしたが、進化の過程で木本化したと考えられています。 キク科の植物は、森林から草原に進出する際に、リグニンの合成量を減らした可能性があります。リグニンの合成はエネルギーを必要とするため、紫外線の強い草原では、リグニンの合成を抑制することが有利だったと考えられます。

 

Raspberry Piのシリアルコンソールを試す

/** Geminiが自動生成した概要 **/
Raspberry Piのシリアルコンソール機能を使うと、ネットワーク環境がなくても有線でRaspberry Piを操作できます。 今回は、Raspberry Pi 4BとUbuntu 20.04、USB-TTLシリアルコンソールケーブルを使って接続を試みました。 Raspberry Pi側でシリアルポートとコンソールを有効化し、ケーブルで接続します。Ubuntu側ではscreenコマンドを使ってシリアルコンソールに接続します。 接続が確立すると、Ubuntuの端末にRaspberry Piのログイン画面が表示され、操作が可能になります。接続を終了するには、ctrl + a、kと入力します。

 

Raspberry PiでLCDに文字列を出力する

/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiとI2C接続のLCDディスプレイを使って文字列を表示する方法を解説しています。 まず、Raspberry Piの設定でI2Cを有効化し、LCDのI2CモジュールをGPIOピンに接続します。接続が正しければ、「i2cdetect -y 1」コマンドでI2Cアドレスが表示されます。 次に、OSOYOOのライブラリ「i2clcda.py」を使ってPythonコードを作成し、LCDに文字列を表示します。コードでは、ライブラリをインポート後、「lcd_init()」でLCDを初期化し、「lcd_string()」関数で文字列と表示位置を指定して出力します。 表示されない場合は、I2Cモジュールのポテンショメータを調整してコントラストを調整する必要があります。

 

Rapberry PiとBBC Micro:bitでUSB経由のシリアル通信を試す

/** Geminiが自動生成した概要 **/
この記事では、Raspberry PiとBBC Micro:bit間でUSB経由のシリアル通信を行う方法を解説しています。 従来のUART通信と異なり、USB接続ではRaspberry Pi側のシリアルポート設定が不要です。Micro:bit側で温度データを送信するコードを作成し、Raspberry Pi側では"/dev/ttyACM0"をデバイス、"115200"をボーレートとしてシリアル通信を設定します。 これにより、Raspberry Pi側でMicro:bitから送信された温度データを受信し、コンソールに表示することができます。USB接続は、GPIOの使用状況に影響されず、より簡便な方法と言えます。

 

Rapberry PiとBBC Micro:bitでUARTを試す

/** Geminiが自動生成した概要 **/
Micro:bitとサーボモーターを使って環境制御の基礎を学ぶ記事。サーボモーターの角度制御をMicro:bitのプログラムから行う方法を紹介。Muエディタを使用し、角度を指定するシンプルなコードから、連続的な動きや特定角度への移動、アナログ入力による制御まで段階的に解説。具体的な接続方法やコード例、ライブラリの活用法も示し、初心者にも分かりやすくサーボモーター制御の基礎を習得できる内容となっている。最終的には、植物育成ライトの角度調整といった具体的な応用例も示唆し、環境制御への応用を促している。

 

サクラの落葉が何か早い

/** Geminiが自動生成した概要 **/
桜の落葉が早く、クヌギはまだ落葉していないことに気づき、夏の環境ストレスが原因ではないかと考察している。ウェザーニュースの記事によると、長梅雨や猛暑で桜が夏バテを起こし、落葉が早まることがあるという。通常、クヌギのようなブナ科の樹木より桜の方が落葉は遅いはずだが、今年は逆転現象が起きている。この早期落葉は森林全体の光合成量を減少させ、二酸化炭素固定量にも影響を与える可能性がある。異常気象の加速により、この状況からの脱却は困難になるかもしれないと懸念を示している。

 

SOY Shopの商品名検索でオートコンプリートを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品検索にオートコンプリート機能を追加するプラグインがリリースされました。商品ごとに読み方を登録することで、ひらがな・カタカナでの検索や、漢字・ひらがな・カタカナの部分一致検索が可能になります。 プラグインはJSライブラリを自動で読み込みますが、HTMLの記述によってはうまくいかない場合もあるため、その際は掲示板への連絡を推奨しています。最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能です。

 

NmapでLAN内のRaspberry Piを探してみる

/** Geminiが自動生成した概要 **/
本記事では、Nmapを活用してLAN内のRaspberry PiのIPアドレスを特定する方法を解説します。 Ubuntu環境ではNmapのインストールからIPアドレス発見までスムーズに進んだ成功事例を紹介。一方、ChromebookのLinux環境ではNmapでのスキャンが上手くいかない問題に直面。その原因が、ChromebookのLinuxがLXCコンテナ上で動作しており、ネットワーク環境がホストと異なるためと判明しました。 コンテナ環境からのLAN内探索の難しさを示し、コンテナ技術への深い理解が不可欠であることを提示します。

 

Raspberry PiをChromebookから操作する

/** Geminiが自動生成した概要 **/
プログラミング教室でキーボード・ディスプレイ無しにRaspberry Piを使うため、ChromebookからVNC接続を試みた。Raspberry PiでVNCサーバーを有効化し、ChromebookにVNC Viewerをインストール、IPアドレス指定で接続に成功。しかし、ディスプレイ未接続時は起動時にウィンドウシステムが立ち上がらずエラー発生。解決策として、raspi-configで画面解像度を設定することで、ディスプレイ無しでもVNC接続できるようになった。

 

SOY ShopのGoogle Sign-In for WebsitesプラグインをSign In With Googleに変更しました

/** Geminiが自動生成した概要 **/
SOY ShopのGoogleログインプラグインが、Google Sign-In for WebsitesからSign In With Googleにアップデートされました。変更に伴い、HTMLタグやスクリプトを修正する必要があります。 以前は`googleUser.getBasicProfile()`でユーザー情報が取得できていましたが、現在はJWTが返却されるため、Base64デコードが必要です。`parseJwt`関数でJWTをデコードし、`json.email`でメールアドレスを取得します。 詳細はプラグイン詳細画面とサイト(saitodev.co/soycms/soyshop/)を参照してください。

 

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系)知識やハードウェア管理の理解が必要と結論づけている。

 

Google Maps APIのジオコーディングのコードをOpenStreetMapのNominatimで書き換えてみた

/** Geminiが自動生成した概要 **/
Google Maps APIのジオコーディングをOpenStreetMapのNominatimに書き換えた。エンドポイントとJSONレスポンスの差異に対応するだけで比較的容易に移行できた。NominatimはAPIキー不要で回数制限もない。しかし、Google Maps APIと比べて検索速度が遅く、曖昧な地名検索の精度や郵便番号検索の網羅性で劣る。Google Maps APIは検索速度と精度の面で優れているが、費用と回数制限が課題となる。Nominatimは無料だが、パフォーマンスに課題があるため、用途に応じて使い分ける必要がある。

 

Micro:bitで二種類のサーボモータの動作を比較してみる

/** Geminiが自動生成した概要 **/
この記事では、Micro:bitを用いて二種類のサーボモーター(360°回転と270°回転)の動作比較を行っています。どちらもGeekservo 9gサーボですが、360°サーボは角度指定で回転速度が変化し、90°を基準にそれより大きい値で反時計回り、小さい値で時計回りに回転します。一方、270°サーボは指定角度で正確に停止します。同じコードでもサーボの仕様によって動作が異なることを実証し、LEGO Ninjagoのコールのミニフィグを使って動作の様子を動画で紹介しています。

 

Micro:bitでサーボモータの止め方を試す

/** Geminiが自動生成した概要 **/
Micro:bitでサーボモーターを制御し、停止させる方法を検証した。ブレットボードと拡張ボードを用い、LEGO人形を乗せて回転を確認。以前の記事でサーボモーターの基準値を90度としたため、Aボタン押下で150度まで回転後、1秒で停止するコードを作成・実行した。結果は1秒後にモーターは停止したが、150度以上に回転していた。サーボモーターへの入力値と実際の回転角度の対応はまだ不明瞭。

 

環境制御を学ぶ為にMicro:bitでサーボモータを学ぶ

/** Geminiが自動生成した概要 **/
Micro:bitとサーボモーターを用いて環境制御学習の第一歩を踏み出した著者は、サーボモーターの動作原理を学ぶため、LEGOブロックとミニフィグを使った回転実験を行った。MakeCodeで作成したコードでMicro:bitからサーボモーターに角度指令を送ると、90度を基準に、大きい値では反時計回り、小さい値では時計回りに回転する。しかし、指定角度で停止せず、一回転し続けるという問題に直面。これは、指令値が目標角度ではなく、一定時間内の回転角度を表すためであった。 著者は、サーボモーターの停止方法について疑問を抱いている。

 

【重要】SOY Shopでクレジットカード支払いが正常に終了しなかった注文を通知する機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで、クレジットカード決済は完了したのに注文が未完了となる問題が発生。原因はスマホのWiFiとセッションの喪失によるもので、決済モジュールのリダイレクト処理中に発生すると注文受付処理が失敗する。この問題に対処するため、決済成功&注文未完了の状態(仮登録&支払確認済)の注文を管理画面の新着ページにエラー通知として表示する機能を追加。通知機能は「新着注文一覧表示プラグイン」の一部として実装。この対応で、注文の見落としを防ぎ、問題発生時の早期発見を目指す。ただし、注文数の少ないサイトでは有効性低いため、更なる改善が必要。

 

ARM版ChromebookにDropboxをインストールする

/** Geminiが自動生成した概要 **/
ARM版ChromebookでLinuxアプリのDropboxを使うには、.debパッケージが使えないためDbxfsを利用する。pip3でDbxfsをインストール後、Dropboxフォルダを作成し、dbxfsコマンドを実行。表示されるURLにアクセスし、Dropboxにログインして認証コードを取得、端末に入力する。パスフレーズを設定すれば、Linuxファイル配下でDropboxのファイルが操作可能になる。Android版DropboxはChromebookのFilesのLinux共有に対応していないため、この方法が必要。

 

アルカリ性不良土壌向けの肥料について調べてみた

/** Geminiが自動生成した概要 **/
アルカリ性土壌では鉄欠乏が起こりやすいが、今回ムギネ酸類似体の安価な合成法が開発された。ムギネ酸はオオムギが鉄を吸収するために分泌するキレート物質だが、高価だった。この研究では、ムギネ酸の一部をプロリンに置換することで、安価で同等の機能を持つプロリンデオキシムギネ酸(PDMA)を開発した。この成果は、アルカリ性土壌での鉄欠乏対策に大きく貢献する。特に、イネ科植物はムギネ酸を分泌するため、緑肥として活用すれば土壌改良に繋がる。ライ麦やエンバクなどの緑肥も鉄吸収を促進する効果が期待される。

 

SOY CMSでSOY Inquiry連携プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSブログの記事ページからSOY Inquiryで作成したお問い合わせフォームへ遷移する際、記事名を引き継ぎたいという要望に応えるため、SOY CMSとSOY Inquiry双方に機能追加を行いました。 SOY CMS側では「SOY Inquiry連携プラグイン」を追加。記事ページにフォームへのリンクを設置し、クリックすると記事名を渡しつつフォームへ遷移します。SOY Inquiry側では「記事名 [SOY CMSブログ連携]」カラムを追加し、受信した記事名を表示します。 プラグインの設定方法はSOY CMS側のプラグイン詳細画面に記載されています。記事名以外の項目連携も要望に応じて対応可能です。利用にはSOY CMSとSOY Inquiry両方のアップデートが必要です。

 

php-webdriverでAceのコードエディタに文字を入力する

/** Geminiが自動生成した概要 **/
`executeScript`は、ChromeDriverでJavaScriptを実行するメソッドです。第一引数に実行するスクリプト、第二引数にオプションの引数配列を取ります。このメソッドは、ブラウザコンテキストでJavaScriptを実行し、その結果を返します。Aceエディタへの入力は、エディタオブジェクトの`setValue`メソッドをJavaScript経由で呼び出すことで実現できます。上記例では、`$script`に`setValue`呼び出しを定義し、`$html`をエディタに設定しています。`executeScript`の第二引数配列は、`$script`内の`arguments`オブジェクトにマッピングされます。これにより、PHPからJavaScript関数をパラメータ付きで実行できます。

 

OpenStreetMap + Leafletで設置したマーカーにクリックのイベントを追加した

/** Geminiが自動生成した概要 **/
OpenStreetMapとLeafletを用いて地図上にマーカーを設置し、クリックイベントを追加する方法について解説しています。 まず、Leafletで地図上にマーカーを設置する基本的なコードを示し、クリックイベントを追加するために`L.geoJSON`を使用する方法を説明しています。`L.geoJSON`の第二引数に`onEachFeature`オプションを渡すことで、マーカーごとにクリックイベントを設定できます。 記事では、クリックイベント発生時に任意のURLへ遷移する例を挙げており、PCとスマホそれぞれでクリックとタップイベントに対応するコードを記述しています。

 

OpenStreetMap + Leafletを試してみた

/** Geminiが自動生成した概要 **/
この記事では、Google Maps JavaScript APIの代わりにOpenStreetMapとLeafletを使って地図を表示する方法を紹介しています。OpenStreetMapは無料で利用でき、Leafletは簡単に地図を表示できるJavaScriptライブラリです。 記事では、大阪府高槻市の摂津峡を例に、緯度経度を指定して地図を表示し、マーカーを設置する手順をコード付きで解説しています。結果として、少ないコードで簡単に地図上にマーカーを表示することができました。

 

SOY Shopで簡易ショッピングモール運営プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の簡易ショッピングモール運営プラグインが開発されました。従来、複数ショップでは顧客ポイントの共有化が課題でしたが、本プラグインは単一ショップに複数の「出店者」アカウントを追加することで解決。各出店者は自身の商品登録・注文情報・顧客情報(閲覧のみ)へのアクセスに制限され、他出店者の情報は見えません。これにより、顧客ポイントの共有が可能になります。現状、出店者用ページやカテゴリ管理機能は未実装。ショッピングモール運営希望者は問い合わせを推奨。プラグインはSOY Shopパッケージに同梱されています。

 

葉緑素の分解産物が根の抵抗性を高めるらしい

/** Geminiが自動生成した概要 **/
農研機構の研究で、葉緑体分解産物であるフィトールがトマトの根のセンチュウ抵抗性を高めることが判明した。フィトールはクロロフィルの分解過程で生成されるアルコールで、土壌中のフィトールが根にエチレンを蓄積させ、抵抗性を向上させる。このメカニズムは、緑肥を刈り倒し土壌に成分を染み込ませる方法と類似しており、土壌消毒にも応用できる可能性がある。緑肥カラシナによるイソチオシアネート土壌消毒と組み合わせれば、相乗効果でセンチュウ被害や青枯病などの細菌性疾患を抑制し、根の養分吸収を維持、ひいては地上部の抵抗性向上にも繋がる可能性がある。

 

クロスサイトスクリプティングを回避する方法を探る

/** Geminiが自動生成した概要 **/
SOY2では、XSS対策としてhtmlspecialcharsを簡便に利用できるHTMLLabelを提供している。記事では、HTMLLabelの基本的な使い方と、soy:idを用いた動的な値の表示方法を解説。HTMLLabelはHTMLタグを自動的にエスケープし、安全に値を表示。例として、ブログ記事のタイトルを表示するコードを紹介し、HTMLLabelを用いることで、タイトルに含まれるHTMLタグがエスケープされ、XSS脆弱性を防ぐ様子を示している。また、HTMLLabelの子要素としてHTMLタグを記述することで、特定のタグを許可することも可能。記事は、HTMLLabelがSOY2でのXSS対策に効果的であることを示唆。

 

内在性レトロウィルスについてを知る

/** Geminiが自動生成した概要 **/
この記事では、植物の生理現象を理解する上でアサガオが優れたモデル生物であることを解説しています。アサガオは、成長が早く、様々な変異体があり、遺伝子情報も豊富であるため、遺伝学、発生学、生理学などの研究に適しています。具体的には、短日植物であるアサガオを使って、花成ホルモン「フロリゲン」の研究が行われ、フロリゲンの存在が証明されました。また、アサガオの様々な色の花は、色素の生合成経路の研究に役立ち、遺伝子の変異による表現型の変化を学ぶことができます。さらに、アサガオはつる植物であり、植物の成長や運動のメカニズムを研究するのにも適しています。このように、アサガオは、植物科学の様々な分野の研究に貢献している重要な植物です。

 

SOY Board on SOY Shop

/** Geminiが自動生成した概要 **/
SOY Shop向け掲示板アプリプラグイン「SOY Board on SOY Shop」を開発中。顧客とマイページ機能を活用し、手軽に掲示板を設置できる。中小企業のWeb活用増加を背景に、古くからある掲示板の価値が見直されていると判断。既存のSOY Boardの改修が困難だったため、SOY Shop上に構築する形とした。PHP最新バージョンへの対応、多様なXML出力、HTML投稿を重視し、既存のOSSではなく独自開発を選択。特にXML出力は、サイトマップ登録や新着通知の細分化に活用予定。HTML許可によるXSS対策の難しさは課題。ローカル環境での動作確認推奨、試用時は新規ショップサイト作成必須。最新パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能。

 

ウィルスの意味論を読み、RNAウィルスから発見された酵素の恩恵を思い出した

/** Geminiが自動生成した概要 **/
内在性レトロウイルスは、古代のレトロウイルス感染によって宿主ゲノムに組み込まれたウイルス配列である。ヒトゲノムの約8%を占め、通常は不活性化されているが、一部は遺伝子発現に関与し、胎盤形成に必要なシンシチンなどのタンパク質をコードする。シンシチンは細胞融合を促進し、胎児と母体の栄養交換を可能にする合胞体栄養膜の形成に寄与する。 これらのウイルス由来遺伝子は進化的に保存されており、哺乳類の胎盤進化に重要な役割を果たしたと考えられている。一方で、内在性レトロウイルスの活性化は、自己免疫疾患やがんなどの病態に関与する可能性も示唆されている。

 

【SEO対策】Google Analyticsのスクリプトをページ読み込み直後にする

/** Geminiが自動生成した概要 **/
HTMLScriptElement は `<script>` タグを制御するインターフェース。`src` 属性で外部スクリプトを読み込み、`async` 属性を設定すると解析を妨げずに非同期でスクリプトを実行、`defer` 属性はHTML解析完了後に実行、`type` 属性でスクリプト言語を指定。`text` 属性に直接コードを記述も可能。`onload` イベントで読み込み完了を検知、`onerror` でエラー処理。`crossorigin` 属性はCORSリクエストを制御。`integrity` 属性はSubresource Integrity を使用し、読み込んだスクリプトの整合性を検証。`referrerpolicy` はリファラーヘッダーを制御。`nomodule` はES Modulesをサポートしないブラウザでスクリプトを実行。

 

SOY CMSのCumulative Layout Shiftプラグインにpicture要素設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのCore Web Vitals改善用プラグイン「Cumulative Layout Shift」にpicture要素設定が追加されました。 picture要素はレスポンシブ画像を実現するHTMLタグで、画面幅に応じて最適な画像を出力します。プラグインでは、imgタグにsize属性を自動挿入するか、pictureタグで囲うかを選択できます。ただし、既にHTMLテンプレートでpictureタグを使用している場合は正常に動作しないため注意が必要です。この機能はsaitodev.co/soycms/で提供されるパッケージに含まれています。画像のwidthが小さい場合はsize属性が自動挿入されます。

 

SOY CMSとSOY ShopでPHP8.0系に対応しています

/** Geminiが自動生成した概要 **/
PHP 8.0への対応でSOY CMSとSOY Shopが高速化しました。主因はJITコンパイラですが、ビルドイン関数date、strlenの挙動変化に伴うコード修正も寄与しています。HTMLListのダミーオブジェクト処理で発生していたdate関数のエラーを修正。PHP7系でも動作します。プラグインの動作確認は順次実施予定。PHPのOPCache設定変更で更なる高速化も期待できます。OPcache.validate_timestampsを0にすると、PHPファイルのタイムスタンプ確認を無効化し、パフォーマンスが向上しますが、ファイル更新が反映されなくなるため、開発中は1、運用時は0にするのが推奨されます。opcache.revalidate_freqで更新頻度を設定できます。

 

アカガシのドングリを探しに本山寺へ

/** Geminiが自動生成した概要 **/
アカガシとツクバネガシの標高による棲み分けについての本を読み、高槻の本山寺(標高約520m)へアカガシを探しに行った。樹皮とドングリ、葉の特徴からアカガシを確認。境内にもアカガシ林保護の掲示があった。アカガシが現れる直前まではアラカシらしき木が生えていたが、その後はアラカシが見られなくなり、標高による棲み分けの可能性を感じた。

 

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

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

 

UbuntuでMySQLのアップグレードが停止する原因を探る

/** Geminiが自動生成した概要 **/
Ubuntu 20.04の開発環境で、MySQL 8系のapt upgradeが停止する問題が発生。原因はMySQLの設定ファイル`mysqld`セクションに`skip-grant-tables`が設定されていたため。この設定はパスワード認証を無効化するためのもので、アップグレード処理と競合した模様。`skip-grant-tables`をコメントアウトすることで問題は解決した。開発環境ではパスワード入力を省略するために設定していたが、セキュリティリスクの高い設定のため、本来の使い方ではない。

 

ブルーベリーは目に良いというけれど

/** Geminiが自動生成した概要 **/
ブルーベリーの視力増強効果は、アントシアニンというポリフェノールによるものです。アントシアニンはブルーベリー特有ではなく、近縁種のビルベリーや他の植物にも含まれます。視力への影響は、光による活性酸素の発生を抑えることにあります。紫外線を含む光は目に有害で、活性酸素を発生させ、視細胞を損傷・死滅させます。アントシアニンはこの活性酸素の発生を抑制し、視細胞の損傷を軽減、再生も抑えることで視力増強に繋がります。この活性酸素抑制効果は、以前の記事で触れたアジサイの花弁の色素やフラボノイドと関連しています。

 

PHPのハッシュテーブルを見る

/** Geminiが自動生成した概要 **/
PHPのハッシュテーブルの実装を調査した。`HashTable`は`_zend_array`構造体で定義され、`Bucket`構造体の配列`arData`を持つ。`Bucket`は値(`zval`)、ハッシュ値(`h`)、キー(`key`)を保持する。`zval`は`zend_value`共用体を含み、関数ポインタ`zend_function`もそのメンバの一つ。`zend_function`自体は共用体で、内部関数やユーザー定義関数の情報を保持する構造を持つ。関数登録は`HashTable` - `Bucket` - `zval` - `zend_value` - `zend_function`と複数のデータ構造を介して行われることが判明した。

 

ウィルス感染症予防の一手としてのアスコルビン酸誘導体

/** Geminiが自動生成した概要 **/
ビタミンC誘導体、特にアスコルビン酸グルコシドは、植物ウイルス感染症の軽減・遅延に効果がある。グルコースと結合したアスコルビン酸グルコシドは、植物体内でグルコースが外れてビタミンCとして作用する。ビタミンC自体は反応性が高く効果が持続しにくいが、誘導体化することで安定性と持続性が向上する。このため、食品添加物や化粧品にも利用されている。植物はビタミンCを合成するにも関わらず、外から散布することでウイルス感染が軽減される理由は、ビタミンCの局所的な濃度上昇や、誘導体化による作用機序の違いなどが考えられる。これは、亜鉛散布による秀品率向上と同様の課題と言える。

 

【SEO対策】Core Web Vitals

/** Geminiが自動生成した概要 **/
Google Analyticsのスクリプトをページ読み込み直後に移動することで、Core Web Vitals、特にFID(First Input Delay)を改善する方法を解説しています。通常、Google Analyticsのスクリプトは</body>直前に配置されますが、これだとスクリプトのダウンロードと実行が完了するまでブラウザが他の操作を受け付けず、FIDが悪化します。記事では、async属性を追加し<head>内に移動することで、スクリプトを非同期で読み込み、ブラウザのレンダリングを妨げないようにする方法を紹介。async属性はIEでは機能しないため、IE用に条件分岐で対応する必要性も説明しています。さらに、Google Tag Managerを使用している場合は、設定変更だけで対応可能であることも解説しています。これらの修正により、FIDが大幅に改善され、ユーザーエクスペリエンスの向上が期待できます。

 

PHPのオブジェクトの継承の負荷を見る

/** Geminiが自動生成した概要 **/
PHPでクラス継承時のメモリ使用量を検証した。継承の有無にかかわらず、インスタンス作成によるメモリ増加量は同じだった。VLDを用いて継承時のメソッドを確認すると、子クラスは親クラスのメソッドを保持し、オーバーライドも可能であることが分かった。つまり、インスタンス生成時はオブジェクトとプロパティ値のみを保持し、メソッドはクラス定義に基づいて解決される。継承はメソッドの探索順序に影響するが、インスタンスのメモリ使用量には直接影響しない。

 

PHPのzvalと変数の作成を見る

/** Geminiが自動生成した概要 **/
PHPの変数はzval構造体とzend_value共用体で表現される。zvalは型情報を持ち、zend_valueは実際の値を保持する。整数、文字列、配列など、型の違いはzend_valueの異なるメンバを使用することで実現される。変数名とzvalの関連付けはシンボルテーブルを介して行われる。`$a = 1`のような代入では、zvalが初期化され、zend_valueの`lval`に1がセットされ、シンボルテーブルに"a"というキーでzvalへのポインタが登録される。これにより、変数名から対応する値にアクセスできるようになる。

 

PHPのガベージコレクションを学ぶにXdebugを入れる

/** Geminiが自動生成した概要 **/
XdebugはPHPのデバッグとプロファイリングツールです。`xdebug_debug_zval()`関数は、変数の内部表現であるzvalの情報を表示します。出力には、参照カウント(refcount)、参照かどうか(is_ref)、そして変数の型と値が含まれます。zvalの情報は、PHPのガベージコレクションの仕組みや変数の挙動を理解する上で重要です。Xdebugのドキュメントでは、`xdebug_debug_zval()`以外にも様々なデバッグ関数が紹介されています。これらを利用することで、PHPコードの実行状況を詳細に把握し、問題の特定やパフォーマンスの改善に役立てることができます。

 

水稲害虫の天敵のこと

/** Geminiが自動生成した概要 **/
冬期灌水のような環境保全型稲作でも、肥料成分が過剰になると害虫被害が増加する。農薬による防除は害虫の抵抗性や天敵への影響で効果が薄れるため、作物の抵抗性と天敵に着目すべきである。静岡県の研究では、水田のクモ類に着目し、コモリグモ科は米ぬか区、アシナガグモ科はレンゲ区で個体数が多いことがわかった。通常栽培区ではどちらのクモも少なかった。米ぬかは亜鉛豊富な有機質肥料だが、課題も多い。レンゲによる土作りが天敵の増加に繋がる可能性があり、今後の研究が期待される。

 

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

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

 

PHPでforeach文の抜け方を見る

/** Geminiが自動生成した概要 **/
PHPのforeach文でループ中にreturnで抜ける場合、メモリリークの懸念がある。VLDでforeachのオペコードを見ると、ループ終了時にFE_FREEで変数を解放している。しかし、ループ中のreturnでもFE_FREEが実行されるか検証した結果、return前にFE_FREEが挿入されていた。つまり、foreach中にreturnしてもメモリリークは発生せず、PHPが適切にメモリ管理を行っていることが確認できた。

 

PHPのVLDで無名関数を見る

/** Geminiが自動生成した概要 **/
PHPのVLDを使って無名関数のオペコードを確認した。無名関数は変数`$isEven`に格納され、if文で実行される。VLD出力では、通常の関数と異なり、function nameが`{closure}`と表示された。これはクロージャを示す。無名関数は関数自体を変数に格納し、後で実行できる。

 

PHPのVLDで関数を見る

/** Geminiが自動生成した概要 **/
PHP関数`isEven`のVLDによるオペコード解析結果を検証。`isEven(2)`呼び出しを含むコードでは、メイン部分と`isEven`関数のオペコードが別々に生成され、関数の定義位置に関わらず、実行時のオペコードでは呼び出し部分が先に現れる。定義位置による実行速度への影響は検証予定だが、計測方法未定のため保留。

 

PHPのVLDでforとforeachを比較する

/** Geminiが自動生成した概要 **/
OPcacheは、PHPスクリプトをコンパイルしたオペコードを共有メモリにキャッシュすることで、PHPのパフォーマンスを向上させる強力なツールです。スクリプトがリクエストされるたびにコンパイルする必要がなくなり、ファイルシステムへのアクセスが削減されます。OPcacheは、PHP 5.5.0以降でデフォルトで有効になっています。 `opcache.enable`ディレクティブで有効化し、`opcache.revalidate_freq` でキャッシュの有効期限を設定します。`opcache_reset()`関数でキャッシュを手動でクリアすることも可能です。OPcacheは、Webサーバーのパフォーマンスを大幅に向上させるため、PHPアプリケーションには必須のツールです。

 

PHPのVLDでfor文を見る2

/** Geminiが自動生成した概要 **/
PHPのfor文で、条件式に`count($arr)`を直接記述するパフォーマンスへの影響を検証。VLDでオペコードを確認すると、ループごとに`count`が実行されていることが判明。しかし、`$cnt = count($arr)`として変数に代入してからループ条件に用いるコードと実行時間を比較した結果、有意な差は見られなかった。ループごとに`count`が実行されるのは非効率と考えられるが、`count`関数自体の実行コストは低い、またはPHPの最適化によって`count`の実行回数が減っている可能性がある。

 

PHPのVLDでfor文を見る

/** Geminiが自動生成した概要 **/
PHPの`for`ループでインクリメント演算子`$i++`と`++$i`の速度差を検証。`++$i`の方が高速で、1億回のループで処理時間が約3/5に短縮された。VLDでオペコードを比較すると、`$i++`では`POST_INC`と`FREE`の2つのオペコードが使われるのに対し、`++$i`では`PRE_INC`のみ。`$i++`は値を一時的に保存するためメモリ確保と解放が必要になり、`++$i`は直接インクリメントするためオーバーヘッドが少ない。結果として`++$i`の方が高速になる。`for`ループでは`++$i`の使用が推奨される。

 

VLDでPHPのオペコードを確認する

/** Geminiが自動生成した概要 **/
PHPの深層理解のため、オペコードを確認する方法を解説。VLD(Vulcan Logic Dumper)を用いて、PHPコードを中間コードに変換する様子を観察できる。Ubuntu 20.04、PHP 7.4.6環境で、vldをgit clone、phpize、configure、make、installし、php.iniにvld.soを追加。`php -d vld.active=1 -d vld.execute=0 /path/to/dir/a.php`で"Hello World"のオペコードを確認できる。これによりPHP内部の仕組みを理解する第一歩となる。

 

郵便番号を入力したら半径3km内のすべての町名を取得する

/** Geminiが自動生成した概要 **/
Google Geocoding APIを用いて、指定住所(安岡寺)から半径3km以内の町名を取得する方法を検証した。APIで中心座標を取得後、緯度経度を0.01(約1km)ずつずらした地点の逆ジオコーディングを繰り返し、町名を収集した。しかし、1kmグリッドでは範囲内の全町名を網羅できず、グリッドを細かくするとAPI使用回数が増加する問題点が残った。より効率的な方法の検討が必要。

 

いもち病の抵抗性を色素の観点から見てみる

/** Geminiが自動生成した概要 **/
イネの葉の色と、いもち病抵抗性の関係について、色素の観点から考察している。サクラネチンは、フラボノイドの一種で、いもち病菌に対する抗菌作用(ファイトアレキシン)を持つ。サクラネチンはナリンゲニン(フラバノン)のメチル化によって生成されると推測される。ナリンゲニンは酸化還元酵素によってアピゲニン(フラボン)にも変換される。アピゲニンは紫外線遮蔽の役割を持つ。葉の色が濃いイネは光合成が盛んで、アピゲニンなどのフラボノイドを多く含むが、いもち病に弱い。これは、葉の黒化によってサクラネチンのメチル化が阻害される、もしくはサクラネチンの相対的濃度が低下するなどの可能性が考えられる。

 

SOY Shop版HTMLキャッシュプラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shop 2にHTMLキャッシュプラグインが追加され、高速化が可能になった。カートウィジェットの問題は非同期通信で解決し、カート内商品数と合計金額をJSONで取得できる。ヤマトリップショップではこの機能とLazyLoadプラグイン、jpegoptimにより、ページ表示速度が3.3秒から1秒以下になり、PageSpeed InsightsのスコアもPCで90を超えた。スマホは90に届かなかったが、Gueztliによる画像最適化で改善が見込まれる。SOY Shop 2正式版は近日公開予定。

 

SOY CMSを介さずにSOY2Mailでメールを送信してみる

/** Geminiが自動生成した概要 **/
SOY CMSを使わずにSOY2Mailでメールを送信する方法を紹介しています。PHPのmail関数より手軽にメール送信できるSOY2Mailを使うため、SOY CMSのsoy2_build.phpを流用し、sendmailを利用する設定でSOY2Mailを初期化します。宛先、送信元、件名、本文を設定後、sendメソッドで送信します。ヘッダーやエンコードの設定は自動で行われます。この記事は、SOY2HTMLやSOY2DAOをSOY CMS外で使う方法を紹介した記事と関連しています。

 

SOY ShopでRFID在庫管理ツール ZAIKAに対応しました

/** Geminiが自動生成した概要 **/
SOY Shopがレンタルサービス事業者向けRFID在庫管理ツール「ZAIKA」とAPI連携できるプラグインを開発しました。ZAIKAはレンタル業務の発送・返却作業効率化と在庫単位での収益・稼働・状態管理を実現するツールです。プラグイン利用にはSOY Shopのオーダーカスタムフィールド(日付)との連携が必要ですが、現状未実装です。連携機能開発は需要に応じて対応予定。プラグイン利用希望者やレンタル業務用SOY Shop構築希望者は問い合わせください。 なお、顧客関連管理機能強化については言及されていません。

 

紅葉の落ち葉が土に還る

/** Geminiが自動生成した概要 **/
紅葉の鮮やかな赤色はアントシアニンによるもので、これが分解されると褐色になる。アントシアニンの一種シアニジンは還元されてフラバン-3-オール(例:エピカテキン)となり、これが重合して縮合型タンニン(プロアントシアニジン)を形成する。タンニンはさらに縮合し、腐植酸へと変化していく。腐植酸は土壌有機物の主要成分であり、植物の栄養源となる。つまり、紅葉の落葉は分解・重合・縮合を経て土壌の一部となり、新たな生命を育むための養分となる。

 

植物が有害な紫外線から身を守る為のフラボノイド

/** Geminiが自動生成した概要 **/
植物は有害な紫外線から身を守るため、フラボノイドという物質を活用する。千葉大学の研究によると、シロイヌナズナは紫外線量の多い地域で、サイギノールというフラボノイドを生合成する。サイギノールは、ケンフェロール(淡黄色のフラボノイド)に3つの糖とシナピン酸が結合した構造で、紫外線を遮断するフィルターのような役割を果たす。他の植物にも同様の紫外線対策機能が存在する可能性が高い。

 

php-webdriverでelement click interceptedのエラーに対して

/** Geminiが自動生成した概要 **/
SeleniumとJenkins、php-webdriver、ヘッドレスChromiumでテスト自動化中に、メモウィジェットが原因でelement click interceptedエラーが発生。ヘッドレスモードで画面サイズが不足し、対象ボタンが隠れていたのが原因。ウィンドウサイズを`1024x2048`に設定することで一時的に解決したが、ページサイズに依存するこの方法は最適ではない。スクロールによる解決策も検討されたが、最終的にはCSSを修正し、メモウィジェットが他のボタンと重ならないように調整することで根本解決した。

 

ハナカマキリのピンク色の色素は何?

/** Geminiが自動生成した概要 **/
ハナカマキリのピンク色は、トリプトファン由来のキサントマチンという色素による。キサントマチンはオモクローム系色素の一つで、還元型がピンク色を呈する。 当初は、ピンクの花弁の色素であるアントシアニンをカマキリが摂取した結果だと予想されていたが、そうではなく、カマキリ自身がキサントマチンを生成していることがわかった。昆虫の色素には、他にメラニンとプテリジン系色素がある。

 

SOY ShopのオーダーカスタムフィールドでjQueryのDatepickerを使ってみる

/** Geminiが自動生成した概要 **/
SOY Shopで配送と店舗受け取りを同時選択できるよう、オーダーカスタムフィールドで対応する方法を紹介。標準機能にはないカレンダーを、jQuery Datepickerを用いて実装する手順を解説。オーダーカスタムフィールドを作成後、カートページテンプレートにjQueryを読み込み、Datepickerを適用するコードを追加。オプション設定で日付範囲も指定可能。複数フィールドへの適用方法や、直接入力を防ぐreadonly属性の追加についても触れている。

 

香り化合物の合成経路から見えてくること

/** Geminiが自動生成した概要 **/
植物の香り化合物(GLV)は、葉が損傷を受けた際にガラクト糖脂質から合成され、害虫や病害に対する防御機構として機能する。GLV合成経路の研究から、ヘキセナールなどの化合物が病害抵抗性に寄与することが示唆されている。このことから、草生栽培において、定期的な草刈りによって放出される香り化合物が作物の耐性を高める可能性が考えられる。逆に、除草剤の使用は香り化合物の放出機会を奪い、食害被害の増加につながる可能性がある。これは、殺菌剤使用による食害増加と同様に、栽培における新たな課題を示唆している。

 

SOY2HTMLで軽微なカスタマイズを加える為の機能を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/ShopのSOY2HTMLに、軽微なカスタマイズを容易にする隠し機能が追加されました。クラスファイルと同名のHTMLファイル名の頭にアンダースコア「_」を付けると、そのHTMLファイルが優先的に読み込まれます。これにより、プラグインのバージョンアップ時の上書きを回避できます。例えば、配送モジュールの文言変更など、PHP知識を必要とせず容易にカスタマイズできます。標準配送モジュールなら `delivery_normal/cart/_DeliveryNormalCartPage.html` を配置し、元のHTMLの内容をコピー・編集することで実現できます。SOY Shop 2系以降で利用可能、1系は `soy2_build.php` の修正が必要です。新パッケージはsaitodev.coからダウンロードできます。

 

ミヤコグサの花弁の色はなぜ珍しいのだろう?

/** Geminiが自動生成した概要 **/
ミヤコグサの花弁は黄色と赤色が混在し、珍しい。黄色はフラボノイドの一種ケルセチンの配糖体とカロテノイドに由来する。赤色はカロテノイドの酸化によるものと考えられる。ケルセチンの配糖体は安定しているが、カロテノイドは酸化されやすい。花弁形成後、時間の経過とともにカロテノイドが酸化し赤くなるため、黄色と赤が混在する。フラボノイドとカロテノイドの組み合わせを持つ花は少なく、これがミヤコグサの花弁の色の珍しさの一因と考えられる。ケルセチンはハチミツにも含まれるフラボノイドで、人体への良い影響も示唆されている。

 

SheetJSを試してみた

/** Geminiが自動生成した概要 **/
SheetJSは、ブラウザ上でHTMLテーブルから簡単にExcelファイルを生成できるJavaScriptライブラリです。デモを改修し、テーブル要素を指定して`XLSX.utils.table_to_book`でブックオブジェクトを生成、`XLSX.writeFile`でExcelファイル(xlsx)として出力する簡単なコードで実装できます。 表示されたHTMLテーブルのダウンロードボタンをクリックするだけで、テーブル構造を保持したExcelファイルがダウンロードされます。著者は従来PHPのPhpSpreadSheetを使用していましたが、SheetJSも選択肢に加えるとのことです。

 

gRPC for PHPのインストール

/** Geminiが自動生成した概要 **/
この記事はUbuntu 19.10環境でGoogle Ads APIを使用するためのgRPC for PHPのインストール手順を解説しています。PEAR/PECL、Composerをインストール後、`pecl install grpc`、`pecl install protobuf`コマンドでgRPCとprotobufをインストールします。その後、`/etc/php/7.4/cli/php.ini`と`/etc/php/7.4/fpm/php.ini`両方に`extension=grpc.so`と`extension=protobuf.so`を追加し、`phpinfo()`や`php -m`でインストールを確認します。記事ではComposerのインストール手順も解説していますが、gRPCのインストール自体はComposerを使わずPECL経由で行っています。

 

Google AdsのMCCアカウントでキーワードプランナーを無料で使えるようにするまで

/** Geminiが自動生成した概要 **/
Google Ads APIを利用するにはMCCアカウントが必要で、キーワードプランナーを無料で使う方法を解説。MCCアカウント作成後、キーワードプランナーは有効な広告アカウントがないため使えない。そこで、エキスパートモードで「キャンペーンなしでアカウントを作成」し、生成されたお客様IDをメモ。MCCアカウントに戻り、サブアカウント設定で「既存のアカウントをリンク」し、お客様IDを入力してリクエストを送信、承認する。これでMCCアカウントでキーワードプランナーが無料で使えるようになる。

 

SOY ShopでFacebookページショップと連携する

/** Geminiが自動生成した概要 **/
SOY Shopの商品をFacebookページショップ/Instagramショッピングで販売する手順は以下の通り。 1. SOY ShopのFacebookページショップ用XMLプラグインを有効化し、XMLページを作成する。 2. Facebookページを作成し、ショップタブを追加。 3. 別のウェブサイトでチェックアウトを選択し、ダミー商品を登録。 4. カタログマネージャでXMLページのURLを登録。一括アップロードで「スケジュール設定したフィードを利用」を選択し、XMLページURLを設定。 5. エラーがなければ連携完了。Instagramショッピングは別途申請が必要。 最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能。

 

【SEO対策】IPv6

/** Geminiが自動生成した概要 **/
IPv6はSEO対策に有効な通信速度改善策。IPv4アドレス枯渇問題を解決する後発の規格で、理論上アドレス割り当ては無限大。16ビット単位の16進数表記で、IPv4より最適化されている。saitodev.coのようなWebサイトアクセスでは、DNSサーバでドメイン名からIPv4/IPv6アドレスを取得し、サイトサーバへアクセスする。IPv6設定はサーバ会社ごとに異なるが、DNS設定ではIPv4をAレコード、IPv6をAAAAレコードに登録する。設定確認は`ping -4/-6 ドメイン名`コマンドで可能。

 

【SEO対策】キャッシュの利用でデータ転送量を削減

/** Geminiが自動生成した概要 **/
SEO対策として、データ転送量削減のためブラウザキャッシュを活用する方法を解説。HTML以外のファイルは一度取得すれば再取得不要なため、ApacheのExpiresモジュールでブラウザにキャッシュさせる。Ubuntu環境でApache2.4を前提に、a2enmod expiresコマンドでモジュールを有効化し、.htaccessにファイルタイプごとにキャッシュ期間を設定する記述を追加すれば完了。HTMLは即時、CSS/JavaScriptは10日間、画像は15日間キャッシュされるようになる。

 

【SEO対策】HTTP/2

/** Geminiが自動生成した概要 **/
HTTP/2は、HTTP/1.1以前のバージョンに比べて、複数のファイルを並列でダウンロードできるため、ウェブサイトの表示速度を大幅に向上させます。これにより、リクエスト回数とインターネット全体の回線使用量が削減されます。しかし、一度に送受信されるデータ量が増えるため、画像サイズの最適化が重要になります。ApacheサーバーでHTTP/2を有効にする方法は、別記事で紹介されています。より詳細な情報は、オライリーの"Real World HTTP"で学ぶことができます。現在、LiteSpeedのようなサーバーでは、さらに高速なHTTP/3(QUIC)が利用可能ですが、当サイトはApacheのHTTP/3対応を待っています。

 

高槻の米粉 「清水っ粉」で米粉パン(小麦入り)を作ってみた(失敗編)

/** Geminiが自動生成した概要 **/
高槻の米粉「清水っ粉」を使い、日立のホームベーカリーで米粉パン作りに挑戦したものの失敗。レシピのミックス粉を強力粉180g、米粉150gに置き換え、イーストも多めに入れたが、焼き上がりは膨らまず、焼き色も薄い。断面はお餅のように固まっている部分と気泡がある部分が混在。味は米粉の質のおかげでまずまずだが、イースト臭が気になった。原因は砂糖を入れなかったことと推測。指定のミックス粉には砂糖や塩が含まれていた可能性が高い。高谷ベーカリーの「清水っ粉」使用の米粉パンの美味しさに改めて感動し、パン屋の研究の深さを実感した。

 

SOY CMSでドメインが異なる複数のサイトを運営する

/** Geminiが自動生成した概要 **/
SOY CMSで異なるドメインの複数サイト(example.kyoto, other.example.kyoto)をさくらVPS上の単一サーバーで運用する手順を記述。Let's Encryptでワイルドカード証明書(*.example.kyoto)を取得し、既存証明書を削除後、お名前.comのDNS設定でTXTレコードを追加。SOY CMSでサイト毎にURLを設定し、Apacheのドキュメントルートにindex.phpと.htaccessを設置、ドメインに応じてサイトを切り替えるよう設定。ワイルドカード証明書の更新は、お名前.comでは自動化できないため手動、またはさくらのクラウドDNSへの移管が必要。

 

高槻の芥川にあった赤い石は何だろう?

/** Geminiが自動生成した概要 **/
緑泥石は、土壌形成において重要な役割を果たす粘土鉱物の一種です。風化作用により、火成岩や変成岩に含まれる一次鉱物が分解され、緑泥石などの二次鉱物が生成されます。緑泥石は、層状構造を持ち、その層間にカリウムやマグネシウムなどの塩基性陽イオンを保持する能力があります。これらの陽イオンは植物の栄養分となるため、緑泥石を含む土壌は肥沃です。 緑泥石の生成には、水と二酸化炭素の存在が不可欠です。水は一次鉱物の分解を促進し、二酸化炭素は水に溶けて炭酸を形成し、岩石の風化を加速させます。さらに、温度も緑泥石の生成に影響を与えます。 緑泥石は、土壌の物理的性質にも影響を与えます。層状構造により、土壌の保水性や通気性が向上し、植物の生育に適した環境が作られます。また、緑泥石は土壌の団粒構造を安定させる働きも持ち、土壌侵食の防止にも貢献します。

 

pickadate.jsでHTML5のrequired属性を使いたい

/** Geminiが自動生成した概要 **/
pickadate.jsでHTML5のrequired属性を使うには、`editable: true`オプションを設定する必要がある。ただし、これによりページ読み込み時にrequiredチェックが実行され、未入力エラーが表示される問題が発生する。これを回避するには、フォームにIDを付与し、クリックイベントでpickadateを初期化するよう変更する。さらに、カレンダー表示のために`pickr.pickadate('open')`も追加する必要がある。これにより、フォームクリック時に初めて初期化とバリデーションが行われるようになり、初期エラー表示の問題が解決する。

 

SOY CMSでDropboxバックアッププラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS向けDropboxバックアッププラグイン(β版)を開発しました。CLI版不要で、Dropbox APIを利用しサーバからDropboxへ直接バックアップファイルを転送します。PHPのZipArchive、またはコマンドラインzip、サイトディレクトリへの圧縮権限、サーバの空き容量が必要です。詳細はサイト(saitodev.co/soycms/)で確認し、手動バックアップの上、利用ください。

 

SOY Shopで販売管理アプリの構築に挑戦

/** Geminiが自動生成した概要 **/
SOY Shopで販売管理アプリ構築に挑戦中。仕入・入出金管理に注力し、既存の販売管理アプリの課題である価格バリエーションの不足に対応するため、SOY Shopのプラグインを活用し無制限登録を実現。商品規格を応用し、仕入値の異なる同一商品を管理。管理画面からの注文登録時に仕入値パターンを表示する機能も追加。ネットショップにおける仕入の概念の重要性も認識。販売管理機能強化により、ネットショップ機能全体の向上を目指す。

 

粘土鉱物が出来る場所、風化作用

/** Geminiが自動生成した概要 **/
粘土鉱物は、岩石の風化によって生成される微粒で層状の珪酸塩鉱物です。風化には、物理的な破砕と、水や酸との化学反応による変質があります。カリ長石がカオリンに変化する過程は、化学的風化の例です。鉱物の風化しやすさは種類によって異なり、一般的に塩基性の強い火山岩ほど風化しやすいです。同じ珪酸含有量でも、急速に冷えて固まった火山岩は、深成岩より風化しやすい石基を多く含みます。そのため、玄武岩のような火山岩は斑れい岩のような深成岩よりも風化しやすく、結果として異なる種類の粘土鉱物が生成されます。

 

石灰岩の成り立ちから石灰性暗赤色土を考える

/** Geminiが自動生成した概要 **/
石灰性暗赤色土を理解するために、石灰岩の成り立ちから考察している。石灰岩はサンゴ礁の遺骸が堆積して形成されるが、海底のプレートテクトニクスによる地層の堆積順序を踏まえると、玄武岩質の火成岩層の上に形成される。滋賀県醒ヶ井宿や山口県秋吉台など、石灰岩地域周辺に玄武岩が存在することはこの堆積順序と一致する。つまり、石灰性暗赤色土は石灰岩だけでなく、周辺の玄武岩の影響も受けていると考えられる。玄武岩の影響は土壌の赤色や粘土質を説明する要素となる。暗赤色土に見られる色の違い(赤~黄)は玄武岩質成分の量の差と推測できる。

 

石灰岩はどう出来る?続成作用

/** Geminiが自動生成した概要 **/
石灰岩は炭酸カルシウムを主成分とする堆積岩で、その成り立ちは遠い海と深く関わっている。陸から運ばれた堆積物が続成作用で固まる過程で、石灰岩も形成されるが、主成分である炭酸カルシウムの由来は陸起源ではない。実は、サンゴなどの生物の遺骸が遠方の海で堆積し、長い年月をかけて地殻変動により陸地へと現れることで、石灰岩が形成される。つまり、現在の日本の石灰岩は、かつてハワイのような温暖な海で形成されたサンゴ礁の名残である。

 

大陸の暗赤色土での栽培を考える

/** Geminiが自動生成した概要 **/
中国西部の赤色粘土質の土壌で、石灰過剰という分析結果から、石灰性暗赤色土での栽培について考察されている。石灰岩の風化によって生成されるこの土壌は、日本では珍しく、大陸で多く見られる。石灰岩は炭酸カルシウムが主成分で、pH調整に用いる石灰質肥料と同じ成分だが、過剰施用は有害となる。醒ヶ井宿の居醒の清水のような石灰岩地域での知見を活かし、中国の土壌で多様な作物を育てる方法を探る。具体的には、石灰岩土壌の性質を理解し、適切な作物選択、土壌改良、水管理などを検討する必要がある。

 

植物は痛みを感じた時にグルタミン酸を用いて全身に伝えている

/** Geminiが自動生成した概要 **/
殺菌剤の使用は、天敵の減少を通じて作物への食害被害を増加させる可能性がある。野外実験では、殺菌剤散布区でテントウムシの個体数が減少し、アブラムシの密度が増加、結果としてダイズの食害被害が増大した。同様に、殺菌剤はハダニの天敵であるカブリダニを減少させ、ハダニ密度を増加させる。これらの事例は、殺菌剤が害虫の天敵を排除することで、間接的に食害被害を増幅させる可能性を示唆している。つまり、殺菌剤による病害防除効果と引き換えに、害虫管理の複雑化というトレードオフが存在する。

 

PHPのexec関数でセッションの値の引き継ぎに苦戦した時のメモ

/** Geminiが自動生成した概要 **/
Amazon Linux 2のLAMP環境で、PHPの`exec`関数を使ってGoogle Analytics APIにアクセスする際にセッションの引き継ぎに失敗した。`exec`で実行した`cmd.php`内で`session_start()`してもセッション情報が取得できなかった。調査の結果、`cmd.php`内では`session_save_path()`の戻り値が空文字列になっていた。`session_save_path("/var/lib/php/session");`を`session_start()`前に追加することでセッション情報が取得できるようになり、APIアクセスも成功した。`php.ini`の`session.save_path`の設定が原因と考えられるが、未検証。

 

ライ麦パンの知見から緑肥の選定に活かせるか?エンバク編

/** Geminiが自動生成した概要 **/
イネ科緑肥は、土壌への窒素供給効果は限定的だが、土壌構造改善に大きく貢献する。特に、大麦やエン麦などの緑肥は、線虫抑制効果も期待できる。緑肥投入後の土壌は団粒化が進み、通気性・排水性・保水性が向上する。これにより、根の伸長が促進され、養分吸収が向上し、結果として秀品率向上に繋がる。さらに、緑肥の根は土壌を深くまで耕す効果もあり、硬盤層の解消にも役立つ。ただし、緑肥の効果は土壌条件や投入時期、分解期間などに左右されるため、適切な管理が重要となる。加えて、緑肥のすき込み時期を遅らせると、窒素飢餓のリスクも存在する。

 

ライ麦パンの知見から緑肥の選定に活かせるか?

/** Geminiが自動生成した概要 **/
ライ麦パンの知見から緑肥としてのライムギ活用を考察した記事。ライムギは耐寒性に優れ、砂地や貧しい土壌でも生育できる点が強みです。根が深く張り、地中奥の養分を作土に移動させる利点がある一方で、地力を消耗しやすく、粘土質土壌には不向きという特性も持ちます。自身の畑が粘土質でなければ、ライムギは深い土壌の養分を活かした土壌改善に有効な選択肢となりうると結論付け、エンバクとの比較検討へと視点を広げています。

 

Google Analytics APIの承認で苦戦したので、承認されるまでの流れをまとめてみた

/** Geminiが自動生成した概要 **/
Google Analytics APIの承認取得に苦労した著者が、その過程を詳述。OAuth同意画面の設定から始まり、Googleからの度重なるメールでの指摘に対応していく。 ホームページ、プライバシーポリシーの設置、アプリ操作動画の提出を求められ、動画はクライアントIDの表示や言語設定など細かい指示に従い作成し直した。最終的に承認を得るまで、動画の翻訳やスコープ設定の不備など、多くの修正を余儀なくされた。

 

PHPで形態素解析エンジンのMaCabを使用する為の手順のメモ

/** Geminiが自動生成した概要 **/
Ubuntu 19.10環境でPHPからMeCab形態素解析エンジンを使用する手順をまとめたメモです。MeCab、辞書(mecab-ipadic-utf8, mecab-ipadic-neologd)、php-mecabをインストールし、PHPからMeCabを呼び出すテストコードを実行しています。 php-mecabインストールでは、phpize、configure、make、installを行い、mecab.iniを作成、ApacheとCLIで有効化しました。テストコードは"今日は晴天なり"を解析し、結果を配列で出力しています。ブラウザと端末の両方から実行し、期待通りの解析結果が得られました。

 

土壌消毒の前に土壌改良材を使用すべきか?

/** Geminiが自動生成した概要 **/
土壌消毒前に廃菌床などの土壌改良材を使用すべきか、消毒後が良いのかという問いに対し、消毒前に使用することを推奨する。理由は、土壌改良材の使用により土壌物理性が向上し、クロルピクリンくん蒸剤が土壌深くまで浸透しやすくなり、消毒効果が高まるため。また、土壌改良材は土壌鉱物を保護し、窒素化合物の酸化作用による微量要素の溶脱やアルミニウム溶脱を防ぐ効果も期待できる。有用微生物相への影響については、土壌消毒が必要なほど劣化した土壌では、そもそも有用微生物の活動は低いと考えられる。理想的には、土壌改良材→土壌消毒→土壌改良材+有機質肥料の順序で施用するのが良い。

 

食害虫防除としての草生栽培の可能性を探る

/** Geminiが自動生成した概要 **/
草生栽培は、害虫防除に有効な可能性を秘めている。高齢農家は雑草を増やすと害虫も増えると考えるが、抵抗性誘導で害虫を防除できる。草が傷つくとジャスモン酸が合成され、ジャスモン酸メチルとして周辺に伝播し、作物の抵抗性を向上させる。スパイダーモアなどで通路の草を刈り、損傷させることで抵抗性誘導を促せる。刈る草も健康的に育てるため、肥料を与えて発根を促進するのが良い。ネギの畝間にマルチムギを生やすとアザミウマの被害が減った事例もあり、草を生やすこと自体が良い刺激になる可能性がある。ただし、草生栽培を行う前に、土壌を良い状態にしておくことが重要である。

 

PHPで並行処理

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

 

ネナシカズラはイネ科に寄生できるのか?

/** Geminiが自動生成した概要 **/
ネナシカズラがイネ科のヨシに寄生する可能性を調査。報告により、ヨシ原でネナシカズラが確認されたが、寄生は確認されず。低い位置に蔓延していたため、別の植物に寄生している可能性がある。ネナシカズラは葉緑素を持たず、高い位置への伸長が必要ないため、低い位置で宿主から養分を吸収していたと推測される。報告された個所を調査することが望ましい。

 

SOY InquiryでjQuery UIのDatepickerを利用してみる

/** Geminiが自動生成した概要 **/
SOY Inquiryで日付入力にカレンダー形式を追加するには、jQuery UIのDatepickerを利用します。まず、フォーム設置ページのテンプレートにjQueryとjQuery UI、日本語化ファイルのCDNを読み込むscriptタグを追加します。次に、SOY Inquiryで日付のカラムを作成し、属性に`id="datepicker"`を設定します。これにより、フォームにフォーカスを当てるとカレンダーが表示され、日付を選択できるようになります。Datepickerは日付選択の制限等、高度な設定も可能です。詳細はjQuery UIの公式ドキュメントを参照ください。

 

さくらのVPSで追加ストレージ(NFS)を利用してみた

/** Geminiが自動生成した概要 **/
画像データが容量の大部分を占めるサイト運営において、さくらのVPS 1Gプランのストレージ容量が逼迫し、バックアップ時の負荷でサイト表示に不調が生じていたため、追加ストレージ(NFS)の導入手順を解説。 まず、VPSコントロールパネルでスイッチを作成し、アプリケーションサーバとNFSのネットワークインターフェースに紐づける。次に、追加ストレージ(NFS)を契約し、IPアドレスとネットマスクを設定、同じくスイッチを紐づける。 その後、SSHでアプリケーションサーバに接続し、マウントポイントを作成、ネットワークインターフェースを設定、NFSをマウントするコマンドを実行。最終的に、再起動後も自動マウントされるようcrontabを設定する。 記事ではUbuntu 18.04.2での手順を記述。また、SOY CMSでNFSを利用するためのプラグイン開発中であり、問い合わせフォームへのリンクを掲載している。

 

エンバクのアレロパシー

/** Geminiが自動生成した概要 **/
エンバクは緑肥として利用され、根からクマリン類のスポコレチンを分泌することでアレロパシー作用を示す。スポコレチンはフェニルプロパノイド系化合物で、プラントボックス法で分泌が確認されている。この作用を利用すれば、雑草抑制効果が期待できる。エンバクのアレロパシー作用に着目し、他感作用後の栽培活用についても考察が進められている。

 

続・乳酸菌の健康効果に迫る

/** Geminiが自動生成した概要 **/
この記事では、乳酸菌の発酵メカニズムに着目し、健康効果への影響を考察する。乳酸菌は、大きく分けてホモ型乳酸発酵とヘテロ型乳酸発酵(タイプ1とタイプ2)を行う。ホモ型はグルコースから乳酸のみを生成する一方、ヘテロ型タイプ1は乳酸、エタノール、二酸化炭素を、タイプ2は乳酸と酢酸を生成する。ヨーグルトで有名なブルガリア菌(植物性乳酸菌)はホモ型、すぐき漬けに利用されるラブレ菌(植物性乳酸菌)はヘテロ型で発酵する。食品の甘味や酸味の差は、これらの発酵様式の差異に起因すると考えられる。この発酵メカニズムの違いが、乳酸菌摂取による健康効果にどう影響するのか、今後の考察に期待が寄せられる。

 

乳酸菌の健康効果に迫る

/** Geminiが自動生成した概要 **/
乳酸菌は、代謝によって乳酸を多く産生する細菌の総称であり、ビフィズス菌とは区別される。形態は球菌と桿菌に分類され、○○コッカスという名称は球菌を示す。また、由来によって動物性と植物性に分けられる。動物性乳酸菌は動物の腸内やヨーグルト、チーズなどの動物性食品に存在し、植物性乳酸菌は植物の葉や糠漬け、キムチなどの植物性食品から発見される。代謝による分類もあるが、詳細は割愛されている。グリコのビスコに含まれる乳酸菌や、海苔や糠漬けといった発酵食品における細菌の働きに着目し、乳酸菌の定義、形態、由来について解説している。

 

ビタミンB12を合成する細菌を求めて

/** Geminiが自動生成した概要 **/
海苔のビタミンB12含有量の違いに興味を持った著者は、ビタミンB12産生菌について調査。論文検索で*Propionibacterium freudenreichii*と*Pseudomonas denitrificans*という2種の細菌を発見した。後者は脱窒菌として知られる。前者は土壌細菌で、エメンタールチーズの穴を作る際に働く。エメンタールチーズにもビタミンB12が含まれることから、*P. freudenreichii*由来の可能性が示唆されるが、確証は得られていない。

 

ストラメノパイルの藻類たち

/** Geminiが自動生成した概要 **/
珪藻や褐藻は、紅藻や緑藻とは異なり、ストラメノパイルというグループに属する。ストラメノパイルは、真核生物が紅藻または緑藻を細胞内に取り込む二次共生によって誕生した。つまり、褐藻の細胞内には、さらに紅藻/緑藻由来の細胞内共生体が存在する。 これは系統樹上では、ストラメノパイルと紅藻/緑藻/陸上植物が大きく離れていることを意味する。大型褐藻であるワカメと陸上植物は、見た目とは裏腹に進化的に遠い関係にある。この複雑な進化の過程は、褐藻類が秘めた大きな可能性を示唆している。

 

太陽と海と藻類たち

/** Geminiが自動生成した概要 **/
海中の太陽光到達深度と藻類の色素の関係が、生育する藻の種類を決定づける。浅瀬では赤色の波長が減衰し、深くなるにつれ黄色、そして青色以外の波長が消失する。藻類の色素は補色の波長を吸収するため、緑色の陸上植物や緑藻は浅瀬で緑色の光を反射し、過剰な受光を防ぐ。一方、紅藻は緑〜青色の補色である赤い色素を持つため、より深い場所で生育する。海苔として食用にされる様々な藻類は、生物学的には大きく異なり、栄養価も異なる。紅藻(スサビノリ)はビタミンB12(コバラミン)を合成する細菌と共生している。

 

SOY Shopで注文番号をCODE39規格でバーコードを作成してみる

/** Geminiが自動生成した概要 **/
SOY Shopで注文番号をバーコード化できるプラグインを開発。CODE39規格を採用し、ハイフンを含む注文番号に対応。生成されたバーコードはCCDバーコードリーダーで読み取り可能だが、初期設定では長すぎて認識エラーが発生。リサイズで対応。プラグインはsaitodev.coからダウンロード可能。バーコード生成にはPHP Barcode Generatorを使用。現時点ではSOY Shop標準機能としての用途は未定だが、活用アイディア募集中。

 

SOY Shopで商品毎でJANコードを登録しバーコードを作成してみる

/** Geminiが自動生成した概要 **/
SOY Shopで商品ごとにJANコードを登録・バーコード表示するプラグインが開発されました。管理画面の商品詳細画面にJANコード入力欄が追加され、入力するとバーコード画像が生成されます。生成されたバーコードは市販のバーコードリーダーで読み取り可能であることが確認されています。プラグインはsaitodev.coからダウンロードできます。バーコード生成にはPHP Barcode Generatorが使用されています。現状、SOY Shop標準機能でのこのプラグインの用途は未定ですが、活用アイデアは問い合わせフォームから募集中です。

 

ビタミンB12のコバラミン

/** Geminiが自動生成した概要 **/
藻類は酸素発生型光合成を行う生物群の総称で、多様な系統を含む。大きく分けて、シアノバクテリア、紅色植物、灰色植物、緑色植物、クリプト植物、ハプト植物、渦鞭毛植物などがある。緑色植物は陸上植物の祖先を含むグループで、シャジクモ藻類と緑藻類からなる。大型藻類は肉眼で確認できるサイズで、コンブやワカメ、海苔など食用になる種も多い。これらは異なる系統に属し、コンブやワカメは不等毛植物、海苔は紅色植物である。水草は水中生活に適応した植物の総称であり、藻類とは異なる。

 

冬至にかぼちゃを食べると風邪をひかないというけれど

/** Geminiが自動生成した概要 **/
冬至にかぼちゃを食べると風邪をひかないと言われるが、かぼちゃにはβ-カロテン、ビタミンC、E、B1、B2、ミネラル、食物繊維が豊富に含まれる。ビタミンB1は糠漬け、ビタミンCとEは別記事で触れたため、今回はミネラルとβ-カロテンについて考察する。ミネラルは果菜類の果実内発芽から鉄やカリウムが多いと予想される。β-カロテンは赤橙色の色素で、植物では補助集光作用がある。生物史初期に誕生した赤橙色の色素は紅色細菌が持っていたもので、植物の色素が人にとって有益な理由を考察したい。

 

ビタミンCの多い食材と言えば?

/** Geminiが自動生成した概要 **/
風邪予防で話題のビタミンCについて、含有量の多い食材を考察する記事。ビタミンCはアスコルビン酸という活性酸素を除去する還元剤で、ビタミンEと協力して細胞保護を行う。厚生労働省資料やWikipediaを参照し、活性酸素発生との関連から、葉緑素を持つ緑黄色野菜、特に小松菜に着目。光合成とビタミンCの関係性について、栽培への活用可能性を探るヒントとして紹介している。

 

SOY Shopで商品登録時に商品コードの自動生成

/** Geminiが自動生成した概要 **/
SOY Shopで商品登録時に商品コードを手動で入力するのは手間がかかる。特に、商品コードが見積書などに必要ない場合でも、システム上必須となるため、重複しないコードを考える負担が生じる。この問題を解決するため、商品コードの自動生成機能が追加された。管理画面で設定を有効にすると、ランダムなコード、もしくは指定した接頭語と連番を組み合わせたコードが自動で挿入される。これにより、商品登録作業の効率化と時間短縮を実現する。この機能を含むパッケージはsaitodev.coからダウンロード可能。

 

土壌微生物とケイ素

/** Geminiが自動生成した概要 **/
植物が利用しやすいケイ素の在処を探る中で、土壌微生物とケイ素の意外な関係が見つかった。コショウ科植物*Piper guinensis*の根から単離された*Streptomyces*属細菌が生成するシデロフォアは、通常鉄と結合するが、ケイ素にも安定的に結合することが判明した。シデロフォアは鉄キレート剤として知られるが、この発見はケイ素と生物の関わりにおける新たな可能性を示唆する。今後の研究で、この結合が植物のケイ素利用にどう関わるのか、解明が期待される。

 

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

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

 

SOY Shopで誰が操作したか?を把握したい

/** Geminiが自動生成した概要 **/
SOY Shopはネットショップだけでなく実店舗の販売管理にも利用されるようになり、複数店舗で「誰が注文を受け付けたのか」を把握するニーズが高まった。従来、各店舗のアカウントで管理すれば変更履歴に対応者IDが残るが、カート注文では意図したIDが記録されない問題があった。そこで、カート注文にはシステム側で特定の値を挿入する機能と、対応者IDで検索できるプラグインを追加。これにより、ネット注文と実店舗注文のどちらでも、対応者による注文の絞り込みが可能になった。このアップデートは地味ながらも、業務効率化に繋がる重要な改善である。

 

IoTによる施設栽培の自動制御の今後は?

/** Geminiが自動生成した概要 **/
ヤンマーは、ICTを活用した自動運転トラクターを発売しました。GPSと慣性航法システムにより、高精度な位置情報と姿勢制御を実現し、直進や旋回などの自動運転を可能にしています。これにより、オペレーターの負担を軽減し、作業効率の向上と燃料消費の削減に貢献します。また、タブレット端末で走行ルートの作成や作業状況の確認ができ、農作業の省力化・省人化を推進します。さらに、有人監視下での遠隔操作にも対応しており、将来的には完全無人化を目指しています。この自動運転トラクターは、スマート農業の実現に向けた重要な一歩となります。

 

SOY Shopの管理画面からの注文で商品オプションプラグインの見直し

/** Geminiが自動生成した概要 **/
京都農販は、多様なニーズに対応するパイプハウス施工の実績を持つ。カタログでは、強度と耐久性に優れた単棟ハウスから、連棟ハウス、特殊ハウスまで幅広い施工事例を紹介。環境制御技術を駆使した温度・湿度管理、CO2施用、養液栽培システムなど、高品質な農作物生産を支援する設備も提案。 耐候性・耐食性に優れた資材を使用し、積雪や強風対策も万全。施工事例を通して、設計から施工、アフターサービスまで一貫体制によるサポートを提供することで、顧客の農業経営の成功に貢献する姿勢を示している。カタログは、パイプハウス導入を検討する農業者にとって、貴重な情報源となるだろう。

 

SOY Shopで下書き通知プラグインを作成しました

/** Geminiが自動生成した概要 **/
京都農販は、SOY Shopを活用し農業用パイプハウスの見積り作成システムを構築。従来のエクセル作業を1時間程度に短縮、大幅な効率化を実現した。しかし、見積り作成途中での保存・復元に関するUIの課題から、下書き通知プラグインを開発。管理画面の新着ページに下書きの有無を通知し、バックアップ復元へのアクセスを容易にしたことで、作業開始の遅延を解消。 この改善により、マニュアル作成の手間も削減。パイプハウス見積り作成の効率化をさらに促進している。詳細はsaitodev.coで公開されているパッケージから確認可能。京都農販のパイプハウス施工事例は別途PDFで公開されている。

 

東芝ドラム式洗濯乾燥機で洗濯時の水漏れ問題に挑戦

/** Geminiが自動生成した概要 **/
東芝ドラム式洗濯乾燥機TW-Z9500R(W)で、フィルター掃除後も左下から水漏れが発生したため、更なる掃除を実施。フィルター奥のネジを外し、磁石付きプラスドライバーを使用。紐を結んだ細いネジで小さなフィルターを取り出し洗浄。この小さなフィルターの清掃で洗濯機の調子が良くなる。水漏れはフィルター詰まり以外に、この小さなフィルターの汚れも原因となる可能性がある。

 

ショウガの根茎腐敗病とストラメノパイル

/** Geminiが自動生成した概要 **/
ショウガの根茎腐敗病は、卵菌類(フハイカビ)によるもので、根茎が腐敗する。卵菌類はかつて菌類とされていたが、現在ではストラメノパイルという原生生物に分類される。細胞壁にキチンを含まないため、カニ殻肥料によるキチン分解促進や、キチン断片吸収による植物免疫向上といった、菌類対策は効果がない可能性がある。卵菌類はかつて色素体を持っていた藻類であった可能性があり、この情報は防除対策を考える上で重要となる。

 

軟腐病対策としての乳酸菌由来の農薬

/** Geminiが自動生成した概要 **/
乳酸菌由来の農薬は、ハクサイの軟腐病対策に有効である。その作用機序は、乳酸菌自体による抗菌作用ではなく、植物側の抵抗性誘導と軟腐病菌との競合にある。乳酸菌をハクサイに散布すると、植物体内でサリチル酸等の防御機構が活性化される。同時に、葉面での乳酸菌密度の増加は、軟腐病菌との栄養や空間をめぐる競合を引き起こし、病原菌の増殖を抑制する。この農薬はグラム陽性細菌である乳酸菌を利用するため、グラム陰性細菌用の農薬との併用も可能。さらに、乳酸菌の増殖を促進するアミノ酸肥料との併用で効果向上が期待される。

 

Go言語でSearch Consoleの値を取得してみる

/** Geminiが自動生成した概要 **/
Go言語でGoogle Search Console APIから検索クエリデータを取得する方法を解説しています。必要な手順として、Google Cloud ConsoleでSearch Console APIを有効化し、認証情報を作成、Search Console側でユーザー権限を設定します。Goのコードでは、`golang.org/x/oauth2`、`google.golang.org/api/webmasters/v3`ライブラリを使用し、認証情報`secret.json`を用いてSearch Console APIにクエリを送信、過去7日間の検索クエリデータを取得・表示します。

 

Go言語でGoogle Analyticsのデータをチャットワークに送ってみる

/** Geminiが自動生成した概要 **/
Go言語でGoogle AnalyticsのページビューをChatworkに送信するコードを紹介しています。 Google Analytics APIを用いて前日のページビューと日付を取得し、Chatwork APIで指定のルームに投稿します。 コードでは、認証情報、GAのプロファイルID、ChatworkのルームIDとAPIトークンが必要です。 `Data.Ga.Get`メソッドで前日のページビューを取得し、`Dimensions("ga:date")`で日付も取得します。 取得したデータはChatwork APIのPOSTリクエストで送信されます。 実行にはGoogle API Consoleで取得した認証情報が必要です。 具体的な手順やコードの全体はGitHubリポジトリを参照ください。

 

抗ガン剤としてのサナギタケのコルジセピン

/** Geminiが自動生成した概要 **/
サナギタケ由来の物質コルジセピンは、抗腫瘍効果を持つ。コルジセピンはアデノシンと構造が酷似しており、ガン細胞のDNA複製時にアデノシンの代わりに取り込まれる。しかし、コルジセピンはアデノシンとは異なり3'位にヒドロキシ基を持たないため、DNAの二重螺旋構造が不安定化し、ガン細胞の増殖が抑制される。興味深いことに、コルジセピンは正常細胞や有益な微生物には影響を与えない選択的増殖抑制作用を示す。これは、昆虫に寄生するサナギタケが、宿主の防御反応に対抗するために産生した物質であるコルジセピンが、昆虫の細胞増殖のみを阻害するよう進化したためと考えられる。実際に、昆虫に感染したサナギタケの子実体の方が、人工培養されたものよりもコルジセピンを高濃度で含む。

 

SOY CMSのブログで年毎に月別アーカイブのリンクを出力するブログブロックを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログで、長年の運用による月別アーカイブの増加でデザインが崩れる問題を解決するブログブロックが追加されました。従来の縦に長いアーカイブ表示を、年毎に折りたたみ可能な形式で出力します。 新しいブロック`b_block:id="archive_every_year"`は、`cms:id="year"`で年を、`cms:id="archive"`で各月のアーカイブリンクを生成し、年毎に異なるIDを割り当てます。これにより、jQuery等で年毎の折りたたみ表示を実装可能になります。表示例では2018年、2017年、2016年と年ごとに月別アーカイブをまとめて表示しています。新機能はパッケージに含まれ、サイト(https://saitodev.co/soycms/)からダウンロードできます。ただし、古いバージョンからのアップデートでは、ブログページ毎のブロック使用設定でarchive_every_yearを有効にする必要があります。

 

サナギタケの人工培養について知りたい

/** Geminiが自動生成した概要 **/
ヨトウガ対策としてサナギタケの活用を検討する筆者は、サナギタケの培養方法を調べた。専門書によると、培養法は昆虫生体培養、個体培地栽培、液体培地発酵の三種類。中でも個体培地栽培では、穀物などを培地として子実体を収穫し、液体培地発酵では、化学薬品を用いて菌糸体を収穫する。重要なのは、サナギタケの菌糸が生きた昆虫を必要とせず、穀物や糖質があれば増殖できること。落ち葉に胞子がいるという既存情報と合わせ、畑に落ち葉とデンプン質などを供給すれば、サナギタケの菌糸が増殖する可能性があると考え、次は培養条件の把握に進む。

 

SOY CMSのブログの説明でWYSIWYGエディタに対応しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ説明欄がWYSIWYGエディタに対応しました。従来はHTML編集ができなかったブログの説明文を、リッチテキストで記述できるようになりました。 これを実現する「ブログ説明WYSIWYGプラグイン」が新たに開発され、HTMLを許可する`b_block:id="blog_description_raw"`タグも追加されました。このプラグインにより、ブログページの設定画面で、説明文入力欄がWYSIWYGエディタに切り替わり、より表現力豊かなブログ説明を作成できます。 ダウンロードはsaitodev.co/soycms/から可能です。この改良は、以前のカテゴリー詳細表示プラグインへのWYSIWYGエディタ対応に続くものです。

 

JavaScriptのAnalyzerNodeで音に反応して動きを変えてみる

/** Geminiが自動生成した概要 **/
Web Audio APIのAnalyzerNodeを用いて、音声でアニメーションを制御する方法を紹介しています。 円が画面端で跳ね返る単純なアニメーションに、音声の周波数データ解析を組み込みました。 周波数データが一定閾値を超えると、円の進行方向がランダムに変化します。 音が途切れてもデータが残るため、setTimeoutを用いて一定時間反応しないように制御しています。 具体的には、`analyser.getByteFrequencyData(data)`で周波数データを取得し、`data[20]`の値が閾値を超えた場合に円の移動方向を反転させています。

 

JavaScriptのAnalyzerNodeで拾った音の周波数を可視化してみる3

/** Geminiが自動生成した概要 **/
BiquadFilterNodeは、2次セクションを持つデジタルフィルターで、オーディオ信号の変更に使用されます。`type`プロパティでフィルターの種類を指定し、`frequency`でカットオフ周波数または中心周波数を設定します。`Q`プロパティはフィルターの帯域幅を制御します。`gain`は特定のフィルタータイプでのみ使用されます。主なフィルタータイプは、ローパス、ハイパス、バンドパス、バンドストップ、ローシェルフ、ハイシェルフ、ノッチ、オールパスです。ローパスは指定周波数以下の周波数を通過させ、ハイパスは指定周波数以上の周波数を通過させます。バンドパスは特定の周波数帯域を通過させ、バンドストップはその帯域を減衰させます。シェルフフィルターは特定の周波数以上または以下のゲインを調整し、ノッチフィルターは特定の周波数を除去します。オールパスフィルターはすべての周波数を通過させますが、位相を変化させます。

 

JavaScriptのAnalyzerNodeで拾った音の周波数を可視化してみる2

/** Geminiが自動生成した概要 **/
Web Audio APIを用いてマイク入力の音声の周波数を可視化するJavaScriptコード例を紹介している。AnalyzerNodeでFFTを行い、得られた周波数データをcanvasにグラフとして描画する。コードでは、マイクへのアクセス、AudioContextとAnalyserNodeの作成、周波数データの取得と描画処理を解説。実行すると音声入力に応じてリアルタイムに周波数グラフが変化するが、ハウリングが発生しやすい点についても言及している。

 

JavaScriptのAnalyzerNodeで拾った音の周波数を可視化してみる1

/** Geminiが自動生成した概要 **/
この記事は、JavaScriptで音の周波数を可視化する方法を学ぶための導入部分です。音のデジタル化に不可欠なフーリエ変換の概念を、三角関数のグラフを用いて分かりやすく解説しています。sin波、cos波、そしてそれらの合成波のグラフを示し、複雑な波形も三角関数の組み合わせで表現できることを説明。式の係数を配列データとして取り出すことで、音をデジタルデータとして扱えるようになることを示しています。最後に、高速フーリエ変換(FFT)に触れ、次回JavaScriptでの実装を示唆しています。記事には、HTML5 Canvasを使ったsin波を描画するコード例も掲載されています。

 

JavaScriptのWeb Audio APIで録音してみる

/** Geminiが自動生成した概要 **/
Web Audio APIを用いて録音機能を実装した。navigator.getUserMediaでマイクアクセス権を取得し、MediaRecorderで録音、10秒後に停止しsample.wavとしてダウンロードさせる。 現状は問答無用で録音開始・停止する仕様だが、将来的には取得した音の周波数を解析し、音に合わせた処理を実現したい。

 

Androidの内蔵GPSのキャッシュを削除したい

/** Geminiが自動生成した概要 **/
Android内蔵GPSのキャッシュ問題で、オフライン使用時に以前の緯度経度が返ってくる現象が発生。Geolocation APIのキャッシュ設定変更では解決せず、GPS StatusアプリでGPSキャッシュのリセットを試みた。一時的に改善するも、オフラインでの再発を確認。オンラインでGPS Statusアプリを使用する必要があると推測。Soil & Geoロガーのオフライン使用は5回程度が限度と考えられる。

 

Soil & Geoロガーで現在地の土質と地質を調べよう

/** Geminiが自動生成した概要 **/
Android端末で現在地の土壌と地質を調べるWebアプリをHTML5、Service Worker、IndexedDBを用いて開発。GPSで緯度経度を取得し、オフラインでも動作。取得した情報は農研機構の土壌図、産総研の地質図、Googleマップへのリンク生成に利用。現在Android Chromeのみ対応で、ログは10件保持。Service Worker使用による位置情報取得の不具合調査中。開発中のロガー機能の一部公開で、正式版は非公開。機能追加要望や不具合報告は受け付けていない。Githubでソースコード公開中。

 

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

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

 

jQuery.uploadプラグインをjQuery3系でも動作するように修正してみた

/** Geminiが自動生成した概要 **/
jQuery.uploadプラグイン (v1.0.9) をjQuery 3.3.1で使用した際、「a.indexOf is not a function」エラーが発生。原因は`iframe.load()`の廃止。jQuery3以降では`.load()`メソッドがオブジェクトに対して使用できなくなっていた。解決策として、`iframe.on('load', function(){})`と書き換え、`load`イベントを`on`メソッドで登録することで動作するようになった。この修正は後にプルリクエストとして採用され、本家コードに反映済み。

 

メタンハイドレートと火山活動

/** Geminiが自動生成した概要 **/
ペルム紀末から三畳紀初期にかけて、海洋無酸素事変と呼ばれる現象が起きた。石炭紀に大気中の酸素濃度が上昇したが、リグニン分解生物の出現で酸素濃度は低下したものの、石炭の埋蔵により地球全体では酸素は多かったはずだった。しかし、活発な火山活動により、メタンハイドレートを含む堆積岩が溶解し、大量の炭素が放出。地球全体で酸素濃度が急減し、二酸化炭素濃度が急増した。結果、大型単弓類は絶滅したが、酸素利用効率の良い小型爬虫類は生き延び、後の恐竜繁栄に繋がる可能性を秘めていた。この火山活動とメタンハイドレートの関係は、日本科学未来館のdeep scienceでも解説されている。

 

Sigilで電子書籍を作成してみる②

/** Geminiが自動生成した概要 **/
Sigilで電子書籍を作成する手順の解説。見出しはh1〜h3タグでサイズ変更、h1が最大。表紙はツールから追加、目次はツールからHTML目次作成でページとして挿入、目次生成はプレビュー用。メタデータ(タイトル、著者、言語など)はツールから編集。画像はファイル→追加で取り込み、imageフォルダに保存。挿入したい場所にカーソルを置き、ファイル挿入ボタンで画像を選択、本文に挿入できる。サンプル画像は400x300ピクセル。

 

Go言語 + kintone + チャットワークでタスクの自動登録アプリを作ってみる3

/** Geminiが自動生成した概要 **/
Go言語でkintoneとチャットワークを連携し、タスク自動登録アプリを作成する過程の3回目。今回はkintoneから取得したデータをチャットワークにタスク登録する処理を実装。kintoneアプリのラベルフィールド値をタスク名として登録するため、`RegisterTaskOnChatWork`関数を追加。この関数でチャットワークAPIを呼び出し、指定のルームにタスクを登録する。コード実行前にkintoneアプリにテストデータを追加し、実行後チャットワークでタスクが登録されていることを確認。データの絞り込みについては省略。

 

Go言語 + kintone + チャットワークでタスクの自動登録アプリを作ってみる2

/** Geminiが自動生成した概要 **/
kintoneアプリで設定した日付にチャットワークへタスクを自動登録するアプリ開発の続き。今回はGo言語でkintone REST APIから取得したJSONデータを扱うための構造体を設計し、マッピングを行った。取得データは「レコード番号」「月」「ラベル」「日」等を含み、これをGoの構造体へ変換することでデータ操作を可能にした。具体的には`Field`構造体でフィールドの型と値を、`Record`構造体でレコード群を表現し、`json.NewDecoder`を用いてJSONをデコードした。これにより、ラベル名等の値をプログラムから参照できるようになった。次回は取得値を用いてチャットワークへのタスク登録を行う。

 

Go言語 + kintone + チャットワークでタスクの自動登録アプリを作ってみる1

/** Geminiが自動生成した概要 **/
kintoneとチャットワークを連携し、タスクを自動登録するアプリをGo言語で開発する過程を説明。kintoneにアプリを作成し、Go言語でkintoneのREST APIを使用してデータを取得するコードを紹介。APIキー、ID、パスワードを用いて認証し、JSON形式のデータを取得することに成功。今後の課題として、取得したJSONデータをGo言語で扱うための構造体の作成が挙げられている。

 

PHPでチャットワークAPIを介してタスクを登録してみる

/** Geminiが自動生成した概要 **/
PHPでChatwork APIを使ってタスクを登録する方法を解説。メッセージ投稿APIを元に、エンドポイントを`/rooms/{roomId}/tasks`に変更し、パラメータに`body`(タスク内容)と`to_ids`(担当者アカウントID)を追加する。アカウントIDは、自分のメッセージを引用することで`aid=********`の形式で取得できる。コード例では、cURLでPOSTリクエストを送信し、タスクを登録。実行結果、指定のルームにタスクが追加されることを確認。

 

塩類集積土壌でも平然とたたずむスベリヒユ

/** Geminiが自動生成した概要 **/
牛糞堆肥の土壌改良効果に着目し、植物ホルモンの視点からそのメカニズムを考察している。牛糞堆肥は植物ホルモン様物質を生成する微生物の活動を促進し、植物の生育を促す。一方、化学肥料は土壌微生物の多様性を低下させ、植物ホルモン産生を阻害する可能性がある。土壌の物理性改善だけでは植物の健全な生育は難しく、微生物との共生関係が重要となる。牛糞堆肥は土壌微生物の活性化を通じて植物ホルモン様物質の産生を促し、結果として植物の生育を促進、病害抵抗性を高める効果が期待できる。現代農業における化学肥料偏重の風潮に対し、微生物生態系を重視した土壌管理の必要性を提唱している。

 

SOY Inquiryでお問い合わせがあった場合にチャットワークに通知したい

/** Geminiが自動生成した概要 **/
SOY Inquiryでお問い合わせがあった際にChatworkに通知する方法を紹介します。まず、フォーム設置ディレクトリ(例:default)にmail.admin.phpを作成します。このファイルに、Chatwork APIトークン、ルームID、お問い合わせ内容をPOSTするcURLコードを記述します。 APIトークンとルームIDは別途取得が必要です。コード内の`$mailBody[0]`にはお問い合わせ本文が入っています。 設置完了後、テスト送信すると、指定のChatworkルームに「【saitodev.co】お問合わせがありました。」に続いてお問い合わせ内容が通知されます。

 

Go言語で文字列操作

/** Geminiが自動生成した概要 **/
Go言語でHTML内のimgタグのsrc属性を書き換える方法をコード例を用いて説明しています。`strings.Replace`関数を用いて`alt=""`属性と不要な `/` を除去し、`regexp.MustCompile`と`ReplaceAllString`を用いて`/site/files[数字]/`部分を`./files/`に置換しています。具体的には、まず`alt=""`を空文字列に、`/>`を`>`に置換します。そして正規表現`/site/files[0-9]*?/`にマッチする部分を`./files/`に置換することで、画像パスを相対パスに変更しています。

 

Go言語で特定のサイトの複数の画像を取得する

/** Geminiが自動生成した概要 **/
Go言語で特定サイトから複数画像を取得する処理を解説しています。まず、対象ページのHTMLを取得し、正規表現を用いて`img`タグの`src`属性から画像パスを抽出します。抽出したパスは`/site/files`を含むものだけをスライスに格納します。次に、スライス内の各パスに対して、サイトのドメインを付加して完全なURLを生成し、`http.Get`で画像データを取得します。取得したデータは`ioutil.ReadAll`でバイト型に変換後、ファイル名を取得するためにパスの最後の`/`以降の文字列をファイル名として新規ファイルを作成し、画像データを書き込み保存します。

 

複合機とGoogleドライブを連携して、出先でFAXの内容を確認する

/** Geminiが自動生成した概要 **/
複合機のFAX受信をGoogleドライブと連携し、ChatWorkで通知する仕組みを紹介。複合機がFAXをPDFでGoogleドライブに共有する機能を活用し、Google Apps ScriptでPDFを特定フォルダに移動、ファイル名と共にChatWorkへ通知する。これにより、外出先でもFAX内容を即時確認でき、紙の無駄や転送の手間を省ける。5分間隔でスクリプトを実行することで、ほぼリアルタイムな通知を実現。設定には、複合機側のGoogleドライブ連携と、スクリプト内のChatWork API設定が必要。

 

Go言語でHTMLのイメージタグから画像を取得

/** Geminiが自動生成した概要 **/
Go言語でHTMLのimgタグから画像を取得し、ファイル保存するコードの説明です。正規表現でsrc属性値を取得し、ファイル名を抽出し、URLを完成させます。HTTP GETリクエストで画像データを取得し、ファイルを作成して書き込みます。具体的な例として、`<img src="/site/files10/P5100314.JPG" ...>`から`P5100314.JPG`という名前で画像ファイルを保存する手順を解説しています。 コードは`https://saitodev.co`をベースURLとして使用し、`ioutil.ReadAll`でレスポンスボディ全体を読み込み、`os.Create`と`file.Write`でファイルに書き込んでいます。

 

比叡山山頂から大文字山を見る

/** Geminiが自動生成した概要 **/
ブラタモリ京都・東山編で比叡山と大文字山の成り立ちを知り、比叡山山頂のガーデンミュージアム比叡の展望台から大文字山を眺めた。両山は9000万年前のマグマ活動で形成された花崗岩とホルンフェルスから成る。大文字山を望むことで花崗岩の巨大さを体感し、山の風化による変化を想像しやすくなった。比叡山山頂からの景色は、地質学的スケールの大きさを感じさせる貴重な体験となった。

 

一般展着剤の界面活性

/** Geminiが自動生成した概要 **/
展着剤は界面活性を利用し、薬剤を葉面に保持する。界面活性物質は疎水性と親水性の両方の性質を持ち、水中では疎水性部分を内側にしたミセルを形成する。この疎水性部分が葉面の油分やクチクラ層と親和することで、葉面に親水性の膜を作り、水溶性の薬剤を留める。しかし、膜の端がクチクラと接触している点に疑問が残る。クチクラ層は水を弾くだけでなく、有用成分を選択的に透過する可能性があり、膜の端と結合できる箇所が存在するかもしれない。このため、木酢液に洗剤(界面活性剤)を添加する意見が出てくる。

 

チャットワークとGoogle Apps Scriptで音声入力で投稿してみる

/** Geminiが自動生成した概要 **/
Googleドキュメントの音声入力とGoogle Apps Scriptを連携させ、チャットワークへの投稿を音声で行う方法を紹介。 「チャットワーク(投稿内容)終了」と話しかけると、内容がチャットワークに送信されるスクリプトを作成。1分毎にスクリプトが実行され、ドキュメントの内容をチェック、投稿後ドキュメントはクリアされる。APIトークン、ルームIDの設定が必要。音声入力はドキュメントのツールから利用可能。Androidスマホでは音声入力の設定を事前に確認する必要がある。この方法で、両手が塞がっている状況でもチャットワークに投稿可能。実用時はタスク登録ルールやToの指定が推奨される。

 

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の連携で業務改善を実現できる。

 

PHPでチャットワークAPIを介してメッセージを投稿してみる

/** Geminiが自動生成した概要 **/
ChatWork APIを使用してPHPからマイチャットに投稿するスクリプトを作成。投稿は成功し、マイチャットに「PHPからテスト投稿」のメッセージが送信された。 また、ChatWorkでは電話代行サービスを開始しており、電話対応を減らす取り組みが進んでいる。仕事における電話が嫌煙される傾向が高まっている。

 

SOY ShopでTrackingmore連携を試作中

/** Geminiが自動生成した概要 **/
SOY Shopと荷物の追跡サービスTrackingmoreを連携するプラグインが作成されました。このプラグインにより、代行倉庫サービスを利用して出荷された商品の発送状況をリアルタイムで確認できるようになります。ただし、現時点では連続でAPIを叩く制限があるため、トラッキング件数の制限や実行間隔の調整が必要です。今後、Webhookを使用した配送状況確認機能が追加される予定です。この機能により、サーバのリソース占有が軽減されることが期待されています。利用に際しては、課題点に留意してください。

 

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

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

 

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

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

 

地衣類という菌たちの巧みな生き方

/** Geminiが自動生成した概要 **/
地衣類は、光合成を行うシアノバクテリアまたは緑藻と共生している菌類です。地衣類は、菌が光合成生物に必要な栄養を提供し、光合成生物が合成した産物を菌に返します。この共生関係により、地衣類は木の幹などの栄養分に乏しい環境でも生存できます。 地衣類の光合成にはマンガンが必要ですが、地衣類は宿主からマンガンを吸収していると考えられます。これは、死んだ幹に残った微量元素を活用している可能性を示唆しています。つまり、地衣類は木の残りを再利用することで、山の生態系における栄養循環に貢献している可能性があります。

 

プラグイン毎の詳細画面へのリンクの拡張ポイントsoyshop.info.php

/** Geminiが自動生成した概要 **/
soyshop.admin.top.php拡張ポイントは、SOY Shop管理画面の新着情報欄にカスタム項目を追加できます。`getLink()`メソッドでリンクURL、`getTitle()`でタイトル、`getContent()`で本文、`getIcon()`でアイコンURLを返却することで項目が生成されます。`getLink()`では`SOY2PageController::createLink()`を使うことで環境に依存しないURLを作成可能です。例えば、特定の注文一覧ページへのリンクを追加する場合、`getLink()`で`SOY2PageController::createLink("Order.List?search[order_status]=5")`のように指定することで、注文ステータスが「発送済み」の注文一覧ページへのリンクを生成できます。

 

Jenkinsらをバージョンアップした後、エラーで動かなくなった時の対処

/** Geminiが自動生成した概要 **/
Jenkinsの動作が遅くなった場合、まずジョブの実行履歴を確認し、遅いジョブを特定します。次に、そのジョブの設定やビルド手順を見直し、不要な処理やリソースを消費する操作がないか確認します。 Jenkins自体の負荷が高い場合は、プラグインの無効化、古いビルドの削除、ディスク容量の確保などを行います。それでも改善しない場合は、Jenkinsの再起動や、リソースの増強を検討します。 パフォーマンス監視ツールを利用し、CPU、メモリ、ディスクI/Oなどを監視することで、ボトルネックの特定に役立ちます。

 

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 Shopの伝票番号記録プラグインで複数個口対応しました

/** Geminiが自動生成した概要 **/
SOY Shopの伝票番号記録プラグインが複数個口配送に対応しました。以前作成したプラグインでは伝票番号を1つしか登録できませんでしたが、複数枚の伝票が必要なケースに対応するため、カンマ区切りで複数登録できるよう改良されました。 商品の大きさや段階的配送などで複数の伝票番号が発生する場合に便利です。現状はどの伝票番号がどの商品に対応するかの詳細管理まではできませんが、複数伝票番号の記録を実現しました。改良版プラグインはsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY CMSのカテゴリー詳細表示プラグインでWYSIWYGエディタに対応しました

/** Geminiが自動生成した概要 **/
SOY CMSのカテゴリー詳細表示プラグインがアップデートされ、WYSIWYGエディタ(TinyMCE)に対応しました。ユーザーからの要望に応え、ラベルの詳細編集画面でHTMLタグだけでなく、画像や動画も手軽に挿入できるようになりました。プラグインの詳細設定でWYSIWYGエディタの使用をチェックすることで有効化できます。このアップデートにより、よりリッチなコンテンツをカテゴリー詳細に表示することが可能になります。最新のパッケージはsaitodev.co/soycms/からダウンロードできます。

 

ホルモンのように作用するペプチド、システミン

/** Geminiが自動生成した概要 **/
植物の免疫機構において、ペプチドの一種であるシステミンがホルモン様の役割を果たす。傷害を受けた植物はシステミンを合成し、他の器官へ輸送する。システミンを受容した細胞は防御ホルモンであるジャスモン酸を合成し、殺傷菌に対する防御応答を開始する。これは、生きた細胞に寄生する菌に対するサリチル酸とは異なる機構である。システミンや防御タンパク質の合成にはアミノ酸が利用され、ジャスモン酸合成にもアミノ酸から作られる酵素が関与するため、植物の免疫においてアミノ酸は重要な役割を担っていると言える。

 

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より精度は高い。

 

Google Apps ScriptのHTML ServiceでGoogle Calendarの予定を取得してみる

/** Geminiが自動生成した概要 **/
社会人・学生向けプログラミング教室で、Googleスプレッドシートの拡張機能開発に関する勉強会が開催されました。参加者はGoogle Apps Scriptを用いて、スプレッドシートの操作やWeb API連携を学ぶことで、業務効率化やデータ分析に役立つ実践的なスキルを習得しました。具体的には、HTML ServiceとSpreadsheet Serviceを活用し、スプレッドシートデータの取得・表示、カスタムメニューの追加、外部サービスとの連携などを実践。参加者からは、日々の業務に活かせる具体的な知識を得られたと好評を得ました。さらに、Google Apps Scriptの基礎から応用までを体系的に学べるため、プログラミング初心者でも安心して参加できたという声も寄せられました。

 

酸素供給剤を試した方から

/** Geminiが自動生成した概要 **/
京都農販のTwitterで、酸素供給剤(過酸化石灰)を使った九条ネギのハウス栽培で成長に大きな差が出たことが報告された。酸素供給剤は水と反応し、消石灰と過酸化水素を発生させる。植物は過酸化水素からカタラーゼ反応で酸素を取り込み、同時に発生した消石灰は土壌pHを上昇させ、一部の微生物を殺菌する。これにより生育環境が改善され、肥料の吸収効率も高まる。酸素供給剤は土壌中で徐々に効果を発揮するため、大雨など病気になりやすい時期の予防にもなる。ただし、石灰であるため土壌中の石灰量に注意が必要で、過剰施用はカルシウム過剰による欠乏を引き起こす可能性があるため、pH調整には炭酸苦土などを代替利用すると良い。

 

東芝ドラム式洗濯乾燥機の乾燥の仕上がりが落ちてきたので、ホコリ取りに挑戦

/** Geminiが自動生成した概要 **/
東芝ドラム式洗濯乾燥機(TW-Z9500R)の乾燥機能が低下したため、3万円の修理を検討していたが、排気口のホコリ詰まりが原因と推測し、フレキシスネイクSPで清掃を試みた。 東急ハンズで購入したフレキシスネイクSPを排気口に挿入し回転させると、湿ったホコリが大量に取れた。 数回繰り返した後、洗濯乾燥を行ったところ、乾燥機能が回復した。 フレキシスネイクSPは排気口を傷つけることなくホコリを除去でき、高額な修理費用をかけずに問題を解決できた。

 

防御の植物ホルモン、サリチル酸

/** Geminiが自動生成した概要 **/
植物ホルモンのサリチル酸は、病原菌感染時に植物体内で合成され、免疫応答を誘導するシグナル分子として働く。サリチル酸はフェニルアラニンまたはコリスミ酸から生合成される。病原菌侵入時に増加し、防御機構を活性化する酵素群の合成を促す。また、メチル化により揮発性となり、天敵を誘引したり、近隣植物の免疫を活性化させる可能性も示唆されている。この作用はプラントアクティベーターという農薬にも応用されている。

 

Googleドキュメントで画像ファイルから文字列を抜き取ってみる

/** Geminiが自動生成した概要 **/
GoogleドキュメントのOCR機能を使って画像ファイルから文字列を抽出する方法を紹介しています。手書きの名前が書かれた画像ファイルをGoogleドライブにアップロードし、Googleドキュメントで開くと、画像の下に文字列が抽出されます。著者は元々オープンソースのOCRライブラリを探しており、NHocrを試しましたが精度が及ばなかったため、GoogleドキュメントのOCR機能の精度の高さに驚いています。GoogleドキュメントがNHocrを組み込んでいる可能性や、GoogleのOCR APIの利用についても言及しています。

 

さくらVPS上でSeleniumとphp-webdriverを利用する

/** Geminiが自動生成した概要 **/
さくらVPS(Ubuntu 16.04)にSeleniumとphp-webdriverによるUIテスト環境を構築する方法。Selenium実行には仮想デスクトップ(Xvfb)とChromiumが必要で、手順はApache/PHP設定、Java8、Selenium、Xvfb、Chromium、ChromeDriverインストール、そしてSelenium起動スクリプト(load.sh)作成。load.shはXvfbとSeleniumを同時に起動し、ブラウザは仮想デスクトップ上で動作する。動作確認は http://(VPSのIPアドレス):4444 で行う。Jenkinsの設定とload.shの自動起動設定は今後の課題。

 

Seleniumとphp-webdriverでUIテストの自動化

/** Geminiが自動生成した概要 **/
Ubuntu 19.10のSnap版Chromiumでは、Seleniumのテスト自動化が実行できない場合があります。これは、Snapのセキュリティ制限により、SeleniumがChromiumを直接操作できないことが原因です。解決策は、ChromiumをSnap版ではなく、aptでインストールしたバージョンを使用することです。まず、`snap remove chromium`でSnap版を削除し、`sudo apt install chromium-browser`でapt版をインストールします。さらに、ChromeドライバーのバージョンとChromiumのバージョンが互換性があることを確認してください。これらの手順により、SeleniumはChromiumを正常に操作できるようになり、テスト自動化が実行可能になります。

 

SOY ShopでPAY.JPクレジットカード支払いモジュールを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のPAY.JPクレジットカード支払いモジュールが開発され、無料で簡単にクレジットカード決済を導入できるようになった。PAY.JPは初期費用・月額固定費不要のプランもあり、導入障壁が低い。モジュールの利用には、PAY.JPでアカウント作成後、APIキーを取得し、SOY Shop管理画面のモジュール設定に入力する。設定完了後、購入画面でクレジットカード支払いが選択可能になる。カード情報非通過にも対応済み。詳細はサイト(saitodev.co/soycms/soyshop/)で確認できる。定期課金モジュールも提供されている。

 

Node.js製のアプリをforeverで永続化する

/** Geminiが自動生成した概要 **/
Node.jsアプリをサーバ再起動後も自動的に起動し、かつ実行中にエラーで停止しないようにする方法。foreverライブラリを利用し、`npm install -g forever`でインストール。`forever start /path/to/app.js`でアプリを起動・永続化。`@reboot /usr/local/bin/forever start /path/to/app.js`をcronに登録することで、サーバ再起動時に自動的にアプリが起動するようになる。

 

土壌分析アプリSoil3 on SOY Shop

/** Geminiが自動生成した概要 **/
長野県栄村小滝集落は、標高が高く冬季の積雪が多い地域。良質な米作りには土壌の理解が不可欠で、土壌図インベントリーとシームレス地質図を活用。インベントリーからは「黒ボク土」と判明し、保水性が高い反面、養分保持力が低い特性が明らかに。地質図からは、付近に蛇紋岩が多く分布し、土壌が弱アルカリ性であると推測。これらの情報から、小滝集落の土壌は水はけがよく、ミネラル豊富な一方、窒素が流亡しやすい特徴を持つと結論づけ、適切な施肥設計の必要性を示唆した。実際、小滝集落の土壌はpH7.0~7.2を示し、分析結果と合致した。この事例は、公開データを用いた土壌分析の有効性を示している。

 

Socket.IOのチャットアプリでXSS対策

/** Geminiが自動生成した概要 **/
Socket.IOで作成したチャットアプリでXSS脆弱性対策を実施した。HTMLタグを入力するとエスケープされずに表示されてしまうため、`xss-filters`ライブラリを導入。`npm install xss-filters`でインストール後、サーバーサイドのメッセージ送信部分で`xssFilters.inHTMLData()`を用いて送信メッセージをフィルターした。その結果、HTMLタグがエスケープされて表示されるようになり、XSS攻撃を防ぐことができた。

 

Socket.IOで個別チャットを作りたい後編

/** Geminiが自動生成した概要 **/
Socket.IOで個別チャットを実現するため、namespacesを利用した検証が行われた。サーバー側では"hoge"と"huga"二つのnamespacesを作成し、クライアント側ではランダムにどちらかに接続するよう変更。結果、同じnamespaceに接続したクライアント間でリアルタイムなチャットが可能になった。namespacesによる個別チャットの可能性が示されたが、roomによる実現方法や動的なグループチャット作成機能の課題が残されている。

 

Socket.IOで個別チャットを作りたい前編

/** Geminiが自動生成した概要 **/
Socket.IOで個別チャットを作るための第一段階として、NamespacesとRoomsの概念を導入した。サーバー側(server.js)では、`io.of('/chat')`でchatというnamespaceを作成し、接続時に`socket.join("default")`で全ユーザーを"default" roomに所属させた。イベント発信時は`chatNS.to("roomName").emit()`を使用することでroom内限定の通信を実現。クライアント側(index.html)は、`io.connect("http://localhost:8080/chat")`のように接続URLにnamespaceを指定することで変更完了。これにより、複数ユーザーが同じチャットルームに参加できるようになったが、まだユーザー限定チャットにはなっていない。

 

Socket.IOのチャットアプリで誰が入力中なのかを出力したい

/** Geminiが自動生成した概要 **/
Node.jsとSocket.IOで作ったチャットアプリに入力中表示を追加する方法を紹介しています。server.jsでは`start typing`と`stop typing`イベントを定義し、`socket.broadcast.emit()`で自身以外の全ユーザーに通知します。`index.html`では、これらのイベントをリスニングし、入力開始時に`start typing`イベントを発火、入力終了・送信時に`stop typing`イベントを発火します。受信したイベントに応じて、画面に「〇〇が入力中」と表示・非表示を切り替えます。これにより、リアルタイムな入力状況を共有できるチャットアプリが実現できます。

 

Node.jsとSocket.IOでリアルタイムのチャットアプリを作ってみる

/** Geminiが自動生成した概要 **/
Node.jsとSocket.IOを用いたチャットアプリ構築後、Let's Encryptで常時SSL化する方法を解説。自己署名証明書ではブラウザ警告が出るため、無料のLet's Encryptを利用。Certbotによる証明書取得手順、Nginxの設定変更(SSL設定追加、httpトラフィックのhttpsリダイレクト)を説明。 Socket.IOのサーバー側コード修正では、httpsオプションを追加し、取得した証明書と秘密鍵を指定。これにより、チャットアプリがセキュアなhttps接続で利用可能になる。

 

Apache2.4.27の標準設定ではHTTP/2が使用できなくなったのでその対応

/** Geminiが自動生成した概要 **/
Apache 2.4.27にアップグレード後、prefork設定ではHTTP/2が使えなくなったため、workerに変更した事例。preforkではHTTP/2が無効化される仕様変更が原因。Ubuntu 16.04環境で、PHPをFastCGI(php7.0-fpm)にし、`a2dismod`と`a2enmod`コマンドでMPMをworkerに切り替えた。`apachectl -V`で確認後、ブラウザでHTTP/2が有効化されたことを確認。ただし、画像はキャッシュの影響でHTTP/1.1だったが、キャッシュクリアで解決した。

 

ApacheサーバでBrotliを使用してみた

/** Geminiが自動生成した概要 **/
常時SSL化はSEO上効果がある。GoogleはHTTPSをランキングシグナルとして使用しており、サイトのセキュリティ向上はユーザー体験の向上に繋がるため、間接的にSEO効果が見込める。ただし、HTTPS化自体が劇的なランキング上昇をもたらすわけではない。相対的にHTTPサイトより優位になる程度の影響と考えられる。また、サイト表示速度の向上も期待できるが、適切な設定が必要。常時SSL化は必須事項となりつつあり、SEO対策としてだけでなく、セキュリティ向上とユーザーへの信頼感醸成という観点からも重要である。

 

サイトを公開した直後にWordPressの管理画面ログインがあるか探られた

/** Geminiが自動生成した概要 **/
SOY CMSに総当り攻撃を仕掛けてみる。その4では、パスワードリスト攻撃への対策を検証しています。辞書攻撃ツールを使い、短いパスワードやありがちなパスワードを設定した場合、数秒で突破される危険性を示しています。対策として、パスワードの最低文字数を10文字以上に設定し、ランダムな文字列を使うことを推奨。ブルートフォース攻撃対策として、ログイン試行回数に制限を設けるプラグイン「Limit Login Attempts Reloaded」を紹介し、複数回のログイン失敗でアカウントをロックする方法や、一時的にIPアドレスをブロックする方法の効果を解説しています。また、WAF(Web Application Firewall)の利用も推奨し、既知の攻撃パターンをブロックすることでサーバー負荷を軽減できることを説明しています。

 

獣害対策用の鉄壁フェンスを作る前に

/** Geminiが自動生成した概要 **/
イノシシのフェンス突破対策として、フェンス下部の掘り返しを防ぐ方法を検証した。イノシシはフェンスの弱い箇所を探り、土を掘って持ち上げようとする習性がある。そこで、フェンス支柱の中間地点、弱点となる箇所の両側に50cmの単管パイプを40cmの深さで垂直に打ち込んだ。翌日、単管パイプ周辺は掘り返されていたものの、深さは10cm程度で、フェンスの持ち上げも確認されなかった。このことから、単管パイプ設置は有効な対策と判断。さらに、フェンス中央にも単管パイプを打ち込み、フェンス下部に棒をくくりつけることで、イノシシの突破試行自体を抑制できることが分かった。なお、フェンスにネットを被せているのはヌートリア対策である。

 

SOY CMSのブログで地図アプリを作ろう3

/** Geminiが自動生成した概要 **/
SOY CMSのブログで地図アプリを作成する過程の記事です。前回はブログトップページに地図と詳細ページへのリンク付きインフォウィンドウを表示しました。今回は、詳細ページにも地図とGoogleマップへのリンクを表示する方法を解説しています。記事には、詳細ページに埋め込むHTMLコードが掲載されています。`cms:id="title_plain"`、`cms:id="lat"`、`cms:id="lng"`を使って記事のタイトル、緯度、経度を埋め込み、JavaScriptで地図を表示、Googleマップへのリンクを生成しています。これにより、詳細ページでも店舗の位置情報が確認できるようになりました。

 

SOY CMSで記事編集中にブラウザを閉じる際にアラートを出す

/** Geminiが自動生成した概要 **/
SOY CMSの記事編集中にブラウザを閉じると、入力内容が失われるのを防ぐため、確認アラートを表示するプラグインが開発されました。フォーラムで要望があり、記事タイトル編集中に限られますが「本当に閉じますか?」とアラートを表示します。下書き自動保存と併用すると効果的です。プラグインはフォーラム、またはGitHubで配布されています。改良版はGitHubにあり、`alert.js`を修正すれば他の箇所にも対応可能。修正後はフォーラムで共有が推奨されています。

 

SOY CMSのブログで地図アプリを作ろう1

/** Geminiが自動生成した概要 **/
Google Maps APIを用いてSOY CMSのブログに地図アプリを作成する手順の第一段階を解説した記事です。まずGoogle API ConsoleでAPIキーを取得し、SOY CMSにカスタムフィールド「lat(緯度)」と「lng(経度)」を追加します。ブログページを作成し、提供されたHTMLテンプレートを貼り付け、地図の中心座標とズームレベルを調整します。座標はGoogle Mapsで場所を検索し、右クリックメニューの「この場所について」から取得できます。最後に、ブログ記事を作成し、タイトルと本文に加え、カスタムフィールドに取得した緯度経度を入力して公開します。これにより、ブログトップの地図上にマーカーが追加され、訪問場所を視覚的に表示できます。次記事ではマーカーに詳細情報を表示する機能を追加する予定です。

 

元CMSの開発として、CMSの過剰カスタマイズは止めた方が良いと伝えたい

/** Geminiが自動生成した概要 **/
CMS開発経験者として、CMSの過剰カスタマイズは避けるべきだと主張しています。標準機能で不足する場合はプラグイン活用を推奨し、どうしてもカスタマイズが必要なら汎用化し開発元に取り込んでもらうべきです。 成功するネットショップは過剰なカスタマイズを避け、標準機能のバージョンアップによる恩恵を最大限に活用しています。HTMLやPhotoshopを使いこなし、小規模な修正を繰り返すことで魅力的なLPページを作成し売上向上を実現しています。 カスタマイズ依頼の際は、標準機能への実装可能性や他サイトでの汎用性を重視し、CMSカスタマイズが難しい場合はAPI連携可能な外部サービスを検討します。この柔軟な姿勢がサイトの急成長を支えています。

 

ラウンドアップという除草剤の今後は?

/** Geminiが自動生成した概要 **/
ラウンドアップの有効成分グリホサートは、植物の必須アミノ酸合成経路を阻害することで除草効果を発揮する。しかし、論文によればグリホサートは人体において重要な酵素シトクロムP450の働きを抑制し、アルツハイマー病、癌、糖尿病などのリスクを高める可能性がある。シトクロムP450は解毒作用やステロイド合成に関与し、植物にも存在する。仮に植物のシトクロムP450がグリホサートによって阻害されれば、植物は一時的に無防備な状態になり、ダメージを受ける可能性がある。イネではシトクロムP450の候補遺伝子が多数発見されているものの、機能は未解明な部分が多く、グリホサートの影響を断言できない。そのため、分解が早くてもラウンドアップの安全性を断定するのは難しい。

 

葉は展開する毎に下の葉の位置から微妙にずれる

/** Geminiが自動生成した概要 **/
植物の葉は、光を効率的に受けるために、重なりを避けながら巧みに配置される。葉序と呼ばれる規則があり、例えばキャベツやハクサイは144度ずつ葉をつける2/5葉序を持つ。Pythonでこの配置を可視化すると、5枚で円を2周する様子がわかる。しかし、単純な144度回転では葉が重なってしまうため、実際には茎の捻れ(+5度)が加わり、新しい葉は古い葉を避けて展開する。このモデルを葉の数(N)を増やしてシミュレーションすると、N=20や30では実際のロゼット状の植物の配置に近づく。

 

オイラーの公式をガウス平面に表示してみた

/** Geminiが自動生成した概要 **/
オイラーの公式e^(θi) = cosθ + i*sinθ を検証するために、θに1〜360を代入し、Pythonでガウス平面にプロットした。右辺をプロットすると半径1の円が描かれた。同様に左辺e^(θi)をプロットしても同じ円が得られた。オイラーは右辺を4回微分することで左辺を発見したが、こうして視覚的に確認すると、その発見の凄さが改めて実感できる。

 

ガウス平面上に描写した模様を半分にスケーリングして回転させる

/** Geminiが自動生成した概要 **/
画像を複素数の集合としてガウス平面に描画し、π/4回転かつ1/2スケーリングを行う方法について記述されています。スケーリングは複素数を1/2倍、回転はe^(θi)を乗算することで実現します。θにπ/4を代入することで45度回転します。オイラーの公式e^(θi) = cosθ + i*sinθに基づき、Pythonの内包表記を用いて効率的に計算しています。最終的に、スケーリングと回転を組み合わせた処理を行い、目的の画像変換を実現しています。

 

SOY Shopで伝票番号記録プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのドットインパクトプリンタ伝票印刷プラグインに、伝票番号記録機能が追加されました。管理画面の注文詳細画面に伝票番号入力フォームが追加され、入力した番号は注文履歴に記録されます。記録された伝票番号は、支払確認メールや配送確認メールに自動挿入されるため、顧客へのスムーズな情報伝達に役立ちます。この機能追加を含む最新パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopでドットインパクトプリンタで伝票印刷に対応しました

/** Geminiが自動生成した概要 **/
SOY Shop用ドットインパクトプリンタ伝票印刷プラグインが開発されました。管理画面の注文一覧から印刷したい注文を検索し、条件を設定して実行すると、連続印刷用ページが出力されます。1ページ1伝票で、PDF保存すればドットインパクトプリンタで使用可能です。現在はクロネコヤマトのみ対応。代引きの場合は宅配便コレクトサービス伝票、それ以外は発払伝票として背景が変化します。プラグインはGitHub上のパッケージ(https://github.com/inunosinsi/soycms/tree/master/package)に同梱されています。

 

SOY Shopで即日配送モジュールを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの即日配送モジュールは、注文後すぐに発送手続きを行うネットショップ向けに開発されました。カート画面で即日配送を選択可能にし、サイト全体に説明文を表示できます。営業時間外への対応として、営業日カレンダープラグインと連携し、定休日や営業時間の設定が可能です。さらに、午後の注文で翌日到着になる場合、到着予定日を自動的に調整する機能も備えています。このモジュールはGitHub上のinunosinsi/soycmsパッケージに含まれています。

 

SOY Shopの標準配送モジュールにお届け日の指定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの標準配送モジュールに待望のお届け日指定機能が追加されました。従来は個別対応でしたが、今回標準機能化。営業日カレンダープラグインと連携し、定休日や連休を考慮したお届け日候補を表示。設定の肥大化を避けつつ、柔軟な配送設定を実現しています。指定可能期間や連休明けからの換算表示など、ユーザーフレンドリーな設計です。この機能追加により、今後の機能拡張にも期待が高まります。パッケージはGitHubで公開中。

 

SOY Shopの統計プラグインで注文件数が多くなったサイトでも快適に表示できるように修正しました

/** Geminiが自動生成した概要 **/
SOY Shopの統計プラグインの表示速度が改善されました。注文件数の多いサイトでは、統計計算に時間がかかっていましたが、原因は注文一覧ページの無駄な二重検索処理でした。統計処理時に、一覧用の検索結果を破棄して再度統計用の検索を行っていたため、メモリを浪費し、計算時間が増大していました。この無駄な処理を修正することで、表示速度が大幅に向上しました。修正版はフォーラムまたはGitHubのパッケージ置き場から入手できます。

 

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

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

 

WordPressのプラグインを作ってみた1

/** Geminiが自動生成した概要 **/
WordPressプラグイン作成の入門記事。REST APIサービスのWordPress対応のため、プラグイン「hoge_world」を作成する例を紹介。プラグインファイル(/wp-content/plugins/hoge_world/hoge_world.php)を作成し、コメントと`HogeWorld::call()`関数を定義。管理画面のプラグイン一覧に表示され、テーマファイル(例:sidebar.php)に`<?php HogeWorld::call(); ?>`を記述することで「hoge worldだー!」と表示されることを示している。

 

SOY Shopの非同期カートボタンプラグインでボタンを押した後にフキダシ表示を追加してみた

/** Geminiが自動生成した概要 **/
SOY Shopの非同期カートボタンプラグインに、商品追加時の視認性向上のため、吹き出し表示機能が追加されました。従来、縦長のページではカート投入後の変化が分かりづらいという課題がありました。今回のアップデートで、ボタン押下直後にカートの中身を表示する吹き出しが現れ、ユーザーは商品が正しくカートに追加されたことを確認できます。吹き出しの位置はボタンの座標から計算され、上部に表示されるよう設計されています。ただし、サンプル数が少ないため、表示の不具合発生時は連絡が推奨されています。プラグインのダウンロードと詳細はSOY CMSフォーラムで確認可能です。

 

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

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

 

山の岩は最終的に粘土に行き着く

/** Geminiが自動生成した概要 **/
粘土は、粒子の大きさで定義される一次鉱物が風化した二次鉱物です。脂肪酸のように疎水性と親水性を持ち、水中でコロイドを形成します。その形状はハロイサイトのような中空管状や、モンモリロナイト・バーミキュライトのような薄板状など多様です。粘土は粒子が小さいですが、必ずしも土を重くするわけではありません。

 

SOY Shopの商品規格プラグインでセール価格の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品規格プラグインがアップデートされ、商品規格ごとにセール価格を設定できるようになった。従来の在庫数・価格設定に加え、セール価格も個別に設定可能。適用するには、親商品の詳細画面で「セール中」をチェックする必要がある。これにより、紐づく全ての規格にもセール価格が反映される。このアップデートにより、商品規格ごとに柔軟な価格設定が可能になり、販売戦略の幅が広がる。機能の詳細はSOY CMSフォーラムで確認できる。

 

SOY Shopのマイページでログインの有無でテンプレートを分ける機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページで、ログイン有無によるテンプレート切り替え機能が追加されました。従来はログイン前後で同じテンプレートを使用していましたが、ログイン前は1カラム、ログイン後は2カラムといったレイアウト変更の要望に応えるため、ログイン時に別のテンプレートを読み込む仕組みが実装されました。 具体的には、`mypage.html` というテンプレートを使用している場合、ログイン時は `mypage_no_login.html` と `mypage_no_login.ini` があればそちらが優先的に使用されます。これらのファイルは管理画面からは生成できず、手動でサーバーにアップロードする必要があります。機能の詳細はSOY CMSフォーラムとGitHubリポジトリで公開されています。

 

SOY Shopのメールビルダから出力される商品一覧に並び順設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのメールビルダープラグインに、注文メールの商品一覧の並び順設定機能が追加されました。 従来、自動出力される商品一覧の並び順は固定でしたが、このアップデートにより変更が可能になります。 メールビルダーの管理画面から、商品名、商品コード、数量、価格の各項目を昇順/降順に指定することで、希望の並び順で商品一覧を出力できます。 ダウンロードと詳細はSOY CMSフォーラムにて提供されています。 この機能により、注文メールの可読性向上や業務効率化に繋がります。

 

SOY CMSの画像のリサイズでJPEGのロスレス圧縮を追加した

/** Geminiが自動生成した概要 **/
SOY CMSでサーバサイド画像リサイズを実装後、PageSpeed Insightsで「ロスレス圧縮で容量削減可能」と指摘されたため、jpegoptimを導入した。Ubuntuに`sudo apt-get install jpegoptim`でインストール後、`/CMSインストールディレクトリ/common/im.inc.php`の`imagejpeg`実行後に`jpegoptim $savepath`を実行するよう改修。これにより、ロスレス圧縮の指摘が解消され、PageSpeed Insightsのモバイルスコアが93から96に向上した。変更コードはフォーラムで配布されている。

 

SOY CMSの画像のリサイズ時にPNGの透過を無効にする

/** Geminiが自動生成した概要 **/
SOY CMSでPNG画像をリサイズすると、透過部分が黒くなる問題が発生。これはGDライブラリの画像リサイズ処理がPNGのアルファチャンネルを正しく扱わないためでした。 `/common/im.inc.php`内のPNG処理に`imagealphablending($dstImage, false);`と`imagesavealpha($dstImage, true);`を追加することで、透過を保持したままリサイズが可能になります。この修正はGDライブラリ使用時のみ有効です。

 

SOY Shopで購入回数属性自動振り分けプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのメールマガジン機能では、購入回数による絞り込み送信ができないため、顧客属性を活用する必要がある。しかし、手動設定は顧客数が多いと手間がかかる。そこで、購入回数に応じて自動で属性を振り分けるプラグインが開発された。管理画面で回数と属性名を設定し、cronに自動更新スクリプトを登録すれば、顧客全員に自動で属性が設定される。このプラグインにより、購入回数に基づいたメール配信が可能になる。ダウンロードはSOY CMSフォーラムにて提供されている。

 

ブラウザのキャッシュの設定

/** Geminiが自動生成した概要 **/
SOY CMSのキャッシュモードを利用することで表示速度を大幅に向上させることができます。キャッシュモードには、「出力キャッシュ」「ブロックキャッシュ」「データキャッシュ」の3種類があります。出力キャッシュはページ全体をキャッシュし、ブロックキャッシュはページの一部のブロックをキャッシュ、データキャッシュはデータベースへのアクセス結果をキャッシュします。それぞれのキャッシュモードは管理画面から簡単に設定でき、サイトのアクセス状況や更新頻度に合わせて最適な設定を選択することで、サーバー負荷を軽減し、表示速度を向上させることができます。特に、頻繁に更新されない静的なページやアクセス数の多いページでは、出力キャッシュが効果的です。キャッシュのクリアも管理画面から簡単に行えます。

 

SOY CMSのサムネイルプラグインでラベル毎に標準画像の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSで記事投稿時に毎回サムネイル画像を用意するのは手間がかかる。特に、カテゴリ毎に同じようなサムネイルを使い回したい場合、作業効率が悪い。そこで、サムネイルプラグインの設定画面でラベル毎に画像を設定できるように機能拡張した。記事投稿時に該当ラベルにチェックを入れるだけで、予め設定した画像パスがアップロードフォームに挿入される。異なる画像を使いたい場合は、通常通りアップロードフォームから画像を指定すれば良い。この改良により、カテゴリ毎に共通のサムネイル画像を設定する場合の作業負荷が大幅に軽減される。尚、サムネイルプラグインを使わずとも、記事本文の画像をリサイズ表示する方法もある。

 

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

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

 

SOY CMSに総当り攻撃を仕掛けてみる。その4

/** Geminiが自動生成した概要 **/
Go言語で書かれたSOY CMSへの総当り攻撃スクリプトを改良し、CSVファイルからIDとパスワードを読み込むように変更した。これにより、コードの可読性が向上し、辞書を使い回せるようになった。 実行結果から、指定のIDとパスワードでログイン成功を確認。今後の課題として、メモリ効率の改善、対象サイトURLの指定、ログイン成功時の判定処理などが挙げられている。

 

SOY Shopの消費税別表示モジュールで税込通常価格と税込セール価格のタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの消費税別表示モジュールに、税込通常価格と税込セール価格を表示するタグが追加されました。これにより、セール価格がお得かどうかを税込価格で比較可能になります。 追加機能は、SOY CMSフォーラムかGitHubで公開されているパッケージからダウンロードできます。消費税別表示モジュールを使用しているユーザーは、税込価格表示で顧客に分かりやすい価格表示が可能になります。

 

SOY CMSのブログで記事表示順番号(通し番号)を出力させたい

/** Geminiが自動生成した概要 **/
SOY CMSのブログで記事の表示順番号(通し番号)を出力する方法を紹介します。記事一覧を出力するブログテンプレートで、`<div>この記事は何記事目?→<strong><!-- soy:id="index" --></strong>1<strong><!-- /soy:id="index" --></strong>記事目</div>`のように`soy:id="index"`を記述することで、記事の表示順番号が出力されます。これはSOY2HTMLのHTMLListクラスの機能を利用しています。HTMLListには最初/最後の記事用のタグや、特定の条件に一致する記事用のタグなども用意されています。

 

SOY CMSに総当り攻撃を仕掛けてみる。その3

/** Geminiが自動生成した概要 **/
Go言語で書かれたコードを用いて、SOY CMSへの総当たり攻撃を試行。パスワード候補の配列を定義し、ループ処理でログインを試みる。一致するパスワードが見つかった場合、処理を中断し「ログイン成功」とID、パスワードを表示する。今回は"********"でログイン成功。このコードはパスワード候補を増やすことで、複雑なパスワードでも突破可能。しかし、SOY 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から入手可能。

 

SOY CMSに総当り攻撃を仕掛けてみる。その2

/** Geminiが自動生成した概要 **/
Go言語でSOY CMSへの総当り攻撃コードを改良した。前回はトークンチェックで攻撃が無効化されたため、今回はトークン取得とセッションキー保持の処理を追加した。具体的には、ログインページからトークン値を抽出し、自作のCookieJarを用いてセッションキーを保持することで、正規のログインと同様にトークンを送信できるようにした。この改良により、辞書攻撃が可能になった。 最後に、管理画面URLの特定の容易性と攻撃のしやすさを指摘し、URLを複雑にする、IDを辞書攻撃されにくいものにするなどの対策の必要性を訴えている。

 

SOY CMSのソーシャルボタン設置プラグインでPocketに対応しました

/** Geminiが自動生成した概要 **/
SOY CMSのソーシャルボタン設置プラグインがPocketに対応しました。Pocketは後で読む記事を保存するサービスです。 専用タグを挿入することでPocketボタンを設置でき、記事ページなどに表示されます。修正ファイルはSOY CMSフォーラムで配布中。

 

SOY CMSのブログで投稿されたコメントを編集したい

/** Geminiが自動生成した概要 **/
SOY CMSブログのコメント編集機能が拡張されました。従来はコメント本文のみ編集可能でしたが、要望に応えタイトルと投稿者名の編集も可能になりました。管理画面のコメント一覧から該当コメントを選択し、「タイトル」または「投稿者名」ボタンをクリックすると編集フォームが表示され、変更が可能になります。投稿日時と記事タイトルの編集には未対応です。この機能の詳細はSOY CMSフォーラムで公開されています。

 

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

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

 

SOY Shopでキャンペーンプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用のキャンペーンプラグインが開発されました。管理画面でブログのようにキャンペーンコンテンツを作成・編集し、公開期間を設定できます。自動バックアップ機能も搭載。トップページやフリーページ、マイページ、カートページなど、表示場所を自由に指定可能です。キャンペーン詳細は専用のページに表示されます。利用にはSOY Shop 1.17.3p7.3以降、SOY CMS 1.8.12p7.6以降が必要です。GitHubからパッケージを入手できます。意見・要望はフォーラムへ。

 

中学生にプログラミングを教えてみて。その4

/** Geminiが自動生成した概要 **/
中学生にプログラミングを教える中で、コンピュータが0と1で動く仕組みを理解させるため、C言語で書いたコードをアセンブリ言語、さらにバイナリの実行ファイルに変換する過程を見せた。苦Cとコンピュータサイエンスの教科書を参考に、gccコマンドでアセンブルとコンパイルを行い、出力されたhoge.sとa.out(バイナリ)を提示。バイナリエディタで16進表示されたa.outから2進数での動作を想像させ、理解を促した。後々「コンピュータシステムの理論と実装」が理解を深める上で役立つと気づいた。

 

SOY CMSのブログのページ生成設定で404になる条件がある不具合を修正しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ設定で、トップページ以外(記事、カテゴリ、月別アーカイブ)のURLを空にすると、表示はされるもののHTTPステータスが404になる不具合を修正。アクセス解析で該当ページが404エラーとして記録される問題が発生していた。修正ファイルはフォーラム(http://www.soycms.org/viewtopic.php?f=7&t=1775)に、修正版パッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package/soycms)に公開。soycms_1.8.12p7.4以降で適用可能。

 

SOY Inquiryでお問い合わせフォームの確認画面で指定の箇所までジャンプしたい

/** Geminiが自動生成した概要 **/
SOY Inquiryで確認画面をフォームの先頭に表示する方法です。まず、form.phpの`<form>`タグに`action="#confirm"`を追加します。次に、confirm.phpの入力内容確認箇所の直前に`<div id="confirm"></div>`を挿入します。これで、確認画面表示時にフォームの先頭にジャンプします。完了画面にも適用する場合は、complete.phpでも同様の操作を行います。ただし、この方法ではURLに#confirmが残ります。URLを綺麗にしたい場合は、PHPでaction属性を動的に指定する必要があります。

 

中学生にプログラミングを教えてみて。その2

/** Geminiが自動生成した概要 **/
中学生にJavaScriptでプログラミングを教えるにあたり、canvasを使ったゲーム作成に興味を持つ生徒が多い一方、基礎習得の必要性を感じた筆者は、canvasの練習を通して、メソッドの活用、オブジェクトの理解、配列の利用という3つの重要項目を特定した。 これらの概念を「おまじない」として片付けず、生徒に楽しく理解してもらう方法を模索し、計算機、名簿、タイピングソフトの作成を通して、実践的にコードに触れさせながら習熟させる方針を立てた。

 

中学生にプログラミングを教えてみて。その1

/** Geminiが自動生成した概要 **/
プログラミング未経験者がNPOで小中学生にプログラミングを教えることになった。教材選びでは、Scratchは力技での解決を招きやすく、PHPは環境構築が面倒、Javaは難易度が高いため却下。JavaScriptは環境構築が容易で、様々な可能性を秘めていることから採用。ただし、柔軟すぎるが故のコードの煩雑さを懸念し、自身もJavaScriptを改めて学び直すことにした。

 

SOY Shopの商品一覧ページでカスタムフィールドの値で商品の並び替え

/** Geminiが自動生成した概要 **/
SOY Shopのソートボタン設置プラグインでカスタムフィールドの値によるソートが可能になりました。商品カスタムフィールドの「高度な設定」で「ソートに使用する」にチェックを入れると、プラグイン管理画面にソート用タグが表示されます。このタグを商品一覧ページテンプレートに貼り付けることで、カスタムフィールド値に基づくソートボタンが設置できます。機能はsoyshop_1.17.3p7.2.zip以降のパッケージか、フォーラムの修正ファイルで利用可能です。

 

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

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

 

PHPで楽天市場の商品登録を楽しよう:PHPのインストール編

/** Geminiが自動生成した概要 **/
Windows7にPHP7をインストールする方法を解説。PHP7をダウンロード・展開後、C:\php7に配置。Apacheの設定ファイル(httpd.conf)を編集し、PHPモジュールを読み込む設定や、index.phpをDirectoryIndexに追加。PHPの設定ファイル(php.ini)で必要な拡張モジュールを有効化し、タイムゾーンを東京に設定。Apacheを再起動後、phpinfo()を表示するinfo.phpを作成し、ブラウザで確認することでインストール完了となる。

 

Goで運営しているサイトでLet's Encryptを利用してみた

/** Geminiが自動生成した概要 **/
Go製WebアプリをHTTP/2で運用するために、Let's EncryptでSSL証明書を取得した。取得手順は、letsencryptコマンドで証明書を作成し、Goのコードに証明書のパスを指定するだけ。`http.ListenAndServe`を`http.ListenAndServeTLS`に変更し、fullchain.pemとprivkey.pemのパスを設定することでHTTPS化。証明書取得後、サイトはHTTP/2で動作するようになった。

 

デジカメ内の写真を間違えて消してしまった時はPhotoRec!

/** Geminiが自動生成した概要 **/
デジカメのSDカードから外付けHDDへ写真移動中、エラーでデータが消失。SDカード側も削除済みで焦ったが、PhotoRecというオープンソースの復元アプリを発見。Ubuntuにインストール(sudo apt-get install testdisk)後、sudo photorecを実行。SDカードを選択し、ホームディレクトリに復元先を設定。あっという間にデータが復元され、事なきを得た。

 

さくらのVPSにGoの環境を構築してみた

/** Geminiが自動生成した概要 **/
さくらのVPSにGo環境を構築し、アプリケーションサーバを起動した際のメモ。UbuntuにGit, Go, MySQLをインストールし、アプリをビルド、実行した。ポート80での起動はroot権限が必要だったため、`sudo ./app -addr=:80`で実行。バックグラウンド実行は`&`を追加し、停止は`kill -KILL プロセスID`を使用。セキュリティ設定は別途必要。

 

Goで立ち上げたサーバを停止した後、再度同じポートで立ち上げる

/** Geminiが自動生成した概要 **/
GoでWebアプリを開発し、Ctrl+Zで停止した後に同じポートで再起動しようとしたら`address already in use`エラーが発生した。停止ではなく、プロセスが生きていたためポートが使用中だった。`ps`コマンドでプロセスIDを確認し、`kill -KILL [PID]`でプロセスを終了させた後、再起動に成功した。ブラウザでWebアプリの画面が表示され、サーバが正常に動作していることを確認。これは土壌分析アプリsoil2の開発中に遭遇した問題で、プロセスをkillすることで解決できた。

 

使わなくなったパソコンにSambaを入れて、ファイル共有用のサーバを構築してみた

/** Geminiが自動生成した概要 **/
使わなくなったWindows7マシンにUbuntuをインストールし、Sambaでファイル共有サーバーを構築する方法。 手順は、Ubuntuインストール後、端末でSambaをインストールし、共有フォルダ`/home/share`を作成、パーミッションを設定。`/etc/samba/smb.conf`を編集し、ゲストアクセスを許可する設定を追加。Sambaを再起動し、ファイアウォールで必要なポートを開放。自動起動設定も実施。 Windowsからは、ネットワークドライブの割り当て機能を使い、`\\SambaサーバーのIPアドレス\Share`でアクセス可能。`Share`部分はsmb.confで設定した共有名。

 

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で公開されている。

 

DockerでPHP7の環境を構築してみる

/** Geminiが自動生成した概要 **/
Dockerを使ってPHP7環境を構築する方法を紹介しています。UbuntuへのDockerインストール手順、Dockerfileの作成、コンテナイメージのビルド、コンテナの起動、PHPバージョン確認、ブラウザでのphpinfo表示確認までを解説。Dockerを使うことで、簡単にPHP7環境を構築し、動作確認できることを示しています。ルートディレクトリ操作の課題は残っていますが、Apache設定などを省略できる手軽さがメリットです。

 

土壌分析アプリsoil2 by Go

/** Geminiが自動生成した概要 **/
Go言語で開発された土壌分析Webアプリ「soil2」の紹介。 入力された土壌分析値をグラフ化し、将来的にはサードパーティアプリとの連携も視野に入れている。Go言語採用理由は、コンパイル言語のためサーバー環境によるコード変更の手間を省き、処理速度の向上も見込めるため。REST APIと管理者機能を実装し、グラフ表示にはChart.jsを使用。当初は身内向け公開予定だったが、最終的にはSOY Shopのマイページ機能に統合された。

 

大阪の北浜でSOY Shopの勉強会を行いました

/** Geminiが自動生成した概要 **/
大阪北浜のレンタルスペース「SPINNING NAKANOSHIMA」にてSOY Shopの勉強会を開催。SOY Shopでサイト構築する際の初期設定、特にSOY CMSとの連携に焦点を当てた内容を実施。ネットショップ運営と並行したブログでの商品紹介、ブログ新着情報のショップ側表示など、具体的な構築方法や運用事例を紹介した。

 

SOY CMSの常時SSL化で対応したこと

/** Geminiが自動生成した概要 **/
さくらインターネットの共有サーバーでSOY CMSを常時SSL化するために実施した手順を紹介。画像パスの修正、SNI SSL対応、リダイレクト設定、サイトURLの変更、サイトマップ作成とSearch Console登録を行った。画像パスは絶対パスに変更し、SNI SSLのためにSOY CMS本体のコードを修正。リダイレクトはindex.phpに記述、サイトURLもhttpsに変更した。最後にサイトマップを作成しSearch Consoleへ登録。SOY Shopの場合は別途対応が必要。

 

SOY Shopで商品カテゴリの一括設定

/** Geminiが自動生成した概要 **/
SOY Shopで商品数が増えると、CSVでのカテゴリ編集が困難になる。特にカスタムフィールドを多用するとCSVファイルが肥大化し、作業効率が低下する。複数カテゴリ設定もSOY Shopでは非対応。 そこで、商品一覧画面で複数商品を選択し、一括でカテゴリを設定・変更・解除できる機能が開発された。このシンプルな機能追加により、カテゴリ分け作業が大幅に効率化される。ダウンロードはSOY CMSフォーラムにて提供されている。

 

サイバー攻撃が何と多いことか

/** Geminiが自動生成した概要 **/
知人の知人のWordPressサイトが乗っ取られ、攻撃サーバーとして悪用された事例を紹介。脆弱なCMSバージョン、簡単なパスワード、推測されやすい管理画面URLが原因だった。また、知人はトロイの木馬、他の知人は無害なファイル増産プログラムの被害に遭い、筆者自身もIEの設定を書き換えられる被害を受けた。攻撃者は無防備なサイトやPCを狙うため、セキュリティ対策は必須。対策学習として、攻撃者の心理を理解できる「サイバーセキュリティプログラミング」や、Webセキュリティの基礎知識を学べる「徳丸浩のWebセキュリティ教室」などを推奨。インターネットの危険性を常に意識し、無関係な人などいないことを認識すべきだと警告している。

 

SOY CMSの記事投稿画面でYouTubeの動画の挿入ボタンを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSの記事投稿画面にYouTube動画を簡単に挿入できるボタンを追加しました。HTMLの知識がなくても、ボタンクリックでURLを入力するだけで動画を埋め込めます。オープンソースのTinyMCE用YouTubeプラグインを改変し、動画検索・挿入機能を実装。記事作成時の利便性向上に貢献します。ダウンロードはSOY CMSフォーラムから可能です。

 

記憶の中では真砂土は白かった

/** Geminiが自動生成した概要 **/
京丹後で栽培を学んだ著者は、師の畑の真砂土が白かった記憶を基に真砂土の成分を調べた。花崗岩が風化して真砂土になるが、花崗岩の主成分である石英と長石は白い。しかし、現在の真砂土は白くない。長石は風化すると粘土鉱物のカオリナイトになり、もろくなる。つまり、白い真砂土は長石が豊富に含まれていたが、現在の真砂土は長石が風化して失われた状態であると考えられる。土壌に酸素を入れるトラクター耕作が長石の風化を促進した可能性があり、白い真砂土は耕盤層付近に蓄積したカオリナイトだったのかもしれない。この考察は今後の栽培の問題解決に役立つ知見となる。

 

SOY InquiryのレスポンシブとHTML5対応

/** Geminiが自動生成した概要 **/
SOY Inquiryを使ってレスポンシブデザインのお問い合わせフォームを作成する方法を紹介しています。レスポンシブデザインとは、PCとスマートフォンでそれぞれ見やすい表示になるよう自動調整されるWebデザイン手法です。設定は、フォーム設定で「responsive」を選び、スタイルシートを読み込むをチェックするだけ。HTML5のrequired属性にも対応し、必須項目の未入力時に警告を表示できます。設定はカラム設定で「required属性を利用する」をチェックするだけ。pattern属性も利用可能で、入力パターンの指定ができます。フォームの属性にpattern="正規表現"を追加するだけで設定できます。ただし、住所検索機能とは競合するため注意が必要です。ダウンロードやフォーラムへのリンクも記載されています。以前の記事「スマホ対応のお問い合わせフォームを作ってみた」の内容を元に、更に機能が追加されています。

 

臭いは球体にしてどこかに流す

/** Geminiが自動生成した概要 **/
脂肪酸塩は、親水性の部分と疎水性の部分を持つ。水中では、疎水性の部分を内側、親水性の部分を外側にした球状の構造「ミセル」を形成する。これは、水と反発する疎水性部分を球体の中心に集め、水と親和する親水性部分で球体の表面を覆うことで、全体として水に溶けることを可能にする。このミセル化を利用することで、水に溶けにくい油汚れや悪臭の原因物質も水に溶かし込み、洗い流すことができる。

 

臭いは固めて溶かして流してしまえ

/** Geminiが自動生成した概要 **/
悪臭の原因物質にはアンモニア、トリメチルアミン、メチルメルカプタン、低級脂肪酸などがある。特にプロピオン酸は悪臭を放つ低級脂肪酸の一種。プロピオン酸は炭酸水素ナトリウムと反応して塩(プロピオン酸ナトリウム)になり、気化しなくなるため臭いを感じなくなる。塩は親水性のミセル構造を形成し、水に溶けやすいため洗い流せる。つまり、重曹などで中和すれば悪臭成分を移動・除去できる。同様の原理でクエン酸カリウムなどの塩も消臭効果を持つ。

 

SOY Shopの商品レビュープラグインにCAPTCHAを追加

/** Geminiが自動生成した概要 **/
SOY Shopの商品レビュープラグインに、スパム対策としてCAPTCHA機能が追加されました。GDライブラリを利用した画像認証タイプで、GDが利用できない環境ではキーワード入力方式に切り替え可能です。 この機能はSOY CMSフォーラムからダウンロードできます。スパム投稿に悩まされているユーザーは導入を検討すると良いでしょう。

 

SOY Shopでセール販売期間設定を追加

/** Geminiが自動生成した概要 **/
SOY Shopのセール期間設定忘れによる販売ミスを防ぐプラグインが開発されました。従来はセール設定のチェックボックスのみで管理していたため、終了後もチェックを外し忘れると意図せずセール価格で販売してしまう問題がありました。このプラグインは、チェックボックスに加えてセール期間を指定する日付フォームを追加。カート投入時に期間設定に基づきセール価格を計算することで、期間外のセール適用を防ぎます。ダウンロードはSOY CMSフォーラムから可能です。

 

SOY Shopで販売期間設定を追加

/** Geminiが自動生成した概要 **/
SOY Shopの販売終了商品の管理画面操作忘れを防止するため、販売期間設定機能が追加された。商品は登録画面でカレンダーから販売開始・終了日時を設定可能になり、期間外は注文エラーとなる。 従来のカート非表示プラグインは手動操作が必要だったが、この機能により自動で販売制御が行える。販売期間開始前も同様に注文が制御される。ダウンロードはSOY CMSフォーラムから可能。

 

SOY CMSのブログで記事の下書きの自動保存機能

/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事作成中に、回線落ちなどで書きかけの記事が消えることを防ぐため、自動保存機能が追加された。記事投稿画面を開いて30秒後に自動でバックアップが作成され、画面上部に通知が表示される。バックアップファイルはサイトIDとログインIDに紐づけて保存されるため、他サイトや別アカウントでは復元されない。記事保存または更新ボタンを押すとバックアップファイルは削除される。この機能により、誤操作による以前のバックアップの復元を防ぐ。ダウンロードはSOY CMSフォーラムから可能。

 

YouTube動画で菜園教室に挑戦!

/** Geminiが自動生成した概要 **/
OREC電動耕運機「e-pico」は、女性や高齢者でも手軽に扱えるコンパクトで軽量な耕運機です。コードレスで取り回しが良く、狭い場所での作業にも最適です。 土の硬さや作業内容に合わせて速度を3段階に調節可能。 アタッチメントを交換することで、耕耘だけでなく除草や中耕作業にも対応できます。 安全性にも配慮されており、誤作動を防ぐ安全ロックボタンや、モーター過負荷保護装置が搭載されています。 家庭菜園初心者からベテランまで、幅広い層におすすめの、使い勝手の良い電動耕運機です。

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

Powered by SOY CMS   ↑トップへ