Skip to content

Commit

Permalink
MTWR 2nd ed post
Browse files Browse the repository at this point in the history
  • Loading branch information
radar committed May 22, 2016
1 parent 31ddc8e commit 1cc3153
Show file tree
Hide file tree
Showing 5 changed files with 127 additions and 398 deletions.
24 changes: 24 additions & 0 deletions _posts/2016-05-22-multitenancy-with-rails-2nd-edition.markdown
@@ -0,0 +1,24 @@
---
wordpress_id: RB-372
layout: post
title: Multitenancy with Rails 2nd Edition
---

[Multitenancy with Rails 2nd edition](https://leanpub.com/multi-tenancy-rails-2/c/fin) is now "content complete". I have now finished doing the majority of the work on this book and all that is left is to go through it and "proof" it.

The book has been updated for Rails 4.2 and uses industry best practices of
building a multitenanted Rails application, and the best practices of using
Braintree or Stripe to add subscription features to that application.

**If you've read [Rails 4 in Action](http://manning.com/bigg2) or something of a
similar level to that, this book is a perfect "next step" for you. It adds
features which are more complicated than a basic "CRUD" app to an existing
codebase. If that appeals to you, [use the coupon code "fin" to get 50% off](https://leanpub.com/multi-tenancy-rails-2/c/fin).**

This update has been quite a long time coming: it took me 298 days from when I
started updating Chapter 1 to this current point. Next up, I'll go through the
book and make sure there's as few bugs and typos as possible. Once I'm done
with that, then I will consider the book to be complete.

Thanks everyone for buying this book, reading it and providing feedback along the way.

58 changes: 58 additions & 0 deletions _site/2016/05/multitenancy-with-rails-2nd-edition/index.html
@@ -0,0 +1,58 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Blog of Ryan Bigg - Multitenancy with Rails 2nd Edition</title>
<link href="http://feeds.feedburner.com/ryanbigg" rel="alternate" title="The Life of a Radar" type="application/atom+xml" />
<link href='https://fonts.googleapis.com/css?family=Roboto:400,700' rel='stylesheet' type='text/css'>
<link rel='stylesheet' href='/css/style.css' media='screen'>
<link rel='stylesheet' href='/css/mobile.css'>
<link rel='stylesheet' href='/css/highlight.css'>
<body>
<h1 align='center'><a href='http://ryanbigg.com'>The Life of a Radar</a></h1>
<div id='post'>
<article>
<a href="/2016/05/multitenancy-with-rails-2nd-edition"><header>Multitenancy with Rails 2nd Edition</header></a>
<small>22 May 2016</small><br>
<p><a href="https://leanpub.com/multi-tenancy-rails-2/c/fin">Multitenancy with Rails 2nd edition</a> is now &quot;content complete&quot;. I have now finished doing the majority of the work on this book and all that is left is to go through it and &quot;proof&quot; it.</p>

<p>The book has been updated for Rails 4.2 and uses industry best practices of
building a multitenanted Rails application, and the best practices of using
Braintree or Stripe to add subscription features to that application.</p>

<p><strong>If you&#39;ve read <a href="http://manning.com/bigg2">Rails 4 in Action</a> or something of a
similar level to that, this book is a perfect &quot;next step&quot; for you. It adds
features which are more complicated than a basic &quot;CRUD&quot; app to an existing
codebase. If that appeals to you, <a href="https://leanpub.com/multi-tenancy-rails-2/c/fin">use the coupon code &quot;fin&quot; to get 50% off</a>.</strong></p>

<p>This update has been quite a long time coming: it took me 298 days from when I
started updating Chapter 1 to this current point. Next up, I&#39;ll go through the
book and make sure there&#39;s as few bugs and typos as possible. Once I&#39;m done
with that, then I will consider the book to be complete.</p>

<p>Thanks everyone for buying this book, reading it and providing feedback along the way.</p>

</article>
</div>
<div id='disqus_thread'></div>
<script type="text/javascript">
var disqus_shortname = 'ryanbigg'; // required: replace example with your forum shortname

var disqus_identifier = 'RB-372 http://ryanbigg.com/?p=RB-372'
var disqus_url = 'http://ryanbigg.com/2016/05/multitenancy-with-rails-2nd-edition';
</script>
<script src='http://ryanbigg.disqus.com/embed.js'></script>

<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-60556315-1', 'auto');
ga('send', 'pageview');

</script>
</body>
</html>
112 changes: 26 additions & 86 deletions _site/atom.xml
Expand Up @@ -4,14 +4,39 @@
<title>The Life of a Radar</title>
<link href="http://ryanbigg.com/atom.xml" rel="self"/>
<link href="http://ryanbigg.com"/>
<updated>2016-05-12T06:45:43+10:00</updated>
<updated>2016-05-22T11:53:17+10:00</updated>
<id>http://ryanbigg.com/</id>
<author>
<name>Ryan Bigg</name>
<email>radarlistener@gmail.com</email>
</author>


<entry>
<title>Multitenancy with Rails 2nd Edition</title>
<link href="http://ryanbigg.com/2016/05/multitenancy-with-rails-2nd-edition"/>
<updated>2016-05-22T00:00:00+10:00</updated>
<id>http://ryanbigg.com/2016/05/multitenancy-with-rails-2nd-edition</id>
<content type="html"><![CDATA[<p><a href="https://leanpub.com/multi-tenancy-rails-2/c/fin">Multitenancy with Rails 2nd edition</a> is now &quot;content complete&quot;. I have now finished doing the majority of the work on this book and all that is left is to go through it and &quot;proof&quot; it.</p>
<p>The book has been updated for Rails 4.2 and uses industry best practices of
building a multitenanted Rails application, and the best practices of using
Braintree or Stripe to add subscription features to that application.</p>
<p><strong>If you&#39;ve read <a href="http://manning.com/bigg2">Rails 4 in Action</a> or something of a
similar level to that, this book is a perfect &quot;next step&quot; for you. It adds
features which are more complicated than a basic &quot;CRUD&quot; app to an existing
codebase. If that appeals to you, <a href="https://leanpub.com/multi-tenancy-rails-2/c/fin">use the coupon code &quot;fin&quot; to get 50% off</a>.</strong></p>
<p>This update has been quite a long time coming: it took me 298 days from when I
started updating Chapter 1 to this current point. Next up, I&#39;ll go through the
book and make sure there&#39;s as few bugs and typos as possible. Once I&#39;m done
with that, then I will consider the book to be complete.</p>
<p>Thanks everyone for buying this book, reading it and providing feedback along the way.</p>
]]></content>
</entry>

<entry>
<title>Hiring Juniors</title>
<link href="http://ryanbigg.com/2016/04/hiring-juniors"/>
Expand Down Expand Up @@ -1897,90 +1922,5 @@ end
]]></content>
</entry>

<entry>
<title>Community Management</title>
<link href="http://ryanbigg.com/2014/04/community-management"/>
<updated>2014-04-02T00:00:00+11:00</updated>
<id>http://ryanbigg.com/2014/04/community-management</id>
<content type="html"><![CDATA[<p>I&#39;ve been the &quot;Community Manager&quot; for Spree for a couple of years now. It&#39;s a
job where I answer user support requests wherever they happen: IM, email, IRC,
Stack Overflow. I&#39;ve been splitting this up with some development on Spree,
building features like the new adjustments system whilst getting some great
feedback about them from the community.</p>
<p>Over time, it&#39;s been getting busier and busier and I&#39;ve ended up doing more
&quot;community management&quot; and less programming and it&#39;s been burning me out. When
I&#39;m programming, I know that I&#39;m working towards a goal. When I&#39;m answering
emails, there&#39;s always more emails to answer the next day. It just doesn&#39;t
feel like progress is happening at all.</p>
<p>We&#39;ve just passed our busiest time of the year. People have found Spree and
want to either start using it, or port over from their existing ecommerce
platform. These people generally start asking questions at the end of January
and it quietens down around about now, picking up slightly in June (I don&#39;t
know why, it just does) and the later months of the year due to Black Friday /
Christmas / people wanting things done &quot;Right Now Or Else&quot; by the end of the
year.</p>
<p>During this extremely busy phase, I&#39;ve really dialed back on the programming
part of my job and I&#39;ve been dedicating most of my time to answering user
support requests, mainly in the form of trying to keep my email inbox at an
amount as close to zero as possible. The community benefits from this work
because those people asking the questions get the support they need and they
can continue on doing their own things. That&#39;s a great thing. When people are
using something that I helped build <em>and they like using it</em>; that is one of
the best feelings in the world. It&#39;s part of the reason why I&#39;ve stayed here
in this job longer than any other job I&#39;ve had. It&#39;s also a pretty awesome
team to work with.</p>
<p>After SpreeConf (26-27th Feb), I did an email inbox cull and still had 500+
emails to read through and reply to. This is part of my job, and it seemed
overwhelming. I was occassionally grumpy and short with my words. It&#39;s only
last week -- <em>a whole month later</em> -- that I was able to get this inbox number
down to less than 50. As I write this now, it sits at almost 200.</p>
<p>But there&#39;s a legitimate reason for that. For the past two days I&#39;ve been
doing exclusively programming work. I closed Airmail and worked for two days
in Sublime Text, iTerm and Chrome. It felt <em>glorious</em>. It felt like <em>progress</em>.</p>
<p>Last Friday at approximately 4:40pm my time and ridiculous o&#39; clock (1:40am) in DC,
Sean passed on a message from one of our clients who said something to the
effect that Magento&#39;s order interface in the admin backend was better than
Spree&#39;s order interface. Now, there&#39;s not many things Magento is better at
than Spree, but this is (supposedly) one of them. I agreed whole-heartedly with the
message, but it was 4:40pm on a Friday and I was thinking/dreaming of the
weekend.</p>
<p>I&#39;ve personally been wanting to change the admin backend for quite a while. It
doesn&#39;t adjust itself depending on the order&#39;s checkout steps, which is a
feature that we implemented about 6 major Spree releases. It just hasn&#39;t been
that important to work on as other things have been.</p>
<p>This little comment ate at me all weekend. How could we be <em>worse</em> than
Magento at something? Was that even possible? Yes, it was. The order interface
reloaded the entire page after every single change and it was infuriating. It
felt sluggish. Creating an order in Spree&#39;s admin backend shouldn&#39;t be
tedious, it should be <em>fast</em>.</p>
<p><a href='http://ryanbigg.com/videos/old_admin.mov'>Here&#39;s a video of the admin order interface</a></p>
<p>So on Monday I worked on improving this. I rewrote templates from ERB to
Underscore templates. I converted some JavaScript code that was defining top-
level functions into some CoffeeScript+Backbone code that defined those
functions as proper events within Backbone views.</p>
<p>I made it fast. <a href='http://ryanbigg.com/videos/new_admin.mov'>Here&#39;s a video of the new admin order interface</a></p>
<p>This felt like progress, because it is progress. I&#39;m improving something
within Spree rather than answering emails, and I feel really good about it.</p>
<p>So what I&#39;m going to be doing now is devoting at least a day a week to purely
coding on Spree. All the emails can wait an extra day. Hopefully those emails
will be answered by someone else.</p>
<p>You can see the code for these recent changes over on <a href='https://github.com/radar/spree/tree/new-order-interface'>my new-order-interface branch</a>.</p>
]]></content>
</entry>


</feed>
2 changes: 2 additions & 0 deletions _site/blogography.html
Expand Up @@ -28,6 +28,8 @@ <h2>The Blogography of a Radar</h2>
<p>The formatting for earlier posts may be a little skewiff. If you find something like that, <a href='http://github.com/radar/ryanbigg.com'>patches are very welcome</a>.</p>
<ul>

<li><a href="/2016/05/multitenancy-with-rails-2nd-edition">Multitenancy with Rails 2nd Edition</a><abbr>22 May 2016</abbr></li>

<li><a href="/2016/04/hiring-juniors">Hiring Juniors</a><abbr>22 Apr 2016</abbr></li>

<li><a href="/2016/03/working-with-date-ranges-in-active-record">Working with date ranges in Active Record</a><abbr>09 Mar 2016</abbr></li>
Expand Down

0 comments on commit 1cc3153

Please sign in to comment.