<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Tamara Temple</title>
    <description>The latest articles on Forem by Tamara Temple (@tamouse).</description>
    <link>https://forem.com/tamouse</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F999%2Fc6fea83e-7043-466a-ae18-9656d5dd8c28.jpg</url>
      <title>Forem: Tamara Temple</title>
      <link>https://forem.com/tamouse</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tamouse"/>
    <language>en</language>
    <item>
      <title>TIL: newer uniqueness validation syntax</title>
      <dc:creator>Tamara Temple</dc:creator>
      <pubDate>Thu, 22 Oct 2020 16:57:11 +0000</pubDate>
      <link>https://forem.com/tamouse/til-newer-uniqueness-validation-syntax-4h0l</link>
      <guid>https://forem.com/tamouse/til-newer-uniqueness-validation-syntax-4h0l</guid>
      <description>&lt;p&gt;&lt;em&gt;Today, I learned how to write a rails uniqueness validation using the &lt;code&gt;validates&lt;/code&gt; method.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;In Rails versions prior to 5, the standard accepted way to do a scoped uniqueness validation was by using the &lt;code&gt;validate_uniqueness_of&lt;/code&gt; method:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Subcategory&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;

  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:category&lt;/span&gt;

  &lt;span class="n"&gt;validate_presence&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="ss"&gt;:slug&lt;/span&gt;
  &lt;span class="n"&gt;validate_uniqueness_of&lt;/span&gt; &lt;span class="ss"&gt;:slug&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;scope: :category_id&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Rails 5 (I'm not sure exactly when) the longer forms are being deprecated in favour of using the &lt;code&gt;validates&lt;/code&gt; method instead.&lt;/p&gt;

&lt;p&gt;In the api docs, however, the uniqueness validator isn't discussed, not even as an example.&lt;/p&gt;

&lt;p&gt;I went digging into the code to try and figure it out and didn't make much headway with that.&lt;/p&gt;

&lt;p&gt;Luckily, I had rubocop set up to complain about the use of the older methods, and told it to fix the failures it found.&lt;/p&gt;

&lt;p&gt;The acceptable syntax is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Subcategory&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ApplicationRecord&lt;/span&gt;

  &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:category&lt;/span&gt;

  &lt;span class="n"&gt;validates&lt;/span&gt; &lt;span class="ss"&gt;:slug&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;presence: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;
  &lt;span class="n"&gt;validates&lt;/span&gt; &lt;span class="ss"&gt;:slug&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;uniqueness: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="ss"&gt;scope: :category_id&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now to update my snippets! :)&lt;/p&gt;

</description>
      <category>rails</category>
      <category>validations</category>
      <category>uniqueness</category>
    </item>
    <item>
      <title>how do you know when to quit?</title>
      <dc:creator>Tamara Temple</dc:creator>
      <pubDate>Fri, 08 Nov 2019 07:06:19 +0000</pubDate>
      <link>https://forem.com/tamouse/how-do-know-when-to-quit-3p2p</link>
      <guid>https://forem.com/tamouse/how-do-know-when-to-quit-3p2p</guid>
      <description>&lt;p&gt;I've been in software dev for over 40 years. For the most part, it's been an exciting, challenging, fun, and rewarding adventure.&lt;/p&gt;

&lt;p&gt;But it hasn't been so for a while. The past year has been a real struggle. And it's gotten worse and worse until now I'm feeling quite awful.&lt;/p&gt;

&lt;p&gt;How do you know when it's time to quit, get out?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
      <category>movingon</category>
    </item>
    <item>
      <title>What is a Full-Stack Developer? A personal experience</title>
      <dc:creator>Tamara Temple</dc:creator>
      <pubDate>Sun, 28 Apr 2019 11:12:33 +0000</pubDate>
      <link>https://forem.com/tamouse/what-is-a-full-stack-developer-a-personal-experience-aep</link>
      <guid>https://forem.com/tamouse/what-is-a-full-stack-developer-a-personal-experience-aep</guid>
      <description>&lt;p&gt;There's been some controversy about the term "Full Stack Developer" recently. There was this image floating around for a while:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ftamouse.github.io%2Fblog%2Fimages%2F5-minutes-to-go.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ftamouse.github.io%2Fblog%2Fimages%2F5-minutes-to-go.jpg" title="5 minutes to go on the test" alt="drawing of a horse with a details back end and stick figure front end, labeled 'When there is 5 minutes to go on your test'. used to illustrate the discongruity of the term 'full-stack developer'. popularized in a tweet by @holtbt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I understand the concept. No one can be an expert in everything. No one should try. It makes sense to be deep in some area, and broad overall, but to expect any developer to be able to pick up anything on any given web app, software product, infrastructure project, etc, is a real &lt;strong&gt;management&lt;/strong&gt; fallacy, and that is a problem if that's what your organization counts on.&lt;/p&gt;

&lt;p&gt;How does that relate to me personally?&lt;/p&gt;

&lt;p&gt;Well, at first I was offended.&lt;/p&gt;

&lt;p&gt;Because I think I'm filling in the detail on the entire horse.&lt;/p&gt;

&lt;p&gt;Except, of course, I'm not.&lt;/p&gt;

&lt;p&gt;My work is very much front-end these days. I write a lot of React code, and need to understand the triumverate of web programming languages JavaScript, HTML, and CSS very well. I have about 10 years experience of writing Ruby, especially in Rails, but also as a general-purpose lanaguge. Developing web apps also requires understanding of system and shell languages, as well as understanding how databases work and the languages associated with them. My practice has included working as a business analyst, to uncover users' needs and translate them into actionable requirements for developers. I've worked in quality assurance, as an engineer, to develop processes that ensure customers and users get valuable and useful products. I've worked from deep in the guts of a unix kernel, writing device drivers, to the front of a dashboard control panel for network administration.&lt;/p&gt;

&lt;p&gt;I am a generalist. But more important, I'm a problem solver. Sure, there's no way I can solve every problem, but I can pretty much understand problems well enough to find out who can solve it, and understand how it fits into the whole. So what does that make me?&lt;/p&gt;

&lt;p&gt;I don't &lt;em&gt;like&lt;/em&gt; the term "full-stack" -- it's too &lt;em&gt;limiting&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;While I'm writing a React component, I'm deeply interested in how the user experience of it manifests in solving a problem for the user interacting with it. What task are they hoping to accomplish, and am I writing the version of this component that's going to fulfill (part of) that task in the best way for the user?&lt;/p&gt;

&lt;p&gt;While I'm writing that, am I going to be able to interact with our services and databases without taxing them or costing us more in infrastructure and/or support system nightmares?&lt;/p&gt;

&lt;p&gt;In the specific area I work in, I'm using GraphQL, and there is no one else on the team who understands how to write a GraphQL API into our backend, so I do that as well.&lt;/p&gt;

&lt;p&gt;So what does that make me? A unicorn? I don't know if it does. We have a small dev team (just enlarged by 2 people, but then diminished by losing our tech lead / manager); we &lt;em&gt;all&lt;/em&gt; need to work all over the app. Some specialize in specific knowledge, but we also need to share knowledge of the product so it doesn't get lost &lt;em&gt;and&lt;/em&gt; so people can review each other's work. I've spent the past couple years as the primary front-end dev without anyone to bounce ideas off of, or give solid review feedback; the team is super supportive, but mainly it's feedback like "Looks good to me!", "We trust you!", and so on; i.e., not &lt;em&gt;constructive&lt;/em&gt; even if quite supportive. For the first 6 months, another team mate was also newly working on the mobile app; we couldn't even really give each other constructive feedback in that time. 2 years ago I wasn't working on the front-end at all. No question my &lt;em&gt;breadth&lt;/em&gt; of experience over the years has let me make it through to here, but it hasn't been &lt;em&gt;easy&lt;/em&gt;. So maybe this horse's front end &lt;em&gt;is&lt;/em&gt; just a stick figure. But it won't stay that way.&lt;/p&gt;

&lt;p&gt;I do think there is space in this world for generalists, but I don't think expecting such generalism to equate to being capable of all things anywhere in the product is doing anyone a service.&lt;/p&gt;

&lt;p&gt;So what &lt;em&gt;don't&lt;/em&gt; I do?&lt;/p&gt;

&lt;p&gt;I'm rapidly losing touch with our operations stuff; I used to work a lot with chef, puppet, and ansible, working to provisioning servers and deploy software fully configured. I don't do that anymore, even necessarily with my own projects. Continuous Integration / Continuous Delivery is something I use, but it's not something I study anymore. There are lots of specific services the product integrates with that I know nothing about. Mobile development eludes me, and I just can't seem to get the hang of it. Anything to do with specific operating systems other than Unix-based ones remains somewhat opaque. (When I have to use XCode, I don't understand anything about what I'm looking at. I know a few buttons to push and that's all.)&lt;/p&gt;

&lt;p&gt;I don't write any C code; I haven't for years. It used to be my everyday language for a decade, at least. Same for PHP and Perl. Ruby has replaced them all.&lt;/p&gt;

&lt;p&gt;I still write Lisp, which was the 3rd language I ever learned, because, yay, emacs.&lt;/p&gt;

&lt;p&gt;For most people starting out in their career, it's really great to focus in, get depth in a discipline. It's necessary to keep expanding beyond it, getting understanding of other disciplines, and there's more in common than not in many cases. Learning new languaqes, especially languages for different disciplines, is helpful. The tools to build software these days are pretty phenomenal, and also require study to use well. Even your code editor, whether it's vim/emacs, WebStorm, VSCode, Atom, or &lt;em&gt;anything&lt;/em&gt; (requisite &lt;a href="https://www.xkcd.com/378/" rel="noopener noreferrer"&gt;xkcd reference&lt;/a&gt;) requires studying how it works, how it can help you write better code, faster, and more accurately, and be customized or tailored to fit your "hand". (I'm an old emacser, and not a day goes by I'm not twiddling some setting or writing a snippet of elisp.)&lt;/p&gt;

&lt;p&gt;If you label yourself a "Front-end Dev", or a "Back-end Dev", or a "Full-Stack Dev", that's absolutely great. I don't believe there's really a specific problem with labels; I think there can be problems when expectations are assumed because of the label, which is also inevitable. How important is how you label yourself to you? How long do you think you'll keep it?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>fullstack</category>
      <category>frontend</category>
      <category>backend</category>
    </item>
    <item>
      <title>creating content vs. structuring content: how do *you* go from one to another?</title>
      <dc:creator>Tamara Temple</dc:creator>
      <pubDate>Sun, 28 Apr 2019 08:01:26 +0000</pubDate>
      <link>https://forem.com/tamouse/creating-content-vs-structuring-content-how-do-go-from-one-to-another-2fjl</link>
      <guid>https://forem.com/tamouse/creating-content-vs-structuring-content-how-do-go-from-one-to-another-2fjl</guid>
      <description>&lt;p&gt;By profession, career, and interest, I'm a software developer, at this point mainly working web applications (Rails, React, and GraphQL at this point).&lt;/p&gt;

&lt;p&gt;I'm also a content creator, as in I write documentation, blog posts, produce images, and so on, for both myself and for work.&lt;/p&gt;

&lt;p&gt;When I'm doing the latter, especially writing, I find it difficult to create content with markup embedded in it, so I write text almost exclusively in plain text, with a little markdown added (you know, how markdown is the markup we already know because we've been writing email this way for &lt;em&gt;years&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;I'm also aware that walls of text, even though interspersed with headings at different levels, a few bulleted lists, etc, can still be inaccessible without more semantic structural markup.&lt;/p&gt;

&lt;p&gt;The markdown processors I'm familiar with (kramdown in particular) do a wonderful job of letting you intersperse HTML markup within the stream of markdown, so you can surround things with semantic markup. This works pretty well, in fact.&lt;/p&gt;

&lt;p&gt;And yet, I think I'm looking for something even more intuitive that can be indicated swiftly without my needing to think about it while creating and editing the content in it's more free text form.&lt;/p&gt;

&lt;p&gt;Perhaps there really need to be 2 steps to this process of preparing content for consumption.&lt;/p&gt;

&lt;p&gt;What have you found? How do you work with content to get it to final form? I'm interested in your processes, tools you've found, ways of working, etc.&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
  </channel>
</rss>
