Repealing Broadband Privacy Rules

As expected, the House voted to roll back the online privacy rules created by the FCC under the previous administration. The Senate passed the bill last week, so now it just needs to be signed.

There’s an opinion piece by former FCC chair Tom Wheeler in the Times, and a regular news article about the vote. And here’s the EFF’s blog post about it.

This happened on the same day that Trump rolled back Obama’s climate change policies, which is undoubtedly a bigger problem, but I’d like to think I can be indignant and upset about both.

My iCloud Password

After reading about the hacker group that claims to have a huge file of iCloud account credentials, I went ahead and changed my password. I realize that these guys probably don’t have my password, but you can’t be too careful. I hadn’t changed my password in a couple of years, so I was due anyway.

Apple’s password complexity requirements aren’t quite as bad as this comic indicates, but it can be hard to come up with a good iCloud password, when you remember that you’ll need to type it in with some frequency on multiple devices without physical keyboards.

In my case, after changing my password two days ago, I’ve had to enter it three times on my iPhone, three times on my iPad, twice on my Mac, and twice on my Apple TV. There really ought to be a way to cut down on that.

You need a VPN

Most of the media attention to congress right now is focused on health care, and rightly so. But the current congress is pushing through a lot of other stuff too, and one particular item recently caught my interest.

There is a bill going through the House and Senate to roll back broadband internet privacy rules enacted under Obama’s administration. It just passed the Senate, along party lines. There wasn’t much coverage of it in the mainstream media, as far as I can tell, but I did find one good NY Times article.

The House bill has not gone up for a vote yet. I was disappointed to see that my local rep, Leonard Lance, is one of the co-sponsors.

I first learned of this bill through a blog run by Private Internet Access, the company I use for my VPN. Here’s their article on the House bill, and another one on the Senate bill. Of course, it’s in their best interest to call attention to this kind of thing, and maybe exaggerate it a bit, but I don’t think they did that here.

And here’s an article from Consumerist that goes into some depth.

There is, of course, coverage of this at the EFF blog too. The EFF post includes the typical exhortation to “call your lawmakers today” to stop this from passing the House. In my case, I don’t think calling Lance would do me much good, since he’s never going to vote against legislation he co-sponsored. Oh well.

I haven’t really been using my VPN service when I’m at home, but maybe I should start doing that more often. There’s no need for my cable company to know how much time I’m spending looking at photos of corgis.

JavaScript, TypeScript, Promises, and callback hell

I’m working on a little project right now, where I’m pushing at the edges of my limited JavaScript skills. I’ve written a fair amount of JavaScript code in the past, but it’s mostly been simple DOM manipulation stuff with jQuery, and/or fairly straightforward Ajax calls. This new project requires a lot of nested calls to async functions that might succeed or might fail, and the whole thing is getting pretty confusing. Luckily, it’s not a high-priority project, so I’ve got time to mess around and try new things with it.

To start with, I’ve switched from plain JavaScript to TypeScript. There’s only a little bit of a learning curve there, since TypeScript is a superset of JavaScript. And I’m picking up TypeScript as I go. I’ve got one Packt ebook: Learning TypeScript, which was their free ebook of the day recently. It’s a bit out of date, but it’s a good start. I’ve bookmarked a couple of PluralSight videos on TypeScript too, but haven’t had time to watch them. I don’t like to add a new language into the mix for a real work project without careful consideration, but TypeScript seems to be relatively low-risk. It’s got some momentum right now, it’s got Microsoft behind it, and if it fails, I can always throw out the .ts files, work from the generated .js files, and pretend TypeScript never happened. (Not that I think that’s at all likely.)

I’ve found myself falling into “callback hell” on this project, so this video called “Redemption from Callback Hell” caught my attention. I’d already discovered promises, but I’ve been using the jQuery implementation, which apparently isn’t a great one. I guess I need to look into Q and the Promises/A+ spec. I’ve read a number of blog posts and articles about promises, but I’m still having some issues with figuring out how to handle some stuff with them.

I’m trying to avoid going down too many rabbit holes on this project, but going down a few is unavoidable. One of the reasons I was using jQuery promises is that I already had jQuery in the project and didn’t want to add another library. But I guess I’ll have to consider at least one more.

Thinking about email services

Seeing the changes to OtherInbox Organizer this past weekend got me thinking about email in general. I’ve been using Gmail for more than ten years, and I’ve been using Organizer since 2011.

Every once in a while, I consider switching from Gmail to a non-free alternative. I last looked into paid email services in 2014. Not much has changed since then, but a few things have. Generally, the trend seems to be towards offering more space and charging a little more.

FastMail is probably the best example, and the likeliest candidate, if I were to switch. Their basic account is $30/year, for a 2 GB mailbox. That’s probably not enough for me, since I currently have about 2.3 GB in my Gmail account. (Of course, if I switch, I don’t need to bring all of my old mail over, but I’d like to, if I can.) Their standard account is $50/year for a 25 GB mailbox, which would be more than enough. That also includes the ability to use your own domain. (When I last looked at FastMail, a few years ago, the standard account was $40 and included 15 GB of storage.) They’ve got pretty much all the features you’d want in an email service: a nice web interface, IMAP support, an iOS app, two-factor authentication, calendar/contact management, and support for importing old mail from Gmail (or wherever).

I signed up for a free ProtonMail account back in 2014, when the service was still in beta. At the time, I found it to be too limited to be really useful. Looking at it again now, I see that it’s improved quite a bit, and it’s seriously worth considering for use as my main email account. The main selling points for ProtonMail are security and privacy. So if those are your main concerns, definitely take a look at their service. They have a pretty good web-based interface (much better than it was during the beta), and an iOS app (that I haven’t tried yet). They don’t support IMAP, though, since that just wouldn’t work with their secure architecture, so you’re stuck with either their web interface or app. You can’t hook your account up to Apple’s mail app, or Outlook, or anything like that. Free accounts have a 500 MB limit. Paid accounts are $5/month for 5 GB. One other downside with this: they don’t support any easy way to import mail from another account. (And since they don’t have IMAP, you can’t use an IMAP-based migration approach either.)

I host this blog at 1&1, and I have access to 1&1’s mail services as part of my hosting account. Occasionally, I think about switching from Gmail and just using my 1&1 account for mail. There would be a couple of advantages there. First, I’m already paying for it, and second, I can easily use one of my own domains, which are all hosted with 1&1. The included mail service gives me an IMAP account with 2 GB of storage. They have a web interface, which is OK but nowhere near as good as Gmail’s (or ProtonMail’s or FastMail’s, from what I’ve seen of them). And they have an iOS app, though I don’t think I would ever use it. The 2 GB limit is a little low; you can up that to 50 GB by signing up for a “business” account at $7/month. They also have Exchange 2013 hosting for $10/month, including a 25 GB mailbox, which is kind of interesting.

Of those three options, FastMail is the only really good one for me, I think. The 1&1 basic mail account has that 2 GB limit, and bumping it up costs a bit too much. And their web interface isn’t great. The ProtonMail service is pretty cool, but without IMAP support, there are too many things I just wouldn’t be able to do.

Well, I guess I still haven’t talked myself into switching away from Gmail. At this point, the one thing that might push me into doing it would be if OtherInbox Organizer becomes a problem. Then, I might be able to talk myself into switching providers, as part of an effort to switch to SaneBox or some other system for organizing my mail.

 

Organizing Email (and related privacy issues)

I’ve been using OtherInbox Organizer to keep my Gmail inbox clean since 2011. it’s a service that scans your Gmail inbox and moves commercial email into various folders under a main “OIB” folder, for example “OIB/Shopping” or “OIB/Finance”. It’s a good service and it’s free. I’ve had some concerns with it over the years, partly because of it being free. Obviously, they’re doing something with the data from their users to make money. I don’t necessarily mind that, if they’re just using aggregate data and not telling people which brand of underwear I’m buying or which books I’m reading or anything like that.

I hadn’t given them much thought recently, but, yesterday, some stuff changed, so I did some digging. Part of their service is a daily review email that summarizes all the emails they’ve organized in the past 24 hours. That email has looked the same since I first signed up for an account, but the design on it changed yesterday, along with a couple of other minor things. And, previously, they’ve always applied two labels to each email: the main “OIB” label and the more specific folder label, like “OIB/Shopping”. Now, they’re only applying the specific label and not the general “OIB” one. (Gmail, of course, doesn’t really have folders, just labels, which can be nested to look like folders.) So I was wondering if they’d been acquired recently or if the service had been sold from one company to another.

Surprisingly, I didn’t find much information via Google. I did discover that they’d been acquired by Return Path, but that happened back in 2012. I might have read about that previously, but I don’t remember it. Up until yesterday, Return Path wasn’t mentioned in the summary email, but that changed with the redesign; the copyright notice at the bottom of the email now says Return Path instead of OtherInbox. Nothing about the changes has shown up on either the OtherInbox or Return Path Twitter feeds. And I couldn’t find any recent reviews or news about the service, other than seeing it included in some typical clickbait “top five ways to organize your email” articles, but none of those were that recent either.

Reviewing Return Path’s privacy policy, it sounds like they’re only sharing aggregate and/or anonymized data with their (business) customers, not personally identifiable data, so that’s good. If I was worried about that, I’d probably switch to SaneBox. Their service costs money, so their users are actually their customers; they’re not selling the data at all. But they charge $7 per month for their service, for their low-end accounts. (It goes up to $36 per month for their high-end accounts.)

Or, I could just use Gmail tabs. They were introduced in 2013, after I started using OtherInbox, so I’ve never really tried them. I think I did notice at one point that they only work with the regular Gmail client and don’t affect the view of the inbox through a third-party client like the mail client on iOS. (And I really want to have a clean inbox on iOS, so that could be an issue for me.)

Of course, if I’m worried about privacy, and being the product rather than the customer, I could probably switch from Gmail to a paid email provider also. I’ve considered switching to FastMail in the past. Their standard account is $5 per month, which is pretty reasonable. Combining FastMail and SaneBox would give me an email account with great organizing tools and no obvious privacy issues. (I’m pretty sure SaneBox would work with FastMail.)

For now, though, I’m going to stick with Gmail and OtherInbox Organizer, and just keep an eye on the Organizer product and see if anything weird is going on with it. The recent changes may just be the result of some long overdue maintenance work. Or they could be related to some further changes that could compromise privacy and/or make the service less useful.

programming books and videos

We’re snowed in today here in my part of NJ, so today’s probably a good day to review and clean up some of the “independent study” stuff I’ve been working on over the last several months.

First, I decided to finally finish up a book that I started reading about a year ago, Real-World Functional Programming. I’d been reading it a little bit at a time for quite a while. I started in on a program to learn F# back in 2014. I read a few books, and learned a bit, but I never really got a chance to apply any of that knowledge on a practical project. So I skimmed through the last couple of chapters of that book today, marked it as “read” in Goodreads, and decided that my F# experiment is over for now.

I started (and finished) reading a book on JavaScript this week, Object-Oriented JavaScript. I’m doing a bit of JavaScript programming at work right now, but I’m rusty, since I haven’t used it much lately. I got this book for free at some point from Packt, so I thought maybe it would be a good way to brush up and refresh my memory. It was a good refresher, and even had some stuff in it that I hadn’t stumbled across before.

On the video front, I’m still working my way through SharePoint videos on Pluralsight. I’ve completed Andrew Connell’s “SharePoint 2013 Developer Ramp-Up” series, and Sahil Malik’s “Understanding SharePoint 2013” series. Now I’m working on David Mann’s “Developing SharePoint 2013 Solutions with JavaScript,” which is helping me out with the SharePoint/JavaScript stuff that I’m currently working on. When I paid for a year’s worth of Pluralsight, I wasn’t sure if I’d get my money’s worth out of it, but I think I’ve been making good use of it so far this year.

I’ve also now been sidetracked into messing around with TypeScript. I read a book on CoffeeScript a few years back, but CoffeeScript never really took off (at least in the .NET community), while TypeScript seems to be very popular right now. (Take a look at this Google Trends graph.) So I’ve been experimenting with using TypeScript and JSOM together in a SharePoint project. I’m not sure if it’s worth the effort, but it’s interesting. I haven’t devoted too much time to TypeScript yet, but I’ll probably watch a Pluralsight video or two on it and see if I can persuade myself into using it.

Finally, I feel like I should get back to Ruby on Rails at some point. I started learning Ruby back in 2015, and learned the basics (of both the Ruby language and the Rails framework) but really didn’t get as far as I wanted. I got partway through Michael Hartl’s book/tutorial, but I guess I got off track at some point, since I haven’t touched it since June 2015. As with F#, I never had any real project in mind, or work-related reason to learn Ruby, so I probably abandoned it in favor of something else I needed to learn.

So I guess I’ve got some goals for the rest of 2017: keep working on SharePoint, brush up on my JavaScript some more, look into TypeScript more deeply, and maybe get back to Ruby on Rails, if I have time.

WordPress syntax highlighting

I occasionally post code here, and I’ve never been entirely satisfied with the various ways that one can post nicely-formatted code on a blog. This blog has been around for so long that I’ve gone through several approaches. Recently, I’ve been putting all my code snippets in Github Gists, and then embedding those Gists here.

That looks pretty good, and works pretty well, but I’ve discovered a couple of downsides to that method. First, the code itself is not actually in my posts, so it doesn’t show up in searches, either here at the blog or (presumably) in Google or other search engines. I realized this a while back when I tried to search for a past post, using a bit of code that I knew was in the post. When I didn’t find it, I realized that of course the code wasn’t in the post, it was only out on Github. So I wanted to fix that, and get the code itself into my post database.

Second, the company I work for has started blocking the Gist site. I’m not sure why, but I guess maybe it’s occasionally used to post malicious code? Regardless, it’s a problem, since I sometimes want to bring up an old post of mine at work to remind myself of how I solved a problem in the past. When I do that now, the post is visible but the embedded gist is missing. And if my company is blocking gists, other companies are probably doing it too, so other people looking at my blog might be confused when they see a post with missing code.

So there are some good reasons to include actual code in my posts, rather than relying on Github. I could go back to just wrapping the code in <pre> and/or <code> tags, but I wanted to have something that would look at least as good as the embedded gists. So I started looking at syntax-highlighting plugins for WordPress.

I looked at Enlighter and WP-Syntax. Enlighter looks pretty cool, but I decided to go with WP-Syntax in the end. It uses GeSHI, which I’ve used before (in Drupal), and supports a lot of languages, including X++, which is a pretty obscure language. I installed it about a week ago. Today, I decided to spend a little time editing some of my old posts to move code from gists to WP-Syntax. It worked out pretty well. (And I’m still linking to the gists, so if the code gets scrambled, it’ll still be there on Github.)

To some extent, I guess this is just pointless busywork. My old posts don’t really get a lot of hits, and I really don’t refer back to them that often. But it was a nice little way to spend an hour on a cold Sunday afternoon, and it gave me a sense of accomplishment.

a birthday, a parade, and a good book

Tomorrow will be my 50th birthday. I wasn’t sure if I wanted to mention that on the blog, but I’ve previously posted about my 35th and 45th birthdays, so it’s not like it would be hard for anyone to figure out how old I am, if they wanted to know. So here it is: I’ll be 50 tomorrow.

The Somerville St Patrick’s Day parade is going on right now. I’ve been watching a bit from my window; it’s too cold out for me to want to go outside and watch. And I’ve been getting wrapped up in the final chapters of the final book of the His Dark Materials trilogy. I started re-reading it a few weeks ago, and I’m almost done now.

I had been planning to visit a friend yesterday to celebrate my birthday, but that fell through. That will probably happen next weekend now, but that means it’s been a generally uneventful weekend, since I didn’t plan anything else.

I used my Starbucks birthday reward to get a free chicken sandwich for lunch, so that was my big birthday meal. I’ve got a couple of Justin’s peanut butter cups I might eat later, in lieu of birthday cake.

I’m expecting that tomorrow will be a pretty normal, quiet day at work. But we’re supposed to get a lot of snow on Tuesday, so I think it’s going to be a chaotic week overall. I decided this year that I’m no longer going to be the guy who valiantly drives in to work in a snowstorm, so I expect I’ll either be working from home on Tuesday (and possibly Wednesday) or taking a PTO day. And if we get as much snow as expected, the whole week will be a mess. Here’s hoping that something vaguely approximating Spring gets started soon!