<!doctype html><html lang=en-us>
<head>
<meta charset=utf-8>
<meta http-equiv=x-ua-compatible content="ie=edge">
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link rel=preload as=font href=https://workingwithruby.com/fonts/vendor/jost/jost-v4-latin-regular.woff2 type=font/woff2 crossorigin>
<link rel=preload as=font href=https://workingwithruby.com/fonts/vendor/jost/jost-v4-latin-700.woff2 type=font/woff2 crossorigin>
<link rel=stylesheet href=https://workingwithruby.com/main.027f9f87f362d4d1d2aea9ad38e5af0ffaefc63039371b51229a3236d1a95fd7fd5478dcfd4041ea9a7d8597db582ecb4f5d11b072a7799dc2a3ccff0b248d6f.css integrity="sha512-An+fh/Ni1NHSrqmtOOWvD/rvxjA5NxtRIpoyNtGpX9f9VHjc/UBB6pp9hZfbWC7LT10RsHKneZ3Co8z/CySNbw==" crossorigin=anonymous>
<noscript><style>img.lazyload{display:none}</style></noscript>
<meta name=robots content="index, follow">
<meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<title>Working With... - Jesse Storimer</title>
<meta name=description content="System programming for Ruby programmers.">
<link rel=canonical href=https://workingwithruby.com/>
<meta property="og:locale" content="en_US">
<link rel=alternate type=application/rss+xml href=https://workingwithruby.com/index.xml>
<meta name=theme-color content="#fff">
<link rel=apple-touch-icon sizes=180x180 href=https://workingwithruby.com/apple-touch-icon.png>
<link rel=icon type=image/png sizes=32x32 href=https://workingwithruby.com/favicon-32x32.png>
<link rel=icon type=image/png sizes=16x16 href=https://workingwithruby.com/favicon-16x16.png>
<link rel=manifest crossorigin=use-credentials href=https://workingwithruby.com/site.webmanifest>
</head>
<body class=home>
<div class="header-bar fixed-top"></div>
<header class="navbar fixed-top navbar-expand-md navbar-light">
<div class=container>
<input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label>
<a class="navbar-brand order-1 order-md-0 me-auto" href=https://workingwithruby.com/>Working With...</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span>
<span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span>
</button>
<ul class="navbar-nav social-nav order-3 order-md-5">
</ul>
<div class="collapse navbar-collapse order-4 order-md-1">
<ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item>
<a class=nav-link href=https://workingwithruby.com/wwup/intro/>Unix Processes</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://workingwithruby.com/wwtcps/intro/>TCP Sockets</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://workingwithruby.com/wwrt/intro/>Ruby Threads</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://workingwithruby.com/downloads>Downloads</a>
</li>
</ul>
<div class="break order-6 d-md-none"></div>
</div>
</div>
</header>
<div class="wrap container" role=document>
<div class=content>
<section class="section container-fluid mt-n3 pb-3">
<div class="row justify-content-center">
<div class="col-lg-9 col-xl-8 text-center">
<p class=lead>
On this site you'll find free access to three ebooks that aim to introduce Ruby programmers to system programming.
</p>
<div class=container>
<div class="row justify-content-center text-center">
<div class=col-lg-11>
<a class="btn btn-primary btn-lg px-4 mb-2" href=https://workingwithruby.com/wwup/intro role=button>Working With Unix Processes</a>
<a class="btn btn-primary btn-lg px-4 mb-2" href=https://workingwithruby.com/wwtcps/intro role=button>Working With TCP Sockets</a>
<a class="btn btn-primary btn-lg px-4 mb-2" href=https://workingwithruby.com/wwrt/intro role=button>Working With Ruby Threads</a>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="section-sm container-fluid mt-n3 pb-3">
<div class="row justify-content-center">
<div class="col-lg-9 col-xl-11 text-center">
<h2 id=about class=h4>More background</h2>
<p class=lead>
Between 2011-2016 I published and sold these ebooks on jstorimer.com. The content has not been updated in quite some time and I have no intention to do so in the near future. It's being shared here for free for anyone who wishes to read it.
</p>
<p class=lead>
The content may be out of date with the current version of Ruby as it was written against Ruby 1.9. That being said, all code samples should still run as these system programming APIs don't tend to change much over time.
</p>
<p class=meta>
Jesse Storimer - jesse@jstorimer.com
</p>
</div>
</div>
</section>
</div>
</div>
<footer class="footer text-muted">
<div class=container>
<div class=row>
<div class="col-lg-8 order-last order-lg-first">
<ul class=list-inline>
<li class=list-inline-item></li>
</ul>
</div>
<div class="col-lg-8 order-first order-lg-last text-lg-end">
<ul class=list-inline>
</ul>
</div>
</div>
</div>
</footer>
<script src=https://workingwithruby.com/js/bootstrap.min.73ca27033146a505b6a0f66b79d99f613a18e778bc9606fd223476d0ebf0fc10508b0d4f5c448b0a946fa1d71fbeffaae9732adc0c2890e61c449217fd6ee1c0.js integrity="sha512-c8onAzFGpQW2oPZredmfYToY53i8lgb9IjR20Ovw/BBQiw1PXESLCpRvodcfvv+q6XMq3AwokOYcRJIX/W7hwA==" crossorigin=anonymous defer></script>
<script src=https://workingwithruby.com/main.min.4fe79bac09880084cfc759fdec42196d6f36bb680f53c6034d8272b44cf4d0484732c0fc3805ef5aae053a75d8ed8a8f17bcc64a138c82a3d7b1014f26793ca1.js integrity="sha512-T+ebrAmIAITPx1n97EIZbW82u2gPU8YDTYJytEz00EhHMsD8OAXvWq4FOnXY7YqPF7zGShOMgqPXsQFPJnk8oQ==" crossorigin=anonymous defer></script>
</body>
</html>