Friday, January 5, 2018

Work From Home Difficulties

Yesterday we received over a foot of snow, so unlike previous years I decided to work from home.  It is nice that I have a space upstairs that is somewhat separated from my families, although it isn't in a room where I can close the door and I can hear all the goings on elsewhere in the house.  Thankfully I can play music while I work and this blocks out that noise.  The harder thing is trying to work on the 22" inch monitor at home, because it has about a quarter of the pixels of my 28" 4K monitor at work.  I immediately feel so claustrophobic and struggle to get used to the space.  The only other difficulty is that I only have Apple keyboards at home so my brain has to remap some of the key combinations. 

Thankfully we only get a few storms like this a year and for the most part I stick to working in the office.  I'm not sure if maybe I should practice more, by spending a day at home every other week.

Monday, December 11, 2017

iPad Pro Productivity Apps

Since buying an iPad Pro way back in 2015 I have come to rely on a few different apps for my day to day use at work and for my creative endeavors at home.
My Current Home Screen

Note Taking

I played around with a few note taking apps in the beginning, but settled on Good Notes 4 for a few different reasons.  First and foremost it has great Apple Pencil support and includes a neat feature that lets you lasso text and move it around, which is helpful if your writing style is a little messy and sparse.  My favorite feature is that you can import PDF files from a number of file providers like OneDrive, Google Drive, DropBox or in iOS 11 the Files app.  Once imported you can mark the documents up and then export them back to any provider you want.  The app has the concept of categories to keep you organized and has the concept of notebooks with all different types of paper to choose from.


iOS apps have always been sandboxed since day one and this limits the interactions you can do between apps.  In iOS 8 the concept of app extensions was introduced which let developers create extensions allowing one app to open content in a different app.  The Workflows app, which Apple bought within the last year, lets you do lots of different tasks across multiple apps.  You create a workflow and then using a building block interface construct a workflow that can get a distance from the Maps app and plug it into a prebuild text message for sending.  You can add data to the health kit app or do more complex things using web services.


Managing my web server from the iPad is done easily using Coda.  The app includes the ability to configure multiple FTP servers, with great text editing tools and an SSH client when you need to update something remotely.  The text editor supports lots of different syntax formats, which is useful when editing on your mobile device.

File Providers

I have my files spread across multiple file providers like DropBox, Google Drive, OneDrive and iCloud Drive. Once you install any of these apps the built in Files app will gain access to the files and you can quickly access them from any apps that properly integrate with Files.  

Miscellaneous Apps

Here are some other apps I use on a regular basis:
  • Ferrite - Podcast recording studio
  • Overcast - Podcast listening app
  • Microsoft Remote Desktop - Sometimes you need to access your Windows machine
  • Byword - Markdown editor
  • PCalc - A calculator because the iPad doesn't come with one, plus this developer has lots of easter eggs in it.
  • iMovie - Movie editor because my Macs are too old to edit 4K
  • Tweetbot 4 - My favorite Twitter client
  • Inbox by Gmail - Keeping the dream of inbox zero alive.

Monday, October 16, 2017

iCloud Photo Library Optimize Storage Issues

I was trying to use the Apple Clips app the other day to make a quick movie from some short ~10 second videos I had shot on my iPhone 6s an hour earlier.  I went to the Library tab, tapped on one of the videos and it popped up the "Downloading from iCloud..." progress bar.  It seemed odd that it had to go to the cloud to for such a recent video.  I was really curious so I went to the Photos app, went to a different video and tapped on the edit button to see if the video was stored locally, but it wasn't as I saw the little progress circle showing it downloading.

My iPhone has the "Optimize Storage" setting turned on for iCloud Photo Library and I have over 22GB of space available.  Is this a bug in iOS 11 or has something changed in how the "Optimize Storage" behavior?

Tuesday, October 10, 2017

World Mental Health Day: My Anxiety Story

Today is World Mental Health Day so I wanted to share my story about anxiety:

Four years ago, I went out to lunch like normal, but I started to feel nauseous and was unable to finish my meal.  Later in the day when I was in the office I felt dizzy and short of breath.  It was very strange since I had never felt this way before.  After this happening for a few more days I decided to go and see my doctor.  I was sent for a few blood tests and then wore a heart monitor for a day, but nothing turned up.  In my follow up appointment my doctor diagnosed me with anxiety and referred me to a therapist that specialized in the treatment of anxiety.

Prior to this I never thought of myself as somebody that would need to see a therapist, because I thought just being smart and strong would get me through any problem.  It was also surprising that somebody like me that is so outgoing and friendly would have anxiety.  However, at that moment in time I just wanted to get better and didn't think twice about it.  I contacted the therapist and after a brief phone screening had my first appointment.  The first few weekly appointments went as expected with lots of talk about my history, family and my current life.  It wasn't long though before the homework began and we started to tackle some of my anxiety issues.

My therapist follows the Cognitive and Behavioral Therapy ( approach for treating anxiety and doesn't prescribe medication.  So my first job was to figure out situations that made me anxious, like going out to lunch or visiting a crowded place.  We would then list out those things and then I would have to go experience them and afterwards document how I felt while doing them.  I think my analytical mind really enjoyed this type of feedback loop and trying to correlate map activities to their outcome.  All of the documenting was done using Google docs so I can go back today and see all of the different tasks I had to complete and all of the improvements and sometimes setbacks I faced.

After about a month I started to make progress with eating out at lunch and started to feel much better in general.  However, it turns out this was just the tip of the iceberg for my anxiety, because once we started to talk it became clear that anxiety had affected me in many other ways throughout my life.  I started to recall panic attacks I had at different large public events, small fears I had about checking into hotels, migraines from the anxiety associated with air travel (thanks TSA), meeting new people and many others I won't bore you with today.

Slowly over the last four years I tackled one problem after another and started to recognize my anxieties and then how to best deal with the situations causing it.  It hasn't been easy and I have definitely gone into more than one exposure that pushed me to my limit, but today I am so much stronger and happier because of my treatment.  I feel there is such a stigma associated with going to therapy, but it has actually made me open about the fact that I do go and how much it has helped me.  It has really changed my life and if you have ever considered seeking help, but were worried about what people might think, just do it!

Special thanks to my therapist, my family and of course my amazing wife for supporting me through all of this.

Tuesday, September 19, 2017

iOS 11 for iPhone

Today is the annual update all your iOS devices day, thanks to the release of iOS 11, watchOS 4 and tvOS 11.  I have been running the public beta of iOS 11 on my iPad for over a month and on my iPhone for about 2 weeks.  Here is a quick review of the biggest changes in iOS 11 for iPhone, because the scale of the changes on the iPad is too big for anything quick.

Control Center

The most dramatic change for the iPhone is the new Control Center.  You may not know its name, but  if you have an iPhone it is likely that you swiped up from the bottom of the screen to reveal a set of controls for turning on airplane mode, or most likely to use the flashlight.  It is the same area where you may have seen music controls when you were trying to find the flashlight and only after trial and error realized you could swipe right to find the page with the flashlight.

In iOS 11 the multi page Control Center is being replaced with a single page that is now much larger and contains lots of buttons of different shapes and sizes.  
It takes a while getting used to all the new controls and what they do, but after a week or so it becomes second nature.  Simply tapping on the controls will perform the expected action, but if you long press or 3D Touch on some of they will reveal a more detailed control.  For example, long pressing on the flashlight will give you three options for brightness.  


Not a lot has changed in the Messages app, but since it is used by a lot of people I wanted to point them out.  In iOS 10, the introduction of apps in Messages was a tent pole feature and they invaded the Messages app.  One downside to this was you had to do an extra tap to attach or take a pictures.  I know it doesn't seem like much, but it really annoyed me.  In iOS 11 apps in Messages are featured differently and as a result the camera is now only a single tap away.
Now instead of using an arrow button to reveal the camera, the text input field is a little smaller and the icons for the camera and app store are always displayed.  A new row of apps is always displayed to help encourage their use, but in a nice and subtle way.  My only gripe about this new interface is once you type a certain number of characters the input field grows and it always "startles" me as the display changes.

Live Photos

One of my favorite features on my iPhone 6S is Live Photos.  I almost always forget to record video of different events and it is so nice to be able to see a brief snippet of video that I "accidentally" captures.  I generally leave Live Photos turned on, because why not.  In iOS 11, Live Photos is getting a couple upgrades.  My favorite is the new Live Photo Effects: Loop, Bounce or Long Exposure.  I know these already exist in apps like Instagram and Snapchat, but it is nice to be able to apply these effects after they are taken.  
To access the Effects just slide the Live Photo up to reveal a live running example of what it will look like.  There is a slight delay as the effects are applied so be patient, but once they have loaded you can tap on the effect you like and the photo will be updated.  The first option is Loop, which tries to create a looping video that repeats over and over again.  The second option is Bounce, which will play the video forward for a certain amount of time and then reverse it for the same amount of time.  The last one is Long Exposure, which will basically overlay all the different frames together as if you left the shutter on your camera open for a long exposure photo, this works best for things like waterfalls or night shots.

Other Random Changes

Above are the changes I found to be most notable on the iPhone, but here are some more quick things you may notice.
  • Taking a screenshot will now show a thumbnail in the bottom right corner of your screen for a few seconds.  You can tap on it to mark up the thumbnail and choose to share it, save to Photos or delete it.
  • Screen recording is a control that is available in the new Control Center.  It is not in Control Center by default, but you can add it in Settings.  Once it is on you can record what you are doing on the screen and it will be saved to Photos.
  • Swiping down from the top will show the lock screen.
  • iCloud Family Sharing of data!!!  Now you can share your iCloud storage data with your entire family, so just spend $2 a month for 200GB and everybody will have plenty of space.
  • The App Store is completely redesigned.
UPDATE: Forgot to include Do Not Disturb While Driving, which will automatically turn on whenever your iPhone detects you are driving.  Any messages you receive will auto reply with a message that you are driving and the ability for the sender to resend with the word URGENT to bypass it.

Friday, September 15, 2017

Installing Apache HTTP Server on Windows and Proxying to Tomcat

I have been working on Tomcat web applications and have always just accessed the pages directly on the port that Tomcat is serving.  Now I want to put an Apache HTTP server in front of Tomcat so I can access this page next to other pages that aren't served by Tomcat.  Here are the instructions.

Since the Apache site doesn't provide Windows binaries of the Apache HTTP server they must be downloaded from a third party site, I used Apache Haus HTTP Server Windows Binary Download page. After downloading the zip file I unzipped it and put it into a directory on my system.  The first thing you need to do is open up the conf/httpd.conf file to modify the configuration of the server.  The only required change is to update the SRVROOT definition, which basically is the pointer to where the unzipped folder is defined.  Make sure to use forward slashes instead of backslashes in the path.  Save the conf file and then run bin/httpd.exe.  If it started up correctly you can go to localhost:80 in your browser and an example page should load.

By default the server will look in the htdocs folder of the Apache Server installation for the pages in the site, but if you want to store them in a separate location for easy upgrade of the server then you can update the DocumentRoot and also the Directory elements of the httpd.conf file to point to any other folder on your system.

As for pointing to Tomcat you will need to do the following:
1. In the httpd.conf file make sure to include the load the proxy_module and the proxy_http_module.  They should be included in the file, but may be commented out.  Just uncomment them and they will load.
2. Next in the httpd.conf file add you need to add a ProxyPass and ProxyPassReverse, which will map specific web applications to the URL of the Tomcat applications. These will look like: ProxyPass /theApp http://localhost:8080/theApp
ProxyPassReverse /theApp http://localhost:8080/theApp
3. Update the Tomcat server.xml file so the connector element includes a proxyPort attribute specifying that requests from port 80 are proxied.

Start both servers up and you should be able to access your Tomcat web applications on port 80 now.

Wednesday, August 23, 2017

Getting Video into iMovie on the iPad without iCloud

A few months ago I wrote a post, My Kingdom for a Local iPad Data Store, talking about how I wanted to be able to use iMovie on the iPad to edit my drone videos. The problem was that in order to get the videos into iMovie they had to be in iCloud Photo Library or in iCloud Drive, but I didn’t want them to be uploaded and then maybe downloaded from the cloud because they are large files. Over the weekend I had an epiphany and figured out how to work around this by doing some offline file shuffling.
  1. Turn on Airplane mode to prevent any internet connection from occurring.
  2. Connect a Lightning to USB adapter with an attached SD card reader to the iPad. 
  3. Insert and SD card into the card reader or in my case a Micro SD card. 
  4. The Photos app will launch and prompt you to do an import. 
  5. Import any of the videos you want and then choose to keep or delete them on the card. 
  6. Unplug the Lightning to USB adapter. 
  7. In the Photos app go to the “Last Import” album. 
  8. Tap the Select button to enable selection mode and select all of the videos. 
  9. Tap on the “Share” button (the box with the arrow coming out of it). 
  10. In iOS 11 tap on the “Save to Files” action and in iOS 10 select the “Upload to iCloud Drive” action. This will copy the file to iCloud Drive. 
  11. In the Photos app tap the Select button again and select all the videos and this time delete them. 
  12. Go to the “Recently Deleted” album and delete all the videos from Photos (just in case these would get uploaded to iCloud Photo Library).
  13. Now open up iMovie. 
  14. Create a new movie and import all of your videos from iCloud Drive. 
  15. Click Done to go to the Summary screen just to make sure everything is “Saved”.
  16. If you are using iOS 11 open up the Files app and if you are using iOS 10 open up iCloud Drive. 
  17. Delete all of the videos from iCloud Drive. 
  18. Go to the Recently Deleted view and also delete them from there. 
  19. Finally open the Settings app. 
  20. Go into the settings for the current user, which should be the top option. 
  21. In the user menu select iCloud. 
  22. In the iCloud menu you can choose which apps will save their data to iCloud. 
  23. Turn this off for the iMovie app. 
  24. Now turn off Airplane mode and you are ready to work on your movie. 
The iCloud Drive/Files storage part seems a bit excessive, but was necessary because any videos imported to iMovie from the iCloud Photo Library stop working if you delete them.  Importing from iCloud Drive/Files on the other hand puts a copy in the iMovie app's local storage.