Developers spend a lot of time at the computer, so the temptation to procrastinate is always there. Learn how these applications can help.
It’s easy to say “Just turn these notifications off,” or “Just put your phone away,” or “Just don’t open that tab.” In fact, one cannot simply quit workplace distractions: being distracted is a bad habit and should be handled as such. So how can you avoid distractions at the workplace and start using your time wisely?
There are some old-school methods such as blocking distracting websites on the router. However, this alone won’t help you concentrate and be more productive: there are games and other time-wasting applications that can work offline, and you can easily get distracted by apps on you mobile devices, or by checking your email.
Special tools block out almost everything that can distract you from your immediate tasks and help you concentrate on your work. In a healthier work environment, it’s easier to focus on what matters and get things done.
The app is designed to help you free up some time for work by getting rid of all major distractions. It eliminates distractions on almost any device, thus helping you develop focusing habits and stop multitasking.
As the authors of Freedom emphasize, your brain requires 23 minutes to re-focus each time you get distracted, so blocking out emails, social feeds, and app notifications can free up significant work time. Another figure from the creators of Freedom: multitasking may decrease your productivity by 40% and your IQ by 10 points. That’s a motivation strong enough to quit constant distractions and start spending your work time thoughtfully.
This app for MacOS is designed to block access to distracting websites, emails, or anything else on the Internet that prevents you from focusing. The app offers quite a simple functionality, but it seems to be an efficient way to handle distracting information when your self-control is not enough to stop checking social media or watching funny videos.
After you set up a blocking period and start timer, there is no way to bypass it: even if you restart your computer or delete the app, you won’t be able to access the websites until the blocking time is over. This is how to avoid distractions and reclaim your time in an easy way.
To handle distractions, the app allows you to create your own routines. Routine is a plan that includes scheduled blocks for specific websites, applications and activities, work and rest intervals, and productivity targets. Set up blocks for a specific period of time or forever, as you need. The developer warns that Focus Me is one of the most powerful tools to quit distractions and addictions: in the forced mode, it keeps blocking out your distractions even when you try to delete the app or stop the timer.
The app suits both individuals and companies. For individuals, it helps improve productivity and protect children from too much gaming and visiting websites with inappropriate content. Employers would appreciate the possibility to block or limit access to specific web resources and to enforce company’s policies.
Those who consider the Pomodoro technique an efficient way to manage work time would appreciate this app. It allows creating tasks and setting up estimates of how many Pomodoro sessions you need to accomplish them. Split your work day into sprints and breaks and improve your work/life balance. Maintain focus and overcome distractions throughout the workday – and achieve more.
For detailed control and analysis, the app offers a progress dashboard. Here you can create reports and visualize your productivity improvement. A mini timer helps you monitor your current progress when you are working on a task.
The app helps you create a productive work environment by eliminating Internet and offline distractions. In Focus, you can set up focusing intervals when distracting websites and applications are blocked, or block any of them forever. When trying to access the blocked resource, a motivational quote is shown to get you back to work.
For those who would think about bypassing blockers, the Hardcore mode is provided. Once the mode is turned on, you cannot turn timers and schedules off. Settings and certain actions in the app are locked too.
A specific feature of this app is the possibility to work from the terminal: the app’s scripting options include BASH scripts and URL handlers that allow running custom commands.
Sometimes it is enough to block out time-wasting websites and remove ads and other clutter from the webpages you’re reading. Browser extensions are an easy and unobtrusive solution for that: they help you stay focused on the important information when blocking out the entire Internet is not an option.
This Chrome browser extension helps you stay focused by restricting the time you're allowed to spend on time-wasting websites. Once the time limit is reached, the blocked site becomes inaccessible for the rest of the day.
A Chrome browser extension that removes webpage clutter, leaving only important content. You can switch any article to Mercury Reader with one mouse click or by using a keyboard shortcut. The extension also allows you to adjust text size and typeface, select themes, and optimize pages for printing.
This Firefox add-on is also intended to block distracting websites. All you need to specify is what websites you want to be blocked and when to block them. You can add up to six sets of websites with different blocking times and days.
You can set up a password or a random access code for LeechBlock’s settings. This way you’ll make it more difficult to bypass the block in the moments of weakness.
This app for MacOS is not exactly a distraction blocker. Rather, it blocks overwork, gently reminding you to take a break when you work too long. When your workday is divided into focus and relax periods, it’s easier to concentrate on your tasks and resist social media, compulsive email checking, and other time-wasters.
The computer is not the only source of distractions when you are supposed to work or study. For those who don’t find it easy to put down the phone and stop wasting time on it, there are mobile apps that block distracting web content or everything that invites procrastination.
This iOS app blocks websites on the Safari browser. It is not designed to block any applications on the mobile device, but in many cases, it’s enough just to bar access to the time-wasting web content.
By default, the most popular social media, image, and video resources are blacklisted, but you can set up your own lists and block websites for a specific time period.
This Android app locks websites and applications on your device, creating a distraction-free environment. It includes a timer that locks access to the websites and apps for the set time. During the break, you can unlock them, and after the break ends, the access will be blocked again.
Use your phone for calling or texting, not for procrastinating. ClearLock will prevent you from scrolling through social media updates, exploring new funny content on the web, and playing games when you really need to get your work done.
Is pbr the end to Python packaging woes? If you're considering working with distributed software, this tool can help you manage flavors, and more, with ease.
Packaging Python has been a painful experience for a long time. The history of the various distributions that Python offered along the years is really bumpy, and both the user and developer experience has been pretty bad.
Fortunately, things improved a lot in recent years, with the reconciliation of setuptools and distribute.
Though in the context of the OpenStack project, a solution on top of setuptools was already started a while back. Its usage is now spread across a whole range of software and libraries.
This project is called pbr, for Python Build Reasonableness. Don't be afraid by the OpenStack colored themed of the documentation — it is a bad habit of OpenStack folks to not advertise their tooling in an agnostic fashion. The tool has no dependency with the cloud platform and can be used painlessly with any package.
Pbr takes its inspiration from distutils2 (a now abandoned project) and uses a setup.cfg file to describe the packager's intents. This is how a setup.py using pbr looks like:
One of the features that I use a lot, is the definition of flavors. It's not tied particularly to pbr—it's actually provided by setuptools and pip themselves—but the pbr setup.cfg file makes it easy to use.
When distributing a software, it's common to have different drivers for it. For example, your project could support both PostgreSQL or MySQL—but nobody is going to use both at the same time. The usual trick to make it work is to add the needed library to the requirements list (e.g. requirements.txt). The upside is that the software will work directly with either RDBMS, but the downside is that this will install both libraries, whereas only one is needed. Using flavors, you can specify different scenarios:
When installing your package, the user can then just pick the right flavor by using pip to install it:
Pbr is well-maintained and in very active development, so if you have any plans to distribute your software, you should seriously consider including pbr in those plans.
That happened a couple of weeks ago to me and a couple other programmers working on the same project that I’m working on.
The issue was that we had made some significant changes to a project, we had communicated to the project manager that the changes required that the entire project needed to be retested, but the testing never happened. So of course we spent the next several days doing the “testing” and fixing.
This scenario should resonate with just about every programmer that reads this blog, but it should raise some questions as well.
The chief question that has to be raised is, “Why didn’t the programmers test the application?” There are two reasons. The first is, we never felt like we had been given time to test. The second is that we don’t really feel like we understand exactly what the system is supposed to do.
But by not testing at all, the programmers are the ones who pay. And that’s why the revolt took place. We all came to the conclusion independently that since no one else is doing a complete test of the system before it goes to production each week (yes, we make weekly changes) the people who suffer the most are the programmers. Therefore, it makes sense for us to start creating tests for this system that we run the application through prior to calling it “done.” That is, testing is part of programming, not an extra step that we need to have time allocated for or that someone else should be doing.
So we’ve made testing part of the task of programming. It isn’t as glamorous as coding and we won’t catch anything, but catching nothing is better than not even trying. As new bugs surface we will add those conditions to our plan.
Of course, now that we’ve caught on to the testing religion, we need some tools to help us manage things. The last time I implemented testing, I was using Test Complete. This tool allows you to record tests to a script file and then modify the script and play it back. It’s a pretty good tool. The only problem is, you have to learn a new scripting environment and it is pretty expensive. I also find the process of creating scripts tedious. Many times you don’t know how to automate something until you’ve repeated the steps several times so that you can see the commonality of what you are doing each time.
So what we really need to start with is a tool that just allows us to organize and record what needs testing. This is called a test scenario. I searched for a free tool and ended up at the xqual.com site where I found a free java application that is basically a project management system with testing as its center. You should check it out.
As I started thinking through the tests that we needed to run immediately, I realized that one thing we really needed immediately was some way of spidering the site and making sure we don’t end up at a 404 or 500 error page. I had been using iMacros for web process automation, but as a testing platform it falls a bit shy of what we need.
Then I found Selenium, which is a framework for building automated tests in several different environments, including Visual Studio’s MS-Test or NUnit. It didn’t take me long after that to find an NUnit test for Selenium that spiders the web application and makes sure you don’t end up on a 500 error page. I will be embellishing this over time so that it checks each page it lands on for things that must be true on every page.
So now we’ve got something in place that we can add to over time. It’s not perfect, but it is something.