お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
投稿日:
ガジェット::Surface

誤タッチが出て面倒なので無効化する。Win+Iからタッチパッドも無効化しておくとよい

確認環境

Env Ver
Surface Laptop 4 -
Windows 11 22H2(22621.3155)

やり方

  1. デバイスマネージャーを開く
  2. ヒューマンインターフェース>Intel(R) Precise Touch and Stylus (Intel(R) PTS)>ドライバー>デバイスを無効にする
  3. OS再起動
  4. 無効化を確認

以下のようなコードを書いたときにmockFnにイベント引数が渡らないが、これをどうにかして取る方法。結論から言うとまともに取れないが、試行錯誤した時のログとして残しておく

const mockFn = jest.fn();
render(<input onChange={mockFn} />);
fireEvent.change(inputElement, { target: { value: 'aaa' } });

確認環境

Env Ver
@swc/core 1.3.66
@swc/jest 0.2.26
@testing-library/jest-dom 5.16.5
@testing-library/react 14.0.0
jest 29.5.0
react 18.2.0

サンプルコード

これは以下のように書くとfireEventの第二引数で指定したtarget.valueの部分だけは一応取れる。

理由としてはfireEventelement.dispatchEventを読んでいると思われるためだ。余り深くは追っていないが、react-testing-libraryの実装上は多分そうなっていると思われる。

import { fireEvent, render } from '@testing-library/react';

it('test', () => {
  const mockFn = jest.fn((ev) => {
    console.log(ev);
  });
  const { container } = render(<input id="hoge" onChange={mockFn} value={'a'} />);
  const element = container.querySelector('input');
  if (element === null) throw new Error();
  element.dispatchEvent = jest.fn();
  fireEvent.change(element, {
    target: {
      value: 'bbb'
    }
  });

  expect(element.dispatchEvent.mock.instances[0].value).toBe('bbb');
});
投稿日:
言語::Perl

確認環境

Env Ver
Perl 5.34.0

コード例

キャプチャ変数をifのスコープに封じ込める必要がある

my $text = <<EOF;
  ```unya
  hoge
    piyo
      fuga
  hpf
  ```
EOF

my @lines = split(/\n/, $text);

foreach my $line (@lines){
  if ($line =~ /^(?<indent> *)(?<bquote>```)(?<lang>[a-z]*)$/) {
    print "SYMBOL: '$+{indent}', '$+{bquote}', '$+{lang}'\n";
  } else {
    print "$line\n";
  }
}

上手くいかないコードの例

その1

$+変数はマッチするまで中身が消えないので、このプログラムは予期した動きにならない

my $text = <<EOF;
  ```unya
  hoge
    piyo
      fuga
  hpf
  ```
EOF

my @lines = split(/\n/, $text);

foreach my $line (@lines){
  $line =~ /^(?<indent> *)(?<bquote>```)(?<lang>[a-z]*)$/;
  print "$+{indent}, $+{bquote}, $+{lang}\n";
}

その2

my $text = <<EOF;
  ```unya
  hoge
    piyo
      fuga
  hpf
  ```
EOF

my @lines = split(/\n/, $text);

foreach my $line (@lines){
  $line =~ /^(?<indent> *)(?<bquote>```)(?<lang>[a-z]*)$/;
  if (defined $+) {
    print "$line: ";
    print "$+{indent}, $+{bquote}, $+{lang}\n";
    # この変数はundef出来ない
    undef $+;
  } else {
    print "$line\n";
  }
}
投稿日:
技術::DNS技術::メール技術::セキュリティ

ここ最近なりすましメールが目立つのでなりすましメール防御対策を取りましょうという話。

なりすましメールが増えている一例

ここ数日の間にイラストレーターのIxy先生やMastodonインスタンス管理人のにょき氏といった一定の知名度を持つ人物を中心になりすましメールの被害にあっているようだ。

ここまで目立つのは余り見聞きしなかったので恐らくここ昨今のGMailとかの騒動を見たところで、なりすましメールを作れることに気づいた人物が愉快犯的に行為をしているのだろう。

取りうる防御策

個人レベルでできる対策としてはDNSレコードやメールサーバーの設定にSPF, DKIM, DMARCを設定することだ。これらの内容についてはGoogleによるDMARC を使用してなりすましと迷惑メールを防止するが詳しい。

さくらのレンタルサーバーを利用している場合は以下が参考になる。

さくらのレンタルサーバーを利用して外部DNSを利用している場合は、私が以前書いたValue-DomainのドメインをさくらのレンタルサーバーのメールでSPF, DKIM, DMARC対応させるが参考になるだろう。

SPD, DKIM, DMARCの三点を設定することで相手のメールサーバーがこれらに対応している場合になりすましメールを迷惑メールとして分類したり、メールの受信を拒否できるとされているため、設定することでなりすましメールを防御できる可能性が高まる。

メール送信に使っていないドメインに関しても以下のようなDMARCを設定しておくことで、悪意のある第三者によるなりすましを防げるだろう。

txt _dmarc v=DMARC1; p=reject; aspf=r; adkim=r

またメールサーバーを運用されている各位におかれては、SPD, DKIM, DMARCの三点を識別し、適切に受信メールをフィルタリングできる仕組みを導入して頂けると犯罪予告や迷惑メールによる被害を減らせる可能性があるので、是非とも導入を検討いただきたい。