Skip to content

Instantly share code, notes, and snippets.

View fujieda's full-sized avatar

Kazuhiro Fujieda fujieda

View GitHub Profile
@fujieda
fujieda / 明石タイマーの仕様.md
Last active August 29, 2015 14:01
明石タイマーの仕様

明石タイマーの仕様

明石の泊地修理が進むのは、修理開始後20分以降に母港に戻って艦娘のステータスを確認したときである。修理が進んでいたら、その時点を修理開始として計時がリスタートする。修理が進んでいないなら計時が継続する。

以下に示すのは、泊地修理開始後の経過時間をサーバー側で計っている「明石タイマー」の仕様を推測したものである。

以下はすべて明石が旗艦かつ入渠していないことを前提としている。修理可能な艦とは、明石が修理可能な範囲にある中破未満の損傷を持つ入渠していない艦(自身を含む)のことである。

開始

@fujieda
fujieda / 艦種
Created July 11, 2014 02:40
艦種
api_stype:
1 海防艦
2 駆逐艦
3 軽巡洋艦
4 重雷装巡洋艦
5 重巡洋艦
6 航空巡洋艦
7 軽空母
8 高速戦艦
9 低速戦艦
@fujieda
fujieda / gist:b244bd7b8bb218a8569d
Created July 11, 2014 10:59
戦闘開始から遭遇状況表示までの遅延(ms)
var result = 7200;
if (formation >= 3)
result += 200; // T字有利or不利
if (search == 1 || // 索敵機による索敵成功
search == 2) // 索敵機未帰還あり
result += 5700;
if (search == 3 || // 索敵機未帰還
search == 4) // 索敵機による索敵失敗
result += 4900;
if (search == 5) // 索敵力による索敵成功
@fujieda
fujieda / 24634447-Overview-on-encryption-and-deduplication.md
Last active August 29, 2015 14:08
Bitcasaの暗号化と重複排除の概要

暗号化と重複排除の概要

訳注: これはOverview on encryption and deduplicationをBitcasa社から許諾を得て和訳したものである。

データはどのように暗号化されるのか

ユーザーがデスクトップアプリケーションを使ってコンテンツをBitcasa Driveにコピーしたとき、まずクライアント側でconvergent encryptionと呼ばれる手法で暗号化される。そして小さなデータのブロックとしてキャッシュにコピーされる。convergent encryptionではファイルのハッシュを用いて、ファイルを暗号化するための一意な鍵集合を生成する。convergent encryptionについてはWikipediaにより詳しい説明がある。データがキャッシュにコピーされたら、同期プロトコルでBitcasaにアップロードされる。ユーザーのファイルシステムは、Bitcasaアカウントを作ったときに生成されたユーザーキーで暗号化される。

この暗号化によって、ユーザーのアカウントの中にあるあらゆるデータ(ファイル名を含む)を我々がまったく見られなくなる。我々の側から見えるのは、何の意味もないデータのブロックと、それがユーザーのBitcasa Driveの中でどれくらい容量を使っているかだけである。データが復号化されて再構築されるのは、ユーザーがユーザー名とパスワードを使ってアカウントにログインしたときだけだ。我々は暗号鍵や生のままのパスワードはサーバーにまったく保存しない。

@fujieda
fujieda / remodel_slot.md
Created January 30, 2015 09:26
装備改修のAPI
  • 成功の場合
url: 125.6.184.16/kcsapi/api_req_kousyou/remodel_slot
request: api%5Fslot%5Fid=46284&api%5Fid=101&api%5Fverno=1&api%5Ftoken=&api%5Fcertain%5Fflag=0
response: {"api_result":1,"api_result_msg":"成功","api_data":{"api_remodel_flag":1,"api_remodel_id":[2,2],"api_after_material":[25578,26962,22173,34490,1425,1564,2183,9],"api_voice_id":"0","api_after_slot":{"api_id":46284,"api_slotitem_id":2,"api_locked":1,"api_level":5}}}

api_after_slotに改修後の装備が返る。

@fujieda
fujieda / arc_miss.txt
Created February 1, 2016 15:43
ARC misses by vnode operations on ftp.jaist.ac.jp
arc
bash, fop_lookup, 1
cron, fop_read, 1
dosync, fop_read, 1
ntpd, fop_write, 1
sshd, fop_getpage, 1
sshd, fop_read, 1
rsync, fop_create, 2
cron, fop_lookup, 3
ksh93, fop_lookup, 3
@fujieda
fujieda / gist:8c4e8e30861d4ae1df5a
Last active March 9, 2016 05:10
Status of Intel SSD 750 on ftp.jaist.ac.jp
[Controller]
PCI Vendor ID: 0x8086
PCI Subsystem Vendor ID: 0x8086
Model Number: INTEL SSDPEDMW012T4
Serial Number: CVCQ5466016U1P2BGN
Firmware Revision: 8EV10174
Recommended Arbitration Burst: 0
IEEE OUI Identifier: E4-D2-5C
Multi_interface Capabilities: 0
Maximum Data Transfer Size: 5
@fujieda
fujieda / PushBullet.cs
Created May 19, 2017 12:58
Push a note to all devices via PushBullet
using System.Net;
using System.Text;
namespace KancolleSniffer
{
public class PushBullet
{
public static void PushNote(string token, string title, string body)
{
using (var wc = new WebClient())
// https://fujieda.mit-license.org/
static IEnumerable<IEnumerable<T>> Permutation<T>(T[] items)
{
return items.Length == 1
? new[] {items}
: items.SelectMany(item =>
Permutation(items.Where(x => !x.Equals(item)).ToArray())
.Select(perms => new[] {item}.Concat(perms)));
}
@fujieda
fujieda / PriorityQueue.cs
Created July 22, 2020 08:23
Priority Queue for C#
// Copyright (c) 2020 Kazuhiro Fujieda
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR