Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

February 06 2018

VimR is mostly one person's work

I just noticed that a very large part of VimR is the contribution of a single person Tae Won Ha. That’s an impressive accomplishment.

I’d really love to see more people contributing to VimR and the project moving faster as I see a lot of potential in it. And I’d definitely like to have an alternative to MacVim.

February 03 2018

An Emacs history started circa 90s

I don’t remember how I got in touch with Emacs, most probably XEmacs in the nineties, when I was studying.

Emacs was the ultimate choice of environment to write LaTeX documents using the awesome AUCTeX package. As I remember correctly, this was my main application for Emacs besides the usual text file manipulation.

I’m fascinated by such stories. For many, text editors (and IDEs) are becoming over time intimate personal experiences.

The only other thing fascinating me even more are the transitions and what leads us to make them.

February 02 2018

The conversation I heard so far about HomePod

  1. It’s too expensive for an Amazon Echo and Google Home.

    No, HomePod puts the music first and thus shouldn’t be compared with those.

  2. How come the HomePod claims to be a music speaker but has no inputs?

    It is so Apple-like to remove all inputs. (Actually I think I agree with this. I’d go even further that this is any company trying to make you pay for another service; like say Apple Music or iTunes Match)

I was planning to stay away from Apple news. I don’t have any of these smart devices and I was always curious to understand their main use cases. The HomePod as a speaker with some Siri doesn’t sound too exciting to me.

February 01 2018

Tackling healthcare with "technology solutions" provided by Amazon, Berkshire Hathaway, and JPMorgan

An intriguing initiative from 3 companies that don’t seem to have much to do with healthcare, Amazon, Berkshire Hathaway, and JPMorgan1:

How the venture will provide less pricy healthcare to the 1.2 million employees of the participating companies isn’t yet clear. The new company will leverage “technology solutions” that provide “simplified, high-quality and transparent healthcare at a reasonable cost.”

I’m aware that I might be entering a dangerous territory discussing healthcare. Since I moved to US, this has been one of my top concerns. Sometimes I’m thinking that I could probably find some explanations for the prices if the system would work smoothly—having to wait months for an appointment can’t be the sign of a smooth system–and if we’d know what we get covered for. When I was handed the first detailed coverage document, I burst in a nervous laugh. And then I panicked.

I’ve been lucky to always have coverage and even more lucky to have a healthy family. I’m very grateful for that.

  1. Wasn’t JP Morgan one of the principal actors causing the 2008 financial crisis? What would it take to trust such a company with your healthcase? 

Enable Use Option as Meta key to move efficiently in the macOS Terminal

I’ve seen Clément Chastagnol’s post Moving efficiently in the CLI and diagram a couple of days ago and what caught my eyes right away were the Alt- bindings. I knew that on my machine those would led to the special characters.

And then I remembered about an option I’ve seen in the settings and always wondered what’s about: Use Option as Meta Key (Settings -> Profiles -: Keyboard tab). Now all these shortcuts are working:

Navigation and Text Manipulation in

I might be among the last turning on this option.

January 31 2018

Evil game...

The video is just 1:30min long. I continued to laugh for much much longer. Now that I’m posting it, I’m actually laughing again.

If you are ready to risk your iPhone, the game is TrapAdventure 2 -Hardest Retro Game.

VimR: macOS native text editor backed by Neovim

Today is the day of text editors. A week or so ago, I’ve learned about VimR which is a macOS UI backed by Neovim.


I’ve replaced MacVim with VimR for most of text work I’m doing. It feels nice and snappy. It still crashes too frequently though.

AMP - Vim-inspired text editor for the terminal written in Rust

The features emphasized on the front-page make it sound intriguing. I hope the part about plug-ins will be reconsidered though:

Many editors allow users to extend and change much of their behaviour through the use of plug-ins. This is not a goal for Amp.

Vim, Emacs, and even modern IDEs all gained a lot from having an extensible architectureenabling their users to extend the core functionality through plugins.

January 30 2018

Open sourcing the open sourcing process?

Listening to a very interesting podcast on MonkeyType a tool built at Instagram that collects type information at runtime and then can generate static type annotations, another bit that caught my attention was this exchange about the open source process at Instagram/Facebook:

Question: In terms of process, is there already an existing set of guidelines at Instagram for producing open source libraries or modules? How does the logistical process looks like?

There is a pretty well defined process. I was actually pretty surprised at how well defined and easy it was. I was pretty impressed how quickly we were able to do it.

A while ago Facebook open sourced the specs and design of their custom servers. Maybe over time we will see open source processes for open sourcing.

January 29 2018

Judging books by their covers: Five publishing design cliches

Here, with apologies to graphic designers everywhere, we’ve mocked up five other book design clichés - alongside some real-world ‘bookalikes’ - ranging from the brooding silhouetted men of Jack Reacher-style airport thrillers to the bold full-page typography of literary fiction.

Next, probably Amazon and Apple, will start generating book covers in a similar manner to how Netflix is generating movie thumbnails .

January 28 2018

Handball and management: a possible answer to moving to success to failure and back again

After watching the handball final today—Spain completely changed the strategy midway through the game and won in the end: at break time Spain was led by 2 goals and in the end they won by 6—I realized that one answer to my management question from the other day on how a team could so quickly go from success to failure is that however experienced the team is, underestimating the challenge and approaching it from the angle “oh, we’ve done this before” might lead to very unexpected results.

Experience should help you be in control and cruise safely through the project, minimize risks, and deliver successfully. If it switches your perspective to belittle the risks, then you’ll probably be in for a surprise; and not of the pleasant kind.

When to squash commits?

Any good resources about when squashing commits makes sense or should be used?

Please send any useful links my way either by leaving a comment below or tweeting at me. Thanks

Handball and management: from success to failure and back up

On January 29th, 2017 France was winning the World Handball Championship. Yesterday, after 6 wins in the European Handball Championship—the only team with only wins until the semifinal, France was eliminated by Spain after a game in which Les Bleus looked very different.

I’m trying to understand what led to this unexpected result given the previous results obtained in the tournament and also the fact that the French team this year is very similar to the one in 2017—fact that I take as an advantage of unity and team efficiency, more than a sign of a team getting old. To be very clear, I have no intention to minimize Spain’s success which was won with a great strategy, game plan, and effort.

My curiousity is mostly related to what mechanics can change so radically the way a very experienced and well greased team with a perfect track record performs in a critical moment. And next, how do you regain your confidence to play the next game.

Imagine working with a very experienced team that delivers consistently high quality releases. Now with no visible changes in the objectives or area of work, we not only fail to ship in time, but during the whole iteration we are almost clueless of how to address the growing delays and issues.

Update: next day France won the bronze medal in a game with Denmark. When I wrote the title the other day, I had no intention to make it sound like a prediction. I was rather thinking that in sports, you need to be able to refocus very, very fast after a win or a lost.

September 05 2017

SteerMouse is indeed the ultimate tool for configuring mice on macOS

It looks like it didn’t take me long to get to SteerMouse.

I continued to ask questions about the Evoluent Mouse Manager and learned that there are no plans to support application-based mappings in the macOS Evoluent Mouse Manager.

Next I tried BetterTouchTool which is my tool of choise when it comes to configuring the touchpad, or an Apple mouse, or even the touchbar. While BetterTouchTool supports the idea of multiple configurations, switching between them is a manual process. What this means is there isn’t an easy way to maintain and switch configurations for multiple mice.

These attempts finally brought me to try SteerMouse. And so far it provides exactly the functionality I’ve been looking for:

  1. recognizing different mice and being able to switch configurations accordingly
  2. recognize all the extra buttons in my mice (e.g. Evoluent VerticalMouse, Anker vertical mouse, Logitech M705, and Logitech MX Performance)
  3. ability to configure different behaviors for the mouse buttons based on the active application.

Based on my initial experience, SteerMouse seems indeed to be the BetterTouchTool for mice. And I haven’t even tried yet its chording operations.

SteerMouse main configuration window

August 31 2017

Evoluent Mouse Manager supports the advanced per-app button mappings. But not on macOS

I just learned that the Evoluent Mouse Manager for Windows supports the feature that I was looking for that allows defining per app mappings. The button in the screenshot is pretty clear: “Customize functions for different programs”.

Evoluent Mouse Manager 5.61

To make things even more disappointing, I have found a screenshot of an older version (3.3) in which this feature already existed:

Evoluent Mouse Manager 3.3

I can only hope that at some point this feature will also be supported by the macOS Evoluent Mouse Manager tool.

August 27 2017

SteerMouse - BetterTouchTool but for mice

In researching how to best configure the Evoluent vertical mouse , I’ve run into SteerMouse. I haven’t had a chance to play with it, but it looks like BetterTouchTool but for mice. I’m bookmarking it here, just in case I’ll need it later.


Mapping the Evoluent vertical mouse buttons on macOS: BetterTouchTool or Evoluent’s tool?

After trying an Anker vertical mouse for a few months, I finally decided to try the original vertical mouse from Evoluent 1. As with other advanced multi-button mice (e.g. Logitech MX, etc.), Evoluent offers a tool to customize the extra-buttons. The configuration tool offers pretty much all the mapping options I’d expect; or at least I didn’t run into any limitations. I could map buttons to simple actions like Back or Forward, other predefined actions like Mission control, and even keyboard shortcuts.

What I found missing though is the ability of defining per application mappings. In case you haven’t used such mappings, they offer a mechanism to define differfent button behaviors depending on the active application. Such a feature truly maximizes the value of the extra buttons these advanced mice are coming with. Logitech’s application for configuring the mouse supports application-based profiles. Evoluent’s doesn’t.

This is when I started to wonder if using BetterTouchTool for defining custom behaviors for Evoluent’s extra buttons would give the flexibility I’m looking for. At the first glance, BetterTouchTool seem to recognize all Evoluent’s buttons and that means that this migth work nicely2.

As a side note, I couldn’t find much information out there about advanced mappings being used with the Evoluent vertical mouse. Any link or hints will be appreciated.

  1. as far as I can tell, there’s a huge difference in the position of the hand while using these 2 mice. But this post won’t focus on this. 

  2. there is one default button mapping that I don’t know yet how to deal with  

June 29 2017

Twitter thread - What's your favorite book introducing a programming language?

Super interesting answers.

June 13 2017

Reading "How will you measure your life?" by Clayton M. Christensen

The other day I’ve started to listen the “How will you measure your life?” audiobook by Clayton M. Christensen.

The 2nd chapter introduces Frederick Herzberg’s two-factor theory or motivation theory. I have found it very educational. As a leader, you might discover or realize these aspects—what the theory calls hygiene and motivation factors—by yourself over time. It’s reassuring though to learn there’s a theory and research behind.

I’m also planning to watch the homonymous TEDx talk:

May 29 2017

What's the right way to organize my Go project code?

I’ve only worked with Go code a couple of times (the Go wrapper of the DataStax C++ driver for Apache Cassandra is one of them). But my familiarity with the rules and practices in the Go land is very limited. So when I looked to start a toy project I have found myself asking again: what’s the right way to organize my Go project code?

I have found very little online. The first, is Ben Johnson’s Structuring Applications in Go:

I used to place my main.go file in the root of my project so that when someone runs “go get” then my application would be automagically installed. However, combining the main.go file and my application logic in the same package has two consequences:

  1. It makes my application unusable as a library.
  2. I can only have one application binary.

The best way I’ve found to fix this is to simply use a “cmd” directory in my project where each of its subdirectories is an application binary.

There are some additional hints in the article about Go project code org, and some

I had very high hopes that I’ll find the final answer in David Crawshaw’s slides Organizing Go code. The slides are really interesting, but unfortunately they don’t provide the answer I was looking for.

Finally, I’ve run into Dave Cheney’s Five suggestions for setting up a Go projec. This article provides suggestions for the following types of projects:

  1. a single package
  2. multiple packages
  3. a command
  4. a command and a package
  5. multiple commands and multiple packages

All I read in this post makes sense to me. So until I hear other recommendations, this will be what I’ll be using.

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!