Category: computing

  • App Defaults

    Why not do an old school blogging meme for day 13? Well, that’s what I’m doing today, so… let’s go! I’ve seen it a couple of places, but I last saw it over here, which is where I was convinced that it would be today’s post.

    I’m pretty much all Apple for end-user things. I’m also an Ubuntu users, but I pretty much only interact with it via the command line.

    • Mail Client: Mimestream on macOS, Apple Mail on iOS
    • Mail Server: It’s GMail all the way down.
    • Notes: Apple Notes
    • To-Do: Apple Reminders for long-term and recurring things. I use Day One for short-term to-dos and my daily work journal
    • Photo Shooting: the iOS Camera or Hipstagram if I’m feeling fancy/silly.
    • Photo Management: Apple Photos
    • Calendar: Fantastical
    • Cloud File Storage: Google Drive and iCloud
    • RSS: NetNewsWire everywhere, and I’m so glad it’s back.
    • Contacts: Google + iCloud (they’re a mess)
    • Browser: Firefox for personal stuff, Chrome for work, Safari for mobile. I’m polybrowserous and am fine with it.
    • Bookmarks: Firefox and Chrome (in profiles because you gotta keep things separate)
    • Read It Later: Pocket, but it’s mostly later because I forget to check it.
    • Word Processing, Spreadsheets & Presentations: Google Suite
    • News: The aforementioned NetNewsWire for following blogs like Talking Points Memo (which has been awesome for 20+ years), Apple News+, NY Times, Washington Post, The Ringer and The Athletic.
    • Music: Spotify and my Plex server for live shows and mashups
    • Podcasts: Overcast
    • Password Management: 1Password
    • Code Editor: VS Code, but I really miss Atom.
  • Browsing For Work

    I have a lot of personas when I’m at the computer. There’s me, the person, who has social media accounts and personal email and an Amazon account and various streaming services. There’s work me, who has gmail and a million github tabs open. There’s TechSAV me, and several SKTCS versions of me.

    All of them have their own GSuite accounts, and various other things for getting things done.

    I think I’ve finally got the setup for managing all of them without them running into each other too much! This post is very Mac-centric, but the guidance for Chrome still applies.

    The trick is to stop trying to do everything in the same browser. Thankfully, with Chrome, you can create multiple profiles so you can keep your various identities distinct!

    In Chrome, as long as you’ve logged into a Google account with it, will have your little user icon in the top of the menu bar. It should look something like this:

    A screenshot of my Chrome menu bar showing my bald head… that’s my user icon!

    If you click your icon, you’ll get a menu that shows your current Google account and then a list of your other profiles. If you don’t have any, it’s time to create some!!

    The Google profile window from Chrome

    If you click the + Add button, you’ll be able to set up entirely new profiles that give you a “clean” browser experience so you can keep your various personas separate so you don’t end up trying to join a Google Meet with your school account or wonder why you’re not seeing that email from your boss when you’re in your personal GMail.

    That’s great in isolation, but I get links that open browsers from email, text messages, etc… and I need a way to route them to the correct browser so I can handle them with the right persona. That’s where things get Mac-like (I know there’s something similar for Windows but I don’t know what it is because I don’t use Windows)! I installed Choosy a few months ago and it’s made this part of my life so much easier!

    Choosy lets you choose which browser to open when you click a link from another application, and the coolest feature is that you can set up rules to open a specific browser based on the URL, which app you clicked on it from, etc. For example, I have a rule that says to open any URL with “outvote” or “impactive” in it in my Impactive Chrome profile, so I don’t have to choose which browser to open every time I click a link to a Github ticket. Another rule is to open any link I click in my feed reader (the wonderful NetNewsWire) in Firefox, which I use for personal stuff (I like that it fences Facebook things by default, and I love an underdog).

    With this setup, I can keep my personas separate and make sure things open in the right place.

  • Letters to My Congressman

    My local congressman, Buddy Carter, sends out a weekly newsletter and this week’s was a doozy. I don’t normally write to him, because I’m not sure it does any good, but I had to in this case.

    Here’s what I wrote. Feel free to use it and write to your representatives.


    In your latest newsletter you say the following: “I believe committing this horrific act removes all civil liberties and they should be investigated in whatever way is necessary. This is now an issue of national security and it is ridiculous that Apple is not participating in the investigation of known murderers and terrorists.”

    This paragraph shows an amazing lack of understanding of the Constitution and our fundamental civil rights, and a failure to grasp the most basic facts of not just what the FBI is asking Apple to do, but the FBI’s own actions that led to where we are right now.

    I’ll leave the constitutional questions to someone else, but the technical ones are simple:

    1. Creating a backdoor, ANY backdoor, for the FBI means that Apple will have to give that backdoor to any government in any country they do business in. Submitting to this request of our government means that they have to give that back door to repressive regimes in China, the middle east, etc.
    2. Creating a back door, ANY back door, in encryption or security means that back door can be exploited by any one – good guys, bad guys, terrorists, etc.
    3. The FBI wouldn’t be in this situation if they hadn’t asked local law enforcement to change the suspects’ Apple ID password. If they’d left it as is, Apple could have gotten into their account and given the FBI whatever they wanted – as they have done in many many cases.

    This isn’t a simple case, but just demanding that Apple do what the FBI asks denies the complexity of the issues and weakens security for everyone.

    We need strong encryption, unfettered by ill-informed and ill-advised government demands, for ALL of us to be safer. Any weakness at all can be exploited by the bad guys just as easily as the good – and like people are so fond of using the 2nd amendment as a “check against unchecked tyranny” – strong encryption is an even better check against that tyranny, and not just in the US.

    I ask that the government get smarter, that our representatives gets smarter, about thinking about how to perform their duties and catching criminals than asking the innovative companies that drive our economy to get dumber.

    Thank you for your time,

    Kevin Lawver

  • Dealing With Your Kid’s Email: A Nerd’s Approach

    My kids both have Google Ed accounts for their school work, which comes with an email address. Some of the parents in the school’s Facebook group were asking how to set up the school email account on their phones, which feels like overkill to me. I don’t log in to my kid’s email – I just have all of their incoming email forwarded to me (which I then filter to get it out of the way so I can read it later).

    And here’s how to set that up if you’d like to do the same thing!

    • Go to Gmail and log in as your kid.
    • Click the Gear icon on the top right side of the page and click Settings
    • Click on the “Forwarding and POP/IMAP” tab.
    • Now click the Add a forwarding address button.
    • Put in your email address that you want emails forwarded to and click Proceed.
    • It’ll send a confirmation code to your email. Grab that and put it in the verify field.
    • Now click the radio button next to Forward a copy of incoming email to…, select your email from the dropdown and then choose keep Gmail’s copy in the inbox from the second dropdown.

    And there you go. Now you’ll get all your kid’s emails in your inbox. Lucky you!

    Now, for bonus points, filtering. I have a ton of filters to keep my inbox nice and clean, and my kids’ emails have their own filters. Here’s how to set one up:

    • After you set up email forwarding, you’ll start getting emails to your kid in your inbox. You need one of those to start with. It doesn’t matter what it is as long as your kid is one of the recipients.
    • In the search box at the top of GMail, search for to:yourkid@whatever.com (replacing “yourkid@whatever.com” with their actual email address).
    • Once the results come up, click the More button and choose Create Filter.
    • The To field should be filled out with your kid’s email address, so go ahead and click “Create filter with this search”.
    • This is where things get fun. Here are the settings I use for my kid’s email:
      • Label it with the kid’s name.
      • Skip the Inbox
      • Mark it as read.
    • With those settings, they never hit the inbox, but, I have to remember to check it periodically, so it’s probably a good idea to leave them in the Inbox to start and not mark them as read – just apply the label.

    That should help you keep up with your kid’s school emails without going crazy! Good luck!

  • Some Huck Hacking

    I used to work on a big search product at AOL and still love search, even though that’s not what I do anymore. So, when I saw that IndexTank and Heroku were having a contest to build a cool app with IndexTank’s search-in-a-box, I couldn’t resist. I knew I had to keep it simple since I don’t have a lot of time for hacking outside of work, but I knew I had to do something.

    I had two ideas, and went with the simpler one: What would happen if you broke a book down into individual sentences and made it searchable? Would it be useful at all? I decided to try Huckleberry Finn by Mark Twain, since it’s not too long, is public domain, is quotable and full of vernacular that can screw up indexers, and I knew it was available from Project Gutenberg.

    I grabbed the text file, cut and pasted each chapter into individual text files and then wrote a Ruby parser to split it up into paragraphs and sentences, which were then written to javascript files. After that was done, I wrapped it in a simple Rails app to display each chapter and paragraph, and then fired all the sentences at IndexTank.

    I call the result… Huck Smash, and I think it’s pretty cool.

    It was a lot of fun to write an app without a database or ORM, just a bunch of javascript files that Ruby can read and an extremely limited scope. I know it probably won’t win, but it was a lot of fun to write and only took a few hours to put together. Writing the text parser was a lot of fun, and figuring out how to navigate the book and build out the HTML so you can link to an individual sentence was cool.

    I’m going to try to spend more time outside of work playing with single-purpose sites and fixing Ficly up. I need to keep things constrained so I don’t bite off more than I can chew or over-commit, but this was so much fun I want to do it again.

    I’d love to hear what you think of Huck and any ideas you have for improvements.

  • Thank You, Open Source!

    Thank you
    “Thank You” by Darwin Bell

    I read Zed Shaw’s blog post on the decline of open source participation last week and it got me thinking about just how much open source software we use at work and how we’re (mostly not) giving back to those communities. So, here’s the first step in me becoming more involved and giving something back, even if it’s just a huge “thank you”. I am trying to be more involved, especially in the MongoDB and MongoMapper communities. I’m probably not going to be contributing code to either, but I’m fairly active on the mailing lists, have reported bugs and am committed to help with the MongoMapper documentation project.

    Excuses aside, here’s a list of the big open source things we use on a daily basis and why we love them:

    • Apache – The webserver that holds everything together. It’s used by most of the web, and we use it too.
    • Ruby on Rails – Rails lets us do more faster. We also use a bunch of gems that I’ll list later on.
    • Sinatra – When you don’t need everything that Rails has (a simple API, for example), then Sinatra is perfect.
    • Passenger – Deploying Rails apps used to be a pain. Not anymore! Thank you, Passenger!
    • MySQL – Need an RDBMS? Well, we use this one. And it works pretty darned well.
    • Memcached – We cache everything we can, and memcached helps us do that.
    • MongoDB – We use it because it’s web scale! (if you get that joke, then you’re in the club!) Seriously, we first started using MongoDB just to collect our stats because we’d maxed our poor MySQL instance. Then, I looked deeper and realized it’s perfect for the big top secret thing I’m working on now. Atomic updates and super-fast inserts make it perfect for collecting a lot of data quickly. And it’s now slouch on the query side either. There’s also a great community behind MongoDB. The updates and improvements are frequent and the community is always willing to jump in and help.\
      It’s a nice hybrid between the new school document store databases and a traditional RDBMS.
    • Beanstalkd – A super-fast queue server. It just works, which is why I love it. We queue everything we can. Why? It’s a great way to meter load. If you can only handle 3 jobs running at once, then you only run 3 workers. If you can handle more, you run more. It’s great!
    • And of course, all of our servers are Linux and run hundreds of open source packages that I don’t even worry about.\
      Since our strength lies in Ruby, we try to do everything in Ruby that makes sense. I’m not going to list all the gems we use, but here are a few of my favorites – the ones that make life easier and make programming all day more fun.
    • MongoMapper – Makes working with MongoDB even more fun. I’m on the MongoMapper mailing list, and it’s one of the most supportive and helpful communities I’ve been a part of. It makes using it more fun.
    • memcache-client & beanstalk-clent – they’re how we talk to memcached and beanstalkd
    • hashie – Allows you to very easily create classes built around hashes. Great for wrapping around API’s.
    • typhoeus – My favorite of the many HTTP clients for Ruby.
    • will_paginate – Now I don’t need to do all the horrible gymnastics needs to add “previous” and “next” links to things! THANK YOU!
    • hpricot – My favorite way to parse HTML – with CSS selectors!
    • aws-s3 – A great interface to Amazon S3 (where we store a bunch of stuff)

    There you go. That’s pretty much our entire stack. I left out a bunch of gems – most of them we don’t use directly – or that just provide one or two things.

    So, thank you to all of the creators and contributors to open source projects out there, especially the ones we use to make our work easier. The web would be a much smaller place if there weren’t dedicated geniuses out there making this stuff, and the world would be a poorer place for it. I promise to be a better member of the community and contribute where I can!

  • Murray Wilson Is Awesome

    My pal Murray Wilson does great things – he and AWOL take kids the system doesn’t want and teaches them to take apart, clean and refurbish computers the system doesn’t want – computers that would otherwise go to the landfill.

    They then put linux on them and put them out into the community with families that need them. He’s one my absolute favorite people in Savannah (nay, the world) and I’m proud to know him.

    The computers will, of course, end up in the landfill eventually, but the “Goon Squad” gives them easily another 2-5 years of life, and the kids learn useful and marketable skills. It’s a win-win, and an amazing program and Murray and AWOL built from the ground up.

    If you can spare it, AWOL can always use some help. Every little bit helps, and every kid they help is one that’s not in the juvenile justice system or out on the street by themselves.

    Murray is awesome in the best sense of the word.

  • My Slides from Future of Social Media

    I finished speaking at *The Future of Social Media”… it was fun telling them not to join twitter if they’re just going to be marketers and not actually be human. I told them other stuff too, I think.\
    I didn’t have a lot of time to talk about the future, so I didn’t get to talk about identity vs. persona and my three categories of social networks… maybe next time. I’m pretty sure I scared the hell out of them when I talked about reputation stuff.\
    Some things I mentioned that either I didn’t put the URL for in the slides or didn’t have in the slides at all:

    • The quote from Jeremy Tanner about twitter spammers comes from his fantastic blog post – read the whole thing.
    • You can read The Cluetrain Manifesto online for free.
    • I talked a little bit about Seth Godin. His blog may be a little pat, but I’ve learned a lot about marketing and product development from his books.
    • My interest in reputation started with Cory Doctorow’s Down and Out in The Magic Kingdom. It introduces the idea of “whuffie” which captured my imagination. I hope to some day implement a real whuffie system online. I came really close once.\
      I think that’s it… hopefully the people who saw it enjoyed it and got something out of it. It was a lot of fun preparing it.
  • Epic iFail: AT&T and the Circular Phone Tree from Hell

    When I left AOL, I gave them back my Blackberry, and have since been either without a phone completely or using Jen’s bright pink Razr. I want a new iPhone, but waited a little while to get past the initial rush. Well, this afternoon was supposed to be the day. I called up the local AT&T store to see if they had any, and got a menu. Here’s what happened:

    • I pressed 2 to order new wireless service or hardware. Waited six minutes to talk to someone
    • Asked the guy who picked up if the Savannah AT&T store had any in stock. He asked me my zip code and then asked me to hold. I spent three minutes on hold (there’s a timer on the phone… handy).
    • He told me he could transfer me to the store. I then spent 8 minutes on hold.
    • I ended up at the original phone menu and pressed 2 again just for fun. I waited for 5 minutes before my head exploded and I hung up.\
      That was twenty-three minutes to go basically in a big circle. AT&T, you suck. I mean, you’re a phone company and I can’t dial a local number and talk to the local AT&T store? How stupid is that?\
      Thank you, AT&T, for wasting almost half an hour of my life. You’re the balls.
  • Nerdy Songs

    Jason posted a tweet about writing songs this afternoon and I must have been in a particularly suggestible post-nap state and instantly came up with several extremely nerdy song titles. I think almost all of these fall into to Nerd Country n’ Western, but whatever. Here they are:

    • I’m Semantic, But Wow, You’re Well-Formed
    • Since You Left, I’ve Been in Plain Old Semantic Hell
    • Why Do Our Tags Have to Branch?
    • If You Won’t Mock My Markup, I Won’t Jeer Your Scripts
    • What’s in a DOCTYPE?
    • I Sold My Soul to the W3C, and All I Got Was a Long-Sleeved Tee
    • Baby, It’s Not Really a Microformat!
    • Let’s Go Home and Append Some Child Nodes to Your DOM
    • If You Leave, All I’ll Have is Twitter\
      I’m sorry. I really am, but you’re welcome to add to the nerdy nonsense in the comments…