Yearly Archives: 2016

Task Management with Things – How to do To Do’s the right way

I have been using the handy little helper app Things for quite a while now, both on my Mac OS computer and on my iPhone to manage all the little things I need to do. First I was simply looking for an efficient way to organize tasks. Of course I also wanted to synchronize the tasks with my iPhone from the very beginning – so it had to be an app that had both: a desktop client and an iOS app. I was checking on different reviews of task management apps – Things caught my eye. So I invested a few Euro and a few moments later I downloaded and installed the program on MacBook and iPhone.

For a couple of years I used Things on a daily basis – and it was indeed quite useful indeed. I added To Do’s as I liked – and I got some things done. Things was helpful. But somehow I was always just a bit too lazy to go the extra mile and read the handbook – or at least some introduction. I found the program useful the way I used it – and the interface appeared to be very intuitive. So instead of using the software the way it was meant to be used, I used it the way I thought it was useful. And that was not actually not very effective.

How did I actually use it? Well – I basically only used it as a simple task list. For every new task / To Do I added a separate entry to the list – no matter if the thing I added was a simple task like “call the janitor” or a complex project like “Relaunch Website XY”.

To become a bit more effective in getting things done I actually added everything to the “Today” list. Good plan, I first hought. So I found myself with a looong list of things I had to get done – sometimes that list would consist of hundreds of different tasks. The task manager was close to being un-managable. Not very effective. Just writing down the words describing how I used to use the program actually kind of hurts today: Always! All the Tasks! In one list! No wonder that I never really felt satisfied with my results – I never really had the feeling that I got anything done. The list would just sit there and either be slightly longer, or slightly shorter. Finally I realized I had to change the way I used the program – change the way I managed my tasks.

<div style="width:300px; height:250px; margin-left:20px; float:right;"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- cpu-300x250-inline --> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-7767251772696843" data-ad-slot="5040918527"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> When purchasing the program I already knew it was designed around the ideas of “Getting Things Done” – an action and time management method based and a book by David Allen. So I should actually get all the tasks out of my mind – out of my way. But instead I was facing a list that felt like a wall. I realized for too long time I was too lazy to work on a way of making things easier for me.

Finally I took the time to have a closer look at the various features built into Things. And finally I came to the conclusion: I had missed a sea of options that could have saved me a lot of time and stress in the past. So what did I change – did do I use Things today? Well – it’s not that complicated. I just use it as it is probably meant to be used.

Good for Productivy AND Motivation: How to use Things the right way

A project is a project – and not just a task

Every project can consist of many different that need to get done before a project is completed. In other words: in Things a project can have as many tasks as you like. Rule of thumb: every task that needs more than 20 minutes to complete could be / should be split into two tasks. Whether you follow this rule of thumb or not is up to you – but don’t try to stuff everything into one task. This way you will also build some kind of documentation of all the little things you actually needed to do to get the project completed. Very handy.

When all tasks are completed, the project can be closed – or marked as “done”. The project will then disappear from the project list – but it will still be available from the archives / logbook for later reference.

Work on continuing and/or recurring tasks inisde the “Area of Responsibility” list

For continuing and/or recurring tasks that may feel like projects, but actually are not projects, there is another section in Things: Area of Responsibility. An Area of Responsibility can be something like “Office” or Home” or “Car” or something the like. An Area of Responsibility can by nature not be “done” like a project. But you can add again as many tasks / to do’s as you like.

I have to admit it took me some time to understand the difference between a Project and an Area of Responsibility. Once you’re over that things (and Things) may become much easier to handle.

When to get things done? Today, Next, Scheduled, Someday…?

It is recommended to only add as many tasks to “today” that you actually can get done on that very day. But of course I still tend to add too many tasks to basically every single day, leaving behind a virsual trail of tasks that are constantly moved from one day to another.

<div style="width:300px; height:250px; margin-left:20px; float:right;"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- cpu-300x250-inline --> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-7767251772696843" data-ad-slot="5040918527"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> However I also do manage to add tasks to either specific days / dates – or to the more blurry sections Next and Someday. All of those sections do make sense – and there is no need to fear you would lose your tasks somewhere in time and space. You’ll just have to click on the Project or the Area of Responsibility – and – voilà –  all the tasks are listed.

I hope this short “review” may be helpful for somebody some day. I can just again recommend to actually use Things (or any other time / task management software) and start getting organized. It may help you in the long run. A lot.

WordPress: edit Flexslider Interval “auto rotate” (Visual Composer Element)

Very practical: many WordPress Premium Themes come loaded with lots of mighty plugins that you don’t have to pay extra for. But sometime adjusting these plugins can become a bit difficult – and suddenly you find yourself with little or no support.

If you buy for example a license for the popular Theme Stockholm, then the drag’n’drop editor  Visual Composer and the slider plugins Revolution Slider and Flexslider and many others are included. So with little extra investment (mostly time) you can build pages with the visual page builder and even add sliders or slideshows to those pages – almost as easy as drag and drop.

But – oh no – the Flexslider interval (“auto rotate”) that is defining the timing when the images are changed offers only four steps. The pulldown menu, where you can actually set the interval, features only options for 3 seconds, 5 seconds, 10 seconds and 15 seconds. Alternatively you can disable the “auto rotate” option.

In most cases these 4+1 options would probably be sufficient – but sometimes it’s the little details that make all the difference. And when you’re used to coding your own settings in milli-second-steps, adjusting a slider through the Cisual Composer interface can be a bit frustrating, to say the least.

Wordpress Visual Composer Slider edit intervalHelping a friend / colleague to set up a WordPress website, based on the Stockholm Theme + Visual Composer + Flexslider I recently had to find out that finding support for that kind of combination plugins can be a bit hard. First I turned to the Theme Developers – but they told me I should either contact the CV staff or try the API. Long story short: I didn’t get the support I needed. So I had to find my way through – which turned out to be easier than expected.

The slider is wrapped by a div that should look like this:

<div class="wpb_gallery_slides wpb_flexslider flexslider_fade flexslider" data-flex_fx="fade" data-interval="10">

If I choose “5 seconds”, the “data-interval” has a “5” – so I suppose the interval is actually defined by the number I see inside the “data-interval” and is then passed to the slider component.

<div style="width:300px; height:250px; margin-left:20px; float:right;"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- cpu-300x250-inline --> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-7767251772696843" data-ad-slot="5040918527"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div>So instead of hacking the interface of the Visual Composer, you can basically just switch to the source code view and make you adjustments right inside the shortcode / source code.

First you have to switch to the “Classic Mode” by clicking on the blue button above the editor. Then I would recommend to switch to the source code – although it is very wenn also possible to make the adjustments right in the classic editor window. But I prefer to make such adjustments where they belong – in the source code.

You will then probably see quite a number of different shortcodes, depending on the number of VC elements you already added to that page. You will have to look for a shortcode that looks like this:

[vc_gallery interval="10" images="22390,23006" img_size="full"]

Inside this shortcode you can set the parameter interval to whatever you prefer – for example 7 – so that the slideshow images would change every 7 seconds:

[vc_gallery interval="7" images="22390,23006" img_size="full"]

The Flexslider or actually the Visual Composer Interface for the Flexslider (as part of the Stockholm Theme) can not really handle this input – but the clideshow itself will anyways respect your input. If you later on decide to add or remove images from the slider, chances are that the interface will reset that option to 3 seconds. Then you’ll once again have to look up that piece of shortcode and add your prefered interval once again.

Dedicated Hosting: good reasons to rent a Server

Dedicated Web Hosting: Web Server alley at All-Inkl

Dedicated Web Hosting: Web Server alley at All-Inkl – Photo / Copyright: ALL-INKL.COM

It’s not a secret: I do like Dedicated Hosting – and so we do rent a server – and not just server space. We have a so called Managed Server on which we run all our and our clients’ websites And we are very happy with it. because to me first of all renting a server means paying for stresslessness. Is that an actual word? Well – I hope you know, what I mean anyways.

Of course that server is not right here next to me in Berlin – instead it’s taken care of by the fine people of All-Inkl in Friedersdorf, Sachsen, Germany. We have been with All-Inkl for quite a few years now and we are still very pleased to be. First of all, this means less stress – or actually no stress for us, regarding the hosting details. Second we get good value for our money – and last but not least: everything is no fuss. It just works.

Why Dedicated Hosting? Because Web Design is bit like cooking

I’m not really a talented cook – or at least I’m not a very experienced cook. But I would still like to compare designing websites to preparing food. The quality and the taste of a good meal depends on different aspects: the ingredients are of course crutial, but so is the team,  the environment where you are cooking – and the tools you have at your disposal.

<div style="width:300px; height:250px; margin-left:20px; float:right;"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- cpu-300x250-inline --> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-7767251772696843" data-ad-slot="5040918527"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div>When you’re preparing a meal, the kitchen and its appliances is usually your environment – the infrastructure of cooking. When designing and/or running a website, your infrastructure probably consists of at least a desk, a computer, some programs – and a  Web Server.

Of course every cook can basically work in any kitchen – and every web designer could could basically work on any web server – as long as vertain conditions are met. But of course both cook and web designer feel most comfortable in their own environment, where they know how things work and where everything is. There’s no place like home.

Why should I rent a Web Server? Advantages of Dedicated Server Hosting

For our clients we are basically offering ‘everything’ you need to run a website. First of all we are of course designing and building websites – including a Content Management System that fits the clients needs. But ovr the years it has proven to be a good idea that we also can take care of much more: from researching and registering domain names to hosting – to support concerning email accounts, web statistic etc. – basically everything you need to actually run a website. Our clients can take care of their pressures content – we can take care of the technical details.

So basically – and technically we are Hosting Providers ourselves, while our core business remains designing and buildings websites. As designers we see ourselves as ‘problem solvers’ – service providers that take care of our clients needs.

For us Dedicated Hosting has quite a number of advantages. To sum it up very briefly: we know our Web Server – and our Web Server knows us.

<div style="width:300px; height:250px; margin-left:20px; float:right;"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- cpu-300x250-inline --> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-7767251772696843" data-ad-slot="5040918527"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div>Running a website on Shared Hosting or actually a Shared Server you would instead share one server with X neighbors – that means mostly websites you probably don’t know. One of your neighbors could run a script that would eat up the server’s processing power – another neighbor could run a website that would eat a lot of bandwidth – you just don’t know. Slow server response time? Try to find out, who is to blame, Sherlock!

I suppose such worst cases won’t actually matter, even if we had a shared server at All-Inkl since already the cheapest shared server account would only allow a maximum of 100 clients per server. but that’s still 99 neighbors. Anyways – I recently read that most of the hosting providers tend to stack their shared servers to the limit. Try a reverse IP-look-up and you’ll see, what I mean.

With Dedicated Hosting / a Managed Server you usually also gain a lot of freedom to configure things the way you want to – in ways that would never be possible on a Shared Server. You want to allocate more memory to a certain directory? No problem. Need a special PHP version? Got it.

Do you really need a Managed Server?

Of course not everybody needs a Managed Server – for most people / most websites that be probably a little over the top – and renting a Managed Server can also be a bit costly. The costs can easily add up and at the end of the year you’re facing a four digit invoice or the like.

But for us it was never the question if we could afford renting a Managed Server – the advantages  clearly outweigh the odds / the costs. But it is a good feeling to have everything up and running – it is actually running very smoothly. As I said in the beginning: no fuss. Our server has more than enough space and processing power than currently needed – we are happy and content – and our clients (hopefully/probably) too.

So maybe Dedicated Hosting on a Managed Server is not something for everybody, unless you are running a resource-hungry monster of a website. But if you happen to be a web designer / web developer that love’s to take care of things, wants to be in control and prefers to cook in his/her own kitchen, then you should probably consider renting a web server for you and your clients. I personally can only recommend it.

How to check the execution time of a php script

You have the feeling your website is slow? Some process is taking too long, something is not loading fast enough? Of course, there might be a script or maybe just a few lines of php slowing it down – but which part of the script is it? If you are witnessing for example speed problems with a WordPress Plugin, chances are that the plugin runs some loop inside a loop and/or maybe sending too many database queries. Reducing the number of database mySQL queries can dramatically speed up your page load time – but that will be subject of a different article. Anyways – all we need to know now is that there are ways to find out, which script or which plugin is executing slow – and how long it actually takes, to execute that particular piece of code.

Debugging or optimizing a script can be a time consuming task to do – so we’ll focus on those parts, that are the ‘most expensive’ ones – meaning the slowest ones. To find ‘time bandits’ inside your code all you basically have to do is start a timer before the suspicious script / plugin / module is executed – and then stop the timer once the script has done its job. And with PHP at hand it is not really complicated to measure the time that has past executing a piece of code – PHP code that is. Microtime to the rescue!

First you need to define a variable for the timer and start the timer before the script is executed like this:

$start_timer = microtime(true);

Then you stop the timer, after the script is executed like this:

$time_passed = microtime(true) - $start_timer;

You could then print the time that passed with a simple echo command:

echo("The script needed ".$time_passed." seconds to execute.");

If you want to round that number off to two positions behind the decimal point, you simply add the round command like this:

echo("The script needed ".round($time_passed, 2)." seconds to execute.");

So if you put everything together, it could look like this:

$start_timer = microtime(true);

// the suspicious code goes here
while … {

}

$time_passed = microtime(true) - $start_timer;

echo("The script needed ".round($time_passed, 2)." seconds to execute.");

PS: You may ask if speed optimization pays off? Is loading speed a SEO criteria? Is a slow loading website bad for SEO? And/or is a slow site bad for UX? All these questions can be answered YES. Good luck!

How to create a Child Theme for WordPress in Minutes

When you are creating a WordPress website, I would recommend you create and install the appropriate WordPress Child Theme right from the start. There are of course lots of WordPress Themes you can use as they are – well designed, fully functioning. Many so called Premium Themes offer a broad variety of different options to adjust design details, use a different font, change the colors etc. – and also many free WordPress themes offer basic functionality to adjust the design of the website, to stand out. However, whatever theme you may be using, there is often the need to do some additional adjustments. And this is when a child theme comes handy.

The easiest way to adjust a theme would probably be to edit the different templates and stylesheets directly. But that would also be the dirtiest way of doing this. Always remember: never hack the core! The next update will come and then all your precious adjustments may be overwritten – gone – and you’ll have to start all over again.

So actually the easiest way to do some quick adjustments is to create a WordPress child theme and then apply all the necessary adjustments to the child theme only.

Create a WordPress Child Theme in minutes

A few years ago it was a bit complicated to create a child theme. Nowadays it’s really just a matter of minutes to have a functioning child theme at hand, letting you change and tweak and twist whatever design details you would want to adjust.

How to create a Child Theme for WordPressBasically you only need to create two files – and then you’re ready to apply your own css to the parent theme, without changing it. Enough introduction – let’s get started:

First you need to create a new directory inside the themes directory. This folder will then hold all files that your child theme will be working with. Best practice would be to name the folder according to your theme’s name – in this example the child theme will be called “My Theme” so we will name the folder “my-theme”.

1) Create the Child Theme Stylesheet style.css

Inside this new directory you will first have to create the main stylesheet for your child theme – the style.css. The following code is the minimal requirement for the child theme to work:

/*
 Theme Name:   My Theme
 Theme URI:    http://cpu20.com/my-theme/
 Description:  Twenty Fifteen Child Theme
 Author:       First_name Last_name
 Author URI:   http://cpu20.com
 Template:     twentyfifteen
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
 Text Domain:  my-theme
*/

What are all these details good for? Well – most of the details are not really necessary. But it’s considered good practice follow the standards and to provide at least basic information for whoever will have to look at the child theme in the future. Also these details will partly be visible in the WordPress Themes’ administration screen.

I usually name the child theme after the project or after the client, often followed by the year I created the child theme. Then everybody involved knows what the theme is about – and when it was created. Here’s some details about the the above theme info:

  • Theme Name is the actual name of the theme or child theme, as it is displayed in the admin area.
  • Theme URI is the web address where you could find further information about the theme.
  • Description should feature a short description about the theme – in this case it says that the theme is a child theme of the default WordPress theme twentyfifteen.
  • Author is of course the the author of the theme / child theme and  the  Author URI should point to a website where you could find further information about the theme’s author.
  • Template is the name of the theme directory of the Parent Themes that the Child Theme is referring to – so in this case it’s twentyfifteen.
  • Version is the version number of the theme.
  • under Licence and Licence URI you should find information about the license the theme is published under. In most cases this should be the GNU General Public License.
  • Tags let you describe the theme by tags / keywords. This can help to actually find the theme once it’s for example submitted to some larger theme directory.
  • Text Domain is important so that the theme becomes fully translatable. The text domain must not interfere with any other text domain used by other themes. Again using the theme’s name is good practice.

The first step towards our new WordPress Child Theme is made – now we need to connect both Parent Theme and Child Theme with each other. We will do that in the file functions.php…

2)  Create the Child Theme Functions file functions.php

The second file we need to get out Child Theme running is the functions.php, that at least has to contain the code to properly connect the Child Theme with the Parent Theme. The child theme could actually run without it – but then it would be a theme – not a child theme – and no styles of the parent theme would be apllied to your website.

Here is the code:

<?php
function theme_enqueue_styles() {

    $parent_style = 'parent-style';

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style )
    );
}
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
?>

What this code does: first the Parent Theme’s Stylesheet is loaded, then the Stylesheet of the  Child Themes is loaded. This first the ‘regular’ style expressions are applied to the templates – then these are either overridden, or additional styles are applied.

<div style="width:300px; height:250px; margin-left:20px; float:right;"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- cpu-300x250-inline --> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-7767251772696843" data-ad-slot="5040918527"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div>In the last step we have to actually activate the theme. If everythings is uploaded to the web server, you should be able to find the child theme under Appearance > Themes in the left side bar of your administration screen. Once activated, all styles should be applied to the website. Also all additional functions that you could add to functions.php should be applied.

You could of course still go a bit further. Basically you could every detail of your website – override every style your parent theme defines. You could however first add a screenshot of your website to the child theme’s folder. This is basically not necessary, but nice – it makes your child theme look more professional in the admin area. All you have to do is take a screenshot of your website, rename the file to “screenshot.png” and upload it to the child theme directory.

Email “Domain availability notice” – what to do?

When you own a domain, chances are that every now and then you will receive an email with the subject “Domain X availability notice”. Sometimes there is also the domain name in the subject line “Domain X” and the sender sometimes is named “Domain Available Info” or the like.

And sometimes there are even several emails coming in, all from different “experts” that are basically just trying to make you buy some additional domain name from them. But is it all ‘just’ spam?

In most cases the suggested domain name “Domain X” is close to a domain name you already own – either the ending or some other detail is different, the rest looks pretty similar to your own domain. For example I recently had an offer for “cpu20.info” which is pretty close to the domain “cpu20.com”. But what should one do in such a case?

“ I just wanted to let you know that domain EXAMPLE is now/soon available again and we are brokering the sale. Since you have a related domain name we thought you might have some interest in this one? „

In most cases these services are professional domain brokers – sometimes also called Domain Grabbers.

What are Domain Grabbers? Are they allowed to do what they do?

If you are like me, your first reaction may not be the most positive. Basically domains should only be registered by people, companies and institutions, that have a direct interst in the domain name. That’s at least what the guidelines of the Internic say – the central registration authority. But still Domain Grabbers do register domains names just for later selling them for a much higher price. Such practice is possible, but from a legal point of view at least questionable. Practically there is very little one can do against such practice.

Often Domain Grabbers simply “catch” domains that are about to “fall”. If the previous owner has no further interest in his/her domain name, the domain name would normally expire and then be freely available. Catching a falling domain will register the domain right the moment it becomes available. And that makes it almost impossible for ‘normal’ prople to register a domain that once was registered.

What can you do?

There are basically just three options, what you can do, when you are offered such a domain name:

  1. Hire a Domain-Grabber
    You really want to own the domain that was offered to you? It may hurt both financially and morally, but one way to get hold on that domain is to actually hire a/the Domain Grabber. Depending on the service and on the domain you might have to pay a fee ranging from a couple of hundreds to whatever you are willing to pay. Good luck!
  2. Register the Domain Name yourself
    You can of course also hope that you are either quicker than the Domain Grabber, or that the service has no interest in registering the domain themselves. All you have to do is wait and see if the domain becomes available. In this case I would recommend not to answer – not even to click on any link provided in any of the emails you received by that service. Any action can be interpreted ‘positive interest’ which might make the Domain Grabber actually grab the domain. This tactic can work out, but it can of course also go wrong. Good luck!
  3. Register an Alternative Domain Name
    This is the easiest and cheapest option, in case you really want an additional domain name that is close to the one you already have. This may feel a bit frustrating in the beginning, but once you get over the ‘lost’ opportunity, you might even like your very own choice better than the one offered to you by some domain service. The success of a website / the search result positioning can of course also be influenced by the domain name itself – but in the end it’s the content, that matters. And additionally you may get a good feeling not having fed a system that is at least questionable. If nobody would feed the domain grabbers, their business idea simply would not work.

Update: In an actual case I just managed to stay patient – and then actually register the very same domain name that was first offered to me / my client by a “domain service”. We first discussed the above options and then decided to wait. And in the end it paid off. Yay!