<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.0.0">Jekyll</generator><link href="https://blog.abstretta.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://blog.abstretta.com/" rel="alternate" type="text/html" /><updated>2020-08-02T22:33:19+00:00</updated><id>https://blog.abstretta.com/feed.xml</id><title type="html">Abstretta Blog</title><subtitle>This is the blog for the online resume system: Abstretta. Abstretta.com provides a complete career support system centered around managing resumes as dynamic documents.</subtitle><entry><title type="html">Top 10 Features You Need In A Resume Publishing or Career Support App</title><link href="https://blog.abstretta.com/2020/07/28/top-10-resume-publishing.html" rel="alternate" type="text/html" title="Top 10 Features You Need In A Resume Publishing or Career Support App" /><published>2020-07-28T00:00:00+00:00</published><updated>2020-07-28T00:00:00+00:00</updated><id>https://blog.abstretta.com/2020/07/28/top-10-resume-publishing</id><content type="html" xml:base="https://blog.abstretta.com/2020/07/28/top-10-resume-publishing.html">&lt;p&gt;&lt;img src=&quot;/assets/post-images/in-office-working-on-laptop.jpg&quot; alt=&quot;Office &amp;amp; Laptop&quot; class=&quot;splash&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Looking for work can be a time-consuming and frustrating affair. There is a lot of information to keep track up, starting with one’s resume and then expanding into emails, interview notes, and a list of the jobs one has applied for so that if a call comes in weeks down the road, there is a way to quickly recall which position it is in regards to. In addition, the dynamics of work and what employers look for in a resume has changed quite a lot in the last decade. Some employers reject any resume over a page long, most people look for work along more than one career path, and so on.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What this blog entry will focus on are the Top Ten features one should look for in a modern resume publishing and career support application.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;1-easy-entry&quot;&gt;1. Easy Entry&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/keyboard-and-mouse.jpg&quot; alt=&quot;keyboard-and-mouse&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Usually updating your resume means opening up a word processor and entering your information. This obviously works, but it’s laborious because it requires many clicks and gestures to enter each piece of information. This is because you’re working within an application meant to create formatted text, not geared to rapid entry of structured data.&lt;/p&gt;

&lt;p&gt;Other resume-building apps you find online are better at inputting structured data because they are based on forms. But if you want a different resume the best you can hope for is to make a copy of one and then go in and add or remove things. And then if you want to add something to both copies, you are forced to go back and edit both documents independently.&lt;/p&gt;

&lt;p&gt;Abstretta takes a completely different approach: it works more like a Content Management System, such as WordPress. You enter your experience, qualifications, publications, degrees and so on &lt;strong&gt;&lt;em&gt;once&lt;/em&gt;&lt;/strong&gt; and then associate them with your resume designs. So your data is always the same and you can mix and match it as many ways as you like for the jobs you are applying for - without having to duplicate work or go through additional complex editing operations.&lt;/p&gt;

&lt;h3 id=&quot;2-easy-editing&quot;&gt;2. Easy Editing&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/photo-editing-on-tablet.jpg&quot; alt=&quot;photo-editing-on-tablet&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;One of the most onerous tasks with designing your resume is the layout. As often as not, resumes have complex formatting that need to be accurately copy-and-pasted around the document as you add or update entries in your resume. Since people don’t update their resumes very often, it can be months or even years between the times you last edited your resume, so when you open it back up to make changes it looks foreign and all the layout and stylistic peculiarities need to be re-learned.&lt;/p&gt;

&lt;p&gt;Abstretta decouples what’s &lt;strong&gt;&lt;em&gt;in&lt;/em&gt;&lt;/strong&gt; your resume from how it appears on the page. Think of it like when you buy a car - first you decide what you want in it, which engine and transmission, which kinds of seats and audio system - and then you think about what color paint you want. In Abstretta you construct your resume without concerning yourself with formatting - just enter data into a web form. Once that is finished, then you pick the template you want to use to render the resume.&lt;/p&gt;

&lt;p&gt;And since Abstretta’s template system is dynamic, you can even change the template at the moment you send a resume to someone. A massive time-savings over conventional editing.&lt;/p&gt;

&lt;h3 id=&quot;3-multiple-personas&quot;&gt;3. Multiple Personas&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/masks.jpg&quot; alt=&quot;Persona&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;These days everyone wears many hats. When looking for work you can find yourself pursuing multiple career paths. Maybe as a manager and also as an individual contributor. Maybe in multiple industries. Maybe all of these variations and still more.&lt;/p&gt;

&lt;p&gt;Not only does this “split focus” require multiple resumes, but you also want to keep the positions you apply to for each persona separate. If for no other reason than to make it easier to keep track of events as they transpire.&lt;/p&gt;

&lt;p&gt;Abstretta lets you create multiple personas, each with their own resume configurations and associated resume publishing data. So for instance say you have one career path as a manager and you also dabble as a freelance graphic artist. In your “manager” profile you could set your name to be &lt;em&gt;“J. Paddington Smith III”&lt;/em&gt;, but in your freelance artist profile you could sit it to &lt;em&gt;“Jim ‘Smitty’ Smith”&lt;/em&gt;, giving you more control over how you present yourself to potential employers.&lt;/p&gt;

&lt;div class=&quot;quotebox-outer &quot;&gt;&lt;div class=&quot;quotebox&quot;&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://hbr.org/2017/04/why-you-should-have-at-least-two-careers&quot; target=&quot;_blank&quot;&gt;Harvard Business Review: &quot;Why You Should Have (at Least) Two Careers&quot;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;4-cover-letters&quot;&gt;4. Cover Letters&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/hand-touching-typewriter-keys.jpg&quot; alt=&quot;Typing Letter&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can’t send a resume without a cover letter. What usually happens is you end up with dozens of little files or notes or snippets floating around your devices of cover letters you have sent in the past so you can re-use them. Yet when it comes time to send a resume, often you’re stuck with a dilemma. Which device did I leave it on? What did I call the file or note? Did I even save it? If not, who did I email it to?&lt;/p&gt;

&lt;p&gt;Then once you find the snippet or file or note, you have to carefully copy-and-paste it into your email app. It must be done carefully because you do not want to leave fragments from the last time you sent the cover letter. Such as the name of someone from some other company.&lt;/p&gt;

&lt;p&gt;Abstretta has cover letters built in. Not just cover letters, but cover letter &lt;strong&gt;&lt;em&gt;templates&lt;/em&gt;&lt;/strong&gt; which can be re-used and even modified at send time. You can also set a global default cover letter which gets loaded in the resume sending form. In addition, you can set a default cover letter for each persona. This allows you to set the motif of your different career paths at an even more detailed level. The cover letter you would use for a “manager” persona probably will not be the same as one you use for a “freelance artist” persona.&lt;/p&gt;

&lt;div class=&quot;quotebox-outer &quot;&gt;&lt;div class=&quot;quotebox&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://hbr.org/2014/02/how-to-write-a-cover-letter&quot; target=&quot;_blank&quot;&gt;Harvard Business Review: &quot;How to Write a Cover Letter&quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.glassdoor.com/blog/guide/how-to-write-a-cover-letter/&quot; target=&quot;_blank&quot;&gt;Glassdoor: &quot;How to Write A Cover Letter&quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;5-rapid-response&quot;&gt;5. Rapid Response&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/highway-lights.jpg&quot; alt=&quot;highway-lights&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once your resume is finally in front of someone who can offer you a position you want to remove any barriers to them contacting you. Most resumes are static documents, but in Abstretta they are live. So there is a contact form &lt;strong&gt;&lt;em&gt;built into the resume&lt;/em&gt;&lt;/strong&gt;. The person viewing your resume does not need to launch their email app, copy/paste your email address, and then send - they can just type a message right there while viewing your resume. When a hiring manager uses the built-in contact form the message shows up in your Abstretta Messages, as well as being delivered to your email inbox.&lt;/p&gt;

&lt;h3 id=&quot;6-visibility&quot;&gt;6. Visibility&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/telescope-over-paris.jpg&quot; alt=&quot;telescope-over-paris&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Most of the time when you send someone a resume it’s like chucking a bottle into the ocean. You know eventually someone will get it, but who or when is a mystery. As is if the recipient will act upon the message you put inside.&lt;/p&gt;

&lt;p&gt;With Abstretta, a record is kept of every resume sent and received and of every time the resume is viewed or printed. From this, you can track as your resume moves through a company’s HR department. You can also tell when people at the company have stopped looking at your resume, or when they start again.&lt;/p&gt;

&lt;h3 id=&quot;7-completeness&quot;&gt;7. Completeness&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/multitool.jpg&quot; alt=&quot;multitool&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are plenty of online resume systems out there on the market. But they tend to focus mostly on publishing a formatted document. This requires that the user has to find other means to manage and organize their job-search activity. And then the user has to integrate all those other tools and notes and folders full of stuff with whatever online system they are using to actually publish their resume and get it into someone’s hands for review.&lt;/p&gt;

&lt;p&gt;By contrast, Abstretta is a complete career support application. Everything you need from cover letters to resume publishing to sending out a list of references to being told that someone is looking at your resume is included in one application. Ultimately this provides a more useful and more seamless experience for the job-seeker. The user can leave Abstretta on the shelf when not looking for work, and then quickly have access to a complete suite of tools again when it’s needed.&lt;/p&gt;

&lt;div class=&quot;quotebox-outer &quot;&gt;&lt;div class=&quot;quotebox&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.themuse.com/advice/how-to-organize-track-job-search&quot; target=&quot;_blank&quot;&gt;themuse.com: &quot;How to Get and Stay Organized During Your Job Search&quot;&lt;/a&gt;
&lt;br /&gt;&lt;i&gt;A good write-up on all the machinations needed when you do not have an all-in-one App&lt;/i&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;8-omnipresence&quot;&gt;8. Omnipresence&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/plays-on-phone.jpg&quot; alt=&quot;Mobile Phone&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Career opportunities do not always arise when you are sitting at home in front of your computer. They can happen anywhere at any time. Someone you meet at the airport, browsing the news while at a coffee shop. Having your resume stored on your desktop computer does not help you much in these situations. Laptops are mobile, of course, but it is not always convenient to be using a laptop when opportunity knocks. The next best option is to save an exported version of your resume on a cloud service. But that means you need to incorporate a workflow to move your resume to the cloud every time you do an update.&lt;/p&gt;

&lt;p&gt;With Abstretta’s mobile-web interface, your resume is always with you right on your phone. With a few taps you can send a customized resume to a new contact in response to anything that comes up where ever you are. Since it’s a mobile-web interface it functions just like a native app without having to install anything.&lt;/p&gt;

&lt;h3 id=&quot;9-context&quot;&gt;9. Context&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/newspaper.jpg&quot; alt=&quot;newspaper&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;When one is heavily engaged in looking for work a hefty number of resumes will be sent out. When fortune smiles and you get a phone call or email in response it can be weeks, or even months, after the resume was sent in. Odds are you have little if any recollection of which job you applied for. This becomes even more confusing when you do have multiple career paths as you need to not only remember which job you had applied for, but which career context it was applied for under.&lt;/p&gt;

&lt;p&gt;Abstretta has a construct called an &lt;strong&gt;&lt;em&gt;“Opportunity”&lt;/em&gt;&lt;/strong&gt;. This couples a resume, the user profile it belongs to, the contact the resume was sent to, and a copy-and-pasted description of the job description your resume was sent in response to. So now instead just a list of resumes and people you sent them to, you have a listing of the actual jobs you have applied to. Makes sense, right? A resume does not exist in a vacuum. It only converts into an action when it’s sent to someone in response to a job opening.&lt;/p&gt;

&lt;p&gt;In addition, Abstretta’s “Opportunities” also have a handy note-taking area. So while you’re on the phone with a hiring manager you can take notes right in the platform. Consider a situation where you send in your resume and do a first round interview. All signs look positive - but weeks go by and you don’t hear about a second interview, so you assume they hired someone else. Then lo and behold, you get a call for that second interview. What was the job again? Who did I talk to before? What did we talk about? All that context is saved in the Opportunity.&lt;/p&gt;

&lt;h3 id=&quot;10-other-data&quot;&gt;10. Other Data&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/notepad-on-a-desk.jpg&quot; alt=&quot;notepad-on-a-desk&quot; class=&quot;splash-right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Looking for a job entails more than just sending out a resume. As you make you way through the process you will also be asked for references, or more details on course-work you took, or possible even some testimonials if you are looking for freelance work.&lt;/p&gt;

&lt;p&gt;A good Career Support system will anticipate this need and have some kind of feature built in so you can keep all your career-related data on the platform, instead of scattered around umpteen devices and cloud services.&lt;/p&gt;

&lt;p&gt;Abstretta handles this with a feature called &lt;strong&gt;&lt;em&gt;Scribbles&lt;/em&gt;&lt;/strong&gt;. These are little scraps of text which can be public or private. “Public” in this case means that you can send someone a secret link to the Scribble so they can see it online. “Private” means it is something for your eyes only - perhaps some information you cut-and-paste into emails frequently. Abstretta’s Scribbles support Markdown as well as plain text which enables you to send well-formatted information to prospective hirers.&lt;/p&gt;

&lt;div class=&quot;quotebox-outer &quot;&gt;&lt;div class=&quot;quotebox&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.indeed.com/career-advice/resumes-cover-letters/resume-reference-list
&quot; target=&quot;_blank&quot;&gt;indeed.com: &quot;How to Write a Resume Reference List (With Examples)&quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;</content><author><name></name></author><summary type="html">The dynamics of work and what employers look for in a resume has changed quite a lot in the last decade. Some employers reject any resume over a page long, most people look for work along more than one career path, and so on. This blog entry will focus on are the Top Ten features one should look for in a modern resume publishing and career support application.</summary></entry><entry><title type="html">What Is A Dynamic Resume?</title><link href="https://blog.abstretta.com/2020/02/07/what-is-a-dynamic-resume.html" rel="alternate" type="text/html" title="What Is A Dynamic Resume?" /><published>2020-02-07T00:00:00+00:00</published><updated>2020-02-07T00:00:00+00:00</updated><id>https://blog.abstretta.com/2020/02/07/what-is-a-dynamic-resume</id><content type="html" xml:base="https://blog.abstretta.com/2020/02/07/what-is-a-dynamic-resume.html">&lt;p&gt;&lt;img src=&quot;/assets/post-images/robots.jpg&quot; alt=&quot;My helpful screenshot&quot; class=&quot;splash&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Most folks keep their resume somewhere in a folder on their desktop or laptop computer. Sometimes this gets synced across a cloud drive to their mobile devices. Usually there are multiple copies of the resume going back years. This is because one often needs to adjust their resume for different kinds of jobs or different hiring styles of managers. Some want to see everything a person has done going back to the womb, others want a one-pager with just the highlights of a career. Some companies are more buttoned down and want a resume that looks like a legal document, others will notice a resume format that stands out for creativity.&lt;/p&gt;

&lt;p&gt;On top of the edits, there’s the exports that a job-seeker needs to generate. Some companies want PDF, some want Word, and in some cases the resume needs to be pasted into a form as plain text.&lt;/p&gt;

&lt;p&gt;Unless a person is actively in job-seeking mode when someone asks them “shoot me your resume” most people have to stop and think for a second about: “Is my resume current? When did I update it last? Is the latest version I did synced to my mobile device or do I have to wait til I get home to send it? Do I need to reformat it for this manager/company?”&lt;/p&gt;

&lt;h4 id=&quot;enter-abstretta-and-the-dynamic-resume&quot;&gt;Enter Abstretta and the “Dynamic Resume”&lt;/h4&gt;

&lt;p&gt;Abstretta uses the methodology of a Content Management System (CMS) to deliver resumes. The way a CMS works is you have your articles and posts &lt;strong&gt;content&lt;/strong&gt; stored in a database. Above that you have the CMS script which determines which articles will show on a page. These can be aggregated based on tag, category, time, or author. And above that you have themes which determine how the site, and the posts being displayed, will look on the screen.&lt;/p&gt;

&lt;p&gt;None of these layers knows or even cares about the other. You can edit an article and not have to worry about re-formatting because somewhere else a theme is handling it. If you want to add a post to a listing page which shows everything tagged with “software”, yo don’t have to edit the listing page, you just tag the posts you want to appear there.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/front-tags.png&quot; alt=&quot;&quot; class=&quot;pullright&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Abstretta is structured along the same lines. At the bottom are “Pieces” - the elements that make up a resume. Things like college degrees, work experience, certifications, and so on. Each piece can be tagged in whatever way the user would like. This can be based on industry (&lt;code class=&quot;highlighter-rouge&quot;&gt;#aerospace&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;#biomed&lt;/code&gt;, etc.) or role (&lt;code class=&quot;highlighter-rouge&quot;&gt;#management&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;#developer&lt;/code&gt;, etc.). Whatever works for the user.&lt;/p&gt;

&lt;p&gt;In the middle is the “Resume” object which is constructed based on which tags should be show (green check), hidden (red x), or ignored (circle). An “ignored” tag is simply not included in the visibility calculation. So if you have a work experience which is tagged with &lt;code class=&quot;highlighter-rouge&quot;&gt;#aerospace&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;#management&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;#developer&lt;/code&gt; and you want to build a resume for “aerospace management”, you could ignore the &lt;code class=&quot;highlighter-rouge&quot;&gt;#developer&lt;/code&gt; tag which would allow this work experience to be included in the resume. If you marked the &lt;code class=&quot;highlighter-rouge&quot;&gt;#developer&lt;/code&gt; tag as “hidden”, that Piece would be excluded from the generated resume.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/post-images/front-styles.png&quot; alt=&quot;&quot; class=&quot;pullright&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Atop all of this is a template system which applies different styles to a resume. This way the user can completely change the style of their resume with a couple of clicks. No re-editing of content is required.&lt;/p&gt;

&lt;p&gt;Not only are resumes constructed dynamically, the tags and settings can be adjusted at the time you send a resume link to a prospective employer. So for instance you want to apply for a position and a friend tips you off that they like short resumes that do not include anything further back than five years, and do not care about certifications or awards - just work experience. With a few quick clicks you can change the date range to only go back five years, and exclude anything you tagged as “certification” or “award”. In under 30 seconds you just customized your resume to exactly what this company wants to see with no re-editing and no re-formatting. Abstretta snapshots the resume that gets sent to each recipient, much better than having 20 different copies in a folder on a drive someplace.&lt;/p&gt;

&lt;p&gt;If you have Abstretta, not only do you always have your resume with you right on your mobile device, but you can customize and send that resume at any time from that same device. Your resume is always up to date as long as you add new accomplishments or work experience to the system. This takes less than a minute - just create a new piece, give it a name and some tags, and paste in what it’s all about. Done. Easy. Portable.&lt;/p&gt;</content><author><name></name></author><summary type="html">Abstretta uses the methodology of a Content Management System (CMS) to deliver resumes. Content, style, and structure are all independent from each other, allowing resumes to be quickly assembled and re-assembled without time-consuming manual editing of a complexly formatted document.</summary></entry><entry><title type="html">Public Beta Now Open</title><link href="https://blog.abstretta.com/2020/02/01/public-beta.html" rel="alternate" type="text/html" title="Public Beta Now Open" /><published>2020-02-01T00:00:00+00:00</published><updated>2020-02-01T00:00:00+00:00</updated><id>https://blog.abstretta.com/2020/02/01/public-beta</id><content type="html" xml:base="https://blog.abstretta.com/2020/02/01/public-beta.html">&lt;p&gt;&lt;img src=&quot;/assets/post-images/open-for-business.jpg&quot; alt=&quot;My helpful screenshot&quot; class=&quot;splash&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Abstretta’s upgrades and hosting move are complete so it’s time to get to the next phase: opening the product to the public. While the banner still says “Beta” the system is much closer to “RC2” levels of stability. So mainly we’re looking to find anything that we missed in testing as users start to explore the system.&lt;/p&gt;

&lt;p&gt;To recap, Abstretta’s features include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Resumes represented as dynamic documents&lt;/li&gt;
  &lt;li&gt;Multiple persona support&lt;/li&gt;
  &lt;li&gt;Apply different themes without re-authoring&lt;/li&gt;
  &lt;li&gt;Support for multiple saved resume configurations&lt;/li&gt;
  &lt;li&gt;Publish resumes publicly, privately, or privately to specific contacts&lt;/li&gt;
  &lt;li&gt;Inboard cover letter mechanism&lt;/li&gt;
  &lt;li&gt;Contact form available while viewing a resume&lt;/li&gt;
  &lt;li&gt;Activity tracking for email and resume views&lt;/li&gt;
  &lt;li&gt;“Scribbles” allow saving and distributing relevent information like references&lt;/li&gt;
  &lt;li&gt;“Opportunities” make it easy to manage the job-search workflow online&lt;/li&gt;
  &lt;li&gt;Weekly statistics for how many views your resumes received&lt;/li&gt;
  &lt;li&gt;Mobile-web interface means your resume is always with you&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’re starting to get into finding venture funding for the full product launch, so getting a few hundred users while in pre-release will help that along. Expect to start seeing ads on social media for Abstretta very soon!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;NOTE: A lot was changed with the Rails 6 upgrade, so it’s possible we missed a few things in QA. If you get a crash, rest assured we see it in the exception tracker and will look into the problem ASAP. So far the bugs that’ve come up as a result of the upgrade were each fixable in under half an hour, so we don’t expect anything seriously crippling to come up.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;</content><author><name></name></author><summary type="html">Abstretta's upgrades and hosting move are complete so it's time to get to the next phase: opening the product to the public. While the banner still says 'Beta' the system is much closer to 'RC2' levels of stability. So mainly we're looking to find anything that we missed in testing as users start to explore the system.</summary></entry><entry><title type="html">Release 0.9.9.18</title><link href="https://blog.abstretta.com/releases/0.9.9.18/" rel="alternate" type="text/html" title="Release 0.9.9.18" /><published>2020-02-01T00:00:00+00:00</published><updated>2020-02-01T00:00:00+00:00</updated><id>https://blog.abstretta.com/releases/v0_9_9_18</id><content type="html" xml:base="https://blog.abstretta.com/releases/0.9.9.18/">&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote bugnote&quot;&gt;BUG&lt;/span&gt; Fixed a couple Rails 6 related issues with new account creation.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Add more Google analytics for internal tracking of site usage.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Changed the sending email address to no-reply@abstretta to make it less likely that emails get flagged as spam. The reply-to headers are right, so recipients will be able to reply to messages correctly.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Removed Wisper for observer support, simplifying the callbacks to use native Rails.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote bugnote&quot;&gt;BUG&lt;/span&gt; Fixed an issue with blank notification emails.&lt;/p&gt;</content><author><name></name></author></entry><entry><title type="html">Release 0.9.9.17</title><link href="https://blog.abstretta.com/releases/0.9.9.17/" rel="alternate" type="text/html" title="Release 0.9.9.17" /><published>2020-01-08T00:00:00+00:00</published><updated>2020-01-08T00:00:00+00:00</updated><id>https://blog.abstretta.com/releases/v0_9_9_17</id><content type="html" xml:base="https://blog.abstretta.com/releases/0.9.9.17/">&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote bugnote&quot;&gt;BUG&lt;/span&gt; Fixed crashes in quick/sending to new contacts caused by R6 updgrade.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote bugnote&quot;&gt;BUG&lt;/span&gt; Fixed bug in send form due to R6 being more strict on authentication.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote bugnote&quot;&gt;BUG&lt;/span&gt; Fixed crasher from not detection nil publications in viewing.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Changed the support email name to be recognizable.&lt;/p&gt;</content><author><name></name></author></entry><entry><title type="html">Hosting Change, Rails 6 Upgrade</title><link href="https://blog.abstretta.com/2019/12/18/hosting-change.html" rel="alternate" type="text/html" title="Hosting Change, Rails 6 Upgrade" /><published>2019-12-18T00:00:00+00:00</published><updated>2019-12-18T00:00:00+00:00</updated><id>https://blog.abstretta.com/2019/12/18/hosting-change</id><content type="html" xml:base="https://blog.abstretta.com/2019/12/18/hosting-change.html">&lt;p&gt;Abstretta has been upgraded to Rails 6. This opens up a lot of new features and performance enhancements (not the least of which is moving
all the JavaScript code into WebPacker). There may still be a few bugs, but it looks like things are holding up.&lt;/p&gt;

&lt;p&gt;Along with this change, the system is now hosted on DigitalOcean (&lt;a href=&quot;http://digitalocean.com&quot;&gt;http://digitalocean.com&lt;/a&gt;) and deployed via Hatchbox (&lt;a href=&quot;http://hatchbox.io&quot;&gt;http://hatchbox.io&lt;/a&gt;). This is
both for cost-savings and more functionality. I was hosted on Heroku, which works fine and I’ve used for years. But to get some
features like Redis and background workers requires expensive add-ons.&lt;/p&gt;

&lt;p&gt;This was a pretty substantial change. In addition to a whole new release of Rails and upgrading all the gems, plus upgrading Ruby, the stack now uses a proper background job system. In the prior release, it was using background threads to send emails and perform more time-consuming tasks. This was because of the surcharges Heroku imposes to run Redis and additional workers. Now on Hatchbox/DigitalOcean, we’re free of those costs and the system now uses Sidekiq to run background jobs. Much more robust and scalable.&lt;/p&gt;

&lt;p&gt;The final big change to end 2019 was to move the blog and release notes over to Jekyll. This makes it easier to keep users updated.&lt;/p&gt;</content><author><name></name></author><summary type="html">Abstretta has been upgraded to Rails 6. This opens up a lot of new features and performance enhancements (not the least of which is moving all the JavaScript code into WebPacker). There may still be a few bugs, but it looks like things are holding up.</summary></entry><entry><title type="html">Release 0.9.9.16</title><link href="https://blog.abstretta.com/releases/0.9.9.16/" rel="alternate" type="text/html" title="Release 0.9.9.16" /><published>2019-12-16T00:00:00+00:00</published><updated>2019-12-16T00:00:00+00:00</updated><id>https://blog.abstretta.com/releases/v0_9_9_16</id><content type="html" xml:base="https://blog.abstretta.com/releases/0.9.9.16/">&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Upgraded to Rails 6 and Ruby 2.6.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; More work streamlining JavaScript code.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Moved blog and release notes out to standalone Jekyll site.&lt;/p&gt;</content><author><name></name></author></entry><entry><title type="html">Release 0.9.9.15</title><link href="https://blog.abstretta.com/releases/0.9.9.15/" rel="alternate" type="text/html" title="Release 0.9.9.15" /><published>2019-12-12T00:00:00+00:00</published><updated>2019-12-12T00:00:00+00:00</updated><id>https://blog.abstretta.com/releases/v0_9_9_15</id><content type="html" xml:base="https://blog.abstretta.com/releases/0.9.9.15/">&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Switched hosting to HatchBox/DigitalOcean.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Background tasks now run under Sidekiq for better job handling.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Got rid of some old JS code and markup to improve performance.&lt;/p&gt;</content><author><name></name></author></entry><entry><title type="html">StimulusJS Rewrite</title><link href="https://blog.abstretta.com/2019/03/17/stimulusjs-rewrite.html" rel="alternate" type="text/html" title="StimulusJS Rewrite" /><published>2019-03-17T00:00:00+00:00</published><updated>2019-03-17T00:00:00+00:00</updated><id>https://blog.abstretta.com/2019/03/17/stimulusjs-rewrite</id><content type="html" xml:base="https://blog.abstretta.com/2019/03/17/stimulusjs-rewrite.html">&lt;p&gt;Abstretta uses JavaScript in several key places to provide the kind of interactivity that makes the system easier to use. Up to now, it’s been plain old jQuery (&lt;a href=&quot;https://jquery.org/&quot;&gt;https://jquery.org/&lt;/a&gt;) code. The resulting code worked fine, but I wasn’t quite happy with the performance. Also, because there was a lot of asynchronous things happening, I had to bypass Rails’ built-in TurboLinks functionality - which also hurt overall responsiveness.&lt;/p&gt;

&lt;p&gt;So over the holiday break (time off? wuzzat?) I recoded all the JavaScript code using StimulusJS (&lt;a href=&quot;https://www.stimulusjs.org&quot;&gt;https://www.stimulusjs.org&lt;/a&gt;). StimulusJS is written by the folks at Basecamp, still owned by DHH (&lt;a href=&quot;https://twitter.com/dhh&quot;&gt;https://twitter.com/dhh&lt;/a&gt;) who created Rails. So StimulusJS integrates perfectly with the TurboLinks page-load lifecycle making things faster and less glitchy.&lt;/p&gt;

&lt;p&gt;Another advantage is that StimulusJS makes it easy to componentize wide-scoped functionality and apply it only when needed. For instance, Abstretta uses timeago.js (&lt;a href=&quot;https://timeago.org/&quot;&gt;https://timeago.org/&lt;/a&gt;) to render relative timestamps. With StimulusJS this gets rolled into a controller as:&lt;/p&gt;

&lt;div class=&quot;language-javascript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;(()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;stimulus&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;register&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;timeago&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Stimulus&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;Controller&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;

    &lt;span class=&quot;nx&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;-=&amp;gt; timeago_controller connected&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

      &lt;span class=&quot;nx&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;time.timeago&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;timeago&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
      &lt;span class=&quot;nx&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;.timeago_content&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;fadeIn&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;slow&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

      &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;run_timeago&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;nx&quot;&gt;setTimeout&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;nx&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;time.timeago&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;timeago&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;60000&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;})();&lt;/span&gt;

    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;nx&quot;&gt;initialize&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;

      &lt;span class=&quot;nx&quot;&gt;jQuery&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;timeago&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;settings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;strings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;en&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;prefixAgo&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;prefixFromNow&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;suffixAgo&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;suffixFromNow&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;seconds&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;lt;1m&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;minute&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;1m&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;minutes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;%dm&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;hour&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;1h&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;hours&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;%dh&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;day&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;1d&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;days&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;%dd&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;month&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;1mo&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;months&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;%dmo&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;year&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;1yr&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;years&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;%dyr&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;wordSeparator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;numbers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[]&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;

    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
  &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;-=&amp;gt; timeago_controller loaded&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then to use JavaScript-generated relative timestamps, that update every minute just attach it to the surrounding container like:&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;div&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;data-controller=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;timeago&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  Yadda yadda yadda
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The next big step in the JavaScript code will be upgrading the Rails stack to 5.1 and putting in WebPacker support. That will give even better responsiveness - close to what you get from a native App.&lt;/p&gt;</content><author><name></name></author><summary type="html">Over the holiday break I recoded all the JavaScript code using StimulusJS. StimulusJS is written by the folks at Basecamp and integrates perfectly with the TurboLinks page-load lifecycle making things faster and less glitchy.</summary></entry><entry><title type="html">Release 0.9.9.14</title><link href="https://blog.abstretta.com/releases/0.9.9.14/" rel="alternate" type="text/html" title="Release 0.9.9.14" /><published>2019-03-15T00:00:00+00:00</published><updated>2019-03-15T00:00:00+00:00</updated><id>https://blog.abstretta.com/releases/v0_9_9_14</id><content type="html" xml:base="https://blog.abstretta.com/releases/0.9.9.14/">&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Cleaned up the UI a little to get rid of extraneous separator lines.&lt;/p&gt;

&lt;p class=&quot;relnote_outer&quot;&gt;&lt;span class=&quot;relnote changenote&quot;&gt;CHANGE&lt;/span&gt; Removed a few disused JavaScript components to help load time.&lt;/p&gt;</content><author><name></name></author></entry></feed>