Skip to content

Instantly share code, notes, and snippets.

@advanceboy
advanceboy / firefox-pdfjs-to-clipboard-base64-png.js
Last active August 11, 2021 15:44
Firefox の pdf.js で 現在表示されている PDF ファイルを、 canvas を通じて PNG 画像の base64 に変換して、クリップボードに転送します。 変換したいページを、「右クリック」→「調査」 で ウェブ開発ツールを開き、インスペクターの場所はいじらないようにしながら、コンソールにコードを貼り付けて実行した後、ページ上でどこかをコピー(Ctrl+C)すれば、クリップボードに 画像の Data URI がセットされます。
(() => {
const baseElm = $0;
document.addEventListener('copy', (e) => {
e.preventDefault();
e.clipboardData.setData('text/plain', baseElm.closest('div.page').querySelector('canvas').toDataURL('image/png'));
console.log('png image copied!');
}, { once: true });
})();
@advanceboy
advanceboy / Show-Hide-Test.cmd
Created December 17, 2015 17:28
Win32 API を呼び出して、 PowerShell のコンソールウィンドウを隠すテスト
start /MIN powershell -File "%~dpn0.ps1"
@advanceboy
advanceboy / Dispose-Appmonster3-apks.ps1
Last active February 28, 2016 19:04
Android の apk バックアップアプリ appmonster3 で SDカード にリビジョンごとにバックアップされた *.apk ファイルたちから、 最古ファイルと log10 毎の最新ファイル 以外をすべて削除・整理する。
$apkfiles = gci D:\Android\data\com.think_android.appmanagerpro\files\appmonster3\backup\*\rev\*.apk
$deletedlist = New-Object System.Collections.Generic.List[string];
$apkgrp | %{
$targets = $_.Group
$filessorted = $targets | ?{ $_.Length -NE 0 } | sort { [long][System.IO.Path]::GetFileNameWithoutExtension($_.Name) };
$saved = @();
$saved += $filessorted | select -First 1;
$saved += $filessorted | group { [System.Math]::Floor([System.Math]::Log10( [long][System.IO.Path]::GetFileNameWithoutExtension($_.Name) )) } | %{ $_.Group | select -Last 1; };
$targets -notcontains $saved;
@advanceboy
advanceboy / Update-TimeStampOnGitWorkingDirectly.ps1
Last active March 1, 2016 11:19
PowerShell 使って git diff で タイムスタンプを コミット時間 (commiter date) に変更する
git diff --name-only <commit> HEAD --diff-filter=CMART | gi | %{ $_.LastWriteTime = [datetime](git log --pretty=format:%ci --max-count=1 $_.FullName) }
@advanceboy
advanceboy / Difference-between-literal-and-new.ps1
Last active May 19, 2016 15:54
PowerShell の hashtable (System.Collections.Hashtable) と @{} の シリアライズ時 の挙動の違い。
$a = @{}
$b = New-Object hashtable
$a['a'] = 1
$a['A'] = 2
$b['a'] = 1
$b['A'] = 2
$a
# Name Value
# ---- -----
@advanceboy
advanceboy / appsettings.json
Last active June 25, 2016 12:58
DI を使って、 Entity Framework Core (SQLite) をコンソールアプリで実行するサンプル。 (.NET 4.5.1, .NET Core 両対応) Nuget から、以下のパッケージを Install-Package する必要がある Microsoft.Extensions.Logging.Debug Microsoft.Extensions.Logging.Console Microsoft.Extensions.Configuration.Json Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.Sqlite
{
"ConnectionStrings": {
"DefaultConnection": "Filename=Blogging.db"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
@advanceboy
advanceboy / PowerShell-differences-overview-of-the-scripting-capabilities-of-each-version.md
Last active September 1, 2016 14:10
PowerShell v3 以降のそれぞれのバージョン毎のスクリプティングを中心とした新機能のうち、私の独断で選んだ主な機能を列挙しました。

PowerShell バージョンごとのスクリプティング機能の新機能概略

PowerShell v3 以降のそれぞれのバージョン毎のスクリプティングを中心とした新機能のうち、私の独断で選んだ主な機能を列挙しました。
(PowerShell の本来の役割のはずの) コンピュータ管理機能などはばっさり省いています。

v3 から

PSCustomObject の型変換

@advanceboy
advanceboy / Register-NanacoGiftAutomatic.ps1
Last active February 3, 2023 14:39
大量の nanaco ギフトを、 InternetExplorer を操作して自動で登録する PowerShell スクリプト
<#
.SYNOPSIS
Automatic nanaco gift card registration tool PowerShell edition.
.DESCRIPTION
Set either 'CardNumber' or 'Password' parameter.
<CommonParameters> is not supported.
.EXAMPLE
PS > $NanacoNumber = '0000000000000000';
@advanceboy
advanceboy / Pipfile
Last active March 10, 2023 19:31
python selenium でページ全体のスクリーンショットを撮る
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
[dev-packages]
pylint = "*"
mypy = "*"
[packages]
selenium = "*"
@advanceboy
advanceboy / jinja_extends_w_code_on_flask.py
Created January 12, 2019 18:23
Flask + jinja でレイアウトの指定 (extends タグ) のテンプレートを ソースコード文字列 で指定するサンプル (ソースコードのライセンスは CC0)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Give the template inheritance of the `extends` tag as a template source string.
"""
from flask import Flask, render_template_string
from datetime import datetime
app = Flask(__name__)