Time to take a break from your computer

I firmly believe that having regular breaks from long work sessions is a necessity. We work sitting long hours without much movement. It’s often we forget to take long or short breaks when we work on a task that occupies our brain. Also sometimes it’s hard to break a focus session.

Without a tool reminding us of the breaks, it’s very difficult to track when we started working and when to take a break. GTD methods like Pomodoro helps to track these moments but even with planned natural work blocks we miss taking a break from the screen.

I started to use a tool to remind break time with a schedule. First I used a paid app called Timeout.app. Then one of my colleagues found the open source alternative of the same tool. https://github.com/hovancik/stretchly

I’ve forked and modified the look and feel and some of the element’s positions for my own taste https://github.com/mfyz/stretchly

I highly suggest a timeout app like this one to be embedded in the workflow. Now I take much more regular breaks with the help of a tool like this. Sometimes I feel it becomes annoying because I feel I’m very focused. I don’t want to break the focus session but I also acknowledge the importance and the value of giving opportunity and space to our minds with these breaks.

The app is pretty straight forward to use. You set micro and regular breaks with an interval. I take 10 seconds micro break in every 10 minutes. Every after 2 micro breaks, I take a regular break of 5 minutes (every 30 minutes)

https://github.com/mfyz/stretchly

Work in a distraction free mode on your computer

I always tune my work style and seek for ways to increase my focus and productivity. From my previous posts (screen-less saturdays), you can see I am also sensitive to the screen time the distractions comes with the screens. There are endless ways to waste time as well as get distracted on screens as things pop-up. Namely notifications. God, I started to hate notifications. So much noise!

I’ve been using an app called focus.app for last few years here and ther. I’ve have been incorporating it to me pomodoro-like sessions. Focus is a paid app but cheap that helps tremendously to keep my focus together while I set a session for myself to be distraction-free and get stuff done.

The app is very minimal, sits on your menubar and you simply toggle in focus and unfocus modes. When in focus mode, app blocks predefined and extendable list of websites and apps. If these pages are open, they show an inspirational quote. If a blocked app is open when getting into focus mode, focus.app closes the app.

I set up my pomodoro length sessions with blocking all communication apps. Also turning my mac’s do not disturb mode on and with a custom script. With this scripts, I set my slack status to do not disturb so my team mates can see that I’m in focus mode and will not get response from me right away.

The last two things I explained is unfortunately done with a bash script. This script runs from focus app when getting in and out of focus modes. I also use some additional scripts that re-opens all apps and restore my “connected” work session after a focus session is completed.

I highly suggest focus to anyone can get easily distracted with an email they received, or a thing they wanted to check in twitter.

https://heyfocus.com/


Quick and dirty set up Graylog in 5 minutes with docker

Docker made things super easy if you are curious about a new open source tool to try and even use it with isolated installations on your machine. In this article, I’ll show quick steps to install and give graylog a try with a simple nodejs application to send logical errors to graylog instance.

1) Copy the docker-compose.yml file content below to a file then run:

2) Login to graylog with opening http://127.0.0.1:9000/ in the browser
Username: admin
Password: admin

3) Configure inputs: Go to System > Inputs
Add new “GELF UDP” configuration as global input using port 12201

4) Run the simple nodejs application below to send logs to graylog. First init npm and install graylog2 package from npm with:

docker-compose.yml

app.js

Best GTD method for geeks – Todo.txt

For most of the GTD (Get(ting) Things Done) mastery student, there is a constant research of better “todo” app or tool. I’ve been in this for a very long time and used many apps. Desktop, mobile, command line, cloud, API… You name it, I’ve probably used it for some time.

At the end, I found myself staying very plainly managing my todos without needing a lot of features. In fact, I needed not to worry about the features of the apps I used. This especially become an issue as I’m OCD (obsessed about “order” and tidy) and a little bit ADD (regularly distracted). When you have a todo app that looks ugly and you need to use their features in order to clean things up, it eats up your time aside of actually focusing on your todos.

Methods and apps

There are also a million apps (I wrote 4 of them for myself) does a combination of “todo” management and a specific type of method. Like pomodoro, or kanban or whatever is out there. This gets more dangerous because the method is actually completely independent from what the todo is, where it lives and how it lives. It can be written on a paper list. For instance, if you do pomodoro, the best way to do it actually use a kitchen timer. Literally, use that old school timer to perform your pomodoros. Otherwise, I almost always find it time consuming to think that things will be more connected and automated when you have a todo app that does the pomodoro. So you can click to a todo and a button to do pomodoro of that item. It sounds good but it’s opposite in practice.

Plain formats works best

For long time, I used cloud based (to sync between my devices) tools. I used evernote, then quip, then trello at some point, then few more. But I found it, the simplest when I can simply copy paste stuff to move around. Because you’ll be consistently re-prioritizing your todo list, editing, adding, removing, marking things done. It’s just how the process of GTD works. That’s why you need a method that is the most convenient and requires less adaptation and portability between platforms and environment. There are few fancy stuff you may want to have like:

  • A programmable interface (API/CLI) – for instance to have your top 3 todos for the day appears on a screen somewhere. Or query the last completed tasks.
  • Color coding or highlighting at least to distinct what’s done and what’s not done. Ideally, when you’re done with stuff, it should disappear from your screen but in some cases, you want to see them at least until the end of your day to be able to review.

Todo.txt

After many years trying different things, I came across with the todo.txt format. It’s a very low level and with few simple rules to give you the freedom to use whatever tool you want, wherever you want with having additional capabilities with community implementations on CLI, cloud, mobile etc…

https://github.com/todotxt/todo.txt

todo.txt format is so simple that is explained in one annotation below:

To be honest, I don’t use almost any of these things except the “done” marker. So for me, it’s as simple as todos are either not done or done. That’s it. What I want to do manually is always re-ordered them and have separators (which I simply use 3-5 dash characters “——” as an extra line).

I love this format is because I use it in a few different tools on my platforms. Wasn’t super happy with the desktop solutions, so I forked and enhanced a simple code editor written on electron/nodejs. Added a few capabilities and adjusted the color schema to my liking and open sourced published it (You can find, download and contribute to it here: https://github.com/mfyz/todox).

On mobile, it’s not that easy to have a custom code editor without getting my hands dirty with a lot of native coding which I felt lazy. Also, another point that I had to figure out was the sync between my devices. I live on apple ecosystem so I simply used iCloud drive of the text editor app I use on my iOS devices (Textastic).

Texastic supports textmate and sublime bundles (including custom syntax support and themes). I installed a sublime text implementation of todo.txt format and had color coding which all I needed on my mobile devices. Most of the time my activity on my mobile devices are simply adding new stuff to the list or mark them done.

Taking long (scrolling content) screenshots on Mac

Sometimes we need to take a screenshot of a long content mostly from scrolling applications. Most common example of this is full-length web page screenshot. There are chrome extensions we can use for taking full-length website screenshot. But there is not an easy way to take screenshot from other apps like native desktop apps or email content from mail clients.

XNip Screen Capture Tool

We can use Xnip Screen Capture tool that has all of the common screen capture software features and a feature We can use for taking long content screenshots called “Scrolling screenshot”

It’s is a freeware with upgrade ($2/yr subscription) but works perfectly for this purpose without the upgrade (it leaves watermark that can be cropped easily if needed).

http://xnipapp.com/

http://xnipapp.com/scrolling-capture/

https://itunes.apple.com/us/app/xnip/id1221250572?mt=12

I’ve been doing Screen-less (no screen) Saturdays more than a year now

I firmly believe screen-less or no screen time is a necessary concept for digital dwellers. Screen-less / No screen is very much like sabbatical practice where you don’t interact with technology as much, or to be more specific don’t interact with screens.

Let’s deconstruct this little bit.

Working with screens

I’m an internet worker which is my job to produce stuff for people to consume on their technological devices. It’s my job to think, create and bend the rules with computing and make technology smarter. Most of my day goes into research, write, plan, manage and do all of these on computer. Usually spend like 12-15 hours on screens.

There are so many occupations not centered around creating technology but using technology to create. By nature many jobs are very similar to mine, spending almost all the time behind screens while working.

Couch potato with screen

But there are a good chunk of humanity just “watching”. Probably majority of the people spending time on screens is just consuming. It’s a natural transition from non-interactive television era to screen time. Kevin Kelly has a great definition for this and he calls it “screening” not watching, not reading… We just scroll endlessly.

Too much screen time, too many screens to look at

Not just having A screen, we have screens everywhere. Phones, tablets, computers, tv screens for constant information for some jobs (like stock tickers, performance dashboards etc..) and finally wearables. We carry multiple screens with us all the fucking time…

Not a surprise everybody is ADD now

I’ve been doing reads on many different topics related with technology’s impact. Recently how screens affect little children since I have two little babies now, more curious on this topic these days.

What I see as a consistent pattern, mostly conclusions on these reads is screens are bad for certain period of childhood causing loss on attention span, making our brains more distracted. I understand the reasoning that our brain is designed to “see” stuff in graceful progression. Especially movements we expect from nature is not suddenly disappearing or suddenly appearing stuff. Sudden movements is “danger” signal for brain. We produce minimal stress hormones when stuff happens fast because naturally fast movements trigger us to “escape” from danger by it’s biological nature. The fast moving images and flashing visuals that makes brain to jump between things is essentially damaging. This sounds so familiar – think a random tv program 🙂

It’s growing number of kids, people have ADD (attention deficit disorder).

Keep it cool, keep it under control

Best way to cope with this is to have regular “stops” from screens. It’s just plain straightforward plan. Don’t look at screens, don’t use your gadgets for a while. To me once a week for a day is just perfect. Maybe once in every 6 months or once a year it can be weeklong stop. It’s not new concept guys! We call this just weekend and holidays 🙂

Cool it down a little…

Getting lazy with technology

Not interacting with screens or more broad with technology completely for a day is also about breaking the pattern of technology supported laziness where we lost the connection and need for retention of basic information like directions or shopping list.

When I first did no screen, without realizing, I got into a situation that I booked a yoga class the day before for Saturday and when the class time came, I realized I never knew the address of the studio I went twice. It was a little scary that I didn’t know this information, I managed to go out and try few different streets until I remember the correct street. Following week, I started to note the directions of the places I wanted to spend my day.

Getting creative with no screen time

A lot of good came out of no screen days:

  • read much more,
  • workout in many different ways, running, yoga, biking, hiking,
  • farmers market, vintage shop, random exploration of my neighborhood,
  • having less serious plans and schedule for Saturdays,
  • catching up with friends more,
  • meditating,
  • writing, life planning

It’s been over a year now and it became part of my weekly routine.

Exceptions

I have few exceptions that I don’t practice no screen Saturdays, when I travel, when I have a deadline that shit really happened and it’s very important (I try to keep this 2-3 times a year max, otherwise there is always important stuff). I only interact screens very very briefly (not longer than a minute or two) to open music, I also keep “kindle” out of “screen” category because you can’t do much other than reading.

Web, UI and browser automation with headless browsers

Wanted to give you a short information about browser automation. You visualize a desktop app when a “browser” comes to minds right? All browsers use an engine to render web pages on our screen. And these engines can actually work without rendering pages in the UI. All they need is to render the elements in memory. From there, it can allow us to interact with rendered pages programmatically without displaying the rendered page on our screens. There are browsers only works in this mode and they are called “headless” browsers. Means they have no UI. This browsers are meaningless for general consumers but it comes very handy to developer and testing community. Many companies build their testing and QA process utilizing these headless browser, do execute their UI flows with browser automation scripts. For instance, headless browser can be programmed to run and simulate the following user experience flow:

  • Load http://example.com web page,
  • Wait until page is completely rendered including javascript and css,
  • Fill “Fatih” to the field called “Name”,
  • Click to the button called “Send”,
  • Wait 5 seconds,
  • Take screenshot and save as JPEG

This can be very useful when doing regression tests.

Event utilizing screenshots with headless browsers will be very useful. There are many companies doing screenshot comparison for high level understanding changes done visually based on any given iteration on the code. This process simply takes and keeps versions of each page and in every release, it takes a new one with latest version and compares the pixels (and colors) to the previous version to determine a percentage for the change it detects. Then you can set some report and process to make sure you track of big changes to detect if a tiny css change blew a page you usually don’t test manually. It becomes very meaningful when you think about a web page with 100 different pages.

Are there any headless browsers I can use?

The well known headless browsers; the one named “Phantom” (and phantomjs) that is big on nodejs community. There is also headless chrome which is based on chromium.

There is an extensive list of all headless browsers out there here: https://github.com/dhamaniasad/HeadlessBrowsers

Happy browser automations 🙂

Track who goes to space with IFTTT

I have a fun way to track people goes to space and I want to share that with you on this post 🙂

I love using “If This Then That” (IFTTT) and have been using it for years. It’s a brilliant service. For first-timers, I can summarize it as “Internet Robot”. What it does is, connects two internet services (or smart devices) in scenario basis consists of two parts: “event → action”. So it takes an “action” when an “event” happens.

Some generic samples of how to use IFTTT;

  • When I post a photo to facebook → Save to dropbox
  • When there is a new entry in RSS → Send me an email
  • When weather is rainy → Tweet “take umbrella”

Almost all popular services are available in IFTTT.Each service has their own set of events and actions.

Some fund IFTTT Recipes

Tracking Space Activities

I use IFTTT for many different ways, mostly work related scenarios but I have some fun use cases. One of the most fun thing I do with IFTTT is to use NASA’s events about space activity (when there is a new launch with astronauts going into space), I send a message to my slack channel named “space”. This way I see astronauts went to space and often I check their wikipedia page, their achievements etc…

Slack Channel with Space Activities

How we use Quip and how to leverage collaborative writing tool in team communication

I want to talk about a tool we use and how to leverage it for better collaboration on pretty much anything involves multiple people. But first, I encourage to read my thoughts on writing and reading at //mfyz.com/written-communication-king if you haven’t done so.

I started using Quip pretty early on when they came out and loved it from start. Love the simplicity and giving real-time collaboration features and mostly mobile-friendliness of it. Compared to Google Docs, it feels much more lightweight.

For personal use cases, I used to use Evernote for note taking purposes and keep my notes on cloud and keep them synced between my devices and computer. Quickly after starting using Quip, I moved all my notes from Evernote and iCloud Notes to Quip. I document my personal information, my plans, new ideas, my book notes, to-do lists and mfyz.com stuff from todos, bug tracking to articles to write. I even write these blog posts on Quip first, then finalize before I move them to my blog. After publishing, I move them to a folder like “Published” or “Archive”.

At our team, we use quip daily basis and I use quip maybe as much as I use my email client or maybe even web browser. I often edit 10-15 docs in quip a day as mix of personal and business docs.

We use Quip at our team for following reasons primarily;

  • Transparency – we believe in creating a culture of transparency, where our team has full visibility into all aspects of our work.
  • Quip allows us to see (in real-time) what people are working on.
  • Quip’s history allows us to see the conversations and evolution of our thinking, not just the finished product.

Here are few tips that we collected as the team and try to implement on our Quip settings.

  • Turn notifications off apart from @mentions to reduce the noise – most of us don’t need to know everything that is happening in quip in real-time.
  • Fine tune your notifications for documents and folders that you are an active contributor or reviewer of.

We use Quip with it’s “team” version which we pay very minimal cost monthly but there is almost zero reason you need to pay as the team. Their team functionality is free and it’s not very different than sharing a folder to a group of contacts.

Other than my team, I have smaller teams for my other initiatives and a family folder with my wife that are not designed as “team” they are just well organized single folders that are shared with team members.

Why Written Communication is King?

Writing represents pretty much the biggest leap in human history. We started to make great things after we started documenting our wisdom and make it portable. Anything was written is made for communication even if it means communicating by yourself. People write, scribble to solidify their ideas, thoughts and there is no better format than written or drawn materials.

It requires a skill to write. And writing is definitely an amazing skill set that requires time, patience and practice to develop. A lot of people writing blogs which is a great way of sharpening this skill and one of the primary reasons I keep my blog open for years.

When it comes down to communicating with multiple people, written communication thrives. In many real-time communications, speaking, listening, discussing (etc), we listen/watch/read and “interpret” more than understanding things at that second. And in a lot of cases, people misunderstand things. A lot of details can be lost because of the immediacy of the communication. Writing and reading provide the best version to both sides. It allows communicator to materialize their ideas in plain form and it gives enough time to the writer to think, rethink, make errors and fix them on writers own pace. Same stuff happens on “receiver”s side. All of us take stuff differently and there is no better format than a written message, document etc…

This speed thing and difference is a very underestimated thing about how each one of us functions. Some of us think very deep and it takes time, some of us are very fast processors but may oversee things and miss stuff. It’s all normal, it’s what makes each one of us, us. But when it comes to two people communicating, it can cause errors.

Personally Writing

As I mentioned above, writing is a beautiful way to shape your thoughts. A way to make floating half-baked ideas to become complete or easy to follow. All writing stories has to be connected well in between of each sub-stories or sub-thoughts. So writing gives very creative ways to connect the dots. Therefore it makes you think better, thinks more connected and almost always makes you speak better because you train your brain to think that way. It rewrites your brain for that way of thinking. I see great benefits of writing stuff down even if I will temporarily collect them somewhere.

I use note taking apps on my digital devices, carry Moleskine notebooks on my backpack all the time. When you need to write stuff down, you need to have materials to do so.

Repeating same point above, writing speed is always slower than how fast we think. Some people (like me) thinks fast and because of we don’t have enough practice to speak, we mix our thoughts when we try to speak (without enough training) as we think. Because our thoughts fly fast, we try to speak fast and screw up sometimes 🙂 Writing gives perfect sight of slowly building sentences and progress on a topic in order, it builds the great skill to how to organize thoughts.

Bonus, if writing in a foreign language it gives the best way to practice vocabulary. Also, there are millions of tools on computers, mobile devices that correct and highlights misspelled words, even grammatical errors that trains you slowly. If you type same error 5 times, you start to fix it and it will be gone very soon. So, when learning a new language. I encourage you to write stuff in that new language.

Writing in Business and in Teams

Written communication is one of the essential elements of running a business. This is a skill that every professional has to master. This becomes vital especially if you are a manager or an executive of a business. Is the extreme side of this example, we can think about legal matters. In the legal world, there is nothing other than written evidence and explanations. In some cases, we write anything happened between two parties in “contracts”s. Of course, legal writings has its own category and maybe a boring example but it magnifies the importance of this in business.

On the less legally binding but still important matters like business decisions, business plans etc, written documents are the best way to inherit any information that needs to be implemented in the business.

Written artifacts in business and team communication also brings consistency of the communication. If you are trying to build systematically designed process around communication, the consistency can be varied a lot depending on the leader. Agreeing on a format and treating that like a template is the best way to bring consistency of repetitive tasks. I’ll write more on this later in specific cases.

Another reason of written docs use in running a business is the scalability and mobility of the information. What I mean by the mobility of information is how easy to move a know-how from an individual or a group of individuals to another. Let’s say you trained someone to be a killer project manager or marketing person. How much of know how can be moved to another person? Does it require the same amount of training? How much of that information can be documented and requires a new trainee to read an learn early on? Or when implementing a business process change to 10 different people in different teams, how easy to train multiple designers at once? At the end of the day, written documents become the guidelines, archives and historical artifacts of the business.

The last point on writing communication in business; if you are an open and transparent team, written communication is a must because of availability and accessibility of written communication is unmatched. Especially, digitally communicating teams are already halfway there. Having slack to talk, quip or google docs like tools to document and trello like project management tools are already very easy to search, scan, monitor, track progress of anything written.