Skip to content

Instantly share code, notes, and snippets.

@elzup
elzup / useFitty.ts
Created June 14, 2021 09:45
fitty for react
import { useEffect, useRef } from 'react'
import fitty from 'fitty'
export function useFitty() {
const ref = useRef<HTMLDivElement>(null)
useEffect(() => {
if (!ref.current) return
fitty(ref.current)
ref.current.addEventListener('fit', (e) => {
// perrin(n) / n === 0
// =
// isPrime(n)
const perrinMemo: [bigint, bigint, bigint] = [0n, 2n, 3n]
const primeMemo: number[] = [2, 3]
function perrinNext(): bigint {
const next = perrinMemo[0] + perrinMemo[1]
perrinMemo[0] = perrinMemo[1]
#!/bin/bash
# this script dependence "pup", "jq"
USERNAME=$1
SELECTOR='tr:nth-child(2) span:nth-child(1) json{}'
USERDATA=$(curl -s https://atcoder.jp/users/$USERNAME |pup $SELECTOR)
COLOR=$(echo $USERDATA |jq --raw-output ".[0].class" |sed 's/user-//')
RATE=$(echo $USERDATA |jq --raw-output ".[0].text")
{
"name": "competitive-pg-wrokspace",
"version": "1.0.0",
"main": "index.js",
"author": "elzup <guild0105@gmail.com>",
"license": "MIT",
"devDependencies": {
"@types/node": "^13.5.3",
"atcoder-cli": "^2.0.4",
"eslint": "^6.8.0",
@elzup
elzup / make_badge.sh
Last active March 9, 2020 01:36
create atcoder badge. (ex. `./make_badge.sh anozon`
#!/bin/bash
# this script dependence "pup", "jq"
USERNAME=$1
SELECTOR='tr:nth-child(2) span:nth-child(1) json{}'
USERDATA=$(curl -s https://atcoder.jp/users/$USERNAME |pup $SELECTOR)
COLOR=$(echo $USERDATA |jq --raw-output ".[0].class" |sed 's/user-//')
RATE=$(echo $USERDATA |jq --raw-output ".[0].text")
@elzup
elzup / 0->100 arrow functions
Last active May 22, 2023 17:02
Goal: 100 Arrow functions, Anonymous function, lambda, closure example.
...
checks
// no args
// block
// implicit parameter
// assign
@elzup
elzup / day-changed.js
Created February 25, 2020 02:29
Run setTimeout at become tomorrow
const nextDay = () => new Date().setHours(0, 0, 0, 0) + 24 * 60 * 60 * 1000
const tommorowFromNow = () => nextDay() - new Date()
setTimeout(() => {
// code
}, tommorowFromNow())
@elzup
elzup / _app.tsx
Last active July 5, 2023 12:42
Next.js with typescript minimum pages/_document.tsx, pages/_app.tsx
import { AppProps } from 'next/app'
import Head from 'next/head'
const App = ({ Component, pageProps }: AppProps) => (
<>
<Head>
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
@elzup
elzup / cdr-recent-dirs-clean.sh
Created January 21, 2020 09:19
clean no exists directories
#!/bin/sh
cat ~/.chpwd-recent-dirs \
| sed -e 's/^..\(.*\)./\1/g' \
| while read line
do
if [ -d "$line" ]; then
echo "\$'$line'"
fi
done
@elzup
elzup / functions_index.js
Last active January 9, 2020 01:30
Cloud Functions から Firebase Cloud Messaging を呼び出す最小構成
import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'
admin.initializeApp({
credential: admin.credential.applicationDefault(),
// databaseURL: 'https://hoge.firebaseio.com/',
})
export const api = functions.https.onRequest(async (req, res) => {
const message = {