Links

Excellent things from around the web.


The (Switch)-Case for State Machines in User Interfaces ◆ 24 ways

Describing all the possible user flows and business logic of an application can become tricky. Ironically, user stories might not tell the whole story – they often leave out potential edge-cases or small yet important bits of information. However, one important (and very old) mathematical model of computation can be used for describing the behavior and all possible states of a user interface: the finite state machine.

Pinboard tags: webdev webdesign


Adactio: Mistletoe Offline

There are some Murphyesque situations where even your lovingly crafted 404 page won’t help. What if your web server is down? What if someone is trying to reach your site but they lose their internet connection? These are all things than can—and will—go wrong. I guess there’s nothing we can do about those particular situations, right? Wrong!

Pinboard tags: javascript web


Reluctant Gatekeeping: The Problem With Full Stack | HeydonWorks

The role of the Full Stack Developer (which is, in practice, a computer scientist who also writes HTML and CSS), one takes responsibility for all the code, in spite of its radical variance in syntax and purpose, and becomes the gatekeeper of at least some kinds of code one simply doesn’t care about writing well.

Pinboard tags: webdev


I Put Words on this Webpage so You Have to Listen to Me Now - Christine Dodrill

Holy cow. I am angry at how people do thing with tool. People do thing with tool so badly. You shouldn’t do thing with tool, you should do other thing, compare this:

Pinboard tags: fun


TDD & The Lump Of Coding Fallacy

You’re a working geek: you spend your days coding for money to add value to your company. And one day some random schmoe like me comes up to you and says, hey friend you really ought to try TDD, because that value that you’re adding, you could have added even faster if you used TDD. So, you check it out, because sometimes random schmoes actually have a clue, and you see pretty quickly that TDD means making lots of automated tests against your code. So what do you do?

Pinboard tags: tdd


The Power of Web Components - Mozilla Hacks - the Web developer blog

Web Components comprises a set of standards that enable user-defined HTML elements. These elements can go in all the same places as traditional HTML. Despite the long standardization process, the ...

Pinboard tags: webcomponents


5 Tips to Write Better Conditionals in JavaScript ― Scotch

When working with JavaScript, we deal a lot with conditionals, here are the 5 tips for you to write better / cleaner conditionals.

Pinboard tags: javascript


JavaScript 30 — Build 30 things with vanilla JS in 30 days with 30 tutorials

Pinboard tags: learn javascript


How to write X in both Python 3 and JavaScript (ES2015)

Pinboard tags: javascript python


How I Built a Personal Knowledge Base for Myself

A story of how I have built and used a personal knowledge base for one and a half year and how it helped.

Pinboard tags: productivity


When to Use What: REST, GraphQL, Webhooks, & gRPC | Nordic APIs |

Real world, specific use cases for REST, GraphQL, gRPC, and Webhooks to help API developers make sense of which API design style to use for what situation.

Pinboard tags: software-architecture api


Learn X in Y Minutes: Scenic Programming Language Tours

Pinboard tags: programming learn


Dan McKinley :: Choose Boring Technology

Pinboard tags: best-practices programming


Ian Cooper - TDD, Where Did It All Go Wrong

Since Kent Beck wrote the book on TDD in 2002 a lot of words have been dedicated to the subject. But many of them propogated misunderstandings of Kent's original rules so that TDD practice bears little resemblance to Kent's original ideas. Key misunderstandings around what do I test, what is a unit test, and what is the 'public interface' have led to test suites that are brittle, hard to read, and do not support easy refactoring. In this talk we re-discover Kent's original proposition, discover where key misunderstandings occured and look at a better approach to TDD that supports sofware development instead of impeding it. Be prepared from some sacred cows to be slaughtered and fewer but better tests to be written,

Pinboard tags: tdd talks


Glitch - The Friendly, Creative Community

The friendly community where you’ll build the app of your dreams.

Pinboard tags: ide education


sohelamin/microservices: A collection of some random microservices.

A collection of some random microservices.

Pinboard tags: software-architecture


Remote Only

Promoting remote organizations.

Pinboard tags: productivity


The Lead Developer London 2018

The conference for technical leads.

Pinboard tags: talks


ry/deno: A secure TypeScript runtime on V8

GitHub is where people build software. More than 27 million people use GitHub to discover, fork, and contribute to over 80 million projects.

Pinboard tags: typescript


cd is Wasting Your Time

Thoughts on Ruby, Rails, open source software, programming, and life from Olivier Lacan

Pinboard tags: productivity commandline


Becoming a SRE without previous experience | Lobsters

Excellent advice on moving into SRE from a software engineer background.

Pinboard tags: sre hiring


The Death of Microservice Madness in 2018

There are many cases where great efforts have been made to adopt microservice patterns without necessarily understanding how the costs and benefits will apply to the specifics of the problem at hand. I'm going to describe in detail what microservices are, why the pattern is so appealing, and also some of the key challenges that they present.

Pinboard tags: software-architecture


My $169 development Chromebook

How Chrome OS, Termux, YubiKey and Duo Mobile make for great usable security. A travel Chromebook for modern development, online and offline.

Pinboard tags: security development


Ten More Things I Wish I’d Known About bash – zwischenzugs

Intro My previous post took off far more than I expected, so I thought I’d write another piece on less well-known bash features. As I said before, because I felt bash is an often-used (and un…

Pinboard tags: bash


Can we please do useful things with software?

If you need a job, you need a job, and as long as you’re not doing something you consider unethical or immoral you do what you need to to get by. But if you have the opportunity, why not also do something useful, something that makes the world better?

Pinboard tags: hiring


Learning at work - Julia Evans

Learning at work

Pinboard tags: learn


12 Vim Tips

This compilation of Vim tips is repost of some intermediate to advanced Vim tips I've found interesting

Pinboard tags: vim


Vim: you don't need NERDtree or (maybe) netrw | George Ornbo

Vim's netrw file browser is good enough. With a few tweaks there is no need for plugin like NERDtree. For many tasks you may not even need netrw.

Pinboard tags: vim


What Google AMP means for the JavaScript community · molily

Google’s Accelerated Mobile Pages project (AMP) focuses current conflicts on the web like a lense: The mobile revolution, trustworthy and sustainable journalism, advertising and content monetarization, web standardization, web performance and tech industry monopolies.

Pinboard tags: best-practices javascript


Vim After 11 Years - Ian Langworth’s Things of Variable Interest

Recently, someone noticed a plugin I was using and said, “I had no idea Vim could do that. You should teach me all of these tricks someday.” A fine suggestion, indeed, and that day is today.

Pinboard tags: vim


Unconventional way of learning a new programming language

There are more than 500 programming languages. Hence, it’s pretty normal for you to start learning a new programming language today. It’s possible that you know…

Pinboard tags: learn instapaper


Complexity and Strategy

I struggled with how to think about complexity through much of my career, especially during the ten years I spent leading Office development. Modeling complexity impacted how we planned major releases, our technical strategy as we moved to new platforms, how we thought about the impact of new technologies, how we competed with Google Apps, how we thought about open source and throughout “frank and open” discussions with Bill Gates on our long term technical strategy for building the Office applications.

Pinboard tags: software-architecture


Thinking of the next developer

Over the last year, I've ended up on four projects that were started prior to my arrival. This isn't uncommon; more often than not throughout any career in development, you'll find that you're spending a lot of time trying to understand someone else's code. It may have been written a few days ago, and it may have been written years ago. The original author may still be on-hand to talk you through it, or they may have moved on. But regardless of the circumstances, you will often find yourself spending time figuring out what a codebase you're looking at is doing, and why.

Pinboard tags: best-practices software-development


The Idea of Lisp

LISP. It conjures up visions of a bygone age of computers the size of refrigerators, ALL CAPS CODE, and parentheses. Oh! so many parentheses! So why is Object-Oriented Programming's creator so enamored with the idea of Lisp? And what can he mean by a programming language being an idea anyway? Should I blame my Computer Science education for not teaching it to me?

Pinboard tags: functional-programming


Just starting out? Ditch the “full stack developer” label

The vagueness and confusion around the phrase “full stack developer” has been lingering for years. Google it and you’ll find plenty of discussion about why it’s such a loaded term. Given that long-standing vagueness, labelling yourself as “full stack” might be doing you more harm than good, especially if you’re just starting out.

Pinboard tags: imposter-syndrome


Why I Left Gulp and Grunt for npm Scripts

I know what you’re thinking. WAT?! Didn’t Gulp just kill Grunt? Why can’t we just be content for a few minutes here in JavaScript land? I hear ya, but…

Pinboard tags: npm tools


Maker's Schedule, Manager's Schedule

One reason programmers dislike meetings so much is that they're on a different type of schedule from other people. Meetings cost them more.

Pinboard tags: productivity


Clean Code concepts adapted for JavaScript

Software engineering principles, from Robert C. Martin's book Clean Code, adapted for JavaScript. This is not a style guide. It's a guide to producing readable, reusable, and refactorable software in JavaScript.

Pinboard tags: best-practices javascript


Dear JavaScript, – Medium

I wanted to talk to you about a problem in our community that we need to address. I’ve contributed to a number of open source projects in this community (Babel, Flow, Yarn, Lerna, etc.). As a maintainer of these popular projects, I’ve experienced some of the best this community has to offer, as well as some of the worst.

Pinboard tags: culture javascript


Oh, shit, git!

Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible. Git documentation has this chicken and egg problem where you can't search for how to get yourself out of a mess, unless you already know the name of the thing you need to know about in order to fix your problem.

Pinboard tags: git