How To – Basil Salad Software Spice Up Your Life Tue, 10 Sep 2019 15:27:57 +0000 en-US hourly 1 33661646 How can I increase the resolution of a JPEG photo? Tue, 03 Sep 2019 01:30:52 +0000

Any way to increase photo resolution?
Like any way to make a photo that looks 240p into 360p etc

The easiest way to increase a JPEG photo without causing pixelation is by using Bigger Picture. The app enhances your photographs using artificial intelligence up to 8× and still get a good looking picture.

Increase JPEG Resolution

Follow these steps to enhance a JPEG photo using Bigger Picture:

  1. Open the Bigger Picture app.
  2. From the File menu choose Open Image....
  3. Select the photo file.
  4. In the Target Size panel, select the Pixels tab.
  5. Enter the desired pixel width or height of the resulting enhanced image.
  6. In the Style selector, choose Photo.
  7. In the File menu chose Save... to save the resulting image.
  8. Wait until processing is completed.

Enjoy your bigger picture ^_^

]]> 0 3346
Migrating from MacJournal to Day One Tue, 20 Aug 2019 00:40:18 +0000 A long time ago you’ve written diaries in MacJournal but then switched into Day One as you started to be more on mobile. There was a time when you’ve tried migrating a journal from MacJournal but Day One’s Import MacJournal File command failed with an error like:

Unable to import file
The file did not contain a date for the entry.

“No sweat, I’ll just keep MacJournal around whenever I feel the need to read my old diaries,” you might thought to yourself. All was fine and dandy.

Then macOS 10.15 “Catalina” is coming around the corner. Despite all the new features and enhancements, it removed support for 32-bit applications. Unfortunately MacJournal 5 is still a 32-bit application. Hence the clock is ticking before “this fall” when your old diaries become inaccessible since MacJournal 5 stops working in the new operating system.

What if you can seamlessly access archived journals across all of your devices? What if you can confidently upgrade in Catalina’s “day one”? (pun intended).

Well, if your archived journals are in MacJournal 5 and your current journaling system is Day One, this article shows you how to migrate your data so that you can finally say goodbye to that 32-bit app and be ready for Catalina.

Mac journal to day one 2x

Migration Steps

In a nutshell, these are the steps needed to move a journal from MacJournal into Day One. If you have multiple journals, follow these steps with one journal at a time.

  1. Export the journal from MacJournal as a single file.
  2. Create a new journal in Day One, as a “staging area” for your entries.
  3. Install Day One’s Command Line Interface (CLI).
  4. Run the MacJournalToDayOne import script to create entries in Day One based on your exported file.
  5. Inspect the imported journal in Day One.


Before you begin, take note that this process and the import script was tested on the following software configuration. Make sure that you have these applications at hand or have a compatible alternative.

Exporting from MacJournal

This process would export a journal in MacJournal into a plain-text version that can be read by the import script later on.

Follow these steps to begin the export.

  1. In MacJournal, select a journal.
  2. Select command File|Export... from the main menu bar.
  3. Specify these as the export parameters:
    • File format is Text Format.
    • Metadata is Date & Topic
    • Encoding is Unicode (UTF-8)
    • Use One File Per Entry is unchecked (that is, export all entries in the journal as one file)
  4. Click on Export.

MacJournal export dialog

Creating a New Journal in Day One

This new journal would be used as the destination for entries imported from MacJournal. Having an empty journal created would be useful for inspection of the import results and maybe re-start the import if necessary.

  1. In the Day One app, select Day One|Preferences... from the main
  2. Within Day One’s Preferences dialog, click the Journals tab.
  3. Click the + button to create a new journal.
  4. Type in a new journal name — for example MacJournal Import — and then click Create Journal.
  5. Take note of this new journal name to be used in subsequent steps.

Installing Day One CLI

The Day One CLI is needed by the MacJournalToDayOne script to communicate with the Day One app and create entries in it. Follow the instruction in Day One’s site to install the tool. When done, open the Terminal app and run the following command to verify that it is installed correctly:

dayone2 --help

If you see the reference to use the CLI, then it is installed correctly. If you see a command not found error, then something went wrong and you probably should contact Day One’s support staff to get it installed.

Running the MacJournalToDayOne Script

The MacJournalToDayOne script would read the text file exported by MacJournal and create the corresponding entries in Day One. It works by going through the entries in the exported file, and calling the Day One CLI for each of those entries.

Follow these steps to download, install, and run the script.

  1. Go to the MacJournalToDayOne release page and download its latest stable release.

  2. Open Terminal to extract the archive:

    tar -xvf MacJournalToDayOne-1.0.0.tgz
  3. Still in Terminal, run the script extracted from the previous step, and provide it with the MacJournal export file and the destination journal name in Day One.

    ./ "${export-file}" --journal="${journal-name}"

    From the example above, replace ${export-file} with name of the file that was exported from MacJournal and ${journal-name} with the name of the journal in Day One. Remember to enclose these with double quotation marks, especially if the names contains spaces. Be sure to use the new journal name as the target journal so that you can repeat the process in case anything went wrong.

The import process would probably take a few minutes if there are many entries inside the journal.

Inspect the Results

Launch Day One and randomly sample a few entries in the new journal to compare it with the ones exported from MacJournal. In case something is not right or went missing, you can delete these imported entries and start the process again.

This is the main reason why you should import into a temporary staging journal – so that the imported entries doesn’t get mixed with your existing ones until you are completely satisfied.

Next Steps

When you are satisfied with the imported entries in the staging journal, you can tag them, say for example add a “MacJournal” tag, to differentiate it with your newer entries. Then you can move them into your main journal and delete the staging journal afterwards.

]]> 0 3353
Printing in 300dpi or 72dpi? Tue, 06 Aug 2019 00:18:09 +0000

I have an assignment that needs to be printed on A2 paper and has so be as crisp as daylight.
I drew my design at 72dpi, however I’m hearing that it needs to be printed 300dpi at least, and I’m worried that I’ve screwed myself.
Is it possible to print 72dpi on A2 without it pixelating somehow?

Yes it is possible to print in 72dpi without getting it pixelated.  Just ensure that the viewer is at least 1.5 meters away from the image, which should be feasible for an A2-sized print. 

The reason is that the minimum print resolution isn’t really dictated by the size of the image, but by the distance of the viewer to the picture. What matters to human eyes isn’t the dots-per-inch resolution, but really dots-per-degrees. Hence a 72dpi image at 1.5 meters looks just as sharp as a 300dpi image at 30 centimeters.

Use these common resolutions as a rough guidelines:

  • 300dpi for a viewing distance of 30 centimeters — or standard reading distance.
  • 150dpi for a viewing distance of 60 centimeters — or about an arm’s length.
  • 72dpi for a viewing distance of 1.2 meters — or about four steps away.

For more details and the exact formula have a look at our discussion on calculating the right print resolution.

Just try it out. Take your best artwork so far, print it at 72dpi then view it at the varying distances above. Observe it at standard reading distance — where you can see obvious pixelations — then slowly step back until you can’t see the grainy-ness in the print. Notice how far you can go until the individual pixels blend together – the farther the distance, the better your eyesight is.

]]> 0 3330
Best Practices to Insert Photos into A Document for Optimal Print Tue, 02 Jul 2019 00:00:00 +0000

I’m working on a food menu (A4 size pages) and will be inserting a lot of photos of menu items.
How do I know what the best resolution/ppi is for a given photo?
What resolution should I make sure it is so it still looks good in print?

Put simply you would need to use 300 ppi photos to include in your compositions. The image’s resolution does not depend on how big the images are – whether it’s 4cm high or 7cm high, it doesn’t matter. What really matters is the expected viewing distance. Since you are working on a food menu, I presume that these would be placed on a restaurant table and guests would be reading these menus at about 30cm away (distance between eye and print), hence the 300 ppi figure.

For details on how to calculate these ppi values yourself, refer to our discussion on calculating the right resolution for prints.

Sure you can skimp on resolution to reduce strains on your computer. But if your menus comes out as blurry, would this turn away the guests? Of course that depends on whether it’s “fine dining” restaurant or street food. But I can assure you that when you don’t have enough pixels in your menu’s photos, your menu is going to look cheap.

Apart from resolution, you should also pay attention to color balance problems and make sure you fix them before giving the composition to the printing press. Sometimes images can be too red, blue-ish, or look washed out. Refer to our article on preparing images for printing for more details.

So go ahead, have a one-copy test print of your composition before ordering the whole batch for the entire restaurant. See if it looks good, test it under the lighting conditions of the restaurant at normal dining hours. If it looks blurry, too dark, or the color is a bit off, you can find the fixes are from this article.

]]> 0 3326
How to Print Beach Banners from iPhone Snapshots Tue, 04 Jun 2019 00:00:00 +0000  

Need to print a 8×8 foot beach banner. Anyone know where I can get a picture of high enough resolution?

As banners that large typically would be observed at a distance of four feet (slightly more than a meter) or more, then a resolution of 72 dpi should be enough – refer to our article on calculating resolutions for prints for the exact formula. Translated to pixels, you would need an image with 6192 pixels wide and high — since this is a square image after all.  

The pixel count came from the following calculation:

8 feet * 12 inches/foot * 72 dots/inch = 6192 dots (pixels)

In megapixels, this would be an image of about 38 megapixels large – coming from multiplying 6192 pixels wide and 6192 pixels high. To put things into perspective, an iPhone 8 is able to capture 12 megapixels using its back-facing camera.

If you have a 38 megapixel camera (or better like the Phase One IQ1080), that’s great then you’re all set.

If not then you’re in a predicament. Don’t try to upscale it naively on your photo-editing app, which usually uses either bicubic interpolation or Lanzcos resampling.  Using those two “simple” algorithms to enlarge images for prints would likely create blurry outputs — which won’t be any better than handing out the original images to the vendor printing the banner.

Fortunately Bigger Picture can enhance images up to 8x without making it blurry. Hence you can use even a lowly iPhone to create 8-foot banners that looks sharp.

Simply load the image into Bigger Picture at and enter the desired pixel dimensions like the following screenshot.

Bigger picture beach banner 2x

Go ahead and see for yourself – try out Bigger Picture for less than a song.

]]> 0 3322
What is the Right Resolution for Life-Sized Prints? Thu, 25 Apr 2019 10:55:57 +0000 One of our readers asked,

I came from a background of small print projects. Now I’m tasked to find photography art for five doors, each 12 x 14 inches. When it comes to finding images, I don’t know where to start. What would be the best size? Best resolution?

Printing press worker

For a start, there’s plenty of royalty-free images that you can find from Pexels, Pixabay, or Unsplash. Most photographs from these sources would have good lighting as well. Hence you just need to pick the ones which has enough pixels for your given print project.

Since our dear reader was looking for images to place on doors, I’m going to assume that people would view these images no closer than at an arm’s length. This would be about two feet or 24 inches.

Why does the distance matter? Image resolution is not just how many dots to put in a given inch (the dot per inch or pixel per inch metric), but also how far people would view them. The further the viewing distance, the less pixel density would be required such that people who view them doesn’t perceive the image as blurry, blocky, or otherwise be able to identify the individual pixels (dots) in the image.

What you need is a function that estimates the lower bound pixel density given an expected viewing distance. In other words, a formula that converts a distance in inches into a minimum dots-per-inch density value.

q = f(x)



  • x  — the expected distance between the viewer and the image, in inches.
  • q  — the minimum image resolution, in dots-per-inch or pixels-per-inch.

To derive the formula, first let’s draw a schematic of the problem. The image below shows a human eye (representing the viewer) that is looking at an image of height y at distance x. Now the angle that the eye makes between the bottom of the image and its top is . Let’s keep things simple and two dimensional for now, because making calculations for the width of the image would be exactly the same way, only on a different axis.

Eyesight model

We know that magazines are usually printed at 300 dpi (dots per inch). This resolution is effective when a person with normal eyesight is viewing it on a standard reading distance, which is one foot (12 inches). This is probably also the reason why the first retina-display iPhone debuted at that approximate pixel density, which is 326 ppi (pixels per inch). Similarly a retina-display MacBook Pro has only 220 ppi but looks just as good because of the longer viewing distance. Of course, some people has better eyesights and can appreciate higher resolution images whereas some others can’t tell the difference between iPhone 4 and iPhone 3G (before retina display) screens. But just take the middle ground for simplicity’s sake.

Now let’s plug in those standard numbers into our model. Let’s take an image of 1 inch high which is viewed at a distance of 12 inches. The image contains 300 pixels, which is the minimum required to “look good”.

Standard image model

Then we need to find angle that the eye makes between looking at the bottom and the top edge of the image. This would be useful to calculate the pixel per degree value later on. Using knowledge from high-school trigonometry, we get…

tan(⍺)  = y/x
tan(⍺)  = 1 inch / 12 inch

⍺ = arctan(1/12)
⍺ ≅ 4.76°


We’ll define p as the pixel-per-degree ratio as follows:

p = q / ⍺ 



  • p — the pixel-per-degree ratio
  • q — the number of pixels (or printed dots).
  •  — the angle which contains those pixels.

Our 1-inch image has the bare minimum of q=300 pixels (dots), making it a 300dpi image. Let’s plug those numbers in.

p = q / ⍺ 
p = 300 pixels / 4.76°
p ≅ 62.98 pixels/degree 


That means that for every degree of eye movement there need to be at least p ≅ 62.98 pixels between them so that the eye can’t differentiate the individual pixels.

Now we want an arbitrary distance x to calculate how many pixels q that our 1-inch image can look acceptable. We solve the two equations above for the value of q.

p = q / ⍺ 
q = p * ⍺

⍺ = arctan(y/x)
q = p * arctan(y/x)


We already know the following values derived from our standard model of 1 inch image at a resolution of 300 pixels per inch viewed at 12 inch distance.

y = 1 inch
p = 62.98 pixels / degree


Plug those numbers in and you get the formula to calculate the minimum resolution given an expected viewing distance. This is the formula that we’ve been looking for, the function to convert a viewing distance to a minimum pixel density value.

q = 62.98 * arctan(1 / x)



  • q — the minimum resolution in pixels or dots per inch.
  • x — the expected distance between the image and the viewer.

Then let’s go back to our dear reader’s initial problem. He/she would need to find images to fill 12 * 14 inch surfaces on doors. We’re assuming people won’t observe these doors closer than an arm’s length (or otherwise risking getting hit by the door if someone else is opening it from the other side), thus the viewing distance is about 24 inches (two feet).

q = 62.98 * arctan(1/24) ≅ 150 pixels per inch.


Given these we can calculate the minimum pixel dimensions of the images for the doors:

width  = 12 inches * 150 pixels per inch = 1800 pixels
height = 14 inches * 150 pixels per inch = 2100 pixels


Fortunately most images in Pexels, Pixabay, or Unsplash has more pixels than the minimum dimensions above and thus would look good to be printed on doors.

Do you find this useful? Sign up in the form to the right to get future posts delivered to your e-mail for free.

]]> 0 3300
Configuring Wake-on-LAN Wed, 26 Dec 2018 03:00:00 +0000 Wake-on-LAN allows you to bring network-connected devices out of standby remotely from another device connected to the same network.  It is a network protocol that was devised in 1997 — around the time when most desktop personal computers (PCs) have power-saving standby modes — probably as a way to remotely wake-up these computers from standby.  Nowadays wake-on-LAN’s more popular uses are to wake-up by network drives (NAS, Network Attached Storage) or Internet of Things (IoT) applications.  Although it is still supported by popular personal computer operating systems to some degree.

Using wake-on-LAN can help reduce your household’s power consumption.  Notably if you use media servers  — file servers containing videos and music — that are not constantly utilized.  The idea is to put these servers to low-power standby and wake it up only when it is about to be accessed.  Consumer network drives would also fall into this category — you don’t need the drive running 24×7 when nobody is at home using it half of the time.  Since drives are mechanical, powering them down would also help prolong their useful lifetime in addition to saving some electricity.

Network cables

The wake-on-LAN protocol works by having a client device broadcasting a special message on the network.  Called “magic packet” this message contains the hardware identifier (its MAC address, in which MAC stands for Media Access Controller and not a line of computers manufactured by Apple) of the target device to be awaken.  In turn, network adapters supporting wake-on-LAN would listen for this “magic packet” and would try to match the MAC address it contains with its own.  Whenever it finds a matching magic packet, the network adapter notifies its host and wakes up the entire system.

However the wake-on-LAN specification does not have a reply.  The standard does not say anything about confirming whether the “magic packet” has been received and a device is in the process of waking up.  Hence wake-on-LAN software would need to use other ways of confirming whether the signal was successful.  Typically this is done by checking whether the device’s last-known host name or IP address is present on the local network and responding to requests.  Worse, some software doesn’t even provide confirmation at all and users would need to verify successful wake-ups themselves.

Setting Up Wake-on-LAN

You would need an application on the client device that can broadcast these magic packets.  This can be as bare-bones as a Python script to just broadcast a hard-coded magic packet or it can also be fully-featured like our Rooster application for the Apple TV which handles device registration and checks for successful wake-up condition apart from just sending the magic packet.

Then you would need a target device to be woken up.  This device would need need to be connected to the same network as the device that runs the client application. That is, it should not pass through more than one router and both the target device and the client device needs to have the same network address mask.

Ideally the wake-on-LAN target is connected via wired ethernet.  Although wake-up over Wi-Fi is possible, our experience seems to show that wired devices setups tend to be more stable as far as wake-on-LAN is concerned. Probably because the wireless network is more susceptible to interferences or many wireless network adapters do not support wake-on-LAN.

You should also make the target device to have a fixed IP address. Fixing the IP address means it doesn’t change between wake-ups and makes it easier for the client application to determine that the device is awaken.  The wake-on-LAN protocol has no response mechanism — the specification does not provide a way for the client to check whether the message was successfully delivered.  Hence client applications would need to check a successful wake-up through some other way — typically by checking whether the target device is responding to network requests through its last-known IP address.

There are two ways to ensure that a device’s IP address remains constant.  One method is by configuring a static IP address.  The other is by configuring the router to always assign the same IP address to the device — a technique called address reservation.

Setting up a static IP address is done on the device itself.  Go to the device’s configuration and configure it to have a “manual address” then give it a set IP address.  The router must also be configured in such a way to not give out this address to another device otherwise a clash will occur.  Note that the subnet mask of the device must match the one configured in the router otherwise the two won’t be able to talk to each other.

IP address reservation is preferred if your router supports it.  To configure this, first you need to obtain the target device’s MAC address — also known as ethernet address.  This is a series of six-digit hexadecimal numbers that identifies the network hardware and is typically burned into the network chip during manufacture.  Having this address, open up the router’s configuration screen which takes care of how it assigns IP addresses to devices  — this is usually labeled like “LAN Configuration” or “DHCP Setup”.  Then the MAC address obtained earlier and assign a specific IP address to it.  Restart the target device and then it should pick up the new IP address.  Some routers would need a restart as well for this configuration to take effect — in these cases, be sure to restart the router first before any other devices that connects to it.

Recommended Setup

This section provides a recommendation for a typical home network setup to support wake-on-LAN and is among the most standard way that a home network is configured. However if you are quite comfortable in setting up your network differently, feel free to skip this section.

Configure your home network to use the IP address range and the network address mask Also the router needs to have the IP address — the beginning of the range.  This IP address range is commonly used in home LAN and often is the default configuration on many routers.

Then reserve the lower range of these addresses for wired devices or servers.  For example, you could note that addresses from through would be used for servers.  Moreover, servers should be wired as well — since wake-on-LAN works best on wired devices.  To reserve this, you either use a static IP for those devices or obtain the MAC addresses of those servers and reserve them in the router configuration.  If you are using static IP, take care to configure the router so that it will not give out these static addresses to other hosts — use the router’s configuration screen for it.  Since you need to configure the router for both methods, you should use the IP address reservation method if that is supported by the router.

Then you would need to configure the target devices for wake-on-LAN.  These wake-on-LAN target should be connected by cable to the network (wired ethernet).  Moreover these should only have one connection to the network, respectively (that is, one device, one ethernet cable connected and nothing more).

Most consumer NAS are already configured for Wake-on-LAN. We are using WD MyCloud EX2 and the functionality is already enabled out-of-the-box.  However some Synology models do not support wake-on-LAN.  Please check the manual from your NAS’ manufacturer for details on this.

Windows computers need to be configured for wake-on-LAN.  Go to the network adapter, open the Power Management and activate two checkboxes – “Allow this device to wake the computer” and “Only allow a magic packet to wake this computer”. MakeUseOf has a pretty good guide to setup a Windows 10 computer for wake-on-LAN.  Also remember to either reserve an IP address for the computer on the router as described earlier or set a static IP address for it.

By default macOS computers are already configured for wake-on-LAN.  However Mac laptops would only respond to network wake-up requests when connected to power adapter. Configure this in System Preferences then Energy Saver and then enable “Wake for Network Access”.  As with the other server types, we recommend to configure the Mac’s IP address to remain the same between wake-ups and restarts.

Sending Wake-on-LAN Magic Packets

There are a number of solutions to wake devices from the network. These are just some examples:

  • A Python script — send magic packets from just about anything with a Python interpreter.
  • Rooster — an Apple TV app that sends magic packets and has the ability to verify the server has completely booted up.

Troubleshooting Wake-on-LAN

Network Configuration

Check if both devices are in the same IP network — meaning have same subnet mask and able to talk directly to each other without involving any router.  Remember that most routers would not pass wake-on-LAN signals outside its own network.  If one device is a computer, you can run traceroute from the computer into the other device and see how many hops there are to reach it — if there are more than one hops, then you would need to reconfigure your network so that the two is only connected by a single hub or access point.

Router Configuration

Some routers has the ability to filter wake-on-LAN packets even within its own network — probably for security reasons.  Check your router’s manual and configuration screens for details on this.

Software Configuration

Ensure that the wake-on-LAN software that you are using is sending wake-on-LAN signals to the correct MAC address.  You can check the MAC address on the target device itself via its configuration screens or you can check it from a computer located in the same network as the target device.

If you have a macOS computer in your network, you can follow these steps to check the MAC addresses of devices in your network.

  1. Open the Terminal app
  2. Ping the target device using a command similar to the following — change the target IP address to match the wake-on-LAN target.
  3. Run the command below to see all the MAC addresses that is know by the computer:
    arp -a
  4. The previous command lists IP addresses and their corresponding MAC addresses. Look for the target device’s IP address and its corresponding MAC address
  5. Compare this MAC address with the one configured in your wake-on-LAN software.

Target Configuration

Make sure that the target can respond on wake-on-LAN packets.  Furthermore you should configure the target in such a way that IP address doesn’t change before wake-up and after wake-up.

Similarly you would need to verify that the MAC address doesn’t change between reboots of the target device. Some devices do this for security reasons.  Unfortunately this makes it a poor wake-on-LAN target.

Windows machines only support wake-on-LAN on certain sleep modes.  The computer would only respond to wake-up signals from regular sleep (S3 mode) or if the user specifically requested hibernate (S4 mode). Hence it is best to just use regular sleep on Windows machines to be used as wake-on-LAN targets.  Refer to System Power States for more information.

A Message from the Sponsor

This article is brought to you by Rooster – the wake-on-LAN app for tvOS.  With Rooster you can keep your network drives hosting your video files on sleep mode most of the time and activate them when you need to watch videos — right from your Apple TV — without leaving your sofa. Prolong your NAS’ lifetime, save electricity, and be greener with Rooster for tvOS.

]]> 0 3276
Preparing Images for High-Quality Printing Wed, 14 Nov 2018 07:30:00 +0000 Did you ever came back from a photo shop having printed some of your snapshots with the intention of framing them for display — but the result were so poor that you’ve decided to not continue and frame those?  “But those pictures looked okay on screen” you thought — and perhaps you thought maybe the photo shop wasn’t good enough and started to find another place to print your photographs.

What you probably miss is that a photo on print isn’t the same as a photo on screen.  A screen has its own light source but a printed photograph depends on ambient light.  Photos are made of a collection of dots — these are called pixels, short for “picture elements”  — and high-quality printers can produce higher density dots than screens — this is called “resolution”.  

Because of this difference, screens do not use the same method as printers to produce color.  Each pixel in a screen comprised of tiny red, green, and blue colored lights placed next to each other (these rarely overlaps one another on today’s LCD and LED displays).  However each dot in a printed photo comes from a mixture of cyan, magenta, yellow, and black ink droplets.

Likewise, most printers have higher resolutions than most screens.  Most mid-range inkjet printers today can produce 600 dots-per-inch (dpi) printouts.  However MacBook retina displays are only rated at about 220 pixels-per-inch and most other computer screens have lower pixel density values.  You probably didn’t notice the lower resolution when looking the photo at a screen.  But in the “real world” these low-resolution photos became grainy and — well — pixelated.

Large format photo printing

These are common problem areas that non-professionals encounter when producing images for high-quality printing:

  • Color balance problems
  • Not enough resolution
  • Compression noise

Color Balance Issues

Put simply when colors on the screen do not resemble the ones on the printed photo, then you have color balance issues.  This stems from the fact that screens uses lights and printers uses ink.  Screens use a combination of three light sources — red, green, and blue light emitters which corresponds to the three types of color cell cones in the human retina.  However since photographs rely on reflecting light instead of emitting, they use a mixture of four primary ink colors — cyan, magenta, yellow, and black — to provide colors for you to see.

Most photographic files are encoded in a format for use by displays — sequences of triplets containing the color values for red, green, and blue.  When printed, these values are translated into quartet of cyan, magenta, yellow, and black ink levels for every dot. As with every translation, there’s notably some loss that may occur. The loss in translation is even more pronounced when you consider that the color reproduction capabilities of prints is less than the colors that can be shown on-screen — despite printers typically have more resolution.

Color Space Comparison - sRGB and PrintIf you look at the diagram to the right comparing various color models (taken Wikipedia: Color Space), you can see that different output devices have their own ability in image reproduction.  You can see that the color range of “2200 matt paper” is not quite the same of sRGB — the latter being able to reproduce most of the color of the former except for a small portion.  But there’s an area in the magenta-blue-cyan area that even photo printers can’t reproduce.  Adobe RGB is a color model introduced by Adobe for use in its Photoshop software and some professional screens are engineered to cover this color range. These displays are often more expensive than regular “consumer” screens and sometimes sacrifices other aspects not related to color, such as response rates (i.e. these screens may show “ghosting” when the image rapidly changes).  Look for monitors advertised as “100% Adobe RGB” if you’re interested.  Display P3 screens — found in MacBook Pro 2016 and iPhone 7, among others — has a color range that falls somewhere between sRGB and Adobe RGB.

Thus keep in mind that photos which looks acceptable on-screen may look worse on paper. That is unless you take special care to cater for these differences and limitations.

Fortunately most color balance issues can be solved by the Auto Enhance feature of the Mac’s built-in Photos app.  Just try it out first and only do manual adjustments if that feature fail to enhance your photo automatically.

Also remember that if you have a True Tone display, you might want to deactivate the feature before making color adjustments.  This is to ensure that the colors you are looking at would look the same as what the staff at the print shop would see.

Photo Looks Too Dark

The most common color balance issue would be too dark.  Put simply, a dark image on screen would likely look even darker on print.  Remember that print works by reflecting light and reduces the light that it reflects — unlike a screen which has its own light source.

Fixing images that are too dark is quite simple using the Mac’s bundled Photos app. 

  1. Expand the Levels section to reveal the photo’s histogram.
  2. In the lower-right part of the histogram, click the rightmost handle and drag to the left.
  3. As you drag, the entire image should get lighter. Drag just until the rightmost part touches a peak in the right areas in the histogram.
  4. Check the photo — if it is bright enough, stop dragging. 
  5. If the photo looks over-exposed, drag that handle bit to the right until it “looks right”.

Image light adjustment

As you can see from the sample image above, the histogram is very skewed to the left and there’s almost no color on the upper quarter of the histogram. Adjusting the histogram to cover the full range makes the photo a bit brighter but not until it looks over-exposed.

Photo Looks Too Red

Camera flash can make light-skinned subjects to look pink or even bright red.  These overly red photographs may remind you of Technicolor films from the 1920s. 

Fortunately there’s an easy way to fix this using the Mac’s built-in Photos app. Just follow these steps after you have imported the photo into the app:

  1. Expand the “Selective Colour” section.
  2. Using the eyedropper tool, select a skin tone that is too red.
  3. Drag the “Saturation” slider all the way to the left. The skin color would change to gray-ish.
  4. Slowly drag the “Saturation” slider to the right until you get a natural-looking skin tone.

Adjust skin tone

Photo Looks Too Blue or Too Green

When skin tones looks grayish or greenish, it may be the case that it was taken in too much shade.  When sunlight doesn’t fall directly, the subject doesn’t get enough yellow color — and in outdoor daytime photographs, often there is no other light source than the sun.  Your camera may over-correct this and brought up the blue or green tints instead.

Adjust white point

Follow these steps to fix this using the built-in Photos app:

  1. Expand the Curves section.
  2. Select the rightmost eyedropper — this is to set the image’s white point.
  3. Click on an area that is supposed to be white.  In the same image above, the cigarette should be white.  You might need to zoom in to precisely point the correct pixel.
  4. You should notice that the blue cast vanish immediately

Washed Out

When the photo looks like it was printed on a T-Shirt that has been washed too many times, it’s likely due to color profile issues.  Either the image does not contain a color profile or it uses a color profile that the printer does not recognize.

A color profile describes how color values in the image file maps into intensity values of the respective output device — including print.  For example, the wattage needed to show a particular green color on one LED bulb may be different from the amount of power needed to show the same green color on another brand’s bulb.  Similarly inkjet printers have unique aperture sizes of their print heads and each would need different signal levels to produce the same color.  The process to ensure that these differing devices outputs the same colors given the same input image file is called color calibration — the result is a color profile for that specific device.  

Similar to all other calibration processes, color calibration is done against a well-known color profile — like how calibration of scales is done using a set of known counterweights.  A well-known color profile that is sRGB IEC61966-2.1 — or just sRGB for short — which is ratified by an international body and recognized by most manufacturers producing imaging devices. Other popular color profiles are Adobe RGB and Display P3.

By far the easiest way to ensure color accuracy is to embed a standard color profile in your image.  Don’t embed your display’s or your printer’s color profiles in your image since the photo shop won’t have your display or printer to calibrate upon.  Most photo printers and print shops supports the sRGB color profile and able to translate images with this color profile into their devices’ own profiles.  Unless you know any better (or a knowledgeable representative from the photo shop tells you otherwise), make sure that you have the sRGB color profile embedded in your image before handing it over for printing.  This way you’ll know what you see on display is going to be as close as possible to what you will get on print.

To see an image file’Color Profile information from Finders color profile, you can select the file from the Finder and then select “File|Get Info…” menu option or press “⌘i” . Expand the “More Info” section and the color profile is shown there, among other things.

You can use the built-in Photos app to convert images with other color profiles into the sRGB profile.  Simply import the image and then export it back out as JPEG or PNG.  Use JPEG for photographs and PNG for line-art images.  This would be useful for exporting screenshots in which the color profile would likely be “Color LCD” — the color profile of the display that the screenshot was captured in — hence not a standard color profile.

Resolution Issues

By far the most common mistake amateurs make when printing photographs is that they provide originals having less resolution than required. This is understandable since amateurs often do not have the proper knowledge of printing and the required printed size.

Printed images are made up of colored dots.  When there are more dots that can be placed within a given area of paper, the image would look less grainy and it gets better up until the point that the human eye cannot identify the individual dots any longer.  Hence the resolution of a printed page is measured in dots-per-inch (dpi) which measures how many dots that the printer is able to place in a horizontal (or vertical) line that is one inch long.  (This could also be measured in dots-per-centimeters, but the Americans got there first and brought their unwavering preference to the Imperial measurement system with it).

For a printed page intended to be viewed at a distance of 12 inches (30 centimeters), it seems that 300 dpi is the standard resolution for color printing.  Prints with resolutions less than this would show obvious pixelation when viewed at the aforementioned distance by a human with perfect eyesight — whereas people with above-average eyesight may prefer higher resolutions.  There are more scientific definitions of this based on pixel-per-degree values, but laypeople should just stick to a ballpark figure of 300 dpi as a “standard minimum resolution” for printing.

Why is this important?  When making high-quality prints, you should not pass images at a lower resolution than the capability of the printer.  When you do, you are missing the opportunity of getting the best quality possible and you risk producing grainy prints.

When you are printing a photo album, book, or anything that is intended to be viewed at normal reading distances (around 30 cm to 60 cm), it is important that you provide image files that are at least 300 dpi.  Measure the longest extent (the bigger width or height value) of the image in pixels and divide that by the desired print dimension in inches.  Make sure that the ratio is at least 300 pixels for every inch.

Most photo shops wants at least 300 dpi resolutions but some other prefer 600 dpi images.  However some printing companies can make do with lesser image resolutions — these companies either employ graphic artists who can enhance images for you or they do not know any better.  Please check with the print vendor for details and caveat emptor as usual.

I would not advise you to print photos downloaded from Facebook because it reduces images’ resolutions to just enough for display.  However since photo-prints typically needs higher resolutions than screens, you will likely get grainy results when printing from Facebook photo albums.  When you would like to print a photo from Facebook, try asking the photographer for the original file that comes from the camera.  That way you will have the highest resolution to begin with.

The following lists some common photo sizes and the respective minimum pixel dimensions that should obtain a good result.  Use this list if you need to quickly determine whether an image file would have sufficient resolution for printing at the targeted size. 

  • “2R”, 2×3 in, 5.1×7.6 cm, 600×900 px
  • “3R”, 3.5×5 in, 8.9×12.7 cm, 1050×1500 px
  • “4R”, 4×6 in, 10.2×15.2 cm, 1200×1800 px
  • “5R”, 5×7 in, 12.7×17.8 cm, 1500×2100 px
  • “6R”, 6×8 in, 15.2×20.3 cm, 1800×2400 px
  • “8R”, 8×10 in, 20.3×25.4 cm, 2400×3000 px
  • “10R”, 10×12 in, 25.4×30.5 cm, 3000×3600 px
  • “11R”, 11×14 in, 27.9×35.6 cm, 3300×4200 px
  • “12R”, 12×15 in, 30.5×40.6 cm, 3600×4800 px

But what if you do not have sufficient resolution to begin with?  Maybe the image is a company logo of your small business but you lost the original vector-graphics version of the logo.  Maybe the originals are low-resolution — such as snapshots coming from camera-phones of early 2000s.  Maybe the only photo source comes from Facebook uploads but your friend cannot be bothered to send you the original version?

If you thought of using Preview to up-scale the image, please refrain from doing so.  Most graphics software (including Preview) uses simple algorithms such as linear interpolation to resize images.  These simple algorithms are fast and are quite good when you just need to zoom into portions of an image.  However they tend to produce blurry or blocky upscaled results.  When you increase the resolution using these simple algorithms, the printed results would unlikely to be better than if you handed over the lower-resolution image to the printing company.

When you need to enlarge photos or line drawing images for high-quality printing, you need Bigger Picture.  This is an application that uses artificial intelligence to re-draw your image to increase its resolution without making blurry or blocky results.  Using Bigger Picture to enhance images is similar to hiring a graphics artist to up-scale images and then retouch it to remove any blurriness which came out of the enlargement process — but at a fraction of the cost.  However, if you are a graphic artist yourself, you could use Bigger Picture as part of your image enhancement workflow that would save you a significant amount of time retouching the output of a bicubic interpolation process.

You can follow these steps to use Bigger Picture to prepare an image for high-resolution printing:

  1. Load the image into Bigger Picture.
  2. Choose the “Printable” image enlargement mode.
  3. Specify the printer’s resolution (or if you are handing this to a photo shop, ask them what would be the recommended resolution).
  4. Notice that the image dimensions are shown both as pixels and as real-world measurements (in centimeters or inches, depending on your system’s Language and Region settings).
  5. Move the slider until the shortest side of the image matches with the desired length in real-world dimensions.  Using the shorter side would ensure that the image would exceed the minimum pixel size requirements.
  6. In the “Styles” radio buttons, select “Photo” if the image comes from a photograph or a photo-like graphic with rich gradations.  Select “Artwork” for logos, cartoons, or comic images.
  7. If the image came from a low-quality JPEG file, select the appropriate noise reduction option.
  8. Render the image to get the higher-resolution version.

Bigger Picture print enlargement

Compression Noise

When printing photos from downloaded from the web, you also need to pay attention for noise caused by data compression.  JPEG is a lossy compression algorithm — meaning that some data gets intentionally lost in the compression process with no way to get them back in the resulting image.  The stronger the compression setting, the resulting file would be smaller at the expense of more data getting lost.  When the algorithm drops too much data, the compressed image would have ringing pattern (similar to water drops) around contrasting areas of the image.  These ringing patterns are called JPEG compression artifacts or alternatively JPEG compression noise because they are introduced by the compression process.

JPEG Compression Artifacts Comparison 2x

Fortunately Bigger Picture is able to remove most JPEG compression noise.  Again, this would be similar to handing over the picture to a graphic artist to “cure” the image — selectively paint the areas in which the noise are clearly visible and either use a clone tool or in-painting tool of photo editing program to “erase” the noise using pixels around the affected area.  However the process is completely automated using BiggerPicture’s artificial intelligence algorithm.

Follow these steps to remove JPEG compression artifacts using Bigger Picture:

  1. Load the image into Bigger Picture.
  2. In “Style” select the image type — use “Artwork” for logos or other line-drawn image, including scanned comic books.  Use “Photo” when the image comes from a photograph or otherwise has rich gradations.
  3. In “Noise Reduction” choose the appropriate reduction level as according to the JPEG image quality — the lower image quality would call for greater noise reduction.
  4. If the image is already at the desired size, select the “Multiples” enlargement mode and select 1x enlargement (meaning no enlargement).  Therefore Bigger Picture would retain the original image’s dimension and dots-per-inch attribute.
  5. Render the image

Bigger Picture noise reduction settings

Anything Missing? 

That is all the tips from me on bringing an image from the digital realm into the physical world.  Please let me know your experience in applying these and whether there are any important aspect of photo-printing that I did not cover.

Until next time, take care.

]]> 0 3243
How to Upgrade Website Images for Retina Displays Wed, 10 Oct 2018 00:20:30 +0000 Do you have a business website? Does your company’s sales depend on it? Are your visitors on mobile or mac users? If any of those rings true then you probably have updated the website’s images ready for retina displays, haven’t you?

If that’s not true — meaning that your website is not retina-display ready — or worse that you’re still not sure what a retina display is — then read on.

Retina display illustration

What are Retina Displays

In informal terms, a retina display are high-resolution screens such that normal human eye cannot identify individual pixels on it when viewed from a distance. Typically this would be at least 300 Pixels Per Inch (PPI) on one foot viewing distance or 200 PPI at a distance of two feet (60 centimeters). There are formal definitions of this based on scientific research. But these informal definitions I’ve provided should be enough to cover the common cases.

Retina displays made its consumer debut in 2010 with the introduction of the iPhone 4 with a resolution of 326 PPI. On laptops, the debut was circa 2012 with the introduction of the 15 inch Retina Display MacBook Pro with a resolution of 216 PPI. Laptops are intended to be viewed at a longer distance than mobile phones, hence it can get away with a lower PPI figure yet still qualifies as “retina”.

However the truly first retina displays were the IBM T220/T221 line of computer monitors, sold between 2001 and 2005. These displays have a resolution of 3840×2400 pixels over 22.2 inch diagonal. That worked out to 204 PPI, much higher than most other monitors of the time which typically has resolutions around 100 pixels per inch. But priced at $8400 in 2003, there were few buyers of these displays.

Benefits of Retina Display

Really, no words can adequately depict how good retina displays are compared to non-retina ones. You really need to see it side-by side. One way to do this is just visit a nearby Apple Store. Since Apple still sells a non-retina MacBook Air but most of its laptop line up are retina displays, you can compare them side by side on the same store, same lighting conditions, and exactly the same software — maybe you can also play with them a bit to display the same exact content. But if you can’t find a good store nearby to compare them side-by-side, Art Authority has a comparison of retina displays vs regular one done via macro photography.

Generally retina displays make text looks like they were printed on laser printers and images looks like glossy photos. Text looks sharp, with no apparent fuzziness around rounded corners. Vector images looks as sharp as its text counterparts. As for photos — as long as there’s enough pixels in the image, it looks great. But if the photo has a resolution lower than the display, it’s going to look worse.

Have a look at the sample two images below at 100% zoom levels. If you are viewing from a retina display, the upper image will look blurry when compared to the one below it.  However if you are viewing these from a regular low-PPI display, both images will look identical.

Sample Artwork (non-retina)
Sample Line-Art Image (standard resolution).


Sample Artwork (Retina)
Sample Line-Art Image (retina display resolution).

Yes, a major downside of retina displays is that low-resolution line-art graphics tend to look blurry when shown on a retina display.  On a typical web page, non-retina images are upscaled prior to placement on a display and placed side-by-side with text that are already retina-quality. Thus the user’s eye would contrast the rounded edges of the graphic with the text around it and quickly see its jagged edges denoting lower resolution. Furthermore images upscaled this way could not take advantage of subpixel rendering, which can give the illusion that the display has more pixels that it really has. Without subpixel rendering, low-resolution images would appear to have even less resolution on retina displays.

If your website does not have these high-resolution images ready, users with retina displays would notice those blurry images and see your site as looking outdated. After all it has been six years since the introduction of the first retina display laptops — and almost all web-capable mobile phones right now have retina displays. If your website still isn’t supporting these displays, you’ll risk losing confidence of your visitors.

Supporting Retina Displays in a Website

Traditionally web standard assumes that displays has a fixed resolution of 72 PPI. Image dimensions in web pages are specified using pixel counts and sometimes font sizes are specified as pixels as well. If browsers rendered in retina displays would blindly follow these hard-coded pixel sizes, images in legacy websites would be rendered very small. Similarly websites specifying font sizes as pixels would be rendered at unreadably tiny sizes. However retina display computers would need to maintain compatibility with these non-retina aware websites. Indeed, after six years of the introduction of the first retina display laptop, there are still many websites that do not feature high-resolution images.

To preserve compatibility with legacy websites and applications, macOS internally performs pixel doubling. That is, for every one “logical” pixel, macOS draws four retina pixels for it — double the width and height. The operating system presents the resolution of a retina display as half the pixel width and height of the actual pixels. Since macOS uses floating-point numbers to specify coordinates in the screen, this enables retina-aware applications to make use of the higher resolution but still keep compatibility with legacy websites and applications. Text and vector graphics would be rendered in the higher-resolution coordinate system capable of addressing these quarter-pixels.

Retina pixels comparison

Thus when a website specifies an image area within a web page to be 100×100 pixels, macOS browsers would interpret this as “logical” pixels which would map to 200×200 retina display pixels. When the actual image gets loaded and it contains 100×100 pixels, macOS’ rendering engine would enlarge it to 200×200 pixels prior to rendering. However if the image file really is 200×200 pixels, it would display the image in its full resolution.

There are three common ways to support retina displays in web pages:

  • Specify width and height attributes in the img tag but the actual image file is twice the width and height as specified in the tag. This is the easiest method and should not break existing content management systems. However this means that users without retina displays would waste bandwidth downloading images that are larger than what their screens can show.
  • Use the srcset attribute in the img tag that points to distinct images each for each different display resolution that support. This entails keeping multiple versions of the same image in your server — using around three times the disk space in your web server (twice for the retina version and one more for the non-retina one). However this conserves your bandwidth quota as visitors without retina displays won’t be downloading the retina image versions. However this may not be compatible with your existing content management system.
  • Use CSS (cascading style-sheet) media queries to differentiate retina displays from normal low-resolution ones. This would require you to have control of your website’s CSS or have support from your content management system. As for disk space and bandwidth, this approach is similar to the srcset attribute approach — multiple versions of the same image resides in your web server, and browsers would download the version appropriate for the user’s display resolution.

Hopefully by now you have understood what are retina displays and the benefits of having high resolution images in your website. But what if you don’t have enough pixels to begin with? What if you don’t have higher-resolution versions of those images? What if you lost the original vector graphic versions and don’t have the luxury to re-draw them?

Relax, we’ve got you covered.

How to Increase Image Resolution for Retina Displays

Bigger Picture is our answer to “not having enough pixels” — it increases an image resolution in such a way to avoid blurry or blocky pixels. You can use Bigger Picture to upscale your existing web graphics for retina displays even when you don’t have the higher-resolution originals.

Most applications uses bicubic interpolation or Lanzcos’ algorithm to enlarge images. These algorithms — although functional and fast — tend to produce images that are blocky or blurry, because the additional pixels added to the image are obtained by some averaging method of the original pixels that are now spaced apart due to enlargement.

However Bigger Picture uses artificial intelligence to redraw your image. It was trained on thousands of pictures hence able to recognize textures and patterns in your image and then re-draw it. Think of using Bigger Picture like handing your picture to a street artist and asking her to re-draw it larger. The resulting image looks good and sharp — although there are no real information added to the image, just materializing imaginary pixels.

Comparison between Preview and BiggerPicture

Follow these steps to use Bigger Picture to upgrade your website’s images to be retina-ready:

  1. Download the image from your website.
  2. Note down the original size’s pixel width and height.
  3. Ensure that the corresponding web page containing the image specifies this width and height since we’re just going to replace the file with a retina display version.
  4. Open the image in Bigger Picture.
  5. In “Target Size” select the “Multiples” mode and specify “2x” as the target dimensions. The resulting pixel width and height should be shown just below the slider
  6. Choose the appropriate Style for the image.
    • For button glyphs or line-art drawings, choose the “Artwork” style.
    • For photographs or complex paintings select the “Photo” style.
  7. If the original image is a low-resolution JPEG, choose the appropriate noise reduction level. Otherwise leave the “Noise Reduction” level as “None”.
  8. Click the Export button or choose Save from the File menu.
  9. Upload the resulting image into your website exactly with the same name and in the same location as the original one.
  10. Re-load the resulting web page — empty your browser caches if necessary.
  11. The image should show as sharper in retina displays.
    • If the image came out too big, modify the HTML tag for the image and enforce a size that is the original image pixel’s height and width.
    • If the image still looks blurry but you have a retina display, please empty your web browser’ cache and reload the page again.

BiggerPicture usage steps-by-step

Note that Bigger Picture can open multiple files and process it all in one go. Hence steps 4..8 can be done once for a number of images.

That’s all for now. Hopefully this would provide enough information for you to upgrade your blog or website and start to provide high-resolution content.

]]> 0 3197
Save Money by Scheduling your Servers Tue, 02 May 2017 00:00:00 +0000 Mother and Son sleeping with Robot

Ever since homes starting to have more than one computer similarly home servers are becoming common. The most common server in homes nowadays are the in-prominent WiFi router — the central distributor of Internet connectivity. File servers are also becoming common — typically inexpensive Network-Attached Storage (NAS) or “Personal Cloud” devices — for centralizing backups and functions as the home’s media center storage. Some of these home NAS even feature an HDMI output port for playing movies directly from its hard drive platters.

Continuously running a home NAS may not be the best thing to do. Unlike a refrigerator, a NAS does not need to “keep its content fresh” and be powered on 24×7. It needs to be running only when someone needs to use it — just like a television or air conditioner.  Moreover, turning it off would provide cost savings in terms of electricity costs and extends the life of the device itself. That is, unless people in your home live in vastly different time zones and at every hour there would always be someone who is home, awake, and need to use the file server.

A typical two-drive home NAS would cost about $44 annually in electricity charges when kept constantly running. Well, at least mine does. This figure was calculated from our home’s WD MyCloud EX2 — a low-power ARM-based file server with two 4TB WD Red drives. WD rates the device at 23.3 watts when fully operational. Where I live, the power company charges 21.39 cents per kilowatt-hours. Of course, your own figures would be differ – but you could use the following Calca formula to calculate your own power consumption estimates.

power consumption = 23.3 W
annual consumption = power consumption * 24 h * 365.25 / (1000 W/kW) => 204.2478 h*kW
electricity tariff = 0.2139 SGD / (kW*h)
annual cost = annual consumption * electricity tariff => 43.6886 SGD

The more important consideration would be the longevity or the hard drives themselves. Notably the hassle that you’ll get when a drive fails and the associated risk to your data. Hard drives typically lasts about three years when run continuously. According to Backblaze, their drives’ failure rates starts to increase starting at age three and they expect that half will die at age six. If your NAS configuration is not running in a fail-safe configuration (such as RAID 1 or RAID 5), having a failed drive would spell disaster to your data. Even those redundant configurations would also be vulnerable during a recovery — when a drive just failed and the enclosure is currently rebuilding the array, you can’t afford to have a second failure

Note that the vulnerable period is by no means a short amount of time. It’s from the time you notice that a drive failed, ordered a new one, installing it to the enclosure, until the time that it finished rebuilding — this could take a week in total for a home NAS. From personal experience, it took almost two days for a rebuild to finish and the unit becoming fully operational — copying about 3TB of data to a newly-installed drive in our WD MyCloud EX2.

In any case, having some down-time would be good for those notably mechanical drives since it gives them a chance to cool down. This allows the metals to return to its relaxed state and prevents permanent warping. Especially important in tropical areas where these drives typically operates at 60℃ because room temperatures are typically 27℃ – 34℃.

Good network drives for the home would have a power scheduler. You can set it up such that whenever everyone is asleep then your drives would be asleep as well – saving power and prolonging its lifespan.  Another likely candidate for downtimes are the times when everyone are at work or school. The better NAS firmware would have a day-of-week option in its scheduler so you can use different weekday and weekend downtime schedules.

For example, here’s how you set a schedule for WD’s range of semi-pro network drives:

  1. Log in to the NAS’ web-based administrative interface.
  2. Open the Settings tab.
  3. Look in the Energy Saver section
  4. Click on Configure.
  5. Select the Power Schedule option
  6. Setup the power on and power off times to match your household’s schedule.
WD MyCloud EX2 Power Schedule

You might be thinking, “What if on an odd day – in the middle of the night – I needed to use the drive?” Then Wake-on-LAN is your answer. Wake-on-LAN is a standard network protocol to bring devices out of standby. In short it works by broadcasting the identity of the device to activate on the local area network and the network adapter of the device would pick it up and bring the rest of the unit into full power mode. 

There are specialized network management tools to use Wake-on-LAN. But you can also use the following Python script. Simply modify the ethernet address (also called MAC address – which stands for Media Access Control and not a line of computers made by Apple) in the script to match your NAS and the broadcast address to match your home network and you’re ready to go. Install the script in your location of choice and you’ll have a command line tool to wake your network drive.

#!/usr/bin/env python
# coding: utf-8
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

s.sendto('\xff'*6 +
	# Replace the following hex octets with the target device's MAC address
	'\xAB\xCD\xEF\x01\x02\x03' * 16,
	# Replace the following IP address with your network's broadcast address
	('', 9))

On Unix-like systems (which includes macOS), save this as a file named wakeup-mydrive in the /usr/local/bin folder and change the permission to be executable using as follows. Use the Terminal app on macOS to access the command line. If you are using other operating systems, please make adjustments appropriately to your environment.

chmod +x /usr/local/bin/wakeup-mydrive

You can get a device’s ethernet address easily using the ARP command. Plug in your device’s IP address in the following command to get its corresponding MAC address.

$ arp
? (arp at 40:30:4:67:44:9 on en0 ifscope [ethernet]

Those series of six numbers separated by colons comprises the MAC address of the device having the IP address on the left.

Whereas to get the broadcast address you will need to calculate it from your home network’s IP address range and subnet mask. Log in to your home router’s administrative interface and look for these two values, usually under the “DHCP Configuration” or “LAN TCP/IP Setup” heading.

  • The router’s IP Address. Usually this would be something like
  • IP Subnet Mask. This often looks like
Then you’ll need to calculate the broadcast address unique to your network. Simply convert the router’s IP address into its binary representation, perform a bitwise NOT operation, and then combine it with the subnet mask using a bitwise OR.
broadcast address = IP address | ~(subnet mask)

Finally an easy way getting the IP address of the drive is to use the ping command. Replace the command below with your drive’s hostname and then you can get its corresponding IP address.

$ ping -c 4 mydrive.local
PING mydrive.local ( 56 data bytes
64 bytes from icmp_seq=0 ttl=64 time=0.884 ms
64 bytes from icmp_seq=1 ttl=64 time=0.949 ms
64 bytes from icmp_seq=2 ttl=64 time=1.527 ms
64 bytes from icmp_seq=3 ttl=64 time=1.029 ms

--- mydrive.local ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.884/1.097/1.527/0.253 ms

Wow – that’s a lot of steps!

We hear you. That’s why we’re working on a Wake-on-LAN application to make it easier to wakeup your NAS or other devices in your network. We’re starting with the Apple TV since this covers the main use case of “wanting to watch videos at night” and running a command line tool isn’t much of an option from the TV. Stay tuned for support on other platforms.

If you’re interested, sign up on the early adopter list in the form below. As these beta user slots are limited, we can’t guarantee a place for everyone. Sign up quickly and don’t get left behind.

Get Early Access

* indicates required

That’s all for now. Until next time. 

]]> 0 2887