2024年12月21日土曜日

Linux コマンド: 特定日時以降のファイルとディレクトリを検索する

 例えば、2023年6月1日以降に更新されたファイルとディレクトリを検索するには、以下のようにします。

$ find /path/to/search -newermt "2023-06-01"


2024年12月12日木曜日

Python クロージャーによるカウンタ作成

Pythonのクロージャーによるカウンタ作成

def counter():
    num = 0

    def add_one():
        nonlocal num
        result = num #JavaScriptの後置インクリメントに相当する操作で0始まりにする
        num += 1
        return result

    return add_one #関数を返す ()を付けない


counter1 = counter()

print(counter1()) #結果 0
print(counter1()) #結果 1
print(counter1()) #結果 2
print(counter1()) #結果 3

ポイント:

  • add_one()の中から外側の num を増加させること(Pythonでは nonlocal num とすることにより変数のスコープを変更)
  • return add_one  のように関数を返すこと(add_one()ではない)
  • PythonはJSのn++相当が無いので0始まりにする操作を追加
  • return文は最後に書く(returnの後で関数定義ができないため)

JavaScriptのクロージャーによるカウンタ作成基礎

JavaScriptのクロージャーによるカウンタ作成基礎

function counter() {
    let num = 0;
    return add_one; //関数を返す ()を付けない

    function add_one() {
        return num++; //後置インクリメントで0始まりにする(まずnを返してからn+1を実行)
    }
}

const counter1 = counter();

console.log(counter1()); //結果 0
console.log(counter1()); //結果 1
console.log(counter1()); //結果 2
console.log(counter1()); //結果 3

ポイント:

  • add_one()の中から外側の let num を増加させること
  • return add_one;  のように関数を返すこと(add_one()ではない)
  • n++で0始まりにすること

2024年11月29日金曜日

jQueryでscrollTop, scrollHeight, clientHeightを求める方法

 

scrollTop, scrollHeight, clientHeightをjQueryで求める方法です。

$(document).ready(function() {

    let element = $('#myDiv'); // 対象の要素


    let scrollTop = element.scrollTop();

    let scrollHeight = element[0].scrollHeight;

    let clientHeight = element[0].clientHeight;


    console.log('Scroll Top:', scrollTop);

    console.log('Scroll Height:', scrollHeight);

    console.log('Client Height:', clientHeight);

});


2024年10月9日水曜日

HTML テーブル アクセシビリティの例

HTML table accessibility

scope属性

<table class="table table-bordered">
  <caption>商品の販売データ</caption>
  <thead>
    <tr>
      <th scope="col">商品名</th>
      <th scope="col" colspan="2">販売数</th> <!-- 2列にまたがるヘッダー -->
      <th scope="col">総売上</th>
    </tr>
    <tr>
      <th scope="col"> </th> <!-- 空のセル -->
      <th scope="col">国内</th>
      <th scope="col">海外</th>
      <th scope="col"> </th> <!-- 空のセル -->
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">商品A</th>
      <td>100</td>
      <td>50</td>
      <td>150</td>
    </tr>
    <tr>
      <th scope="row">商品B</th>
      <td>200</td>
      <td>80</td>
      <td>280</td>
    </tr>
  </tbody>
</table>
商品の販売データ
商品名 販売数 総売上
国内 海外
商品A 100 50 150
商品B 200 80 280

headers属性

<table class="table table-bordered">
  <caption>商品の販売データ</caption>
  <thead>
    <tr>
      <th id="product">商品名</th>
      <th id="sales" colspan="2">販売数</th>
      <th id="total">総売上</th>
    </tr>
    <tr>
      <th> </th> <!-- 空のセル -->
      <th id="domestic">国内</th>
      <th id="international">海外</th>
      <th> </th> <!-- 空のセル -->
    </tr>
  </thead>
  <tbody>
    <tr>
      <td headers="product">商品A</td>
      <td headers="sales domestic">100</td>
      <td headers="sales international">50</td>
      <td headers="total">150</td>
    </tr>
    <tr>
      <td headers="product">商品B</td>
      <td headers="sales domestic">200</td>
      <td headers="sales international">80</td>
      <td headers="total">280</td>
    </tr>
  </tbody>
</table>
商品の販売データ
商品名 販売数 総売上
国内 海外
商品A 100 50 150
商品B 200 80 280

ARIA role属性

<table role="table" class="table table-bordered">
  <caption>商品の販売データ</caption>
  <thead role="rowgroup">
    <tr role="row">
      <th id="product" role="columnheader">商品名</th>
      <th id="sales" role="columnheader" colspan="2">販売数</th>
      <th id="total" role="columnheader">総売上</th>
    </tr>
    <tr role="row">
      <th> </th> <!-- 空のセル -->
      <th id="domestic" role="columnheader">国内</th>
      <th id="international" role="columnheader">海外</th>
      <th> </th> <!-- 空のセル -->
    </tr>
  </thead>
  <tbody role="rowgroup">
    <tr role="row">
      <td role="cell" headers="product">商品A</td>
      <td role="cell" headers="sales domestic">100</td>
      <td role="cell" headers="sales international">50</td>
      <td role="cell" headers="total">150</td>
    </tr>
    <tr role="row">
      <td role="cell" headers="product">商品B</td>
      <td role="cell" headers="sales domestic">200</td>
      <td role="cell" headers="sales international">80</td>
      <td role="cell" headers="total">280</td>
    </tr>
  </tbody>
</table>
商品の販売データ
商品名 販売数 総売上
国内 海外
商品A 100 50 150
商品B 200 80 280

2024年10月4日金曜日

正規表現で前後で同じ内容に一致させる場合には「バックリファレンス」

 例えば、 以下のようなパターンの場合

<foo@example.com<mailto:foo@example.com>> 

正規表現は

<(.+?)<mailto:(.+?)>> 

となりますが、前方の (.+?) と後方の (.+?) が同じ文字列であることを指定するには、2つ目のキャプチャグループに対してバックリファレンス (\1) を使用して以下のようにします。

<(.+?)<mailto:\1>>


2024年10月3日木曜日

Windows IISサーバーの停止

Windows 11に設置したIISサーバーを停止するコマンド

停止
> iisreset /stop

開始
> iisreset /start