Category Archives: Geek Stuff

Do “The Kids” Manage Music Libraries Anymore?

[Edit: Apparently my memory was faulty: According to my iTunes library, I apparently own at least some songs from some 1903 CDs–not the 800 I originally posted!]

One of the casualties of the move to Nashville was a NAS drive that held my home copy of my 20,000+ song library — 1,900 or so CD’s worth — which I’d spent a lifetime building.

This isn’t a post about tech tragedy, however: I’m a massive believer in backups, and I had a second drive on a work computer (as well as a backup spare) which held nearly an identical copy of the library. The “nearly” part consisted of those disks I’d striped up to one location and not the other– a small but annoying part of the total.

Additionally, I noticed that the metadata and folder organization of the backups wasn’t quite up to the standards of the home copy, with almost 2,000 tracks that were missing their album covers, duplicates of other tracks, or with albums scattered between similar-but-not-identical artists like “Reggie AND the Full Effect” vs. “Reggie & The Full Effect”. Nothing life-threatening to be sure, but having spent countless hours getting the whole thing into shape previously, I wasn’t thrilled with the need to spend another dozen hours or so editing ID3 tags and chasing down album covers to restore my collection to a state of relative organization again.

In the past, I’d used a tool called “Tune-up” to help with the process, although their more recent “3.0” release seemed to choke utterly on collections of this size. In the years since I’d last used it, it seems the company that makes it had actually done something I’d rarely seen a company do: pull the new version and revert to development on the previous series. As a result, the current version of Tune-up is 2.7, and it did indeed help quite a bit in getting the whole library back into shape, although the software does not appear to be actively in development.

But this led me to wonder: does anyone out there even mess with this sort of thing anymore? After all, my record-collecting habit goes back almost 40 years, and as I laboriously made the move to digital in the 90s, all the time spent organizing and filing physical albums was replaced with the lesser, but still burdensome task of managing a 200 GB collection of audio files.

But for the kids of today, do they do any of this? If you never actually buy an album, but instead merely stream your music over Spotify, Pandora, or the like, is there even a reason to manage a big stash of music on a local device? Judging by the poor state of development of automated tools for helping organize such a collection, it seems to my eye like it’s possible that this is a market that is not exactly healthy. At the same time, I can’t be the only person who feels a need to actually own his precious digital music collection, vs. streaming or renting it… can I?

Under-30s in the audience: what do you do for music? And do you feel a need to organize your own music stash — or is it all just a collection of Pandora channels and Spotify playlists?

Advertisements

Getting Started in Xamarin Forms with Visual Studio 2017: Why Your First App Won’t Compile or Deploy

Visual Studio 2017 was just released with much fanfare, and if you work in the Windows world, your set of tools just got a major upgrade. One of the biggest toys in your new toolbox is the built-in support for Xamarin–a recent acquisition of Microsoft’s, and whose technology allows developers to write an app in C# that will deploy and run natively on iOS, Windows, and Android mobile devices. This is Really Big Stuff, and a technology which we’ll be spending a lot of time with in the coming years.

One of the more surprising aspects of the new Xamarin Forms support in Visual Studio 2017, however, is that the built-in templates for Forms-based projects don’t actually compile(!). These are the “Hello World” apps which are there to get novices (such as ourselves) started, so not being able to get them to… you know… work… is sort of unnerving.

After a couple of weeks dealing with Xamarin, here’s a few tips on how to get that first app running under Windows, using the Community edition of Visual Studio 2017. Hopefully Microsoft will fix much of this soon, but in the meantime, this article is for anyone who’s also getting their feet wet with Xamarin is might be getting flustered by the constant stream of errors standing between themselves and “Hello World”:

  1. You’ll likely need to install a new Windows SDK, or you’ll get errors when targeting different versions of Windows UWP. As soon as you choose to create a new “Cross Platform” project (iOS/Android/Windows), Visual Studio will go through the work of creating separate sub-projects for each one of these platforms. When it hits the UWP (Universal Windows Platform) one, you’ll be presented with a dialog asking you which version of Windows you want to target, and which level is the minimum you’ll support. Whatever you choose, there’s about an 80% change you don’t have the exact right version of the relevant Windows SDKs installed on your machine, and you’ll get a message with a “https://go.microsoft..” url as part of the error message. Copy that link into your browser’s address bar (the error message is not a hyperlink, unfortunately), and it’ll take you to the Windows  SDK download page. Install the relevant version, restart Visual Studio, and try again.

  2. Visual Studio Itself may need to be updated or you’ll get “(limited)” Mac Client connectivity and the iOS app won’t compile. After a day last week  spent wondering why my Mac Client was connecting with a “(limited)” next to the icon in the toolbar–and having the builds which worked the night before suddenly fail (and in desperation, spinning up a second Mac as a build computer only to have it also fail)–I discovered that Microsoft had just released a patch some 2 hours earlier to Visual Studio which solved the issue (itself likely caused by one of the Windows 10 updates that downloaded overnight). The solution: watch your “Notifications” in Visual Studio like a hawk, and download any updates you see there. You can also use Tools > Extensions and Updates to verify that you’ve got the very latest–and we do mean the very latest–updates.

  3. Your Android SDKs are out of date. If you want to work with the latest Android OSs (and you do), you’ll need to install more recent versions of the Android SDKs than are included with the Visual Studio 2017 install. The current versions of Xamarin (more on this later) also expect the Android SDKs to be updated. To do this, use Visual Studio’s Tools > Android > Android SDK Manager. Warning: the installs take a long time to complete, so throw on an episode or two of Breaking Bad before you kick them off.

  4. The default installed version of Xamarin is out of date, and will cause errors around InitializeComponent() in App.xaml.cs; when you try to compileThe solution: Before you do anything with a new project, right-click on the solution, go to Nuget Package Manager, click the Updates tab, and install all available updates. Then Do it Again as the Build component for Xamarin won’t update until the rest of it has updated. It’ll want to restart Visual Studio afterward, so do that too.

  5. Your Mac’s XCode and Xamarin also likely need updating. This is tedious. You’ll need the latest version of XCode… which in turn likely requires the latest version of the OS… along with the latest version of the Xamarin components (which you can get by downloading Xamarin Studio). It’s all pretty easily managed, but the installs take hours.

  6. The default project settings will nest the path too deeply and you’ll likely get deployment errors. By default, projects are created in the [My Documents]\Visual Studio 2017\Projects folder, creating a sub-folder for the project itself. Due to the depth of the folder nesting within the various sub-project folders, it’s far too easy to have some of the paths exceed Windows’ limit of 255 characters in the total path name. The solution: Don’t use the default location, and create the project’s directory as close to your drive’s root as possible.

  7. Your Android Devices need to be set up in developer mode to let you debug on the device. And trust me, after waiting several minutes for the emulators to boot up, you will want to debug on an actual device.The trick to turning on developer mode varies depending on the version of Android you’ve got. For mine (the “Marshmallow” version of Android), it involved tapping the Android OS version number a jillion times in a row under Settings. See http://www.androidcentral.com/android-50-lollipop-basics-how-turn-developer-settings or https://www.youtube.com/watch?v=TKIRXVhBvBY for more.

  8. Your iOS Devices need to be provisioned… and have their certificates set up… and a bunch of other stuff. The easiest way to handle all of this is through XCode. Start by paying the $99 to Apple to join their iOS developer program (you’ll need to bite the bullet and do it anyway if you distribute through their store), then connect your iOS device to your Mac, launch XCode, and follow the guide here: https://developer.xamarin.com/guides/ios/getting_started/installation/device_provisioning/Oh, and that part about needing to create a dummy app to get the proper provisioning profile installed? That’s actually real.

Hope these tips give you a smoother ride getting started. I’ll undoubtedly be blogging more on Xamarin in the future…

 

The New iPad: That’s It??

For the last few months, I’ve been anxiously awaiting news from both Microsoft and Apple as to what they’ll be doing with their latest rounds of tablets. I’m in the market for a new tablet, since my old iPad Retina 3 got passed on to my Mom ahead of what I expected to be a short wait for the next generation of mobile devices from the big guys.

As it turns out, both companies have gone over a year since the last major refresh of their tablet lines, so rather than throw down money on old technology, I’ve been holding out for news from both Cupertino and Redmond as to what new marvels they would bring forth with their new releases.

Redmond is still MIA on a new Surface Pro 5, but today, Apple ended the suspense with the release of their newest iPad (dubbed, simply “iPad”), which replaces last year’s iPad Air 2. Here it is:

ipad-wifi-select-spacegray-201703_GEO_US

Look familiar? It ought to. Because for all intents and purposes, it’s the same iPad as last year’s model. It’s got the same screen, same camera, same memory specs, same form factor, and a processor with a tiny speed-bump (the “A9” instead of the “A8x”)… oh, and it’s a little heavier.

But hey, at least they took $70 off the price.

Unsurprisingly, the new iPad was launched with zero fanfare. Indeed the news that got bigger interest is that they’ve refreshed the iPhone 7 lineup… by making it available in red. Yes, red. I can barely contain my excitement.

What happened to you, Apple? You used to be the folks who forced everyone else to innovate. And while I remain convinced that Apple is packed with smart and creative folks, we’re seeing blessed little of this potential realized in the products released since Tim Cook took the helm.

 

 

Which Tech Bit the Dust in 2015 in the Bickford Household

As I get ready for the new year, here’s a look back at some of the formerly cherished tech toys that bit the dust this year. Call me crazy, but these are actually some of my favorite ways of looking back at the way life changes over the long haul–whether it’s the year we got rid of all our VHS tapes and record albums or the ever-morphing setup of our home networking, it’s actually sort of fascinating to watch the passage of the years by looking at what got dumped on Craigslist or thrown into the garbage bin.

DirecTV and associated DVRs

Cause of Death: Hulu Plus

After years of looking askance at the “cord cutters”, I got a really good look at our $100+ satellite bill and decided to see how easy it would be to get the same programming elsewhere. This led me to discovering Hulu Plus, particularly the $12.99 commercial-free version, which we found allows us to stream not only almost every show we watch, but countless other fascinating shows ranging from ancient British science-fiction to full seasons of our favorite comedies–all without the need to rapidly skip forward on the DVR to avoid commercials.

What doesn’t it have? For us, the pain points–if they even deserve the name–were the loss of current season of Project Runway, the Superbowl, and Big Bang Theory. But with so much other programming available, we found it easy to ignore the missing reality shows until next season, and the addition of an on-air antenna seems to promise to solve our other limited programming gaps (with the further option of simply waiting a few months until the DVDs come out which we can grab from Netflix). I also gave up watching any amount of news, but found I don’t miss it a bit, especially given how prevalent coverage is over the internet.

If you’re a big sports fan, this might not be the move for you, it’s been a huge win for us, and probably the hardest thing to getting rid of Satellite proved finding a way to dismantle and dispose of the dish that had been mounted on our house ever since dropping cable a decade earlier

Google TV from Logitech

I actually won this unit a number of years ago at CES, and I was thrilled to use it to easily search for shows using the Bluetooth keyboard in conjunction with the DirecTV DVRs it was hooked up to. This is also notably the device that nearly drove Logitech into the grave, since they invested so hard in what became a spectacularly unprofitable product for them.

Cause of Death: The XBox 360 sitting next to it assuming all its TV app duties, and the dropping of satellite in the Bickford household.

 

Two Mac Minis, Three Shuttle XPCs, and Various Firewalls and Network Gear

Cause of Death: Network consolidation

It’s sort of fun setting up a vast and varied network of computers, tying together multiple office locations and business domains, while managing backup, mail service, and all the other fiddly bits that go into running a business.

As it turns out, it’s even more fun simplifying the whole mess and having way less “support surface” to worry about. This is what happened when AT&T Fiber moved into the building this spring, triggering a re-think of our whole network infrastructure, a very messy (and expensive!) shut-off of our Comcast Business internet at the office, and the unification of two of our corporate “domains” under one roof. The whole process took months, but if felt great every time we got a chance to bin an old server and simplify the overall picture in a new, simpler, and faster network setup.

 

Circling the Drain: Dell 2309WFP Webcam-enabled Monitors

Cause of Death: Windows 10

I like this monitor. The color reproduction is a little overly bright, but I still liked it so much I bought three of them and distributed them to various folks at home and office as it’s both a practical and affordable monitor, as well as packing a decent little webcam into the bezel which is perfect for Skype. Unfortunately, I discovered today that the the webcam is also incompatible–in a blue-screen kind of way–with Windows 10. The only solution is apparently to disconnect the USB port, disabling the camera, and reducing a great monitor to a merely average 23″ panel. I think it’s time to start moving these toward the door…

What to do if your keyboard stops working after upgrading to Windows 10 on a MacBook Pro running Boot Camp

Well, this was a little vexing…

My go-to computer on the road is a MacBook Pro (Retina), which I use Apple’s Boot Camp software on to allow it to simultaneously be a bad-ass MacOS X computer and a killer Windows machine. It really is a terrific laptop.

While on a trip this week, I got a notice (on the Windows side) that Windows 10 was ready to download as a free update to the Windows 7 I had installed. Having done a flawless upgrade of my main desktop to Windows 10, I unhesitatingly clicked “Upgrade”, and an hour or so later, I was staring at the Windows 10 login screen on my newly upgraded laptop. “Press Ctrl+Alt+Delete to Login” it instructed…

I pressed it. Nothing happened. Pressed it again.. three times.. a dozen times… nothing. Rebooted. Powered the machine off. Let it wait for a while. Switched to the Mac side. Switched back. (At least I knew that the keyboard was sorta-working, as it recognized the Alt/Option key for switching boot partitions). But everytime I got to the Windows login screen, I was SOL.

After my trip, I plugged in an external keyboard and it instantly got past the login screen. I installed updates to Windows 10 but when I rebooted, the same problem persisted. What the devil was going on?

Turns out, the Apple keyboard drivers that came with Boot Camp got deactivated or otherwise messed with by the upgrade, so it was unable to handle the delete key in the upper-right of the built-in keyboard (most likely treating it as backspace instead).

The workaround: To hit Command-U at the login to activate the accessibility settings and use the onscreen virtual keyboard to trigger a Ctrl-Alt-Delete.

The fix: Boot back over to the Mac side, go to the Utilities folder and launch Boot Camp assistant. Download the (sorta) latest drivers.* onto a USB thumb drive. Then boot back over to Windows, pull the virtual keyboard trick to log in, then run the setup program on the flash drive to repair the drivers. Reboot, and all is well.

Hope this helps someone!

*It actually installs drivers from 2014, but attempting to directly download the Boot Camp 5.1xxx drivers from the Apple site results in an installer that refuses to run on this machine–even though it was specifically listed among the supported machines on the Apple site).

First World Problems: Geek Edition — Mixing 4K and 1080p monitors (Updated)

Update: Apparently, my initial belief that Font scaling across all monitors was indeed true of Windows 7 and 8, but was changed in Windows 8.1 (and now Windows 10).

This is another of those “writing it so that another overly tech-exuberant geek doesn’t have to spend as long sussing what’s going on as I did” post.

I bought myself a Dell 27″ P2715Q monitor as an “I shipped a product!” present to myself after the release of ComicBase 2015 R2. It’s been a stunning upgrade, and worth every penny of the $500 I paid for it.

The problem comes in that it has so darn many pixels at such a high density, that using some sort of font magnification is virtually required–much as is the case with Apple’s retina displays. Since the monitor itself is so much larger than the 23″ 1080p monitor it replaces, I settled on a modest 135% font size setting as a nice balance between making the font size large enough to read comfortably, and preserving the amount of information that could be shown on the screen.

One thing I hadn’t bargained for is that since I’ve become accustomed to running with a 2 monitor setup, the text on the 1080p monitor I use as a second monitor seemed ludicrously huge in comparison to the text on the big 4K monitor to its left.

For days, I chalked this up to just being part of the learning curve–I thought that part of getting used to such high resolution on the 4K monitor was tricking me into believing that the other monitor was stupidly oversized, and that it’d probably been that huge all along.

Then–duh!–I just realized that the Font-scaling setting in Windows doesn’t apply to each monitor separately. It applies across everything. By making the fonts on my 4K monitor large enough to read, I was simultaneously making the text  gigantic on the 1080p monitor next to it. So large, in fact, that it was unwieldy. (Note: This is true of all versions of Windows prior to v8.1 [or Windows 10] — Windows 8.1 introduced per-monitor font scaling, although the feature is so far virtually unsupported outside of core Microsoft applications).

So what’s the answer? I could, in theory, use the Resolution control on the main monitor to set it to run in something other than its native 4K resolution, but the unfortunate result of doing that is to take the razor-sharp 4K text and render it muddy and indistinct. (LCD monitors really like to be run at their native resolutions, or they have to interpolate pixels, resulting in soft images and text).

Stupid answer #1 would be to get used to incredibly teeny text on the 4K monitor by switching the font magnification off. Stupid answer #2 would be to buy a second 4K monitor if I insist on running a dual monitor setup. Unfortunately, my budget does not currently support such extravagance (hey, I got a kid about to attend UCLA in the fall!)

I suspect the immediate solution will be to either get used to gigantic-looking text on the second monitor, or simply remove the second monitor from my setup. If so,  I suspect I’ll miss the extra space–especially since so much of my work involves separate coding and viewing windows, particularly on remote systems.

In any case, at least I’m no longer confused as to why things look so freakishly large on the 1080p monitor.

Ah… first world problems…

Update: I’ll be trying Stupid Solution #4 for a bit now that Windows 10 has been released, offering per-monitor font-scaling. Which is, to see whether I can manage to create a working development environment using two different monitors at two different font scales. Or, more challengingly, to see if we can get a truly resolution-independent version going of our current development projects. So far, I’m wading through the rather elaborate technical notes on attempting this here. Wish me luck–it looks like the development process is ugly to say the least…

-Pete

Importing thing to remember: This tech stuff is secretly fun

There’s a lie we tech folks tell ourselves–and anybody else who will listen–that what we’re doing is tough, arduous, and demanding work. It involves impossible demands, long hours, and nothing we do is ever completely perfect, or completely finished. In short, programming is hard work.

We start out telling folks this because it is difficult, demanding stuff, and we do put in crazy amounts of work at the keyboard, and stress ourselves out thinking about it all the time. We would like your admiration for all we go through, but since what we go through is largely incomprehensible and makes terrible stories at dinnertime, we’ll settle for your pity.

We tech types work marathon shifts, drink coffee by the gallon, and run ourselves ragged, all the while telling ourselves how bad we’ve got it. But here’s the truth–a truth we rarely admit to even ourselves: we’re secretly enjoying the whole thing, because it’s just about the most interesting game we’ve ever played.

Solving technical problems on computers is fascinating stuff, involving incredibly complex mental models, and elaborate systems built out of nothing but thoughts organized into code. It’s an amazingly creative pursuit, where you can think of an idea for a feature, and merely by thinking through all the angles of it in enough detail, can convert that idea into code, and thus into existence.

Even debugging is a challenge better than most mystery books, where your job is to solve the mystery of some strange occurrence, see it for what it really is, and slowly trace it back to the malformed code which perpetrated it. From there, you have to either tear up the bad code outright (risking the creation of new bugs in the process), or craft a suitable fix to restore the proper working of the system.

This stuff is downright fascinating. And on many days, we’d do it even if we didn’t get paid.

But we do get paid–and most of us fairly well at that–because it’s indeed difficult stuff, which requires ridiculous amounts of patience and knowledge, as well as a constantly replenished skill set to keep up with a technical landscape which is ever changing.

As deadlines loom and project problems pile up, it can also have an element of terror built in, as problems which would be fun to solve if there was more time to muck about with them suddenly become the narrowing jaws of a vice that threatens to crush you if they aren’t worked out by the time the ship date arrives.

At times like this, I often think back to a notable economics lecture in college where the professor demonstrated the law of diminishing returns by proposing “the Beer Game”. The  game goes as follows: He agrees to buy a string of beers for you, but whenever he buys you a beer,  you have to drink it.

“Wow!” we all thought, and on the hot autumn day he told the story, I was thinking that the first beer would taste awfully good indeed. The second would also be good–if not quite as refreshing as the first. But as the game goes on, each beer brings you less and less pleasure, and you’d eventually reach the point where you’d be willing to pay the instructor to be let out of the game.

Getting a software release out reminds me a lot of that game. As you dream up features and do the initial exploration, it’s a dream job, full of hope and creativity. As things ramp up and you have to work the technical details out, it’s still engaging, but seems more work and less fun. And then there’s always the terrible crush of deadlines at the end, where the non-stop work and pressure make you feel like the college kid trying to get out of the old econ professor’s beer-buying game. Only in this case, the only way out is through.

But then, if you don’t crumble under the pressure, you ship the product, the pressure evaporates, and in a while, a part of you starts looking forward to doing it all over again.

As I write this, I’m still catching my breath a bit and doing a little tidying up after a very major software release indeed. And yes, I’m happy to tell anyone who will listen about all the pain we went through to bring our new creation to life. We’re all incredibly proud of the new release, but there’s definitely a part of us that knows that there are far easier ways to make a living, and wonders why we keep putting ourselves through all this.

And here’s the truth: it isn’t just a way to earn a living, and it isn’t entirely about the pride we have in bringing something cool to life (although there’s a lot of that too). It’s because despite it all, it’s the most fun we’ve ever had while”working.” And despite our grousing–even to ourselves–we secretly know we’re having a blast.