Friday, November 30, 2018

Charger Town

I do think as a species we are capable of sensing much more than we are capable of articulating. - Jony Ive
I'm looking to upgrade Mrs.Chaos' 2011 MacBook Pro and it turns out to be a lot more fun than I thought I was going to be. I mean, there are some easy solutions if I'm willing to spending exorbitantly, but trying to be cost efficient in the process makes makes me take a train to complication-ville.
The first part is that the family Apple Photos library is on her current MacBook Pro. It is 680GBs of photos locally stored on the 1TB SDD I bought aftermarket and installed. To upgrade the MacBook Air 2018 model to have enough storage would be the 1.5TB option fo an additional $1,200 which doubles the price of the computer. Fun times, right? Since that is the only major storage item on Mrs.Chaos' computer, I think the right solution is to move to iCloud Photos and pay for the 2TB family plan which costs $120/yr. So basically, we could store photos there for 10 years before it would be more cost effective to put in the larger drive, right? Right.
The next change is the entrance into the world of USB Type-C which is exciting in a different way. The first way it is exciting is charging. Mrs.Chaos has three key computing locations: (1) office desk, (2) bed, (3) backpack (e.g. on the go) and so I need to have a charger option in each of those locations and the bed and backpack require a 6' charging cord. Here is where it gets "fun" - to charge a laptop, both the charging "brick" and the charging cable need to be able to deliver enough power. I have a lot of USB-A chargers, but just connecting one of those to the laptop with a USB-A to USB-C cable is not going to charge the laptop. The Wire Cutter has a good summary of which cables they found where able to correctly negotiate laptop-level power requirements. There are basically four potential specs that a USB Type-C cable could have that needs to be negotiated:
  • USB 2.0 or USB 3.0/3.1 - this impacts data speed and what devices work. Most important display capabilities.
  • Thunderbolt 2 or Thunderbolt 3 - this impacts data speed and what devices work. Yeah, these cables may or may not support sending Thunderbolt across which also have impacts to display.
  • DisplayPort - I have quiet figured this out, because this will either be DisplayPort over USB or DisplayPort over Thunderbolt. I don't think there is a separate spec for the cable on this one - but there is for the monitor. It's important to know if the monitor is a Thunderbolt monitor or USB 3.1 monitor.
  • USB PowerDelivery (USB PD) - this is required to be able to send high amp/volt power through to charge a laptop device.
    Simple, right? Also, I need the bed and backpack cables to be six feet (6') in length, which impacts things, because distance matters in the cables ability to send high throughput data.
So I think what I ended up with here was the desk can use the three foot (3') USB-Type C cable that comes with the Mac and the other two should use Anker's Cable. Now note that those cables are USB 2.0 they don't have Thunderbolt or DisplayPort, so they won't be able to carry video. Also, if we ever got a USB3.0/Thunderbolt peripheral this cables wouldn't work there either. Awesome, right? I thought so too.
From a brick standpoint, same basic idea, is that it needs to be able to carry enough current and you can't just go with wattage, because there is a wattage/amperage math thing going on here. So to toss in the bag I think it's that long cable along with an Anker charger. For the desk it would be the short cable and this HyperJuice charging hub which has the bonus of also charging a phone/iPad from the USB-A port.
Almost done, right? One final trip into dongle-town since this laptop comes with only two Type-C she needs a way to get photos off the SD Card, connect to the Cricut over USB-A, and connect to an external display (to watch movies) over HDMI. Once again, Apple is pretty expensive to get the three dongles required for this, so instead I think this nice little Satechi hub will do it.
I gotta say, that was pretty stressful.

Friday, November 16, 2018

Getting the Sounds Going

Technology is anything that wasn’t around when you were born. - Alan Kay
For most people I receive a lot of iMessages from I've setup a custom text tone on their contact. I've got a couple new people I needed to give sounds and I wondered, can I do this entirely on the iPad? Well, probably not, but let's get started.
I was asked to get a sound for "Mr Krabs" - which I'll admit, I didn't know who that was, and also Kermit the Frog's "Hi Ho." First step is to find a YouTube clip of sounds and download it using one of the web-based download services. I have found the best way to do this is get the URL YouTube, paste it into a YouTube download site, get the URL of the converted MP3 and then paste that URL into GoodReader to download. Trying to download/export directly in Safari don't always work well for me. Once the file is in GoodReader, I can export to Files / iCloud Drive.
The next step is to trim down the portion of sound that I want. No problems here, import the file into a Hokusai project for audit editing on the iPad and export it back out as a new m4a file.
So close, but sadly, I couldn't make it any further than this as I ran into two things that were tricky on the device. The first seems really crazy to me - you have to change the extension from m4a to m4r, and you would think that should be easy except the Files App doesn't let you change extensions on files. Ha! I did reading and searching and nope. The one work around people have suggested is there are some apps which will let you clone the file into the App's storage, rename the file extension, and then export back into Files. But, I cheated, and just used Screens to connect to my Mac server and rename the extension.
The second one I sort of expected. There is no way to take that m4r file inside of Files and add it as a ringtone on the device which could be tied to a contact. I tried messaging it to myself and messaging around in files - but nothing work. So for that too, I had to turn back to my Mac. I use a cool program called "WALTR" that lets you drop files on the Mac and have them wireless transferred over to the iOS device using the Mac's iOS sync APIs (without doing an iTunes sync) - and that worked like a charm.
Soo booooya! I got two new ringtones.
Update: Well, I actually added the ringtones to my Phone and then realized they weren't on the iPad which can also receive messages and calls. When contacts sync through iCloud it doesn't sync the custom ringtone files. I guess it's possible if I had Apple Music paid where my music files are in the cloud maybe it would? Anyway, I just used WALTR to plop them onto the other device and I'm good. Also I need to keep a backup of all the m4r files in iCloud

Wednesday, November 14, 2018

It's Glorious: The iPad Pro 12.9"

Apple’s nickel and diming costs a quarter now. - Peter van Broekhoven
When the Modbook came out in 2008 I looked on enviously at the tablet I wanted, but this year's iPad Pro 12.9" is so much better. It's big, I mean BIG, but also way lighter than one would expect. I bought my iPad without the Pencil, but after using it for a couple of days, I made an emergency trip to the Apple Store to get a Pencil 2. I had the Pencil on my wishlist, but I couldn't wait until Christmas when there were low odds someone would even buy it for - so I just did it. Now my setup is complete with a cool cheap 3rd party cover (using magnets) and the canopy case with the Apple Keyboard. The setup is so good to work on, but the other thing that is great, is that it's easy to just kick back and read on the iPad without the keyboard around at all. It's usually just leaned up on my kitchen counter without the keyboard all day to take quick looks.
What is it like as a developer trying to use the iPad? Not good, I'm way more efficient using my computer for a bunch of different reasons. The biggest issue is that I'm a massive multi-tasker between - Chrome, Slack, AirMail, Coda, Screens, Prompt, etc. and context switching on the iPad is expensive. Apps frequently get "pushed" out of memory and reset or take way to long to swap to context.
Past that, there are a few things you just can't do. So a decent portion of my mojo is using Screens to connect to my Mac to do Xcode development or other more complicated stuff.
It's when the simple stuff can't be done that's infuriating. I was sent an online tutorial which is a website: a zip file of HTML, CSS, Images. I can get it unzipped, but there is no way to load that on the iPad.
The other challenge I've had is being the technical lead on a team of people. It would be unreasonable that all my problem-solving mojo would go into developing crazy iPad flows rather than tools that can be re-used by the rest of the team. So while I could probably start smacking together Scriptable/Pynthonista/etc workflows to get a lot of stuff done, that won't help anyone else.
I think the reason this is so fun is that there will be very few times in your life you can, as a technologist, experience a technology coming into being and the iPad is one of the those times. So it's fun to work at the edges of the possible.
The next computer iteration I want to happen is where my phone (or maybe even my watch!) is the computer. I get close to my keyboard, trackpad, and screen, and BOOM it all wirelessly connects to my computer core and runs it.

Wednesday, November 7, 2018

Dongle Town

Having a bunch of ports facing me is totally a sin against the Church of Ive. - Stephen Hackett
Today my iPad Pro arrived and I went to restore the backup from my previous iPad Pro except, there was a problem. The new iPad Pro has a USB Type-C connector and my MacBook Air has a USB Type-A connector. The iPad Pro comes with a USB Type-C to USB Type-C connector, so that won't work. After sighing for a moment, I jumped into the car and headed to the Apple Store.
Staring at the wall of Dongle Town, I was hoping I would see a USB Type-A to USB Type-C cable. That would have been perfect, but there was no such cable on the wall. I sucked up my pride and grabbed and Apple Store employee to explain my dilemma. He wasn't sure. I pulled out my new iPad and my older MacBook Air and he stared at the wall of dongles for a moment and finally said, "let me grab someone else real quick."
With the new store employee coming over, he did the script, "This is Jordan, and he is trying to connect his new iPad Pro to his older MacBook Air." The new employee stared at the dongle wall... and finally said, "Umm, I actually don't think we sell anything that can solve this problem for you." To which I said, "That's not true, you sell those new MacBooks Pro and MacBooks Air which both would be able to do it...."

Friday, October 19, 2018

Keeping Things Secure

A good carpenter isn’t in love with his hammer. It’s a tool to do the job he loves. - Bill Atkinson
It was pretty cool to see a security alert fly in from Github that one of my projects has a security flaw. Like, that's awesome that Github is scanning through POM files (and probably NPM dependencies and other goodies) to detect libraries with known security vulnerabilities.
Github Security Alert
Since reformatting the home computers onto Mojave, I didn't have a home development environment setup, so I tried tackling this in a different way. I did all the updates on the iPad using Screen/Prompt back to the home server. It was a little wonky at times, but overall worked like a charm.  And now, I'm living in a patched world.

Tuesday, October 16, 2018

High Ground Advantage

Finally got the kid's iPads upgraded to the latest and greatest iOS which puts ScreenTime onto the devices and it's a pretty slick little tool. All the kiddos are too young to have iPad time where they are not being observed by their parents - so I don't need ScreenTime to tell me what they are doing - I KNOW. The kiddos use their iPads while I'm cooking dinner because it gives me enough peace that I make sure not to burn everything and cook a decent meal for everybody.
When cooking time is over, it's time to put down the screens and eat as a family. I'm the adult, and I win every time, but some nights it is frustrating for everyone. "Turn it off or I'm going to turn it off for you- and if I have to turn it off and you fuss you go to your room." Ugh... not fun, right? Because the times they aren't going to do it are the times they are tired, hungry, etc. and it just escalates.
ScreenTime gives me the +1 for high ground advantage. It's no longer me disciplining kids if they can't follow the rules, it shifted to them attempting to bribe me to give them an exception. That rhetorical shift is pretty dramatic in changing the tone of the situation and reducing the stress into getting the preferred outcome. Anyway - it's cool.

Saturday, October 13, 2018

Let’s Talk Numbers - Cost of iPhoneX

I had a semi-annual tradition of buying a new iPhone and selling my previous one on eBay. The past year I bought an iPhoneX outright and my wife bought an iPhoneX on the Apple upgrade plan and I thought to myself, “I am really excited to see how the numbers work out in a year when we upgrade.” The problem is - it’s complicated.
  1. Mr. Chaos - iPhoneX = $1,238.05
  2. Mrs. Chaos - iPhoneX + AppleCare+ = $56.16✖️24 = $1,347.84
Right off the bat it’s not Apples to Apples, because AppleCare+ for the iPhoneX is $249 which is part of Mrs.Chaos’ upgrade package but I didn’t purchase. So one year later, as I sell my phone back, how do I calculate the true cost? Here’s my best attempt.
Mrs.Chaos’ phone can either be looked at as the phone for 1-year or as the phone minus the accessories (charger, lightning cable, EarPods) - which are not returned to Apple:
  • iPhoneX Upgrade 1 Year: $619
  • iPhoneX Accessories: Lightening Cable ($19) + USB Charger ($19) + EarPods ($29) + Dongle ($9) = $76
I tried to sell my iPhoneX on eBay and hit a scam issue, but I can make some assumptions about the price:
  • iPhoneX expected eBay: $785
  • iPhoneX actual eBay: $525
  • iPhoneX Apple Buyback: $525
The price of the accessories is important because when you sell on eBay, you generally sell the accessories. When you do an Apple buyback, you don’t return the accessories - so there is value you keep.
Here are the numbers I think matter.
Item Math One Year Cost
iPhoneX 1-year cost with AppleCare+ 1-year cost $56.16✖️12
Accessories: - $76
iPhoneX goodcase on eBay iPhoneX: $1,238.05
eBay Sale: - $785
eBay Fees: + $101.57
iPhoneX badcase on eBay iPhoneX: $1,238.05
eBay Sale: - $525
eBay Fees: + $68
iPhoneX Apple Buyback iPhoneX: $1,238.05
Apple: - $525
Accessories: - $76
Even in the best case on eBay, if you wanted AppleCare+, the Apple program is the least expensive way to do it. What I found more amazing is that the Apple buyback program provided me a better deal the actual eBay case - even though in theory I could have done a little better on eBay.
What happened on eBay was I had a big at $525 at about 3pm. At 4pm a bid came in that moved the price up to $785, which was high enough to discourage any other bids. Then, with my auction ending at 5pm, at 4:59pm and 30s the high bid was cancelled buy the buyer and it sold for $525. I cancelled the sale which hits my reputation - but whatever.