Wednesday, November 30, 2016

Missed opportunity: Google Home + Google Wifi

I was considering a Google Home for my wife for Christmas--until I saw a Google WiFi commercial. How are these two products not (at least offered as) one device?

I could see the need for a supplemental Google WiFi that doesn't have Home bundled in, maybe, but can't really imagine the need for a Home that wouldn't benefit an existing home network by supplementing home Wifi. If nothing else, have a Home unit include dormant WiFi capability and, BAM!, next time I want to upgrade my home wireless network, the decision is practically made for me...or at least a much more attractive option.

Surely, as these two products were developed side by side, someone knew about both of them and thought about this. Now, I'm forced to wait and see if version 2 is a little better thought-out.

I've mocked up a little something.  Hopefully, the device can be made a little shorter.

Tuesday, September 13, 2016

Don't use ISP Provided Email!

Life Tip: Don't use ISP Provided Email!

Your Internet Service Provider (ISP) provides you with an email address. Don't use it! I mean, you can use it, but probably shouldn't. Odds are you will want to change providers at some point, and you don't want to be tied to that annoying ISP email. I've moved around a few times and, luckily, only used ISP mail for anything important (personal correspondence, recovery email, etc.) when I was too young to know better. While I've only gone through three ISPs since living on my own, I've moved 6 times, often switching between those three (in addition to being deployed twice -- once long enough to cancel my service while out of country). I think Cellular networks offer email addresses, too. Don't use them either, for similar reasons. You don't want to add any complexity to your option to switch cell service providers.

There used to be some advantages (mailbox size allowance, native email client compatibility, etc.) of ISP email over webmail, but they've largely gone away for most users. Your best bet is to get a gmail or outlook.com address and use it. I lease some domains and have been tempted to use a "@chapmanit.com" email primarily. That isn't a terrible idea if you KNOW you are going to lease the domain name for a while. I use that for business contacts related to my IT business sometimes, but still shy away from it otherwise in case I want to stop leasing that domain.

Sunday, May 22, 2016

How to set Contact Ringtone in Android Marshmallow (6)

I'm pretty good with these things, but this took me much longer than I expected.

Copy your (cropped to 30 seconds, with audacity or something) song clip to your phone's "Internal Storage > Ringtones" folder. You can use a file manger (not included -- I like ES File Manager -- and copy from your downloads or a network share or something) or do it by connecting your phone to your computer using a USB cable.

Open Contacts App > select contact > select pencil [edit] icon > select overflow menu (three vertical dots) > select "Set ringtone" > find your song clip!

In my defense

In all previous versions (up to 4.4.4, anyway, that I've experienced), it wasn't necessary to select 'edit' once viewing a contact to be shown the 'set ringtone' option. And, since ringtone wasn't one of the listed fields showing information about the contact, I didn't imagine that selecting 'edit' would show a 'set ringtone' option. It does. Now I know.

Thursday, May 19, 2016

Compress Your Home Videos Without Noticeable Quality Loss

While working on a project to allow video uploads from family members to my home server, I realized that my home videos were obnoxiously large. I took a three-minute video of my son acting crazy and it weighted in at 250MB. 15 years ago, I remember watching reasonable-looking, 2-hour long, movies that only took up 700MB. BluRay full-resolution (1080p) backups often look pretty good encoded to sizes between 1 and 2 gigabytes -- something is very wrong here!

I decided to perform a little research and conduct some tests to try and get my file sizes under control. I'd used Handbrake and ffmpeg in the past successfully, so decided to stick with those for this experiment.

The Short Version

Using the High Profile setting on Handbrake, setting Constant Quality (this is NOT the same as Constant Bit-Rate [CBR] and is actually a type of Variable Bit-Rate) to 22 and other default settings, I was able to encode a sample set of videos from multiple different recording devices ranging from low-light, flash-lit smartphone videos to sunlit family moments at a zoo taken on consumer recording devices to a much smaller file size! After deciding on h.264/AVC and trying a few constant quality settings, I settled on cq22 which reduced the size of the collection of files from 496MB to 132MB with no resolution change (resizing) and minimal visual quality loss (obviously, this is subjective). Success!

The Long Version

I can't help myself -- I have to research things to make sure I'm doing them the best possible way...especially if lossy encoding/compression is in the picture. As fast as technology changes, this must be done every few years and the best practice often heavily depends on the intended use.

Before you start...

Storage is cheap. If you have the room, you may want to just keep the original files (to negate the risk of losing data). If you have streaming needs such as myself, a second version for streaming may be a good idea to save your server and users some bandwidth at minimal quality cost. Also, for full disclosure, employing lossy compression (such as the method described here) does cost you "data." The thing to consider is whether the data lost is consequential, can be perceived, and could be valuable in the future. Additionally, is potential storage space gained is worth your time.

This can take a while! Especially if you want to perform some tests yourself to ensure my recommendations work for your video or that your eyes aren't more or less discerning than mine. Hopefully, you can figure out how to batch this process and put your computer to work at night or during long periods of, otherwise, non use. Using the Normal Handbrake profile will probably speed up the process notably, though I'm not sure what the resulting file size or quality trade-off will be.

My findings

I've compared the various containers and codecs in the past and, though I like free and open (vp8/ogg in a Matroska container) codecs and containers, I decided to go with tried and true for this test as I was interested in streaming home videos. My understanding is that using h.264/AVC and aac codecs in a mp4 (m4v) container is the most trouble-free way to prepare files for streaming using modern methods (html5) without the need for flash or multiple file encodes.

At first, I thought 2-pass encoding was supposed to be the best option based on some research I'd done in the past. That turned out to be a misunderstanding on my part. 2-pass is helpful when a specified file size is targeted (when your encoded movie has to fit on a CD/DVD, etc.), but not especially useful otherwise. For this project, Constant Quality (CQ - a type of Variable Bit-Rate[VBR]) encoding was employed as I was only interested in maintaining original subjective quality at reduced file sizes. Handbrake's High Profile and a Constant Quality of 22 produced great results for my batch of videos.

While I can discern (very) minor differences in some of the screen shot comparisons, they aren't noticeable in the video for me (mostly slight artifacting and pixelation, color variation, edge smoothing, etc.). If I planned on trying to use stills for pictures or something, I may use higher quality or, again, start with uncompressed video. Using 720 or 1080 stills as anything higher than a 3"x5" printed photo would likely look bad anyway.

How does it work?

Well, here is some speculation on my part...but since all my source files contained various types of AVC encoding performed by lower powered devices*, albeit with dedicated encoding hardware, they just don't have the power to encode optimally "on the fly." Either that or they use more of a CBR type of encoding...either way, there is room for improvement, even if it means re-encoding an already lossy encoded file to reduce storage space. The only alternative would be to try and configure any recording device to record uncompressed video and then encode it properly later, on a computer. This would avoid double lossy compression, but uncompressed video is remarkably large and would require tons of available space and very fast storage media. Likely, many consumer grade recording devices won't offer those options even if they were viable.

I can't stop myself...

...from encouraging people to back up their data. Presumably, you already back up your data. If not, you should start. $50/year will let you back up all your files with Carbonite...and it is really easy to use. There are likely other paid solutions that are easy to use and cost a similar amount per year.

I use a mix of various cloud storage solutions, network storage, and a usb-hdd. Google backs up all pictures I take (at lower resolution) and all videos (up to 1080) from all my devices and even makes fun little animations out of them that I enjoy. They also back up my music, I think. Most of my documents, code projects, etc, end up on my web server or cloud storage. I've written on backups before, so won't rehash...just make sure your data exists in no less than two locations to reduce the chance of data loss.

Recording Devices

  • Canon(?) DV Camcorder (Sent to computer using DV Capture)
  • Kodak Zi-8
  • Motorola Droid (OG)
  • Motorola Droid 3
  • Motorola Droid X2
  • Moto G (1st Gen)
  • Moto G (4G LTE)
  • Moto G (2nd Gen)
  • Nikon D3100

Screenshots for Comparison

I pulled screenshots with ffmpeg and the frames are off by 1 in half the comparisons...I know that makes it unfair. Sorry. I assure you this was accidental and not maliciously as to mislead.


This is the original still. Hover/tap to show encoded still. (sorry, mobile users, this doesn't toggle for you on second tap)


This is the original still. Hover/tap to show encoded still. (sorry, mobile users, this doesn't toggle for you on second tap)


This is the original still. Hover/tap to show encoded still. (sorry, mobile users, this doesn't toggle for you on second tap)


This is the original still. Hover/tap to show encoded still. (sorry, mobile users, this doesn't toggle for you on second tap)


This is the original still. Hover/tap to show encoded still. (sorry, mobile users, this doesn't toggle for you on second tap)


This is the original still. Hover/tap to show encoded still. (sorry, mobile users, this doesn't toggle for you on second tap)


This is the original still. Hover/tap to show encoded still. (sorry, mobile users, this doesn't toggle for you on second tap)

My take is that there are (mostly, minor color) changes such as shirt color, bright spots, etc., but they are more akin to contrast adjustments, white balance settings, or saturation levels and have no meaningful impact on the viewing experience (especially video) as far as I'm concerned.

Land the Plane!

My wife'd not be happy if I posted the source videos here, but with the stills for comparison, and the very little variance there, you can imagine that the videos look even less changed after the encoding. I'll be re-visiting all my old home videos one folder at a time (starting each batch before bed), and spot checking them the next day for quality control. Hopefully this post will help if you are interested in compressing those home videos to more reasonable sizes!

Wednesday, August 5, 2015

No Network Adapters after Windows 10 Upgrade

I upgraded a few machines to Windows 10. I used a preview and didn't mind it, so thought I'd take the plunge. All had gone well enough until I upgraded a machine and then had no network adapters. I assumed drivers were needed, but everything looked good under device manager. I updated them with drivers from Lenovo anyway. Still nothing...no wireless or wired adapter visible.

I googled and found this, which looked promising: Fix No Wi-Fi Available After Windows 10 Upgrade Issue, Here’s How

I followed the steps and the first one seemed to take, but the second definitely didn't, and the problem remained.

Then I saw this discussion: Network Adapter missing after automatic windows 10 update

...near the bottom, someone mentions that they had to locate the key in regedit and delete it there, as opposed to doing it through elevated cmd. I tried that way and it worked. THEN I ran the second command from the first link and it succeeded and immediately fixed the issue. I restarted just in case.

I can't add a screenshot since I already did it, but you can browse to and expand HKEY_CLASSES_ROOT>CLSID, then delete the 988248f3-a1ad-49bf-9170-676cbbc36ba3 key and subkeys. Back up your registry first to be safe. Searching for '988248f3-a1ad-49bf-9170-676cbbc36ba3' may be faster if you can copy and paste. Good luck!

Wednesday, April 8, 2015

GPL vs MIT | a very rough comparison for those familiar with Creative Commons Licenses

So I googled GPL vs MIT for some reason or another and read a couple of stacker overflow "discussion" and scanned a few reference links and have come up with this, which may help anyone familiar with Creative Commons licenses.

  • GPL ~= CC BY-SA (Credit the work of others, Share-Alike. If derivative work is distributed to others, software must use same license.)
  • MIT ~= CC BY (Credit the work of others. Derivative works can use alternate licensing.)

Notes

On the CC site, they recommend not using their licenses for software, even though the Gnu licensing site states it as an option of other licenses don't fit the author's licensing needs.

Links

Google Auto Backup | high processor utilization

Google Auto Backup, Quit Making my Fans go Crazy!

I use Google Auto Backup at the reduced (2048x) resolution for an unlimited quantity tertiary backup. I already keep things saved and saved at full resolution, but it is hard to say "no" to another level of backup with minimum hassle. Plus, the auto-awesome animations (animated gif files) are actually usable pretty often, even if they aren't as honed as when I spend 30 minutes to create one myself.

Back to the topic, lots of times Google Auto Backup's process hangs or something and pegs out one core of my processor at max utilization for an indefinite period. I feel like it prevents the machine from sleeping, which is a pain. My cooling fans sporadically spin way faster to cool the processor which is working so hard...it is just a noisy mess. I'm not alone in this problem, it seems (https://productforums.google.com/forum/#!topic/picasa/8l5p8I6Ilu8). In the past, I've just killed the process and manually restarted it when I needed or restarted the computer to get it going again. That gets the job done, but I've often wished for a more elegant solution.

A More Elegant Solution

I can't make any promises, but in 1 of 1 test scenario, the following "fixed" the issue for me, albeit temporarily [i only upload pictures to my computer every few days]:

  • right-click the auto backup icon in your system tray
  • selct the 'view failed uploads' option
  • select 'retry'
  • assuming the retry is successful, you should see an immediate drop in processor usage, I hope

That's it. Let me know if this does't work for you. I'm writing this on memory (I don't have a "failed uploads" option in my right-click context menu because I have no failed uploads, currently. If you don't have failed uploads, but are seeing high processor utilization by the Google Auto Backup process, I've given bad advice or you have a different problem. Either way, I'd like to know.

Thanks for reading!