tramp-mode is great for editing files remotely, but sometimes having a shell and Emacs together on the same file can be invaluable.

eshell opens up a shell which is like a regular Unix shell, but is written completely in Elisp, so it's built-in to Emacs and is completely portable. eshell has many interesting properties, but let's focus on editing files remotely.

When in eshell, it is possible to change the working directory into a remote directory with the same syntax as tramp-mode. Yes, no manual ssh-ing to the remote machine, it's more like a fuse-sshfs connection, but without fuse and without the...

Amazon AWS has a nice command line client for their public cloud. This client is very well suited for automating tasks in many IaaS DevOps scenarios. However, it can also be used by a person. The scenarios to do so might be different than for automation, though.

A common scenario for looking into S3 is to want to list files ordered by date and including metadata. On a Unix machine, this would be an ls -lt. If it's a very long list of files, you might want to cap the list - which again is very easy to achieve, for...

If you happen to upgrade your Debian Jessie to Stretch (currently Debian Testing), one of the things you might want to patch is the default behavior of Chromium having extensions disabled by default. There's no way to fix that in the UI, it has to be done by setting a global configuration flag.

There's also a reason why extensions are disabled by default. Apparently Chromium started downloading binary extensions that don't show in the extensions list which had access to the Google Voice API which sounds kinda scary. Well, maybe it is, maybe it isn't.

However, if you decide you can't live...

Many programmers commit infrequently and their pushes are even rarer. There are multiple reasons for that - some programmers have a strong background in version control systems like SVN or even CVS (yes, both are still a thing in 2017) where branching and committing is expensive. Other programmers mention reasons in the range of "I'm not finished, yet" and won't commit or push for days or weeks.

If you are using a modern VCS like git or mercurial, then committing and branching is actually very cheap. With those, it is actually best practice to commit early and often. If you don't...

This is nothing more than linked list of resources for learning how to write DSLs with Ruby, but also DSLs in general.

(DSL stands for Domain Specific Language and which is a programming language that is closely modelled after the domain it is used in. Wikipedia has a good introductory article.)

Obie Fernandez wrote the reference on Rails. In this podcast he speaks about what a DSL is, the difference between internal and external DSLs as well as the importance of the flexibly syntax of the host language in order to make DSLs worthwhile.

Martin Fowler is a well...

Back in the days when I was developing in Ruby most of my waking hours rbenv was a real life saver. But looking at what it does, it initially felt awkward how it "wrapped" the cd command. You could argue that the Ruby community are no strangers to guerrilla patching. But it felt less awkward when I learned that in my zsh it uses hooks instead of guerrilla patching to achieve the same goal: React on changing the directory.

In the meantime I tried a couple of things with zsh hooks to optimize work flows and what not, but...

Frustration with slow and manual processes is probably my number one motivator to discover new tooling. Having lately worked with Swagger on a Json API I found myself in need of a tool to work with Json on the command line.

I tried a couple and just when I was about to make the decision that I want to try them all to find the best one my search was cut short when I tried jq. On the web site it claims: jq is like sed for JSON data. And come to think of it what would we do without...

TL;DR Use codegraph to visualize dependencies within a Clojure file. Codegraph applied to itself will for example generate this graph:

example codegraph graph

Here is how it works.

The other day I wished I had a visualization of the dependencies in a piece of ClojureScript code that over the course of the year has gotten a bit unwieldy. I did some thinking and some codeing and it turns out it's quite easy. Here are some of the highlights in code & images, but mostly code.

Reading a string and have it evaluates in Clojure is done with read-string. Reading a...

Module Hot Loading enables a super efficient workflow without the pain of manual reloading of your web application. What do I mean by that? Well, the usual web developer cycle is:

  1. Write code
  2. Save code
  3. Switch to Browser
  4. Hit Reload
  5. See what happens
  6. Switch back to Editor

Half those steps (3, 4 and 6) are manual and very repetitive if you want to have an incremental development experience. They can be automated completely.

There are some frameworks that support Module hot-loading by now. ClojureScript and Elm probably were the first languages to support that paradigm, but it's possible in JavaScript as well, by now.

This is a demo showing...