Micro – a modern and intuitive terminal-based text editor

micro-solarized

Micro is a modern console based text editor, written in Go.  Version 1.0.0 has been recently released.  It’s cross-platform (installs as a single binary) and supports a variety of features:

  • Easy to use and to install
  • No dependencies or external files are needed — just the binary you can download further down the page
  • Common keybindings (ctrl-s, ctrl-c, ctrl-v, ctrl-z…)
    • Keybindings can be rebound to your liking
  • Sane defaults
    • You shouldn’t have to configure much out of the box (and it is extremely easy to configure)
  • Splits and tabs
  • Extremely good mouse support
    • This means mouse dragging to create a selection, double click to select by word, and triple click to select by line
  • Cross platform (It should work on all the platforms Go runs on)
    • Note that while Windows is supported, there are still some bugs that need to be worked out
  • Plugin system (plugins are written in Lua)
  • Persistent undo
  • Automatic linting and error notifications
  • Syntax highlighting (for over 75 languages!)
  • Colorscheme support
    • By default, micro comes with 16, 256, and true color themes.
  • True color support (set the MICRO_TRUECOLOR env variable to 1 to enable it)
  • Copy and paste with the system clipboard
  • Small and simple
  • Easily configurable
  • Common editor things such as undo/redo, line numbers, unicode support…

Although not yet implemented, I hope to add more features such as autocompletion, and multiple cursors in the future.

If you are looking for a new editor, give Micro a try.

Troubleshooting with /dev/tcp and /dev/udp

Imagine you are on a freshly installed Linux machine with the minimal set of packages, and you need to test network connectivity.  You don’t have netcat, telnet, and your other usual tools.  For the sake of the example, imagine that even curl and wget are missing.  What do you do?

Well, apparently, there is a way to do this with plain old bash.  A way, which I didn’t know until today.  You can do this with /dev/tcp and /dev/udp. Here is an example verbatim from the Advanced Bash-Scripting Guide:

#!/bin/bash
# dev-tcp.sh: /dev/tcp redirection to check Internet connection.

# Script by Troy Engel.
# Used with permission.
 
TCP_HOST=news-15.net       # A known spam-friendly ISP.
TCP_PORT=80                # Port 80 is http.
  
# Try to connect. (Somewhat similar to a 'ping' . . .) 
echo "HEAD / HTTP/1.0" >/dev/tcp/${TCP_HOST}/${TCP_PORT}
MYEXIT=$?

: <<EXPLANATION If bash was compiled with --enable-net-redirections, it has the capability of using a special character device for both TCP and UDP redirections. These redirections are used identically as STDIN/STDOUT/STDERR. The device entries are 30,36 for /dev/tcp: mknod /dev/tcp c 30 36 >From the bash reference:
/dev/tcp/host/port
    If host is a valid hostname or Internet address, and port is an integer
port number or service name, Bash attempts to open a TCP connection to the
corresponding socket.
EXPLANATION

   
if [ "X$MYEXIT" = "X0" ]; then
  echo "Connection successful. Exit code: $MYEXIT"
else
  echo "Connection unsuccessful. Exit code: $MYEXIT"
fi

exit $MYEXIT

 

Linus Torvalds loves GPL

Slashdot links to this CIO article, which quotes Linus Torvalds on the importance of the General Public License (GPL):

“FSF [Free Software Foundation] and I don’t have a loving relationship, but I love GPL v2,” said Torvalds. “I really think the license has been one of the defining factors in the success of Linux because it enforced that you have to give back, which meant that the fragmentation has never been something that has been viable from a technical standpoint.”

and:

“The GPL ensures that nobody is ever going to take advantage of your code. It will remain free and nobody can take that away from you. I think that’s a big deal for community management.”

Steven Black hosts files

StevenBlack/hosts repository:

Extending and consolidating hosts files from a variety of sources like adaway.org, mvps.org, malwaredomains.com, someonewhocares.org, yoyo.org, and potentially others. You can optionally invoke extensions to block additional sites by category.

Categories include: adware, malware, gambling, porn, and social networks.

Don’t use Slack for FOSS

Please don’t use Slack for FOSS projects” is a compelling case for why you shouldn’t use Slack for Free and Open Source Software projects.  Make sure to read the discussion in the comments as well.  (By the way, many of the arguments apply to HipChat too).

hipchat-slack

The suggested alternative is IRC, which I agree with.  My only minor disagreement in regards to IRC is using it for companies as well.  Companies are much more fragile and sensitive than Open Source community, so it doesn’t work all that well in some places.  I think Slack/HipChat work great for company communications, but if you want to have full control over your chat system, then try out Rocket.Chat, which I blogged about earlier this year.

Two years at Qobo

Today marks the completion of my second year at Qobo Ltd.  The first year was quite a ride.  But the second one was even wilder.  As always, it’s difficult (and lengthy) to mention everything that happened.  A lot of that stuff is under the non-disclosure agreement (NDA) terms too.  But here are a few generic highlights:

  • Vision and strategy – most of my first year has been spent in putting out fires, fixing things big and small, left, right, and center.  The technology boost was necessary across the board, so it didn’t leave much time for the vision and strategy.  I feel that we’ve made a huge progress in this area in the last 12 month.  We have a clear vision.  We have all the stakeholders agreeing on all key elements.  We have worked out a strategy on how to move forward.  And we’ve started implementing this strategy (hey, Qobrix!).  In terms of achievements, I think this was the most important area and I am pretty happy with how things are shaping up.
  • Team changes – much like in the first year, we had quite a few changes in the team.  Some of them were unfortunate, others not so much.  The team is still smaller than what we want and need, but I think we are making progress here.  If our World Domination plans will work out to even some degree, we’ll be in a much better place very soon.
  • Technology focus – we’ve continued with our goal of doing fewer things but doing them better.  Our expertise in WordPress, CakePHP and SugarCRM grew a lot.  We’ve signed and deployed a variety of projects, which resulted in more in-depth knowledge, more networking with people around each technology, more tools and practices that we can reuse in our future work.
  • Open Source Softwareour GitHub profile is growing, with more repositories, pull requests, releases, features, and bug fixes.  We’ve also contributed to a variety of Open Source projects.  Our involvement with Open Source Software will continue to grow – that’s one of those things that I am absolutely sure about.
  • Hosting, continuous integration and delivery (CI/CD), and quality assurance – again, the trend continued this year.  We are using (and understanding) more of the cloud infrastructure in general and Amazon AWS in particular.  We have a much better Zabbix setup.  And our love and appreciation of Ansible grows steeply. Let’s Encrypt is in use, but we’ll grow it to cover all our projects soon.  We are also experimenting with a variety of quality assurance tools.  We are using TravisCI for most of our Open Source work.  And we are on the brink of using recently announced BitBucket Pipelines for our private repositories (sorry Jenkins, we’ve tried you, but … not yet).  We’ve also jumped into ChatOps world with HipChat and its integrations, to the point that it’s difficult to imagine how could we have worked without it just a few month ago.  Codecov.io has also proved to be useful.
  • Projects, projects, projects – much like the previous year, we’ve completed a whole lot of projects (see some of our clients).  Some were simple and straightforward.  Others were complicated and challenging. And we have more of these in the pipelines.  Overall, we’ve learned how to do more with less.  Our productivity, technical expertise, and confidence grows day-to-day.  I hope we keep it up for years to come.
  • Website – one thing that we wanted to do for ages is to update our website.  Which we did, despite all the crazy things going on.  It’s not a complete redesign, but it’s a nice refreshment.  And we’ve also got our blog section, which I promised you last year.  All we need to do now is to use it more. ;)

There are a couple of major updates coming soon, but I am not at liberty to share them right now.  But they are very, very exciting – that’s all I can say today.  Keep an eye our blog – we’ll be definitely sharing.

As I said, it was quite an intense year, with lots of things going on everywhere.  There were tough times, and there were easy times.  There were challenges and there were accomplishments.  There were successes, and there were mistakes and failures.  But I wouldn’t have it any other way!

After two years, I am still excited about this company and about my job here.  (Which, looking at my career so far, is not something that happens often.)  I hope the next year will continue the adventure and by the end of it I’ll be able to proudly show you a few more things.

 

Web Developer Tools from Browserling

browserling-effortless-cross-browser-testing

Browserling – an awesome cross-browser testing service, has a collection of Web Developer Tools, which are as simple to use as possible.  There are now more than 80 (!!!) tools, according to this Peteris Krumins blog post, that provide immediate help with things like converting dates and times, formats like CSV, JSON, Markdown, HTML, XML, etc, generating passwords, minimizing or prettifying HTML, CSS, JavaScript, and more.

On Google+ success from 5 years ago

One of the benefits of having your own blog is all the archives that are accumulated over time.  Web services, platforms, and social networks come and go, and so does your content when you choose to use them.  But with your own piece of the Internet, you get to keep it all.

It’s always interesting to see what I was into and what I was thinking like years ago.  Especially when it comes to predictions and forecasting.  Especially with the technology, which moves so fast.

Here is, for example, something that I shared 5 years ago (to the day):  On how Google+ will succeed.  Now that never happened.  In fact, almost the opposite is happening:

Horowitz made a point to emphasize, once again, that Google+ isn’t going away. Instead, he reiterated that the company will be offering “a more focused Google+ experience.”

In other words, Google+ has a core set of users that really do enjoy using the service. “Google+ is quickly becoming a place where people engage around their shared interests, with the content and people who inspire them,” Horowitz said.

More specifically, Google plans to continue to offer new features in Google+ and move “features that aren’t essential to an interest-based social experience” into existing products.

This just tells you how “trustworthy” is my opinion on things…