Sunday, February 04, 2018

Creation Crate Crashes macOS X Sierra or macOS X High Sierra


Background (If you just want to find out how to fix it scroll down to the Solution section)

So Creation Crate is a 12 month subscription service where they send you a package containing hardware to build interesting electronics devices.  It also requires coding. They give you the code to type into their app or you can download the source files from their website.  If you are interested in teaching your child basic coding I recommend having them retype it in from the instruction book.  My son was excited enough he did this diligently and then we spent a few minutes fixing syntax errors the compiler found.  It was a good learning experience about programming basics and debugging syntax errors in my opinion.

What They Don't Tell You Upfront

So first, all these projects are based around an Arduino Uno board as opposed to a custom Creation Crate board, so you will be using the Arduino IDE software to program it.  I'm a big fan of Raspberry Pi and wasn't really invested in also learning Arduino hacking but since everything is packaged together, in theory, you don't have to become an Arduino expert or hang out in Arduino forums.

I figured to save on costs the first kit would include the experimenter's breadboard and the Arduino Uno and the other 11 kits would just include the hardware specific to them.  It turns out they send you a new Arduino and breadboard with every kit.  I guess they don't want you to have to tear apart your previous project to build a new one.

I did find where I believe they are getting these items at a very low cost:



Drivers?

So here is where the problems start.  In order to run this on a Mac you need to install drivers (think printer driver or scanner driver… basically a small program that tells your computer how to recognize and talk to a hardware device).  Creation Crate gives you a location to download the macOS X drivers.  It's called the UNO R3 Driver and they give you this URL (password is given in the documentation but I won't post it here)   The only problem is that driver is dated November 1st 2015.  Now it's my understanding this will work with most Mac OS X versions, but not the latest Mac OS X 10.13 High Sierra or 10.12 Sierra.  And that's the crux of the problem.

Issue Description

So what does happen?  Well I've tried on two different Macs and saw somewhat different behaviors.

On my MacBook Air it never gave an option to allow the driver to run in the Security & Privacy System Preference settings so I believe it installed the files but they weren't allowed to ever run.  So in the IDE you use to enter the code and upload it to the Arduino board, the board simply never was seen and it basically said there were no devices plugged in.  (BTW contact customer service about this and they will say it is probably a bad USB cable.  I tried several different cables with the same results of course.)

On my son's Mac mini the drivers did install and I did get an option to allow them to run in the "System Preferences"->"Security & Privacy"->"General" control panel.  A button specific to this driver appeared that asked me to allow it to run.  This was closer to the procedure I expected.  So now after restarting when I plugged the Arduino board in to the USB cable the computer would immediately crash, shutdown, and restart.  This is what most people are seeing.

Solution

Well you need a newer driver.  Creation Crate as of the writing of this blog on 2/4/2018 is not aware of this yet and is not supplying it.  Luckily an updated driver is available for download on GitHub.  You can find the repository here with a detailed ReadMe.

Assuming you've already install the old drivers and experienced the crashing of your Mac you'll need to remove them first, which requires using the Terminal/command line.  I had to use the following command:
sudo rm -rf /Library/Extensions/usbserial.kext
Then from the repository I downloaded the CH34x_Install_V1.3.zip file and ran the .pkg installer it contained.  Then I restarted, and I was able to upload my program to the Arduino board just as described in the Creation Crate instructions.  All of this is detailed in the ReadMe at the link I gave above.

Thanks to Adrian Mihalko who setup the GitHub repository with the new driver and wrote the documentation describing how to use it.

Keywords: Mac OS X macOS High Sierra macOS Sierra

Friday, January 19, 2018

iPhone Activity App Sending Messages to the Wrong Person

Since my wife and I got Apple Watches for Christmas and are trying to get healthier we started sharing our activity data.  You are supposed to be able to message each other through the Activity App by tapping the message icon shown below.



However, something odd happened when I did this.  The message did not go to my wife it went to me!  Clearly a bug but how to fix it?

Turns out if you and your wife, say, have the same home phone number and that number is the first phone number on your contact card the Activity App decides you are the desired recipient.

Simply delete that number from you contact card and if you still want to have that number on your contact card, add it to a spot that isn't the first spot.

That solved the problem for me.  Now I'm off to file a bug report to Apple.

Tuesday, December 01, 2015

GarageBand for iOS (iPad and iPhone) Length of Recording Limit

Recently (and with about 6 hours notice) I was told I would be recording a concert that lasted from 2 to 3 hours in length.  I'd be given a line level output from the main mixer to tap into but it was up to me to supply the method of recording.

It had actually been several years since I needed to record something more than 30 minutes and more importantly away from my home equipment (I usually just record into my computer).

I have a stereo  line level input into an iOS device via my Blue Mikey microphone.    But what software would record for multiple hours?

I decided to test out GarageBand.  I found that it ran out of space after 320 bars.  Assuming the minimum tempo at 40bpm, 4 beats to a bar, that means 32 minutes maximum recording time.

I ended up using the free Spire Recording app for iPhones (works on the iPad but scales up, so when searching on the app it shows up as an iPhone only app).

Just a quick post in case you find yourself in this situation with a short amount of time to prepare.

Update:  Turns our Spire Recording is limited to one hour of recording, so that didn't solve my problem.

Thursday, July 30, 2015

A Few Months with the Apple Watch

As a registered developer I was able to get an Apple Watch on the first day it was available when most of my friends were still waiting for theirs to arrive. Now that I've had it a little over three months I felt I should write my thoughts about it.

I have the sport model and it came with the light blue band. I keep saying I'm going to replace the band with something nicer but haven't yet. It is quite a conversation starter as strangers still come up to me and ask if that's an Apple Watch or if I love it. I love it. There I said it. Is it worth $400? Only you can decide that. Unlike a phone or a computer it isn't a necessity. It's a nice to have but if I took it off I would really miss it.  

When I am sitting at a restaurant I no longer take my phone out of my pocket and set it on the table because if anything important comes in (message or email) my watch will let me know, I glance at it, and can decide if I need to reply (rarely) or just enjoy lunch.  

I use it on my bike rides to watch my time and milage. That's been a really nice addition to my workouts. I also use it to remote control my music while I'm riding on my bike (I have speakers on my bike, yes really, because headphones in traffic are dangerous) although the screen for the music controls is small enough when you are moving and sweating I often have to try a couple times before the skip button activates.  

It's comfortable. I was worried it might be too big for me but it really isn't. Have you seen how ginormous some of the other smart watches are? This one is fine. I love having the current temperature and weather info on the watch face. Whenever I check the time I also know the outside temperature. Living in Phoenix it's nice to know when it's over 110ยบ before you walk out the door for lunch.  

The analog faces are beautiful but the full text face displays more information more efficiently and that's more important to me than looks (I know and I'm and Apple user... go figure). I've answered calls with it when my phone was near enough for Bluetooth but not near enough to get to in time (say it's downstairs and I'm upstairs, yes I had it work that far away.) Obviously the speaker is tiny so you can have a fine phone conversation on it in a quiet environment but that's it. Outside with even mild wind or a small amount of traffic is enough to cause you to not hear the speaker.  

Siri is pretty good at letting me dictate text messages on it. There's no keyboard so aside from some canned responses (i.e. yes, no, I'm driving, etc. that you get to customize with the phone app) you have to dictate texts, which works better in quiet environments where you don't mind people hearing your asinine text messages.  

I scratched the face within two weeks of owning it. I know someone who works in a mechanics shop who wears their watch while they work (so they get phone calls and important messages) who has the sapphire faced model and he hans't scratched it yet so it does seem the sapphire makes a big difference.

Apps I tend to use: Alarms, stopwatch/timer, Workout, Music, Remote (for AppleTV), Shazam (which is slower on the watch), Weather, and Maps/Navigation. When you are using turn by turn directions on your iPhone your watch gently taps you three times when a turn is approaching and the watch will display what you need to do (turn left, right, etc) That alone is very cool because it's not as distracting as looking at the phone screen display. When I'm driving now with navigation I never look at my phone anymore.  

Oh and yes, the "taptic" feedback is pretty brilliant. You know how your phone vibrates and it's somewhat disconcerting? The taping is so gentle it feels pleasant. It's true if you are in an environment that's bumpy (jogging, riding a bike, etc) you might not feel a tap. But most of the time I feel it. And that's another nice thing. I often miss important text messages or even calls with my phone in my pocket without the watch but the watch is much better at subtly getting my attention. I rarely miss any important emails, message, or calls now. And I choose which email accounts notify me (only my most private one) so I don't get alerts from my accounts that get spam.  

Ok, that's enough for a blog post.

Friday, January 30, 2015

Storing and Backing up Large Amounts of Data for Photos and Videos

Recently a professional photographer and graphic designer friend of mine asked me about storage and backups of her projects.  Like most things there are a range of options from inexpensive to very expensive.  I try to cover them here.

The least expensive option

The first step most people take is to simply purchase an external hard drive (preferably USB 3.0) and plug it into their computer.  For projects they are currently working on they usually keep them on their internal storage and use the external drive to backup current work (using Time Machine on Mac OS X, File History on Windows 8, or Backup and Restore on versions of Windows prior to 8) and to archive off projects that they are no longer working on.  This would mean you have two copies of your important files.  One on your internal hard drive and backups on your external.  If one drive were to fail, you still have your files on the other drive.

All hard drives fail at some point, it’s just a matter of when

Now most hard drives will last a few years as a minimum (although I’ve had several fail in the first year while still under warranty) and I’ve had some last over ten years under nearly constant use.  However, they will all fail someday.  So in the previous paragraph I talked about using a single external drive to archive your old projects.  At some point you will probably need the space on your internal hard drive for new projects and after archiving your old ones to the external drive you will delete them from your internal hard drive.  But that means your project is now stored on only one hard drive which at some point will fail.

Now you might be thinking, “What about those backups I made?”  Well it’s true you can use the backups to restore files you’ve deleted from your internal hard drive later.  But there are a couple of caveats to this.  First, depending on how old your backups are (and how big your files are) there is a good chance your backup software has had to throw away older backups.  My computer warns me when this is happening and I usually have enough space to go back a year before it starts deleting old backups.  This means if you wanted to restore something from over a year ago you no longer have it, so that can be a problem.

Now, you might be thinking, “Ok, so what if I have a huge external drive (say 3TB) and a small internal hard drive (say 256GB) so I will never have old backups get deleted.”  Ok, fair enough although in our example we are talking about large photography projects so the chances are good you will fill up multiple 3TB drives as the years go on.  The problem goes back to “All hard drives fail at some point.”  You have two copies of your files (the ones from the automated backups and the ones you copied to archive them) but they are on the same hard drive just in different places on the file system of that hard drive.  You only have your files on a single hard drive, so when it fails, you lose both of your copies.

So if you are going with the most inexpensive route by simply buying an external USB hard drive, make sure when you start archiving your projects to it off of your internal drive, you buy a second one and also copy your archived files there.  Basically at a minimum make sure any file you may want to have at a later date is stored on two different hard drives at all times.  Either your internal one and your external one, or two different external ones.  That’s your minimum cost solution.

External hard drives of this type are usually around $120 to $200 depending on the size and if they support USB 3.0. Of course, USB 3.0 will become more of a common feature as this article gets older.  Interestingly external hard drives haven’t really fallen in price over the years but the capacity you can get for the same price has increased.

Note about hard drive shelf life
Hard drives (well, non-SSD ones) use magnetism on a spinning platter to store your data.  Bear with me I won’t get more technical than that.  Unfortunately magnets lose their magnetism over time.  There are no hard and fast rules but some people recommend checking your files or even copying to a new drive every 5 years.  What is a bit more concerning is some people who work on hard drive firmware have hinted that as the drive is used, in the background it will rewrite/refresh the data stored on the magnetic platter implying that if the drive is sitting on a shelf not powered on you do not get this benefit of have the data refreshed automatically.  I’ve actually contacted both Seagate and Western Digital and asked if this is true and what they feel the shelf life of their drives are and if simply powering them up for a while will activate this automated refresh action but neither company has responded.  If someone from a hard drive manufacturers is reading this blog, please feel free to let me know. 

Network Attached Storage or NAS


This is the next step up and is what businesses and professionals would use.  Network Attached Storage (NAS) is actually a small computer/server but designed specifically to host file storage and hold two or more hard drives and make them available on the network.  Note there are some NAS products that only house a single drive but that means they cannot even enable RAID protection (explained later) so if you are going to spend the money on a NAS make sure it supports at least two drives and RAID 1.

An example of a NAS device that holds two hard drives.

NAS drive arrays start around $300 and can go up to several thousand depending on how many drives they hold.  Also when shopping for a NAS device often they will be priced without hard drives, so make sure if you buy just the NAS you also plan to buy at least two hard drives.  If you purchase a NAS with four bays for example, you don’t have to fill all the bays.  A minimum of two will allow you to turn on RAID 1 and you can use the other bays to expand later.  

Remember that these connect through the network so you’ll need to think of where you have a wired network connection to plug them in.  Although if connecting to a single computer they usually offer USB and eSATA connection options.  

Example of a good NAS and price
In my opinion for a quality vs price, I think the Synology  DS415+ (with no drives) and Western Digital RED hard drives (RED is their most reliable model line made for businesses/enterprise) hits a sweet spot.  At $600 for the NAS which holds up to 4 drives and two 3TB Western Digital Reds at about $120 each you are talking $840 as well as two more bays to expand later.

When is a NAS more than a NAS?
Although not a consideration for me as I have a dedicated server in my home that handles things like file sharing, VPN, DHCP, and other server related tasks it’s worth mentioning that because a NAS is really just a small computer with a lot of hard drive space some venders include additional functionality.  Synology for example offers app downloads to enable all kinds of extra features on their NAS to provide other services.  For example it can be a firewall and router, a VPN server, a media server, web server, etc.  If you don’t have a server and this type of capability appeals to you check out the apps/features that the disk vendors offer.  To review Synology's app store you can go here: https://www.synology.com/en-us/dsm/app_packages  Drobo, another NAS manufacturer, offers their app selection here:  http://www.drobo.com/drobo-solutions/drobo-apps/ 

What is this RAID of which you speak?

Ok I could write a whole article about Redundant Array of Inexpensive Disks (RAID) but that’s been done:  http://en.wikipedia.org/wiki/RAID

The basics is it is a way of writing data across multiple hard drives so that if one hard drive dies there is duplicate data on the other drive(s) that makes sure no data is lost.  Of course you want to replace the failed hard drive ASAP so it can recopy the data before another hard drive fails.  

There are several RAID configurations.  Some are for redundancy (the point of this article) and some are for increasing the speed of getting and saving data (not really our goal here.)  The simplest RAID (that offers any data protection/redundancy) requires two hard drives.  It’s called RAID 1 and basically one drive mirrors the other one.  There is a downside though.  If you have two 3TB drives, you actually only have 3TB of available space.  Instead of adding the space giving you 6TB total it’s hides half of the space and in the background duplicates all the data across both drives.  As you add more drives you have more RAID configuration options but mostly you should assume you will lose half of your storage capacity to RAID.  RAID 5 offers a parity method of duplicating the data that only requires 1/3 (instead of 1/2) of the storage space to backup the data.  It requires at least three drives so with three 3TB drives you would have a total of 6TB of space available however it also requires occasionally rebuilding the array and if an error occurs during this rebuilding it can result in dataloss.  RAID 5 is generally being recommended against as hard drive capacity is increasing, the amount of time to rebuild is increasing, and the chance of errors during a rebuild are growing.  RAID 6 and RAID 10 are the most recommended/reliable options, however they require a minimum of four drives and are back to using half of your storage like RAID 1 does but they offer considerably more redundancy (for example, you could have two of four drives fail and still not lose any of your files.)

RAID is not the same as a backup

Don’t think if you buy a single RAID drive you’ve covered all your bases.  RAID arrays protect you from drive failure.   They do not protect you from user error.  

Have you ever made a change to a document and meant to click Save As… to create a new copy of that document but instead clicked Save which wrote over the previously saved version?  Or mistakenly thrown away a folder of old files thinking it was a different folder only to find later you no longer had some important document.  RAID won’t protect you from these kind of mistakes.  Backups can restore overwritten and deleted files, RAID cannot.  So simply getting a RAID isn’t the full answer to the problem.  

What about the cloud?

With increases in internet bandwidth the idea of saving your files outside of your computer or your own hard drives is becoming an option.  Initially too expensive to consider it is dropping in price rapidly and some cloud services off native apps for your computer that make cloud storage as easy as having another drive connected.  DropBox is one of these.  However they offer 1TB at $10 per month (or $120 per year) or 5TB at $750 per year.  Those prices are still high enough I’m not ready to consider using those services as a full time storage or backup option.  Also while we have relatively fast internet in most developed areas, retrieving and uploading/storing large files will still be much slowing than internal to your own computer or network and I have a monthly 250GB cap on my internet data usage, so backing up a 3TB drive to the cloud isn’t really an option for me through my current internet provider.  There is also the issue of security.  Once you put your files on someone else’s server you don’t have control over who might see them.  This won’t be the last cloud hack we hear of.

Summary

An external USB 3.0 drive is a great home/low cost solution.  If you want to protect your files and they are not stored anywhere else (like on your computer) you should get two drives and use one to back the other one up.

NAS is a more professional and expensive solution.  If you are editing and saving video or using it for any kind of professional work you probably want to go with a NAS solution that handles multiple hard drives in a RAID setup

Cloud is always an option but can be slow and get expensive depending on how much data you need to store.  You also might not be able to be 100% sure no one else can ever get to your files.

RAID is not a backup.  Even if you have an expensive NAS with lots of drives in a RAID configuration you aren’t protected against accidental events like deleting the wrong files.  Even with a NAS solution you should have a backup solution which means either the NAS is backing up files you have on your computer or if the NAS is the only place the files exist then even jst cheap USB 3.0 drives can be used to backup the files on the NAS.  Cost no object two NAS drives, one a primary and one that could be used to automatically backup your computer and your other NAS would be the most failsafe solution.  Rule of thumb: Make sure you always have two copies of every important file stored on different physical hard drives.

Sunday, March 30, 2014

DVD or Blu-ray Slideshow from iPhoto

Ok, so you’ve got a Mac and you want to make a DVD slideshow.  You’d think since Macs are so video oriented this would be easy.  The truth is as Apple has migrated away from DVDs (and optical media in general) this has actually become more difficult.  You cannot even purchase iDVD anymore which was a good way to make a slideshow.

In this blog post I tell you how to create a slideshow that can easily be played in a DVD player using only your Mac.  Unfortunately my method does require that you own a copy of Toast.  It doesn’t have to be the latest version but it is needed to encode the video for DVD (or Blu-ray) and of course you need a DVD (or Blu-ray) burner to actually write the optical media.  Alternately you can use the free Burn application found here http://burn-osx.sourceforge.net/Pages/English/home.html although it doesn’t support Blu-ray.

First setup the slideshow

Select the photos or album (or an Event, a Faces or Places group, or a project such as a book, card, or calendar) you want to add to your slideshow.  Note that you can manually order the photos in an album or sort them by different criteria and the slideshow will show them in that order.

You can see in this screeenshot I have created an album entitled LOL Cats and placed some images in it.


Now that you are viewing the album you want to make a slideshow of go to File->New Slideshow.


Now you’ve created a slideshow with your images.  There are several settings we want to tweak, however, to optimize our slideshow for a DVD.

First, let’s choose our Theme which will have some default settings that we will then change.  Click the Themes icon in the lower right of the screen.  The Theme selector should appear.  By default Ken Burns is usually selected.  


This is a nice slow pan and zoom effect for each slide, however, usually when dealing with slideshows you want to put on a DVD you will find that when the images are stylistically zoomed in it crops your pictures too much, often leaving the heads off from pictures of people, for example, and zooming towards their feet.  So instead we will choose Classic as our theme.


In this example I am not going to use music but you can always specify a soundtrack if you want to. One is usually selected by default so let’s turn that off by clicking the Music icon in the lower right corner of the screen.  When the window appears, deselect the Play music during slideshow.  Then to save that setting make sure to click the poorly named “Choose” button even though we didn’t really choose a song to play.


Now we want to fine tune the settings that are defaults for the Classic theme.  Click the Settings icon in the lower right side of the screen.  Now you should see the Settings window.  Note that there are two tabs at the top, “All Slides” and “This Slide.”  We want our changes to apply to All Slides so make sure that tab is selected.  


The first thing we will do is change the slideshow time to 5 seconds which is more reasonable for a DVD.  You may even want to go longer depending on your audience and subject matter.

I personally like the Dissolve transition so I am going to enable it here and keep the speed at the default.

By default it creates a Title Slide as the first slide and displays the name of the Album.  You can edit the text on the title slide but in this case I’d rather not have one so I’m going to uncheck that.

Repeat slideshow doesn’t make sense here as we will be putting it onto a DVD.  If we want it to repeat their we will have to set that in the DVD burning software, so I’ll uncheck it here.

You do not want to select Scale photos to fill screen as it will zoom the photos so there are no black bars around them but that means the sides or top and bottom will usually be cropped which in almost all cases is undesirable.

Lastly it’s very important to choose the correct aspect ratio.  Since this is going to be a DVD chances are you will be playing it on a newer 16:9 (widescreen) HDTV.  Unless you know you will be playing on the older style 4:3 TV or projector, you should choose 16:9 here. If you choose 4:3 and you play it back on a 16:9 it will either have black bars on the sides, or the images will be stretched and distorted to fill the sides of the screen.


NOTE:  There appears to be a bug in iPhoto 9.5 where it will not offer you the 16:9 setting unless you currently have a 16:9 aspect ratio monitor plugged into your computer.  I’ve submitted this as a bug to Apple and am awaiting a response.  This tutorial worked because I was using a 16:9 (1920x1080) format display at the time.

At this point you can click the Play button at the bottom center of the screen and view your slideshow.  If it displays the way you like it, it’s time to export it.

Click the Export button at the bottom center of the screen.  You only have three options for the resolution of the final movie.  We are going to choose the 1080p highest resolution (especially if you will be making a Blu-ray) although the 720p resolution would be fine for a regular DVD.  I also deselected Automatically send slideshow to iTunes since we don’t want it there as we are going to burn it to a DVD.

NOTE:  Depending on the size of your images it may give you a warning that your slideshow will be some ridiculously large size.  You can ignore that warning as it seems to be a bug in iPhoto.  The final file will be a reasonable size (usually less than 4GB.)

Choose where you want to save the exported movie file and click OK.  


Now it will start creating a movie based on your slideshow.  Depending on the size of your images and the number of images you have in your slideshow (and the speed of your computer) this can take several hours.


Now you should have a video file with a .m4v (or .mp4) extension that we can use Toast to convert to a video DVD.


Launch Toast.  Select the Video Tab.


Drag and drop our movie file into the large open area in the Toast window.  


In the lower left portion of the screen we can adjust options.  Click the More button to get to all of the options.

There are three options tabs on this dialog.  Click Disc.

In this slideshow we do not want to show a menu, we want the disk to auto play, and we want it to repeat.  So select “Auto-play disc on insert” and “Play all items continuously.”  Also go ahead and name the disc.

Now click the Menus tab.

Since we are not showing menus we can simply deselect all the checkboxes here and ignore the other settings.


Lastly click the Encoding tab.

In general you can use the Automatic settings but I would drag the Video Quality selector to Best.  That will slow down the encoding process but give you the best looking video.



Click OK.  At this point we are ready to burn our DVD.  Insert a blank DVD and click the big red Burn button in the lower right of the window.

Saturday, June 22, 2013

Comparing T-Mobiles new pricing on iPhones


Ok so T-Mobile has added a new pricing structure that removes the subsidized cost of a phone.  This doesn't necessarily stop you from paying for a new phone over a two year period but it breaks out the cost of the phone from the plan cost which gives you more information on what you are paying which is still an improvement over competitors who hide the price of the phone in the plan.  And if you, for example, choose not to upgrade your phone, you know your plan costs at non-T-Mobile providers still include a monthly subsidy for a new phone.


The question quickly becomes, for someone like me, that has multiple phones on a single Family Share plan at AT&T, will this new type of plan save me money?

Here we go.

Let’s look at a scenario that actually mimics my current phone plan:

Let's assume you have two smartphones like an iPhone and one basic phone that has no data or texting.

On AT&T currently you would pay monthly:
$69.99 for 700 shared minutes with rollover minutes.
$30 for unlimited texting shared across all phones.
$30 for 3GB of data for your first phone.
$30 for 3GB of data for your second phone.
$9.99 for the non-smartphone.

That’s a monthly cost of $169.98 and remember AT&T does not include a hotspot feature with the $30 a month data plan. 

On T-Mobile currently this same setup would look like this:
$50 for the first line.
$30 for the second line.
$10 for the third line.
Apparently this includes 500MB of data for each phone and no hotspot capability.
Let's add Unlimited data at $20 per line which also adds hotspot capability.
$20 for unlimited data on the first phone
$20 for unlimited data on the second phone.

That’s a monthly cost of $130.00.  $39.98 per month less than AT&T but with unlimited data and hotspot capability.

Now let's add the cost of a phone.

On AT&T's a new iPhone 5 with 64GB of storage has an initial upfront cost of $399.  If you divide that $399 over 2 years, that's $16.63 per month.

On T-Mobile, a new iPhone 5 with 64GB of storage is $349.99 + $20 per month over 2 years, which comes out to $34.58 per month if you divide the initial cost and monthly payment over 2 years.  

So to compare monthly costs, let's take that $16.63 per month for our iPhone at AT&T, and add to that the extra $39.98 per month that AT&T's plan costs then subtract the monthly payments and initial cost of $349.99 for our iPhone on T-Mobile at 34.58 and you appear to save $22.03 per month on T-Mobile's plan.

That's if you buy 1 iPhone.  But we said we needed two.  So let's double the numbers.
AT&T Initial cost:  $798/24 = $33.25 
T-Mobile Initial cost:  $699.98/24 = $29.17

Add in AT&T's $39.98 plan difference so AT&T is $73.23 per month
Add in T-Mobile's $20 per month payments X 2 phones = $69.17

And now T-Mobile is only $4.06 per month lower, although with unlimited data and hotspot.

So what does that mean?
It means if you don't upgrade your phones every 2 years to the latest models, you can save as much as $39.98 per month with T-Mobile.  However, if you have two smartphones, and upgrade them every time you become eligible for an upgrade you actually save only $4.06 per month.

Also that 3rd phone in our hypothetical example was a feature (non-smart) phone.  Looks like you can get a Samsung t159 for $3 a month at T-Mobile.  On AT&T I used an old Razor so it didn't cost me anything for the phone.

Tuesday, April 23, 2013

Visual Studio 2010 Microsoft.Data.Entity.Design.BootstrapPackage.BootstrapPackage 10.0.0.0

Upon opening some solutions in my latest VS 2010 SP1 installation I would see an error dialog stating that:

The 'Microsoft.Data.Entity.Design.BootstrapPackage.BootstrapPackage, Microsoft.Data.Entity.Design.BootstrapPackage, Version=10.0.0.0...' package did not load correctly.

I was able to solve the issue by running the following from command line:

reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\AutoLoadPackages\{adfc4e66-0397-11d1-9f4e-00a0c911004f} /v {7A4E8D96-5D5B-4415-9FAB-D6DCC56F47FB} /f 

reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\AutoLoadPackages\{93694fa0-0397-11d1-9f4e-00a0c911004f} /v {7A4E8D96-5D5B-4415-9FAB-D6DCC56F47FB} /f 

reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Packages\{7A4E8D96-5D5B-4415-9FAB-D6DCC56F47FB} /va /f

Sunday, November 11, 2012

Parrot Bluetooth MKi Series Remote Control Functions

Did Parrot create the most complicated automotive Bluetooth system remote control on the market today?

I made the following diagram to show the functions of the remote.  Now you be the judge:


Technically (if you consider the up and down actions of the jog shuttle knob to be equivalent to separate + and - buttons) this is an 8 button remote control.  Many buttons also have a secondary function if you hold them down for 2 seconds as opposed to simply pressing and releasing them (for example, pressing and holding down the jog knob toggles the dim night mode on the display.)

Would you like a PDF with this graphic in higher resolution so you can learn to use your remote? I created one here for you to download.

Wednesday, August 22, 2012

How to Flatten a Folder Structure in AppleScript

Introduction (i.e. The Problem)
You can skip this introduction if you already understand the problem and are trying to solve the same issue.  Just start at Describing the Solution.

Ok, so recently I was given a large archive of files.  These were old automated backups that I had nothing to do with in the past.  They were stored in individual directories.  The directories each had a name that indicated the date the backup was run.  Inside the directories were one or more files that indicated a time that the backup was started.  It looked a bit like this:


The above is much smaller than the actual directory but it gives you an idea.  There was a single top folder called "archive" that contained all the subdirectories (or folders.)  Each subdirectory had a date as the name in Year-Month-Day (yyyy-MM-dd) format separated by hyphens.  Under each directory was one or more files.  The files had names that indicated when their particular backup started in Hour-Minute-Second (HH-mm-ss) format separated by hyphens.

Now I had to run a batch application on every .bkp file to create a summary of each change for audit purposes.  This application could take an entire directory of .bkp files and generate the needed report.  It had one shortcoming though, it could take a single directory as its input and would look for every .bkp file but it was not recursive.  Meaning it would not check subdirectories.  That means I could manually point it to each "date" directory such as "02-03-2010" but not to the top level "archive" directory.  As there were over 500 "date" directories I really didn't want to have to do that manually.

Describing the Solution
What I needed was a way to move every .bkp file stored under a date directory up one level so the files were under the top level "archive" directory.  Then I could just point the batch application to the "archive" directory and it would run though every file.

However, in moving the files that only had the time as their name such as "11-00-00" out of its sub directory I would lose what date it was created on.  I'd rather not lose that information.

Even worse you can see several .bkp files have the same name so they could not all be moved into the top level directory without name conflicts.

What I needed was to prepend the subdirectory name such as "02-03-2010" to the .bkp filename so the filename was actually "02-03-2010_11-00-00.bkp" (in this case I used an underscore "_" character as a separator between the folder and the file name.)  Then I could move the file up to the top level directory and not worry about name conflicts or files being overwritten.

Searching the Web for a Solution
Since I'm on a Mac this seemed like a perfect job for AppleScript.  As a good engineer never reinvents the wheel I figured I'm not the first person to run into this problem so I could probably find a solution out there and just reuse it.

I found this first:  Flatten folder structure via AppleScript | Macworld
This script basically worked but it didn't solve the problem of duplicate named files being moved into the same directory.  I needed something a bit more advanced.

I also found this:  Mac OS X Hints
But that didn't seem to work and still didn't address the naming issues.

Unfortunately I didn't find any workable solutions.

Creating Our Own Solution
Ok, so here's the solution.  Looking at some of the code for the two links I listed above I wrote the following script.


-- Select the folder in the front most window that you want to flatten before running
-- this script deletes the folders it flattens so it can destroy data!
--
(* Behavior…

Select Folder_Top in the front most Finder window, then run script…

Before:
-Folder_Top (type: folder)
--A   (type: folder)
---1  (type: file)
---2  (type: file)
--B   (type: folder)
---1  (type: file)
---2  (type: file)

After:
-Folder_Top (type: folder)
--A_1  (type: file)
--A_2  (type: file)
--B_1  (type: file)
--B_2  (type: file)

*)

tell application "Finder"
set this_folder to (selection as alias)
set this_folder_list to every folder of this_folder
repeat with i in this_folder_list
set this_file_list to every file of i
repeat with x in this_file_list
set theFile to (name of x)
set theFolderName to name of container of x
set name of x to theFolderName & "_" & theFile -- change "_" to whatever seperater string you want.
end repeat
set this_file_list_with_new_name to every file of i
move this_file_list_with_new_name to this_folder
-- delete i  (* uncomment this line to delete the subdirectories when done*)
end repeat
end tell


You should be able to copy and past this into the AppleScript Editor.  Then go into the Finder and select your top level folder.  Go back to the Script Editor and click Run.  If you trust the script uncomment the delete line and it will remove the empty subdirectories when it is done moving the files.  Good luck!

PS
I've received a couple of emails that this can be useful in preparing to batch process videos with Handbrake if you don't want to use the Handbrake CLI (Command Line Interface.)  I added a mention here so if anyone searches specifically on Handbrake folders in Mac OS X they will find this entry.

PPS
I was not able to figure out how to do this using the more simple Automator in Mac OS X.  I realize you can use Automator to call an AppleScript but that defeats the point here.  If anyone can implement this logic using Automator I'd love to hear from you.

Tuesday, June 12, 2012

Comparing Verizon shared data pricing


Ok so Verizon has announced its shared data pricing.  On June 28, 2012 you will now be able to share a data plan across multiple phones much like you already can share text messages or voice minutes (think like a “Family Share” plan.)

The question quickly becomes, for someone like me, that does have multiple phones on a single Family Share plan, will sharing the cost of data instead of paying for data on each phone save me money?

Here we go.

Let’s assume you have two smart phones (like an iPhone or an Android.)

On AT&T currently you would pay monthly:
$69.99 for 700 shared minutes with rollover minutes.
$30 for unlimited texting shared across all phones.
$30 for 3GB of data for your first phone.
$30 for 3GB of data for your second phone.

That’s a monthly cost of $159.99 and remember AT&T does not include a hotspot feature with the $30 a month data plan. 

On Verizon currently (without shared data) this same setup would look like this:
$69.98 for 700 shared minutes.
$30 for unlimited texting shared across all phones.
$30 for 2GB of data for your first phone.
$30 for 2GB of data for your second phone.

That’s a monthly cost of $159.98.  1¢ less than AT&T but 1GB less of data for each phone. Like AT&T, Verizon does not include a hotspot feature with the $30 a month data plan. 

Now let’s see how much Verizon with shared data will cost:
$70 for 4GB of shared data (you could go as low as 1GB for $50 but I tried to keep the plans close in data capacities)
$40 for unlimited minutes and text messages on the first phone
$40 for unlimited minutes and text messages on the second phone

That’s a monthly cost of $150.  A savings of just under $10 from the non-shared data plan.  And if you could drop your data to 1GB or 2GB you could save an additional $20 or $10 a month respectively.  Also it appears Verizon includes the Mobile Hotspot feature on the shared data plans which it didn’t with the non-shared data plan we chose above.

Let’s look at one other scenario that actually mimics my current phone plan:

Now let's assume you have two smartphones like an iPhone and one basic phone that has no data or texting.

On AT&T currently you would pay monthly:
$69.99 for 700 shared minutes with rollover minutes.
$30 for unlimited texting shared across all phones.
$30 for 3GB of data for your first phone.
$30 for 3GB of data for your second phone.
$9.99 for the non-smartphone.

That’s a monthly cost of $169.98.

On Verizon currently (without shared data) this same setup would look like this:
$69.98 for 700 shared minutes.
$30 for unlimited texting shared across all phones.
$30 for 2GB of data for your first phone.
$30 for 2GB of data for your second phone.
$9.99 for the non-smartphone.

That’s a monthly cost of $169.97.  1¢ less than AT&T but 1GB less of data for each phone.

Now let’s see how much Verizon with shared data will cost:
$70 for 4GB of shared data (you could go as low as 1GB for $50 but I tried to keep the plans close in data capacities)
$40 for unlimited minutes and text messages on the first phone
$40 for unlimited minutes and text messages on the second phone
$30 for the non-smartphone.

That’s a monthly cost of $180.  That’s an increase of $10 from the non-shared data plan. If you could drop your data to 1GB or 2GB you could save an additional $10 or break even with the monthly cost of the non-shared data plan.  Also it appears Verizon includes the Mobile Hotspot feature on the shared data plans which it didn’t with the non-shared data plan we chose above.

So what's the conclusion here?  If you have any non-smartphones on your shared plan it will probably cost you more to go to shared data because they are increasing the cost per phone. This may encourage people to move away from basic phones and use smartphones. I'm sure Verizon would like that as they make more off of smart phones. This is also reflected in their basic phone offerings. They barely offer any basic phones and often charge $80 or more for these phones that provide little functionality outside of making and receiving calls.  However, if you have all smartphones it looks like it might save you a little money.  Interestingly the differences are around $10 a month.  Those actuaries at Verizon juggled the numbers so no matter how you arrange your plan, they make pretty much the same amount of money but did you expect anything different?

My biggest disappointment is in how much a non-data basic phone adds to the monthly fee.  With the previous Family Share plan, that line was $9.99 a month.  With the data sharing plan (and remember this basic phone won't use/cannot access the data portion of this plan) that line now costs $30 month.  Another way to look at it is currently, an additional smartphone costs $9.99 + $30 for data whereas a basic phone just adds $9.99 per month.  On the new plan a basic phone costs $30 per month whereas an additional smartphone costs only $10 more at $40 per month.  You could look at it like you pay $30 per line (as opposed to $9.99) and $10 for data (as opposed to $30.)



You can view the Verizon shared data plan details yourself here.