Introducing Selected Birthdays

If you have an Android phone like me, you probably use Google Calendar. I like the way it integrates with my contacts so that I can schedule events with people. I like the idea of it integrating with my Google+ contacts to automatically create a calendar of birthdays that I don’t want to miss. There’s a glitch in that, but I’ve created a new app to get around it, called Selected Birthdays.

birthdays-screenshot20160514

The glitch is that the builtin Birthdays calendar has three options: show your Google Contacts, show your contacts and the people in your Google+ circles, or nothing. I have a number of contacts who are attractive and successful people, but I’m sorry to say I have no interest in knowing when their birthdays are. Natasha Lomas has even stronger feelings.

Google doesn’t let you change the builtin Birthdays calendar, but it does let you create a new calendar and fill it with the birthdays that interest you. My new web app, Selected Birthdays, automates that process. It goes through your contacts, finds the ones who have shared their birthdays with you, and gives you a checklist. You decide whose birthdays to include, and Select Birthdays will create a new calendar with those birthdays. It’ll also give you the option of hiding Google’s built-in birthday calendar.

I wrote the Selected Birthdays app in Javascript with the Google+ and Google Calendar APIs. Ian Jones was a big help in recommending the moment.js library, which I used to manipulate dates. Bootflat helped me add a bit of visual style.

For the app to work you’ll have to authorize it to read your contacts and write your calendars. For your privacy, the app communicates directly between your browser and Google’s server; once you download it there is no further contact with my server. There is no way for me to see or edit your contacts or calendars. You can verify that in the source code.

Please let me know if you have any comments, questions or suggestions. I have also made the code available on GitHub for free under the Apache License, if you want to build on it. A number of people have said they wish they had an app like this for Facebook. If enough of you repeat that, I’ll look into it!

How to Connect an Insignia NS-15AT10 to ADB on Windows

I bought a nice little tablet at BestBuy, and I wanted to use it to test an Android app I’m developing. In order to do that, I have to connect the tablet to my Windows laptop and run something called ADB. Unfortunately, in order for ADB to connect to it, Windows needs to recognize it as an ADB device, and BestBuy hasn’t done the work to support that.

Photo: Insignia.

Photo: Insignia.

I did find a post by someone named pcdebol that tells you how to get other Insignia tablets working with ADB, and was able to get mine working using the Google USB drivers with some modifications. I wanted to post this for the benefit of other people who want to test their apps on this model of tablet.

The first thing to do is to download the Google driver, unpack it and modify the android_winusb.inf file to add the following lines in the [Google.NTamd64] section.

;NS-15AT10
%SingleAdbInterface% = USB_Install, USB\VID_0414&PID_506B&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_0414&PID_506B&REV_FFFF&MI_01

I found the “VID” and “PID” codes by looking at the hardware IDs in the Windows Device Manager. They should be the same for all NS-15AT10 tablets, but different for any other model. The next step is to edit the file adb_usb.ini in the .android folder in your user profile (for me, in windows 7, that’s “c:\users\grvsmth\”). If there is no .android folder, you should make one, and if your .android folder has no adb_usb.ini file you should make one of those. Then you put in the file this code, on a line by itself.

0x0414

It took me a little while to figure out that it’s the VID number from the Device Manager, with an 0x prefix to tell Windows that it’s a hexidecimal number. Once I did that and saved the file, I was able to re-add the device in Device Manager, Windows recognized it, and I was able to connect ADB to it flawlessly and test my app. I hope you have similar success!