Generate Hashtags

Today’s problem was especially difficult. Not because the problem was hard, the problem is a no-brainer. No, it was difficult because I decided to only work in Emacs for these challenges.

I do not know the first thing about emacs.

To make things even more interesting I also decided I would not be using the mouse while I’m in emacs. It was a very interesting experience.

Generate hashtags problem

You are given a string with words and spaces. Turn it into a Hashtag.

Example

“Hello world” => #HelloWord

Caveats

  • Each word should be capitalized
  • Empty string return false
  • Hashtags over 140 characters are invalid and return false

Solution

So I guess the question is why on earth would I try out emacs? I mean I use Webstorm for work so what’s wrong with continuing with that? Am I trying to be a hipster? Am I being contrary just to be contrary? No, I actually have reasons, they aren’t good reasons but reasons non the less;

  • I’m starting to learn Rust, I can’t use Webstorm for it so I need an editor
  • I wanted to see what the fuss was about

People have been waging the Editor War since before I started programming. I’ve mostly kept to the sidelines and focused on my code but I think it’s about time I see for myself just how much more productive I can be. So for the next couple of months, I’m going to slowly start doing more and more stuff in emacs.

Another question would be why did I not start with vim? That’s easy, the coin landed heads.

On yeah, this is supposed to be a code challenge thing right?

Actual Solution

Let’s not overthink it. Generating hashtags can be brute-forced. So let’s do that.

function hashtag (str) {
  if (str.trim() === ''){
    return false
  }

  const hash = str.split(/\s+/).reduce((output, word) =>
    (output + word[0].toUpperCase() + word.slice(1)), '#')

  if(hash.length > 140){
    return false
  }
  return hash
}
Code language: JavaScript (javascript)

Trim white space, reduce while capitalizing, and Bob’s your uncle.

So what editor are you using? Is this Editor War still a thing? Something something code challenge, something something, hit me up on Twitter, @phoexer, happy coding.