Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Glint
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kentaro Kuribayashi
June 07, 2013
Technology
3.7k
2
Share
Glint
RedDotRubyConf 2013
http://www.reddotrubyconf.com/
Kentaro Kuribayashi
June 07, 2013
More Decks by Kentaro Kuribayashi
See All by Kentaro Kuribayashi
あとはAIに任せて人間は自由に生きる
kentaro
5
2.1k
社会人力と研究力ー博士号をキャリアの武器にするー
kentaro
3
290
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
2
2.2k
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
700
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
340
「始め方」の始め方 / How to Start Starting Things
kentaro
5
990
Dynamic IoT Applications and Isomorphic IoT Systems Using WebAssembly
kentaro
1
1.7k
わたしがこのところハマっている「ライセンスフリー無線」のご紹介 / An Invitation to License-Free Radio
kentaro
1
730
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
8
6.7k
Other Decks in Technology
See All in Technology
Datadog で実現するセキュリティ対策 ~オブザーバビリティとセキュリティを 一緒にやると何がいいのか~
a2ush
0
190
Cortex Code君、今日から内製化支援担当ね。
coco_se
0
190
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
230
FASTでAIエージェントを作りまくろう!
yukiogawa
4
190
非同期・イベント駆動処理の分散トレーシングの繋げ方
ichikawaken
1
250
Databricks Appsで実現する社内向けAIアプリ開発の効率化
r_miura
0
230
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
310
Network Firewall Proxyで 自前プロキシを消し去ることができるのか
gusandayo
0
170
OpenClawでPM業務を自動化
knishioka
2
370
Cursor Subagentsはいいぞ
yug1224
2
130
Data Enabling Team立ち上げました
sansantech
PRO
0
210
出版記念イベントin大阪「書籍紹介&私がよく使うMCPサーバー3選と社内で安全に活用する方法」
kintotechdev
0
140
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
350
Optimizing for Happiness
mojombo
378
71k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
210
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
From π to Pie charts
rasagy
0
160
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
130
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Code Review Best Practice
trishagee
74
20k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Design in an AI World
tapps
0
190
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
Glint Fires arbitrary TCP servers http://www.flickr.com/photos/tjblackwell/3107540997/
@kentaro Software engineer to build technical basis Rubyist / Perl
Monger Kentaro Kuribayashi paperboy&co.
None
Problem
Applications often consists of various components
• Cache servers • Storage servers • Job queue/workers •
Other applications (e.g. external APIs) • etc.
• Launch servers in advance (e.g mysql/pg with Rails) •
Stub out connections to the servers (e.g. stub/mock in RSpec) To deal with it, you may:
Launching Servers • We don’t always need such many servers
• It can be waste of limited resources of our daily- used local machine
Stubbing out Connections • Efficient way to test apps that
depends on external components • But we can’t tell whether or not our apps work well indeed against real servers
Solution
Glint
Glint is a library which allows you to fire arbitrary
TCP servers to help you test your codes against those real servers without stubbing out.
1. Fork a child process for a TCP server 2.
Find an empty port for the server 3. Exec the server program using the port 4. Destroy the child process when it’s no longer needed
1. Fork a child process for a TCP server 2.
Find an empty port for the server 3. Exec the server program using the port 4. Destroy the child process when it’s no longer needed
Basic usage
With RSpec
servers/memcached.rb
spec_helper.rb
**_spec.rb
App + External App
initializer/**.rb
**_spec.rb
TCP server + TCP server
Fluentd::Integration
How Glint Cleans up the Servers
http://ruby-doc.org/core-2.0/ObjectSpace.html “ObjectSpace also provides support for object finalizers, procs that
will be called when a specific object is about to be destroyed by garbage collection.”
glint/server.rb Glint::Server#stop
• Stubbing out external connection may cause some problems •
Glint allows you to easily fire up TCP servers as you need • Patches are welcome! Recap