robots.thoughtbot.com Archives - 25 June 2016, Saturday

  • What's New in WWDC16: Designer Edition

    robots.thoughtbot.com 23 Jun '16, 12am

    : You can now take advantage of Wide Color in your apps and games, making them more look more vibrant than ever. To do so, use the P3 color space–or the extended sRGB in for backward compatibility–to define UI colors. You will also have to export your image assets as 16bit PNG files w...

  • Contributing to Open Source Go Projects

    robots.thoughtbot.com 20 Jun '16, 12am

    I want to walk you through my workflow for contributing to open source Go projects. If you’ve contributed to open source projects in other languages, it should feel familiar, but there are a few special things to look for. We’ll use thoughtbot’s Clearbit client library as an example. ...

  • Align GitHub-Flavored Markdown Tables in Vim

    Align GitHub-Flavored Markdown Tables in Vim

    robots.thoughtbot.com 15 Jun '16, 12am

    You desire a pretty table in your GitHub document: Luckily, GitHub-flavored Markdown enables you to format data as a table: | Step | Users | Conversion | Obstacles | | --- | --- | --- | --- | | Viewed Home Page | 13,129 | 7.9% | Messaging | | Viewed Sign Up Page | 1,044 | 20.6% | Cost...

  • How To Reduce a Large Heroku Slug Size

    robots.thoughtbot.com 13 Jun '16, 12am

    Have you ever seen this error when you tried to deploy to your Heroku app? Compiled slug size: 300.6M is too large (max is 300M) You can’t deploy but don’t fret. Here’s a few ways to reduce the slug size. Clean up the Git repository Install the Heroku Repo plugin : heroku plugins:inst...

  • iOS Text Kit Basics

    robots.thoughtbot.com 12 Jun '16, 10am

    - (void)createColumns { // Remove any existing text containers, since we will recreate them. for (NSUInteger i = [self.layoutManager.textContainers count]; i > 0;) { [self.layoutManager removeTextContainerAtIndex:--i]; } // Capture some frequently-used geometry values in local variabl...

  • JavaScript Audio API

    robots.thoughtbot.com 08 Jun '16, 12am

    I recently had the opportunity to play around with JavaScript’s Web Audio API . There were a couple of features we ended up leveraging, and some I’d like to explore in the future (check out some of the audio nodes you can apply; ConvolverNode , DynamicsCompressorNode or PannerNode !)....

  • Conserved Colorado

    Conserved Colorado

    robots.thoughtbot.com 07 Jun '16, 4pm

    In 2015, thoughtbot Denver launched Cultivate Colorado : a competition granting a local organization the opportunity to partner with us pro-bono to design and build a product dedicated to solving a social or environmental issue. Cultivate Colorado was thoughtbot’s way of expressing gr...

  • A tmux Crash Course

    robots.thoughtbot.com 06 Jun '16, 1am

    I’ve been using tmux for about six months now and it has become just as essential to my workflow as vim. Pane and window management, copy-mode for navigating output, and session management make it a no-brainer for those who live in the terminal (and especially vim). I’ve compiled a li...

  • Introducing Swish 1.0: Protocol Based Networking for iOS

    robots.thoughtbot.com 02 Jun '16, 12am

    Swish 1.0, our swift networking library, is out! Swish came to life through working on many client projects and writing more or less the same networking stack over and over. Our goals with Swish are: Be able to test our networking layer. Keep the networking layer to be self contained....

  • Smash into Bourbon with Our New Design Course

    Smash into Bourbon with Our New Design Course

    robots.thoughtbot.com 01 Jun '16, 8pm

    A lot of web developers are comfortable with the backend, but struggle to create a cohesive visual style and layout. What are modern best practices? How do web designers think about and structure a site’s CSS? thoughtbot’s designers use our Bourbon suite , a very popular set of tools ...

  • The Perils of Uniqueness Validations

    robots.thoughtbot.com 01 Jun '16, 3pm

    Your Rails application probably makes use of uniqueness validations in several key places. This validation provides for a nice user experience when duplicate records are detected but as we will see in a moment, is not enough to ensure data integrity. What Can Go Wrong Let’s take a loo...

  • Sass Pathways

    robots.thoughtbot.com 31 May '16, 12am

    Sass’s killer feature was truly the @import statement. When a Sass file is imported, all the variables and mixins defined previously are now available in any subsequent imported file. So, it is very good practice to define a single top-level stylesheet that you link to from the <HEAD>...

  • You Don't Need JavaScript for That!

    robots.thoughtbot.com 30 May '16, 3pm

    .tooltip-toggle { cursor: pointer; position: relative; //Tooltip text container - above element //You can adjust the position to make the container appear below or beside the element &::before { background-color: #000; border-radius: 5px; color: #fff; content: attr(data-tooltip); //Th...

  • No Newline at End of File

    robots.thoughtbot.com 30 May '16, 11am

    Have you ever seen “No newline at end of file” in your git diffs? Us, too. ~/.dotfiles% git diff diff --git a/vimrc b/vimrc index 7e31913..a8b5f95 100644 --- a/vimrc +++ b/vimrc @@ -2,4 +2,4 @@ let configs = split(glob("~/.vim/configs/*"), "\n") for filename in configs execute 'source...

  • You Don't Need JavaScript for That!

    robots.thoughtbot.com 30 May '16, 12am

    .tooltip-toggle { cursor: pointer; position: relative; //Tooltip text container - above element //You can adjust the position to make the container appear below or beside the element &::before { background-color: #000; border-radius: 5px; color: #fff; content: attr(data-tooltip); //Th...

  • Prototyping Animation with Keynote

    robots.thoughtbot.com 29 May '16, 12pm

    One look on Dribbble, and you’ll notice the abundance of animations that emphasize interaction. The increasing number of devices, screens, and use cases have required designers to think of new ways to improve the usability of applications. Animation can be a tool for solving these pro...

  • Failing on Day One

    robots.thoughtbot.com 27 May '16, 6am

    It’s the first week of a brand new project. You and the whole team are excited and optimistic about its success. In the second week, one of the features you are working on takes two days longer than expected. “No problem,” you think, “I can make it up next week”. The next day you have...

  • Your Program is a Special and Unique Snowflake

    robots.thoughtbot.com 26 May '16, 12am

    Your Program is a Special and Unique Snowflake Joe Ferris May 26, 2016 good code ruby Everyone’s special…which is another way of saying no one is. — The Incredibles Developers live in a world of abstraction. Rails abstracts away the details of web requests, providing you with a world ...

  • Action Mailer and Active Job sitting in a tree...

    robots.thoughtbot.com 25 May '16, 12am

    # Gemfile group :development, :test do gem "dotenv-rails" end # .env APPLICATION_HOST=localhost:3000 SMTP_ADDRESS=smtp.example.com SMTP_DOMAIN=example.com SMTP_PASSWORD=password SMTP_USERNAME=username # config/environments/production.rb config.action_mailer.delivery_method = :smtp con...

  • Analyzing Minard's Visualization Of Napoleon's 1812 March

    robots.thoughtbot.com 24 May '16, 4am

    Czar Alexander of Russia sees that Napoleon was becoming too powerful, so he refuses to participate in this embargo. Angry at Czar Alexander’s decision, Napoleon gathers a massive army of over 400,000 to attack Russia in June of 1812. While Russia’s troops are not as numerous as Franc...

  • Announcing fake_stripe

    robots.thoughtbot.com 24 May '16, 12am

    We like to use Stripe for payment processing in our clients’ applications and in our own. That’s why we created fake_stripe , a gem that makes testing your Rails app against Stripe much easier. fake_stripe spins up a local server that acts like Stripe’s and also serves a fake version ...

  • How Design is Changing IT

    robots.thoughtbot.com 23 May '16, 12am

    If you’re at an enterprise company, your intranet and the tools your company uses probably suck. The reason why? The primary needs and concerns of the IT department are not the same as yours. So the people who decided to buy the software are not the people who will use it. However, fo...

  • Converting To Jobs Stories

    robots.thoughtbot.com 21 May '16, 2pm

    We have used user stories as part of our design and development process for many years. You could find several mentions of them throughout our playbook . We used user stories to give designers and developers context to the problems that the user is having and give space for them to so...

  • My issues with Let

    robots.thoughtbot.com 20 May '16, 7pm

    For a while now, we’ve recommended against using let in RSpec and minitest. We even have a blog post explaining our thoughts. Despite that, I still have trouble explaining my problems with let and before to other developers. They’re wonderful for cleaning up duplication, and can make ...

  • Four-Phase Test

    robots.thoughtbot.com 20 May '16, 12am

    The Four-Phase Test is a testing pattern, applicable to all programming languages and unit tests (not so much integration tests). It takes the following general form: test do setup exercise verify teardown end There are four distinct phases of the test. They are executed sequentially....

  • Rules Made Up by You

    robots.thoughtbot.com 13 May '16, 8pm

    Kelly Johnson worked at and was one of the driving forces behind Lockheed Martin’s Skunk Works group. As part of an upcoming project management book I’ve been writing (it’s called SWARM, is meant for managers of small teams of software developers, and has a picture of bees on the cove...

  • Scrum story points kit

    robots.thoughtbot.com 13 May '16, 12am

    At thoughtbot we prefer not to estimate with story points for user stories. Story points are a proxy for time, and if we need to know how many days a feature would take, we just talk in terms of time. Some projects require us to estimate using story points, and when that happens, we b...

  • Fuck Bullshit

    robots.thoughtbot.com 12 May '16, 12am

    Fuck Bullshit Mike Burns May 12, 2016 business There’s a lot of nonsense in the everyday world, but I’d like to focus on four that affect us: symbols, metaphors, white lies, and omission. They affect us as software developers, as tech consultants, and as citizens. Symbols Our industry...

  • Testing Elixir Plugs

    robots.thoughtbot.com 11 May '16, 12am

    On a Phoenix application I worked on recently, I decided to tackle a bug where we weren’t redirecting users to a sign-in page even though we were expecting conn.assigns to have current_user . This was only happening in a few different areas of the app. Plugs to the rescue. What are Pl...

  • Architecting Front-end Styles

    Architecting Front-end Styles

    robots.thoughtbot.com 10 May '16, 12am

    The last directory contains views. In an ideal world this directory stays empty forever. This directory exists for styles specific to a single view that affect multiple patterns within them. Definitions here are so specific that it is nonsensical or even destructive to try to abstract...