ブログ内検索:

プログラミング教室
最近興味があることや肥料教室についてのメルマガを配信しています
検索キーワード:「コンピュータ」
 

運動療育や放課後デイサービスを運営する施設のコンピュータに触れよう会で話をしました

/** Geminiが自動生成した概要 **/
先日、運動療育・放課後デイサービス施設様からのご依頼を受け、「コンピュータに触れよう会」を開催いたしました。本イベントでは、川添愛さんの著書を参考に「コンピュータを思い通りに動かすには?」をテーマに、AI時代の思考力を育むことを目指しました。参加者には、Microbit Moreとマイクロビットのセンサーを活用し、画面上の猫をプログラミングで動かす実践的な体験を提供。子どもたちはプログラミング的思考を楽しみながら学びました。イベントは大変好評を博し、終了後も多くの参加者が熱心にパソコンやマイクロビットを操作する姿が見られ、IT教育への高い関心と可能性を感じる機会となりました。

 

フザリウムと競合するコウジカビ

/** Geminiが自動生成した概要 **/
フザリウムは植物寄生性を持つ糸状菌で、有機質肥料も利用するため注意が必要です。有機物の競合相手としてコウジカビ(アスペルギルス属)が挙げられますが、コウジカビにも植物に病原性を示す種が存在します。これらの菌の生息環境を理解することは有機質肥料への理解を深めることに繋がるため、まずは文献が多いコウジカビから調べていきます。

 

キレート作用を有する有機酸とは何なのか?

/** Geminiが自動生成した概要 **/
キレート作用を持つ有機酸について解説。アスコルビン酸(ビタミンC)のキレート能は限定的。キレート作用で有名なEDTAはカルボキシ基が金属イオンと結合する。キレート作用を持つ有機酸として、クエン酸、リンゴ酸、酒石酸、シュウ酸、フマル酸、コハク酸などが挙げられ、これらは複数個のカルボキシ基を持つ。アスコルビン酸も挙げられるが、キレート能は低い。比較的低分子で複数個のカルボキシ基を持つことがキレート作用を持つ有機酸の特徴と言える。

 

加水分解型タンニン

/** Geminiが自動生成した概要 **/
ゲラニインは加水分解型タンニンの一種で、複雑な構造を持つ。中心にはグルコース(ブドウ糖)があり、その各炭素に没食子酸が結合している。さらに、没食子酸同士も結合している。一見複雑だが、基本構造はグルコースと没食子酸の組み合わせである。より詳細な情報は「化学と生物 Vol. 60, No. 10, 2022」に記載されているが、本記事ではこの概要説明にとどめる。

 

ざくろ石帯とはどんな所?

/** Geminiが自動生成した概要 **/
山口県岩国市の「ざくろ石帯」は、石灰岩とマグマが反応して形成されたスカルン鉱床です。スカルン鉱床は、石灰岩中の柘榴石を多く含んでいます。柘榴石は、カルシウム、マグネシウム、鉄を含むネソケイ酸塩鉱物で、Yにアルミニウム、Zにケイ素が入っているのが一般的です。この地域では、柘榴石が土壌の母岩として風化するため、柘榴石に由来する土壌が形成されていると考えられます。

 

造岩鉱物の理解を深めるためにケイ酸についてを学ぶ

/** Geminiが自動生成した概要 **/
ケイ酸は、ケイ素と酸素で構成され、自然界では主に二酸化ケイ素(SiO2)の形で存在する。水に極わずか溶け、モノケイ酸として植物の根から吸収される。 しかし、中性から弱酸性の溶液では、モノケイ酸同士が重合して大きな構造を形成する。この重合の仕方は、単鎖だけでなく複鎖など、多様な形をとる。 造岩鉱物は、岩石を構成する鉱物で、ケイ酸を含有するものが多い。熱水やアルカリ性の環境では、ケイ酸塩が溶けやすくなる。

 

雪花菜や御殻と書いてオカラと読む

/** Geminiが自動生成した概要 **/
神奈川県ホームページの「おからとコーヒー粕を混合した堆肥の作り方」は、食品産業廃棄物である「おから」と「コーヒー粕」を有効利用した堆肥の作り方を紹介しています。 まず、材料の「おから」と「コーヒー粕」、そして発酵促進剤として「米ぬか」と「籾殻くん炭」を準備します。これらを所定の比率で混合し、水分量を調整しながら切り返し作業を行います。 約1ヶ月後には完熟堆肥となり、畑の土壌改良材や肥料として活用できます。 この堆肥は、排水性や通気性の改善効果があり、植物の生育を促進する効果も期待できます。

 

石鹸の作り方

/** Geminiが自動生成した概要 **/
石鹸は、油脂をアルカリ剤で煮立てる「鹸化」によって作られます。油脂はグリセリンに脂肪酸が結合した構造をしていますが、水に溶けにくい性質です。鹸化によって脂肪酸がグリセリンから切り離されると、疎水性の炭素鎖と親水性のカルボニル基を持つようになり、界面活性剤として機能するようになります。記事では、脂肪酸の炭素鎖の長さによって界面活性機能が変わるのかという疑問が提示されています。

 

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

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

 

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

/** 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の重要性について、次回以降の記事で考察していくことを示唆しています。

 

改めて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についてを知る1

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

 

UARTについてを知る1

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

 

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間でのソケット通信に挑戦する予定です。

 

AD変換器の概要に触れる

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

 

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

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

 

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

 

光ストレス緩和の為のフラボノイド

/** Geminiが自動生成した概要 **/
植物は、病害虫や紫外線など様々なストレスから身を守るため、様々な防御機構を備えている。その中でも重要な役割を果たすのが、芳香族アミノ酸であるフェニルアラニンやチロシンから合成される二次代謝産物だ。これらは、リグニン、サリチル酸、フラボノイドといった物質の原料となる。リグニンは細胞壁を強化し、病原菌の侵入を防ぐ。サリチル酸は、病原菌に対する抵抗性を高めるシグナル物質として働く。フラボノイドは、紫外線吸収剤や抗酸化物質として機能し、光ストレスや酸化ストレスから植物を守る。つまり、芳香族アミノ酸は植物の防御システムの基盤を担っており、健全な生育に不可欠な要素と言える。

 

一個体内でも様々な葉の形状があるシダ

/** Geminiが自動生成した概要 **/
渓谷で多様な形状の葉を持つシダ植物を発見。マメヅタの経験からシダ植物と推測し、葉裏の胞子嚢痕で確認。最初はコタニワタリに似ていると思ったが胞子嚢の形が異なり、葉の根元の形状からミツデウラボシの可能性が浮上。ミツデウラボシは三つ手の突起が特徴だが、突起がない葉もある。確実な同定には、周辺の葉の様々な形状を確認する必要があると学んだ。

 

シダ植物を見分ける為に羽片を学ぶ

/** Geminiが自動生成した概要 **/
シダ植物を見分ける第一歩として、葉身の切れ込み具合に着目する必要がある。シダの葉身にある切れ込みを羽片と呼ぶ。アオネカズラのように大きな羽片に深裂がある葉身を一回羽状深裂、更に細かく羽片が分かれるもの、コタニワタリのような切れ込みがない単葉のものなど、羽片の状態はシダの種類によって様々である。羽片、小羽片、二次小羽片と、切れ込みが深くなるにつれ名称も変わる。シダの同定には、これらの羽片の形状を理解することが重要となる。

 

字句解析器を作る為にデータ構造のスタックを見る

/** Geminiが自動生成した概要 **/
Go言語のテスト方法を解説した記事の要約です。Goでは`*_test.go`ファイルにテスト関数を記述します。テスト関数は`Test*`という名前で、`*testing.T`を引数に取ります。`t.Error`や`t.Errorf`でテスト失敗を報告、`t.Log`でログ出力、`t.Run`でサブテストを実行できます。`go test`コマンドでテストを実行し、カバレッジは`go test -cover`で確認できます。記事では具体的な例として、加算関数`Add`のテストコードを`add_test.go`に記述し、正常系と異常系のテストケースを実行する方法を紹介しています。また、テーブル駆動テストを用いて複数のテストケースを簡潔に記述する方法も説明しています。

 

PHPのガベージコレクションを見る

/** Geminiが自動生成した概要 **/
PHPのガベージコレクション(GC)は参照カウント法を用いて不要なメモリ領域を解放する。`xdebug_debug_zval()`関数で確認できる`refcount`が参照数を示し、0になるとGC対象となる。オブジェクト型では、変数への代入で`refcount`が増減し、`unset`で`refcount`が減る。`refcount`が0になるとメモリが解放される。整数型などzvalに直接値を持つ型は`refcount`が0でも当てはまらない。`unset`は不要になったオブジェクトを明示的に解放し、メモリ効率を向上させるため有効。

 

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

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

 

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内部の仕組みを理解する第一歩となる。

 

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

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

 

植物エクジソンを求めて

/** Geminiが自動生成した概要 **/
ヨトウガは広食性で農作物に甚大な被害を与える害虫。日本では越冬できる地域が限られると考えられていたが、近年ハウス栽培で越冬する可能性が指摘されている。ヨトウガの卵塊は風に乗って長距離移動するため、越冬場所の特定は防除対策において重要。もし全国的に冬場にホウレンソウ栽培が広がれば、ホウレンソウに含まれる植物エクジソンがヨトウガの生育を阻害し、越冬を抑制する可能性がある。

 

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

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

 

自作アプリを介してのGoogle検索でService Unavailableになった

/** Geminiが自動生成した概要 **/
自作PHPアプリでGoogle検索結果を集計する際、cURLで検索を実行したところ「503 Service Unavailable」エラーが発生した。Googleはスクリプトからの自動検索を制限しており、エラーメッセージは異常トラフィックの検出を示していた。解決策として、`curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);`をcURLに追加し、ブラウザのユーザーエージェントを送信するように変更した。これによりエラーが解消し、検索結果の集計が可能になった。単に適当なユーザーエージェントを設定するだけでは解決せず、実際に使用しているブラウザの情報を送ることが重要だった。

 

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

/** Geminiが自動生成した概要 **/
プログラマは、システム不具合の多くが「想定外の使い方」に起因するため、電話での口頭説明ではなく詳細な情報提供を求める。これは、プログラミングが物理法則に縛られず、思考がそのまま反映されるため、想定外の動作が顕著な不具合となる特性による。効率的な情報伝達と問題解決のため、プログラマはコーディング規約、高機能エディタ、テスト自動化、タスク管理ツール、オープンソースといった手段を活用し、思考すべき点とそうでない点を明確化し、再発防止と情報共有を促進する。妻にプログラミングを教えるのは、これらの思考プロセスと情報伝達の重要性を体験させ、世界中の資産を活用する術を学ばせるためである。

 

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

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

 

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

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

 

働きたくないイタチと言葉がわかるロボット

/** Geminiが自動生成した概要 **/
プログラミング学習者へ「働きたくないイタチと言葉がわかるロボット」と「自動人形の城」を推薦。前者は言葉を理解するロボット開発を目指す動物たちの物語、後者は完成したロボットと暮らす王子の物語。どちらも言語学者によるAIをテーマにした作品で、高度な内容ながら読みやすい。ロボットへの指示を通して、プログラミングに必要な明確な指示や論理的思考、非プログラマとの認識の違いを体感できる。加えて「できる人」の考察もあり、ビジネスコミュニケーションにも役立つ。著者の過去作品「白と黒のとびら」も良書。

 

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

 

ロードアベレージ

/** Geminiが自動生成した概要 **/
サーバ監視の重要指標であるロードアベレージは、CPUリソースへの需要を示す。実行中のスレッドと実行待ちスレッドの合計から計算され、uptimeコマンドで1分、5分、15分間の平均値を確認できる。ロードアベレージがCPU数を超えると、CPUが不足しスレッドが待機している状態を示す。逆に下回ればCPUに余裕がある。例として、2コア2スレッドCPU(論理CPU4)でロードアベレージ0.47は余裕がある状態と言える。

 

CPUの監視

/** Geminiが自動生成した概要 **/
MuninのCPU監視グラフ解説の導入部分。CPUは計算処理を行う部分で、ユーザモードとカーネルモード(OSの基礎処理)を使い分ける。カーネルモードではシステムコールを介してOSに処理を依頼する。CPUは割り込み機構により処理を中断できる。CPUは同時処理に見せかけて、実際は処理を切り替えながら実行している。詳細は次回に続く。

 

物理障害のディスクのデータの復旧に挑戦

/** Geminiが自動生成した概要 **/
デジカメの写真を誤って消去した場合の復旧ツールとして、PhotoRecが紹介されている。PhotoRecは、ファイルシステムを無視してデータ自体をスキャンするため、フォーマット後やファイルシステムが破損している場合でも復旧が可能。使い方は、PhotoRecをダウンロードし、対象のドライブを選択、保存先を指定するだけ。ファイルの種類を絞り込むこともでき、復旧率向上に繋がる。JPEGだけでなく、様々なファイル形式に対応しているため、デジカメ以外の機器でも活用できる。操作はコマンドラインベースだが、GUI版のQPhotoRecも用意されている。誤削除に気づいたらすぐに使用することで、上書きされる可能性を減らし、復旧率を高めることができる。

 

集合と関数

/** Geminiが自動生成した概要 **/
関数は集合Aの各要素に集合Bの唯一の要素を割り当てるもので、Aを定義域、Bを値域と呼ぶ。f(x) = x + 2 は実数の集合Rを用いて f:R→R と表せる。集合は値の塊で、要素数が決まれば有限集合、無数なら無限集合、空なら空集合となる。ベクトルも関数として解釈でき、例えば集合Aを野菜の種類、集合Bを科名とすると、野菜から科への対応付けが関数となる。この理解を基に肥料の自動計算を考える。

 

基肥の自動計算を考える前に

/** Geminiが自動生成した概要 **/
肥料の自動計算システム構築に向け、ベクトルの理解が必要となる。ベクトルは添字付きの一次元配列で、PHPでは`array()`で表現できる。重要なのは、ベクトルを関数として捉えること。例えば、`$vec = array("x" => "横", "y" => "縦");` は、入力"x"に"横"、"y"に"縦"を返す関数と解釈できる。この関数的視点が、後の肥料計算に不可欠なため、ベクトル演算の知識を整理しつつ、肥料の構成要素を検討していく。

 

基肥の自動計算に挑戦してみる

/** Geminiが自動生成した概要 **/
基肥自動計算を目指した試みは、肥料成分をベクトルとして線形計画法と機械学習を適用する構想から始まった。しかし、指導員による施肥設計がNPK成分量ではなく、シグモイド型BBロング肥料の栽培期間に基づいているため、成分ベクトル化は意味をなさないと判明。土壌の保肥力を高めるアプローチでは厳密な成分量計算は不要であり、線形計画法の適用は困難。よって、基肥自動計算には肥料ベクトルのモデル構築から再考が必要となった。

 

切磋琢磨して積み上げたものに発生する信用

/** Geminiが自動生成した概要 **/
SOY ShopにEC CUBE 2.4系のログインチェック機能を導入した記事の概要です。EC CUBEで構築したサイトにSOY Shopで作成したサイトへのログインチェックを組み込み、シングルサインオンを実現しました。具体的には、EC CUBE側のログイン処理でSOY ShopのログインAPIを呼び出し、認証結果をSOY Shopのセッションに保存することで、両サイトでシームレスなログインが可能になります。これにより、ユーザーはEC CUBE側でログインするだけで、SOY Shop側でもログイン状態が維持され、利便性が向上します。記事では、導入手順やコード例、注意点などが詳細に解説されています。この統合により、異なるプラットフォームで構築されたサイト間の連携が強化され、よりスムーズなユーザーエクスペリエンスを提供できるようになります。

 

人はネットワーク内から新しい信用のあり方を発見した

/** Geminiが自動生成した概要 **/
ビットコインの信用は、ブロックチェーンという技術に基づいています。取引記録をブロックにまとめ、暗号技術を用いて安全性を確保し、世界中のコンピュータに分散保存することで改ざんを防ぎます。マイナーと呼ばれる人々がトランザクションを検証しブロックチェーンに追加することで、ビットコインが生成されます。この検証作業には高度な計算が必要で、成功したマイナーは報酬としてビットコインを受け取ります。この報酬システムと分散管理によって、ビットコインの信用と不正防止が実現されています。

 

SOY CMSのサイトのバックアップをDropboxで行う

/** Geminiが自動生成した概要 **/
SOY CMSサイトのDropboxバックアップ方法を紹介。まずDropboxアカウントを作成し、サーバーに64ビット版CLI版Dropboxをインストール。サーバをDropboxアカウントにリンク後、バックアップスクリプト(dbbackup.sh)を作成し、cronで毎朝3時にサイトディレクトリをzip圧縮してDropboxへ同期させるよう設定。自動起動設定としてcrontabの@rebootを利用。debファイル経由のインストール方法も追記。再起動しない場合はdropbox start -iコマンドを試す。パスワード付きzip化などの関連記事へのリンクも掲載。

 

プログラミングで素数を探してみよう

/** Geminiが自動生成した概要 **/
プログラミング教育の一環として、中学生にエラトステネスの篩を使わずに素数を求める課題を与えた。5が素数である理由を問うことで、生徒に思考過程を明確に説明させることを促した。生徒たちは、与えられた自然数以下の既知の素数で割り切れないことを確認することで素数判定ができることに気づき、JavaScriptでプログラムを実装した。2を初期素数として配列に格納し、3以上の自然数について、配列内の素数で割り切れるか確認し、割り切れなければ配列に追加していくことで、指定範囲内の素数を全て出力することに成功した。この経験を通して、プログラミング教育における論理的思考の重要性を再認識した。

 

二点を端点とする線分を描写する

/** Geminiが自動生成した概要 **/
本書では、Pythonで行列プログラマーの課題に挑戦し、二点を端点とする線分を描写する方法を解説している。ベクトルの加算・減算をコンピュータで表現するには凸結合の概念が重要となる。 具体的には、二点v, uの座標に対し、α(0≦α≦1)を用いてαu + (1-α)vを計算することで、線分上の点を表現できる。 コード例では、0.01刻みでαを変化させ、100個の点を生成することで線分を描写している。 結果として、pt1とpt2を端点とする線分が描画された。

 

Pythonの内包表記

/** Geminiが自動生成した概要 **/
生物学出身の筆者は数学を学び直す中で、行列プログラマーの練習問題1.4.10に挑戦した。画像は多重リストとして読み込まれ、各要素は色のタプルを持つ。課題は内包表記を用いて、明度120以下のピクセルを複素数に変換し、ガウス平面にプロットすることだった。 初期の試行ではy軸が反転したため、画像の高さを利用してy座標を調整することで解決した。最終的な内包表記は`pts = {(x+(189 - y)*1j) for (y, d) in enumerate(data) for (x, v) in enumerate(d) if v[0] < 121}`となり、正しく画像をガウス平面にプロットできた。

 

zshの起動と同時にtmuxも起動してほしい

/** Geminiが自動生成した概要 **/
zsh起動時にtmuxも自動起動させる方法について解説。zshの設定ファイル`.zshrc`に`[[ -z "$TMUX" && ! -z "$PS1" ]] && tmux`を追記することで実現。この設定により、端末起動時にtmuxが既に起動しているかどうかを`$TMUX`で確認し、起動していない場合は`tmux`コマンドを実行する。結果、端末起動と同時にtmuxも起動し、ステータスバーが表示されるようになる。

 

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

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

 

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

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

 

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

/** Geminiが自動生成した概要 **/
楽天市場の商品登録作業効率化のため、PHPによるローカル検証環境構築を目指し、複数PCへのインストール手順を記録している。今回はApache2.4のインストール方法を紹介。まずPCが64ビットか確認後、Apache動作に必要なVisual C++再頒布可能パッケージをインストールする。次にApacheの64ビット最新版をダウンロード、解凍し、Apache24フォルダをCドライブ直下に配置。httpd.confのServerNameをlocalhost:80に修正する。Windows環境変数のPathにC:\Apache24\bin;を追加し、コマンドプロンプトでhttpd -k startを実行。ブラウザでhttp://localhostにアクセスし"It Works!"が表示されればApacheのインストールは完了。次回はPHPのインストールについて。

 

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

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

 

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

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

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

Powered by SOY CMS   ↑トップへ