When Advertising Is Not Advertising

Nicholas Rempel has an excellent rant on what passes for advertising these days with the post What We Have Now Is Not Advertising. His thesis is that while things like billboards, TV ads, and magazine ads are advertising, much of what is called advertising today is just spying and tracking in the service of showing targeted ads to people. This is, of course, what adtech is all about: vacuuming up as much information about users as possible so that they can be served targeted ads. Even leaving aside the seedier aspects of the whole enterprise—such as providing a platform for malware and other illegal activities—building huge databases of information about a significant portion of the population should give anyone pause.

As creepy as that collection is, what’s worse is that sooner or later the information will prove to be too tempting to the usual suspects and the iron law of data collection assures us that it will be abused. It wouldn’t surprise me in the least if the government is already subpoenaing information from the data brokers who collect it.

Rempel has some suggestions:

  • Get off social media as much as you can. Facebook and the like exist solely to collect your private information. Twitter is a giant time-sink that has been taken over by trolls and ideologues. You’ll be much happier and safer without them.
  • Be aggressive about blocking ads. The advertisers will try to guilt you and say it’s stealing. Tell them to get back to you when they clean up their own act. As I’ve said many times, I don’t object to ads and will happily allow them but I won’t tolerate being tracked or having arbitrary scripts run on my machines.
  • Be careful about “smart devices” you allow in your home. Don’t install anything that’s going to collect information. And for goodness sake, stay away from things like Alexa and Google home.

Rempel’s post is short and worth reading. It should remind us, once again, that the perpetrators of adtech are not our friends, their “services” are for their benefit, not ours and they should be resisted by any means possible.

Posted in General | Tagged , | Leave a comment

Eshell Aliases

I try to use Eshell for all my shell work. I’m not 100% successful but I mostly am so Eshell is an important part of my workflow. One of the things that makes using Eshell easier is aliases, just as it is in, say, a Bash shell. The thing is, I can never remember how to get them set up.

That turns out to be pretty simple. Marcin Borkowski (mbork) has a short post that makes me wonder why I even had a problem with it. It’s as simple as set it and forget it. Once you set an alias, Emacs will remember it for you. There’s a slight syntax variation between the Eshell alias command and the familiar Bash variant but once you’re aware of that, everything else is simple. Simpler, really, than in Bash where you have to set the aliases in a configuration file.

If you’re an Eshell user, be sure to take a look at mbork’s post. It really can make your life easier.

Posted in General | Tagged | Leave a comment

Multiple Mu4e Signature Blocks

Rob Stewart has a blog post that serves as a handy tip on implementing multiple signatures in Mu4e. For those who don’t know, Mu4e is an email client that runs inside Emacs. I use it and love it. It helps keep me inside Emacs almost all the time I’m not otherwise engaged in the browser.

The problem the post addresses is how to have one (informal) email signature block for friends and another (formal) one for more professional occasions. Follow the link and you’ll see that the problem is solved with just a tiny bit of Elisp. The code is easily expandable to have more than two signatures if you need them.

I love tips like this. They show how easy it is to make Emacs exactly the editor you want, usually with very little effort.

Posted in General | Tagged , | Leave a comment

Aggregate Tables

Thierry Banel and Michael Brand have a really nifty package, orgaggregate, for those who work with data and want to produce a summary or aggregate table from their primary table.

Here’s a simple example from their GitHub repository:

#+NAME: original
| Day       | Color | Level | Quantity |
|-----------+-------+-------+----------|
| Monday    | Red   |    30 |       11 |
| Monday    | Blue  |    25 |        3 |
| Tuesday   | Red   |    51 |       12 |
| Tuesday   | Red   |    45 |       15 |
| Tuesday   | Blue  |    33 |       18 |
| Wednesday | Red   |    27 |       23 |
| Wednesday | Blue  |    12 |       16 |
| Wednesday | Blue  |    15 |       15 |
| Thursday  | Red   |    39 |       24 |
| Thursday  | Red   |    41 |       29 |
| Thursday  | Red   |    49 |       30 |
| Friday    | Blue  |     7 |        5 |
| Friday    | Blue  |     6 |        8 |
| Friday    | Blue  |    11 |        9 |

#+BEGIN: aggregate :table "original" :cols "Color count()"
| Color | count() |
|-------+---------|
| Red   |       7 |
| Blue  |       7 |
#+END:

The second table produces a summary of the number of each color that appears in the primary table.

This is only the beginning. The package is quite powerful and can use just about any Emacs Calc function to calculate the summary. To really appreciate what you can do with the package, you should look through the README at the repository. It has many more examples that show the types of things that you can do with orgaggregate.

I just stumbled across a reference to this package so I haven’t yet had a chance to use it but I’ll be giving it a try the first time an opportunity presents itself.

Posted in General | Tagged , | Leave a comment

Geek Trivia

Blaze, it turns out, was not the last geek to find this out: I didn’t know it either. I’m betting neither did a bunch of you so I’m sharing the knowledge.

Posted in General | Tagged | Leave a comment

An Email Based Git Workflow

A couple of months ago in writing about the Microsoft acquisition of GitHub I said that many projects—large, complicated ones like Linux and Emacs at that—didn’t use GitHub or its siblings at all but depended on email and (raw) Git to manage the project and its codebase. That’s not too surprising given that Git was developed with Linux and its email driven development process in mind.

Still, if all your projects have been mediated by GitHub, it may not be obvious what the alternative looks like. Drew DeVault prefers the email based workflow and has written a post that describes how it works. Git, not surprisingly, has excellent support for handling things with email.

If you’re still concerned about Microsoft and gitHub or if the acquisition served to make you want an alternative, DeVault’s post can help you get started. One downside to that process is that you don’t (automatically) have a central repository that anyone can access: the code is held in a distributed manner. Of course, that’s an easily solvable problem even if you use GitHub as simply a public access point. As DeVault notes, using the Git/Email process works just as well for small projects. If you’re managing a distributed project, you should take a look at DeVault’s post.

Posted in General | Tagged | Leave a comment

Selection and Navigation in Emacs

Gaurab Paul has a nice post on improving your Emacs workflow with selection and navigation. He says the post is aimed mainly at Emacs immigrants from “other, so called ‘modern’ editors” but he discusses some techniques that even more experienced Emacsers may find useful.

For example, if you are going to repeat a certain bit of text in the sequel, it makes sense to first set the mark, then type the text, and then copy the text to the kill ring with Meta+w. Then when you want additional instances of the text, you can merely paste it in with Ctrl+y or Meta+y depending on what’s happened in the meantime.

He also discusses navigation and some of the Avy and Helm packages that make it easier. As regular readers know, I’m all in on Avy commands such as avy-goto-word-1 that allow me to quickly navigate to my desired location by picking the right candidate from all the words that begin with a particular character. Paul discusses a few other navigation techniques as well.

If you’re a n00b, you should definitely read this post. Even if you’re a bit more seasoned, you may learn some tricks to improve your workflow.

Posted in General | Tagged | Leave a comment

Managing Forks and Pull Request in GitHub

Susam Pal has an excellent write-up on how to fork a project, make some contribution to it, and generate a pull request for the upstream developer. That’s really handy because many times a user will find a problem and generate a solution locally but not be sure how to let the original developer know through the usual GitHub mechanisms. This can result in the contribution being lost to the wider user community.

Pal’s document doesn’t assume you’re using Magit so he does everything through raw Git commands but there’s nothing difficult or esoteric in those commands so it should be easy to do duplicate his workflow in Magit.

He starts with a quick reference sheet that shows the whole process but then explains each step in detail (including branch diagrams) so that someone unfamiliar with the process can understand what’s going on. He also looks at the workflow from the original developer’s point of view and shows how to merge a pull request into the main development branch.

If you’re a regular contributor to GitHub projects, all this will already be familiar to you. If you’re an infrequent contributor or n00b, this guide is just what you need to help you step through the process. It’s probably a good idea to bookmark the site so you can refer to it as needed.

Posted in General | Tagged | Leave a comment

Clone a GitHub Repository from Within Emacs

Here’s another great tip from Wilfred Hughes’ Emacs Command of the Day:

It’s a separate package so you’ll have to install it but if you work a lot with GitHub, it appears to be a worthwhile addition. Checkout the README at its GitHub repository for instructions on how to use it.

Posted in General | Tagged , | Leave a comment

Karl Voit on Key Bindings and File Hierarchy

Karl Voit has a couple of nice posts in which he discusses his key binding and file hierarchy strategies. If you’re like me, these things develop in an organic—a nice way of saying haphazard—way. They just evolve over time without a lot of thought or planning. Voit, of course, is an expert on this sort of thing so he has spent some time planning them out in a way that optimizes his workflow.

The main ways he optimizes is key binding layout is to put most of his own bindings under a single prefix. Combined with which-key, this makes it easy for him to find even infrequently used bindings. He also makes use of hydras as a sort of automatic cheat sheet for things like Dired.

Because most things I do involve Org mode in one way or another, a lot of my files live in a directory called org. The only serious subdirectory of org is blog, which contains the local copy of all my blog posts for Irreal. That directory contains just short of 3,000 files so it could probably benefit from being broken into subdirectories by, say, year.

I have additional directories for things like pictures, comics, tax forms, and source code repositories. Voit’s layout is much more thought out. He keeps most things in an archive directory that is further broken down by year and a few other specialized categories.

Voit says that research shows people would rather browse their directories than use a search tool to find files and to some extent his directory structure reflects that. I prefer to put things in broad categories and use a search tool to find what I need. Apple has Spotlight, which makes that pretty easy but I mostly depend counsel-rg and Emacs to find my files. Oddly, that approach is something I learned (or more precisely, adapted) from Voit.

It’s worth reading both his posts and mining those ideas that fit in with your own workflow. They both have a lot of good ideas.

Posted in General | Tagged , | Leave a comment