Posts on this site are never sponsored.

How to install a Samsung 960 Evo in a ThinkPad T470

I recently installed a Samsung 960 Evo SSD hard drive in ThinkPad T470 laptop (after having already purchased and received the laptop with a standard hard drive in it), and it was much more difficult than expected.

What worked was to do the following:

  • Buy the 01AX994 (hard drive adapter bracket) and 00UR496 (M.2 SSD cable) from Encompass, an OEM Lenovo parts seller
  • Put the Samsung 960 Evo drive in the bracket above, attached to the motherboard via the cable above in the main hard drive slot in the machine
  • Put the existing hard drive (that came with the ThinkPad T470) in a standard SATA USB enclosure, but don’t boot from it
  • Put Clonezilla on a bootable USB stick, and boot from Clonezilla, so that I could copy the old hard drive to the new SSD

Even though this was technically still cheaper than just buying the ThinkPad T470 from Lenovo with an SSD in the laptop in the first place, it took weeks to get the correct parts, and I certainly wish I’d paid the extra money up front.

To help provide context for the above, this is what didn’t work:

  • Putting the Samsung 960 Evo SSD directly in the ThinkPad T470 without having to purchase additional parts. There is an M.2 slot in the machine, but the physical space available to put something in that slot is way too small to put the 960 Evo. Had I purchased the ThinkPad with an SSD already in it, the necessary slot would have been available in the standard hard drive area.
  • Putting the Samsung 960 Evo SSD in a third-party internal hard drive bracket. I thought the M.2 to 2.5 inch SATA converter (7mm height) looked and sounded perfect, until I discovered firsthand that the 960 Evo does not fit in it. This is because the 960 Evo is an “M key”, as opposed to a “B key” or “B+M key”. I was never able to find a generic, internal hard drive bracket / M.2 to SATA adapter that supports the “M key” connection.
  • Putting the Samsung 960 Evo SSD in a third-party external hard drive USB enclosure. As per the point above, the “M key” connection on the 960 Evo makes it unsuitable for a standard SATA USB enclosure. There might be such an external enclosure that supports the “M key” connection out there, and hopefully this becomes more common over time.
  • Booting Windows from the existing hard drive (that came with the ThinkPad T470) from a USB enclosure. The goal was to use Samsung’s Data Migration software to copy the existing drive and operating system to the new SSD.

Clearly I had and still have a lot to learn about SSDs!

Airbnb for Business review: simple business trip accommodations

Airbnb has become a very useful option for business travel. It can be cheaper than a hotel, but you can also often get a more convenient location and better amenities such as a kitchen. You also have many more options in case you want a place with multiple rooms.

Airbnb for Business has made normal Airbnb much more convenient for my small business. Just like Uber for Business, you can have multiple sub-accounts that can all charge trips to the main account and credit card. This way, employees can choose their own accommodations and book their own trips! Before I started using Airbnb for Business, I’d have to play middle man and make a booking on behalf of my employees; this took up my time and I’m sure the hosts would have preferred dealing directly with the person who would be staying at their place.

Once an employee is added to an Airbnb for Business account, they have an option to specify on a booking that they’re on a business trip:

Specify business travel

This then allows them to select the option of charging the trip to the company credit card. This way, they don’t have to use their own card and wait to get reimbursed. They also don’t have to have the company credit card in their possession.

Select your company credit card

If an employee already has an Airbnb account, they don’t have to create another account for business purposes. They can simply add their work e-mail to their existing Airbnb profile:

Enter work e-mail separate from business e-mail

From an administrative standpoint, I can see all trips made by my employees in the Airbnb for Business dashboard. This centralizes the information I need to do accounting.

Reporting dashboard of company trips

I can of course add and remove employees under the business account. I can also add “bookers” who can book on behalf of other employees, and “managers” who can view the report information.

Add employees, bookers, and managers

I can also manage the credit cards on the business account and assign different cards to different groups if needed.

Configure which credit cards can be used by which groups

Lastly, there are e-mail notification settings. I can choose to receive an e-mail for every booking, and I can also get special alerts if the nightly rate exceeds a particular threshold.

Receive e-mail notifications for every company booking

I highly recommend Airbnb for Business. While the basic Airbnb service has its own merits, I appreciate how it is providing tools for my small business that traditional hotels could have provided long time ago!

(And no, they did not pay me to write such a positive review!)

Scrub Daddy review: durability is the deal breaker

I decided to try the Scrub Daddy kitchen scrubber, which became famous mostly through Shark Tank. It cost $6 at Bed, Bath, and Beyond — it’s cheaper in bulk packs, but still at least 2-3 times the cost of normal kitchen scrubbers.

Scrub Daddy box front

Scrub Daddy box back

The Scrub Daddy is very good at scrubbing, and should not scratch most materials. Things don’t generally stick to it, so it’s easy to get the Scrub Daddy itself clean as well. However, I have 2 main problems with the Scrub Daddy:

1. It does not last long. After 2 weeks of normal, daily use on kitchen dishes, it started to fall apart. This is in contrast to a standard kitchen scrubber, which lasts for at least 1 month before I consider replacing it.

Scrub Daddy falling apart after two weeks

Once the Scrub Daddy starts disintegrating, little yellow pieces of the scrubber come off pretty much every time you touch it. While this deterioration happens to normal kitchen scrubbers and sponges, the rate at which the Scrub Daddy falls apart is significantly faster than any other scrubber I have used.

2. It does not hold soap well. This is probably a side effect of the Scrub Daddy’s scrubbing effectiveness, but if you’re used to putting soap onto your scrubber, you will probably find that you end up using much more soap with the Scrub Daddy.

When I Tweeted about Scrub Daddy’s durability issues, I got a quick reply from them, suggesting that I contact their customer service. Customer service over e-mail was very friendly and prompt. Basically, they asked for more information about how I used and cared for the scrubber. My use was nothing out of the ordinary, and the care instructions for the Scrub Daddy are no different than any other scrubber. They kindly sent me another Scrub Daddy, suggesting that I should get better results than with the first one. However, I found the same disappointing durability as before. When I searched online for other reviews of the product, I found that most people have a similar experience. I was impressed by Scrub Daddy’s customer service, although customer service is not something you expect to need for a kitchen scrubber.

In short, the Scrub Daddy is smiley, good at scrubbing, and a great success in marketing, but I cannot recommend it over a standard kitchen sponge. You could keep it on hand as a special-use scrubber for a small percentage of your dishes, but that seems like a lot of trouble, not to mention the cost!

Nest Cam as a baby monitor review: expensive but lots of features

The Nest Cam is a souped up webcam that is marketed primarily as a security camera. It also works well as a baby monitor, which is what this review will focus on. Is the Nest Cam worth the $250 CAD (+ $100 per year for video history) cost?

Main features: video and audio

Video and audio quality with the Nest Cam is good. You can choose between 360p, 720p, and 1080p. The higher the quality the more bandwidth it uses, of course. For my purposes, even at 360p there is sufficient detail to see what a baby is doing, although I have it normally set to 720p. The camera captures a wide angle, and has good zoom capabilities. Night vision is a key feature — I use the camera exclusively at night — and works well.

Nest Cam night vision

The only challenge with the night vision feature is that the lighting and thus the clarity get messed up if there is an object between the camera and what you’re trying to watch, even if that object is off to the side. Thus, you have to make sure there’s a clear path to what you’re watching, or configure the camera to zoom past the other object.

Access to the Nest Cam’s video is through its website or a smartphone app. This is very convenient because you don’t need additional devices if you already have a smartphone, and multiple people can access the video through their own devices. Using either the website or the app, you can see the video and hear the audio, but also speak through the camera.


Setting up the Nest Cam is really easy. It comes with a 10-foot cable that you plug into the wall. Using the app, you scan the QR code on the back of the camera, name the camera, and enter your WiFi details. That’s it!

The Nest Cam is only 4.5 tall, and can either stand on its own or be mounted.

Nest Cam size

It’s quite portable — if you need to use it somewhere else in the house, you just move it and plug it in, and it automatically connects to the network again. If you need to connect it to a different network, then you just follow the same simple setup steps.

Supporting features: history and notifications

The Nest Cam has nice history and notification features, although after 30 days you have to pay for the history feature (which starts at $100 per year for 10 days of rolling video history retention).

The video history is summarized with a list of sound and motion notifications through the app or website.

Nest Cam video history

When you’re logged in through the website you can also view the entire history, clicking through the hours and days of video just like any online video.

The notifications can be quite useful, with or without the video history feature. You can configure sound and/or motion notifications that will alert you via e-mail or through an app notification:

Nest Cam sound and motion notifications

Other options that can be configured include video quality, a talk and listen chime, a status light, and more:

Nest Cam options

Although the general status light can be turned off, there is a specific case where a light shows even with that setting “Off”. When the camera has a temporary Internet connection issue, its blue light pulses, which could disturb a sleeping baby.

Plugged in and WiFi

The Nest Cam needs to be plugged in all the time, and does not have a battery backup. If you have frequent power outages, then this camera is probably not for you.

The Nest Cam also requires a good WiFi connection. This can be an issue if it needs to be placed in a room that does not have a good wireless signal from your router. It is also susceptible to any general issues you have with your Internet connection. Also, if you’re travelling with it and need to connect to a network with a login screen in addition to the WiFi password, you must use something like Connectify so that you can log in via another computer and then have the camera connect through that computer.

Bandwidth could be an issue, depending on your Internet connection. If you have the video history feature, it will be constantly streaming its video; otherwise bandwidth is only used when you’re watching the video. I measured 1 week of use (with video history) at 360p, and it used 5.05GB. Nest claims that at 720p with video history, the total bandwidth usage of your camera when it is on 24/7 is 60GB to 160GB per month. If you’re using it as a baby monitor, you probably won’t have it on all the time, though. In addition to the total bandwidth usage, you’ll need to consider its speed requirements in terms of amount of data per second. At 720p, this can be between 200Kbps and 500Kbps. You can consult the Nest website for the data speed requirements at the various video quality levels.


If the Nest Cam’s rich set of features are of use to you, and you have a good and reliable Internet connection and power, it might be worth the cost as a baby monitor. It might also have some good resale value. Otherwise you could stick to something cheaper and more basic.

Converting PHP cURL SSL / TLS cipher names

Web developers have started to pay more attention to secure connections due to vulnerabilities such as POODLE and the general push for HTTPS everywhere.

Some aspects of SSL / TLS are quite complex and generally not well documented for the level that most web developers work at. The issue of ciphers is one of the challenges. There is a long list of possible ciphers, and you might find yourself maintaining a limited list of ciphers that your application supports. One of the problems is that the cipher names are not the same across technologies.

If you are making PHP cURL calls, you can limit the supported ciphers using the CURLOPT_SSL_CIPHER_LIST option. However, if you want to support the cipher TLS_RSA_WITH_AES_256_CBC_SHA for example, you cannot pass PHP (or cURL directly) that identifier — it will complain that no such cipher exists. If you inspect the results of the function openssl_get_cipher_methods, you will find identifiers such as rsa_aes_256_sha, which happens to map to TLS_RSA_WITH_AES_256_CBC_SHA.

In order to find cURL’s mapping of cipher names, you have to inspect its source code! There, you will find the complete mapping, with entries such as this:

{"rsa_aes_256_sha",            TLS_RSA_WITH_AES_256_CBC_SHA}

Thus, you can set the cURL cipher list in your PHP call like this:

curl_setopt_array( $curl, array( CURLOPT_SSL_CIPHER_LIST => 'rsa_aes_256_sha' ) );

(Bonus tip: you can use cURL on the command line for quicker testing: curl -I –ciphers “rsa_aes_256_sha”)

Lastly, it is important to note whether your server is using mod_ssl or mod_nss. If you want to support multiple ciphers, the PHP documentation says to separate them with colons. However, it does not state that with mod_nss the separator is a comma!