2024年9月11日水曜日

細菌・ウイルスが空から来る可能性?

 Gigazineで「日本の上空3000mで病原菌を含む数百種類の微生物が発見される」という記事が出ていた。

 以前から、気にはなっていたが、ChatGPTに、「ウイルス等も、細かい粒子に付着して、浮遊して、遠く離れた場所まで飛んでいき、感染を広げる可能性もあるということでしょうか?」と質問したら、

 「はい、その通りです。病原菌を含む微生物が日本の上空3000メートルで発見されたという報告は、微生物が風や気流に乗って広範囲に移動できる可能性を示唆しています。ウイルスや細菌は、小さな粒子(例えば、塵やエアロゾルなど)に付着して空中を浮遊し、遠くまで運ばれることがあります。このような微生物が風に乗って遠距離に移動することで、環境中の他の場所で感染を広げる可能性が考えられます。」とのこと。黄砂に付着してくる可能性も否定できないとのことだった。確かにネットで検索すると、「砂塵によるバクテリア、カビ、ウイルス、花粉などの長距離輸送が可能である」と指摘されているようだ。黄砂は、今まで無機質だろうとあまり気にかけてなかったが、思った以上に危険なようなので、今後、気を付けたい。

 それにしても、日本でも、武漢のように、危険ウイルス(日本の場合はエボラウイルス)の研究施設ができたようなので、こんな話を聞くと、心配になってくる。

2024年9月9日月曜日

久々に移動運用

  7MHzは、夕方近くになるとコンディションがいいようだったので、近くの公園で電波を出してみた。59で、わりと安定したQSOができた。3エリア、1エリアの局長さんとコンタクト。とくに1エリアの局長さんは、いろいろ自作されている方だったので、リニアアンプ、リグ、PICといろいろとお話を聞かせていただきました。ふだん、シグナルレポート交換だけで終わることが多いけれど、今回は、興味深い話ができてよかった。

 下の写真は、移動で利用している 自作の釣り竿ANT+マッチング回路 かなり適当なマッチング回路だが、なんとかSWRは下がっている。釣り竿には、銅箔テープを貼って、導通するようにしている。アースはマグネットシート(A4サイズ)でもだいじょうぶだった。

 

2024年9月4日水曜日

C#で、テキストボックスの最初に、指定した文字が来るようにスクロールするメソッド

 ChatGPTで、コードをつくってもらったけれど、なかなかうまくいかなかった。Windowsメッセージ等のOSに近い部分は、ChatGPTに助けてもらったけど、コードの論理に関してはまだ、自分のような凡人プログラマにも及ばない感じがした。

 結局、自分でしばらく試行錯誤しながら、解決することになった。ChatGPTは、現実世界で試行錯誤は、できないわけなので、そこは、人間よりハンディがあるんだろうと思った。今日、NVIDIA株も急落した。AIに期待が大きすぎたか。。

  private const int WM_VSCROLL = 0x0115;
  private const int SB_LINEDOWN = 1;
  private const int SB_LINEUP = 0;
  [DllImport("user32.dll")]
  private static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
  public static void ScrollLines(System.Windows.Forms.TextBox textBox, int numberOfLines)
  {
      for (int i = 0; i < Math.Abs(numberOfLines); i++)
      {
          SendMessage(textBox.Handle, WM_VSCROLL, numberOfLines > 0 ? SB_LINEDOWN : SB_LINEUP, 0);
      }
  }
   public static void MoveCursorToText(string searchText,System.Windows.Forms.TextBox textBox)
  {
      // テキストボックス内の最初の位置にカーソルを移動
      textBox.SelectionStart = 0;
      textBox.SelectionLength = 0;
      textBox.ScrollToCaret(); // カーソルの位置にスクロール
      int index = textBox.Text.IndexOf(searchText, StringComparison.OrdinalIgnoreCase);
      if (index != -1)
      {               
          textBox.Focus();
          textBox.SelectionStart = index;
          textBox.SelectionLength = searchText.Length;          
          textBox.ScrollToCaret();        
          int lineIndex = textBox.GetLineFromCharIndex(index);
          int visibleLines = textBox.Height / textBox.Font.Height;

          if (lineIndex > visibleLines)
          {
              ScrollLines(textBox, visibleLines-1);
          }
          else
          {
              ScrollLines(textBox, lineIndex);
          }           
      }
      else
      {
          MessageBox.Show("Text not found.");
      }
  }