Skip to content

Instantly share code, notes, and snippets.

View greymd's full-sized avatar
😉
Nanchatte

Yasuhiro Yamada greymd

😉
Nanchatte
View GitHub Profile
@greymd
greymd / ping_nyan.sh
Last active June 11, 2022 23:36
通常のpingで「にゃーん」を表示するシェル芸
#!/bin/bash
# From: https://twitter.com/grethlen/status/906154326975905793
sudo ping -i 0 -c 1400 pong4.kooshin.net \
| grep -oP "icmp_seq=\K\d+" \
| cat - <(seq 1 1400) \
| sort -n \
| uniq -c \
| awk '{printf $1}' \
| fold -w70 \
@greymd
greymd / Main.java
Created February 10, 2017 05:14
Prime numbers with Java8 Stream API
import java.util.stream.IntStream;
class Main {
public static void main(String args[]) {
IntStream.rangeClosed(2, 100)
.filter(i -> IntStream.rangeClosed(2, (int)Math.sqrt(i))
.allMatch(j -> i%j != 0))
.forEach(n -> {
System.out.println(n);
});
@greymd
greymd / pack_unpack_practice.md
Last active July 10, 2021 14:04
pack/unpack 練習

Perl書くくせにpack/unpackの動作が全然わからなかったため休日に少し練習。 以下、チラシの裏程度のメモ書き。校正しておらず、自分が思いついた思考の順序で一発書きしたもの。 たぶん間違えた内容を含んでます。

pack

packは、引数に配列、あるいは文字列を受け取って、それを規則に従ってバイナリに変換する。

入力: 配列 or 文字列 出力: バイナリ

@greymd
greymd / base64sh.sh
Created November 3, 2016 08:15
base64 encoder given by build-in linux commands.
base64sh() {
local input=${1:-$(cat)}
paste <(seq 0 63 | sed 's/^/obase=2;ibase=10;/' | bc | sed 's/^/00000/' | grep -oE '.{6}$') \
<(echo {A..Z} {a..z} {0..9} + / | xargs -n 1) | \
awk '{print "s|"$1"|"$2"|"}' | \
sed -f - <(echo -n $input| perl -ne 'print unpack("B*", $_)."0000"' | \
fold -w 6 | grep -oE '.{6}$') | tr -d '\n' | fold -w 4 | sed 's/$/===/' | grep -oE '^.{4}' | tr -d '\n' | awk 1
}
# Usage: base64sh
@greymd
greymd / osc_copy.vim
Last active August 22, 2020 14:41
OSC52 copy with Vim
" Clipboard integration by Operating System Controls from Vim
" Usage:
" Yank something and run :OscCopy
" or
" Copy range in visual mode and run :'<,'>OscCopyRange
" From: https://stackoverflow.com/questions/1533565/how-to-get-visually-selected-text-in-vimscript
function! GetVisualSelection()
let [lnum1, col1] = getpos("'<")[1:2]
@greymd
greymd / MyViewController.swift
Created February 2, 2020 18:57
UIStackView test
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController {
override func viewDidLoad() {
view.backgroundColor = .white
let s1 = generateLabel()
let s2 = generateLabel()
let s3 = generateLabel()
@greymd
greymd / MyViewController.swift
Last active January 21, 2020 23:44
Scroll text animation in Swift
import UIKit
import PlaygroundSupport
class MyViewController : UIViewController {
var label:UILabel!
var label2:UILabel!
let gap:CGFloat = 50
let rep:Float = Float.infinity
let shape:CAShapeLayer = {
return CAShapeLayer()
@greymd
greymd / fizzbuzz.egi
Last active October 2, 2019 12:33
EgisonでFizzBuzz
; ひねくれた方法な気がする。
(map
3#(match [%1 %2 %3] something {
[[_ ,0 ,0] FizzBuzz]
[[_ ,0 _] Fizz]
[[_ _ ,0] Buzz]
[[$i _ _] i]})
(map 1#[%1 (modulo %1 3) (modulo %1 5)] (take 100 nats)))
@greymd
greymd / function.sh
Last active September 11, 2019 14:31
Run given command as is with Custom AWS Lambda Runtime
# Input is like {"command":"bHMgLWFsIHwgZ3JlcCBob2dlaG9nZQo="}
function handler () {
EVENT_DATA="$1"
local _cmd
local _tmpdir
_cmd="$(tr -d '[:space:]' <<<"$EVENT_DATA" | sed -E "s/\{[\"']command[\"']:[\"']([0-9A-Za-z+/=]*)[\"']\}/\1/" | base64 --decode)"
_tmpdir="$(mktemp)"
eval "$_cmd" 2> "$_tmpdir-stderr" > "$_tmpdir-stdout" || true
echo "{\"stdout\": \"$(cat "$_tmpdir-stdout" | base64 | tr -d '\n')\", \"stderr\": \"$(cat "$_tmpdir-stderr" | base64 | tr -d '\n')\"}" || true
rm -rf "$_tmpdir-stderr" "$_tmpdir-stdout" "$_tmpdir"
@greymd
greymd / equalized_partition_nums.sh
Last active August 12, 2018 01:42
Divide integer num much equally with bash
#!/bin/bash
ceiling () {
local divide="$1";shift
local by="$1"
printf "%s\\n" $(( ( divide + by - 1 ) / by ))
}
equalized_partition_nums () {
local number="$1";shift
local count="$1"