• Looking for the Old Web

    I finished watching Long Way Round while waiting for new episodes of Long Way Up. The adventure travel reminded me a lot of blogs I used to read when I was in high school1 and college2 and dreaming of studying abroad in Japan and living in Japan in general.

    In those days, we'd blog, maybe post a bad photo or two, and commented on each others' sites. Nobody knew each other in real life, but, over time, you'd get a real sense of community. You were of course following the posts, but there were also a regular cast of commenters that you'd also get a sense of knowing. It felt authentic...and innocent.

    Why can't we have this today - but on larger scale? How would you even find these sites on the modern web? Everything is hidden behind "the algorithms" and or paid for by a marketing campaign. Can you even find them?

    1 Sushicam.com was a great photo blog by a guy living in Japan. I used to have a few prints of his and also bought his old Canon 10D - until my parents said "If you have enough money to buy a camera, you have enough money to pay rent".
    2 Justin Klein was a great blog from a traveling programmer. Not just Japan, but all over the world.

  • Tech Companies Are Destroying Democracy and the Free Press


    The collapse of journalism and democracy in the face of the internet is not inevitable. To save democracy and the free press, we must eliminate Google and Facebook’s control over the information commons.

    The digital commons shouldn't belong to any single mega-corp. It belongs to all of us. Help in the fight by running your own domain and POSSE your content to the silos.

  • The Social Dilemma

    I watched The Social Dilemma on Netflix. Much of the information presented I already knew - big tech mines all of our personal data and manipulates us to increase screen time in whichever way they can.

    The movie itself has a story in-between the interview clips that help demonstrate the effects that social media (and cellphones) enable within a family. In one scene the son's cellphone's screen's cracks and the mom says that she'll replace it if he can not use his phone for a week, since, as he says "it's no big deal".

    The algorithms notice his usage has changed, i.e. stopped, analyze that similar people in his area haven't changed their usage and start a "reactivation" sequence, to suck him back in. To tempt him to open the app they find a recent event that will entice him back in and, like a drug addict, he's back.

    It reminds me of the seemingly random push notifications I get from instagram when I haven't used the app in a few days. Nothing is random with social media, but it didn't occur to me that they were trying to "reactivate" me and just how slimy that is. There's no regard for the "user" - only their advertisers, which is their real user.

    Most of all, watching The Social Dilemma makes me grateful for the indie web, communities like micro.blog, and apps like Sunlit that allow social media without algorithms without manipulation for advertisers, powered (more or less) by RSS and other open standards.

  • The more I think about it, the more I think Apple should knock FB/Instagram down a peg with a iWeb-powered micro.blog style blog-based social network.

  • Migrate your Digital Ocean Droplets to Sustainable Regions Powered By Renewable Energy

    As part of my process of improving the sustainability of the digital things I run, including this blog, I'm moving my servers from Digital Ocean's NYC1 datacenter to their Frankfurt datacenter. The Frankfurt datacenter is co-located at Interxion, and is powered by 100% renewable energy.

    Below is a quick overview of the steps required to move your existing droplet to Frankfurt (or London, or Amsterdam) so it can be powered by 100% renewable energy. Including the time to take a snapshot, the process took me about 15 minutes.

    For other tips related to improving the sustainability of your sites, read designing sustainable digital products.

    1. Update your DNS TTL (Time To Live) Settings

    Moving your droplet will mean getting a new ip address. Reducing your DNS' TTL settings prior to moving your droplet will help ensure minimal downtime as DNS servers update their record of your new home. I set mine to 2 minutes.

    2. Make a Snapshot of your Server

    While Digital Ocean allows you to make Live Snapshots, for anything stateful (like a blog, or application), it's best to shutdown your server before making the snapshot to ensure that no data is missed.


    1. Select your droplet in admin console.

    2. Select the power sub-menu and click the Turn off button. This takes a minute or two.

    3. Once shut down, click the snapshots submenu.

    4. Click the take snapshot button. This took about 8 minutes to complete the snapshot.


    3. Move Your Snapshot to Frankfurt

    By default Snapshots are only available in the region in which they were created. In order to start a new droplet in a different region you'll first need to transfer it.


    1. Select the Images menu in the admin console.

    2. Find your Snapshot in the list and click the More button.

    3. Select Add to region and select "FRA1" for Frankfurt. It should only take a minute or two, depending on the size of your droplet.


    4. Create a New Droplet

    Create a new Droplet. In first step where you select an image, rather than selecting an operating system, click the snapshots tab and select your new snapshot. Other options should match your existing droplet. Select the region "Frankfurt 1" and finally click Create Droplet.

    5. Update DNS

    Once your server has been provisioned, you'll see the ip address. Update your DNS records to reflect the new ip. With the lowered TTL settings, it should be near instantaneous. My DNS updated before the server was even finished booting.

    6. Confirm it's Working and Delete your Old Droplet

    Once the server is online and DNS is updated, you should be able to access it just like nothing has changed. After you've confirmed it's working properly, delete your old droplet so you are no longer charged for it.

    I've always enjoyed using Digital Oceanand being able to host with them using 100% renewable energy ensures that I'll be a customer for years to come.

  • Designing Sustainable Digital Products

    I'm reading Designing for Sustainability: A Guide to Building Greener Digital Products & Services and am about midway through. There's a lot that goes into building a sustainable product and as digital makers, we often don't consider sustainability. Rather we think "hey, I'm saving paper, so this must be more sustainable.", an we're wrong.

    The name of the game for digital product sustainability is energy consumption, both to consume and distribute. Improving sustainability isn't just a single task, though some will have a larger impact than others.

    What are some ways to improve the sustainability and reduce the environmental impact of your digital products?

    Use Renewable Energy

    Host with a provider who uses 100% renewable energy. This is getting easier, but is still hard.

    This site and Airbot are hosted with Digital Ocean in their NYC1 data center. Within Digital Ocean (or any provider), the power source depends on the data center. This forum post has compiled the power-source information for the datacenters Digital Ocean uses where possible. NYC1 is "light green", which means while the energy from the grid isn't renewable, they are buying green energy credits. Sticking with DO, moving to my hosting to Amsterdam, Frankfurt, or London would reduce the environmental impact of my projects, as they're all powered by 100% renewable energy.

    It seems I may have a couple of server migrations in my near future.

    Control Content Size

    Sustainable digital products are those that can use the least energy. Part of that is hosting, another part is the content itself.

    Is your content providing value to your users? Or is it wasting their time, causing them to use their devices longer and consume more energy.

    How heavy is your content? How much energy is consumed to get what you've made to your users? Are your sites heavier than they need to be, causing users to transfer more data than necessary.

    Don't make a video when a blog post will suffice. Don't say in 5 minutes what can be said in 3.

    File size matters. The smaller the file, the less time it takes to transfer, the less energy to deliver it to your users (quite possibly wirelessly), less space to store (thus fewer hard drives, fewer servers) - it all compounds.

    That video you made where you're mostly talking? You don't need stereo - mono will suffice, you'll reduce the file size, transfer time, and your users won't notice.

    Improve Your Information Architecture

    How efficiently can users complete tasks? How much time are users wasting in your product / on your site trying to complete what they're doing. As makers, a sustainable product is one that users can get in, get out, and get off.


    • Get In - Your product should be quick to load and easy for users to access.

    • Get Out - Helping your users find what they're looking for and accomplish their tasks get out of your product.

    • Get Off - Build your product so that it respects your users and doesn't try to suck them in to spending countless hours in your product. More time in your digital product increases needless energy consumption.



    Making your digital product sustainable isn't a one time task, but rather an on-going process, much like security, and deserves regular auditing. And just like security audits improve products for the users and business alike, sustainability audits should result in faster, less resource intensive applications, saving money for businesses and happy users.

    While many developers don't think of sustainability as applicable to their work today, I hope that more developers realize it is, and that we can make a difference.

  • Apple to be Carbon Neutral by 2030

    Apple has made an announcement that by 2030 they’re entire business, including the Macs and iPhones you purchase will be carbon neutral. This is a great step in the right direction and I’m glad to see Apple taking the lead.

    Sometimes I get disappointed with macOS and think that my next computer may be a  Thinkpad running Linux. But it’s moves like this that help keep excited about supporting the company. Between the ARM Macs and climate change leadership, Apple’s future is looking brighter than ever.

  • I’ve been trying to master the tools I use on a daily basis better. Some of that is learning how to do things with them that I don’t know how to do them presently.  For example “validate and prettify this JSON”.  Usually it’s a quick trip to some json linting service online, copy/paste/validate. I know it can be done locally and I’ve done it locally in the past, but muscle memory takes time to retrain. But if I can manage it one task at a time, I’ll be a pro in no-time.

  • Figured Out Music Pausing When Running with my Apple Watch

    I’ve been trying to debug an issue when my Apple Watch where  announcements from Siri cause Overcast to pause. The only way to resume it is to go back into Overcast and hit play.

    Before my most recent run, I synced some music on to my watch and the experience with Runkeeper was much smoother. As expected, when pace/time announcements start the music fades to half-level then fades up to the regular level when siri finishes as expected. So it seems like the music pausing may be a bug in Overcast’s handling of siri announcements or Music having access to some APIs that regular devs don’t.

    On second thought, most podcasts are spoken word and listening to Siri and your half-leveled podcast simultaneously would be a poor experience, so it’s makes sense that it pauses playback when Siri starts. However, it would be nice if it resumed when Siri finished.

  • Second Run with Apple Watch

    My second run with Apple Watch was better. Not just the run itself, but using the Watch while running was a lot smoother.

    In my first run with the Watch, I lost audio when my Airpods appeared to have died midway through and each runkeeper pace announcement via Siri would stop music. This time my Airpods made it easily, but my music still paused every 5 minutes.

    I believe the issue with my Airpods in my first run wasn't my Airpods, but rather the podcast I was listening to was only partially buffered from iPhone. By my second run, Overcast and my watch have had plenty of time to sync and plenty of audio for my run.

    The pausing audio issue I believe to be a bug with runkeeper. To test this, for my next run I am going to try running with just the Apple Workout or Nike Run Club app and see if audio resumes after callouts. If it doesn't, then there's potential that it's an Overcast bug, and I'll need to try with the stock Music app (and sync some music I'd like to run to!).

     

Previous 8 of 10 Next