Studio711.com – Ben Martens

Geek

Delicious Bookmarks

For the last 11 years, I’ve been storing all of my internet bookmarks on a site called delicious.com. When you save a bookmark, you associate a bunch of words (tags) with it and then you can easily search for bookmarks via the tags again later. For example, if I want to see all the bookmarks that I tagged with “map”, I just go to https://del.icio.us/bwmartens/map.

Unfortunately the site seems to be dying. Yahoo acquired it in 2005 and it was doing very well until Yahoo went down the tubes. Ownership has changed a few times since 2011 and I’m worried that some day soon it’s just going to disappear. They got rid of the delicious.com domain and are now only available under their original domain: del.icio.us. That broke a lot of the apps and extensions that had been built up around the site.

The biggest concern to me was that their export functionality was gone. So the 2600+ bookmarks I had saved there were in a black hole. I need very few of those but I regularly use it to pull up old bookmarks with solutions to various problems, especially for issues I encounter at work. So I set off on a journey to figure out how to get the bookmarks exported by myself. That proved to be tricky because their API is now shut down. I couldn’t even write my own app to export the bookmarks.

I came up with two ideas:

  1. The pages of bookmarks are easily accessible via this URL format: https://del.icio.us/bwmartens?&page=2 so I could download each page and then write a program that would convert the raw HTML of the bookmark list into something readable by another app. I actually did download all the pages since it was pretty simple. curl.exe is a great command line tool for downloading HTML and I quickly wrote a batch file that downloaded all 200+ pages of HTML. At least I had something in case it died the next day.
  2. I eventually found a Chrome browser extension (Delicious Bookmark Bar Sync 1.1) that still worked and would let me export my bookmarks. It ended up saving them into the Chrome bookmark list (each tag becomes a folder) which isn’t ideal, but it is possible to export bookmarks from Chrome so again, at least I have something.

Now that I know I have a fairly easy way to export my bookmarks periodically, I’m still using Chrome. This doesn’t seem to be a very popular product category anymore so I haven’t found a lot of other options. Google Bookmarks is a similar service but they don’t allow you to bulk import bookmarks. That’s such an obvious feature that it makes me wonder if Google is going to kill off that product some day too.

If you have a good bookmark tagging solution, please shoot me a note!

2016 Fantasy Stats

I’m a data nerd and I love to dig into the fantasy stats a little deeper. Here are some records and stats from this season:

  • Austin had the most points this season from players that he drafted (1608.14). Tim had the least (1055.46).
  • Tim had the most points from players acquired after the draft (627.62). Luke had the least (76.1).
  • Logan made the most roster moves (37) and ended up first. Luke made the least (2) and ended up last. Hmm… the 37 roster moves by Logan were the most we’ve ever seen in one season. And the 2 moves by Luke were the least we’ve ever seen.

I did a quick calculation to see if the number of roster moves is correlated with your finishing rank. It isn’t correlated, but the average number of roster moves for teams that finish in 1st place (16) is slightly higher than the average (13) over all our previous seasons combined.

Dad asked for a rundown of our average finishes. I went back through 2012 which is when we started having the current group of teams and here’s what I came up with.

Team Average Finish Worst Finish Best Finish
Logan 2.4 6 1
Ben 3.2 4 1
Austin 3.8 8 1
Andy 4.2 7 2
Jim 5 8 2
Tim 5.2 7 3
Dad 6 8 3
Luke 6.2 8 5

And finally, here are the top players in the league for each position:

Player Position Points Owner
Aaron Rodgers QB 460.02 Ben
Matt Ryan QB 423.46 Ben
Drew Brees QB 406.32 Austin
Antonio Brown WR 258.96 Logan
Jordy Nelson WR 256.2 Andy
Mike Evans WR 256.1 Dad
David Johnson RB 367.8 Andy
Ezekiel Elliott RB 309.4 Ben
Le’Veon Bell RB 279.9 Austin
Travis Kelce TE 180.5 Luke
Kyle Rudolph TE 167.5 Tim
Greg Olsen TE 167.3 Andy
Matt Bryant K 178 Free agent
Justin Tucker K 175 Logan
Caleb Sturgis K 149 Free agent
Kansas City DEF 207.86 Austin
Minnesota DEF 193.89 Free agent
Philadelphia DEF 177.34 Dad

 

Facebook Purity

I’ve been slowly weaning myself off of Facebook. I waste too much time there and don’t get enough value out of it. The first step was to start unfollowing people. I stay friends with them but I don’t have their stuff show up in my news feed. The most recent find was the Facebook Purity extension for Chrome. It gives you all kinds of customization options to clean up Facebook and bend it to your will. For example, I have mine set to always show the stories in chronological order and hide any story with the word Instagram since I’ve already seen those posts in Instagram. I also have keyword filters set that hide anything with the words Trump and Hillary.

Facebook is beautiful now. Of course this only works when viewing through Chrome on my desktop but not having it on my phone just makes the phone app more repulsive and helps break the habit of clicking on it all the time.

Give it a shot if you’re a grumpy curmudgeon like me!

Media Center Rebuild

Our home TV set up runs on Windows Media Center. Our cable line comes into a PC and all of the DVR functionality occurs there and gets fed around the house to Xbox360s hooked up to TVs. For the past few weeks, it has started having more and more issues with basic playback. It stutters or pauses for long periods of time and it almost ruined our last football party. That PC is ancient. I bought it in 2006 and it has been running nonstop as our Media Center since 2010. I never touch it and it just works. That’s the way things should be. But given the problems we were having, I had to go take a look.

Pretty much as soon as I touched it, it totally fell apart. I blew the dust out of it and maybe I was too aggressive, or maybe it was just a few reboot cycles that did it in, but the thing won’t even get to the BIOS screen anymore.

Decision time. We’re so close to just cutting cable out completely. We only watch a few TV shows and those are easily purchased on Amazon Video. The small cost of those shows is easily outweighed by the convenience and lack of commercials to skip over. But as I thought more about it, technology isn’t quite ready to fit our needs. Specifically, the NFL is too tight with their content to give me many options. I want to be able to watch live NFL games or record them and start watching them and hour or two after they’ve started. There’s no online offering that I know of in our area which allows this. Our Comcast subscription does have a live streaming TV option that works well, but I can’t record that at all.

What about just getting a Comcast DVR like everyone else? We currently pay $71/month for a package that includes 120Mbps down 10Mbps up internet, very basic HD cable channels and HBO. The Comcast rep said that my package “doesn’t support a DVR”… how is that a thing? Anyway, getting a DVR would mean adding $30-40/month to my package price and then another $10-20/month for a DVR. And then I’d only have a DVR hooked up to one TV. I’d need two if I was going to have them on both TVs. Yuck. That’s never going to happen.

There are a lot of online offerings now like Sling TV, Direct TV Now, and PlayStation Vue. They all look awesome but I don’t see the local channels available in our area and the DVR offerings are spotty at best. We’re getting there but I think it will be a couple more years until my scenario is covered.

So in the end, we decided to build replace the current PC with a new one. I built one out with parts available at Fry’s for $340. That included a case, motherboard, CPU, RAM and a power supply. I already had an SSD for the OS, a hard drive for the recordings, and the cable card tuner to receive the Comcast signal. Here’s my shopping list at Fry’s:

  • Intel Core i3-6100 CPU
  • MSI H110M Gaming Motherboard
  • Enermax Ostrog Case
  • Thermaltake 430w PSU
  • DDR4 8GB 2400MHz RAM

The build only took 30-45 minutes and it booted right up. Then the trouble started. I need to run Windows 7 to use Media Center. The product has been slowly killed off since then and no longer exists in Windows 10. The problem is that the motherboard I picked had the Skylake chipset from Intel and the old Windows 7 install media doesn’t have the right drivers for that. The result is that you can’t use the USB ports on the machine. Umm… how do you install Windows from your USB key or use your USB mouse and keyboard to get through the installer if you can’t use your USB ports? Ugh. I’ll save you the long, painful story, but I ended up moving an old DVD drive over and putting the Windows install disc in there. I was able to get a USB keyboard to work just enough to make it through the installer and then I was able to install the drivers in Windows off of the mother board DVD. (This post was particularly helpful for adding drivers to the WIM files in the installer.)

I’m home free, right? Nope. Microsoft wants everybody on Windows 10 and it’s really obvious if you try to start with a fresh install of Windows 7 SP1. Windows Update won’t work for you. After gobs of trial and error and researching, I found this post which worked for me. It basically involves manually installing two Windows Update packs that update the functionality of Windows Update itself. After that it was just a matter of installing around 200 updates and THEN I was ready to go.

Media Center works great on this machine and even though it was about the cheapest PC I could build (without delving into totally unknown brands) it’s crazy fast. Windows 7 still has that “Windows Experience Index” feature. I ran it for fun and got these scores. Recall that the scale goes from 1.0 to 7.9.

  • Processor: 7.4
  • Memory: 7.9
  • Graphics: 6.9
  • Gaming graphics: 6.9
  • Hard drive: 7.9

I’ll be putting it through it’s paces over the next couple weeks but I’m hopeful that this will sit quietly in the closet for 3-4 more years until I’m able to fully switch to a more modern solution.

P.S. Did you know you can still get WEI scores in Windows 10? This post has the details but I’ll copy the instructions here.

Open a Run window (Windows Logo key+R), type perfmon and press Enter. Click Data Collector Sets > System > Right-click System Diagnostics > Start. When it has finished, go down to Reports in the left pane > System > System Diagnostics and click on the name of your computer and the data will be collected. Scroll down in the main pane and expand the Hardware Configuration drop down > Expand Desktop Rating drop down > Expand the + sign below Query, finally expand the + sign below Returned Objects to display your WEI score.

Smart Home

smartthingshubI’ve dabbled in the past with a few smart home devices like some Wemo light switches and the ecobee thermostat. One of the problems with home automation is that lots of different manufacturers are making cool devices, but they don’t all work together. There are some companies out there trying to bridge the gaps and one of them is Samsung with their SmartThings hub.

I’ve had that hub on my CamelCamelCamel price watch list for a while and one day I got a notice that it was half price so I jumped on it.

The device sits in your house and abstracts away some of the differences between the various devices. When you go through the hub, you get simplified functionality, but it’s consistent. For example, if it’s a light switch, the hub knows it can turn it off and on but it doesn’t know how to get your specific light switch hooked up to WiFi. You can kind of think of it like a universal remote.

The default setup is already useful. There are pre-loaded apps and routines to let you do things like “when you see motion on this device, turn this other device on”. That’s good but of course I wanted to dig in more and one of the reasons I picked this device is because they have a pretty good developer API.

You develop apps for the hub through a web interface in a language called Groovy. I wrote an app that logs events from my house (light switches on and off, etc) and another app that turns lights on and off in relation to sunrise/sunset with some randomness built in. It took me a while to figure out the available commands and learn the Groovy language, but it’s quite the interesting toolset once you get the hang of it.

My favorite use case right now uses the fact that our hub recognizes our Android phones as location sensors. So when Tyla and I are both out of the house, our thermostat automatically turns down a few degrees and when we get close to the house, it turns the thermostat back up. I think that one is actually going to save us money because we regularly forget to do that ourselves.

If you like to tinker with home automation, I recommend the hub. If you’re just a user who’s not going to write code, it’s probably worthwhile too, but honestly, if you’re not willing to tinker with your setup, then home automation probably isn’t your thing yet. We’re getting a lot closer, but the technology still has a way to go.

USB Charging Speed

fastchargingOur new Galaxy S7 phones have the ability to do 2 amp fast charging. It can take a 10% battery up to 90% in under and hour. That’s super convenient!

I’ve written earlier about how to test the amperage of your various chargers but it never occurred to me that your total amperage depends not only on the charger you’re using but also on the cable. All USB cables are not created equally! Most cheap cables are not thick enough to handle a larger current so you’ll only get 500mah or maybe 1amp charging with them. If your phone and your charger both support 2 amp (or even 3 amp) charging, make sure you have a 28/24 gauge USB cable.

This post on reddit explains a bit more if you’re curious.

YouTube Downloader

youtube-logo-drawnI watch a lot of YouTube videos. It has almost completely replaced anything that comes from traditional television in my viewing habits. The YouTube interface isn’t terrible, but I really like the idea of a DVR style interface where new shows automatically appear and then I can delete them when they are done. I want to be able to stream them to whatever device I’m on and remember my playback position in case I stop mid way. In true geek fashion, I have a technical solution (which I’ve partly described before.)

One of my computers runs a custom program that checks all of my YouTube subscriptions for new videos and then downloads them to my local computer. From there I can stream them to any of my devices via Plex. I thought about trying to package up that custom program because it would be useful for people like my parents who get free bandwidth between 12 and 5am but not during the day. This would allow them to schedule YouTube videos to be downloaded. But unfortunately my homegrown solution has gotten pretty complex over the years and it’s not super simple to package it up for re-use. Bad design I guess.

There are various programs and websites that will help you download local copies of YouTube videos, but the key here is getting something that can be scheduled to specifically solve my parents internet constraints. (Basically this is just an email to my Dad that I thought other people might find useful too.)

The good news is that the core of my solution isn’t too difficult to reuse. It’s a program called youtube-dl. It was originally just a python script but it looks like they have packaged it all up into a Windows executable now. You can get all the info along with their source code and the compiled executables on their GitHub site. (Look for the part that says “Windows users can download an .exe file…”)

Once you have that executable, you need to figure out what command line parameters to pass to it. I’m still using the straight Python version, but I’m guessing your command line would look something like this:

youtube-dl.exe http://www.youtube.com/watch?v=KDL2LcKnISU -f 22 -o “C:\kayaking.mp4”

Once you get that figured out, then you could schedule it via the Window Task Scheduler. That would be fine for one time video downloads. If you want to do this more often, then you’ll need to build up some automation around it to make it easier to use. I hooked into the YouTube APIs to get videos from my subscriptions and compare them with a list of videos that I’ve already downloaded, etc. I can provide more info if you want to go that far.

This all sounds crazy but it works really well. My setup has downloaded over 4000 YouTube videos over the years and most of the time I just plop down in front of the TV and watch whatever new videos have been placed there for me. I don’t have to think about the magic happening behind the scenes.

Chrome

chromelogoThe first web browser I ever used was Netscape Navigator. Sometime around the release of Internet Explorer 4 (1997), I switched over to IE and I’ve used that almost exclusively since then. Coincidentally, I ended up working with one of the guys responsible for the Trident engine which powered IE4 and is credited for giving it such a big market share over Netscape.

I’ve been on board with IE for almost 20 years, but now I’m switching away. It was great for a long time but it has atrophied in recent years. The focus seems to have shifted to the new Edge browser and while that is very fast and standards compliant, it also lacks a plugin model so I can’t use things like Ad Block Plus or LastPass. That’s a non-starter for me.

So goodbye Microsoft browsers and hello Google Chrome. It’s hard to find accurate statistics, but pretty much everyone agrees that a majority of users use Chrome with the remaining users scattered among IE, Edge, Firefox, Safari, and others. Chrome has a huge array of extensions available for it. My favorite are Ad Block Plus, Delicious, and LastPass. Of course if you include too many extensions, you’ll bog the browser down, but generally it’s very snappy and works with almost all websites. (There are still a couple old company intranet sites that require to me to use IE.) You can sign in to the browser and let it sync your favorites and extensions across your various computers.

Switching to a new program after two decades takes a little while to get used to, but I’ve been using Chrome for about a month and I don’t think I’ll be going back for quite a while unless Edge can really bring the fight to Chrome.

Power Over Ethernet

I dare you to try and buy just one security camera. That’s how it started for me. Now I have six. I might need an intervention.

The last one I put up was an “extra” that we had lying around after we upgraded one of the cameras to a newer 1080p. This old one is only 640×480 but hey, why not use it? I decided to stick it on the back corner of the house, but that meant a long cable run from my network closet and there’s also no power nearby. Power over Ethernet (PoE) to the rescue!

In your standard ethernet cable, half of the wires are unused. The PoE specification defines a common way of transmitting power over those extra wires. This means that instead of running a network cable to the camera along with installing a new outlet nearby, I just had to run a network cable.

You also need something to combine the network signal and the power on one end and deconstruct it on the other end. For the injection side, you can either get a standalone plug/ethernet jack combo thing or you can purchase a switch with PoE built in. I chose the latter since I’ll be using this more in the future. My WiFi access points are already PoE so I can get rid of the two injector plugs and switch them over to this unit. And while it’s possible to buy PoE versions of these cameras, I don’t have those yet so I had to buy a splitter for the camera end.

The hardest part was running the wire 40 or 50 feet under my house and even that wasn’t hard, just dirty and cramped. Elijah loves it when I go down there and always asks if he can poke his head in there too.

The end result is a really nice view of either the cul-de-sac or our back yard depending on which way the camera is rotated. It’s not going to do much for security, but it’s fun to see Elijah playing during the day while I’m at work or just get a little extra assurance that everything is ok while we are away.

backyard_7_31_2016 3_14_06 PM backyard_7_31_2016 3_15_09 PM

P.S. If you are interested in setting up something like this at your house, I have a post detailing my basic setup. You can get more posts by searching my site for “foscam“.

Facebook Data Retention

Many of us end up dumping a lot of information into Facebook. You might want to download that to have a local copy/backup. It turns out this is pretty easy to do. The Facebook help docs have these instructions:

  1. Click at the top right of any Facebook page and select Settings
  2. Click Download a copy of your Facebook data below your General Account Settings
  3. Click Start My Archive

It takes a while to generate your archive. You’ll receive an email when it’s done. Click the link in the email and save that file to your computer.

Now that you’ve got it all backed up, are you sure you want to leave it sitting on the Facebook site? I don’t. Deleting your data from Facebook is a lot harder than backing it up. They don’t provide an easy way to selectively delete data. Thankfully there are some tools to help you out. I like the Facebook Post Manager extension for Chrome. It’s not super fancy or easy to use, but it did the job for me. I wiped out most of my posts, shares and some of the photos from before 2016.

It takes a little while, but I think it’s worthwhile to not have that all sitting around. I’ve been doing the same thing with my email with MailStore for the past couple years. Did you know that until some time in the last year or so, no warrant was needed to read email that you left on the email server for more than six months?

In the big scheme of things, this probably makes no difference. There’s so much data about us out there already, that deleting my old Facebook posts doesn’t matter, but oh well, it makes me feel a little better. Facebook probably still keeps them around on their server but now random internet people can’t view them all.