thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • A Simple Approach to Thread-Safe Networking in iOS Apps
    In any iOS app’s development, there comes a time when you need to make two network requests in parallel, and only continue if both succeed. There are a lot of ways to solve this problem, and it’s very easy to make mistakes. Here is a short (non-exhaustive) list of tools and approaches you could use: DispatchGroup allows you to link related tasks, then use DispatchGroup.wait() or DispatchGroup.no...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Booleans and Enums
    Booleans are one of the first data types new programmers learn and with good reason: having only two states makes them one of the simplest. Surely something so simple can’t be abused? It turns out it’s easier than you’d think to make a mess with Booleans. Languages with first-class support for enums like C, Swift, Rust, and TypeScript provide the tools for some really nice refactorings. Note tha...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Better Date Manipulation in PostgreSQL Queries
    Sometimes we need functionality outside the reach of our ORM’s API. When that happens we write good ol’ SQL. It’s a trade-off. We give up convenient date and time helper methods (like 1.month.ago) in exchange for added query flexibility. Fortunately Postgres provides a few tricks to make working with dates smoother. Two that I’ve found most useful are the interval data type and the date_trunc func...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Finding the Oldest/Youngest Records Within a Group
    A common query that crops up in web apps is finding the oldest or the most recent record in a single table. This is straightforward in SQL. You can even write the relevant part of the query without knowing anything about the table (other than the fact that it has a timestamp column called created_at): ORDER BY created_at LIMIT 1 Oldest or Most Recent records relative to another field ...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Styling a Middleman Blog with the Bourbon Suite: Revisited
    It’s been a while since we first released our blog post about setting up a Middleman Blog with the Bourbon suite and some things have changed since 2014. Middleman is one of our favorite static site generators and Bourbon is an open-source, lightweight scss suite for styling websites. There’s a new release of Middleman, and we’re on new versions of Bourbon and Neat as well. Let’s revisit how we ca...
thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

  • Facial Recognition (Jon)
    Jon starts describing a system for playing your personal theme music and ends up talking about how the surveillance state probably isn’t as advanced as you think. - https://github.com/jyurek/themeface/
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Deadlines
    Deadlines are a tool. There are good and bad deadlines. This post is going to outline how you could be using deadlines to superpower your project as well as some of the pitfalls that we see many organizations fall into. The following is taken verbatim from the excellent post How Do You Decide When a Design is “Finished”? Am I making good use of my time? The awesome thing about dead...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Things I wish I knew before my first Design Sprint
    There are plenty of great books, tutorials, and case-studies that can teach you to run a design sprint. But, at some point you have to take the plunge and put that learning into practice. Design sprints encourage mistakes, practice and learning that’s what makes them so useful to the teams that run them. It also makes every design sprint unique, everyone learns something different from each, but ...
thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

  • Why is Bob Ross so Bob Ross? (Jaclyn)
    Bob Ross isn’t just teaching us how to be painters–he is teaching us a way of life. In this lightning talk you will learn how Bob creates the paintings he does, and what makes him so inspiring.
thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

  • The Pixar Theory (Amanda)
    Every Pixar movie is connected. I explain how and possibly why." These are the words that began the detailed essay now known as "The Pixar Theory," which came out back in 2013. It collected over 10 million views on Jon Negroni's blog alone, and was syndicated on Buzzfeed, Mashable, Huffpost, Entertainment Weekly, and more – generating over 100 million impressions and now translated into a dozen la...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Lean & Maintainable Reports with Heroku Dataclips
    Many organizations are hungry for data to help the team understand how customers are using their services. On a recent project the business owners needed a report but intended to hold off building an admin-y report-packed hub until core customer-facing functionality was complete. All reports take effort: Writing the database query, maintaining it as data structures change, and allowing business...
thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

  • The Developers Path
    How companies and developers can work together to achieve reciprocal growth Finding skilled developers is a challenge faced by many companies today, equally, many junior developers want to level up and continue to grow. Is there a mutually beneficial solution? To get a handle on this challenge, a panel of specialists will debate the topic and answer questions from the floor: - Steve Alexander, Se...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Nesting grids with Neat 2
    iframe { margin-top: 30px; margin-bottom: 40px; } Neat 2 introduces a lot of new interesting features and functionality, and also reworks a few key principles. One of these features is the ability to create nested grids. Nested grids are common for creating complex layouts and dynamic designs. They are also pivotal when creating components that live inside large layout structures....
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • A Crash Course in Analyzing Memory Usage in Ruby
    While working on a Rails app recently, a question came up around the right way to implement a feature, and whether the impact on memory usage was something to be concerned about. In looking into the question, I learned a little about analyzing memory usage in Ruby. In this article we’ll look through some of the possibilities. The app handles a number of legacy URL paths, and redirects each one to...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Lessons From Using Phoenix 1.3
    [WARNING] I like contexts. Phew… I just wanted to admit that up front. Now that I got that out of the way, I am going to share my journey about using Phoenix 1.3.0 and contexts. My context Lessons: Don’t use the generators Embrace the domain vocabulary Avoid the bloat Consider before umbrellas You should give it a shot Experience I worked on a greenfield project and had a...
thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

  • Bike Shed LIVE! @ RailsConf 2017
    Sean and Derek are joined by Caleb Thompson and Matthew Mongeau for our annual live episode to discuss lessons learned from past projects, and speaking at conferences.
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Cutting our Blueteeth on React Native
    We’ve been working on a project with Zagster that uses Bluetooth Low Energy (BLE) to connect to a BLE-powered bike lock so that we can authorize, read, write, and receive notifications from the lock, resulting in a better, faster, and easier riding experience. Round 1: iOS and react-native-ble For our first attempt we decided to use react-native-ble to connect and interact with the lo...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Join us in SF for PLIBMTTBHGATY
    On Saturday, August 5th, we’ll be hosting a PLIBMTTBHGATY, a.k.a Programming Languages I’ve Been Meaning To Try But Haven’t Gotten Around To Yet, event in our San Francisco office. If you’ve never attended one of these, you’re missing out. It’s a lightly-structured party where people get together and work on a project in a new programming language or framework, either with or just near each other...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • London Panel Discussion: The Developer's Path
    Are you interested in how developers get better and how you can apply that to yourself? We’re hosting an event in London to explore thoughtbot’s approaches to this and how other organisations tackle this challenge. This will also help you recognise the companies that care about your development. We’ve chosen a panel of specialists (including our CEO, Chad Pytel) who will share their first hand k...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Alternative View Layers for an Elm App
    In the current, fast-changing JavaScript scene, there are two projects I am following more closely than the rest: Elm and Ember.js. Recently I had the opportunity to experiment with both at once, as I worked out how to use Glimmer (Ember.js’s rendering engine) as a view layer for Elm code. This is a write up of my solution. It is actually divided in two parts: Using an external view layer with ...
thoughtbot
thoughtbot
Blog Post

New blog articles detected.

  • Dive Into Neovim & Vim 8, Now on Upcase
    There’s nothing more frustrating than a clunky workflow or IDE when coding. It can take years to optimize your workflow to code quickly and effectively. One of the most important parts of that workflow is your text editor. If you’re a Vim or Neovim user, it feels like there is unlimited room for optimization. Drew Neil from Vimcasts is here to show you how to get the most out of Neovim & Vim 8. ...
thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

  • Snapchat (Brenda)
    If you count yourself among the many who are bemused by it’s inexplicable UI, Brenda Storer attempts to explain the mystery that is Snapchat. (Spoiler alert: she doesn’t finish)
thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

  • 0430 Club (Josh)
    #0430club is a movement focusing on mental discipline and thriving on discomfort by waking up every morning at 4:30am. By attacking the day head-on, practitioners are able to accomplish large feats. Josh Clayton discusses why people should wake up at 4:30am, what the benefits of waking up early are, and his routine as a member of the club.
thoughtbot
thoughtbot
YouTube Video
thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

  • Elixir for Rubyists (Tute)
    A top-down look into Elixir for Rubyists, in which Tute Costa talks about working with Elixir / Phoenix as Ruby / Rails developers.
thoughtbot
thoughtbot
YouTube Video

New YouTube videos detected.

  • Minnesota (Jack)
    If you're like most people, you've never set foot in Minnesota; but don't worry, Jack has spent so much of his life there that it all balances it out. In this video, you'll learn some true facts about America's lakiest state.

Out-Market Your Competitors?

Get complete competitive insights on over 2.2 million companies to drive your marketing strategy.

Create Free Account Log in

By signing up, you agree to the Terms of Service and Privacy Policy.

Out-Market Your Competitors

Get complete competitive insights on over 2.2 million companies to drive your marketing strategy.

Create Free Account

Already a user?  Log in

By signing up, you agree to the Terms of Service and Privacy Policy.