Skip to content

Instantly share code, notes, and snippets.

🕊
Happy Hacking

Sho Kusano rosylilly

🕊
Happy Hacking
Block or report user

Report or block rosylilly

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@rosylilly
rosylilly / removeSpam.pl
Last active Sep 25, 2019 — forked from tateisu/removeSpam.pl
suspend user who in pawoo.net and his note like 'めったにPawooを使いません'.
View removeSpam.pl
#!/usr/bin/perl --
use strict;
use warnings;
use utf8;
# mastodonのdockerコンテナの rails console はreadline がUS-ASCIIなので、文字列リテラルはエスケープが必要
sub escapeNonAscii($){
my($a) = @_;
$a =~ s/([\x{80}-\x{fffff}])/"\\u{".sprintf("%x",ord $1)."}"/ge;
$a;
View isucon-checklist.md
  • HTTP/2
  • Accept-Encoding: gzip, brotli
  • Cache-Control
  • その DB ロックは Redis に移せないか
  • IN と JOIN どっちが早いか
  • 静的ファイル gzip した?
  • stackprof した?
  • ベンチマーカーのリクエストヘッダ全部みた?
  • pprof した?
  • 全台使い切ってる?
View isucon9q.md

ISUCON9 に出た

リポジトリにやったことは書いてあるし、今回やらなかったことは出来なかったことなので省略。

いくつか思い出深いものだけ言及していく。

  • c9248d474db448e5367084abf42a333049abed09: 手元でもリモートの画像が出るようにした。手元に全部の画像持ってくるのは無駄だと思ったので。これは案外重要で、スクロール幅によってページングリクエストが発火されるので、手元の試験時に大事になる。
  • fc8e55da988972826cfbed938ed2c603ee4346da: これもそう。存在しない localhost がデフォルトである価値はない。最初から用意されてるモックサービスを見に行くように。開発をしやすくしておく、というのを初手に打てるようになると、6年目で落ち着いてきたなと思わなくもない。
  • f70d520bf123d19a6aec7874d10d4db10abac2fd: クエリを JOIN に。あとから思えば IN で別引きしたほうが items のロックに巻き込まれなかったなと思う。反省点。
  • 35a525a95c9bdd063acf89c060471d35774eac2e: このへんで外部 API へのリクエストがヘビーだと気づいて Redis にキャッシュし始める。実際効果はあった。この時点で13:1頃。
View keybase.md

Keybase proof

I hereby claim:

  • I am rosylilly on github.
  • I am rosylilly (https://keybase.io/rosylilly) on keybase.
  • I have a public key ASDXu2zmeAhbqsBCB6g3d2j_xpXno9PUlRSpbqelCQXFyQo

To claim this, I am signing this object:

@rosylilly
rosylilly / myfi.rb
Created Feb 28, 2018
DNS switcher for macOS
View myfi.rb
#!/usr/bin/env ruby
require 'optparse'
require 'pathname'
require 'yaml'
VERSION = '0.0.1'
HOMEDIR = Pathname.new(ENV['HOME'])
options = {
View partial_validator.rb
# frozen_string_literal: true
class PartialValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
return if options[:if] && !valuable(record, options[:if])
return if options[:unless] && valuable(record, options[:unless])
value.validate
value.errors.messages.each_pair do |attr, messages|
messages.each do |message|
View index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JS TEST</title>
</head>
<body>
<script type="text/javascript">
(function() {
"use strict";
View guideline.md

crystal-jp/issues's guideline

Issuer の皆さんへ

どんな時に作るのか

こんなことでお困りの時は、お気軽に issue を作っていただければ、何かお力になれるかもしれません。

  • Crystal 本体や Crystal 関連のライブラリに問題を見つけたけど、本家のリポジトリに報告すべきか悩むとき。(bugs ラベルを付ける)
  • Crystal 本体や Crystal 関連のライブラリに要求したい機能があるけど、本家のリポジトリで話し合う前に意見を求めたいとき。(features ラベルを付ける)
View hello-world.cr
puts "Hello, World"
STDOUT.puts "Hello, World"
class Point
property :x, :y
def initialize(@x, @y)
end
end
@rosylilly
rosylilly / dci.go
Last active Aug 29, 2015
これ DCI なんでは?
View dci.go
package main
import (
"fmt"
)
type User struct {
Name string
}
You can’t perform that action at this time.