Productivity Icon

Productivity

Getting stuff done. Better. Faster. Stronger.
52 Stories
All Topics

Productivity github.com

A Unix-style personal search engine and web crawler for your digital footprint

Apollo is a different type of search engine. Traditional search engines (like Google) are great for discovery when you’re trying to find the answer to a question, but you don’t know what you’re looking for.

However, they’re very poor at recall and synthesis when you’ve seen something before on the internet somewhere but can’t remember where. Trying to find it becomes a nightmare - how can you synthezize the great material on the internet when you forgot where it even was? I’ve wasted many an hour combing through Google and my search history to look up a good article, blog post, or just something I’ve seen before.

If you scan Apollo’s README, you’ll know the author has put a lot of thought into this project. The more I grokked it, the more I thought of Monocle (which we’re doing an episode about soon). Turns out, it’s a direct inspiration (along with Serenity OS for the design).

Alex Ellis blog.alexellis.io

The Internet is my computer

In 1984 John Gage of Sun Microsystems was credited as saying “The Network is the computer.” Almost four decades ago, John had a vision of distributed systems working together to be greater than the sum of their parts.

For this article, I surveyed the land of hosted IDEs and it turns out that we’ve progressed beyond running VS Code on an iPad whilst sipping a cocktail.

You can still do that, but there’s way more to it today and I’ll take you through some of use-cases and add my own thoughts. There’s also a practical guide at the end to get started with the open source VS Code browser by Coder.

Productivity typesense.org

The unreasonable effectiveness of just showing up everyday

Kishore Nallan:

When I first started working on Typesense six years ago, I set myself a simple rule:

I shall write some code everyday before or after work.

That’s it. No deadlines, no quarterly goals, no milestones.

Looking back, I cannot believe how much I’ve been able to ship over the past 6 years by just following this one rule.

This rule has served me well in my career as well. Showing up consistently and putting in the work pays dividends over the long-term that you just can’t see over the short-term. I’m reminded of the two best times to plant a tree: twenty years ago and today.

Productivity monocle.surge.sh

Monocle is a universal, personal search engine

Monocle is my universal, personal search engine. It can query across tens of thousands of documents from my blog posts, journal entries, notes, Tweets, contacts, and more to act as my extended memory spanning my entire life. Monocle is designed with a focus on speed, privacy, and hackability. It’s built to be very specific to the particulars of my personal workflow around data, so probably won’t work for anyone else.

I’m logging this for your inspiration, not because you should download it and give it a try. I just love the idea of outsourcing large swaths of your memory to a personal search engine. Also it’s built with Ink (a programming language) and Torus (a UI framework), both of which are the author’s creations.

 Vanessa Sochat cacm.acm.org

10 best practices for remote software engineering

What does “developer productivity” mean to you?

At face value, when we think of developer productivity we might think of effectiveness in time management, communication, and task completion. Although we are drawn to personal workflow or time management tools, and learning secrets to improving our productivity, ironically this quest for the holy grail can sometimes take us off course and be a detriment to our productivity. … As a developer of scientific software, and one who has transitioned to working remotely before any stay at home orders, I have slowly learned to optimize my own productivity by focusing exclusively on well-being.

Thanks to Vanessa for summarizing what she’s learned. Here’s a sample…

Establish routine and environment. Small details about your working environment, or lack of a routine, can hugely throw off your workday, and thus your productivity. You should generally pay attention to the lighting, noise level, and comfort of a work space. If you find yourself distracted by anything, you might consider changing your environment.

This will likely pair well with JS Party #169: Work environments & happiness

Productivity github.com

Calendso – an open source Calendly alternative

Let’s face it: Calendly and other scheduling tools are awesome. It made our lives massively easier. We’re using it for business meetings, seminars, yoga classes and even calls with our families. However, most tools are very limited in terms of control and customisations. That’s where Calendso comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data. Calendso is to Calendly what GitLab is to GitHub.

We’ve been happy Calendly users for years, but I do like the idea of white-labeling and hosting on our own domain. Calendso is built with Next, React, Tailwind, & Prisma.

Calendso – an open source Calendly alternative

VS Code wiki.dendron.so

A local-first, markdown-based note taking tool for VS Code

whereas most tools (try to make it) easy to get notes in, they tend to make it hard to get them back out later, and it only gets worse as you add more notes. Dendron helps you get notes back out and works better the more notes you have.

There are a zillion and one note taking apps out there, but I like how Dendron positions itself here. I’ve never had a note-taking system that I stuck with, mostly because I rarely go back and find things in my notes that are useful. Most of that’s on me, but I wonder if some of it is on my tools not making retrieval a priority…

A local-first, markdown-based note taking tool for VS Code

Alabe Duarte alabeduarte.com

Setting up a new machine

As I became to customise my settings more and more, having to set up a new environment wasn’t an exciting thing to do anymore. I not only have to remember to install all of these things that I need, but it became also tedious and demanded a large cognitive effort. Also, I got frustrated many times because I thought I was all set up until I realised I forgot to install a particular tool. This post shares some things I’ve learned when comes to automating my environment setup.

Jessica Kerr jessitron.com

Why purple developers are the real 10x engineers

Jessica Kerr talking productivity:

What makes a software engineer productive? You can list attributes like experience with the language, scientific mindset, intelligence, focus, a personally crafted IDE setup. Yet, in my experience, far and away the biggest factor is: familiarity with the codebase they’re changing.

This echoes some of our conversation with Jessica last year. She goes on to explain how the purple developer (pictured below) is 10x more productive than the others, not because they are inheritently better than them in some way, but because they are the ones who built the system in the first place.

Spread the knowledge, spread the productivity.”

Why purple developers are the real 10x engineers

The Changelog The Changelog #423

Coding without your hands

What do you do when you make a living typing on a keyboard, but you can no longer do that for more than a few minutes at a time? Switch careers?! Not Josh Comeau. He decided to learn from others who have come before him and develop his own solution for coding without his hands. Spoiler Alert: he uses weird noises and some fancy eye tracking tech.

On this episode Josh tells us all about the fascinating system he developed, how it changed his perspective on work & life, and where he’s going from here. Plus we mix in some CSS & JS chat along the way.

Productivity zwbetz.com

Attention is my most valuable asset for productivity as a software developer

Zachardy Wade Betz with some deep thoughts on how he’s most productive:

My high-level workflow looks something like this: identify the problem to solve; think on the problem and let ideas percolate; research, discuss, and experiment with these ideas; implement and test the solution; deliver and maintain the solution.

This cycle could repeat many times in a day. Or I could spend days stuck on a single cycle step. Every step in this cycle requires attention. The more attention I can devote, the more cycles I can complete, and the more productive I am.

Nikola Đuza pragmaticpineapple.com

Improving your Vim workflow with fzf

Did you know that this fuzzy finder - fzf, can do a lot more than you thought? Oh yeah, the fuzzy search is just the tip of the iceberg here. It is like wine; the more you leave it on your computer, the more flavor and sweetness it accumulates from that command-line. Let’s dive in and find out how you can increase your productivity with fzf inside Vim.

Productivity github.com

The Tomboy note-taking application is still alive

Around the same time I started using Ubuntu I found Tomboy and it was a note-taking system unlike anything else I’d ever used. To me it was the great differentiator for the Linux desktop for a bit. It is a desktop-wiki that provides some incredibly interesting concept. I thought it had quietly passed away but it turns out it has been ported to a new stack and lives a good life with support for Mac and Windows under the Tomboy NG name.

The Tomboy note-taking application is still alive

Productivity chrismytton.com

Why to be prolific

Chris Mytton:

There’s a story about an art teacher that split their class in half. They told one half of the students that they’d be graded based on a single piece of work, and the other half that they would be graded on the quantity of work produced.

The half that was being graded on quantity ended up producing higher quality pieces.

By iterating and learning from their mistakes they actually ended up producing better work than the students that only had to produce one piece.

Quantity leads to quality.

This rings 💯% true. Most things I’ve gotten good at in my life have come from brute force and repetition. Energy begets energy and quantity eventually leads to quality. The key is to not judge yourself too harshly while you’re waiting for the quality phase to arrive.

Maxime Vaillancourt maximevaillancourt.com

Automatically labeling GitHub notification emails with Gmail filters

Maintaining a GitHub project with other people creates “many email notifications about various things.” But they don’t all hold the same importance. Maxime Vaillancourt shows us how to use Gmail filters and labels to better manage all the emails coming from GitHub issues, etc.

I receive many email notifications about various things that happen on there: direct requests to review a particular piece of code, feedback on pull requests I’ve opened, pull requests merged by their authors, people directly mentioning our username in a comment, issues closed by their authors, etc. I receive hundreds of emails every single week.

…using Gmail filters, we can automatically add labels to GitHub notification emails based on their content. This solution takes less than 10 minutes to implement, and the long-term return on investment is quite appreciable.

Automatically labeling GitHub notification emails with Gmail filters

Go github.com

Create beautiful system diagrams with Go

Go-Diagrams lets you turn this code:

d, err := diagram.New(diagram.Filename("app"), diagram.Label("App"), diagram.Direction("LR"))
if err != nil {
    log.Fatal(err)
}

dns := gcp.Network.Dns(diagram.NodeLabel("DNS"))
lb := gcp.Network.LoadBalancing(diagram.NodeLabel("NLB"))
cache := gcp.Database.Memorystore(diagram.NodeLabel("Cache"))
db := gcp.Database.Sql(diagram.NodeLabel("Database"))

dc := diagram.NewGroup("GCP")
dc.NewGroup("services").
    Label("Service Layer").
    Add(
        gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 1")),
        gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 2")),
        gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 3")),
    ).
    ConnectAllFrom(lb.ID(), diagram.Forward()).
    ConnectAllTo(cache.ID(), diagram.Forward())

dc.NewGroup("data").Label("Data Layer").Add(cache, db).Connect(cache, db)

d.Connect(dns, lb, diagram.Forward()).Group(dc)

if err := d.Render(); err != nil {
    log.Fatal(err)
}

Into that diagram 👇

Create beautiful system diagrams with Go
0:00 / 0:00