<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:foaf="https://xmlns.com/foaf/0.1/" xmlns:og="https://ogp.me/ns#" xmlns:rdfs="https://www.w3.org/2000/01/rdf-schema#" xmlns:schema="https://schema.org/" xmlns:sioc="https://rdfs.org/sioc/ns#" xmlns:sioct="https://rdfs.org/sioc/types#" xmlns:skos="https://www.w3.org/2004/02/skos/core#" xmlns:xsd="https://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/tag/ruby-gems">
  <channel>
    <title>Ruby Gems</title>
    <link>https://www.linuxjournal.com/tag/ruby-gems</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>Sidekiq</title>
  <link>https://www.linuxjournal.com/content/sidekiq</link>
  <description>  &lt;div data-history-node-id="1100250" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/sidekicklogo.jpg" width="100" height="100" alt="" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/reuven-lerner" lang="" about="https://www.linuxjournal.com/users/reuven-lerner" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Reuven Lerner&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;
From my perspective, one of the best parts of being a Web developer is
the instant gratification. You write some code, and within minutes,
it can be used by people around the world, all accessing your
server via a Web browser. The rapidity with which you can go from an
idea to development to deployment to actual users benefiting from
(and reacting to) your work is, in my experience, highly motivating.
&lt;/p&gt;

&lt;p&gt;
Users also enjoy the speed with which new developments are deployed.
In the world of Web applications, users no longer need to consider,
download or install the "latest version" of a program; when they load
a page into their browser, they automatically get the latest version.
Indeed, users have come to expect that new features will be rolled out
on a regular basis. A Web application that fails to change and
improve over time quickly will lose ground in users' eyes.
&lt;/p&gt;

&lt;p&gt;
Another factor that users consider is the speed with which a Web
application responds to their clicks. We are increasingly spoiled by
the likes of Amazon and Google, which not only have many thousands of
servers at their disposal, but which also tune their applications and
servers for the maximum possible response time. We measure the speed
of our Web applications in milliseconds, not in seconds, and in just
the past few years, we have reached the point when taking even one
second to respond to a user is increasingly unacceptable.
&lt;/p&gt;

&lt;p&gt;
The drive to provide ever-greater speed to users has led to a
number of techniques that reduce the delays they encounter. One
of the simplest is that of a delayed job. Instead of trying to do
everything within the span of a single user request, put some of it
aside until later.
&lt;/p&gt;

&lt;p&gt;
For example, let's say you are working on a Web application that
implements an address book and calendar. If a user asks to see all of
his or her appointments for the coming week, you almost certainly could
display them right away. But if a user asks to see all appointments
during the coming year, it might take some time to retrieve that from the
database, format it into HTML and then send it to the user's browser.
&lt;/p&gt;

&lt;p&gt;
One solution is to break the problem into two or more
parts. Rather than having the Web application render the entire
response together, including the list of appointments during the
coming year, you can return an HTML page without any appointment.
However, that page can include a snippet of JavaScript that, after
the page is loaded, sends a request to the server asking for the
list. In this way, you can render the outline of the page, filling it
with data as it comes in.
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/sidekiq" hreflang="und"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Thu, 15 Aug 2013 20:17:58 +0000</pubDate>
    <dc:creator>Reuven Lerner</dc:creator>
    <guid isPermaLink="false">1100250 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
