-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.html
121 lines (103 loc) · 8.78 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
---
title: スピードショップ - Ruby on Rails のパフォーマンスカンパニー
summary:
layout: default
---
<div class="container">
<div class="row margin-top-xl">
<div class="column column-50 column-mobile-100">
<p>{% include speedshop_wordmark.svg %}</p>
<p>
スピードショップ株式会社は、Ruby on Rails のパフォーマンスコンサルティング企業です。ツール、情報、トレーニングを通じて、Rails を使ったビジネスの収益を上げ、スケーリングコストを削減するためにすべてのスタック(フロントエンド、バックエンド、インフラ)を最適化します。高速なサイトは収益性の高いサイトであり、スピードは価値です。
</p>
<h2>プロダクト</h2>
<ul>
<li>
<b>Ruby on Rails パフォーマンスアポクリファ</b>. 近日中に正式な日本語訳を公開予定です。
</li>
</ul>
<h2>サービス内容</h2>
<p>現在、すべてのサービスは英語で提供されています。</p>
<ul>
<li>
<b>ワークショップ</b> 開発者の Ruby や Rails のパフォーマンススキルを向上させたい企業のために、日本では直接、世界各地ではリモートでのワークショップを提供しています。1 日から 4 週間、5 人から 100 人の開発者まで、世界 5 大陸の約 100 社で開催しています。あなたの開発チームをレベルアップさせましょう。
</li>
<li>
<b>コンサルティング</b> 短期契約とリテーナー契約のどちらでも対応可能です。弊社はこれまでに様々なお客様とお付き合いさせていたき、Rails アプリケーションの監査、ページロード時間の改善、AWS サーバー代の削減などを実現してきています。
</li>
<li>
<a href="https://mailchi.mp/9f7365fb2a52/iljt9of9jy"><b>メールマガジン(日本語)</b></a>
</li>
</ul>
<h2>スピードショップとは誰のことですか?</h2>
<p>
私はNate Berkopec(ネイト・バコペック)です。東京に住んでいます。10 年近く Ruby on Rails アプリケーションに取り組んできており、アプリをより速く、よりスケーラブルに、より保守性を高くする方法を数千人に教えてきました。また、オープンソースの Ruby アプリケーションサーバーである Puma のメンテナンスも行っています。おそらくは、今、あなたの Rails サーバーのどこかで、私のコードが実行されているはずです。
</p>
<p>
私はこれまでに何十ものカンファレンスで講演を行ってきました。<a href="https://www.youtube.com/playlist?list=PLmEErUwnghlELuYrmNhIcDU0_KtXQIUpW">これらの講演の一部は、YouTube でご視聴いただけます</a>。
</p>
<h2>これまでのクライアント</h2>
<img src="/assets/img/ss_client_logos_md.jpg" style='margin-left:-10px;margin-bottom: 3.5rem' loading='lazy'>
<h2>哲学</h2>
<ul>
<li>
<b>フルスタックかつユーザーファーストであること。</b> ユーザーがアプリケーションを使用するには、すべてのスタックを経由する必要があります。そこで、私たちはあらゆるレベルで最適化を行います。すべてのパフォーマンス最適化は、エンドユーザーの体験から生まれます。
</li>
<li>
<b>開発者を決して過小評価しない。</b> 今日の多くのパフォーマンスツール、コンサルティング企業、そしてチームは、パフォーマンス問題の理解に対する開発者の能力を過小評価しています。Speedshopは、ソフトウェア開発者の無限の学習能力を信じ、最も複雑なパフォーマンスの問題でさえ、開発者は解決し得ると信じています。
</li>
<li><b>パフォーマンスとデプロイは必需品であり、贅沢品ではない。</b> すべての組織にはパフォーマンスに関する目標やゴールがありますが、それらは明文化されないままになっています。ページの読み込みに2分以上かかるのは許容範囲内でしょうか? もし許容できないのであれば、そこには要件があります。計測できてこそ、管理できるのです。
</li>
<li><b>計測なしの最適化を行わない。</b> 前後での計測を伴う、厳密で科学的な最適化プロセスを適用してこそ、私たちは最適化の必要性、そして最適化の成功を確信できます。
</li>
<li><b>コンテキストを伴わない計測は意味がない。</b> 計測は万能ではありません。絶対的なベンチマーク(何ミリ秒/秒の高速化)の方がより適切で、より多くのコンテキストを提供できる場合には、相対的なベンチマーク(何%の改善・高速化)は使用すべきではありません。理解されるのことのないメトリクスは、役に立たないだけです。
</li>
<li><b>シンプルと高速は補完しあうものであり、相互に排他的なものではない。</b> 理解できないものは最適化できません。シンプルなコードは通常、高速でもあります。コードを最適化しても、必ずしも複雑になったり、読みにくくなったりするわけではありません。
</li>
<li><b>ベストプラクティスよりも実験。</b>ベストプラクティス頼みの開発は通常うまくいきません。それぞれの組織は、ユニークだからです。それよりも、正確な計測と豊富な実験を用いて、パフォーマンス作業の方針を決定する、より厳密な科学的プロセスを適用しましょう。
</li>
</ul>
<p>
スピードショップへのお問い合わせは、<a href="mailto:nate.berkopec@speedshop.co">メールにて承っております</a>。
</p>
<p>
ロゴのビジュアライゼーションは <a href="http://luis.net/">Luis Gonzalez</a> が担当しました
</p>
</div>
</div>
</div>
<div id="big-black-bar" class="visible-desktop">
<canvas height=1000px width=1000px id="sslogocanvas" style="position: relative"></canvas>
<svg style="position: absolute; top:0; left: 0; overflow: visible"
xmlns="http://www.w3.org/2000/svg"
preserveAspectRatio="xMidYMid slice">
<defs>
<style type="text/css">
svg mask rect {
fill: rgba(255, 255, 255, 1);
}
svg > rect {
fill: black;
-webkit-mask: url(#mask);
mask: url(#mask);
}
</style>
<mask id="mask" x="0" y="0" width="1920" height="1080" >
<rect x="0" y="0" width="9999" height="9999"/>
<path transform="scale(0.35)translate(100,450)" d="M432.82 936.54c8.66-6.23 26.27-20.04 37.37-32.5 32.73-37.1 32.5-76.64-200.85-394.57-77.72-106.03-106.97-168.72-106.97-231 17.2-155.47 144.9-146 218.96-146 65-.8 149.36 0 215.3 0l-20.04 14.2c-38.32 26.4-65 54.18-50.9 97.78C536 275.2 611 388.67 707.12 518.67c107.4 144.9 139.5 205.55 143.56 272.7 2.15 120.8-114.16 156.14-181.2 156.28H417.66z" />
<circle transform="scale(0.35)translate(100, 450)" r="171.02" cy="777.98" cx="185.56" />
<circle transform="scale(0.35)translate(100, 450)" cx="825.23" cy="302.02" r="171.02" />
</mask>
</defs>
<rect x="0" y="0" width="9999" height="9999"/>
</svg>
</div>
<script async="">
canvas = document.getElementById("sslogocanvas");
window.a = canvas;
window.b = document.getElementById("big-black-bar");;
window.c = canvas.getContext('2d');
c=window.a;c.height=c.width=w=b=255;t=r=0;G=c.getContext('2d');m=[];s=G.getImageData(0,0,w,w);p=s.data;
function e(){k=0;with(Math)for(j=0;j<w;j++)for(i=0;i<w;i++){y=-1+2*j/w;x=-1+2*i/w;d=sqrt(x*x+y*y);a=atan2(y,x);eval('u='+['cos(a)/d;v=sin(a)/d','cos(a+cos(3*d))/(pow(d,.2));v=sin(a+cos(3*d))/(pow(d,.2))','a*3/PI;v=2/(6*d + 3*x)','.5+.5*a/PI;v=(-.4/d)+.1*sin(8*a)','(.02*y+.03)*cos(a*3)/d;v=(.02*y+.03)*sin(a*3)/d','1/(d+0.5+0.5*sin(5*a));v=a*3/PI','.1*x/(.11+d*.5);v=.1*y/(.11+d*.5)','x/abs(y);v=1/abs(y)','.5*(a)/PI;v=sin(2*d)','(1*a/PI)+d;v=pow(d,0.1)','y*(3-sqrt(4-5*d*d))/(d*d+1);v=x*(3-sqrt(4-5*d*d))/(d*d+1)'][r%
11]);m[k++]=b*v&b;m[k++]=b*u&b}r++}onmouseup=e;e();setInterval("i=0;t++;c.style.width='100%';c.style.height=innerHeight+'px';for(g=0;g<w*w;g++){f=m[o=g*2]+t&b^m[o+1]+t&b;p[i++]=r&7?f:0;p[i++]=r&4?0:f;p[i++]=r&1?f:0;p[i++]=b}G.putImageData(s,0,0);",25)
</script>