ブログ内検索

プログラミング教材開発
とにかく速いブログサイトを目指す
 

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に向上した。変更コードはフォーラムで配布されている。

 

夏といえばヒマワリの下で起こっている土壌の変化

/** Geminiが自動生成した概要 **/
ヒマワリは景観だけでなく、緑肥としても優れた機能を持つ。特に土壌に蓄積した吸収できないリン酸を、吸収可能な形に変える効果がある。リン酸は有機質肥料や家畜糞に多く含まれ、過剰になりやすい。過剰なリン酸はカルシウム過剰によるミネラル欠乏や、有機態リン酸による様々なミネラルのキレート化で秀品率低下につながる。ヒマワリは菌根菌の働きでリン酸を可給化し吸収、土壌に残すことでリン酸量を減らしつつ可給態リン酸を増やす。無機リン酸の可給化には有機態リン酸分解菌資材、有機態リン酸にはクエン酸併用が有効と考えられる。これらの組み合わせで土壌のリン酸状態を改善できる。

 

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

/** Geminiが自動生成した概要 **/
SOY CMSで画像リサイズを行う際、PNG画像の透過部分が黒くなる問題の解決策を紹介している。原因はアルファチャンネルの透過設定で、SOY CMSのリサイズ機能が透過に対応していないため。解決策として、`imagecreatetruecolor`後に`imagealphablending($dstImage, false);`と`imagesavealpha($dstImage, true);`を追加することで、透過PNGも正しくリサイズできる。修正はGDでのリサイズにのみ対応しており、ImageMagickは未対応。

 

江戸の庶民は捻れに期待を寄せたのか?

/** Geminiが自動生成した概要 **/
江戸時代の朝顔ブームでは、双葉や本葉の奇形は珍重され、珍しい花が咲く期待を高めた。しかし、現代の筆者はもらった朝顔の芽の奇形に不安を感じている。発芽後も無事に育つか自信がなく、江戸時代の人々のような高揚感はない。珍しい変化への期待よりも、無事に花が咲くかどうかの心配が勝っている様子がうかがえる。

 

SOY Shopの納品書作成プラグインで初回購入の表示設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの納品書作成プラグインに、初回購入者識別機能が追加されました。管理画面で設定を有効化すると、初回購入者の納品書に「初回購入」と表示されます。この機能はプラグインだけでなく、SOY Shop本体にも変更が加えられています。利用するには、GitHub上の最新版(https://github.com/inunosinsi/soycms/tree/master/package/soyshop)をダウンロードする必要があります。

 

バーミキュライトという名の薄板状粘土

バーミキュライトを購入した。JAの職員に渡される施肥診断技術者ハンドブックによると、バーミキュライトは雲母由来の板〜薄板状の二次(粘土)鉱物となっている。そもそも粘土って何?モンモリロナイトと同じ2:1型鉱物と呼ばれ、保肥力が半端無く高く、保水力も高い粘土鉱物として扱われている。粘土鉱物は買ってでもいれろ保肥力とは?でもさ、上の写真は全然粘土に見えないよね。まぁ、細かい粒子が合わさってあの形状になっているなら、粘土だと言えなくもないか。(薄)板

 

SOY Shopで初回登録時にメルマガ会員になるとポイントをプレゼントする機能を追加しました

/** Geminiが自動生成した概要 **/
SOY ShopのSOY Mail連携プラグインで、初回登録時にメルマガ会員になるとポイントプレゼントする機能が追加されました。プラグイン設定画面でポイント数を指定すると、カートとマイページの会員登録時に「メルマガ会員でポイントプレゼント」と表示され、登録完了後にポイントが付与されます。ポイントは顧客のポイント履歴に記録されます。この機能を利用するには、GitHubにある最新版SOY Shopをダウンロードする必要があります。

 

あそこからヤブガラシが消えた

/** Geminiが自動生成した概要 **/
ヤブガラシが生い茂っていた畑が、廃菌床と二次鉱物の投入により土質改善後、ほぼ消滅した。ヤブガラシは土壌の指標植物になり得るのか? 図鑑には記載がない。ヤブガラシが消えた土壌には弱酸性土壌の指標植物シロザが生育していた。シロザは土壌に良い影響を与える緑肥候補。ヤブガラシとシロザの生育時期は重なるため、ヤブガラシ優勢下ではシロザは育ちにくい。土壌pHが安定し緩衝能を持つ土壌ではヤブガラシは弱体化するようだ。ヤブガラシ旺盛な土壌は作物に不向き。ヤブガラシの繁茂は土壌改善のサインと言える。

 

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

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

 

続・カエデ君の生きる道

/** Geminiが自動生成した概要 **/
一年前、京都の柱の根元に芽吹いた小さなカエデの生命力に感銘を受け、ブログ開始のきっかけとなった。一年後の今日、カエデの成長を見ようと訪れたが、跡形もなく消えていた。抜かれてしまったのだろうか。時の流れの速さと、儚い命に思いを馳せる。それと同時に、ブログ開始から一年が経ったことを感慨深く振り返る。

 

SOY Shopのクーポン自由設定プラグインで送料無料クーポンを発行できる様にしました

/** Geminiが自動生成した概要 **/
SOY Shopのクーポン自由設定プラグインに送料無料クーポン発行機能が追加されました。管理画面で「送料無料」にチェックを入れてクーポンを作成すると、カートで利用時に送料と同額が値引きされます。値引き額/率に加えて送料無料クーポンも発行可能になったことで、より柔軟なクーポン設定が可能になります。最新版はGitHub(https://github.com/inunosinsi/soycms/tree/master/package/soyshop)からダウンロードできます。

 

電子書籍の販売を始めました

/** Geminiが自動生成した概要 **/
齋藤毅の妻、亮子が夫の農業ブログを電子書籍化。亮子はJAや農業法人での経験、ミャンマーでの農業研修を経て、従来の農業の常識を覆す齋藤の知識に感銘を受けた。牛糞堆肥の代わりにバーク堆肥や鉱物を推奨するなど、化学式に基づいた齋藤の土作り論は、亮子にとって衝撃的だった。土作りに悩む農家や、慣習的に資材を選んでいる人に向けて、齋藤の知見を共有したいと考え、書籍化に至った。価格は500円(税込)。サンプルの閲覧方法も用意されている。

 

ヤブガラシは葉物野菜に巻き付く

/** Geminiが自動生成した概要 **/
ヤブガラシは除草剤が効かず、葉物野菜に巻き付いてしまう厄介な雑草。知人の畑ではネギに絡みつき、除草剤散布後もヤブガラシだけが残ってしまった。手で抜くしか方法がないが、巻きひげが作物を傷つけるため、除草剤散布後の手作業も重労働となる。ヤブガラシへの効果的な対策がなく、農家にとって大きな負担となっている。しかし、筆者はヤブガラシに関する面白い発見をしたようで、次回に続く。

 

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

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

 

ヤブガラシの恐怖

/** Geminiが自動生成した概要 **/
庭園に生えたヤブガラシの脅威を紹介する記事。カボチャのような巻きひげを持つヤブガラシは、栽培者にとって厄介な雑草。カボチャが巻きひげで他の植物を抑えるのは問題ないが、ヤブガラシの場合は作物に悪影響を与える。写真では一見背の低い草を抑えているように見えるが、実際は深刻な被害をもたらす。記事はヤブガラシの真の恐ろしさを写真で示すことを予告し、次回へ続く。

 

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

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

 

SOY CMSで表示直前で画像のリサイズ表示を行う

/** Geminiが自動生成した概要 **/
SOY CMSでサイト表示を高速化するために、表示直前にサーバ側で画像リサイズを行う方法を紹介しています。Google PageSpeed Insightsで低評価を受けた画像サイズの問題を解消するため、サムネイルプラグインではなく、SOY CMSの隠し機能を活用。具体的には、カスタムフィールドに画像パスを入力し、imgタグのsrc属性に`im.php?src=[画像パス]&width=[幅]`を指定することで、動的にリサイズされた画像を表示。従来のHTMLのwidth属性による縮小表示よりもパフォーマンスが向上し、PageSpeed Insightsのスコアも改善。記事では、設定変更前後の具体的なコード例やスクリーンショットを交えながら解説。リサイズ処理はJPEG、PNG、GIFに対応し、作業フローを簡略化しつつサイト高速化を実現。次回、CSSや画像のキャッシュ設定について解説予定。

 

夏に咲く花と厚い葉

/** Geminiが自動生成した概要 **/
夏に咲く厚い葉の花の名前を知りたい。多肉質の葉は乾燥地帯や海岸で見かけることが多く、蒸散を防ぐため葉を厚くしていると考えられる。気孔から中心までの距離を長くすることで、水ストレスの影響を低減し、体内の水分を保持する。この花は日本の多湿な環境でも元気に咲いている。一体、この花の名前は何だろう?

 

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

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

 

ポップコーンは爆裂するトウモロコシ

/** Geminiが自動生成した概要 **/
ポップコーンは、爆裂種のトウモロコシを油で加熱することで作られる。加熱によって内部の水分が膨張し、胚乳(食用部分)も膨らむ。著者はポップコーンを見て、講義でテストに出ると言われたことを思い出した。ポップコーンは、トウモロコシの爆裂種であるため、加熱すると内部の水分が膨張し、外側の皮が破裂することであの独特の形になる。これは胚乳の粘性が高い品種だからこそ、爆裂しても破裂せずに形を保てるためである。トウモロコシには様々な種類があり、著者はテスト対策で丸暗記したことを懐かしく思い出している。

 

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

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

 

枝達の水の吸い上げ事情

/** Geminiが自動生成した概要 **/
線路沿いの過酷な環境で逞しく生きる草は、上部に枝を集中させている。成長著しい枝の葉は薄緑色で、盛んに蒸散を行うため、根からの水の吸い上げも活発だ。しかし、下の葉は元気がない。枝への水分の集中が原因で、下の葉まで行き渡らないのだろうか。それとも、枝が成長したため、下の葉の養分を回収し枯れようとしているのか。あるいは、茎を直射日光から守るための防御策なのか。いずれにせよ、この草の生存戦略の一端が垣間見える。

 

SOY CMS/ShopでPHPモジュールに使用の制限を設けました

/** Geminiが自動生成した概要 **/
SOY CMS/Shopのセキュリティ強化のため、テンプレートエディタとPHPモジュールでのPHP実行に制限が加わりました。PHPの使用は、`user.config.php`で`SOYCMS_ALLOW_PHP_SCRIPT`を`true`にすることで許可されます。 PHPモジュールはさらに`SOYCMS_ALLOW_PHP_MODULE`を`true`にすることで利用可能になります。これらの設定により、テンプレートやモジュールでPHPコードの実行を制御し、セキュリティリスクを軽減します。アップデートはGitHubから入手可能です。

 

みなを抑えこむように脇芽

/** Geminiが自動生成した概要 **/
線路沿いの背の高いキク科の草は、上部で枝分かれする。頂芽優勢が弱く、他の草丈を越えたところで脇芽を出し、周囲を覆うように葉を広げている。これは、強風への抵抗力を高めるためと考えられるが、頭でっかちな形状は折れやすいようにも見える。周りの草が支えになる可能性もあるが、周囲の状況に応じて脇芽を出すことから、頂芽優勢はオーキシンの抑制のみでは説明できないと考えられる。

 

水田を見て、イネが選抜された訳を想像する

/** Geminiが自動生成した概要 **/
水田のイネを見て、かつての先生が語った話を思い出す。歴史の教科書では、農民はコメをあまり食べられなかったとされるが、先生はイネの栽培効率の高さから反論した。イネは水田で雑草抑制が可能で、肥料も少なくて済む。窒素固定能力も持ち、収量も高い。栽培に適さない理由がない限り、イネを選ぶはずだと主張した。実際、農村部でのコメ消費量は多かったという。優れた特性を持つイネの原産地は中国大陸とされ、野生の状態はどのようなものだったのかと想像を膨らませる。

 

CMSに不正にログインした後、何をする?

/** Geminiが自動生成した概要 **/
ウェブサイトがサイバー攻撃の標的となる脆弱性を抱えているかを判断する方法が解説されています。攻撃者は古いバージョンのCMSや安全でないお問い合わせフォームなどを利用して不正アクセスを試みます。記事では、SOY CMSを例に、不正ログイン後に攻撃者が踏み台として悪用する具体的な手順と、その対策が示されています。具体的には、ファイルマネージャーからのPHPファイルアップロードの制限、フロントコントローラーの編集制限、そしてファイルパーミッションの変更による対策が紹介されています。攻撃者はウェブサイトのソースコード、ログインフォームのバージョン、お問い合わせフォームのHTTPS化などを確認することで攻撃対象を選定するため、これらの対策が重要となります。

 

当サイトをHTTP/2対応して表示の爆速化してみた

/** Geminiが自動生成した概要 **/
Let's Encryptの証明書更新を自動化するため、CertBotを導入した。以前の方法は使えなくなったため、公式サイトの手順に従い、snapd経由でCertBotをインストール。`certbot certonly --apache`コマンドで証明書を取得し、Apacheの設定を自動更新。 cronで`certbot renew`を定期実行することで自動更新を実現。`--dry-run`オプションでテストも可能。以前の`letsencrypt-auto`コマンドは非推奨となったため、CertBotへの移行が必須。


Powered by SOY CMS  ↑トップへ