How to enter international phone number in Google Sheets

Problem

I was trying to enter an international phone number of the format +65-12345678 into a cell in Google Sheets and it would turn into ERROR. I changed the formatting of the cell using Format → Number → Plain text. But this error still persisted.

Solution

Because the + sign is treated specially when it appears as first character, there is no standard formatting that will work. We need to create a custom formatting to enter this phone number.

Click the cell where you want to enter phone number and choose Format → Number → More formats → Custom Number Format. Enter this format: +##-########. This tells Google Sheet that we will enter 10 digits, represented by the hash characters and it should show up as shown in the format.

Now paste 6512345678 into the cell and it will be displayed as +65-12345678

Advertisements

How to reset Xiaomi phone without unlocking it

Problem

I had forgotten the unlock pattern, PIN and other unlocking credentials for a Xiaomi Mi Max 2 phone. I did not care about the data and settings on the phone, I just needed to factory reset this Android smartphone, so that I could create a new Google account on it.

Solution

Thankfully, Xiaomi provides a way to hard reset the phone without unlocking it:

  • Power off the phone.
  • Keep Volume Up and Power button pressed together, until the Mi logo appears.
  • You will be led to the recovery menu. Here you can choose to Clear Data, which will effectively factory reset the phone.

Reference: Hard reset Xiaomi Mi Max 2

Corebird

Corebird is a Twitter client for Linux. It has a UI that I find to be clean and modern.

  • Installing it is easy:
$ sudo apt install corebird
  • Adding a Twitter account is easy and multiple accounts are supported.

  • Configuration can be done by clicking the ⚙ icon at the top-right. These settings are very minimal though. For example, I could not find an option to set the number of tweets to show is not provided.

Tried with: Corebird 1.1 and Ubuntu 16.04

Mikutter

Mikutter is a Twitter client for Linux. It is developed using Ruby.

  • Installing it is easy:
$ sudo apt install mikutter
  • When you start it for the first time, a bot-like mikutter-chan will lead you through the steps to link your Twitter account with the client. This is quite user-friendly.

  • It supports multiple Twitter accounts. Just click the 🔧 icon at bottom-right and go to Account information to add more accounts.

  • One feature I like in Mikutter is that it shows the original message below reply tweets.

  • I find the message list display to be quite crowded, though usable.

Tried with: Mikutter 3.3.6 and Ubuntu 16.04

OpenCV CMake package version error

Problem

I was compiling OpenCV using CMake and it threw up this error:

CMake Warning at cmake/OpenCVPackaging.cmake:23 (message):
  CPACK_PACKAGE_VERSION does not match version provided by version.hpp
  header!
Call Stack (most recent call first):
  CMakeLists.txt:1105 (include)

Solution

Open cmake/OpenCVPackaging.cmake file and add the version of OpenCV using a line set(OPENCV_VCSVERSION "2.4.13"). Place the line anywhere above the first use of OPENCV_VCSVERSION.

OpenCV CUDA CMake error

Problem

I was building OpenCV using CMake and got this error:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
opencv_dep_CUDA_nppi_LIBRARY

Solution

The error was related to CUDA and probably some dependency on the NVIDIA Performance Primitives (NPP) library. Since, I needed neither, I rebuilt OpenCV without CUDA support as described here by setting WITH_CUDA=OFF.

OpenCV IlmImf linker error

Problem

I had compiled OpenCV and when I linked my application with OpenCV libraries, I got this error:

undefined reference to `Imf_2_2::globalThreadCount()'

Solution

The Imf in the symbol above seems to be from the IlmImf library that is used to read and write OpenEXR images. Since I had no need for OpenEXR, I recompiled OpenCV with the setting WITH_OPENEXR=OFF. Linking with the resulting OpenCV libraries worked fine.

Current working directory Poco error

Problem

I was trying to build the Poco library when I got this error:

/home/blah/someplace/poco-poco-1.4.6p4-release/build/rules/global:62: *** Current working directory not under $PROJECT_BASE.  Stop.
make[1]: Leaving directory

The same code had built successfully on another computer, so I knew there was nothing wrong.

Solution

Turns out that this error is actually caused if the path where you have unzipped Poco has a symlink in it. The someplace directory above was actually a symbolic link. Once I copied Poco to a path which had no symlink, it compiled fine.

Unrecognized relocation error

Problem

Building a large project that involved linking with many libraries, I got this linking error:

Linking CXX shared library ../../lib/libfoobar.so
/usr/bin/ld: /somepath/opencv-2.4/lib/libopencv_imgproc.a(clahe.cpp.o): unrecognized relocation (0x2a) in section `.text._ZN12_GLOBAL__N_1L15CLAHE_Impl_infoEv'
/usr/bin/ld: final link failed: Bad value

Solution

At first I suspected some problem with the symbol that you see the linker complaining about above. But using nm I found that the symbol was present and was defined in the archive library file.

Only after eliminating all other possibilities did I discover that the problem was the compiler version. The archive library file had been compiled using GCC 4.8. The linking was being done on a different computer where the compiler was GCC 5.x. The C++ ABI had changed along with the major version difference between the two compilers and this was causing the problem.

Once I rebuilt OpenCV with GCC 5.x and used its archive library file, the linking proceeded smoothly.