you

Authenticate Your Twitter API Calls Before March

On the 5th of March, Twitter is going to retire version 1 of its API. The replacement, version 1.1 is very similar, but with one major difference; every single call must be authenticated. This means that come March, your existing API calls will break; including simple things like displaying tweets on your site. To fix this, you need to move to the new v1.1 API, and authenticate with Twitter.




you

1969 Buick Century Cruiser: The Concept Car That Believed You Only Live Twice

Someday you will be able to drive a superhighway, turn the controls over to a guidance system, and travel across...




you

Make your backyard bird feeder and welcoming place

A well-stocked bird feeder is a delight, especially when you are stuck in your house. I have spent many hours watching my feeders. Here are some tips to help you enjoy the view from inside:FOOD There...




you

Fran McCaffery’s new challenge: Recruiting preps you don’t know quite so well

Film on Class of 2021 high school basketball players dried up in mid-March when the high school season ended, with most state tournaments (Iowa’s excluded) canceled. If you’re a college...



  • Iowa Men's Basketball

you

Best sports movies: ‘All-Stars’ resonates with anyone involved in youth sports

Editor’s note: The Gazette sports staff has compiled lists of its top 15 favorite sports movies. Each day, a different staffer will share some insight into one of their favorites. Some of them...




you

Best sports movies: ‘Cool Runnings’ will leave you feeling very Olympic

Editor’s note: The Gazette sports staff has compiled lists of its top 15 favorite sports movies. Each day, a different staffer will share some insight into one of their favorites. Some of them...




you

Turn Your Hobby into a Business in 8 Steps

Hobbies can be more than fun, they can make you money, too. Read our eight-step guide to learn how to turn your hobby into a business & make money online!

The post Turn Your Hobby into a Business in 8 Steps appeared first on WooCommerce.




you

How to Choose a Niche for Your Online Store

Find your niche in 5 steps! Choosing a niche is one of the most important aspects of building a profitable online store. Follow this guide to define yours.

The post How to Choose a Niche for Your Online Store appeared first on WooCommerce.




you

The Right Way to Move from Etsy to Your Own Website

Escape the high fees of Etsy when you start your own store! Increased profits & greater flexibility are just 2 benefits. Here's how to do it the right way.

The post The Right Way to Move from Etsy to Your Own Website appeared first on WooCommerce.








you

Joe wants you to Sample that: One C.R. man is on a mission to help local restaurants gain fans

When Joe Sample started posting photos of his takeout food stops in the days after Iowa restaurants were ordered shut down to dine-in service in March, he didn’t think much of it. He just...



  • Food & Drink

you

Chew on This: Five places to get carryout barbecue

In normal times, Chew on This focuses on restaurant openings and closings. These are not normal times, with restaurants closed except to carryout, curbside and delivery. We know these businesses...



  • Food & Drink

you

William "Bill" Young

WILLIAM "BILL" YOUNG
Mount Vernon

William "Bill" Young, 99, of Mount Vernon, passed away Tuesday, May 5, 2020, at Hallmark Care Center. Visitation: 2 to 6 p.m. Friday, May 8, at Stewart Baxter Funeral & Memorial Services in Mount Vernon. A maximum of 10 people will be allowed into the funeral home at one
time. Please follow social distancing requirements and plan to wait outside for your turn. Private family burial: Lisbon Cemetery.
Survivors include his children, Sandra (Donald) Meyers of Fort Myers, Fla., Debra (Allen) Forest of Cedar Rapids, and son, Kenneth Billman of Cedar Rapids; son-in-law, Howard Hemmer of Beloit, Wis.; 10 grandchildren; 21 great-grandchildren; and many extended family members and friends.
William Young was born Nov. 11, 1920, in Chemung, Ill., to Chris and Sophia (Mutchow) Young. He married Edna (Ohrt) Billman on April 15, 1961, in Lisbon. He was a lifelong resident of the Mount Vernon/Lisbon area. Bill was a jack of all trades. He worked in construction and farmed in the latter part of his life. He loved growing and selling his famous sweet corn. He enjoyed dancing, playing cards, mainly Euchre, the out-
doors, and especially playing pranks on and razzin' the grandkids.
Bill is preceded in death by his parents; wife, Edna; daughters, Amy Hemmer, Linda Hill and Ronda Malcom; his eight siblings; and beloved dog, Rascal.
The family would like to give special thanks to the Hallmark Care Center staff for the loving care Billy received the last several years.
Please share your support and memories with Bill's family on his tribute wall at www.stewartbaxter.com under obituaries.




you

Should you care about digital waste?

Watch my video and see why it’s so important to minimize digital waste. Are you aware of how much digital waste your WordPress website is producing? Did you know this waste carries an actual cost for both you and your website’s visitors? Digital waste is an especially poignant topic in open source software (like the […]




you

What can a 15-year-old stripper in Kentucky tell you about China?

Note: This post is adapted from my original viral Twitter thread. Ffrom November 2003 through July 2005, I worked in the prepaid cell phone and phone card industry. Most of my work was in BFE meth towns and urban ghettoes. I learned things about the poor in America you won’t want to believe… But this […]




you

Do your duty, wear a mask

When I wear a mask to go into the grocery store or the post office, it’s not because I think it protects me from coming down with the coronavirus. I wear it to protect the people around me.

I am lucky to be in a position where I can follow the CDC guidelines to maintain social distancing, practice vigilant hygiene and stay at home for the most part. When I am in the grocery store I am grateful for the measures taken to protect customers and employees as much as possible from exposure to the virus. I wear a mask so I do not defeat the safeguards in place to protect public health. I have no symptoms. But I have not been tested. I cannot guarantee that I am not an asymptomatic carrier. By wearing a mask when I shop, making sure I wash and sanitize my hands before I go to the store, handling as few items on the shelves as possible, and maintaining a six foot distance from my fellow shoppers, I can guarantee I have done my part to protect them and the dedicated store employees serving us. But even more important, I am protecting the people at home where these customers and workers return when they leave the store. It is a very small thing to do but it is my duty to do it.

Joe Mischka

Cedar Rapids



  • Letters to the Editor

you

How a bad hosting company can impact your business website

With the throng of websites on the internet vying for people’s attention, it will be hard to stand out if you don’t have an appealing or dependable business website. Investing in building your own website and acquiring a reliable domain and web hosting provider are some of the things you must do right to make […] More




you

Kanban Vs Scrum – Which One is Best for Your Operation?

Scrum and Kanban are terms often used interchangeably in project management, though they have their differences. In fact, that’s why they may be used at the same time for tracking and managing various aspects of work. For example, a Kanban board might be used to track work during a Scrum sprint. However, each has its […] More




you

Fine-Tuning Your Instagram Hashtag Strategy for 2020

Instagram has become the rising star of social media marketing platforms. It is a very attractive option to marketers that are growing frustrated with Facebook’s algorithm changes. Instagram also has a very large user base. Over 116 million Americans are on this popular image sharing site. Marketers can also reach millions of users in India, […] More




you

How to Create a WordPress Intranet for Your Organization

Do you want to create a WordPress intranet for your organization? WordPress is a powerful platform with tons of flexible options that makes it ideal to be used as your company’s intranet. In this article, we will show you how to create a WordPress intranet.




you

9 Obvious Things You Probably Don’t Know About WordPress SEO

f there is one thing you should include in your WordPress website’s strategy, it’s search engine optimization. Because when you do it right, you’ll be rewarded. Hugely rewarded. With tons of high quality visitors.




you

Run PHP5 on your PHP4 Server

Here is a really neat trick! Access your PHP5 while running PHP4. If you haven’t created a .htaccess file, you may want to check out the WordPress Codex on permalink structure. Anyway, open any text editing document and paste in this code: AddType x-mapp-php5 .php That’ it! Save your text document as .htaccess and your […]

The post Run PHP5 on your PHP4 Server appeared first on WPCult.




you

Disable caching of your site or post

I talked about Disabling search engine on search pages in a previous post using the meta tag. Today lets go over the web bots Cached copy of your site. If you are working on builder your blog, or have a temporary site up, use the following code: <meta name="robots" content="noarchive"> This will tell any bot […]

The post Disable caching of your site or post appeared first on WPCult.




you

Twitter avatars inside your WordPress comments

Ricardo Sousa, who writes for Smashing Magazine created a great plugin called Twittar. This plugin will use someones Twitter Gravatar if their email address is not connected with a Gravatar. For more info check out the full post at Twitter Avatars in Comments: A WordPress plugin Image credit: Ricardo Sousa

The post Twitter avatars inside your WordPress comments appeared first on WPCult.





you

How to Change Your iPhone's DNS Servers

Just like in Mac OS X, you can change the DNS servers on your iPhone. This can significantly speed up Safari and other iPhone apps that use the Internet. For a general introduction to DNS, and to learn why you would want to change the DNS servers on your iPhone, see How to Change Your Mac's DNS Servers.

Before we start, you should know a couple things about how iOS handles DNS. First, these instructions only work for Wi-Fi connections - iOS does not allow you to change the DNS servers when connected to cellular networks. Also, the changes are network specific, so you'll need to change the DNS servers every time you connect to a new wireless network. The good news is that iOS remembers the settings, so you won't have to do anything the second time you connect to a network.

Here's how to change your iPhone's DNS servers:

  1. From the iPhone's home screen, tap Settings.

  2. Tap Wi-Fi. The screen shown below appears. The available wireless networks in range of your iPhone appear, as shown below.

  3. Find your wireless network in the list, and then click the arrow. The screen shown below appears.

  4. Tap the DNS field.

  5. Delete the current DNS servers, and enter the new DNS servers. (If you enter more than one DNS server, be sure sure to separate the servers with commas.)
    • To use OpenDNS, enter 208.67.222.222 and 208.67.220.220
    • To use Google DNS, enter 8.8.8.8 and 8.8.4.4
  6. Test your new DNS servers to make sure they're working.

That's it! You've updated your iPhone's DNS servers!

Related Articles


Meet Your Macinstructor

Matt Cone, the author of Master Your Mac, has been a Mac user for over 20 years. A former ghost writer for some of Apple's most notable instructors, Cone founded Macinstruct in 1999, a site with OS X tutorials that boasts hundreds of thousands of unique visitors per month. You can email him at: matt@macinstruct.com.




you

Tell Your iPhone to Forget a Wireless Network

When you connect an iPhone to a wi-fi network, the iPhone remembers that network and will automatically attempt to connect to it in the future. This is a great feature for wi-fi networks you trust and use frequently. But mistakes happen. If you connect to the wrong network at a coffee shop, your iPhone will automatically attempt to join that network every time you visit the coffee shop in the future. And if the password for a known network changes, your iPhone might have trouble connecting to it.

What's the solution? Telling your iPhone to forget the wi-fi network. Forgetting a network will remove the network's password and prevent your iPhone from joining it automatically in the future.

Here's how to tell your iPhone to forget a wireless network:

  1. From the home screen, tap Settings.

  2. Tap Wi-Fi. The window shown below appears.

  3. Locate the wireless network you want the iPhone to forget, and then tap the blue arrow next to the network name. The window shown below appears.

  4. Tap Forget this Network. The iPhone will forget the wireless network.

You have successfully told your iPhone to forget the wi-fi network. The iPhone will not attempt to connect to the network in the future. And if the network required a password, that password has been forgotten.

Related Articles


Meet Your Macinstructor

Matt Cone, the author of Master Your Mac, has been a Mac user for over 20 years. A former ghost writer for some of Apple's most notable instructors, Cone founded Macinstruct in 1999, a site with OS X tutorials that boasts hundreds of thousands of unique visitors per month. You can email him at: matt@macinstruct.com.




you

Make Your iPhone Ask to Join Wi-Fi Networks

By default, your iPhone automatically connects to known wi-fi networks. (To stop an iPhone from automatically connecting, you can tell your iPhone to forget a wi-fi network.) But what happens if you take your iPhone to a new location? You'll need to manually connect your iPhone to a wi-fi network.

That's a hassle. But if you have the foresight and inclination, you can save yourself time in the future by making your iPhone ask to join wi-fi networks when no known networks are available. Instead of having to open settings to join a network, you'll be able to easily select a network from an on-screen prompt.

Here's how to make your iPhone ask to join wi-fi networks:

  1. From the home screen, tap Settings.

  2. Tap Wi-Fi. The window shown below appears.

  3. Move the Ask to Join Networks slider to the On position.

  4. The next time you're in a location with no known networks, your iPhone will prompt you to connect to an available wi-fi network, as shown below.

In the future, this prompt will be displayed when no known networks are available. (To actually see the prompt, you'll need to do something that requires network access, like try to check your email or open a webpage.) To connect to a wi-fi network, select a network and enter a password, if one is required.

Related Articles


Meet Your Macinstructor

Matt Cone, the author of Master Your Mac, has been a Mac user for over 20 years. A former ghost writer for some of Apple's most notable instructors, Cone founded Macinstruct in 1999, a site with OS X tutorials that boasts hundreds of thousands of unique visitors per month. You can email him at: matt@macinstruct.com.




you

Joe wants you to Sample that: One C.R. man is on a mission to help local restaurants gain fans

When Joe Sample started posting photos of his takeout food stops in the days after Iowa restaurants were ordered shut down to dine-in service in March, he didn’t think much of it. He just wanted to get some good food while supporting restaurants.

“I have a lot of friends in the food business. My wife worked at Elevate Salon and Emil’s Deli, so she’s not working right now,” he said. “I felt it was a great way to support local businesses.”

But then a new Facebook group dedicated to promoting curbside, delivery and takeout food options in Cedar Rapids sprung up — this week, it had more than 15,000 members — and Sample started sharing photos there. The 46-year-old Cedar Rapids resident quickly found himself having a new experience — going viral.

In a pandemic, that phrase could have negative connotations, but this was the positive kind of viral spread. The kind where hundreds of people liked his photos and commented on them. Then a Cedar Rapids T-shirt maker, Ivory Pearl Designs, started selling “Be Like Joe” T-shirts and other people started showing up to order takeout in the shirts. Soon, restaurants were asking if he would come take a photo at their restaurant.

“I just started it to have fun and posted a few fun pictures, and then I started having restaurants reach out to me,” Sample said.

He decided to dedicate his stimulus check from the federal government to the effort. Sometimes, he said he hits up more than one restaurant a day.

“I’ve hit close to 60 restaurants,” he said.

He’s leaned into the enthusiasm and found ways to play up the efforts. One day he dressed as Oscar the Grouch while visiting’ Oscar’s Restaurant in Hiawatha. On another day, he and one of his daughters bought plastic pig noses to wear on a stop at the Blind Pig in Cedar Rapids. He wears a Superman costume to some stops.

“I was totally surprised at how viral it went,” he said. “Now I’m just trying to keep it exciting.”

In his day job, Sample is a salesman for American Building Components in Mount Pleasant. He normally spends a lot of time on the road, selling metal roofing, siding and steel frame structures around the Midwest. These days, he’s working from home, making sales over the phone instead. He said going out to get carryout is a chance to see other people and get out of the house.

“It brings some normalcy to my life,” he said.

He has two daughters at home, age 9 and 15, and one son, 22. When he’s not eating out, he likes to spend time outdoors with his family, fishing, camping, hunting and coaching soccer. He admits his last name is a bit on-the-nose for his newest hobby.

“A lot of people ask, ‘Is that really even your real name?’” he said with a laugh.

Sample was born and raised in Cedar Rapids, which fuels his desire to support his town.

“My dad had Sample Pharmacies when I was growing up. People helped support us, so I figured it was the least I could do, to support other local businesses,” he said. “I think the biggest thing is, we want to keep them here. There are so many great restaurants in Cedar Rapids, and we don’t want to lose half of them. I’m going to try to keep going with this until they open the places back up, as much as I can.”

He also has helped do deliveries of donated meals to area hospitals and long-term care facilities. That effort started when his younger daughter’s Girl Scout troop had dozens of boxes of unsold cookies and few options to sell them once the pandemic hit. Sample’s family purchased them and sent them to staff at Mercy Medical Center. Since then he’s dropped off boxes of pita, hummus and gyro meat from Pita’z Mediterranean and American Cuisine, trays of cinnamon rolls from Oscar’s and other places.

“People seem to be very supportive in Cedar Rapids,” he said.

He gave a lot of credit to the Cedar Rapids Facebook group, which was started by Lindsay Leahy, Brooke Murphy-Fitzgerald and Shannon Hanson. Others like it have sprung up in Marion, North Liberty and Iowa City.

“I think this has opened a lot of people’s eyes; it has given people an opportunity to try new things,” Sample said. “I’ve seen more restaurants on here than I’d ever tried before.”

He’s also started to promote nonprofits like the Freedom Festival. He is helping sell the $5 commemorative buttons — even though the 2020 festival was canceled, the buttons will help support the organization’s operations. And he helped with a Big Brothers Big Sisters fundraiser, an effort which inspired him so much he signed up as a volunteer.

He said he hopes his efforts, and others like it inspire others to support the community.

“Keep supporting local, do your best to stay healthy, and when restaurants open back up, keep going to them,” he said. “They’re going to need our help for a long time to come.”

Comments: (319) 398-8339; alison.gowans@thegazette.com



  • Food & Drink

you

Chew on This: Five places to get carryout barbecue

In normal times, Chew on This focuses on restaurant openings and closings. These are not normal times, with restaurants closed except to carryout, curbside and delivery. We know these businesses still need support from the community to survive, so each week we are going to highlight five local restaurants.

These are just a few of the many places offering barbecue; look up your favorite restaurants on Facebook or call to find out what they have.

If you don’t want to leave the house, try a delivery service like Chomp, GrubHub or MyTown2Go. Check with the restaurant to make sure they’re affiliated with a delivery service before ordering.

Big’s BBQ Brewpub

124 Second Ave. NW, Mount Vernon; (319) 535-1060, facebook.com/bigsbbq

Get a growler of house-brewed beer to pair with your barbecue. Every Wednesday features a wings special; check the Facebook page for additional daily specials.

County Line

6677 16th Ave. SW, Cedar Rapids; (319) 378-4777, facebook.com/austinbluesbbq

Call in advance orders from 3 to 7 p.m. Wednesday to Friday and pickup from the food truck parked in the parking lot or stop by the truck parked at Cassill Motors, 2939 16th Ave. SW, Cedar Rapids, from 11 a.m. to 1 p.m. Wednesdays and Fridays.

Jimmy Jack’s Rib Shack

1940 Lower Muscatine, Iowa City, (319) 354-7427 and 745 Community Dr., North Liberty, (319) 665-2486; jimmyjacksribshack.com

This Iowa City staple has classic dishes like ribs, smoked chicken and brisket and can even please vegetarians with a portobello sandwich.

Mosley’s

525 S. Gilbert St., Iowa City, (319) 338-1419 and 125 E. Zeller St., North Liberty, (319) 626-4227; mosleysbarbecue.com

Try a family-style meal for curbside pickup, featuring four sandwiches or a slab of ribs, plus sides and cornbread, or order off the menu.

Willie Ray’s Q Shack

288 Blairs Ferry Rd. NE, Cedar Rapids; (319) 206-3806, willieraysqshack.com

This tiny establishment was made for social distancing, with drive-through the only option for service even before the pandemic. Get one of the daily specials or order a la carte.

Comments: (319) 398-8339; alison.gowans@thegazette.com



  • Food & Drink

you

Merry Xmas everyone! It’s giveaway time! ???????? . Thank you to...



Merry Xmas everyone! It’s giveaway time! ????????
.
Thank you to all those who participated in my preset giveaway this week! The support makes all the hard work and extra effort worth it!
.
Without further ado, the randomly drawn winners of my custom Lightroom presets are @l9lee @rchellau @bokeh.jay! Congrats and check your DMs soon for details! ????
.
You still have until tomorrow to grab my presets (which this shot was edited with) for 50% off! They’ll be going back to regular price after so don’t miss out! ???? (at Toronto, Ontario)




you

A lot to look forward to in 2017. How did 2016 treat you: ???? or...



A lot to look forward to in 2017. How did 2016 treat you: ???? or ????? (at San Francisco, California)




you

Quick survey: on average, what time is it when you check...



Quick survey: on average, what time is it when you check Instagram for the first time on any given day? (Be sure to include your timezone!)
.
PS: Thank you for all the incredible support on yesterday’s announcement. ❤️ (at Toronto, Ontario)




you

Unsolved Zoom Mysteries: Why We Have to Say “You’re Muted” So Much

Video conference tools are an indispensable part of the Plague Times. Google Meet, Microsoft Teams, Zoom, and their compatriots are keeping us close and connected in a physically distanced world.

As tech-savvy folks with years of cross-office collaboration, we’ve laughed at the sketches and memes about vidconf mishaps. We practice good Zoomiquette, including muting ourselves when we’re not talking.

Yet even we can’t escape one vidconf pitfall. (There but for the grace of Zoom go I.) On nearly every vidconf, someone starts to talk, and then someone else says: “Oop, you’re muted.” And, inevitably: “Oop, you’re still muted.”

That’s right: we’re trying to follow Zoomiquette by muting, but then we forget or struggle to unmute when we do want to talk.

In this post, I’ll share my theories for why the You’re Muted Problems are so pervasive, using Google Meet, Microsoft Teams, and Zoom as examples. Spoiler alert: While I hope this will help you be more mindful of the problem, I can’t offer a good solution. It still happens to me. All. The. Time.

Skip the why and go straight to the vidconf app keyboard shortcuts you should memorize right now.

Why we don't realize we’re muted before talking

Why does this keep happening?!?

Simply put: UX and design decisions make it harder to remember that you’re muted before you start to talk.

Here’s a common scenario: You haven’t talked for a bit, so you haven’t interacted with the Zoom screen for a few seconds. Then you start to talk — and that’s when someone tells you, “You’re muted.”

We forget so easily in these scenarios because when our mouse has been idle for a few seconds, the apps hide or downplay the UI elements that tell us we’re muted.

Zoom and Teams are the worst offenders:

  • Zoom hides both the toolbar with the main in-app controls (the big mute button) and the mute status indicator on your video pane thumbnail.
  • Teams hides the toolbar, and doesn't show a mute status indicator on your video thumbnail in the first place.

Meet is only slightly better:

  • Meet hides the toolbar, and shows only a small mute status icon in your video thumbnail.

Even when our mouse is active, the apps’ subtle approach to muted state UI can make it easy to forget that we’re muted:

Teams is the worst offender:

  • The mute button is an icon rather than words.
  • The muted-state icon's styling could be confused with unmuted state: Teams does not follow the common pattern of using red to denote muted state.
  • The mute button is not differentiated in visual hierarchy from all the other controls.
  • As mentioned above, Teams never shows a secondary mute status indicator.

Zoom is a bit better, but still makes it pretty easy to forget that you’re muted:

  • Pros:
    • Zoom is the only app to use words on the mute button, in this case to denote the button action (rather than the muted state).
    • The muted-state icon’s styling (red line) is less likely to be confused with the unmuted-state icon.
  • Cons:
    • The mute button’s placement (bottom left corner of the page) is easy to overlook.
    • The mute button is not differentiated in visual hierarchy from the other toolbar buttons — and Zoom has a lot of toolbar buttons, especially when logged in as host.
    • The secondary mute status indicator is a small icon.
    • The mute button’s muted-state icon is styled slightly differently from the secondary mute status indicator.
  • Potential Cons:
    • While words denote the button action, only an icon denotes the muted state.

Meet is probably the clearest of the three apps, but still has pitfalls:

  • Pros:
    • The mute button is visually prominent in the UI: It’s clearly differentiated in the visual hierarchy relative to other controls (styled as a primary button); is a large button; and is placed closer to the center of the controls bar.
    • The muted-state icon’s styling (red fill) is less likely to be confused with the unmuted-state icon.
  • Cons:
    • Uses only an icon rather than words to denote the muted state.
  • Unrelated Con:
    • While the mute button is visually prominent, it’s also placed next to the hang-up button. So in Meet’s active state you might be less likely to forget you’re muted … but more likely to accidentally hang up when trying to unmute. 😬

I know modern app design leans toward minimalism. There’s often good rationale to use icons rather than words, or to de-emphasize controls and indicators when not in use.

But again: This happens on basically every call! Often multiple times per call!! And we’re supposed to be tech-savvy!!! Imagine what it’s like for the tens of millions of vidconf newbs.

I would argue that “knowing your muted state” has turned out to be a major vidconf user need. At this point, it’s certainly worth rethinking UX patterns for.

Why we keep unsuccessfully unmuting once we realize we’re muted

So we can blame the You’re Muted Problem on UX and design. But what causes the You’re Still Muted Problem? Once we know we’re muted, why do we sometimes fail to unmute before talking again?

This one is more complicated — and definitely more speculative. To start making sense of this scenario, here’s the sequence I’m guessing most commonly plays out (I did this a couple times before I became aware of it):

The crucial part is when the person tries to unmute by pressing the keyboard Volume On/Off key.

If that’s in fact what’s happening (again, this is just a hypothesis), I’m guessing they did that because when someone says “You’re muted” or “I can’t hear you,” our subconscious thought process is: “Oh, Audio is Off. Press the keyboard key that I usually press when I want to change Audio Off to Audio On.”

There are two traps in this reflexive thought process:

First, the keyboard volume keys control the speaker volume, not the microphone volume. (More specifically, they control the system sound output settings, rather than the system sound input settings or the vidconf app’s sound input settings.)

In fact, there isn’t a keyboard key to control the microphone volume. You can’t unmute your mic via a dedicated keyboard key, the way that you can turn the speaker volume on/off via a keyboard key while watching a movie or listening to music.

Second, I think we reflexively press the keyboard key anyway because our mental model of the keyboard audio keys is just: Audio. Not microphone vs. speaker.

This fuzzy mental model makes sense: There’s only one set of keyboard keys related to audio, so why would I think to distinguish between microphone and speaker? 

So my best guess is hardware design causes the You’re Still Muted Problem. After all, keyboard designs are from a pre-Zoom era, when the average person rarely used the computer’s microphone.

If that is the cause, one potential solution is for hardware manufacturers to start including dedicated keys to control microphone volume:

Video conference keyboard shortcuts you should memorize right now

Let me know if you have other theories for the You’re Still Muted Problem!

In the meantime, the best alternative is to learn all of the vidconf app keyboard shortcuts for muting/unmuting:

  • Meet
    • Mac: Command(⌘) + D
    • Windows: Control + D
  • Teams
    • Mac: Command(⌘) + Shift + M
    • Windows: Ctrl + Shift + M
  • Zoom
    • Mac: Command(⌘) + Shift + A
    • Windows: Alt + A
    • Hold Spacebar: Temporarily unmute

Other vidconf apps not included in my analysis:

  • Cisco Webex Meetings
    • Mac: Ctrl + Alt + M
    • Windows: Ctrl + Shift + M
  • GoToMeeting

Bonus protip from Jackson Fox: If you use multiple vidconf apps, pick a keyboard shortcut that you like and manually change each app’s mute/unmute shortcut to that. Then you only have to remember one shortcut!




you

So You've Written a Bad Design Take

So you’ve just written a blog post or tweet about why wireframes are becoming obsolete, the dangers of “too accessible” design, or how a certain style of icon creates “cognitive fatigue.”

Your post went viral, but now you’re getting ratioed by rude people on the Internet. That sucks! You were just trying to start a conversation and you probably didn’t deserve all that negativity (except for you, “too accessible” guy).

Most likely, you made one of these common mistakes:

1. You made generalizations about “design”

You, a good user-centered designer, know that you are not your user. Nor are you every designer.

First of all, let's acknowledge that there is no universal definition of design. Even if we narrow it down to software design, it’s still hard to make generalizations. Agency, in-house, product, startup, enterprise, non-profit, website, app, connected hardware, etc. – there are a lot of different work contexts and cultures for people with “designer” in their titles.

"The Design Industry" is not a thing, but even if it were, you don't speak for it. Don’t assume that the kind of design work you do is the universal default.

2. You didn’t share enough context

There are many great design books and few great design blog posts. (There are, to my knowledge, no great design tweets, but I am open to your suggestions.) Writing about design is not well suited to short formats, because context plays such an important role and there’s always a lot of it to cover.

Writing about your work should include as much context as you would include if you were presenting your portfolio for a job interview. What kind of organization did you work for? Who was your client and/or your stakeholders? What was the goal of the project? Your timeline? What was the makeup of your team? What were the notable business rules and constraints? How are you defining effectiveness and success?

Without these kinds of details, it’s not possible for other designers to know if what you’ve written is credible or applicable to them.

3. You were too certain

A blog post doesn’t need to be a dissertation. It’s okay to share hunches and anecdotes, but give the necessary caveats. And if you're making claims about science, bruh, you gotta cite your sources.

Be humble in your takes. Your account of what worked for you and why is more valuable to your peers than making sweeping claims and reheating the same old arguments. Be prepared to be told you’re wrong, and have the humility to realize that your perspective is just your perspective. Real conversations, like good design, are built on feedback and diverse viewpoints.

Together, we can improve the discourse in our information ecosystems. Don't generalize. Give context. Be humble.




you

Should you use Userbase for your next static site?

During the winter 2020 Pointless Weekend, we built TrailBuddy (working app coming soon). Our team consisted of four developers, two project managers, two front-end developers, a digital-analyst, a UXer, and a designer. In about 48 hours, we took an idea from Jeremy Field’s head to a (mostly) working app. We broke up the project in two parts:. First, a back-end that crunches trail, weather, and soil data. That data is exposed via a GraphQL API for a web app to consume.

While developers built the API, I built a static front end using Next.js. Famously, static front-ends don’t have a database, or a concept of “users.” A bit of functionality I wanted to add was saving favorite trails. I didn’t want to be hacky about it, I needed some way to add users and a database. I knew it’d be hard for the developers to set this up as part of the API, they had their hands full with all the #soil-soil-soil-soil-soil (a slack channel dedicated solely to figuring out our soil data problem—those were plentiful.) I had been looking for an excuse to use Userbase, and this seemed like as good a time as any.

A textbook Userbase use case

“When would I use it?” The Usebase site lists these reasons:

  • If you want to build a web app without writing any backend code.
  • If you never want to see your users' data.
  • If you're tired of dealing with databases.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

This was a perfect fit for my problem. I didn’t want to write any more backend code for this. I didn’t want to see our user’s data, I don’t care to know anyone’s favorite trails.* A nice bonus to not having users in our backend was not having to worry about keeping their data safe. We don’t have their data at all, it’s end-to-end encrypted by Userbase. We can offer a reasonable amount of privacy for free (well for the price of using Userbase: $49 a year.) I am not tired of dealing with databases, but I’d rather not. I don’t think anyone doesn’t want to simplify their GDPR compliance. Finally, given our tight timeline I wanted nothing more than to keep things really simple.

A sign up form that I didn't have to write a back-end for

Using Userbase

Userbase can be tried for free, so I set aside thirty minutes or so to do a quick proof of concept to make sure this would work out for us. I made an account and followed their Quickstart. Userbase is a fundamentally easy tool to use, but their quickstart is everything I’d want out of a quickstart:

  • Written in the most vanilla way possible (just HTML and vanilla JS). This means I can adapt it to my needs, in this case React using Next.js
  • Easy to follow, it does the most barebones tour of the functionality you can expect to get out of the SDK (software development kit.) In other words it is quick and it is a start
  • It has a live demo and code samples you can download and run yourself

It didn’t take long after that to integrate Userbase into our app with more help from their great docs. I debated whether to add code samples of what we did here, and I didn’t because any reader would be better off using the great quickstart and docs Userbase provides—they are that clear, and that good. Depending on your use case you’ll need to adapt the examples to your needs, for us the trickiest things were creating a top level authentication context to manage users in the app, and a custom hook to encapsulate all the logic for setting, updating, and deleting favourite trails in the app. Userbase’s SDK worked seamlessly for us.

A log in form that I didn't have to write a back-end for

Is Userbase for you?

Maybe. I am definitely a fan, so much so that this blog post probably reads like an advert. Userbase saved me a ton of time in this project. It reminded me of “The All Powerful Front End Developer” talk by Chris Coyer. I don’t fully subscribe to all the ideas in that talk, but it is nice to have “serverless” tools like Userbase, and all the new JAMstacky things. There are limits to the Userbase serverless experience in terms of scale, and control. Obviously relying on a third party for something always carries some (probably small) risk—it’s worth noting Usebase includes a note on their pricing page that says “You can host it yourself always under your control, or we can run it for you for a full serverless experience”—Still, I wouldn’t hesitate this to use in future projects.

One of the great things about Viget and Pointless Weekend is the opportunity to try new things. For me that was Next.js and Userbase for Trailbuddy. It doesn’t always work out (in fact this is my first pointless weekend where a risk hasn’t blown up in my face) but it is always fun. Getting to try out Userbase and beginning to think about how we may use it in the future made the weekend worthwhile for me, and it made my job on this project much more enjoyable.

*I will write a future post about privacy conscious analytics in TrailBuddy when I’ve figured that out. I am looking into Fathom Analytics for that.



  • Code
  • Front-end Engineering

you

Global Gitignore Files Are Cool and So Are You

Setting it up

First, here's the config setup you need to even allow for such a radical concept.

  1. Define the global gitignore file as a global Git configuration:

    git config --global core.excludesfile ~/.gitignore
    

    If you're on OSX, this command will add the following config lines in your ~/.gitconfig file.

    [core]
      excludesfile = /Users/triplegirldad/.gitignore
    
  2. Load that ~/.gitignore file up with whatever you want. It probably doesn't exist as a file yet so you might have to create it first.

Harnessing its incredible power

There are only two lines in my global gitignore file and they are both fairly useful pretty much all the time.

$ cat ~/.gitignore
TODO.md
playground

This 2 line file means that no matter where I am, what project I'm working on, where in the project I'm doing so, I have an easy space to stash notes, thoughts, in progress ideas, spikes, etc.

TODO.md

More often than not, I'm fiddling around with a TODO.md file. Something about writing markdown in your familiar text editor speaks to my soul. It's quick, it's easy, you have all the text editing tricks available to you, and it never does anything you wouldn't expect (looking at you auto-markdown-formatting editors). I use one or two # for headings, I use nested lists, and I ask for nothing more. Nothing more than more TODO.md files that is!

In practice I tend to just have one TODO.md file per project, right at the top, ready to pull up in a few keystrokes. Which I do often. I pull this doc up if:

  • I'm in a meeting and I just said "oh yeah that's a small thing, I'll knock it out this afternoon".
  • I'm halfway through some feature development and realize I want to make a sweeping refactor elsewhere. Toss some thoughts in the doc, and then get back to the task at hand.
  • It's the end of the day and I have to switch my brain into "feed small children" mode, thus obliterating everything work-related from my short term memory. When I open things up the next day and know exactly what the next thing to dive into was.
  • I'm preparing for a big enough refactor and I can't hold it all in my brain at once. What I'd give to have an interactive 3D playground for brain thoughts, but in the meantime a 2D text file isn't a terrible way to plan out dev work.

playground

Sometimes you need more than some human words in a markdown file to move an idea along. This is where my playground directory comes in. I can load this directory up with code that's related to a given project and keep it out of the git history. Because who doesn't like a place to play around.

I find that this directory is more useful for long running maintenance projects over fast moving greenfield ones. On the maintenance projects, I tend to find myself assembling a pile of scripts and experiments for various situations:

  • The client requests a one-time obscure data export. Whip up some CSV generation code and save that code in the playground directory.
  • The client requests a different obscure data export. Pull up the last time you did something vaguely similar and save yourself the startup time.
  • A batch of data needs to be imported just once. Might as well stash that in the chance that "just once" is actually "just a few times".
  • Kicking the tires on an integration with a third party service.

Some of these playground files end up being useful more times than I can count (eg: the ever-changing user_export.rb script). Some items get promoted into application code, which is always fun. But most files here serve their purpose and then wither away. And that's fine. It's a playground, anything goes.

Wrapping up

Having a personal space for project-specific notes and code has been helpful to me over the years as a developer on multiple projects. If you have your own organizational trick, or just want to brag about how you memorize everything without any markdown files, let me know in the comments below!




you

9 Things You Can Do To Your WordPress Website During Quarantine

If you’d have told us at WPZOOM about the current situation we find ourselves in six months ago, we wouldn’t have believed you. It’s all we can see if we turn on the TV and it’s clear right now, humanity has taken a break. Worrying about loved ones, ensuring we stay safe, and for heaven’s sake, stay inside. Staying inside […]




you

If You’re Using Beaver Builder Lite, You Need This Addon

Hey there, I’m Ben, and I’m a guest author here at WPZOOM. Today I thought I’d share with you my experience of one of their rather awesome plugins, an addon for Beaver Builder. I know the team at WPZOOM are big fans of Beaver Builder, why not? It’s a great page builder with an excellent feature set; chances are if […]




you

Unsolved Zoom Mysteries: Why We Have to Say “You’re Muted” So Much

Video conference tools are an indispensable part of the Plague Times. Google Meet, Microsoft Teams, Zoom, and their compatriots are keeping us close and connected in a physically distanced world.

As tech-savvy folks with years of cross-office collaboration, we’ve laughed at the sketches and memes about vidconf mishaps. We practice good Zoomiquette, including muting ourselves when we’re not talking.

Yet even we can’t escape one vidconf pitfall. (There but for the grace of Zoom go I.) On nearly every vidconf, someone starts to talk, and then someone else says: “Oop, you’re muted.” And, inevitably: “Oop, you’re still muted.”

That’s right: we’re trying to follow Zoomiquette by muting, but then we forget or struggle to unmute when we do want to talk.

In this post, I’ll share my theories for why the You’re Muted Problems are so pervasive, using Google Meet, Microsoft Teams, and Zoom as examples. Spoiler alert: While I hope this will help you be more mindful of the problem, I can’t offer a good solution. It still happens to me. All. The. Time.

Skip the why and go straight to the vidconf app keyboard shortcuts you should memorize right now.

Why we don't realize we’re muted before talking

Why does this keep happening?!?

Simply put: UX and design decisions make it harder to remember that you’re muted before you start to talk.

Here’s a common scenario: You haven’t talked for a bit, so you haven’t interacted with the Zoom screen for a few seconds. Then you start to talk — and that’s when someone tells you, “You’re muted.”

We forget so easily in these scenarios because when our mouse has been idle for a few seconds, the apps hide or downplay the UI elements that tell us we’re muted.

Zoom and Teams are the worst offenders:

  • Zoom hides both the toolbar with the main in-app controls (the big mute button) and the mute status indicator on your video pane thumbnail.
  • Teams hides the toolbar, and doesn't show a mute status indicator on your video thumbnail in the first place.

Meet is only slightly better:

  • Meet hides the toolbar, and shows only a small mute status icon in your video thumbnail.

Even when our mouse is active, the apps’ subtle approach to muted state UI can make it easy to forget that we’re muted:

Teams is the worst offender:

  • The mute button is an icon rather than words.
  • The muted-state icon's styling could be confused with unmuted state: Teams does not follow the common pattern of using red to denote muted state.
  • The mute button is not differentiated in visual hierarchy from all the other controls.
  • As mentioned above, Teams never shows a secondary mute status indicator.

Zoom is a bit better, but still makes it pretty easy to forget that you’re muted:

  • Pros:
    • Zoom is the only app to use words on the mute button, in this case to denote the button action (rather than the muted state).
    • The muted-state icon’s styling (red line) is less likely to be confused with the unmuted-state icon.
  • Cons:
    • The mute button’s placement (bottom left corner of the page) is easy to overlook.
    • The mute button is not differentiated in visual hierarchy from the other toolbar buttons — and Zoom has a lot of toolbar buttons, especially when logged in as host.
    • The secondary mute status indicator is a small icon.
    • The mute button’s muted-state icon is styled slightly differently from the secondary mute status indicator.
  • Potential Cons:
    • While words denote the button action, only an icon denotes the muted state.

Meet is probably the clearest of the three apps, but still has pitfalls:

  • Pros:
    • The mute button is visually prominent in the UI: It’s clearly differentiated in the visual hierarchy relative to other controls (styled as a primary button); is a large button; and is placed closer to the center of the controls bar.
    • The muted-state icon’s styling (red fill) is less likely to be confused with the unmuted-state icon.
  • Cons:
    • Uses only an icon rather than words to denote the muted state.
  • Unrelated Con:
    • While the mute button is visually prominent, it’s also placed next to the hang-up button. So in Meet’s active state you might be less likely to forget you’re muted … but more likely to accidentally hang up when trying to unmute. 😬

I know modern app design leans toward minimalism. There’s often good rationale to use icons rather than words, or to de-emphasize controls and indicators when not in use.

But again: This happens on basically every call! Often multiple times per call!! And we’re supposed to be tech-savvy!!! Imagine what it’s like for the tens of millions of vidconf newbs.

I would argue that “knowing your muted state” has turned out to be a major vidconf user need. At this point, it’s certainly worth rethinking UX patterns for.

Why we keep unsuccessfully unmuting once we realize we’re muted

So we can blame the You’re Muted Problem on UX and design. But what causes the You’re Still Muted Problem? Once we know we’re muted, why do we sometimes fail to unmute before talking again?

This one is more complicated — and definitely more speculative. To start making sense of this scenario, here’s the sequence I’m guessing most commonly plays out (I did this a couple times before I became aware of it):

The crucial part is when the person tries to unmute by pressing the keyboard Volume On/Off key.

If that’s in fact what’s happening (again, this is just a hypothesis), I’m guessing they did that because when someone says “You’re muted” or “I can’t hear you,” our subconscious thought process is: “Oh, Audio is Off. Press the keyboard key that I usually press when I want to change Audio Off to Audio On.”

There are two traps in this reflexive thought process:

First, the keyboard volume keys control the speaker volume, not the microphone volume. (More specifically, they control the system sound output settings, rather than the system sound input settings or the vidconf app’s sound input settings.)

In fact, there isn’t a keyboard key to control the microphone volume. You can’t unmute your mic via a dedicated keyboard key, the way that you can turn the speaker volume on/off via a keyboard key while watching a movie or listening to music.

Second, I think we reflexively press the keyboard key anyway because our mental model of the keyboard audio keys is just: Audio. Not microphone vs. speaker.

This fuzzy mental model makes sense: There’s only one set of keyboard keys related to audio, so why would I think to distinguish between microphone and speaker? 

So my best guess is hardware design causes the You’re Still Muted Problem. After all, keyboard designs are from a pre-Zoom era, when the average person rarely used the computer’s microphone.

If that is the cause, one potential solution is for hardware manufacturers to start including dedicated keys to control microphone volume:

Video conference keyboard shortcuts you should memorize right now

Let me know if you have other theories for the You’re Still Muted Problem!

In the meantime, the best alternative is to learn all of the vidconf app keyboard shortcuts for muting/unmuting:

  • Meet
    • Mac: Command(⌘) + D
    • Windows: Control + D
  • Teams
    • Mac: Command(⌘) + Shift + M
    • Windows: Ctrl + Shift + M
  • Zoom
    • Mac: Command(⌘) + Shift + A
    • Windows: Alt + A
    • Hold Spacebar: Temporarily unmute

Other vidconf apps not included in my analysis:

  • Cisco Webex Meetings
    • Mac: Ctrl + Alt + M
    • Windows: Ctrl + Shift + M
  • GoToMeeting

Bonus protip from Jackson Fox: If you use multiple vidconf apps, pick a keyboard shortcut that you like and manually change each app’s mute/unmute shortcut to that. Then you only have to remember one shortcut!




you

So You've Written a Bad Design Take

So you’ve just written a blog post or tweet about why wireframes are becoming obsolete, the dangers of “too accessible” design, or how a certain style of icon creates “cognitive fatigue.”

Your post went viral, but now you’re getting ratioed by rude people on the Internet. That sucks! You were just trying to start a conversation and you probably didn’t deserve all that negativity (except for you, “too accessible” guy).

Most likely, you made one of these common mistakes:

1. You made generalizations about “design”

You, a good user-centered designer, know that you are not your user. Nor are you every designer.

First of all, let's acknowledge that there is no universal definition of design. Even if we narrow it down to software design, it’s still hard to make generalizations. Agency, in-house, product, startup, enterprise, non-profit, website, app, connected hardware, etc. – there are a lot of different work contexts and cultures for people with “designer” in their titles.

"The Design Industry" is not a thing, but even if it were, you don't speak for it. Don’t assume that the kind of design work you do is the universal default.

2. You didn’t share enough context

There are many great design books and few great design blog posts. (There are, to my knowledge, no great design tweets, but I am open to your suggestions.) Writing about design is not well suited to short formats, because context plays such an important role and there’s always a lot of it to cover.

Writing about your work should include as much context as you would include if you were presenting your portfolio for a job interview. What kind of organization did you work for? Who was your client and/or your stakeholders? What was the goal of the project? Your timeline? What was the makeup of your team? What were the notable business rules and constraints? How are you defining effectiveness and success?

Without these kinds of details, it’s not possible for other designers to know if what you’ve written is credible or applicable to them.

3. You were too certain

A blog post doesn’t need to be a dissertation. It’s okay to share hunches and anecdotes, but give the necessary caveats. And if you're making claims about science, bruh, you gotta cite your sources.

Be humble in your takes. Your account of what worked for you and why is more valuable to your peers than making sweeping claims and reheating the same old arguments. Be prepared to be told you’re wrong, and have the humility to realize that your perspective is just your perspective. Real conversations, like good design, are built on feedback and diverse viewpoints.

Together, we can improve the discourse in our information ecosystems. Don't generalize. Give context. Be humble.




you

Should you use Userbase for your next static site?

During the winter 2020 Pointless Weekend, we built TrailBuddy (working app coming soon). Our team consisted of four developers, two project managers, two front-end developers, a digital-analyst, a UXer, and a designer. In about 48 hours, we took an idea from Jeremy Field’s head to a (mostly) working app. We broke up the project in two parts:. First, a back-end that crunches trail, weather, and soil data. That data is exposed via a GraphQL API for a web app to consume.

While developers built the API, I built a static front end using Next.js. Famously, static front-ends don’t have a database, or a concept of “users.” A bit of functionality I wanted to add was saving favorite trails. I didn’t want to be hacky about it, I needed some way to add users and a database. I knew it’d be hard for the developers to set this up as part of the API, they had their hands full with all the #soil-soil-soil-soil-soil (a slack channel dedicated solely to figuring out our soil data problem—those were plentiful.) I had been looking for an excuse to use Userbase, and this seemed like as good a time as any.

A textbook Userbase use case

“When would I use it?” The Usebase site lists these reasons:

  • If you want to build a web app without writing any backend code.
  • If you never want to see your users' data.
  • If you're tired of dealing with databases.
  • If you want to radically simplify your GDPR compliance.
  • And if you want to keep things really simple.

This was a perfect fit for my problem. I didn’t want to write any more backend code for this. I didn’t want to see our user’s data, I don’t care to know anyone’s favorite trails.* A nice bonus to not having users in our backend was not having to worry about keeping their data safe. We don’t have their data at all, it’s end-to-end encrypted by Userbase. We can offer a reasonable amount of privacy for free (well for the price of using Userbase: $49 a year.) I am not tired of dealing with databases, but I’d rather not. I don’t think anyone doesn’t want to simplify their GDPR compliance. Finally, given our tight timeline I wanted nothing more than to keep things really simple.

A sign up form that I didn't have to write a back-end for

Using Userbase

Userbase can be tried for free, so I set aside thirty minutes or so to do a quick proof of concept to make sure this would work out for us. I made an account and followed their Quickstart. Userbase is a fundamentally easy tool to use, but their quickstart is everything I’d want out of a quickstart:

  • Written in the most vanilla way possible (just HTML and vanilla JS). This means I can adapt it to my needs, in this case React using Next.js
  • Easy to follow, it does the most barebones tour of the functionality you can expect to get out of the SDK (software development kit.) In other words it is quick and it is a start
  • It has a live demo and code samples you can download and run yourself

It didn’t take long after that to integrate Userbase into our app with more help from their great docs. I debated whether to add code samples of what we did here, and I didn’t because any reader would be better off using the great quickstart and docs Userbase provides—they are that clear, and that good. Depending on your use case you’ll need to adapt the examples to your needs, for us the trickiest things were creating a top level authentication context to manage users in the app, and a custom hook to encapsulate all the logic for setting, updating, and deleting favourite trails in the app. Userbase’s SDK worked seamlessly for us.

A log in form that I didn't have to write a back-end for

Is Userbase for you?

Maybe. I am definitely a fan, so much so that this blog post probably reads like an advert. Userbase saved me a ton of time in this project. It reminded me of “The All Powerful Front End Developer” talk by Chris Coyer. I don’t fully subscribe to all the ideas in that talk, but it is nice to have “serverless” tools like Userbase, and all the new JAMstacky things. There are limits to the Userbase serverless experience in terms of scale, and control. Obviously relying on a third party for something always carries some (probably small) risk—it’s worth noting Usebase includes a note on their pricing page that says “You can host it yourself always under your control, or we can run it for you for a full serverless experience”—Still, I wouldn’t hesitate this to use in future projects.

One of the great things about Viget and Pointless Weekend is the opportunity to try new things. For me that was Next.js and Userbase for Trailbuddy. It doesn’t always work out (in fact this is my first pointless weekend where a risk hasn’t blown up in my face) but it is always fun. Getting to try out Userbase and beginning to think about how we may use it in the future made the weekend worthwhile for me, and it made my job on this project much more enjoyable.

*I will write a future post about privacy conscious analytics in TrailBuddy when I’ve figured that out. I am looking into Fathom Analytics for that.



  • Code
  • Front-end Engineering

you

Global Gitignore Files Are Cool and So Are You

Setting it up

First, here's the config setup you need to even allow for such a radical concept.

  1. Define the global gitignore file as a global Git configuration:

    git config --global core.excludesfile ~/.gitignore
    

    If you're on OSX, this command will add the following config lines in your ~/.gitconfig file.

    [core]
      excludesfile = /Users/triplegirldad/.gitignore
    
  2. Load that ~/.gitignore file up with whatever you want. It probably doesn't exist as a file yet so you might have to create it first.

Harnessing its incredible power

There are only two lines in my global gitignore file and they are both fairly useful pretty much all the time.

$ cat ~/.gitignore
TODO.md
playground

This 2 line file means that no matter where I am, what project I'm working on, where in the project I'm doing so, I have an easy space to stash notes, thoughts, in progress ideas, spikes, etc.

TODO.md

More often than not, I'm fiddling around with a TODO.md file. Something about writing markdown in your familiar text editor speaks to my soul. It's quick, it's easy, you have all the text editing tricks available to you, and it never does anything you wouldn't expect (looking at you auto-markdown-formatting editors). I use one or two # for headings, I use nested lists, and I ask for nothing more. Nothing more than more TODO.md files that is!

In practice I tend to just have one TODO.md file per project, right at the top, ready to pull up in a few keystrokes. Which I do often. I pull this doc up if:

  • I'm in a meeting and I just said "oh yeah that's a small thing, I'll knock it out this afternoon".
  • I'm halfway through some feature development and realize I want to make a sweeping refactor elsewhere. Toss some thoughts in the doc, and then get back to the task at hand.
  • It's the end of the day and I have to switch my brain into "feed small children" mode, thus obliterating everything work-related from my short term memory. When I open things up the next day and know exactly what the next thing to dive into was.
  • I'm preparing for a big enough refactor and I can't hold it all in my brain at once. What I'd give to have an interactive 3D playground for brain thoughts, but in the meantime a 2D text file isn't a terrible way to plan out dev work.

playground

Sometimes you need more than some human words in a markdown file to move an idea along. This is where my playground directory comes in. I can load this directory up with code that's related to a given project and keep it out of the git history. Because who doesn't like a place to play around.

I find that this directory is more useful for long running maintenance projects over fast moving greenfield ones. On the maintenance projects, I tend to find myself assembling a pile of scripts and experiments for various situations:

  • The client requests a one-time obscure data export. Whip up some CSV generation code and save that code in the playground directory.
  • The client requests a different obscure data export. Pull up the last time you did something vaguely similar and save yourself the startup time.
  • A batch of data needs to be imported just once. Might as well stash that in the chance that "just once" is actually "just a few times".
  • Kicking the tires on an integration with a third party service.

Some of these playground files end up being useful more times than I can count (eg: the ever-changing user_export.rb script). Some items get promoted into application code, which is always fun. But most files here serve their purpose and then wither away. And that's fine. It's a playground, anything goes.

Wrapping up

Having a personal space for project-specific notes and code has been helpful to me over the years as a developer on multiple projects. If you have your own organizational trick, or just want to brag about how you memorize everything without any markdown files, let me know in the comments below!




you

Thunderbolting Your Video Card

When I wrote about The Golden Age of x86 Gaming, I implied that, in the future, it might be an interesting, albeit expensive, idea to upgrade your video card via an external Thunderbolt 3 enclosure.

I'm here to report that the future is now.

Yes, that's right, I paid $500




you

Adding Block Patterns to Your Theme

Block patterns are unique, predefined combinations of blocks you can use and tweak to create stunningly designed sections of your website.




you

Teamstack: Everything You Need, All in One Place

You know what sucks? Having to navigate through dozens of tools, all on separate dashboards, just to get one job done. Nowadays, there’s a tool for everything, and while that’s amazing, it’s very overwhelming sometimes. Oftentimes, some tools are forgotten about completely. How on earth do we tackle this situation? I mean, as time goes […]

Read More at Teamstack: Everything You Need, All in One Place




you

5 Incredible Free Tools For Designers That You Need To Try

There’s nothing better than finding a new design tool that will make your life a million times easier. After all, we all want to get our work done as quickly and efficiently as possible, and if there’s a tool for that, then I want it. And I did find some tools that I absolutely love […]

Read More at 5 Incredible Free Tools For Designers That You Need To Try