Travis Briggs - YABIWU

Yet Another Blog I Won't Update

There have been some posts on Hacker News lately about various systems for GTD (getting things done), both endorsing and adjacent to the official GTD method. There have been productivity apps, note taking and bookmarking browser extensions, and more. All of it promises a way forward for organizing all of the tasks in your life and making sure they get completed effectively and in a timely fashion.

This is not necessarily a post about why I think it's all bullshit, or why I'm a serial procrastinator and none of this will ever work for me, or even why I might prefer whatever ad hoc method I have for getting things done over these meticulously manicured systems. It's not any of that. The point of this post is to admit something about why these systems kind of miss the point for me completely.

I don't have anything to get done.

I mean, I have a full time job, and through various methods that I've learned over the years, including keeping a tidy inbox, I manage to get most things done most of the time, for things at work.

But otherwise, I can't help but wonder what everyone is filling up these todo list apps with. Because I don't have a list of tasks that demand my attention in my free time. Certainly none with any specific deadlines. Sure, I'm working on an open source project for Wikipedia. I could always be writing music. I could update my list of the best albums in the universe which I did recently convert to be served concurrently as a Gemini site.

So yeah, I have the odd side project here and there that I could be working on. But none of it has any urgency or deadlines, so why bother organizing it into GTD task boards?

Thinking cynically, I can't help but imagine that all of these todo apps are filled with people's aspirational goals and dreams that quite frankly will never happen. Maybe they've taken the first step by writing down that they want to write a short story, or start a blog, or start selling things on eBay, or whatever. But is it going to happen? All the same mechanisms are at work that keep you from doing those things whether they're written down in a trendy app or not. Lack of motivation, enthusiasm, know-how, mentorship, etc.

I guess I just try not to buy into the Protestant work ethic thing, that hard work and “accomplishments” define our existence. And if my goal is to play some video games or even sit quietly on the couch and do nothing, do I really need a GTD app to write that down in?

As I've written before, I'm a sucker for New Year's Resolutions. And yet as the first link from this time last year states, I've also kind of given up on them. They're simply ineffective at creating any kind of real or lasting change. I've come around to the “today is New Year's Day, it is a Wednesday” kind of thinking.

Is it a loss of innocence, a renunciation of magic, with which I give up New Year's Resolutions? I think a belief in the special, the magical, is very healthy and energizes me more than anything else. For me, however, at this time in my life, resolutions are just something to feel bad about in March.

I'm not interested in any kind of self-help, getting stuff done, motivational voodoo to replace resolutions with, either. I think I'm more attracted to the mode of thinking, currently, that things are basically fine and I should just let what happens happen. Not that I'm going to stop trying new things, like maybe a D&D group at work, or tutoring a new friend in Javascript in the new year. But those are just things I kind of want to do anyway.

No, I'm not a bastion of satisfaction and joy. I don't spend every minute wrapped up in feelings of usefulness and contentment. Many of my minutes are still filled with malcontent, boredom and apathy. But maybe that's okay, that's just part of living.

According to songs.travisbriggs.com, I haven't published a song since July. That's a drought. I actually have written a few songs since then, ones that were mostly finished. That includes the sweet, completely finished song I wrote for Abby for our anniversary, which might never get a proper recording (though I probably owe her one).

All these other songs, though, I haven't gone through the process to actually clean them all up, mix them, add missing instruments and all that. It just seems like a lot of work without a lot of payoff. Of course, the payoff might be that I don't end up writing remorseful blog posts like this one.

I feel like I've lost a sense of wonder in my songwriting process. I'm either going at it with feverish diligence and follow through because I feel like I have to, I have to do it to make myself complete. Either that or I'm just “messing around”, indulging in “letting myself play” but ending up with listless, half-complete junk because I'm not forcing myself to write coherently.

I could resolve now to challenge myself, to push my comfort zone and write something that moves my song writing forward. I want to issue myself such a challenge. And I'm not reluctant to do so because I feel I will fail, necessarily. I think I could definitely do it.

The real reluctance comes from the fact that I think I'm stagnating for another reason. I've developed the basic facets of songwriting to a certain degree. I can write songs. I can write songs where I write all of the instrumental parts, the arrangement, the mix, etc. But it's exhausting friend. It really is.

I want to collaborate. I want to come up with a strong, driving chorus with no consideration for how it will fit into a song, and have another real breathing person help me figure out an intro and verse that will work with it into a finished song. I want to play with a band, where the drum feel and groove drive the composition of the guitar and bass parts, rather than playing guitar parts, adding bass later, and always just having a drum machine on repeat for the whole song.

Sigh. It's not going to happen. I feel like I'm some kind of musical incel, where I'll never find anyone to collaborate with. I don't know where to look, where to start. I've had very very limited success with collaborating over the internet, so I know that I need to find someone who I can sit in a room with and write with. But it's just as awkward as dating, except even more niche. I don't know where to start.

That songwriting challenge is looking more appealing. I might need to just NIKE the shit out of some songwriting (just do it).

Halloween is a time for the spooky, the scary, sometimes the terrifying and maybe a bit of the downright goofy. Is there room in there for a bit of Halloween sadness?

Two years ago one of my friends, Will, moved away from the Bay Area to pursue an MBA from Chicago Booth. We were all very proud of Will and wished him the best of luck. Two years later, he's graduated! But now he's moved to Berlin.

Will used to throw pretty extravagant, costume-required, Halloween parties. He and his friends were very into cosplay in general and would have costume parties throughout the year, for birthdays and other occasions. But Halloween, now there was a chance to get schmucks like me and a few of his other friends to be forced to wear a costume. Legend has it that if you showed up to one of these parties without a costume, you would be assigned a “loaner” from the rejected costume pile. And no one wanted that.

Is there room in Halloween for sadness? For the past two years, some of Will's friends and I haven't celebrated Halloween at all. We had no party to go to, no celebration. We had no reason to eek out the smallest semblance of a costume and hope it passed muster. Can you be nostalgic for something that happened 2 years ago?

It's just one more thing that reminds me that today, right now, the time we are currently living, will one day be looked back upon as the good old days. So put on your best costume, even if it's just “The Color Red”.

In part 1 of this tutorial, we explored some terminology related to domain names and websites, and made recommendations on how to find a registrar and purchase a domain.

Now we will look at the “hard” part: putting a single page website at that domain. We will be using Netlify for this process, since they provide perpetual free hosting for static websites which includes CDN support. A static website is a site that is served completely from files and contains no server side logic. Wordpress sites, for example, are not static, they are dynamic, because every time you visit them the Wordpress software assembles all of the parts and pieces and gives you back the resultant HTML page. With a static website, there is a one to one correspondence between the files on disk and the web pages you see. For more of a deep dive into this topic, see my article on dynamic web apps.

Step 1, register for Netlify

Head over to netlify.com and register for a free account. You won't even need to put in a payment method just yet (though that will be necessary if you are registering a domain name with them).

Step 2, prepare your site

We've provided a very simple, single page website that you can download here as a zip file. Extract it to somewhere on your hard drive and get ready to publish your first website! Note: it is recommended that for the first deploy, you don't modify the source code of the site at all, since this will help rule out potential trouble should you have problems.

Step 3, log into Netlify and upload your site

When you log into the Netlify dashboard, you should see something like this:

Netlify dashboard upload area

As the text recommends, you can drag the unzipped folder of the sample website directly to this browser window, and it will upload all of the files, preserving the directory structure, then immediately deploy the site. Deploying in this case simply means making it live on the internet.

Don't worry if you're not ready to share this sample site with the world yet. We haven't set up your custom domain which you bought (or will buy) yet, so it won't be there. The site will only be live at an obscure Netlify URL that you would have to share with people before they could view it. But it will be live!

Step 4, preview the site at its Netlify URL

Your dashboard should flash a bit as its processing, then eventually settle on something that looks like this:

Netlify dashboard with uploaded site

In my case, my site was assigned the ID “tender-archimedes-8ebddf” (don't worry, this can be changed later). Underneath that, we see an https:// link, which if you click on it, will take you to the live on the internet version of your copy of the sample website. You should see {TODO: put what the sample website looks like}

You also see the “3 simple steps” banner that Netlify provides. As you can see, the next step is setting up your domain

Step 5A, purchase a domain from Netlify

If you don't care about registrars and want the absolute dead easiest option, this is where you can buy a domain from Netlify.

Click the Step 2, “set up a custom domain” link. You should see the following:

Netlify custom domain setup page

Note that there isn't a button directly to “buy a domain name”. The way this works is you type in a domain that you're interested in (myawesomesite.pizza comes to mind) and Netlify tells you that it's either available and offers to sell it to you, or tells you that it's not available.

If it is available, and you buy it, you are immediately redirected to your site's settings page. If you scroll up, you'll see that your custom domain has already been added to your site:

Netlify custom domain settings

(Yes, for the purposes of this article, I actually purchased and registered https://netlifytestsite.com)

At this point, the test site will be live to the world at the domain you purchased. But don't worry, no one will see it unless you tell them about it.

Alternate Step 5B, use your existing domain

If you bought a domain from Netlify, it's already configured and you can skip to step 6.

If you have bought your domain somewhere else, maybe sometime in the past, you can still set it up to point to Netlify.

Click on Step 2, “set up a custom domain”, just like you would have above. Except this time, instead of typing a new domain name that you'd like to purchase, type in your current domain (without the https://). For example:

Netlify custom domain setup with existing domain

You'll notice that when you enter the domain, Netlify recognizes that it's already registered and asks if you're the owner. (Don't worry, you can't just claim any domain that you don't own this way. You have to be able to configure the domain to point to Netlify properly which means you really have to be the owner).

Click “Yes, add domain”.

Now, this is where things get hairy. You're going to have to go to your registrar and edit DNS records for your domain, so that they point to Netlify. This isn't as scary as it sounds, but every registrar has it's own user interface for accomplishing this, so there's no straightforward way to give instructions for this part.

Basically, though, it's just one step: Create a CNAME record that points “www” to “tender-archimedes-8ebddf.netlify.com”. Of course, in your case it won't be “tender-archimedes...”, you will have your own site ID, but it will always end in .netlify.com, so “.netlify.com”.

For example, for Namecheap:

  1. Find your domain and click “Manage”
  2. Go to Advanced DNS
  3. Click “New Record”
  4. Choose “CNAME record” from the dropdown
  5. For host type in “www”
  6. For target put the site-id.netlify.com
  7. Make sure to save the changes so they update.

Like we mentioned, every registrar has a slightly different process and name for all of these steps.

What's next?

In part 3 of this tutorial, we will cover basic HTML authoring so that you can turn the sample site into something you're a bit more happy with posting at your own precious domain.

In recent years, tons of new so-called “generic top level domains”, also known as gTLDs have been released to the general public. These include things such as .club, .website, .social, and even .pizza. Those helpful wikipedians have been maintaining a full list if you're curious.

Many people don't know that these TLDs exist or that they are available, often for a discounted rate. For example, if you happen to be Steve Harrison, the domain steveharrison.best is available for only $2.99 a year right now. And of course, if you can find something in the crowded .com space, those are available for between $8 and $15 dollars. (I recommend trying somethinglikeafullsentence.com for example).

If you're interested in dipping your foot into the pool of domain ownership and simple website hosting, read on!

Domain names versus websites versus HTML pages versus URLs

Let's start with a few definitions. A domain name is something like google.com or yourawesomewebsite.pizza. It is simply an entry in a global system that you (or someone else, or some company) has bought the rights to. Once you've bought these rights, you need to “set your domain name up” so that it points to something. That's the important part: the domain needs to point to something in order to be useful.

What it points to is the website that is located at that domain name. Actually what it technically points to is an IP address (or a series of IP addresses). The IP address is often referred to as the internet “phone number” of a computer located somewhere in the world. When you type “https://yourawesomewebsite.pizza" into your web browser, the browser queries the “global system” referred to before (the Domain Name System or DNS) and finds the IP address of the computer that is hosting the website that the address refers to.

For our purposes, it's not necessary to understand the details of IP Addresses or the Domain Name System. The important part is to understand that yourawesomewebsite.pizza isn't a website. It is a domain name that points to a website.

What about an HTML page? You may have heard of HTML or HTML pages, but how do they work into the picture? Well, HTML is basically a computer language that is used to describe web pages. A website is simply a collection of web pages under a common domain, or under a path under a domain.

What about URLs? Where do they come in? You might think that yourawesomesite.pizza is a URL, but it's not: it's missing the https:// part that makes it a URL. So yourawesomesite.pizza? Domain name. https://yourawesomesite.pizza? URL. URLs can also contain paths, such as https://yourawesomesite.pizza/products/1234, where /products/1234 is the path. URLs can also contain query strings, such as https://yourawesomesite.pizza/products/1234?display=full, where ?display=full is the query strings. Query strings allow for websites to dynamically respond to things like search queries and filtering parameters, but they're not particularly important for our purposes.

Note that the last example represents a URL of a certain domain name, with a path and query string, and resolving it via your web browser will result in seeing an HTML page that represents the website that is hosted there. Just to bring it all together, but all that is again probably too much detail for the purposes of this article.

Choosing a registrar

As far as choosing a registrar, I have consistently recommended Namecheap. There are plenty of other options out there (just type “domain registrar” into Google), but I would caution against GoDaddy because of their poor customer service and predatory business practices.

Update: It appears that Netlify is a registrar now and you can actually buy your domain directly from them. This might be a much easier option, since we will be using Netlify to host our site for free.

Once you've found a registrar you like, you can go through the process of searching for your domain. You can generally type in any string you like, and the registrar will first tell you if the .com domain is taken for that string, and then recommend alternatives from the wide world of TLDs described at the top of this article. You can also put in somecrazystring.pizza directly, with the TLD (.pizza in this case) included, if you have a specific TLD in mind. (Note that some TLDs have residency or other requirements, like those for specific countries).

After you've found a domain that you like that is available, go ahead and buy it! If your registrar provides any additional services as upsells (and most of them do), be sure that you don't purchase any website creation or website hosting. We'll be handling that in part 2 of this article. One thing you might consider adding though is any “privacy guard” add-ons that allow you to hide your real name and address in the WHOIS system. Without such privacy guards, your actual name, address, and email address will appear in the global WHOIS database, which will make you a target for not only spam, but real life junk mail too in some cases.

Many folks I know have already taken the first step and registered a domain. They saw that myactuallfirstandlastname.com was available and went through the steps to buy it. If this is you, that's great! That's an awesome first step. Unfortunately, if you go to the website at that address, you find that it's probably some “Website coming soon” page, with the branding of your registrar. Less than satisfactory.

Part 2 of this guide will help you figure out how to host something on your domain (other than the so-called parking page). The best part is, with a little bit of effort, it's completely free (the hosting that is)!

Last year I made a rather audacious New Year's Resolution: to write a song a day in 2018. I will now always remember 2018 as the year I failed to write a song a day. Or maybe I should remember it as the year that I bravely aspired to write a song a day?

I haven't given any thoughts to New Year's Resolutions this year. I've sort of come around to the existential point of view that I'm really just a piece of driftwood on the ocean that is my life. I never really believed in free will. Free will just seems like the explanation we give to the thing we were going to do anyways. I don't have any agency over myself, my outcomes. So why bother?

I did manage to write about 20 songs in 2018, which you can view on my song website. That's about 5% of the way towards my goal.

Maybe I can do something like write a song a day for the first week of every month, then take the rest of the month off. I don't know. Like I said in the other post, song a week is really “wait 5 days, then write a song in a day”.

I mean, why am I so obsessed with songwriting anyways? To speak again of existentialism, maybe I see my creative output as my only futile thrusts against the all encompassing absurd. Maybe I'm just a fanboy that obsesses over music and feels compelled to add to the great corpus of musical works. I am Sisyphus and music is my rock (n roll).

On the topic of philanthropy, there are a few approaches that I see taken by those around me. One is to simply give to whatever cause makes you feel good. Sometimes it's just a matter of some cause that strikes a chord, and just like that you open your wallet. Other times, people try to give to causes that benefit those in the most extreme life circumstances. They donate in order to provide clean water to people in remote villages, or to provide food and medicine to those affected by the horrors of war.

Sometimes though, I find that I like to give to causes that simply provide an interesting or unique presence in the world. This is why I give to Wikipedia, or soma fm, or the Internet Archive, or even govtrack. I might not use these services very often (they're listed in roughly decreasing order of my activity), but I'm glad they exist and I want them to be around for others in the future. I like the idea of these causes, even if they're not the most “boots on the ground” organizations providing the absolute most good to the most people.

I don't really have much to comment on beyond that, and providing a list of some of the causes that I find worthwhile.

A lot of people who want to get into programming ask this question, and it's not a bad one at all! In this post, I'll try to examine the question and give a thoughtful answer.

I think this question is analogous to an aspiring musician asking “Which instrument should I learn?” The answer depends on your taste and interests. Generally though, I would say the answer is pick one that interests you and that will allow you to create the projects you want to create. If you like punk rock music, you should probably pick up drums, bass or electric guitar and not oboe or harp, right? If you're into data science, think Python or R, but probably not C++ or Perl (side note: with my recent experiences with the language, I don't think I would recommend anyone learn Perl).

If a language, like Javascript, piques your interests then go for it! Depending on your goals for your own programming practice, it's likely you will learn a number of languages as you continue your journey. Don't feel like the first language you learn will be the only language you learn, or that it will limit your options in the future. Also, if you don't like Javascript, you probably don't have to continue learning it. You can put it down for a while and see what else is out there. In fact, I would recommend looking at lots of different languages when you're first starting out, because then you're more likely to find one that “clicks” and that lets you express the ideas you're trying to express, or accomplish your tasks better.

If you're completely undecided, on the fence, or without any meaningful data points, you should think about which languages are popular. Not that this is a popularity contest, but it stands to reason that programming languages get popular for a reason. They're probably useful for one or more tasks that lots of people want to get done. Additionally, languages with more popularity are likely to have bigger communities of developers writing blog posts, tools, libraries, and StackOverflow answers. While you're learning, these can all be amazing resources.

Finally, for my own recommendation, I would personally suggest Javascript or Python. Javascript is great because with a few lines of it you can bend web pages to your will. It's also available as a “server side” language thanks to NodeJS. Python, on the other hand, is very general purpose and can be used to write web applications too (see my last post on “What is a web application?”), process data and images, and nowadays is used for all kinds of Artificial Intelligence and especially Machine Learning projects.

As I said in the beginning of this post, you should research some languages, maybe try a few out, and ultimately find one that fits your general aesthetic and most importantly that lets you build the projects you want to build. You're only going to get better at programming with practice, and you're more likely to practice if you have a significant, meaningful project to work on. If you're excited to come back to that code editor day after day, you will learn more and faster than any other factor intrinsic to the language.

I hope this helps some people out there, and if you have any feedback, I'm @audiodude@tiny.tilde.website on Mastodon. Cheers!

This post attempts to answer the question posed in the title. It is aimed at beginning or aspiring web developers, or even those who aren't developers but wish to gain a deeper understanding of the terminology. Web applications versus static websites versus dynamic websites will be discussed.

What is a web application? Generally a web application is considered to be any website which has advanced or dynamic functionality which allows users to complete tasks or view or enter data. So for example, the websites at www.facebook.com and twitter.com are web applications. That's not to say that Facebook and Twitter themselves are simply web applications. They would in fact probably be considered social media “platforms”, since they can be accessed across multiple devices and for a myriad of purposes. Perhaps a better example is Fandango, a web application which allows users to search for movies, find showtimes, and buy tickets. Google is a web application, as is Wikipedia.

A web application is usually classified as such in contrast to a simple website. A website is a collection of web pages that can be accessed using a web browser, that usually offers no or limited dynamic interactivity and functionality. A good example is the homepage of the late Stephen Hawking. This site provides information that is organized according to a certain method, including text and images. However, there are no tasks that a user could complete on this site. There is no way for end users to enter data.

Websites can further be classified as static or dynamic. Put simply, a static site is one that doesn't change each time it is viewed, such as this list of bookmarks. It's always the same list, and almost certainly the HTML (code) for this page exists as a single file on a server somewhere. When you request the page using your web browser, the server grabs the file off disk and sends it back to your browser “as is”.

A dynamic website, on the other hand, features content that potentially changes every time it is viewed. A good example is the CNN homepage. It's not a web application, because there's no interactive way to enter data or complete a task. But it changes by the moment as news stories break or fall out of popularity. When your web browser requests cnn.com, the server doesn't return a preset file containing the code. Rather, one or more programs run on the server, and the end result (output) of the process is the HTML that gets sent back to your browser.

So what about that Stephen Hawking site, is it dynamic or static? Well, although the information on it doesn't change nearly as regularly as cnn.com, it is probably a dynamic website. It is likely that the people who run the Hawking site are using a Content Management System so they can more easily change and update the page. And so although the site might conceivably be implemented using static files, it is in fact a dynamic site.

The fact is, almost all website are dynamic. And the most useful ones are actually web applications. Other examples of web applications are Google Calendar, Reddit, and Netflix (which doesn't allow data entry, but allows for rich searching and filtering features).

Hopefully this article was useful, and feel free to send feedback to @audiodude@tiny.tilde.website on Mastodon.