How to blog An Article by Tom MacWright macwright.com Own your domain and use simple technology Never change the technology Write something on a schedule Never change the technology Things Learned Blogging blogging
Hacking is the opposite of marketing An Article by Tom MacWright macwright.com One of my favorite definitions of “hacking” is the creative reuse of tools for new and unexpected purposes. Hacking is using your email account as a hard drive, using your bicycle seat to open a beer, using Minecraft’s red bricks to create a calculator in the game. The opposite of hacking is marketing. Marketing tells you that this particular non-stick pan is the pan you’ll use to make omelettes, and you’ll do it in the morning dressed in fashionable clothing in a nice kitchen. It includes a photo and inspirational copywriting to drive this home. Marketing dictates a style, context, and purpose for even the most general-purpose products. This narrative needs to be specific so that you can readily imagine it: it’s you, in an Airbnb, laughing with friends. All sorts of ways to use the machineIn ways you didn't anticipateStretching the product toolsadvertisingcreativityutility
The return of fancy tools An Article by Tom MacWright macwright.com Technology is seeing a little return to complexity. Dreamweaver gave way to hand-coding websites, which is now leading into Webflow, which is a lot like Dreamweaver. Evernote give way to minimal Markdown notes, which are now becoming Notion, Coda, or Craft. Visual Studio was “disrupted” by Sublime Text and TextMate, which are now getting replaced by Visual Studio Code. JIRA was replaced by GitHub issues, which is getting outmoded by Linear. The pendulum swings back and forth, which isn’t a bad thing complexitysimplicitytoolssoftwaretechnologynotetaking
Picking better names for variables, functions, and projects An Article by Tom MacWright macwright.com Avoid weasel words Follow patterns religiously Don’t cheap out on characters Call things the same thing Don’t name internal projects When things change, change their names namescode
The heart of systems engineering While the client has some knowledge of his symptoms, he may not understand the real causes of them, and it is foolish to try to cure the symptoms only. Thus while the systems engineers must listen to the client, they should also try to extract from the client a deeper understanding of the phenomena. Therefore, part of the job of a systems engineer is to define, in a deeper sense, what the problem is and to pass from the symptoms to the causes. Just as there is no definite system within which the solution is to be found, and the boundaries of the problem are elastic and tend to expand with each round of solution, so too there is often no final solution, yet each cycle of input and solution is worth the effort. A solution which does not prepare for the next round with some increased insight is hardly a solution at all. I suppose the heart of systems engineering is the acceptance that there is neither a definite fixed problem nor a final solution, rather evolution is the natural state of affairs. This is, of course, not what you learn in school, where you are given definite problems which have definite solutions. Richard Hamming, The Art of Doing Science and Engineering: Learning to Learn What the problem isComplete and consistent requirements