thoughts on iOS8, iDevices, and Yosemite

I have some random Apple-related thoughts that I wanted to jot down, so I’m putting them all into a catch-all blog post. Enjoy. (Or Ignore. Or roll your eyes. Or whatever.)

I’ve upgraded both my iPhone 5s and iPad 2 to iOS 8.1. I’m not having any serious issues with the iPhone, and I’m liking some of the changes. But the iPad 2, which was already showing its age, has gotten quite slow and unstable since upgrading it to iOS 8. I had hoped that 8.1 would help, and it did, but not quite enough. So I decided it was time to get a new iPad. I couldn’t quite justify the cost of a brand new iPad Air 2, so I bought a used iPad Air 1 from someone on eBay.

Meanwhile, I took this opportunity to get rid of my old iPhone 4, which had been gathering dust for the last year. I traded that off via Apple’s trade-in/recycling program with Brightstar. I got a $35 Apple gift card out of the deal, which I guess is better than nothing. And as for the old iPad 2, I’ve arranged to sell that to Gazelle for $100. (Brightstar offered a bit less than that, so I went with Gazelle.)

And on my MacBook, which is only a bit more than a year old, I am now running Yosemite. It’s working OK, but with a few minor quirks. The most annoying was having a Java warning box pop up randomly. The annoying part is that it really wasn’t obvious which software was triggering the warning. It would come up randomly, and I couldn’t nail it down to any particular program. (I really wish Apple would include that information in the popup, but I guess that’s too much to ask.) I had already installed the newest Java JRE straight from Oracle, but apparently that’s not what the mystery program was looking for. So now I’ve also installed Java from Apple’s 2014-001 installer. I haven’t gotten the popup since then, but it hasn’t been long enough that I’m going to declare victory. And it rubs me the wrong way that I still don’t know which program is using Java, and why it doesn’t work with Oracle’s version.

I’m actually thinking about doing a backup of my MacBook, then wiping it out and doing a fresh Yosemite install, then moving just the programs and data I need back onto the hard drive. This MacBook has been running slower than I’d like for some time now. I’ve thought about replacing the hard drive with an SSD, and I may still do that at some point, but I’d kind of like to just clear out all the cruft first, and see if that helps.

trying out 1Password

I’ve been trying out 1Password for the last few days. I have the (now free) iOS client installed on my iPhone and iPad. And I have the 30-day evaluation versions of the Mac and Windows clients installed on my MacBook and my desktop PC.

In a nutshell: I have a few minor issues with the Mac version, but I think I’ll stick with it, and switch over from KeePass.

There are a few major issues that I want a password manager to address, and none of the solutions I’ve tried previously manage to do all of them well. 1Password isn’t perfect, but I think it does better than anything else I’ve tried.

First, since I’m working with multiple platforms, I need something that runs on all those platforms (or that can be accessed from them all), and that syncs my password database across them without any snags. With KeePass, I was keeping the database in DropBox, and that was working well on the desktop, but was a bit awkward to deal with on mobile. (If I switched to something like LastPass, this problem would go away, since it’s a hosted service rather than client software, but there are other things I don’t like about LastPass.)

With 1Password, I can keep the database in DropBox, and all clients (Mac, PC, and iOS) seem to be able to access it with no problems. I haven’t seen much in the way of documentation about the 1Password database (though I haven’t really gone looking for it), but it appears to be structured as a bunch of individual files within a folder, rather than as one big file, like in KeePass. The obvious advantage here is that this should do a lot to resolve the occasional conflicts that would happen with KeePass. The typical issue with KeePass would be that I’d save a change to the password file on my MacBook, while it was disconnected for some reason, then make a different change on my PC, and save the file, then later go back to the MacBook, and have that machine then try to sync the password file, and cause a conflict. Then, I’d have to open the two conflicting password files, copy the change from the conflict file back to the main one, and then delete the conflict file. Not a horrible thing, and it doesn’t happen often, but it’s a pain when it does. With the way 1Password does things, I think I’d be fine in this scenario, as long as I was changing two different passwords on the two different platforms.

I didn’t come up with a good way to export my passwords from KeePass and import them to 1Password, so that was a bit of a hurdle to get over. But I’m now looking at this as an opportunity to clean up my password database, tossing out some old ones and re-organizing things a bit. I’ve manually copied/pasted over 100 entries from KeePass to 1Password now. That’s gotten me through about one-third of the database, I think. I’ve done this all on the Mac client. While it hasn’t been too much trouble, it has exposed a few things about the current version of the Mac client that I’m not too happy about.

The main issue is that they’ve gone a bit too far in embracing the Yosemite aesthetic. The main window just doesn’t have enough contrast between the background color and foreground text. It’s basically grey on grey. This just isn’t working well for my tired old eyes. Maybe it looks better on a Retina screen, but I don’t have one of those. I posted a question about it on the AgileBits forums, suggesting that maybe they could have an option to change this. They replied that I wasn’t the first person to ask about it, but they didn’t specifically commit to doing anything about it. So I may just have to live with that for now. (As a side note, I recently discovered the “zoom” function on my Mac, so I’ve been using that to make text more readable, especially when I’m using the MacBook at night.)

I also have a few other minor nits to pick with the Mac client, but nothing major. For instance, I’ve found that if you have a lot of text in the note field on a password entry, it doesn’t quite refresh the screen correctly when you’re scrolling through it. And I wish the folder and tag lists would default to ‘show’ instead of ‘hide’, when you open the client. But I can live with this stuff for now.

The newest version of the iOS client is great. I can’t really complain about it at all. It can be unlocked with Touch ID, which is really nice and much easier than having to type in a master password every time. (Though Touch ID hasn’t been working well for me lately, which is a subject for a different blog post.) And it integrates with iOS to the extent that Apple allows — which isn’t much, but it’s better than it used to be, and it’s better than any other password software I’ve tried. There’s a good recent review of the new iOS client up on MacStories. There’s not much more I could say about it that they haven’t already said.

So, to summarize, I think I’ll be migrating the rest of my passwords over from KeePass into 1Password, and paying for the Mac & Windows desktop clients. (And maybe paying the $10 to unlock the premium features in the iOS client, though I probably don’t need them.)

password management

I’ve been using KeePass to keep track of all my passwords for several years now, since 2007. I use KeePass 1.x on my Windows machines, KeePassX on my Mac, and iKeePass on iOS. I keep my KeePass file on DropBox, so it stays in sync on the Mac and Windows machines, no problem. And iKeePass pulls the file in from DropBox every time I open it. (I don’t think I can save changes back to DropBox though. If there’s a way to do that, it’s not intuitive.) iKeePass works well enough, but it’s not great, and it hasn’t been udpated since 2012. So, I’m (once again) looking for something better.

I started using an app called DataVault in 2010, but I never really got that far with it. I had the Mac client and iOS client working, but syncing was a hassle, and it was just easier to stick with KeePass. I think the syncing situation with DataVault has probably gotten better since the last time I looked at it, but I really don’t want to go back to it.

This week, I decided to see what was out there in the way of alternative KeePass clients for iOS. I tried MiniKeePass, which is a free open-source program, with source available on GitHub. It’s being actively maintained, and can open files from DropBox, so that’s all good. But, to open a file from DropBox, you have to go into the DropBox program itself, find your KeePass file, then choose MiniKeePass from the “open in” menu. So it’s a bit unwieldy. Once it’s opened, you can just pull it up from within MiniKeePass, but it will never update automatically. To pull in a new version of the file, you have to go back to DropBox. So, it’s a nice enough program, but not quite perfect.

I’m thinking about giving up on KeePass and giving 1Password another try. I’d messed around with it previously, but never really talked myself into committing to it. There were various issues with older versions that kept me from getting too excited about it. But I think I may take another shot at it. They currently have Mac, Windows, and iOS clients, so that’s good. And they support keeping the database in sync with DropBox, so that’s also good. (I’m not sure how seamless that is on iOS, but it’s likely better than iKeePass or MiniKeePass.)

One possible sticking point: 1Password used to support import from KeePass, but they dropped that in version 4 (I think), and I don’t know if they added it back for version 5 (but I don’t think they did). But, really, I should probably take this opportunity to clean up that database and re-organize everything. I’m just not looking forward to how much work it’ll take to do that.

 

Apple iOS devices

I’ve updated both my iPhone 5s and iPad 2 to iOS 8.1. The iPhone is working fine, but the iPad is really showing its age. It’s running pretty slow, and some apps are crashing occasionally.

I’m looking to buy a new iPad, but I’m still not sure if I want to shell out for the new Air 2, or get last year’s Air 1. Either would be much speedier than the iPad 2.

Meanwhile, though, I decided to trade in my old iPad, and my old iPhone 4, which has been gathering dust for the last year. (I’m not sure why I didn’t do something with the old iPhone sooner, but better late than never, I guess.) I was surprised to see that the iPhone 4 is still worth $35 from Apple’s recycling program. I’m not sure if they’ll actually pay that, or if they’ll mark it down for some reason, but I wasn’t expecting anything for it, so whatever I get is fine. And, while Apple’s site gave me a value of $85 for the iPad 2, Gazelle offered me $100, so I’m sending that to Gazelle. (Gazelle’s offer for the iPhone 4 would only be $25, so I’m slightly better off using Apple’s program for that.)

Yosemite upgrade

I went ahead and upgraded my MacBook to Yosemite today. As is usual with recent OS X upgrades, it went smoothly and I didn’t have any problems. My MacBook seems slower, but that may be due to some post-install stuff that’s running in the background or something like that. I’m going to give it some time, and see what happens.

I’m not seeing anything in Yosemite at this point that I’m at all excited about. But I’m also not seeing anything that bugs me too much either, except for the way they screwed around with iTunes yet again.

I just bought the two new Yosemite books from Take Control, and I’m hoping that I’ll learn something from them. Oh, and I should really read John Siracusa’s review. I’m assuming that there will be some useful stuff in there.

Cloud Storage, Yosemite, and other stuff

I haven’t upgraded my MacBook to Yosemite yet, but I probably will soon. Before I do any major OS upgrade, I like to clean things up a bit. One thing that’s been on the back-burner for a while is going through the list of programs that are running in the background and seeing which can be dropped. I’m currently using Bartender to keep my menu bar under control. But even with that, it’s clear that I’ve got too much stuff running.

For a while, it seemed like every company out there, regardless of whether it made any sense or not, wanted to become a cloud storage provider, like Dropbox. So, at various times, I’ve had programs running on my Mac and/or PC to keep a local folder synced with cloud storage services from Dropbox, Amazon, Google, Microsoft, and maybe a few others. Currently, I seem to be running clients for Dropbox, Amazon Cloud, and Google’s Music Manager.

For better or worse, I seem to have drifted into using Dropbox across all my devices. So that stays. And the Google music software just uploads any new music from my computer to my Google Play library, which is useful, so I’m keeping that. (And I think I should write up a blog post on that some time too.) But, after looking into where things stand with Amazon’s cloud drive, it looks like they’ve probably discontinued the Mac client software. If you look at their Cloud drive site right now, there’s no mention of the Mac client, and searching Amazon’s site didn’t turn up any place from which to download it. So I guess they’re not that interested in it anymore. And I’m not really using it, so away it goes.

I haven’t found much else that I’m willing to give up. So I don’t think there’s much else I can do to streamline my OS X install before the Yosemite upgrade. But the MacBook has been running slower than I’d like for a while now, so I’m hoping that either Yosemite speeds things up somehow, or that I can find some (relatively) painless way to speed it up on my own.

game nostalgia

I’ve been feeling nostalgic for old computer games recently. Particularly, Moria (the Amiga version) and the “gold box” AD&D games.

Moria was a “roguelike” game, similar to several other games that were popular back when I was in college. They all, generally speaking, had simple, ASCII graphics, and randomly-generated dungeons. I’ve been looking around for more modern roguelike games, and have found a few interesting possibilities.

Yesterday, I bought Rogue Legacy on my PS3. This game has some elements in common with the roguelikes that I’m familiar with, including randomly-generated dungeons, but it’s really a 2D side-scroller, and I think it may be a bit too frenetic for my taste. But I’ll play around with it some more. It’s fun, but I don’t think I’m going to be any good at it.

On the subject of the AD&D gold box games, I did some web searching, to see if they’d been ported to Steam or re-released on GOG or anything, but it doesn’t look like they have. I did discover, though, that some folks from SSI (the company responsible for the gold box games) have started a new company called TSI, and they’re working on a new game, in the same spirit as the old AD&D games. That could be really interesting.

And, at some point, I should get back to the Final Fantasy series. I played all the way through FF VII on my PS1. (Though I may have finished it on my PS2. I can’t remember.) And I’ve gotten a good way through FF VIII. (Probably started on my PS2 and continued on my PS3, which, yes, can still play PS1 games!) I should finish that, then try FF IX. (I do have all three of these on CD, but they’re also available on PSN now, I think.)

Using RecordSortedList in Dynamics AX 2012

Dynamics AX 2012 has a nice class called RecordSortedList, which can be used to create a list of records from a database table. It can be useful when you need to pass a list of records into a method, or return a list of records from a method.

I honestly haven’t used it that often, but I had a case today where I thought it would be perfect. I had a method that currently returns a single record from a table, but that needed to be changed to return a short list of records.

I wrote some code to insert records into the list, then another bit to loop through the list and do something with the records in it. I was puzzled that, while I was definitely inserting multiple records into the list, I was only getting a single record back out. After some trial and error, I discovered that the methods to retrieve records from the list don’t really work right if you fail to explicitly set a sort order on the list. I wasn’t really concerned with sort order, so I didn’t bother setting one at first. Once I set a sort order, everything worked fine.

If you want to see this quirk for yourself, run the test job below with and without the sortOrder() call. As far as I can tell, this isn’t actually documented anywhere, so I thought I’d write up this blog post, as a reminder for myself, and as a resource for anyone else who happens to stumble across this little quirk.

// https://gist.github.com/andyhuey/84495f8a3480d2df31f9
static void AjhTestRSL(Args _args)
{
    CustTable custTable;
    RecordSortedList myList = new RecordSortedList(tableNum(CustTable));
    boolean moreRecs;

    myList.sortOrder(fieldNum(CustTable, AccountNum));

    // create a list
    while select firstOnly10 * from custTable
    {
        myList.ins(custTable);
    }

    // step through the list
    moreRecs = myList.first(custTable);
    while (moreRecs)
    {
        info(custTable.AccountNum);
        moreRecs = myList.next(custTable);
    }
}

Windows 10

I just installed the Windows 10 preview on my laptop, in a virtual machine running under VirtualBox. I’m sure I could have done this without instructions, as there wasn’t anything tricky about it, but I used the instructions found here.

I’m trying VirtualBox for the first time. Previously, before I wiped the laptop and re-installed everything, I was using Hyper-V. I wasn’t entirely happy with it, though, as I’d had some networking issues, both on the host and on the VMs. So I decided to give VirtualBox a try. I’d rather use VMWare, since that’s what I use at work, but a new license for that is $250, and VirtualBox is free.

I don’t have much to say about Windows 10 yet. I’ll try to play around with it a bit tomorrow, or over the weekend. I do think Microsoft is back on the right track with Windows, based on the new Start menu, and some of the other enhancements they’ve made.

Ditto on VirtualBox. So far, it works fine, and hasn’t screwed up my networking, so that’s cool.