- Create element without an explicit
Frame
. - Set
TranslatesAutoresizingMaskIntroConstraints = false
- Create an array of
NSLayoutConstraints
- Work top-to-bottom, left-to-right, or vice versa. Do this consistently throughout program
- Use Layout Anchors
- Use the top-level
UIView
sSafeAreaLayoutGuide
to position relative to the Window / screen - For each dimension, set its location (
LeadingAnchor
/TopAnchor
or …
Notes on installing TensorFlow with GPU Support
The best Tensorflow is the one you have on your machine.
In my opinion, the bottleneck on a DNN solution is not training, but data preparation and iterating your model to the point where it's reasonable to start investing kilowatt-hours of electricity to the training. So I have Tensorflow on …
read moreDell Infuriates Me
Sunday rant: I have a 2016 Dell XPS (high-end) laptop. I bought a Dell 25" 4K monitor. And on Friday received a Dell Thunderbolt dock for the monitor. I plug it all together and although the monitor displays wonderfully, the dock is not passing USB through. So I start fiddling …
read moreProgrammed my first Alexa skill: I was shocked by what I found!
Although I am pretty deeply entrenched in the Apple ecosystem, the recently-announced \$50 Dot was so inexpensive I could not resist checking it out. (Before I go further: I work for Microsoft, so take that into account as you see fit.)
Out of the box, the Echo is very easy …
read moreMy Westworld prediction
[code lang="csharp"]
read more
var k = Convert.FromBase64String("vlqnRQo8YYXdqt3c7CahDninF6MgvRnqNEU+/tcbWdM=");
var iv = Convert.FromBase64String("gaXwv734Tu3+Jw1hgtNrzw==");
DecryptStringFromBytes(Convert.FromBase64String("Yr2XWzCxceStAF1BaUgaqmWcqFjzWskDDN4foaxfGEO5JHc/oKvgukkMHZuOiw+dK0JxnOhzC1ZA3QLqZZsQxFtjX+qvu0VRM0p6VEfcv18="), k, iv);[/code]Keras is the Deep Learning Toolkit You Have Been Waiting For
I remember a time when "learning about computers" invariably started with the phrase "computers only operate on 0s and 1s…" Things could vary a little for a few minutes, but then you'd get to the meat of things: Boolean logic. "All computer programs are formed from these 'logic gates'…"
I …
read moreDebugging provisioning profiles on the command line
Raise your hand if you've ever struggled with getting your app's bundle identifier, info.plist, and entitlements.plist to match up with your provisioning profile.
I tried to explain provisioning profiles using the ten-hundred most common words, but in slightly-less-common words, a development prov-pro associates: A team, a developer, an …
read moreMysterious crashes in your iOS 10 program? Check your info.plist
If you're developing for iOS 10 and your app "silently" crashes (especially if it's an older app), the culprit could well be the increased privacy requirements in iOS 10. Namepaces such as HomeKit now require specific privacy-related keys to be in your info.plist (for instance,
read moreNSHomeKitUsageDescription
). If you don't …Streaming a Web video to AppleTV with Xamarin
If you have the URL of a streaming video, it's easy to display on an AppleTV, even though tvOS does not have a
UIWebView
(which would make it really easy). You have to use someAVFoundation
code, such as:[code lang="csharp"]
read more
var src = NSUrl.FromString("https://somevideo");
var asset …The Half-Baked Neural Net APIs of iOS 10
iOS 10 contains 2 sets of APIs relating to Artificial Neural Nets and Deep Learning, aka The New New Thing. Unfortunately, both APIs are bizarrely incomplete: they allow you to specify the topology of the neural net, but have no facility for training.
I say this is "bizarre" for two …
read more