How to declutter your technology

Mother board: for work-from-home mums it's important to organise your technology. Image: Getty

If you have ‘worked’ from home with young children, you’ll understand the quotations.

Often not a great deal of work gets done.

It’s difficult to maintain your mental focus when you’re constantly being interrupted by small humans piping up about Tiny Teddies and toilet time.

But for many mums despite the struggle, spending those early years at home alongside your children and still working (a little or a lot) is a good option.

As a writer, it was an easy decision for me to work from home. I only need a screen, some ideas and a little peace.

So I pushed on, conducting interviews while children cried in the background and typing articles while breastfeeding.

And I’m really glad I did.

It kept a smidge of a career chugging along and although now I’ve headed back into the big smoke, I still work two days in my home office while the kids are at school.

One problem I discovered working from home is – there’s no IT number to call when something hi-tech and impossible to grasp happens. And there’s no one to help you set up clouds and drop boxes and all those other things.

The first step is to have your devices and software set-up properly to start with (ask an expert!). Then ensure it’s super organised. I’ve done it and you should too. Here’s how to declutter your office technologically, with tech expert Trevor Long from Officeworks …

1. Folder planning

Get your desktop icons organised and colour-code them. It will give you clarity and ensure your hard work isn’t lost.

Think of your computer folders as a family tree – start at the top with the client or project and then create additional separations within the main folder to separate in categories, such as ‘finance and admin’ and file your documents accordingly

2. Go wireless

Random cords and wires can create the illusion of clutter. The main culprits are your computer desktops, laptop chargers, keyboards and the computer mouse. Though desktops will need to be plugged into a power outlet, there are numerous Bluetooth enabled wireless keyboards and mouses which will streamline your workspace. Upgrade your keyboard and mouse with Wireless Bluetooth enabled devices to create a cord-free space.  My top pick is the Logitech MK235 Wireless Keyboard and Mouse Combo.

When it comes to your desktop and monitor cords, firstly untangle your cords, then apply cord straps to contain your cables in a tight and organised bundle – colourful straps such as these Wrapt Up Hook and Loop Cord Straps will help you organise numerous cables in the workplace.

3. Shred it

If paperwork comes and goes in your office, consider purchasing a shredder to sit under the desk or in the office to manage any unnecessary paper that lands on your desk.  Shred it, recycle it and manage the clutter as you go – simple and effective.

4. Back Up

Your digital data is often your most important tool so ensure you back up your information regularly. Some Portable Hard Drives have pre-installed ‘Back Up’ software to take the leg work out of ensuring you’re protected. Don’t leave your information at risk, try the Seagate 1TB Backup Plus Slim Portable Hard Drive.

5. Reach for the skies

The ‘cloud’ is a word often used, but many are unsure about what it is.

In its simplest form, it’s a storage system that runs over the internet rather than on a computer’s hard drive.

It provides the same levels of security as a hard drive, but the big advantages are reliability and accessibility — you can access files on the go from any device providing there is internet connection.

Regardless of the age of your computer, Cloud Storage is strongly recommended as an off-site backup. It instils confidence that if there’s a computer failure you have a back-up copy of all your important documents.

Microsoft OneDrive is a great Cloud Storage option. It comes standard with 5GB of free Cloud storage as part of the Microsoft Office Home and Business package.

6. Protect your tech

  • Keep your firewall turned on. A firewall is an internal security system that protects your device from hackers. Most operating systems incorporate firewall protection, though the key is ensuring it is switched on and stays on.
  • Install and/or update your antivirus software. This is different to firewalls. Internet Security software detects and protects against any obscure or dangerous software programs. Norton Antivirus has a range available – remember to protect all your connected devices such as phones and tablets as well as computers.
  • Be careful with what you download. It goes without saying, but it’s a common mistake for people to open all attachments, links and files. This can be dangerous and lead to a lethal virus and a system shut down. If you don’t know the person, don’t open the accompanying document.
  • Remember to investigate product insurance to protect your new portable device for 12 months from purchase from accidental damage, loss or theft.


How to remove macOS Sierra and downgrade to El Capitan

Apple’s strategy of making macOS updates available for free from the Mac App Store and providing access to public betas of upcoming new versions has been very successful in encouraging us to keep our Macs updated. However, sometimes enthusiasm for the newest features can get the better of us and we upgrade in haste only to repent later.

There are several possible scenarios in which you may want to reverse and downgrade to an older version of macOS (or Mac OS X). You might install a public beta of a new version of macOS, and then discover it’s got bugs in it which break apps you depend on. And even when you upgrade to a new full version of the OS, you may find that features you relied on work differently or have disappeared.

Regardless of the specifics, the clear solution is to undo the update and revert to the version of macOS you were using before – but that’s sometimes easier said than done. In this article we show you how to downgrade macOS. Read next: macOS Sierra vs Mac OS X El Capitan

How to remove a macOS beta

The guide below works for both beta and full release versions of macOS. But there are some slight differences to the way you will approach the situation.

When you install a beta version of a new macOS upgrade, it’s good practice to install it on a separate hard drive. You can find out how to do that here: How to run macOS from an external hard drive.

That way you can test the beta while keeping your files and data safe from any bugs.

Nevertheless, if you’ve already installed a beta on top of your existing system, the process for reversing it is exactly the same as for a full version. Follow the instructions below to wipe your startup disk and re-install the latest full version of macOS.

Preparing to downgrade macOS

As with anything else, the key to minimising difficulty later is to prepare before you start.

The simplest way to reverse an OS update is to restore from Time Machine. So, if you’re not using Time Machine to make regular backups, start now, before you upgrade.

How to remove macOS Sierra and downgrade to El Capitan: Time Machine

Make sure you have a recent, complete backup of your system. That backup can be on a directly connected external disk, hooked up by USB, FireWire or Thunderbolt. Or it can be on a Time Machine compatible network drive, like Apple’s Time Capsule. If you’re running macOS Sierra, the network drive can use the SMB protocol; older versions of macOS only support AFP for Time Machine backups.

If you’ve got a Time Machine backup and need to revert to an older version of the OS, read the next section. If not, skip ahead to Downgrade without a Time Machine backup.

Restore from a Time Machine backup

Before we begin, it’s important to note that when you restore from a backup, you’ll wipe everything on your startup disk. That means any work you’ve done since you upgraded will be lost. So… back it up.

How to remove macOS Sierra and downgrade to El Capitan: CarbonCopyCloner

You can use Time Machine to do this, too. If you don’t use Time Machine, clone your startup disk to a spare external drive or at the very least make a copy of any files you’ve created or modified since you upgraded. If you’ve got photos in the Photos app and you don’t use iCloud Library, manually export them to an external disk so you can re-import them later.

Once you’ve backed up everything you want to keep from the newer version of the OS, restart your Mac with the Time Machine disk connected and while holding Command and R until you see the Apple logo.

How to remove macOS Sierra and downgrade to El Capitan: Utilities

When the options appear on screen, choose ‘Restore From Time Machine Backup’ and click Continue. Then select the Time Machine disk and select the backup you want to restore from – in most cases, it will be the most recent backup prior to installing the newer version of the OS. Follow the onscreen instructions.

If you backed up files from the newer OS using Time Machine, when your Mac restarts, click the Time Machine icon in the menu bar and select Enter Time Machine. You can now navigate to the most recent backup and the files you want and retrieve them.

If you used another tool to back up your files, use its restore facility. If you copied them manually, copy them back.

Downgrade without a Time Machine backup

Do you have a bootable installer of the OS you want to revert to on an external disk?

If so, you can plug that in, select it as the startup disk and reboot. When your Mac has restarted, launch Disk Utilities, select the Erase tab and choose your Mac’s regular startup disk (the one with the new OS on it).

When the disk has been erased, restart while holding down Command-R and select Reinstall macOS from the Utilities window and select your regular startup disk. Follow the onscreen instructions and wait for your Mac to restart.

Normally when you re-install macOS and have a backup, you’d choose the option to migrate data from the backup to the fresh installation, but in this case the backup is a later OS than the one you’ve just installed, so migrating data is likely to lead to compatibility problems. If, however, you have a clone of your Mac’s startup drive from before you upgraded, you could migrate data from that. You’d still be without the files you created while running the newer OS, but you’d at least have a base from which to start.

You would then manually copy files created while you were running the newer OS from the backup you made before you wiped your Mac’s startup disk.

How to create a bootable installer

Haven’t got a bootable installer? Don’t panic. You can download installers for earlier versions of macOS from the Mac App Store, provided you’ve installed them from there in the past.

So, for example, if you downloaded and installed macOS Sierra from the Mac App Store then installed the public beta of High Sierra and now want to revert to Sierra, you can search for Sierra on the App Store and download it.

How to remove macOS Sierra and downgrade to El Capitan: Installer file

Older versions of macOS won’t appear through normal search, unfortunately, but you can find them in the Purchased section.

Download Yosemite from Purchases

The important bit is that once it has downloaded, it will try to install. Don’t click anything that allows the installation to proceed, just quit the installation and a copy of the OS installer will remain in your Applications folder.

You’ll need to do this before you wipe your startup disk, obviously.

Here’s how to download and create a bootable version of an earlier version of macOS.

Once you’ve created a bootable installer using the instructions on that page, you can follow the instructions above to reverse a macOS upgrade.

Fixing common problems

Reversing an upgrade carries with it a number of wrinkles and pitfalls.

Most of these are due to changes in file formats and settings between versions of the OS. So, for example, if you create a document or work on a file in a new version, whether it’s a beta or full release, of macOS and then try and open it in an older version, it may not work.

To mitigate this, it’s wise to export any documents you’ve created or worked on in the newer OS in a standard file format. So, for example, if you use Scrivener or Ulysses, export documents as RTF files. That way, if the native files don’t survive the reverse upgrade, you’ll be able to re-import the RTF files.

Take screenshots of preferences and settings

Whenever you perform a clean install of macOS, which is what you’re doing here, it’s a good idea to take screenshots of any custom settings you’ve created in apps or in System Preferences. That makes it easier to re-create them later.

You should also make a note of user account and password details for anything you’ve set up while running the new version of the OS. If you don’t use iCloud or Chrome to synchronise bookmarks, it’s a good idea to export those and make a copy.

How to remove macOS Sierra and downgrade to El Capitan: Export bookmarks

And unless you’re using the migrate data option outlined above, you’ll also need installers and licence codes for apps you use. If those are downloads from the Mac App Store, you can just re-download them from the Purchased section in the App Store. If not, make sure you can download them from the vendor’s website. If you don’t use a password manager to store licence codes, make sure you’ve got a copy of them before you start.


If you use Dropbox, OneDrive, Google Drive or any other form of cloud storage, make sure your data is in sync before you start the process of reversing an upgrade. It’s easy to forget that the files that live in your Dropbox folder, or example, are local files and that while synchronisation is frequent, the loss of an internet connection will prevent it and you could have files in your local folder that haven’t yet been copied to the cloud.

Clicking on the cloud service’s logo in your menu bar should tell you whether synchronisation completed successfully and files are up to date.

If you use Gmail, iCloud mail or any other IMAP server for your email, make sure it’s up to date and any drafts you’ve composed recently have been synchronised. If you use a POP3 account you’ll have to manually back up the mail database and restore it after you reverse the upgrade. Or, if you only have a few messages you need to keep, forward them to a Gmail account – you could set one up especially for that purpose.


How Technology Can Help You Engage Your Audience the Right Way


If you’re looking for a scapegoat for just about any of the world’s issues, you probably know technology makes a good choice. I can’t tell you how many times I’ve heard people talk about how technology and being “plugged in” is making relationships harder than ever.

For some, I’m sure that’s probably true. At the end of the day, though, technology is a tool, and your relationships with other people — including your audience — depend on how you use it.

For marketers, technology presents an opportunity for you to reach and connect with your audience. Content marketing tools, for example, help you plan and craft your brand’s most engaging messages. Social media tools help you get them into the hands of the right people. Marketing automation platforms help you streamline and automate your processes, among other things.

The only catch? You can’t entirely remove the human element from the equation and let technology do it all.

Learn the Golden Equation: Technology + authenticity = engagement

If you had your choice between an engaging, personalized message from an authentic thought leader at a company and boring, automated content coming from an impersonal corporate logo, which would you prefer? It’s no contest: We’d all choose personalized content from real humans.

Marketers can use technology to create that content, deliver it, measure their efforts — any number of things. But tech, as ever-present as it is, won’t magically result in audience engagement and stronger relationships. Like I said, it’s a tool that needs to be used to make your job of connecting with your audience easier than before.

Sadly, too many brands forget their role in building those relationships and overlook the human elements that are necessary to make their messages resonate. They then wonder why engagement is low, assuming technology has created this huge trust barrier and made it harder to connect instead of looking in the mirror to find the root of the problem: They haven’t humanized their brands or used the right content to communicate that.

Make the shift from me to you

Talking “at” versus talking “with”: It’s a big distinction. Too many companies are knee-deep in the former, pushing out information like that boorish uncle at your folks’ annual Fourth of July picnic who simultaneously says everything and nothing.

In the past, brands would develop an idea or a message and push it out for everyone and their mother to see, whether those recipients truly cared to see it or not. In my business and marketing book, “Top of Mind,” I call this “Me Marketing,” where marketers only push out what they want and focus on themselves in the process. (I’ve yet to meet one person who truly enjoys getting spammed with a ton of promotional emails that were clearly sent out en masse with no personalization at all.)

Today, effective brands and marketers are taking a different approach. They have shifted to what I call “You Marketing” and have begun creating content for the actual audience members receiving it.

There’s a much greater focus on what audiences want and how they like to receive information, engage with content, and work with brands. Marketers need to listen to and authentically engage with audiences, and they need to do it on that audience’s terms. Technology can help.

Pursue new technology for better relationships

One example of a tool that’s taking the modern customer experience and running with it is PingPilot. Launched by SCORCH, this software aims to change the conversation between businesses and individuals by allowing people to choose their preferred means of communication. The means of conversation can change depending on the client’s needs — live chat, voice, and SMS are all viable channels. Essentially, businesses move over and give consumers the keys to the car, as well as the wheel.

Over time, this allows brands and consumers to forge sincere bonds based on trust and live interactions, not chatbots or automated replies. Each touchpoint becomes an opportunity to build a better understanding of customers; data from these interactions can improve the company’s marketing stack and explode lead generation, not to mention conversions.

This is a prime example of how technology actually helps build stronger personal relationships and connections, not replace them.

Everyone loves to hate something, but it’s time to pull back from blaming technology left and right. Instead of cursing a technology-rich world that’s made Snapchat filters and hashtags so ubiquitous you hardly notice them anymore, it’s wiser to look deeper into what those selfies and hashtags mean to the people who make, view, and engage with them. Authenticity between brands and audiences has technology at its core, but it takes human hands, minds, and hearts to execute it.

John Hall is the CEO of Influence & Co., a keynote speaker, and the author of “Top of Mind.” You can book John to speak here.


How technology is being used to fight disease-carrying mosquitoes


New technology to ward off mosquitoes includes traps as well as technology to render them sterile. (Shutterstock)

American technology companies are bringing automation and robotics to the age-old task of battling mosquitoes in a bid to halt the spread of Zika and other mosquito-borne maladies worldwide. Firms including Microsoft Corp and California life sciences company Verily are forming partnerships with public health officials in several US states to test new high-tech tools.

In Texas, Microsoft is testing a smart trap to isolate and capture Aedes aegypti mosquitoes, known Zika carriers, for study by entomologists to give them a jump on predicting outbreaks. Verily, Alphabet’s life sciences division based in Mountain View, California, is speeding the process for creating sterile male mosquitoes to mate with females in the wild, offering a form of birth control for the species.

While it may take years for these advances to become widely available, public health experts say new players brings fresh thinking to vector control, which still relies heavily on traditional defenses such as larvicides and insecticides. “It’s exciting when technology companies come on board,” said Anandasankar Ray, an associate professor of entomology at the University of California, Riverside. “Their approach to a biological challenge is to engineer a solution.”

Pregnant women are at greater risk of contracting Zika virus. (Shutterstock)

The Zika epidemic that emerged in Brazil in 2015 and left thousands of babies suffering from birth defects has added urgency to the effort. While cases there have slowed markedly, mosquitoes capable of carrying the virus — Aedes aegypti and Aedes albopictus — are spreading in the Americas, including large swaths of the southern United States. The vast majority of the 5,365 Zika cases reported in the United States so far are from travellers who contracted the virus elsewhere. Still, two states — Texas and Florida — have recorded cases transmitted by local mosquitoes, making them prime testing grounds for new technology.

In Texas, 10 mosquito traps made by Microsoft are operating in Harris County, which includes the city of Houston. Roughly the size of large birdhouses, the devices use robotics, infrared sensors, machine learning and cloud computing to help health officials keep tabs on potential disease carriers. Texas recorded six cases of local mosquito transmission of Zika in November and December of last year. Experts believe the actual number is likely higher because most infected people do not develop symptoms.

Pregnant women are at high risk because they can pass the virus to their foetuses, resulting in a variety of birth defects. Those include microcephaly, a condition in which infants are born with undersized skulls and brains. The World Health Organization declared Zika a global health emergency in February 2016.

The Microsoft machines differentiate insects by measuring a feature unique to each species: the shadows cast by their beating wings. When a trap detects an Aedes aegypti in one of its 64 chambers, the door slams shut. Other companies, meanwhile, are developing technology to shrink mosquito populations by rendering male Aedes aegypti mosquitoes sterile. When these sterile males mate with females in the wild, their eggs don’t hatch. The strategy offers an alternative to chemical pesticides. But it requires the release of millions of laboratory-bred mosquitoes into the outdoors. Males don’t bite, which has made this an easier sell to places now hosting tests.

At MosquitoMate’s labs in Lexington, immature mosquitoes are forced through a sieve-like mechanism that separates the smaller males from the females. These mosquitoes are then hand sorted to weed out any stray females that slip through. “That’s basically done using eyeballs,” said Stephen Dobson, MosquitoMate’s chief executive.

Enter Verily. The company is automating mosquito sorting with robots to make it faster and more affordable. Company officials declined to be interviewed. But on its website, Verily says it’s combining sensors, algorithms and “novel engineering” to speed the process. Verily and MosquitoMate have teamed up to test their technology in Fresno, California, where Aedes aegypti arrived in 2013.

Officials worry that residents who contract Zika elsewhere could spread it in Fresno if they’re bitten by local mosquitoes that could pass the virus to others. “That is very much of a concern because it is the primary vector for diseases such as dengue, chikungunya and obviously Zika,” said Steve Mulligan, manager of the Consolidated Mosquito Abatement District in Fresno County. The study, which still needs state and federal approval, is slated for later this summer.



A political solution in Syria? How the latest ceasefire deal suits Vladimir Putin, Bashar al-Assad and Iran

Image result for A political solution in Syria? How the latest ceasefire deal suits Vladimir Putin, Bashar al-Assad and IranRussia hopes the “breakthrough” Syrian ceasefire it brokered this week will align the US with President Vladimir Putin’s plans for the war-torn country.

Details of the agreement between Putin and US President Donald Trump Friday to create a de-escalation zone in southwestern Syria remain under negotiation. But scepticism abounds on whether the plan to end a war that in which an estimated 470,000 people have died can succeed where others failed.

Yet something has changed, as US Secretary of State Rex Tillerson said in his comments on the deal, which starts on Sunday with a preliminary ceasefire in areas along the Jordanian border.

Describing the deal with the US as a breakthrough, Putin said at a news conference in Hamburg Saturday that it should become a prototype for a series of zones across Syria that would be administered in coordination with the government in Damascus.

“If we succeed in doing this, we will create an undoubtedly good base and the prerequisites for a political solution in Syria in general,” he said.

Assad is going to retake most of Syria, and there is nothing the US can do about it

Although Putin and all sides are committed to Syria’s territorial unity, the plan would temporarily lead to something like Germany after the second world war, when the allied powers divided the country into four administrative zones, according to Fyodor Lukyanov, who leads Russia’s Council on Foreign and Defence Policy.

“This is the beginning of the soft partition of Syria,” he said. “De-escalation is a euphemism for zones of responsibility, where the different sides will agree which power is responsible for which part of the country.”

The outlines of the Russian proposal approved in Friday’s meeting between Trump and Putin were borrowed from talks between Iran, Russia and Turkey to create de-escalation areas in other parts of the country, Lukyanov said.

Taken together, the two plans represent the Russian military’s strategy for exiting the conflict, Lukyanov said.

They also show how the situation on the ground has transformed over the last year. Syria’s second city, Aleppo, fell back under regime control and the US-led campaign to drive Islamic State (IS) from its self-declared caliphate advanced significantly.

That has left the US with a decision to make on what to do once IS is defeated.

It can wrestle with Iran, Russia and Syrian President Bashar al-Assad for control of recaptured areas of Syria.

Or it can declare mission accomplished, agree to oversee the security of zones near the borders with its core allies, Israel and Jordan, and leave most of Syria to Assad, said Joshua Landis, director of the Centre for Middle East Studies at the University of Oklahoma. Both Russian and US Syria analysts believe Friday’s decision indicates the latter.

There is a new security architecture being imposed in the Middle East and Iran is the beneficiary

“Assad is going to retake most of Syria, and there is nothing the US can do about it,” Landis said. “There is a new security architecture being imposed in the Middle East and Iran is the beneficiary.”

Tillerson said clearly in his remarks after the Trump-Putin meeting that the Syria deal was a starting point for a wider cooperation with Russia after IS’s defeat. The issue then, he said, would be to pacify other areas of the country.

“By and large, our objectives are exactly the same. How we get there, we each have a view,” Tillerson said. “Maybe they’ve got the right approach and we’ve got the wrong approach.”

The agreement could fall apart quickly. The forces who are not party to the deal – including Assad’s forces, Iranian-led militias and al-Qaeda-linked rebels – exist on the ground in southern Syria as well in the North, where a ceasefire crafted by the Russians and the Americans last year collapsed within two weeks.

In addition, so far the only monitors on offer to police the de-escalation zone are Russian. How others might become involved and in what capacity is under negotiation, the State Department official said. The Russian view of how the zones will work is also minimalist and favourable to the Assad regime.


How to Create WordPress MySQL Databases on cPanel

Filing room

This article is part of a series created in partnership with SiteGround. Thank you for supporting the partners who make SitePoint possible.

WordPress’ success owes much to its quick and simple five-minute installation procedure. Yet the MySQL database still causes confusion for many.

This tutorial describes how to create a database using cPanel, a popular platform management utility offered by many web hosts. We’ll also discuss how to use this database during a WordPress installation. The techniques can be used by any web application which requires MySQL.

Let’s start with the basics and terminology…

What is a Database?

A database is a collection of organized data. That’s it. WordPress stores all its page, post, category and user data in a database.

MySQL is a database management system (DBMS). It is software which allows you to create, update, read and delete data within a database. A single MySQL installation can manage any number of self-contained databases. You could have one for WordPress, another for Magento, and others for Drupal or whatever you need.

There are plenty of alternatives but MySQL became popular for several reasons:

  • it is free, open source software. It is now owned by Oracle but there are open MySQL-compatible options such as MariaDB.
  • it became synonymous with PHP – the web’s most-used language/runtime which powers WordPress. Both PHP and MySQL appeared in the mid-1990s when web development was in its infancy.
  • it adopts Structured Query Language (SQL) – a (fairly) standard language for creating data structures and data.
  • it is fast, simple to install and has many third-party development tools.

How do Applications Access a Database?

Applications such as WordPress access their data via a database connection. In the case of MySQL, WordPress’ PHP code can only establish a connection when it knows:

  • the address where MySQL is installed
  • the name of the database it needs to access
  • a user ID and password required to access that database

A database “user” account must be defined for WordPress use. It can have a very strong password and set appropriate database permissions.

How is Data Stored?

MySQL and other SQL databases store data in relational tables.

For example, you may have a set of article posts. Each post will have unique data, such as the title and body text. It will also have data used in other posts, such as the category and author details. Rather than repeat the same data again and again, we create separate tables:

  • an author table containing an ID, the author’s name and other details
  • category table containing an ID and the category name
  • post table containing the article title and body text. It would point to the author and category by referencing the associated ID number.

SQL databases implement safeguards to guarantee data integrity. You should not be able to reference an author ID which does not exist or delete a category used by one or more articles.

These table definitions and rules form a database schema. A set of SQL commands execute during WordPress installation to create this schema. Only then are the tables ready to store data.

How to Create a Database

Web hosts using cPanel provide a web address (such as, and a user ID and password to gain access. Keep these details safe. Do not confuse them with the database or WordPress user credentials!

If you’re looking for a host that supports cPanel, try SiteGround, our web host of choice. All plans support cPanel, and they’ve re-skinned the dashboard to organize everything in a more friendly way.


You view may look a little different but locate the DATABASES section or enter “MySQL” in the search box.

Click the MySQL Database Wizard and follow the steps:

Step 1: Choose a Database Name

Your database requires a name:

create a database

The name may have a prefix applied, such as mysite_. Enter an appropriate name such as blog or wordpress and hit Next Step.

Step 2: Create a Database User

You must now define the MySQL user account which WordPress uses to access your database:

create database user

Note the user name may also have the same prefix applied (mysite_). In this screenshot, our user ID is mysite_blogDBuser.

cPanel will ensure you enter a strong password. The password can be complex; you will use it only once during WordPress installation. I recommend the random Password Generator:

password generator

Make sure you copy the user ID and password to a text file or another safe place before hitting Create User.

Step 3: Set the Database User Privileges

The user created above requires full access to the database during WordPress installation. It runs scripts to create tables and populate them with the initial data.

Check ALL PRIVLEGES then hit Next Step:

set database user privileges

cPanel will confirm creation of the MySQL database and user.

enter image description here

The MySQL Databases Panel

You can use the MySQL Databases panel instead of the wizard. It still allows you to create a database and user, but you then add that user to the database.

It also provides facilities to update, repair and delete databases and users.

How to Install WordPress

Your cPanel may provide WordPress and other application installers. It may not be necessary to follow the steps above because the script creates a database for you.

If manual installation is necessary or preferred, download WordPress and extract the files. You may be able to do this on your server via SSH but FTP/SFTP is also supported.

Open a browser and navigate to the domain/path where you copied WordPress, (i.e. This starts the installation:

install WordPress

You must enter:

  • the MySQL Database Name created in step 1
  • the MySQL database Username created in step 2
  • the MySQL database user’s Password created in step 2
  • the Database Host. This is the address of the server where MySQL runs. It will often be localhost or because MySQL is running on the same server where your site is hosted. Your host will advise you if this is different.

The Table Prefix adds a short string to the start of all table names. Change it when:

  1. You want to install many copies of WordPress which all point to the same database, and/or
  2. You want to make your installation a little more secure by making table names less obvious.

Hit Submit and WordPress will verify your credentials before continuing installation.

Create a WordPress User

WordPress prompts for the ID, password and email address of a WordPress administrator. This is someone responsible for managing WordPress. It is different to the MySQL database and cPanel credentials!

enter image description here

Hit Install WordPress and the dashboard will appear within a few seconds.

Bonus Security Step

We granted full permission to the database user for WordPress installation. You can downgrade these privileges after installation to improve security.

The following rights should be adequate:


Some plug-ins may need extra rights so enable ALL PRIVILEGES if you encounter problems.


Petya ransomware cyberattack: What it does, how to protect your PC and more

Petya, Petya cyberattack, Global Cyberattack, Ransomware, Global Ransomware, Petya global ransomware, Petya ransomware attack, Petya attack, What is Petya, How to protect against Petya, Petya cyberattack, technology, technology news

Petya ransomware is part of a new wave of cyberattacks that has hit computer servers all across Europe, locking up computer data and crippling enterprise services. (Representational Image. AP)

Petya ransomware is part of a new wave of cyberattacks that has hit computer servers all across Europe, locking up computer data and crippling enterprise services in the corporate sector. Ukraine and Russia are the worst affected, though the attack has also impacted some companies in the US and other Western European countries.  So what exactly is the Petya ransomware attack, and how does it affect a PC? Also what exactly can one do to protect themselves against the ransomware? We explain everything you need to know.

What is Petya ransomware? What vulnerability is it exploiting it in the Windows system?

Petya is a ransomware, similar to the Wannacry attack. According to Security Research firm Kasperksy, Petya could be a variant of Petya.A, Petya.D, or PetrWrap. However, the firm doesn’t think this is a variation of the WannaCry cyberattack.

The post from Kaspersky also notes Petya is exploiting the same EternalBlue exploit that was used by Wannacry attack. The blogpost notes, “This appears to be a complex attack which involves several attack vectors. We can confirm that a modified EternalBlue exploit is used for propagation at least within corporate networks.

For those who don’t remember, WannaCry attack affected over 300,000 computers globally, and this one also exploited this particular security vulnerability in Microsoft’s Windows systems. Microsoft had issued a security patch to fix the ‘EternalBlue’ exploit in Windows 10, Windows 8,7 and even Windows XP PCs. The problem like with many of the Windows updates: people might not have applied the security patch or downloaded the update.

How exactly does Petya spread? What does it do to an infected computer?

Petya is a ransomware, and it follows WannaCry’s pattern. The ransomware locks up a computer’s files and demands $300 Bitcoins as ransom to unlock the data. All data on a computer, network gets encrypted.

This message is flashed on a computer, “If you see this text, then your files are no longer accessible, because they are encrypted. Perhaps you are busy looking for a way to recover your files, but don’t waste your time. Nobody can recover your files without our decryption service.

Petya, Petya cyberattack, Global Cyberattack, Ransomware, Global Ransomware, Petya global ransomware, Petya ransomware attack, Petya attack, What is Petya, How to protect against Petya, Petya cyberattack, technology, technology newsPetya is a ransomware, which is similar to the Wannacry ransomware and demands $300 in Bitcoins from users.

According to Kaspersky security team, in order get the credentials to spread, the ransomware relies on a custom tool called “a la Mimikatz.” This extracts credentials from the lsass.exe process, which is one of the crucial files in the Windows system. This stands for Local Security Authority Subsystem Service.

The attack is believed to have started against an update used on a third-party Ukrainian software called MeDoc, which is used by many government organisations in the country. According to reports, this is also the reason why Ukraine was the worst affect in the lot. Kaspersky says over 60 per cent of attacks took place in Ukraine, and Russia is second on the list with 30 per cent. But these are just the initial findings from Kaspersky.

Once the malware infects the computer, it will wait for an hour or so minutes, and then reboots the system. After the rebooting, the files are encrypted and a user get a ransom note on their PC asking them to pay up. Users are also warned against switching off their PC during the rebooting process, because it could make them lose their files.

As the Kaspersky blog points out, attackers want the Bitcoins to be paid and victims are asked to send the ransom to a particular address, and then the Bitcoin wallet id and personal number via e-mail to an address [email protected], confirming the transaction has been made.

So how can the ransomware attack be stopped?

The malware seems to infect the entire network, and known server names. According to Kasperky, “Each and every IP on the local network and each server found is checked for open TCP ports 445 and 139. Those machines that have these ports open are then attacked with one of the methods described above.” So yes, this is a fairly comprehensive cyberattack.

When it comes to decrypting files, currently there is no solution. According to the security researchers at Kaspersky, “the ransomware uses a standard, solid encryption scheme.” The firm notes that unless the hackers made a mistake, the data can’t be accessed.

Petya, Petya cyberattack, Global Cyberattack, Ransomware, Global Ransomware, Petya global ransomware, Petya ransomware attack, Petya attack, What is Petya, How to protect against Petya, Petya cyberattack, technology, technology newsWhen it comes to decrypting files, currently there is no solution. (Image source: AP)

So who is behind the Petya cyberattack? What all companies, countries have been impacted?

Researchers are still looking for who is responsible for this attack. But the impact of this is serious. In Ukraine, government offices, energy companies, banks, cash machines, gas stations, and supermarkets, have all been impacted, reports Associated Press. The Ukrainian Railways, Ukrtelecom, and the Chernobyl power plant was also affected by the attack.

Multinational companies like law firm DLA Piper, shipping giant AP Moller-Maersk, drugmaker Merck as well as Mondelez International, which is the owner of food brands such as Oreo, Cadbury, was also impacted. In the US, some hospitals have also been impacted by this cyberattack. Poland, Italy and Germany are other countries affected by the cyberattack. In India, the Jawaharlal Nehru Port has been impacted given Moller-Maersk operates the Gateway Terminals India (GTI) at JNPT. This has capacity for over 1.8 million standard container units.

So what happens now?

For starters, it seems the email address, which was being used by the hackers, has been suspended by the service provider. In a blogpost Posteo wrote, “We became aware that ransomware blackmailers are currently using a Posteo address as a means of contact. Our anti-abuse team checked this immediately – and blocked the account straight away.” Posteo also confirmed that it was no longer possible for the attackers to access the email, send mails, or access the account.

For now, users who have lost their data can’t really recover it unless they have a backup. There’s no way of getting the decryption key from the hackers, since the email account has been shut down. However, according to a tweet from HackerFantastic, when the system goes in for a reboot, the user should power off the PC. His tweet reads, “If machine reboots and you see this message, power off immediately! This is the encryption process. If you do not power on, files are fine.”

The problem with Petya is that right now researchers have no solution for decrypting these files. There’s also no way of stopping the attack from the spreading, given it exploits vulnerabilities in the network.

For users, it is best to keep a back up of all their data. Preferably this data should not be online, and it should be encrypted. Users should also not click on email links from suspicious ids or click on links asking for access to personal information. Also keep your Windows PC updated with the latest software.


How to get regular free security updates for Windows XP and Vista


Two months ago, in an effort to fightback against the WannaCry ransomware, Microsoft took the ‘highly unusual’ step of releasing a patch for Windows XP, the ancient operating system it stopped supporting back in 2014 (even though, as it turned out, it was really Windows 7, not XP, that was to blame for the spread of the devastating malware).

Then just two weeks ago, Microsoft included Windows XP and Vista — another operating system it no longer supports — in June’s Patch Tuesday updates. Despite these recent actions, neither XP nor Vista are going to receive regular security updates from Microsoft, meaning users still running either OS remain at serious risk. However, the good news is there are a couple of tricks you can use to continue receiving security updates for both XP and Vista.

In the case of XP, the trick is to make use of updates for Windows Embedded Industry (formerly known as Windows Embedded POSReady). This is based on Windows XP Service Pack 3, and the security updates which are being released for it are essentially the same ones Microsoft would have pushed out for XP, if it was still doing so.

You can’t simply install the updates — that would be too easy — and you’ll receive a version mismatch error if you try. But a simple registry tweak is enough to fix that.

Create a text document, and call it XP.reg. You’ll need to make sure .reg is the proper extension — so not “XP.reg.txt”. If it’s not showing up as a registry file, open any folder, go to Tools > Folder Options, select View and uncheck ‘Show hidden files and folders’. That should fix the problem.

Right-click the file, and select Edit. Paste in the following:

Windows Registry Editor Version 5.00



Save it, and then double-click the file. That will make that change to the registry. That’s all you need to do. Windows should now automatically fetch updates designed for Windows Embedded Industry, ensuring XP remains protected until 2019.

This trick only works for 32-bit editions of XP, but there’s a workaround for 64-bit versions here.

As for Vista, the trick to getting updates is similar, except it uses Windows Server 2008’s patches as that OS architecture is very close to Vista’s and Microsoft plans to keep supporting it until 2020.

To use this, you need to make use of the Microsoft Update Catalog.

The steps to follow are:

  • Look for any Windows Server 2008 updates mentioned by Microsoft, and make a note of the relevant Knowledge Base ID, or browse the regularly updated list at BeepingComputer.
  • Open the Microsoft Update Catalog and search for the ID, or click the BeepingComputer update link.
  • Locate the Windows Server 2008 version of the patch.
  • Download and install it.

Naturally there are risks associated with both these methods — you are, after all, installing patches on an operating system they aren’t intended for — so it’s worth making sure you’ve backed up all your important personal files or settings before proceeding.


How to Block Pop-Ups in Firefox

How to Block Pop-Ups in Firefox

Browsing on the Web on your phone or computer can become a fraught experience if you visit sites that throw a lot of pop-ups at you. It’s particularly bad on the mobile where it is hard to dismiss these. However, this is slowly becoming less of an issue, as most browsers now allow you to prevent pop-ups altogether. Firefox is the second-most popular desktop browser in India, and you can follow the below steps to block pop-ups with Firefox. We’ve also written about Chrome, UC Browser, and Opera, if you don’t use Firefox.

How to block pop-ups in Firefox (Windows/ macOS/ Linux)
If you’d like to block pop-ups on Firefox for desktop, follow these steps:

Open Firefox.
Click the hamburger menu button in the top-right corner, and choose Options.
Choose Content in the left-hand side.
Tick Block pop-up windows to block pop-ups, or untick to allow.
popup firefox pc Firefox popups

How to block pop-ups in Firefox (Android)
If you’d like to block pop-ups on Firefox for Android, follow these steps:
Open Firefox.
Type about:config in the address bar.
Search for dom.disable_open_during_load.
Set it to false to allow pop-ups, and true to block pop-ups.
How to block pop-ups in Firefox (iPhone/ iPad)
If you’d like to change the pop-up blocker setting on Firefox for iOS, follow these steps:

Open Firefox.
Tap the hamburger menu button at the bottom.
Swipe left, and then choose Settings.
Turn on the toggle for Block Pop-up Windows to block pop-ups, or turn it off to allow pop-ups.

popup firefox ios Firefox popups

Have you had any trouble with pop-ups on Firefox? Share your questions via the comments below.

For more tutorials, visit our How-To section.



How to Create Interactive JavaScript Charts from Custom Data Sets

Image result for DeCaffeinate Converts CoffeeScript To JavaScriptCharts are a great way of visualizing complex data quickly and effectively. Whether you want to identify a trend, highlight a relationship, or make a comparison, charts help you communicate with your audience in a precise and meaningful manner.

In my previous article — Getting Started with AnyChart: 10 Practical Examples — I introduced the AnyChart library and demonstrated how it is a great fit for your data visualization needs. Today, I want to dig a little deeper and look at AnyChart’s data mapping features which allow you to create beautiful charts from custom data sets with a minimum of fuss.

I also want to look at the many ways you can customize AnyChart to suit your requirements, as well as how you can change the look and feel of AnyChart charts by using themes. There are currently 17 out-of-the-box themes to choose from, or you can create your own. And if you’ve not got the best eye for design, why not buy our book to get a leg up.

As the Head of R&D at AnyChart, I could spend all day talking about this library, but now it’s time to get down to business.

Data Mapping in AnyChart

More from this author

  • Getting Started with AnyChart — 10 Practical Examples
  • Introducing GraphicsJS, a Powerful Lightweight Graphics Library

To facilitate the integration of custom data sources into charting applications, AnyChart has special objects called data sets. These objects act as intermediate containers for data. When data is stored in data sets, AnyChart can track changes to it, analyze it, and work with this data in a more robust and effective manner. In short: interactive JavaScript charts have never been easier!

No matter if you have an array of objects, an array of arrays, or a .csvfile, you can use data sets to:

  • ensure full and explicit control over the series created
  • define which column is an argument (x-axis)
  • define which columns hold values for which series
  • filter data
  • sort data

Basics of Data Mapping

The best way to learn how data mapping works in AnyChart is to look at an example. Let’s imagine an array with the following custom data set:

var rawData = [
  ["A", 5, 4, 5, 8, 1, "bad"],
  ["B", 7, 1, 7, 9, 2, "good"],
  ["C", 9, 3, 5, 4, 3, "normal"],
  ["D", 1, 4, 9, 2, 4, "bad"]

There’s nothing too wild going on here — this kind of custom data structure is common in a lot of existing applications. But now you want to use this array in AnyChart. With many other charting libraries you would be forced to transform the data to a format that the library can work with. Well, with AnyChart things are a lot simpler — just look what we can do. First, load the array into a data set:

var rawData = [
  ["A", 5, 4, 5, 8, 1, "bad"],
  ["B", 7, 1, 7, 9, 2, "good"],
  ["C", 9, 3, 5, 4, 3, "normal"],
  ["D", 1, 4, 9, 2, 4, "bad"]

var dataSet =;

And then, once the data has been loaded into the data set, the real magic begins: you can now create so called views. These are data sets derived from other data sets.

var rawData = [
  ["A", 5, 4, 5, 8, 1, "bad"],
  ["B", 7, 1, 7, 9, 2, "good"],
  ["C", 9, 3, 5, 4, 3, "normal"],
  ["D", 1, 4, 9, 2, 4, "bad"]

var dataSet =;

var view1 = dataSet.mapAs({x: 0, value: 1});
var view2 = dataSet.mapAs({x: 0, value: 2});
var view3 = dataSet.mapAs({x: 0, high: 3, low: 4});
var view4 = dataSet.mapAs({x: 0, value: 5, meta: 6});

You’ll notice that when defining a view, you determine which columns from the original array are included and what names these columns get. You can then use them to create whichever kind of charts you like. For example, here’s how to create a pie chart from the custom data in the 5th column.

Note: AnyChart needs only x and value fields to create a pie chart, but the views also contain a meta field with the data from the 6th column. You can map any number of optional fields and use them as you like. For example, these fields can contain additional data to be shown as labels or as tooltips:

anychart.onDocumentLoad(function() {
  var rawData = [
    ["A", 5, 4, 5, 8, 3, "Bad"],
    ["B", 7, 1, 7, 9, 5, "Good"],
    ["C", 9, 3, 5, 4, 4, "Normal"],
    ["D", 1, 4, 9, 2, 3, "Bad"]

  var dataSet =;
  var view4 = dataSet.mapAs({x: 0, value: 5, meta: 6});

  // create chart
  var chart = anychart.pie(view4);
  chart.title("AnyChart: Pie Chart from Custom Data Set");
  chart.labels().format("{%meta}: {%Value}");

And this is what we end up with:

Note: You can find all of the demos in this article as a CodePen collection.

Multi-Series Combination Chart with Custom Data Set

Now, let’s see how we can use the same custom data to create a combination chart with line and range area charts on the same plot. This section is going to be very short since now you know what views are. All you need to do is choose the proper views and create the necessary series explicitly:

anychart.onDocumentLoad(function() {
  var rawData = [
    ["A", 5, 4, 5, 8, 3, "Bad"],
    ["B", 7, 1, 7, 9, 5, "Good"],
    ["C", 9, 3, 5, 4, 4, "Normal"],
    ["D", 1, 4, 9, 2, 3, "Bad"]

  var dataSet =;

  var view1 = dataSet.mapAs({x: 0, value: 1});
  var view2 = dataSet.mapAs({x: 0, value: 2});
  var view3 = dataSet.mapAs({x: 0, high: 3, low: 4});

  // create chart
  var chart = anychart.line();
  // create two line series
  // create range area series

  // set title and draw chart
  chart.title("AnyChart: Combined Chart from Data Set");

This is what it looks like:

Live Data Streaming and Filtering

And now, to showcase the beauty of views and data sets. For this we’ll create a column chart and a multi-line chart, live stream data into a data set, and accept only certain values into the column chart. Sound complicated? It isn’t really!

anychart.onDocumentLoad(function() {
  var rawData = [
    ["A", 5, 4, 2, 6, 3, "Bad"],
    ["B", 7, 2, 1, 9, 5, "Good"],
    ["C", 8, 3, 2, 9, 4, "Normal"],
    ["D", 1, 4, 1, 4, 3, "Bad"]

  dataSet =;

  var view1 = dataSet.mapAs({ x: 0, value: 1 });
  var view2 = dataSet.mapAs({ x: 0, value: 2 });
  var view3 = dataSet.mapAs({ x: 0, value: 3 });
  var view4 = dataSet.mapAs({ x: 0, value: 4 });
  var view5 = dataSet.mapAs({ x: 0, value: 5 });

  // create chart
  var chart1 = anychart.line();
  // create several line series

  // create column chart
  // based on filtered view
  // that accepts values of less than 5 only
  var chart2 = anychart.column(
    view5.filter("value", function(v) {
      return v < 5;

  // set title and draw multi-line chart
  chart1.title("Line: Streaming from Data Set");

  // set title and draw column chart
  chart2.title("Column: Filtering Stream");

// streaming function
var streamId;
function stream() {
  if (streamId === undefined) {
    streamId = setInterval(function() {
    }, 1000);
  } else {
    streamId = undefined;

// function to add new value and remove first one
function addValue() {
  // generate next letter/symbol as argument
  var x = String.fromCharCode(
    dataSet.row(dataSet.getRowsCount() - 1)[0].charCodeAt(0) + 1
  // append row of random values to data set
    Math.random() * 10,
    Math.random() * 10,
    Math.random() * 10,
    Math.random() * 10,
    Math.random() * 10
  // remove first row

You see that we’ve created a custom data set and five derived views. Four of them are used as is to create lines, but when creating our column chart, we apply the filtering function and let only values of less than 5 into the view. Then we stream data by adding and removing rows from the main data set, and all the views automatically receive data and charts are updated — no coding is needed to implement this!

This is just the tip of the iceberg as far as data mapping goes! You can do the same with arrays of objects and CSV data, and you can sort, search, listen to changes, go through values, as well as change existing rows. There are also special views for hierarchical data utilized in Tree Maps and Gantt Charts, and such views can be searched and traversed.

Customizing Chart Visualization

AnyChart is extremely versatile when it comes to chart customization. You can change line styles, fill colors, use gradient fill or image fill on almost any element. Colors can be set using String constants, HEX or RGB notation, or a function that returns one of these values. The library also offers a number of built-in patterns, as well as an option to create patterns of your own.


The easiest way to change the look and feel of AnyChart charts is to change the theme.

In fact, you can create your own theme or use one of those that already come with the library. There are currently 17 out-of-the-box themes available in AnyChart: Coffee, Dark Blue, Dark Earth, Dark Glamour, Dark Provence, Dark Turquoise, Default Theme, Light Blue, Light Earth, Light Glamour, Light Provence, Light Turquoise, Monochrome, Morning, Pastel, Sea, Wines. The files for these themes can be obtained from the Themes Section at AnyChart CDN.

You can reference them like so:

<script src=""></script>
<script src=""></script>

And activate the theme with just one line:


Let’s use the basic chart from the previous article by way of an example.

anychart.onDocumentLoad(function() {
  // set theme referenced in scripts section from
  // create chart and set data
  var chart = anychart.column([
    ["Winter", 2],
    ["Spring", 7],
    ["Summer", 6],
    ["Fall", 10]
  // set chart title
  chart.title("AnyChart Coffee Theme");
  // set chart container and draw

Now the look and feel of that chart is completely different.

Note: you can browse through all the themes and see how they work with different chart types and series on the AnyChart Themes Demo Page. Please refer to the AnyChart Documentation to learn how to create your own themes and read about other options.


As you have seen, it’s quite trivial to color elements in the AnyChart charting library. But there’s more! It is also possible to color shapes with solid colors with opacity, use radial and linear gradients, and make lines dashed. You can apply colors by their web constant names, HEX codes, or RGB, RGBA, HSL, HSLA values — just as you can in CSS.

To showcase all of this in one powerful sample, I want to highlight another option along the way — namely that you can color elements using your own custom functions. This may come in handy in many data visualization situations, for example when you want to set a custom color depending on the value of the element. Let’s test this out on a Pareto chart. AnyChart can build this chart from raw data and calculate everything it needs.

anychart.onDocumentReady(function() {

  // create Pareto chart
  var chart = anychart.pareto([
    {x: "Defect 1", value: 19},
    {x: "Defect 2", value: 9},
    {x: "Defect 3", value: 28},
    {x: "Defect 4", value: 87},
    {x: "Defect 5", value: 14},

  // set chart title
  chart.title("Pareto Chart: Conditional coloring");

  // set container id and draw

But say we want to highlight the elements that have relative frequency of less than 10%. All we need to do in this case is to add some coloring functions:

// Get Pareto column series
// and configure fill and stroke
var column = chart.getSeriesAt(0);
column.fill(function () {
  if (this.rf < 10) {
    return '#E24B26 0.5'
  } else {
    return this.sourceColor;
column.stroke(function () {
  if (this.rf < 10) {
    return {color: anychart.color.darken('#E24B26'), dash:"5 5"};
  } else {
    return this.sourceColor;

As is shown in the example, we can access the coloring function context with the help of the this keyword, then we create a condition and output whichever color or line setting we need. We use a simple HEX string with opacity for the color: '#E24B26 0.5'. For the line, we calculate a darker color using AnyChart’s special color transformation function and also set an appropriate dash parameter: {color: anychart.color.darken('#E24B26'), dash:"5 5"}.

Here’s what we end up with:

Default Pattern Fill

The AnyChart JavaScript charting library also provides a very flexible way to work with pattern (hatch) fills. To start with, you have 32 pattern fill types. They can be arranged into your own custom pallets, and you can directly set which one to use for a certain series, element, etc. Here’s what the code for a monochrome pie chart might look like:

anychart.onDocumentReady(function() {
  // create a Pie chart and set data
  chart = anychart.pie([
    ["Apple", 2],
    ["Banana", 2],
    ["Orange", 2],
    ["Grape", 2],
    ["Pineapple", 2],
    ["Strawberry", 2],
    ["Pear", 2],
    ["Peach", 2]

  // configure chart using chaining calls to shorten sample
    .fill("Black 1")

  // draw a chart

The only thing we did to enable the pattern fill is chart.hatchFill(true).

Custom Pattern Fill

AnyChart gets its ability to use custom patterns from the underlying GraphicsJS library. I introduced this library and showcased some really cool drawing samples in my article here on SitePoint: Introducing GraphicsJS, a Powerful Lightweight Graphics Library. The fact that AnyChart is powered by GraphicsJS allows for some really amazing results, but a picture is worth a thousand words, so let’s proceed to the next example.

We’ll create patterns using one old font that used to be rather popular among geologists – Interdex. I remember one of AnyChart customers asking us how to use this in his project, and he was very happy to learn just how easy it was.

First, if you want to use a font that is not present on your system, you need to create a web font and properly reference it in the CSS file. A sample of such file for our Interdex font can be found on the AnyChart CDN. We need to reference it along with the font management library being used and the AnyChart charting library:

<link rel="stylesheet" type="text/css" href=""/>

<script src=""></script>
<script src=""></script>

After that, we can proceed with the coding:

var fontLoad = new FontFaceObserver("Conv_interdex");

// create chart when font is loaded using
fontLoad.load().then(function() {
  anychart.onDocumentReady(function() {
    // enable hatch fill by default and make chart monochrome
      chart: {
        defaultSeriesSettings: {
          base: {
            hatchFill: true,
            fill: "White",
            hoverFill: "White",
            stroke: "Black"

    // create a stage, it is needed to create a custom pattern fill
    stage ="container");

    // create a column chart and set title
    chart = anychart.column();
    chart.title("AnyChart Custom Pattern");
    // set the data[
      ["Jan", 1000, 1200, 1500, 1000, 1200, 1500],
      ["Feb", 1200, 1500, 1600, 1200, 1500, 1600],
      ["Mar", 1800, 1600, 1700, 1800, 1600, 1700],
      ["Apr", 1100, 1300, 1600, 1100, 1300, 1600],
      ["May", 1900, 1900, 1500, 1900, 1900, 1500]

    // set custom hatch palette
    // it can be populated with any number of patterns

    // set container and draw chart

// function to create patterns
function getPattern(letter) {
  var size = 40;
  // create a text object
  var text =
      "<span " +
        "style='font-family:Conv_interdex;font-size:" +
        size +
        ";'>" +
        letter +
  // create a pattern object
  var pattern = stage.pattern(text.getBounds());
  //  add text to a pattern
  return pattern;

I’ve included all the explanations in the comments, but just to sum up – you can create custom patterns, arrange them in custom pattern palettes, which you can then apply to an entire chart. If you’re paying attention, you’ll notice that we’ve made use of the AnyChart themes mechanism to set defaults.

Here’s the end result. Lovely, I’m sure you’ll agree…

Custom Series

And the final sample in this article is for those who want even more flexibility and customization. While AnyChart strives to provide an ever-increasing number of chart types out of the box, data visualization is an enormous field, and each project has different requirements. In order to make (and keep) everyone as happy as possible and provide a way to create the visualizations of their choice, AnyChart open-sourced the JavaScript drawing library of GraphicsJS and also opened the source of the AnyChart JavaScript charting library itself.

But if you really, really want to go with 100% custom drawing, you’ll have to do a lot of work if you decide to fork the source code. For example, customizing might be a pain, and you could potentially have problems merging future versions if AnyChart doesn’t accept your pull request.

Luckily, there is a third option. With most of AnyChart’s basic chart types, you can override the rendering function and change the appearance of chart elements, while keeping all of the other things AnyChart provides.

Below you will find a code sample that shows how to transform a widely used range column chart (which is supported in the AnyChart charting library), into a less common cherry chart (which isn’t). The main thing to bare in mind when you override AnyChart’s rendering function, is that this function calculates everything from values supplied to a series, and your own (custom) series should be created out of a series with the same number of values.

anychart.onDocumentReady(function() {
  // create a chart
  var chart = anychart.cartesian();
  chart.yAxis().title("Cherry price");

  // create a data set
  var data = [
    { x: "Apr", low: 29, high: 37 },
    { x: "May" },
    { x: "Jun", low: 29, high: 47 },
    { x: "Jul", low: 12, high: 27 },
    { x: "Aug", low: 20, high: 33, color: "#ff0000" },
    { x: "Sep", low: 35, high: 44 },
    { x: "Oct", low: 20, high: 31 },
    { x: "Nov", low: 44, high: 51 }

  // create a range column series
  var series = chart.rangeColumn(data);
  // set a meta field to use as a cherry size
  // series.meta("cherry", 50);
  // set a meta field to use as a stem thickness
  // series.meta("stem", 1);

  // optional: configurable select fill

  // call a custom function that changes series rendering

  // set container id for the chart and initiate chart drawing

// custom function to change range column series rendering to
// cherry chart with a special value line markers
function cherryChartRendering(series) {
  // cherry fill color
  series.fill(function() {
    // check if color is set for the point and use it or series color
    color = this.iterator.get("color") || this.sourceColor;
    return anychart.color.lighten(color, 0.25);
  // cherry stroke color
  series.stroke(function() {
    // check if color is set for the point and use it or series color
    color = this.iterator.get("color") || this.sourceColor;
    return anychart.color.darken(color, 0.1);

  // set rendering settings
  series.rendering()// set point function to drawing

// custom drawer function to draw a cherry chart
function drawer() {
  // if value is missing - skip drawing
  if (this.missing) return;

  // get cherry size or set default
  var cherry = this.series.meta("cherry") || this.categoryWidth / 15;
  // get stem thickness or set default
  var stem = this.series.meta("stem") || this.categoryWidth / 50;

  // get shapes group
  var shapes = this.shapes || this.getShapesGroup(this.pointState);
  // calculate the left value of the x-axis
  var leftX = this.x - stem / 2;
  // calculate the right value of the x-axis
  var rightX = leftX + stem / 2;

    // resets all 'path' operations
    // draw bulb
    .moveTo(leftX, this.low - cherry)
    .lineTo(leftX, this.high)
    .lineTo(rightX, this.high)
    .lineTo(rightX, this.low - cherry)
    .arcToByEndPoint(leftX, this.low - cherry, cherry, cherry, true, true)
    // close by connecting the last point with the first

Here’s what we end up with


I hope you’ve found this look at AnyChart’s more advanced functionality useful and that this has given you plenty ideas and inspiration for your own data vizualizations.

If you’ve not tried AnyChart yet, I urge you to give it a go. Our latest release (version 7.14.0) added eight new chart types, five new technical indicators, Google Spreadsheet data loader, marquee select and zoom, text wrap and other cool new features.

And if you’re using AnyChart in your projects and have any comments or questions regarding the library, I’d love to hear these in the comments below.