Thursday, April 22, 2021

[How To] Save Space on Google Photos

Google Photos is a photo-sharing and storage service developed by Google. It was announced in May 2015 and separated from Google+, the company's former social network. In its free tier, Google Photos stores unlimited photos and videos up to 16 megapixels and 1080p resolution, respectively (anything larger gets down-scaled to these sizes). This free tier will end on June 1, 2021. Photos and videos uploaded after that date get counted towards the 15 GB free quota shared across the user's Google services. There are subscriptions offered for users wanting to store their photos and videos at their "original" quality and requiring more storage than the 15 GB offered free.

Storage (GB)Per Month (USD)Annual (USD)

You can check out how much storage you are using across Google services out of your quota of free 15 GB. Go to Google Drive and check the storage bar on the left side. Or you can click on the Setting button in Google Drive located on the Top Menu and click on the Storage option and check how much storage you are using. You can click on "View items taking up storage" and see which files occupy more space. If Google Photos is taking up space, then do the following to save some space.

Wednesday, March 31, 2021

[How To] Install Free SSL Certificate for WordPress

In this tutorial, I have installed a free SSL certificate from Let's Encrypt using the Certbot tool on Google Cloud Platform VM running Debian OS that hosts a WordPress site using Apache server. You can follow similar steps for other Cloud providers / OS distributions / CMS vendors / Web servers.

Part-1: Configure Virtual Host for your domain on Apache

cd /var/www/html

wp option update home ''

wp option update siteurl ''

sudo nano /etc/apache2/sites-available/

sudo apache2ctl configtest

sudo a2ensite

sudo systemctl reload apache2

Friday, March 12, 2021

Random Number Generation in C++



//  main.cpp

//  VaultBox


//  Created by Devharsh Trivedi on 3/11/21.


#include <iostream>

#include <iomanip>

#include <string>

#include <map>

#include <random>

#include <cmath>

#include <vector>

int main(int argc, const char * argv[]) {

    std::random_device ranDev;

    unsigned int num_ranDev = ranDev();

    std::cout << num_ranDev << std::endl;

    std::mt19937 mtGen(num_ranDev);

    std::vector<unsigned long> indexes(10);


    iota(indexes.begin(), indexes.end(), 0);

    for(int i=0; i<10; i++) {

        std::cout << indexes[i] << "\t";


    std::cout << std::endl;

Thursday, March 11, 2021

[How To] Save as an unlocked PDF

Steps to save a locked (password protected) PDF as an unlocked PDF:

  1. Download / Save / Copy the locked PDF to a folder
  2. Open Google Chrome
  3. Go to File Menu >> Open File >> Select your locked PDF
  4. Enter password
  5. Click on the Print button and select Save as a PDF
  6. The saved PDF will be unlocked

Saturday, February 27, 2021

setsockopt: Protocol not available [Solved]

Problem code:

if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) 





if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt))) 





Thursday, February 25, 2021

[How To] Fix "Waiting to Upload" in iCloud Drive

1. Check if you have enough free storage on iCloud

2. Go to Settings (iOS / iPadOS) or System Preferences (macOS) >> iCloud >> Sign Out

3. Wait for a minute or two after you have successfully logged out

4. Log in to iCloud again

5. Go to iCloud settings and >> iCloud Drive >> Options... >> select the checkbox for "Desktop & Documents Folder" >> Done

Monday, February 22, 2021

Best tablets to buy in 2021

iPad Air 2020 256 GB -

Brand - Apple

Storage - 256 GB

Display - 10.9"

Resolution - 2360 x 1640

Operating System - iPadOS 14

stylus pen for iPad with palm rejection -

iPad Air 4th generation keyboard case -

iPad Air glass screen protector -

[How To] Use Cryptopp in Xcode

  • Crypto++ Library is a free C++ class library of cryptographic schemes. Currently the library contains the following algorithms: algorithm type name authenticated encryption schemes GCM, CCM, EAX, ChaCha20Poly1305 and XChaCha20Poly1305 high speed stream ciphers ChaCha (8/12/20), ChaCha (IETF), Panama, Salsa20, Sosemanuk, XSalsa20, XChaCha20 AES and AES candidates AES (Rijndael), RC6, MARS, Twofish, Serpent, CAST-256 ARIA, Blowfish, Camellia, CHAM, HIGHT, IDEA, Kalyna (128/256/512), LEA, SEED, RC5, SHACAL-2, other block ciphers SIMON (64/128), Skipjack, SPECK (64/128), Simeck, SM4, Threefish (256/512/1024), Triple-DES (DES-EDE2 and DES-EDE3), TEA, XTEA block cipher modes of operation ECB, CBC, CBC ciphertext stealing (CTS), CFB, OFB, counter mode (CTR), XTS message authentication codes BLAKE2s, BLAKE2b, CMAC, CBC-MAC, DMAC, GMAC, HMAC, Poly1305, Poly1305 (IETF), SipHash, Two-Track-MAC, VMAC BLAKE2s, BLAKE2b, Keccack (F1600), SHA-1, hash functions SHA-2 (224/256/384/512), SHA-3 (224/256/384/512), SHAKE (128/256), SipHash, SM3, Tiger, RIPEMD (128/160/256/320), WHIRLPOOL RSA, DSA, Deterministic DSA, ElGamal, public-key cryptography Nyberg-Rueppel (NR), Rabin-Williams (RW), LUC, LUCELG, EC-based German Digital Signature (ECGDSA), DLIES (variants of DHAES), ESIGN padding schemes for public-key PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363 systems EMSA2 and EMSA5 Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), key agreement schemes Menezes-Qu-Vanstone (MQV), Hashed MQV (HMQV), Fully Hashed MQV (FHMQV), LUCDIF, XTR-DH elliptic curve cryptography ECDSA, Deterministic ECDSA, ed25519, ECNR, ECIES, ECDH, ECMQV, x25519 insecure or obsolescent MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL algorithms retained for backwards 3.0, WAKE-OFB, DESX (DES-XEX3), RC2, compatibility and historical SAFER, 3-WAY, GOST, SHARK, CAST-128, Square value

Saturday, February 13, 2021

[How To] check if Intel SGX is enabled

Steps to check if Intel SGX is enabled on your system:

1. Download test-sgx.c from

2. % gcc test-sgx.c -o test-sgx

3. % ./test-sgx

eax: 806ea ebx: 4100800 ecx: 7ffafbbf edx: bfebfbff

stepping 10

model 14

family 6

processor type 0

extended model 8

extended family 0

smx: 0

Extended feature bits (EAX=07H, ECX=0H)

eax: 0 ebx: 29c67af ecx: 0 edx: 9c002600

sgx available: 1

sgx launch control: 0

CPUID Leaf 12H, Sub-Leaf 0 of Intel SGX Capabilities (EAX=12H,ECX=0)

eax: 0 ebx: 0 ecx: 0 edx: 0

sgx 1 supported: 0

sgx 2 supported: 0

MaxEnclaveSize_Not64: 0

MaxEnclaveSize_64: 0

CPUID Leaf 12H, Sub-Leaf 1 of Intel SGX Capabilities (EAX=12H,ECX=1)

eax: 0 ebx: 0 ecx: 0 edx: 0

CPUID Leaf 12H, Sub-Leaf 2 of Intel SGX Capabilities (EAX=12H,ECX=2)

eax: 0 ebx: 0 ecx: 0 edx: 0

CPUID Leaf 12H, Sub-Leaf 3 of Intel SGX Capabilities (EAX=12H,ECX=3)

eax: 0 ebx: 0 ecx: 0 edx: 0

CPUID Leaf 12H, Sub-Leaf 4 of Intel SGX Capabilities (EAX=12H,ECX=4)

eax: 0 ebx: 0 ecx: 0 edx: 0

CPUID Leaf 12H, Sub-Leaf 5 of Intel SGX Capabilities (EAX=12H,ECX=5)

eax: 0 ebx: 0 ecx: 0 edx: 0

CPUID Leaf 12H, Sub-Leaf 6 of Intel SGX Capabilities (EAX=12H,ECX=6)

eax: 0 ebx: 0 ecx: 0 edx: 0

CPUID Leaf 12H, Sub-Leaf 7 of Intel SGX Capabilities (EAX=12H,ECX=7)

eax: 0 ebx: 0 ecx: 0 edx: 0

CPUID Leaf 12H, Sub-Leaf 8 of Intel SGX Capabilities (EAX=12H,ECX=8)

eax: 0 ebx: 0 ecx: 0 edx: 0

CPUID Leaf 12H, Sub-Leaf 9 of Intel SGX Capabilities (EAX=12H,ECX=9)

eax: 0 ebx: 0 ecx: 0 edx: 0

4. sgx available = 1 means that the system has a CPU that supports Intel SGX

5. From sgx1 supported = 0 and max enclave size64 = 0 we infer that Intel SGX is disabled from BIOS

Wednesday, February 03, 2021

iOS v/s Android - Comparing 'Apples' to 'Oranges'

Apple iOS

Google Android


July 29, 2007

September 23, 2008

Latest Version




OS Model


Open Source






Google Assistant


1,000,000 on App Store

2,000,000 on Play Store

Operating System



Latest Phone

iPhone 12

Pixel 5

Phone Website

Let's compare some of the default apps on both platforms...