Skip to content

Instantly share code, notes, and snippets.

View ver-1000000's full-sized avatar
😍
Love you!

佐々木 匠太 ver-1000000

😍
Love you!
View GitHub Profile
(1..1000000).reduce { |a, e| a = "#{a * e}".sub(/\d*?(\d{0,9})0*$/, '\1').to_i }
@ver-1000000
ver-1000000 / toggle-tablet-monitors.rb
Last active March 16, 2020 16:41
xsetwacomを用いて、タブレットのマッピングをトグルで切り替えるrubyワンライナー
#! /usr/bin/env ruby
`xsetwacom list`.each_line { |e| `xsetwacom set "#{e.split[0..-5].join(' ')}" MapToOutput next` if e[/STYLUS|ERASER/] }

ラップトップPCを修理に出してまっさらな状態にしたので、 新しくLinux環境を構築し直しました。

sda1 win7システム/リカバリ領域
sda2 win7
sda4 メーカーリカバリ領域?

みたいな構成の500GBHDDに、win7についてるパーティショニングツールでsda2を縮小、

@ver-1000000
ver-1000000 / dynmap-chat-logger.js
Last active August 14, 2023 05:07
Chromeで任意のMinecraftのDynmapを開いて、ロケーションバーに`javascript:`って打った後にコピペしてエンターするとチャットログが見れる画面が生まれるやつ
d = document; a = d.createElement('pre'); d.body.appendChild(a); a.style = 'position:fixed;resize:both;top:200px;height:200px;width:400px;overflow:auto;white-space:pre-wrap;background:#46486787;z-index:1'; q = (x) => d.querySelectorAll(x)[0]; m = q('.messagelist'); t = ''; o = new MutationObserver(_ => { tt = ((q('.messagerow')||{}).innerText||'').trim(); if (tt && t != tt) { a.innerText = `[${new Date().toLocaleString('ja-JP')}] ${tt}\n\n${a.innerText}`; t = tt; } }); o.observe(m, { childList: true })
@ver-1000000
ver-1000000 / key-track-by.pipe.ts
Last active September 30, 2022 01:05
AngularのTrackByFunctionをカンタンに作るパイプ
import { Pipe, PipeTransform } from '@angular/core';
/**
* `{ id: number, name: string }[]`のような、ユニークな値を持つオブジェクトの配列に対して、
* 簡単に{@link https://angular.io/api/core/TrackByFunction TrackByFunction}を設定するためのパイプ。
*
* @example
* <!-- `{ id: number, name: string }[]` -->
* <div *ngFor="let item of items; trackBy: 'id' | keyTrackBy">{{ item.id }}: {{ item.name }}</div>
*
@ver-1000000
ver-1000000 / minecraft_log_notifier_to_slack.sh
Last active May 6, 2020 04:37
swatchdogコマンドを活用し、MinecraftのログをSlackに通知するやつ
#!/bin/bash
WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/xxxxxxxxxxxxxxxxxxxxxxxx"
USERNAME="MinecraftLogger"
CHANNEL="#minecraft"
ICON=":minecraft:"
TEXT=`echo "$*" | sed 's/<\(\w\+\)>/<:\1:>/'`
TEXT=`echo "$TEXT" | sed 's/Stopping server/サーバーを *終了* しています/'`
TEXT=`echo "$TEXT" | sed 's/Starting minecraft server/サーバーを *起動* しています: /'`
@ver-1000000
ver-1000000 / get-chrome-history-links.js
Created July 3, 2020 03:26
`chrome://history/?q=hoge`の履歴一覧から、URLとページタイトルの一覧をするやつ
@ver-1000000
ver-1000000 / fetch-dom.js
Last active August 24, 2020 06:38
RSSとかを取得するやつ
/**
* {@param} url 取得したいDOMを返すURL
* {@param} mineType 取得したいDOMの[MINE TYPE]{@link https://developer.mozilla.org/ja/docs/Web/API/DOMParser#Argument02}
*
* url指定するとRSSフィードとかhtmlとかxmlとかが取得できるやつ。
*
* - 取得したいDOMと別ドメインで実行すると、CORSポリシーで弾かれるのでその辺注意
*/
const fetchDOM = async (url, mimeType = 'application/xml') => {
let body = '';
/**
* {@link https://music.youtube.com/library/uploaded_albums}を開いてブラウザのコンソールログで実行すると
* アルバムをどんどん削除していくスクリプトです。
*
* なんだかときどき「クリックしてもアルバムの削除が実行されない」自体に陥ってしまうので、
* そういうときは手動で「Youtube Music/アップロード」のドロップダウンを開いて、再選択する必要があります。
* (頑張ればここもケアできるけどめんどくさくてやめた)
*
* - ※ 本スクリプトを実行した際の損失などについて、製作者は一切責任を負いません。
*/
const optimalFontSize = (word, r, fontFamily, fontWeight) => {
const text = document.createElementNS('http://www.w3.org/2000/svg', 'text')
text.textContent = word
text.setAttributeNS(null, 'font-family', fontFamily)
text.setAttributeNS(null, 'font-weight', fontWeight)
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')
svg.appendChild(text)
document.body.appendChild(svg)
let ok = 0
let ng = 100