Skip to content

Instantly share code, notes, and snippets.

require 'time'
def convert_zone(orig, to_zone)
original_zone = ENV["TZ"]
utc_time = orig.gmtime
ENV["TZ"] = to_zone
to_zone_time = utc_time.localtime
ENV["TZ"] = original_zone
to_zone_time
end
@itkq
itkq / calc_gakubu_average.js
Last active July 10, 2017 15:33
東工大編入生が自分の学部成績の真の平均点を知るためのスクリプト
count=sum=0;$('div.tableSet01 > div > table > tbody > tr > td:nth-child(5)').each(function(){point_str=$(this).text();if(point_str=="認定"){point = 60; count++;}else if(point_str == "合格"){point=0;}else{point=Number(point_str);count++}sum+=point;});console.log(sum/count);

Keybase proof

I hereby claim:

  • I am itkq on github.
  • I am itkq (https://keybase.io/itkq) on keybase.
  • I have a public key ASDBnNWJy8KGros0EwG_jp_VkMHCY-1YYK8sTjm8xUAshAo

To claim this, I am signing this object:

@itkq
itkq / wsa1.md
Created December 20, 2017 08:07
WSA研 #1: サービスのパフォーマンス数値と依存関係を用いたサービス同士の協調スケール構想 / @itkq

WSA研 #1: サービスのパフォーマンス数値と依存関係を用いたサービス同士の協調スケール構想 / @itkq

本稿は WebSystemArchitecture 研究会 #1 の予稿です。

はじめに

近年 Docker をはじめとするアプリケーションコンテナが広く使われており、Kubernetes などのオーケストレーションツールを用いて、オンプレミスだけでなく、マネージドサービス (GKE, ECS, EKS) で使用する例が増えている。 クラウドを意識してアプリケーションを構築する現在、もはや「マイクロサービスアーキテクチャ」というまでもないが、service-to-service で通信するモデルが一般的になりつつある。

そこで Zipkin, OpenTracing などの分散トレーシングや、Envoy, Linkerd, Istio などサービスメッシュが登場し、リクエストの追跡・サービス間メトリクスの取得・サービスディスカバリ・障害分離・カナリアデプロイ・サービス間認証などが現実的に行えるようになっている。しかし、これらは依然として開発基盤よりの目的・技術だといえる。サービスメッシュで構築された基盤の上で動作するサービスを安定して運用するために、サービスメッシュを利用して、サービスをどのようにスケールさせるか、といった運用上の応用、実例はほとんど公開されていない。

@itkq
itkq / annict_list_anime.rb
Created December 27, 2017 12:19
1年で見たアニメを表示するやつ
require 'net/http'
require 'openssl'
require 'json'
require 'optparse'
HEADER = { Authorization: "Bearer #{ENV.fetch('ANNICT_TOKEN')}" }
HOST = 'api.annict.com'
WATCHED_FILTER = -> a { ["watched", "watching"].include?(a["status"]["kind"]) }
SEASON = ["winter", "spring", "summer", "autumn"]
require 'fileutils'
require 'pathname'
require 'open-uri'
require 'net/http'
URL_TEMPLATE = 'http://t7s.jp/image/page/release/ingame/cover/%02d.png'
def save(url, base_path)
puts url
data = open(url).read

12. ベンチマーキング

12.1 基礎知識

12.1.1 アクティビティ

ベンチマーキングを実施する理由:

  • チューニング
  • 開発
  • 開発中の非回帰テスト (定期的に実行される自動化されたパフォーマンスのテストスイート)
require 'net/http'
require 'open-uri'
require 'fileutils'
require 'nokogiri'
class KonoiroIinaCollector
BASE_URL = 'https://webnewtype.com'.freeze
DEFAULT_RESOLUTION = 'w3600h2700'.freeze
def self.save_all_images(save_dir = nil, resolution = nil)
require 'openssl'
require 'base64'
require 'digest'
plaintext = "sample"
pass = "pass"
key = Digest::SHA256.digest(pass)
cipher = OpenSSL::Cipher.new('aes-256-gcm')