Software tests are great! I’m fortunate enough to have only worked with
code-bases with reasonable-to-excellent test coverage, and I wouldn’t want to
work in a world without tests. In fact, a thoroughly tested system is nothing
short of liberating.
[...]
Although fine-tuning your slack notifications is already reason enough to run
slack in Emacs, that’s only the beginning. Once everything is up and running
you get to decide what you want out of your slack. Some of the snippets below
simply make up for missing functionality, other customize the package beyond
what you can do on the Slack Webapp.
[...]
Keeping a REPL (or a console) always by your side is never a bad habit, and if
you use an IDE-package (like Robe for Ruby, or Cider for Clojure) it’s nigh
unavoidable. Being an essential part of your environment, it would be ridiculous
not to invest some time optimizing it.
[...]
There’s nothing I can praise about Magit that hasn’t been written in a dozen
blogs already, but since Jonas started a kickstarter campaign for it I knew I
had to say something. If you use Magit, you already know the greatness of it.
And if you don’t, hopefully I can convince you to try it in time to back the
campaign.
[...]
There’s no denying slack is a useful tool for intrateam communication, but it’s
also a powerful source of distractions. Though I can’t just turn it off all
day, I can certainly keep the spam in check.
[...]
Four Saturdays ago, on September 17, Emacs 25 was finally released. Almost two
years before that, I wrote a post predicting a few Big things to expect from
Emacs 25. Throughout the months since then, I’ve also been reporting interesting
new features as they arrived on the dev builds. Today, we compile a list of all
of those news posts, and review which predictions I actually got right.
[...]
One of the questions we get most often about CIDER is “can I configure X on a
per-project basis?”. Occasionally, you find someone suggesting (or even
implementing) some sophisticated configurable variable trying to account for
multiple simultaneous use-cases. Fortunately that’s one effort we don’t need to
make. Emacs already has that built-in in the form of directory-local variables
(dir-local for short).
[...]
Once you learn paredit, you really can’t go back. Even when you’re not editing
lisp you crave for the ease of manipulating everything as balanced sexps.
Although that’s (sadly) not always possible, you can still hack your way into a
bit of guilty paren-pleasure in pretty much any editing session.
[...]
After last week's post, Clément Pit-Claudel informed us of an alternative method
for providing input to compilations. I have no idea how I’d never learned about
that before, but I figure that other people might be in the same situation so
it’s worth a post. Have a look at the Update at the end of the post.
[...]
The Emacs compile command is a severely underused tool. It allows you to run
any build tool under the sun and provides error-highlighting and jump-to-error
functionality for dozens of programming languages, but many an Emacser is still
in the habit of switching to a terminal in order to run make, lein test, or
bundle exec. It does have one limitation, though. The compilation buffer is
not a real shell, so if the command being run asks for user input (even a simple
y/n confirmation) there’s no way to provide it.
[...]
fill-paragraph is probably among the most underappreciated Emacs commands. I
use it dozens of times a day, and never stop to think of just how awesome and
practical it is. Still, we can make it a little bit better. Every once in a
while I need to “unfill” (or “unwrap”) a paragraph that’s broken over many
lines.
[...]
I wish I had reviewed this book when it first came out, over one year ago. Alas,
those were busier times and this piece of work deserved more than a short post
hastily written between seminars and group meetings. Fortunately, Mickey has
unknowingly gifted me a second opportunity, by making it half-off for its 1 year
anniversary, and you have until tomorrow to grab the discount.
[...]
show-paren-mode is a minor-mode that highlights the bracket at point (be it
round, square, or curly) as well as its corresponding open/close counterpart. I
find it a must-have for Elisp and Clojure programming. On the other hand, when
editing Ruby code, it also highlights whole block delimiters, like def, do,
if, and end, and all that must-haviness quickly turns into
in-your-faceviness.
[...]
Emacs’ customizable variables (a.k.a., defcustom) are allowed to specify a
:type parameter for setting its custom-type. The customize interface uses this
information to produce a sophisticated menu for the user to customize that
variable. However, a large fraction of users use setq to directly edit custom
variables, and even some packages programmatically change the value of other
package’s custom variables. Ultimately, there are no guarantees that the value
in question matches the :type specified in the variable.
[...]
As laptop touchpads seem to be steadily increasing in size, one unfortunate
consequence is that it becomes increasingly harder to avoid touching them by
accident while you type. Most systems have safeguards in place that disable the
touchpad as you’re typing, but they always seem to fall short for me when it
comes to Emacs. While in Emacs, my hands are permanently resting on the keyboard
(and over the touchpad), so even if I stop typing for several seconds I don’t
want the touchpad to reactivate.
[...]
What tests you shouldn’t write: an essay on negative tests
19 May 2019 CommentSoftware tests are great! I’m fortunate enough to have only worked with code-bases with reasonable-to-excellent test coverage, and I wouldn’t want to work in a world without tests. In fact, a thoroughly tested system is nothing short of liberating. [...]
Mold Slack entirely to your liking with Emacs
09 Oct 2017 CommentAlthough fine-tuning your slack notifications is already reason enough to run slack in Emacs, that’s only the beginning. Once everything is up and running you get to decide what you want out of your slack. Some of the snippets below simply make up for missing functionality, other customize the package beyond what you can do on the Slack Webapp. [...]
Turbo up your Ruby console in Emacs
02 Oct 2017 CommentKeeping a REPL (or a console) always by your side is never a bad habit, and if you use an IDE-package (like Robe for Ruby, or Cider for Clojure) it’s nigh unavoidable. Being an essential part of your environment, it would be ridiculous not to invest some time optimizing it. [...]
It’s Magit! And you’re the magician!
20 Sep 2017 CommentThere’s nothing I can praise about Magit that hasn’t been written in a dozen blogs already, but since Jonas started a kickstarter campaign for it I knew I had to say something. If you use Magit, you already know the greatness of it. And if you don’t, hopefully I can convince you to try it in time to back the campaign. [...]
Keep your Slack distractions under control with Emacs
18 Sep 2017 CommentThere’s no denying slack is a useful tool for intrateam communication, but it’s also a powerful source of distractions. Though I can’t just turn it off all day, I can certainly keep the spam in check. [...]
Emacs 25 is out! What are the new features and what were my predictions
11 Oct 2016 CommentFour Saturdays ago, on September 17, Emacs 25 was finally released. Almost two years before that, I wrote a post predicting a few Big things to expect from Emacs 25. Throughout the months since then, I’ve also been reporting interesting new features as they arrived on the dev builds. Today, we compile a list of all of those news posts, and review which predictions I actually got right. [...]
A quick guide to directory-local (or project-specific) variables
05 Jul 2016 CommentOne of the questions we get most often about CIDER is “can I configure X on a per-project basis?”. Occasionally, you find someone suggesting (or even implementing) some sophisticated configurable variable trying to account for multiple simultaneous use-cases. Fortunately that’s one effort we don’t need to make. Emacs already has that built-in in the form of directory-local variables (dir-local for short). [...]
A few paredit keys that take over the world
29 Jun 2016 CommentOnce you learn paredit, you really can’t go back. Even when you’re not editing lisp you crave for the ease of manipulating everything as balanced sexps. Although that’s (sadly) not always possible, you can still hack your way into a bit of guilty paren-pleasure in pretty much any editing session. [...]
Restarting the compilation buffer in comint-mode
17 Jun 2016 CommentAfter last week's post, Clément Pit-Claudel informed us of an alternative method for providing input to compilations. I have no idea how I’d never learned about that before, but I figure that other people might be in the same situation so it’s worth a post. Have a look at the Update at the end of the post. [...]
Provide input to the compilation buffer
09 Jun 2016 CommentThe Emacs
compile
command is a severely underused tool. It allows you to run any build tool under the sun and provides error-highlighting and jump-to-error functionality for dozens of programming languages, but many an Emacser is still in the habit of switching to a terminal in order to runmake
,lein test
, orbundle exec
. It does have one limitation, though. The compilation buffer is not a real shell, so if the command being run asks for user input (even a simpley/n
confirmation) there’s no way to provide it. [...]Fill and unfill paragraphs with a single key
31 May 2016 Commentfill-paragraph
is probably among the most underappreciated Emacs commands. I use it dozens of times a day, and never stop to think of just how awesome and practical it is. Still, we can make it a little bit better. Every once in a while I need to “unfill” (or “unwrap”) a paragraph that’s broken over many lines. [...]A review of Mickey Petersen’s “Mastering Emacs” book, for beginners and advanced users
29 May 2016 CommentI wish I had reviewed this book when it first came out, over one year ago. Alas, those were busier times and this piece of work deserved more than a short post hastily written between seminars and group meetings. Fortunately, Mickey has unknowingly gifted me a second opportunity, by making it half-off for its 1 year anniversary, and you have until tomorrow to grab the discount. [...]
Locally configure or disable show-paren-mode
18 May 2016 Commentshow-paren-mode
is a minor-mode that highlights the bracket at point (be it round, square, or curly) as well as its corresponding open/close counterpart. I find it a must-have for Elisp and Clojure programming. On the other hand, when editing Ruby code, it also highlights whole block delimiters, likedef
,do
,if
, andend
, and all that must-haviness quickly turns into in-your-faceviness. [...]validate.el: Schema validation for Emacs-Lisp
10 May 2016 CommentEmacs’ customizable variables (a.k.a.,
defcustom
) are allowed to specify a:type
parameter for setting its custom-type. The customize interface uses this information to produce a sophisticated menu for the user to customize that variable. However, a large fraction of users usesetq
to directly edit custom variables, and even some packages programmatically change the value of other package’s custom variables. Ultimately, there are no guarantees that the value in question matches the:type
specified in the variable. [...]Disable Mouse only inside Emacs
02 May 2016 CommentAs laptop touchpads seem to be steadily increasing in size, one unfortunate consequence is that it becomes increasingly harder to avoid touching them by accident while you type. Most systems have safeguards in place that disable the touchpad as you’re typing, but they always seem to fall short for me when it comes to Emacs. While in Emacs, my hands are permanently resting on the keyboard (and over the touchpad), so even if I stop typing for several seconds I don’t want the touchpad to reactivate. [...]
Content © 2019, All rights reserved. Icons under CC3.0.