As I've written before, I was fixated on buying a recent Mazda 3 hatchback. Such a beautiful car, available with my favored manual transmission. Zoom zoom. However, Mazda has been promising for years to support CarPlay, and I have stopped believing them.
So, I cast about for a hatchback, with CarPlay, and a manual transmission.
Well, what about the new Civic? I've driven the same Civic for 14 years; I like Honda. However, unless you include the pricey Type R model, Honda will not sell you a Civic with both a manual transmission and CarPlay. Plus, I think the current model is angularly ugly, filled with faux touches. Nor, do I like the added mechanical complexity of a turbocharger.
My co-worker who owns a 2017 Civic, loves it, and I understand why you need an automatic for the collision avoidance features.
I spent more time in the Edmunds app looking at cars, and on YouTube watching review videos. Seems as though most people say great things about the 2017 Subaru Impreza hatchback, which in its lowest trim, the 2.0i, has both CarPlay and a manual transmission. If you go up the trims, you will end up with a larger screen, but I'm not going to spend thousands of dollars for a bigger screen. For once, the base model has everything I really want. And while the CVT transmission might give better gas mileage and have more safety features, nobody who reviewed the car said they liked the CVT, and I have to believe it will be less mechanically reliable than a manual. Plus, this will likely be my last gasoline burning car, and I want to enjoy the anachronism.
As a big plus, all wheel drive is a great match for driving in New England. I am already visualizing putting a couple of kayaks on the roof rack and heading out into nature with my family.
So, early in the new year, as soon as I muster up the cash, I intend to buy a used 2017 Impreza hatchback. Maybe.
A blog about iPhones, iPads, Swift, being a working coder, gadgets and tech. The official blog of Generally Helpful Software.
Sunday, October 29, 2017
CarPlay Drops? Try Shortening Your USB Cables
I have not been a happy CarPlay user for the last couple months. I'd started getting the occasional loss of connection with my previous 3rd party receiver, and it had just gotten worse when I switched in a new one. I'd connect my iPhone 5S, it would work for a few minutes, sometimes as long as half an hour, and then CarPlay would just disappear. Replugging it in would usually work, but typically for a shorter time. I'd taken to just listening to podcasts over Bluetooth.
Things I Tried
- Switching from a 3rd party Lightning cable to an Apple original.
- Putting the phone in low power mode (maybe it was a charging problem)
- Just using Podcasts, avoiding Maps or Phone.
- Turning off Bluetooth (I drove the half hour to work once without drops when I forgot my Apple Watch)
- Updating to the iOS 11.1 beta.
What Worked
Replacing the 40 inch Lightning cable with a 4 inch cable. The phone might have been hanging from the USB socket, but it didn't drop over several days of commuting.
I had installed the receiver myself, and had purchased a cable with a USB-A male to flush mounted USB-A female. It looked nice, mounted on the dashboard, but 6 inches would have been as good or better than 6 feet.
- Cable embedded in receiver: 3Ft
- Flush mounted cable: 6ft
- Apple Lightning cable 3.5ft
So a bit over 12 feet. A quick googling indicates that USB 2 has a maximum length of between 3 and 5 meters (10-16 feet), so 12 was starting to be a bit marginal, coupled with 3 separate cables, my oldish phone, and I could see where it might not be reliable.
Long term solution
I pulled out the overlong cable and replaced it with a 3 foot version. Fingers crossed; I've fooled myself into thinking I'd solved this a couple times before.
Thursday, October 19, 2017
Apple Has A Second Chance at the SEx (iPhone that is)
There's an old story that when Apple was getting ready to release the fast version of the Macintosh SE, their naming convention should have resulted in a Macintosh SEx, but they demurred and gave it the tamer name Macintosh SE/30. I can remember desperately wanting one, one of the most legendarily future proof machines ever to come out of Cupertino.
And now, I'm waiting impatiently for the rumored new iPhone SE with a modern A11 Fusion chip to replace my rapidly slowing iPhone 5S. And what would you call an iPhone SE with the same processor as an iPhone X?
And now, I'm waiting impatiently for the rumored new iPhone SE with a modern A11 Fusion chip to replace my rapidly slowing iPhone 5S. And what would you call an iPhone SE with the same processor as an iPhone X?
| The Legendary SE/30 (via Wikipedia) |
Sunday, July 09, 2017
Why Doesn't The Compass Work in Some iPhone Apps?
As a writer of apps—such as TV Towers USA—which rely on the device's compass, I periodically would hear from users who don't see the compass in my apps. This confused me as they would also report the built in iPhone compass app working. And the apps worked perfectly well for me.
I've finally figured out what is going on. At some point, the users had turned off compass calibration in their location privacy settings. And since my apps are set to request calibrated data, the app gets no compass data at all.
So, to fix, open the iOS Settings app.
Tap the Privacy item:
Tap the Location Services privacy item:
Tap the System Services item (way down on the bottom):
And, I hope, your app will go from not having an active compass, to having one:
I've finally figured out what is going on. At some point, the users had turned off compass calibration in their location privacy settings. And since my apps are set to request calibrated data, the app gets no compass data at all.
So, to fix, open the iOS Settings app.
Tap the System Services item (way down on the bottom):
If Compass Calibration is disabled, then this was likely your problem. Enable it.
I should look into detecting this condition and warning the user. Hope this helps.
Thursday, February 23, 2017
True North and the iOS Compass App
I recently got a 2 star review for my TV Towers USA app.
Well, the short answer is that the iOS compass app tries to act like an old timey compass where North means magnetic North, and TV Towers USA instead is displaying the direction based on North being the Earth's north pole. You can go into the settings for the Compass app, turn on "True North", quit the Compass app and from then on, it will act like a super-compass that can calculate the location of the North Pole based on both magnetism and location.
I've put together a short video to describe the situation, and how to configure the iOS compass app.
This would be a nice app if it pointed in the right direction! Most of the time its sense of
direction differs from the compass app.
How can that be? ⭐⭐
Well, the short answer is that the iOS compass app tries to act like an old timey compass where North means magnetic North, and TV Towers USA instead is displaying the direction based on North being the Earth's north pole. You can go into the settings for the Compass app, turn on "True North", quit the Compass app and from then on, it will act like a super-compass that can calculate the location of the North Pole based on both magnetism and location.
I've put together a short video to describe the situation, and how to configure the iOS compass app.
Thursday, November 03, 2016
Why an Ad Supported Model Isn't For Me
As always, I was grateful to get a 5 star review for Signal GH, my app to let HDHomerun users best point their antennas.
I think this idea deserves a response.
I don't like apps with ads in them. As a consumer of apps, I don't download ad supported apps. I don't like the contortions ad support brings to an apps layout, and the lengths it drives developers to get more views. So, I'm not inclined to use ads just on principle.
And even if I were so inclined. A little research indicates that a good ad rate would be $4 per 1000 ad views, or .4 pennies per view. Let's say that I could prolong the antenna pointing session long enough to squeeze 10 views out of my users, that would be 4¢ per user. Maybe, if I did a poor job in the first session, I could rake them back in for a second, so 8¢. I make $2.10 from a sale of Signal GH, and with that I'm far away from quit my day job territory, or even pay for my computer hardware territory. Nor is there a universe out there with 40 users for the app that will download a free version for every 1 that would pay for it, and if there were, how would I be able to respond to any tech support they needed?
Meanwhile my users have paid $100 for a decent antenna, $90-200 for an HDHomerun, plus cables, a pre-amp, connectors, paddle bits, drills, masts, grounding wires, and a TV. All of these cost more than the $2.99 they pay Apple for my app, and ending with a set up that will deliver free (ad supported) content for years.
So, no, I will not be moving to an ad supported model.
⭐️⭐️⭐️⭐️⭐️ Very useful. - Does exactly as described. Very useful if you are aiming an outdoor antenna, especially on a roof or similar. Gives data that is all in one place and not easily found with other software. Kinda stings to buy an app that you only really need once or twice. Would be ok with ads built in to make it free as nobody needs an app like this very frequently.
I think this idea deserves a response.
I don't like apps with ads in them. As a consumer of apps, I don't download ad supported apps. I don't like the contortions ad support brings to an apps layout, and the lengths it drives developers to get more views. So, I'm not inclined to use ads just on principle.
And even if I were so inclined. A little research indicates that a good ad rate would be $4 per 1000 ad views, or .4 pennies per view. Let's say that I could prolong the antenna pointing session long enough to squeeze 10 views out of my users, that would be 4¢ per user. Maybe, if I did a poor job in the first session, I could rake them back in for a second, so 8¢. I make $2.10 from a sale of Signal GH, and with that I'm far away from quit my day job territory, or even pay for my computer hardware territory. Nor is there a universe out there with 40 users for the app that will download a free version for every 1 that would pay for it, and if there were, how would I be able to respond to any tech support they needed?
Meanwhile my users have paid $100 for a decent antenna, $90-200 for an HDHomerun, plus cables, a pre-amp, connectors, paddle bits, drills, masts, grounding wires, and a TV. All of these cost more than the $2.99 they pay Apple for my app, and ending with a set up that will deliver free (ad supported) content for years.
So, no, I will not be moving to an ad supported model.
Sunday, October 02, 2016
On Typing Everything In - My Updated Web Site
I have a quirk of typing what most people wouldn't think type-able.
My wife was once going to be the stateside representative of a Beijing University department, and needed a business card. And as I wanted it to be a perfect business card, I typed the entire thing as EPS as in:
My wife was once going to be the stateside representative of a Beijing University department, and needed a business card. And as I wanted it to be a perfect business card, I typed the entire thing as EPS as in:
%!PS-Adobe-2.0 EPSF-1.2
%%Title: peking university logo.eps
%%CreationDate: 4/8/08 1:30 PM
%%BoundingBox: 0 0 50 50
/outsidecircletext
{ circtextdict begin
/radius exch def
/centerangle exch def
/ptsize exch def
/str exch def
/xradius radius ptsize 4 div add def
gsave
centerangle str findhalfangle add rotate
str
{ /charcode exch def
( ) dup 0 charcode put outsideplacechar
} forall
grestore
end
} def
/insidecircletext
{ circtextdict begin
/radius exch def /centerangle exch def
/ptsize exch def /str exch def
/xradius radius ptsize 3 div sub def
gsave
centerangle str findhalfangle sub rotate
str
{ /charcode exch def
( ) dup 0 charcode put insideplacechar
} forall
grestore
end
} def
......
This was back when Postscript was fresh in my mind after rebuilding ChemDraw's Postscript sink, nowadays this looks about as confusing to me as it does to most of you. I will admit that doing text along a path in Postscript is not as easy as it sounds.
And, of course, I write all the graphics for my iOS apps in raw SVG. This has been great for responsive design and reusability. as in this location dot/compass from my broadcast towers apps.
It seems to me that a good way to learn something, whether it be Postscript, Swift, SVG or any other computer language, you have to roll up your writing sleeves and start typing. Thus, my goal the last month has been to learn CSS. As anybody looking at my sloppy Blogspot blog here can see, I have not been an expert in either HTML or CSS, and I have hopes of changing that.
So, I took my old iWeb website (yes, I was still using iWeb) and wrote a new one from scratch in pure HTML/CSS. No Javascript, no Typescript, no frameworks or templates. The new GenHelp.com meets my simple needs and is pretty nice, I think, for somebody with so little experience with modern web page development. It's mobile first, responsive, and makes good use of many of the SVGs I use in my native apps. For instance, all the app pages, use the actual SVG I use to generate the PNGs for the app icons.
It'd be nice if Safari supported my favorite SVG property: vector-effect="non-scaling-stroke" but other than that, the graphics just work and make for some very light pages, and graphics that scale as the size of the page changes. If you are on a desktop browser, go and see how the icons on my home page scale smoothly with the size of the page. Extra responsive and extra gratifying.
Maybe now, I can get to work on my Swift CSS parsing project.
Wednesday, September 14, 2016
When The Simulator Doesn't Act Like a Device
I had to pull Signal GH from the App Store two days ago because mach_absolute_time which is based on CPU clock cycles returns quite different values on my Mac Mini than it does on an iPhone 5S, and a quick hack I had done to fix the build for Xcode 8 resulted in a severely degraded user experience.
Well, thanks to the magic of Expedited Review, it's back in the Store. Thanks Apple and my apologies to any customers that had a bad experience.
Well, thanks to the magic of Expedited Review, it's back in the Store. Thanks Apple and my apologies to any customers that had a bad experience.
Thursday, August 25, 2016
Apple Doesn't Make a Mac I Would Eagerly Buy
I've been using Macs pretty much exclusively since I walked into the computer lab at International Falls Senior High and saw one in 1984. I've never not owned one since I bought a Mac Plus at the University of North Dakota bookstore in 1989. I'm happy with the 2012 Mac Mini I'm writing this with.
And there is not a Mac that Apple sells that isn't so compromised that I would consider it worth its asking price.
[Update: after 2 years, I bought that 2015 MacBook Pro with Retina 13", used with only 512GB of storage. Obviously not as a primary machine, but for coding on the go, it was cheap enough and good enough.]
And there is not a Mac that Apple sells that isn't so compromised that I would consider it worth its asking price.
The MacBook
Great looking computer, would buy them for my kids or to take on trips, but a single USB-C connector and a 1.2GHz Intel Core m5 do not make for a general purpose computer. At some point, somebody is going to have come with a single cable replacement to Thunderbolt that will drive a 5K monitor. Until then, I'd feel like I was buying a disposable machine.
MacBook Pro 13-inch
Yes, Apple is still selling the same MacBook they sold me in 2011, more or less. It did manage to pick up USB 3.0 ports. Can put an extra hard drive in it. But 802.11n WiFi? 1280×800 screen? I already have this excellent but out of date machine.
MacBook Pro Retina
I use one for work, and it is a great machine. Plenty of ports. Beautiful display. Great trackpad. Adequate keyboard. MagSafe connector. Solid as a rock. I guess I could see getting the 13" model. But to be my main machine it would need a lot more that 1TB of storage and unlike my 2011 MacBook Pro, there's no place to put an extra drive in it. Plus, why is the 15" $700 more than the 13"?
MacBook Air
Who, at this point, is going to buy a MacBook Air, with its ridiculously out of date screen?
iMac
The 5K Retina iMac is actually quite a nice looking computer, but I just cannot get around the idea of permanently tying a desktop Mac to such an expensive monitor. Also, a desktop Mac with pretty much zero internal expandability. I used to own a PowerMac 7600, now that was an expandability monster. Maybe if it were cheaper.
Mac Pro
I could buy one if I needed the performance level, but I'd feel foolish given how it hasn't been refreshed in 3 years and still has an entry level price of $3000.
Mac Mini
The current Mac Mini is a compromised product crippled—I would guess—to keep it from taking sales from higher margin machines. I feel bad for the engineers tasked with taking the epically nice 2012 design and removing all traces of internal expandability or quad-core processors. I feel bad for Phil Schiller for having to introduce it. I feel bad for anybody who paid full price for it. I feel bad.
The Buying Trigger
I'm happy with my Mac Mini. In order for me to get out my credit card, a Mac would have to do something my current one can't. So, if there was such a thing as an affordable quad core 13" Retina laptop, with 2TB of storage, and it had a single connector that would drive a 5K display, that would be something I would buy on the first day of availability. Until then, I'd only buy a new Mac if an old one broke.
[Update: after 2 years, I bought that 2015 MacBook Pro with Retina 13", used with only 512GB of storage. Obviously not as a primary machine, but for coding on the go, it was cheap enough and good enough.]
Sunday, August 21, 2016
The Awesome Responsiveness of Swift.org
I encounter a bug in Swift 3
I had this cool idea to enhance CGPath, create an extension which would add a convenience init method that would take an SVG formatted path string. How neat would it be to be able to writelet frogPath = CGPath(svgPath: "M 170 207C139 183 40 199 41 109A18 18 0 1 1 56 75Q67 53 91 45A18 18 0 1 1 127 40C170 29 193 62 212 173L225 110Q241 70 252 120L253 156 C253 180 265 223 235 214Q210 210 215 242 C222 265 161 249 125 248")and have a complicated curve available for display. (I should say this all relies on other code in my brand new, and very incomplete Scalar2D project)
So, I opened up a new source code file and tried:
public extension CGPath
{
public convenience init?(svgPath: String)
{
guard let mutableSelf = CGPath.pathFromSVGPath(svgPath) else
{
return nil
}
return mutableSelf.copy()
}
}
Now the compiler didn't like this and told me I couldn't assign to self, and I couldn't figure out how to do what I wanted, so I turned to CGMutablePath, which I could mutate in the init method. I therefore tried
public extension CGMutablePath
{
public convenience init?(svgPath: String)
{
self.init()
if !self.addSVGPath(svgPath)
{
return nil
}
}
}
And the compiler promptly crashed. I had found a bug in the pre-release Swift 3 compiler.I report the crash
In the olden days before Swift had been open sourced, if I could find the energy, I would find my way to the Apple Bug Reporter and enter my bug, never knowing if I was the first or the millionth person to encounter my problem. And it would sort of disappear, unless a request would come back sometime later for more information, or it was marked as a duplicate, or whatever vaguely unsatisfying outcomes would manifest.For example, a bug I reported against Safari 8.0.6 in June of 2015, 21364634 Safari not Rendering SVG Gradients Properly, that has not been commented upon, nor fixed. But at least that is still open, most of my reported bugs have been archived, several with the rather insulting description of Insufficient Information, no they have plenty of information, with steps to reproduce and in one case even an Xcode project I took the trouble to generate. Others were tersely marked as duplicates, and one was operator error on my part when using MKPolygonRenderer.
But, this is the new era of open source Swift so, I made my way to bugs.swift.org and discovered not some custom tool, but honest to goodness JIRA, the same tool I've used in many projects over the last several years. Wow, this was new. I could browse through the bugs and see if what I was seeing was already reported. Didn't seem to be. So, I opened up a new issue, simplified my steps to recreate to something you could type into the command line REPL and created my issue: SR-2338 Compiler Crash on Implementing Optional convenience init of CGMutablePath
The Awesomeness of Responsiveness
Within hours, someone with an Apple email address replicated the bug, and commented upon it in the JIRA issue for all to see. And a back and forth ensued amongst team members about what to do, where the bug came from, and possible solutions. My particular bug came from an initiative to give Core Graphics a more Swift-like object interface instead of the traditional C style interface. Nobody had considered the idea of testing if adding a convenience init method would work. Code and test cases were generated and a pull request was offered where anybody could comment on the pull request. When the resulting code wasn't right, an other approach was taken wherein the compiler just wouldn't allow you to extend Core Graphics objects this way, and a better fix would be delayed.All of this was done in full view of the world, where anybody with an interest could contribute. And the final release of Swift 3, will be more reliable for it.
Saturday, May 21, 2016
Where are All the New CarPlay Receivers?
Back in late February, I was a bit miffed to hear that the JBL Legend CP100 CarPlay receiver was going to be released while I was visiting relatives in China; I'd have to order one when I got back. But by the time I got back, it had been delayed until late May. So, I pre-ordered one on Crutchfield and went about wishing for time to pass. Then it was delayed till early July according to the JBL website. Then it was delayed till early August. I became concerned for my own mortality over wishing for so much time to pass. (Could be worse, I could be waiting for Amazon to start showing Grand Tour episodes, oh wait I am. Curse you time for being both slow and fast in the wrong ways.)
I have now started looking for a different receiver. But few of the 2016 CarPlay receivers announced in January have seen the light of day. Crutchfield has a note like the following on several pre-orderable CarPlay receivers:
I have now started looking for a different receiver. But few of the 2016 CarPlay receivers announced in January have seen the light of day. Crutchfield has a note like the following on several pre-orderable CarPlay receivers:
Crutchfield first offered this item for pre-order in January of 2016 and we regret that we are still awaiting our first shipment. There have been delays getting the necessary certification from Apple for the CarPlay feature. As soon as we have firm shipping information, we will post an official Estimated Time of Arrival (ETA) for this radio. Thank you for your patience and understanding.The JVC Arsenal KW-V820BT, and a bunch of Kenwoods are also awaiting pre-order. [Update: in early July, the KW-V820BT shipped].
That leaves Pioneers: the AVIC-8200NEX and its siblings (7200, 6200, 5200), which are all navigation/DVD playing receivers, and the AVH-4200NEX which is a DVD receiver. Since this is slated for the front of my Civic and Apple invented a thing called the iPad, I don't have much use for DVD playback. I have a hard time imagining the use case where I'm stopped, with my parking brake engaged, watching DVDs. My kids tend to watch YouTube videos in the back seat over the cell network while I drive. CDs? What is this 1999? As for navigation, I like the constantly updated Apple maps, so the advantage of a navigation receiver is for when I'm out of range of a T-Mobile tower. This does happen when I take the kids up into the White Mountains north of where I live in New Hampshire. Also, apparently, the external GPS antenna can supplement the GPS in my phone, making location services more accurate while driving. At the moment, Amazon has the AVIC-5200NEX for $575, and the AVH-4200NEX for $520. The 4200 has more media options: HD Radio, an SD reader, HDMI input, and more important for a lot of people: Android Auto support. To get everything in one package, you have to move all the way up to the AVIC-7200NEX, which Amazon sells for $822. I tend to think the only feature I'd ever use is the external GPS antenna, and possibly the maps which might be worth the $55 premium.
It seems like every receiver has 1.0A USB charging. It'd be nice if it had 2A charging for an iPad or to fast charge an iPhone 6 Plus.
I'm not looking at older CarPlay receivers because I'm hopeful the newer models will be zippier and have the earlier generation kinks fixed. The reason I waited so long on the JBL was because their demonstration videos showed it to be quite fast and allow for pinch to zoom on maps instead of pressing zoom in-zoom out buttons. So, I'm ignoring older models like the Alpine iLX-007 or the Pioneer AppRadio series.
I'm not looking at older CarPlay receivers because I'm hopeful the newer models will be zippier and have the earlier generation kinks fixed. The reason I waited so long on the JBL was because their demonstration videos showed it to be quite fast and allow for pinch to zoom on maps instead of pressing zoom in-zoom out buttons. So, I'm ignoring older models like the Alpine iLX-007 or the Pioneer AppRadio series.
There is the whole resistive versus capacitive screen debate, and given my druthers, I'd prefer capacitive for its responsiveness, but I don't want to pay a premium for it. And I'd prefer a big volume knob and an easy to hit Siri button, but that doesn't appear to be a choice. Therefore, if I were to buy a receiver today based on specs, price, and availability, I'd buy the AVIC-5200NEX. But I'd be really unhappy about paying about $120 extra for a DVD player I literally will never use after reviewing it.
I wonder why Apple is delaying so many of the other receivers, they don't seem to have appreciably different specs from the Pioneers they approved. It has the same USB amperage and screen resolutions. In the hopes that something they announce at WWDC in a few weeks will make this make sense, I'm going to hold off ordering the AVIC, but it is weird.
[Update: Crutchfield support tells me:
[Update 2: I bought my wife a Sony XAV-AX100 and have been very happy with it. It's much nicer than the JVC KW-820BT I purchased for my Civic.]
[Update: Crutchfield support tells me:
That receiver has become more delayed than we anticipated. You will probably getting a letter from us soon. The receiver now may not be here until January of next year.]
[Update 2: I bought my wife a Sony XAV-AX100 and have been very happy with it. It's much nicer than the JVC KW-820BT I purchased for my Civic.]
Labels:
CarPlay
Sunday, May 08, 2016
Note to self, UINavigationController's setToolbarHidden does something different than setNavigationBarHidden
I spent a very long time thinking that I could somehow not put a UINavigationController in a container view (despite having done so before) because I was autocompleting to setToolbarHidden instead of setNavigationBarHidden. A very, very long time.
guard let myNavController = self.navigationController else
{
return
}
myNavController.setToolbarHidden(true, animated: true)
// is different than
myNavController.setNavigationBarHidden(true, animated: true)
Friday, April 01, 2016
Mazda Had Best Start Supporting CarPlay
Recently, I've had two passions in my life as a consumer. I've been dreaming of finally moving on from my 2003 Honda Civic, and buying the hatchback version of the Mazda 3. And, I've been eagerly awaiting delivery of a pre-ordered JBL Legend CP100 CarPlay aftermarket stereo for my Civic; a wait that keeps on getting stretched.
The air conditioning might not work, but my old Civic is going to have a nice looking dash (in early June).
[Update: I noticed in this ride along review (8:22 in) of the new Mazda CX-9, that the Mazda engineer says when asked when CarPlay and Android Auto are coming:
The air conditioning might not work, but my old Civic is going to have a nice looking dash (in early June).
You might ask what's keeping me from just buying the lovely and fun to drive 2016 Mazda 3. One, I've been listening to a lot of Dave Ramsey, so I'm intending to do the mature thing and save cash to buy a used one coming off a lease (or a flease as Dave would call it). And two, the current firmware for the infotainment system in Mazdas doesn't support CarPlay. Worse, unlike my Civic, my wife's 2009 Civic, and even the 2012 Mazda 3 my little sister just bought, you can't just pop the factory one out and put in a standard double-DIN receiver along with some cheaply bought custom trim. Crutchfield doesn't list any CarPlay receivers that fit and if there was such a receiver, what would you do with the screen bolted to the top of the dash? Putting CarPlay into a modern Mazda 3 without Mazda's help would take some doing.
If this situation doesn't change in the next couple years, I'll be happily purchasing the well reviewed 2016 Civic, which does support CarPlay.
[Update: I noticed in this ride along review (8:22 in) of the new Mazda CX-9, that the Mazda engineer says when asked when CarPlay and Android Auto are coming:
We don't know exactly when yet. Not at launch, unfortunately. As soon as we possibly can. We're working on it. It's really tricky with those guys, they've got their own requirements, our system has its own requirements. You think you've got it lined up—it seems like it should be so simple, and every time we think we've got it so simple they pull another thing out and change something on us.]
Labels:
CarPlay
Wednesday, February 10, 2016
My 2003 Civic Fuel Door Stopped Opening
So, one day, out of the blue, I could not open the little hatch to get gas into my 2003 Honda Civic. Going online, I found this is a fairly common problem wherein part of the cable just rusts out so that the trunk will open (a pull) but the fuel door will not (a push). I also found some guy in Canada who sells a $20 bit of plastic that snaps over the existing cable and makes it work again without ripping out half your car. Instead you have to rip up only the trim in the driver side door bottom—which is tough enough and I don't want to do that again. Seems to work, I'll edit this post if it fails anytime soon.
Anyway, this seems like exactly the sort of thing that could be a plan you download and make yourself in 5 minutes on a 3D printer. It would certainly save on the first class mail from Canada.
Anyway, this seems like exactly the sort of thing that could be a plan you download and make yourself in 5 minutes on a 3D printer. It would certainly save on the first class mail from Canada.
Sunday, August 30, 2015
New Open Source Library for Extracting Schedule Data from Digital TV ATSCgh
I decided to release as open source (MIT license) my collection of Objective-C classes that can parse out the schedule information from ATSC broadcasts. These are just the classes for that narrow purpose and anyone using them will have to make their own TV tuner class to interface with the actual hardware. So, there isn't even an Xcode project included.
If 2 people can actually use this code I will be happily surprised. Regardless, here it is on Github.
If 2 people can actually use this code I will be happily surprised. Regardless, here it is on Github.
Sunday, August 09, 2015
Goodbye to a Colleague
Yesterday, my former coworker Alan Gorman died of cancer at 51.
While commuting by train, he'd draw these out with ChemDraw's own spline tools, making him the absolute master of using ChemDraw to draw. Who knows into how many PowerPoint presentations Alan's bright and joyous vectors have found themselves.
If there was anything I learned from Alan, was something he didn't learn while I worked with him. He commuted 3 hours a day with some combination of train, bike, truck or car. He was known to sleep in his cubicle if he missed the last train. Whenever I think of getting one of the many available iOS jobs down in Boston, I remember Alan and say no.
Being a transplanted Brit, he loved both kinds of football. The only time he made it to my house was to watch the World Cup when England was playing and he couldn't get it at his home. He was a Pats fan; I remember telling him the Pats had traded Randy Moss and him looking like those words made no sense in English.
I hadn't talked to him since February of 2014, I was regrettably miffed with him for two, in hindsight, trivial slights and hadn't even known he was fighting for his life this whole time. Alan was a good person, coder and father, and the world is a lesser place without him.
Alan and I were hired a month apart at the then CambridgeSoft to work on ChemDraw. He was the PC guy, and I was the Mac guy. For 7 years, we'd chat over cube walls or sat back to back. I've been in more meetings and exchanged more Emails and had more, cordial, arguments with Alan than any other human being.
Given the stress of keeping ChemDraw's old codebase moving thus paying the salaries of 150 CambridgeSoft employees, plus my own ego and snippiness, it is remarkable that we got along. He was an amazingly dogged debugger, and would follow the trail of a bug for days. It was to him that new document features were assigned, so if you are a chemist who makes use of the Stoichiometry Grid, or need to do an R-group analysis, or if you are a biologist composing biopolymers, thank him.
He was better suited for management, and much more organized, than I, so to him fell the horrible task of eking out productivity from our outsource developers. I certainly didn't envy him that but he took the burden with characteristic stoicism and, mostly, contained temper.
Being the Mac programmer, I fancied myself an artist of sorts, but it was Alan who shamed me with his constant flow of lovely vectored templates for BioDraw such as this one displaying the organelles of an animal's cell.
He was better suited for management, and much more organized, than I, so to him fell the horrible task of eking out productivity from our outsource developers. I certainly didn't envy him that but he took the burden with characteristic stoicism and, mostly, contained temper.
Being the Mac programmer, I fancied myself an artist of sorts, but it was Alan who shamed me with his constant flow of lovely vectored templates for BioDraw such as this one displaying the organelles of an animal's cell.
If there was anything I learned from Alan, was something he didn't learn while I worked with him. He commuted 3 hours a day with some combination of train, bike, truck or car. He was known to sleep in his cubicle if he missed the last train. Whenever I think of getting one of the many available iOS jobs down in Boston, I remember Alan and say no.
Being a transplanted Brit, he loved both kinds of football. The only time he made it to my house was to watch the World Cup when England was playing and he couldn't get it at his home. He was a Pats fan; I remember telling him the Pats had traded Randy Moss and him looking like those words made no sense in English.
I hadn't talked to him since February of 2014, I was regrettably miffed with him for two, in hindsight, trivial slights and hadn't even known he was fighting for his life this whole time. Alan was a good person, coder and father, and the world is a lesser place without him.
Wednesday, June 24, 2015
Amazon Vine and The Power to Tax is the Power to Destroy
For many years, I've been a happy member of Amazon Vine, taking frequent deliveries of random consumer items for review and then keeping them. I've reviewed 432 items over the years, and it has been sweet.
But, in today's eMail, came word that Amazon would now be reporting the "Fair Market Value" of my review items to the IRS so I could be taxed for the income. So instead of being free, items would now cost their value multiplied by my marginal tax rate. Since my marginal tax rate is 25%, it would be as if they were offering me a random assortment of stuff, most of which I have no particular need for 75% off. And, I can't sell the stuff, so there is no getting the money back.
Looking through a couple of pages of stuff I reviewed recently, I have to think that few are things I would have purchased for 75% off.
But, in today's eMail, came word that Amazon would now be reporting the "Fair Market Value" of my review items to the IRS so I could be taxed for the income. So instead of being free, items would now cost their value multiplied by my marginal tax rate. Since my marginal tax rate is 25%, it would be as if they were offering me a random assortment of stuff, most of which I have no particular need for 75% off. And, I can't sell the stuff, so there is no getting the money back.
Looking through a couple of pages of stuff I reviewed recently, I have to think that few are things I would have purchased for 75% off.
- 6 Lightning cables (maybe I could have used 2)
- Mattress. Like this mattress but at the time, I struggled to even justifying it for free, there's no way I would have taken it.
- Kids bow and arrow set. Maybe.
- Princess mechanical pencils. We've got plenty of pencils already.
- Task chair. I didn't really want it when it was free. No way.
- Skin cream. No.
- Mango juice. No.
- USB scanner. No, have too many already.
- Children's book. Too young for my youngest. No.
- Decoratable toy. Probably
- Avenger's movie toy. Cheap looking junk. Nope.
- Pencil sharpener. Already have some. No.
- Expensive noise canceling headphones. On the one hand, I have headphones, on the other hand, very nice looking. Maybe.
- Cheap headset. Nope.
- Hammer. Probably.
- Pack of children's scissors. Who needs an entire pack of scissors?
- Mattress pad. Probably.
- Taco shells. Nope.
- USB wall outlet. Too much trouble. Nope.
- Air purifier. Already have fans in the house.
Basically, I won't be able to justify the expense of much more than 1 item in 10 if I have to pay for it.
And then there are books. Non-children's books take time to read. As an experienced iOS developer, my short term contract rate is around $110/hr. It might take literally thousands of dollars worth of my time to read a book. Even when they were free, I rarely reviewed real books. The fair market value for a book for me is a large negative number. I can't imagine ever reviewing a real book again for Amazon Vine.
I understand that somebody from the outside might see that I get a printer priced at $100 so I've made $100 worth of income. But that printer is worth much less than $100 to me, otherwise I would have gone out and bought one already. As it is, I have a bunch of perfectly good printers in the house waiting to be hauled to the electronics recycling center because they are out of ink. If Amazon were to offer me another free one, I might not take it. Now that the IRS will be charging me $25 for it, there is no way. Fair market value has no meaning to me when I can't resell the item, and it's a random assortment of stuff that I'm not in the market for in the first place.
[Update: Well this has settled down and the situation is better than the initial reports. "Fair Market Value" ranges from 0% to over 100% of Amazon's price. Unfortunately you don't know it before you agree to the deal. Food, cosmetics and other disposables are generally 0%. And I guess you can now sell your items after 6 months. Sometimes I can't help myself, so yesterday I took in an expensive Android tablet with its 101% Fair Market Value, oops.
I've definitely scaled back my reviewing, and will not take items I perceive as low quality. Thus my average review rating has gone up and is now over 4. In the past, I'd have taken a try for something iffy and would give out my share of 2 and 3 star reviews.]
I understand that somebody from the outside might see that I get a printer priced at $100 so I've made $100 worth of income. But that printer is worth much less than $100 to me, otherwise I would have gone out and bought one already. As it is, I have a bunch of perfectly good printers in the house waiting to be hauled to the electronics recycling center because they are out of ink. If Amazon were to offer me another free one, I might not take it. Now that the IRS will be charging me $25 for it, there is no way. Fair market value has no meaning to me when I can't resell the item, and it's a random assortment of stuff that I'm not in the market for in the first place.
[Update: Well this has settled down and the situation is better than the initial reports. "Fair Market Value" ranges from 0% to over 100% of Amazon's price. Unfortunately you don't know it before you agree to the deal. Food, cosmetics and other disposables are generally 0%. And I guess you can now sell your items after 6 months. Sometimes I can't help myself, so yesterday I took in an expensive Android tablet with its 101% Fair Market Value, oops.
I've definitely scaled back my reviewing, and will not take items I perceive as low quality. Thus my average review rating has gone up and is now over 4. In the past, I'd have taken a try for something iffy and would give out my share of 2 and 3 star reviews.]
Saturday, June 13, 2015
Apple Needs to Thin Out The PNGs
Had a pleasant time at WWDC. As is my habit, I spent most of my time in the labs going over every issue I had that had vexed me. One of the highlights were some soon to be released improvements to my SVGgh rendering library to allow live updating in Interface Builder via support for the IB_DESIGNABLE switch. It took effort, but I finally beat my project into shape, got rid of the old fashioned static library, and was magically playing with showing SVGs inside of IB, and playing with my various button themes. Seeing that first image for the first time was sweet. Also got an assist with some long term problems with rotated gradients, and some pointers about text on a path.
But it also reminded me of how obnoxious Apple's reliance on fixed size PNG bitmap assets has become. The iPhone 6+ brought a need for a 3rd image resolutions, and the possibility of responsive design brings a preference for even more. I spent a couple hours slicing together the 30 PNGs I needed for use with a UISegmented control last week. I have better things to do. Apple added support for dropping a PDF into assets last year, but that just automates the process of making a bunch of bitmaps. And bitmaps are bulky, to the point that Apple will be automatically culling unnecessary ones out before installing them on user's devices
I find my own workflow of generating SVG artwork to be much more satisfying. They match up well with the simple, clean themes encouraged since iOS 7. They are less bulky and I typically only need one image per button. I can even use the 'currentColor' property to manipulate pressed and unpressed states from Interface Builder. I can use SVG's 'non-scaling-stroke' vector-effect to keep outline strokes to be 1 pixel wide regardless of scale. And with responsive design, I can use auto-layout to make my view elements whatever size I need without having to worry about scaling issues.
I would not be surprised if Apple were to support either an existing vector format, or perhaps a new one with size hinting in some future version of UIKit. It's past time.
But it also reminded me of how obnoxious Apple's reliance on fixed size PNG bitmap assets has become. The iPhone 6+ brought a need for a 3rd image resolutions, and the possibility of responsive design brings a preference for even more. I spent a couple hours slicing together the 30 PNGs I needed for use with a UISegmented control last week. I have better things to do. Apple added support for dropping a PDF into assets last year, but that just automates the process of making a bunch of bitmaps. And bitmaps are bulky, to the point that Apple will be automatically culling unnecessary ones out before installing them on user's devices
I find my own workflow of generating SVG artwork to be much more satisfying. They match up well with the simple, clean themes encouraged since iOS 7. They are less bulky and I typically only need one image per button. I can even use the 'currentColor' property to manipulate pressed and unpressed states from Interface Builder. I can use SVG's 'non-scaling-stroke' vector-effect to keep outline strokes to be 1 pixel wide regardless of scale. And with responsive design, I can use auto-layout to make my view elements whatever size I need without having to worry about scaling issues.
I would not be surprised if Apple were to support either an existing vector format, or perhaps a new one with size hinting in some future version of UIKit. It's past time.
Saturday, May 30, 2015
The 5 Rating Minimum and Releasing to the App Store
Here is a screen capture of my app TV Towers USA as it looked in the iOS App Store on May 2, 2015:
| May 2, 2015 (or so) |
And here is what it looks like today (May 30, 2015):
| May 30, 2015 |
Notice that the current version has no stars. Why, because on May 3rd I released a much overdue update which included bug fixes and updates to the database. Which means the new version has only one review, which means that potential customers can't tell at a glance that it's a decent product (lifetime rating average 4.58). Which means sales drop. April sales were $7.79/day, whereas since the update, they have been $4.70/day. (Obviously, I'm not quitting my day job for this product, either way.)
The app gets a review every month or so, so it will be Autumn before I accumulate the 5 ratings needed to get my rating display back, and then it will be time for another update.
I don't understand how some apps accumulate thousands of reviews. It's true that I've avoided fame and fortune, but my niche apps are almost always well liked by the folks who purchase them. The problem is that only one person in a hundred will write a review, and small apps that are responsibly updated suffer for it, or allow people who post phony reviews to benefit.
I was interviewing for a job last year, down in Cambridge, and one of the engineers looked over at me and asked suspiciously how I'd managed to get a perfect 5 for 5 for 5 users rating on the then current TV Towers. The hard way, apparently.
Monday, April 27, 2015
SVG Paths Tutorial
About a year and a half ago, I left myself a Reminder on my iPhone to make an educational video about creating path elements in SVG documents. I finally fired up ScreenFlow and did so. 27 minutes about me talking about the path element. It's more interesting than it sounds—how could it not be?
So hopefully, one or two of you will be out hand crafting your own SVG shapes like this one:
Subscribe to:
Posts (Atom)

