De-Googlifying Your Life

I came across a post from Kev Quirk on why he was ditching his Android phone. He’s trading it in for an iPhone SE. The TL;DR is that Quirk tired of having Google pry into his life and record everything he did. There’s hardly any technical detail in the post and his reasons for wanting to leave the Google ecosphere have been well covered by Irreal so it wouldn’t normally be of much interest to our readers—except as a bit of Apple triumphalism—but for the backstory.

The backstory is that the ditching of his Android phone is the latest episode in his year long effort to de-Googlify his life. He wrote a series of eight short posts about that effort in which he describes how he replaced Google tools one-by-one until he was left only with what he considered irreplaceable Google services. His phone was one of the original irreplaceable parts so he’s still making progress.

He started with what he described as the “simple stuff,” replacing Chrome with Firefox and Google Search with Duck Duck Go. He moved on from the low hanging fruit to the much harder to replace Gmail, GCalendar, and Contacts. He was, in all cases, able to find replacements that he felt were at least as good or better than their Google counterparts.

Of the services that he found irreplaceable, the only one I agree with is YouTube. That’s partly because (1) I don’t do social media of any kind except for Irreal, and (2) the Apple ecosystem provides me with good alternatives, which despite what Quirk says, have much better privacy policies.

The whole series is interesting and worth a few minutes of your time.

Posted in General | Tagged | Leave a comment

Refiling in Org Mode

Longtime Irreal readers may remember my post on Aaron Bieber’s talk on moving from Vim to Emacs that he gave to the Boston Vim Meetup back in 2015. Since then, I’ve mentioned him in a few other posts.

The other day, I saw a pointer to a post of his from a year and a half ago on refiling in Org mode. It turns out that the refiling functionality is highly configurable and can be adapted to your particular workflow. The majority of the post discusses how to specify the destination of the refile.

There’s a lot of good information in the post that I didn’t know. If you’re an Org user, you should definitely take a look at it.

Posted in General | Tagged , | Leave a comment

Troy Hunt on Why Passwords Aren’t Going Away

I was trying to create a Web account with my credit card company so I could update some information. The process was painful beyond endurance and their password policy revealed that they weren’t using the best practices method of hashing and salting with something like bcrypt. I kept thinking that there’s got to be a better way of securing sites than passwords.

Troy Hunt, whose security work Irreal has discussed many times, makes a cogent argument for why passwords aren’t going away any time soon. There are, to be sure, better methods of verifying user identity but none of them is going to replace the password. The reason for that is also the reason you see so many stupid and horribly insecure password policies on the Web: friction.

Users have a low tolerance for friction so Web sites with something to sell make it as easy as possible to sign up and log in1. Otherwise the users won’t be there. Some of the alternative methods don’t seem much harder than using a password but users are familiar with passwords and understand how to use them. That clever, vastly more secure, new method you’re proposing? Not so much.

So companies keep on using passwords even though much better methods exists. Read Hunt’s post for his complete—and much deeper—analysis of the situation.

Footnotes:

1

Well, other than my credit card company, apparently.

Posted in General | Tagged | Leave a comment

A Win for Open Access

In a win for open access in publishing two major funders will no longer cover publishing in hybrid journals. The two funders, The Wellcome Trust and the Bill & Melinda Gates Foundation announced that they will not provide research funding unless the results are made publicly available for free at the time of publication. They joined a consortium of 11 European funding agencies with the same policy.

This is, I think, the proper way to force academic publishers like Elsevier to adapt their business models to the Internet age. They will kick and scream at losing their ability to rent seek but their business models depend on the free content that researchers provide to them. Researchers, on the other hand, depend on the funding agencies to finance their research. If that funding is made contingent on publishing in an open access journal, they will do so, even foregoing a more prestigious closed journal.

Taking a broader view, this could hasten the demise of the academic publishers. Despite the notorious difficulties of digital preservation, one can reasonably argue that the publishers no longer provide any added value. What researcher is going to trek to the library, dig out a dusty journal, and Xerox the paper they’re interested in when they can bring up a copy on their office computer? The publishers don’t mind this because they’re still charging the university a hefty subscription fee to provide the on-line access. But if their content dries up because researchers are publishing in on-line journals that provide access for free what is the rationale for their existence?

Posted in General | Tagged | Leave a comment

Implementing Strings

Andreas Zwinkau has a very nice article on strings and how to implement them. If you’re a C programmer, your first reaction might be, “Meh. They’re an array of bytes. What’s to implement?” If you’re, say, a Python programmer, you may not have thought about the question because, after all, they’re a built-in primitive type.

But there are interesting questions to be asked, even for the C programmer. As a single example, it used to be that strings were made up of a series of characters, each a single byte. In these days of Unicode, that’s not true even for the most parochial of middle American programmer with no intention of having users outside his town, let alone his country.

The first interesting question is string length. A simple byte count is no longer adequate when a character can be 1, 2, 3, or 4 bytes as they can in UTF-8. On the one hand, you need a byte count for low level operations such as allocating space for the string or copying one string to another. But very often, it’s the character count that the application programmer is interested in so you need to record both or have any easy way of calculating them.

Some programming language purists have railed for years about the traditional C method of marking the end of a string with a NULL byte and calculating string length by simply scanning down the string looking for the NULL and counting the bytes as you go. Yes, it’s computationally expensive and yes, it can be a source of subtle bugs but it never bothered me or—I’d wager—any competent C programmer. Regardless, it’s clearly not adequate in a Unicode world so other implementations are needed.

A large part of Zwinkau’s post is concerned with this question but there are other interesting questions as well. If you’re a programmer, you should definitely take a look at the article. It doesn’t reveal any earth shattering, new, magical methods but it does show how to solve some of the problems involving strings that few of us have to worry about.

Posted in Programming | Tagged | Leave a comment

Blocking Elsevier

I’ve written before about Sci-Hub and their fight with the publishing industry (1, 2). It’s easy to see both sides of the argument but one side, the publishers, have acted in ways that deplete whatever goodwill they might have had.

Boing Boing is reporting on the latest skirmish. Elsevier sued Bahnhof, an ISP in Sweden, demanding that it block access to Sci-Hub. They got the courts to agree and since a larger better heeled ISP had lost an appeal on a similar suit, they reluctantly agreed to comply. But they went a step further and blocked access to the Elsevier site as well, saying that if Elsevier wants to block sites, they should get a taste of their own medicine. For good measure, they also blocked access to the Bahnhof site from any connections coming from the Patent and Market Court that had issued the original ruling

Whatever you’re feelings about the dispute between Sci-Hub and the publishers, it’s hard not to see Bahnhof’s response as the perfect middle finger to those who use arguably out-of-date laws to punish anyone who interferes with their business model and draft third parties to involuntarily do their dirty work.

It’s one more reason, if you needed it, to take the side of Sci-Hub.

Posted in General | Tagged | Leave a comment

Zamansky 53: Emailing Your Agenda

Mike Zamansky is back with another video in his Using Emacs Series. This time it’s about mailing himself a copy of his current Org agenda.

I found this video useful for a couple of reasons. First, he discusses the Org mode batch commands that let you execute some of the agenda functions from batch mode. That’s really handy when you want to access your agendas from outside Emacs. I didn’t know about these commands so his discussion of them already made the video worthwhile for me.

Second, and probably more important for most people, is that he had to solve a problem many of us have. In order to reliably send himself an email with his agenda, Zamansky needed an always-on server that was accessible from the Internet. It needed to be accessible from the Internet—not just have access to the Internet—so that he could sync his agenda files to it. If you have a desktop machine that you leave on all the time, you can solve this problem with something like Dropbox or Syncthing but Zamansky’s desktop isn’t always on so he needed another solution.

His solution was to create a Droplet on Digital Ocean that he could sync his agenda files to and have it send him an email everyday. That turns out to be pretty simple and may be just the solution you’re looking for. Take a look at Zamansky’s video to see.

The video is 17 minutes, 39 seconds so you’ll probably need to schedule some time.

Posted in General | Tagged , | Leave a comment

High School Students and Basic Computer Skills

Chris Wellons over at Null Program has an interesting post on High School students and how they lack a couple of basic computer skills that hamper their advancement in the subject. Wellons mentors students so he’s seen these problems first hand.

The first problem is that they have no notion of how files are stored or of file paths. That’s not too surprising given that devices like smart phones and tablets hide the notion of file and concentrate on the concept of application data instead.

It’s the second problem that resonated with me: students don’t know how to touch type. If you’re going to be a developer, this is a skill that can make a huge difference. It’s surprising how many “IT professionals” don’t touch type.

Back in the antediluvian days, High Schools offered a course called “Personal Typing.” It taught you enough basics to get you touch typing even if you weren’t up to secretarial speed standards. I don’t know if such courses are still offered but I wouldn’t be surprised if they aren’t. If you’re going to use up your electives on computer courses, you probably won’t have time for personal typing. Still, it seems worthwhile to me.

In these days when typing is rapidly replacing handwriting as a way of recording our thoughts, it seems to me that you’d want to be as efficient at it as possible. It’s fine to say—as I often have—that there’s no need to teach cursive handwriting because it’s mostly been replaced by typing but if you’re going to make that claim you should at least teach kids to be good at it.

Posted in General | Tagged | Leave a comment

Programmatic Capitalization

Xah Lee, as most of you know, is fanatical about keyboard ergonomics. He’s always measuring, experimenting, and looking for ways to make his typing easier and more ergonomic. He especially tries to avoid key chording. Someone recently tweeted a pointer to one of his blog posts from last year on programmatically capitalizing sentences. The post has some Elisp code to accomplish this.

The idea is that instead of using the Shift key all the time, you just write your paragraph in lower case. Afterwards, you run his code and it capitalizes the sentences for you. Key chording—especially just shifting case—doesn’t bother me but lots of folks feel differently. If you’re one of those people looking for ways to simplify your typing as much as possible, you should take a look at Lee’s code. You can, of course, still use the Shift key when you want but you don’t have to, at least not to capitalize sentences.

Posted in General | Tagged | Leave a comment

Zamansky 52: Eyebrowse

Mike Zamansky is back with the latest edition of Using Emacs. This time the video is about the eyebrowse package and how he uses it to easily switch between window configurations as he moves from task to task.

I’ve been curious about eyebrowse since I saw Grant’s short video about it over at Wisdom and Wonder. Grant’s video was more about developing a hydra to use with eyebrowse so I was happy to see Zamansky’s demonstration of it in action.

If you have a number of tasks—or task types—that you like to have a fixed window/buffer configuration for, eyebrowse may be just what you need. The one thing lacking, as Zamansky pointed out, is that there’s no way to save your window configurations across Emacs sessions. Even though I tend to run Emacs for weeks at a time, package upgrades or a system reboot occasionally mean I have to restart it.

It probably wouldn’t be that hard to add that functionality but I’ve only glanced at the code to verify there was no save function so I don’t know what would be involved.

As always with Zamansky’s videos, this one is well worth your time. It’s only 8 minutes so it should be easy to fit in.

Posted in General | Tagged | Leave a comment