Skip to content

Instantly share code, notes, and snippets.

@uemuraj
uemuraj / jdk-windows-x64.md
Created January 5, 2024 02:29
古い JDK 7 とか 8 を MSI でサイレントインストールしたい

Java7 は Oracle でしか入手できないようだ(と思う)。

  • MSI はいろいろなオプションがあるが、例えば /passive とした場合...
> jdk-7u80-windows-x64.exe /passive
  • JRE はインストールされずに JDK だけがインストールされる
  • 環境変数は特に設定されないが、レジストリにインストールパスなどは記録される
@uemuraj
uemuraj / powershell_send_mail.md
Created January 5, 2024 00:40
PowerShell でメールを送信する時のポイント
  • SMTP サーバを設定する必要がある(?)ため MX レコードを引いてからメール送信する
  • 異なる種類のオブジェクトが2つ返るように見える
  • Microsoft.DnsClient.Commands.DnsRecord_MXTypeName: Microsoft.DnsClient.Commands.DnsRecord_A の2種類
PS> Resolve-DnsName -Name hoge.co.jp -Type MX
Name                                Type   TTL   Section    NameExchange                      Preference
----                                ----   ---   -------    ------------                      ----------
hoge.co.jp                          MX     516   Answer     smtp.hoge.co.jp                   10
@uemuraj
uemuraj / hmac.h
Created August 11, 2023 10:38
HMAC は関数一発で計算できたんかい。
#pragma once
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#pragma comment (lib, "bcrypt")
#include <Windows.h>
#include <bcrypt.h>
@uemuraj
uemuraj / options.md
Created February 1, 2023 00:13
コマンドラインオプションの覚書

grep のオプション

  • -E 正規表現を使う
  • -c 数を数えるだけ
  • -o マッチした単語だけ(行全体は出力しない)
  • -h ファイル名を出力しない(ソートの邪魔にならない)

sort のオプション

  • -t , カンマをフィールドの区切り文字にする
  • -k 8n 8番目のフィールドを数値として並べ替える
@uemuraj
uemuraj / narrow-cast-test.cpp
Created January 22, 2023 03:41
narrow cast のお試し。
#include "pch.h"
#include <limits>
#include <stdexcept>
#include <type_traits>
#if !defined(__cpp_if_constexpr) || !defined(__cpp_static_assert)
#error
#endif
@uemuraj
uemuraj / three-way.cpp
Created January 22, 2023 03:30
三方比較演算子と一貫比較。これはらくちん。
#include "pch.h"
#include <compare>
#include <iostream>
// https://cpprefjp.github.io/lang/cpp20/consistent_comparison.html
struct Hoge
{
int a, b;
@uemuraj
uemuraj / VTMode.cpp
Created January 22, 2023 03:04
コンソールの仮想ターミナル シーケンス
//
// https://learn.microsoft.com/ja-jp/windows/console/console-virtual-terminal-sequences
//
#if 1
#include <stdio.h>
#include <wchar.h>
#include <windows.h>
#include <system_error>
#include <locale>
@uemuraj
uemuraj / wsprintf-test.cpp
Created January 19, 2023 00:53
wsprintf の最大文字数。
#include "pch.h"
#define WIN32_LEAN_AND_MEAN
#define NOMINMAX
#include <Windows.h>
#include <algorithm>
// https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-wsprintfw
//
// * 1,024 bytes と記載されているが文字数の誤りと思われる
@uemuraj
uemuraj / fizzbuzz.cpp
Last active January 18, 2023 23:39
FizzBuzz あれこれ
#include <iostream>
#if 0
int main()
{
for (int i = 1; i <= 100; ++i)
{
const int fizz = i % 3, buzz = i % 5;
@uemuraj
uemuraj / github-artifact.sh
Created November 24, 2022 06:41
GitHub Actions の成果物をダウンロードする。
#!/bin/bash
OWNER=${1:?}
REPO=${2:?}
URL=`curl -sS -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${YOUR_TOKEN}" https://api.github.com/repos/${OWNER}/${REPO}/actions/artifacts | jq -r '.artifacts[0].archive_download_url'`
ZIP=$(mktemp)
curl -sS -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${YOUR_TOKEN}" -o ${ZIP} -L ${URL}
mkdir -p "${OWNER}/${REPO}"
unzip -j -o -d "${OWNER}/${REPO}" ${ZIP}
rm ${ZIP}