Finally!

It appears that at long last even the U.S. Senate is getting tired of the Intelligence Community’s dissembling on the abuse of §702 of the FISA act. They are insisting that they be informed of the number of Americans caught up in §702 surveillance. The answer should be essentially none because it’s against the law for Americans to be targeted.

Of course, as we know from Snowden and declassified FISA orders, thousands (or more)of Americans are routinely having their communications swept up in NSA operations. The point is, we don’t know because the Intelligence Community, despite numerous promises to do so, has refused to give the legislators the number.

The senators, finally, are fed up. They have, it turns out, a big stick to use to break the information free. Section 702 is up for renewal this year and there is a growing bipartisan willingness to hold up the reauthorization if the spooks don’t start playing by the rules. The usual suspects, of course, are trying to push through a permanent renewal with no changes but perhaps this time senators who have actually read the Fourth Amendment will prevail. One can only hope.

Posted in General | Tagged | Leave a comment

Adding Keymaps to Org Source Blocks

If you use Org mode and Babel, you know that by calling org-edit-special (bound to Ctrl+c by default) you’re put in a separate buffer that has the mode of the source block you were working in. That’s really convenient because you get syntax highlighting, proper indentation, and all the other benefits of being in a programming mode.

If you do a lot of coding in source blocks, you may find it inconvenient to always be switching into the org-edit-special mode. John Kitchin does a great deal of coding this way and decided to make his life easier by adding a keymap to the source block itself so that he could get the advantages of the programming mode without having to switch to the special buffer.

I use Org Babel a lot but I’m happy switching to the other buffer. Perhaps if I were doing it as much as Kitchin, I’d feel differently. If you would like to avoid the org-edit-special buffer, take a look at Kitchin’s post and the accompanying video.

Posted in General | Tagged , | 2 Comments

Zamansky 34: ibuffer and emmet

Mike Zamansky is back with the 34th video in his excellent Using Emacs series. This time he considers ibuffer and emmet. Most of you probably already know about ibuffer. I’ve used it since I started with Emacs and really prefer it to the default list-buffers. It turns out that it has some nice filtering and organizational capabilities that you might not be aware of. Zamansky covers these and points to a post by Martin Owen in case you want to see it written down.

The other package that Zamansky covers is emmet-mode, a fork of zencoding-mode. It’s a sort of super snippet package for HTML and CSS. It’s hard to describe so I’ll let you watch Zamansky’s video to see it in action. Arjen Wiersma has a slightly longer video that covers the same material. If you work with HTML or CSS you really want this package. There’s probably a bit of a learning curve (the cheat sheet is huge) but once you learn the basic patterns it has a certain tractive logic that makes it easier than it appears at first.

Zamansky’s video is just short of 11 and a half minutes so it should be easy to schedule some time for it while the coffee is brewing. Zamansky recommends that you take a look at Wiersma’s video too. That video is 12 and three quarter minutes so, again, it shouldn’t be hard to fit it in.

Posted in General | Tagged | 1 Comment

Using EWW as Your Default Browser (Sometimes)

As much as I like to stay in Emacs, most of my browsing is done in Safari. It provides a much better and richer experience than is (currently) possible in Emacs. Still, there are a lot of browsing tasks that are a natural fit for EWW. It’s just that I usually don’t remember to invoke it rather than a “normal” browser.

Over on the Emacs subreddit, emacsclient has nice suggestion that may work for some of you. He gives a small bit of Elisp that intercepts calls to the browse-url function and asks if you want to use EWW or your default browser. Depending on how often you call a browser from within Emacs, this may be a little distracting. Or maybe it’s just a nice way of conditioning yourself to think about using EWW more. Of course, many functions just call browse-url so perhaps emacsclient’s code is the best general solution.

Posted in General | Tagged | Leave a comment

How to Read Papers Efficiently

If you’re a researcher, or a grad student, or even just a diligent developer, you probably spend a great deal of time reading technical papers. Some of those will be of little or no use, some will be beyond your current understanding, and some will be very valuable and extend your knowledge. Piotr Limanowski has a very nice post that discusses strategies for reading those papers as efficiently as possible. Part of that, of course, is identifying which ones are worth further effort and which can be abandoned or saved for later.

Limanowski recommends a 3-pass approach in which the first two passes essentially winnow those papers worth spending time on and the final pass is where you read carefully and take notes. What I particularly like about his strategy is that he leverages Emacs and Org mode during the third stage. He uses pdf-tools to annotate the PDFs and Org mode to take notes that are linked to the PDF.

I’ve been intending to install pdf-tools for some time but the documentation says it’s not really supported under macOS so I’ve been reluctant to try. After reading Limanowski’s post, I followed the directions at the pdf-tools githup site and installed pdf-tools without a problem. It really is much better than the default Emacs PDF functionality.

Even if you’re not reading technical papers, you should take a look at Limanowski’s post. If you do anything with PDFs, it will give you some useful hints for improving your workflow. If you do read technical papers, the strategy he recommends is worth considering.

Posted in General | Tagged , | Leave a comment

More on Google’s Ad Blocking

When I first wrote about the changes coming to Chrome and Safari in the Adtech arena, I noted that some observers were worried that Google’s changes gave them too much power and could be abused. It turns out that they were right to worry.

The Intercept_ article linked above reveals what’s really going on. You really should read the whole thing but the TL;DR is that this is a Google strategy to first crush their competition by blocking their ads and second to do away with third party ad blockers, at least in Chrome. As I say, you should read the whole thing.

I’ve never been a big fan of Chrome—preferring to stick with Safari—so this doesn’t affect me one way or the other but Chrome is arguably the most popular browser so it does affect a lot of people. The Intercept_ article speculates that the DOJ could get involved if Google tries to push this too far. And, of course, the EU tends to be more aggressive about policing this sort of thing. It will be interesting to see what happens.

Posted in General | Tagged | 1 Comment

More on Mu4e

I know I’ve written a lot about Emacs and email lately but I can’t help myself—Stop me before I post again!—because there’s so much interesting material. Recently, I saw a pointer to a post from Martin Albrecht on his setup for using mu4e for email. More than most posts on the subject that I’ve seen, Albrecht has a carefully thought out, complete environment for email.

That includes such things as arranging to have email retrieved from his IMAP server on demand rather than constantly polling to see if there’s mail available, providing for footnotes in emails, using YASnippet to help generate boilerplate emails, arranging for special characters such as round quotation marks and math symbols to be used in the message body, and automatically using the correct dictionary depending on whether he is writing in English or German.

His solution for retrieving mail is particularly interesting. Rather than set a timer to have mbsync (or whatever) check for mail, he uses imapnotify to fire off mbsync when the server tells him there is mail ready. After mbsync finishes, imapnotify runs mu to index the new mail. This is how the native Mail app on macOS operates and it’s the one thing I’ve missed since moving to mu4e. As far as I can tell, imapnotify doesn’t run on macOS but it’s written in node.js (I think) so there’s probably no reason it couldn’t. Sadly, I don’t know anything about JavaScript, let alone node.js, but I’ve thought about adding a Mail app rule to fire off some Apple Script when mail arrives to do this, or perhaps using Automator somehow.

If you’re running on Linux and using mu4e and mbsync you should definitely take a look at Albrecht’s solution if your IMAP server supports IMAP IDLE. Actually, every Emacs user should take a look at his setup. It may give you a better email environment than you have now.

Posted in General | Tagged | 2 Comments

Apple Does it Again

In yet another privacy enhancing move, Apple announced that iOS 11 will no longer allow app developers to force always-on location services. If you’re like me, you became aware of this issue when Uber removed the “when App is running” option from their App’s location services so that users were forced to grant them permission to access their location at any time, whether or not the Uber App was running.

Uber claimed this was so they could figure out exactly where users were going after they were dropped off and use the data to provide better pick up services. Nevertheless, many users were uneasy with the move and some even resorted to manually disabling location services for the App except when they were actually using it.

That was an inconvenient and clunky solution that, happily, will no longer be needed. As of iOS 11, apps will be unable to disable the “only when running” option. Apple is also providing a mechanism to allow Apps to later request “always-on location services” after they have established some trust with the user. The post at the link has more details on this.

Apple deserves praise for this move and for building antitracking functionality into the new Safari. I wish other companies would be as diligent at protecting their users’ privacy.

Posted in General | Tagged | Leave a comment

Adtech Followup

As a followup to my post the other day on Adtech Progress, here’s some commentary from the EFF on the Google and Apple announcements. The TL;DR is that although the EFF welcomes both initiatives, they regret that Google, unlike Apple, has chosen not to do anything about tracking.

As I mentioned in my original post, the next version of Safari will have built-in antitracking technology. Chrome, on the other hand, will block the most annoying types of ads but will do nothing about tracking. That’s understandable, I guess, considering that Google’s business is based on Internet advertising but it should give one pause. If you live in the Apple ecosystem, this is a good reason to prefer Safari even if you otherwise like Chrome’s features. If you don’t want to do that, you should at least look into a plugin like Ghostery unless you don’t care about tracking.

Posted in General | Tagged | Leave a comment

Replacing Scrivener with Emacs

If you’re a writer who’s been using Scrivener, here’s a video on replacing Scrivener with Emacs and Org mode. The author is really a Vim guy so he’s using Evil but that’s really just a detail. His configuration as well as a link to the video is available so you can see how he set things up.

Again, it’s from the perspective of a Vim user but there’s a lot of good information. If you’re already an Emacs user and are using Scrivener or want to start a creative writing project, you should take a look at this video. It’s about 17 and a half minutes so plan accordingly.

Posted in General | Tagged | Leave a comment