Why we moved from OpenShift to Google Cloud

The good old days

When OpenShift was in its version 1 it was great from customer’s point of view with low budget. OpenShift v1 had free offers to deploy app and add a custom domain to it. There was no SSL support but it could be handled via CloudFlare solution, making overall solution a great one.

Then there comes OpenShift v2

RedHat then launched OpenShift v2 and added a restriction that gears will be shutdown after certain period of inactivity and also removed the support for custom domain.

That was the time that we had to move to some other cloud platform that could support our apps with low resources and without investing anything.

Since all good things in life are free.

Google Cloud to the rescue

So we came across Google Cloud platform offering and we had $300 credit in free trial for next 6 months. That was more than enough for us to start with. And in fact they have micro virtual machine instances that are free for life with 30gb storage. That is more than enough for small apps to run for free that are under experiments or don’t have any monetization plans.

So, we migrated several of our apps from OpenShift to Google Cloud and started leveraging free credits provided by Google.

Just this week we consumed all our credit and our trial expired. Our virtual machine instances were shutdown, but it didn’t take long that we enabled billing on our project and downgraded our instances to micro ones which is free. That gave us such a relief that our apps are still running although with low resources but it is fine as that are not our revenue generating apps and are just experiments.

List of FREE services Startups should be using

I have curated a list of free tools, services, and apps that startups could and in fact should use to grow at the initial stage. Free doesn’t mean they lack quality, instead these free tools are from top-notch companies like RedHat, Google, Asana, GitHub and in all areas from infrastructure to version controlling to marketing and sales to project management.

Have a look at this list here and don’t forget to give your feedback.

I compiled this list a long time ago and recently updated it but it still might have some outdated links that I didn’t get chance to update yet. Feel free to let me know and I’ll update it.

Enjoy!

Unlocking HTC Sensation Z710e Bootloader for Android

Take the following steps to Unlock your Device’s Bootloader.

  1. Step 1

     After powering down, press Volume Down and while pressing Volume Down, press Power holding both buttons to start the device into Bootloader mode. If you have difficulty, power up normally, go to Settings->Battery and deselect Fast boot. Power down and try again.


  2. Step 2

    Use the Volume buttons to select up or down. Highlight Fastboot and press the Power button.


  3. Step 3

    Connect the device to the computer via a usb cable

  4. Step 4

    Download the following fastboot binary for your OS using the following links:

    Platform Download Size (bytes) Checksum
    Fastboot binary, Linux
    (Unzip the file before executing)
    fastboot 61887 ffd3b02cdf9aa7609462e3957663d238
    Fastboot binary, OS X
    (Unzip the file before executing)
    fastboot-mac 59071 0b3e2a8c5cfeb7c23b362483b93f7dd6
    Fastboot binary, Windows
    (Unzip the file before executing)
    fastboot-win 83753 a90c25141e306b3062dc8e47e14a1005
    1. Step 5

      Open a command Prompt: Windows: Start->”cmd” Mac: Applications->Utilities->Terminal.app Linux: Terminal

      Type in Command Prompt: fastboot oem get_identifier_token.

    2. Step 6

      You will see a long block of text. Copy and paste this text into the the token field below (in the Windows command prompt: Right Click > Mark > highlight the block of text > Right click to copy. Mac users can use cmd-option to mark and select text.).

      You will see one of the following two screens:

      Ref. 6a

      Ref. 6b

      When copying the token, start with this line:

      <<<< Identifier Token Start >>>> 

      And end with this line:

      <<<<< Identifier Token End >>>>> 

      (Note: Only copy the highlighted sections above. Do not copy the INFO or (bootloader) prefix)

    3. Step 7

      Paste this string of text into the token field and hit Submit in order to receive your unlock code binary file. You will receive this information in your email.

      Example:

Next you need to go to http://www.htcdev.com/bootloader/unlock-instructions/page-2 and enter you identification token there and click sumbit. HTC Dev will take you further from there.

Were you able to unlock your bootloader? Share with me your experience in comments below.

Android? Too many pattern attempts? Can’t hard reset? Here what to do!

htconexI had pattern screen lock on my HTC One X Android phone. Yesterday my nephew tried to unlock it too many times and it got permanently locked.

Too many pattern attempts

After trying too many attempts phone got locked and asking for my Google username and password. But unfortunately I wasn’t connected to Wifi due to which whenever I enter my login details it says invalid username and/or password. Since it tries to connect to Google server to authenticate and it couldn’t.

Master Reset

OK, since my phone wasn’t asking me for pattern and it wasn’t connected to internet so it was also not able to authenticate my logins. So doing a master/hard reset was the only option left. To hard reset phone you have to power off your phone and then turn on in recovery/bootloader mode. To do this you have to follow these steps.

  1. Press and hold the VOLUME DOWN button, and then press and hold the POWER button.
  2. Wait for the screen with the three Android images to appear, and then release the POWER and VOLUME DOWN buttons.
  3. Press VOLUME DOWN to select FACTORY RESET, and then press the POWER button.

But for this to work the Fast boot option in Settings > Battery Manager must not be selected. Oops! I remember I selected that option so I was out of luck and this didn’t work and my phone keep starting in normal mode leaving me on same login screen.

Big Problem!

So, now I was stuck and there were several problems.

  1. I couldn’t enter my pattern since it wasn’t asking due to too many attempts
  2. It wasn’t connected to Wifi neither my phone data plan so no internet due to which it wasn’t authenticating from Google.
  3. Fast boot was selected so I was unable to restart my phone in recovery mode.

Now what? I tried to Google solution but all I was getting is to go in recovery mode to hard reset my phone to make it reusable and I was unable to do that as well. Then suddenly I found  the solution!

The Solution!

Solution to this was when your phone is switched on and you are on login screen do the following:

  • Press and hold both Volume down button as well as power button until the screen goes completely black.
  • Once it is black release the power button only. Do not release the volume down button.
  • You will be booted into the bootloader mode.

Woala! That’s it! Now you can select Factory reset from the menu and wow finally I made my phone reusable again. 🙂

What J talked about in 2013

The WordPress.com stats helper monkeys prepared a 2013 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 37,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 14 sold-out performances for that many people to see it.

Click here to see the complete report.

 

Google+ Custom URLs

English: Google+ wordmark
English: Google+ wordmark (Photo credit: Wikipedia)

 

Getting Started with Google+ Custom URLs

 

A custom URL is a short, easy-to-remember web address that links directly to your profile or page.

For example, YouTube’s Google+ page can direct people to google.com/+YouTube to visit their page rather than https://plus.google.com/115229808208707341778.

If you meet the eligibility requirements, you can get a custom URL for your Google+ account or page. This means you can choose one of the custom URLs Google preassigns to your Google+ profile or page. Depending on the preassigned custom URL, you may also need to add a few letters or numbers to make it unique to you.

Custom URLs must be used in compliance with the Google+ User Content and Conduct policies and Google+ custom URLs terms of use.

Requirements for getting a custom URL

Before you can get a custom URL, your account needs to be in good standing and meet the following requirements:

Eligibility for People:

  • Ten or more followers
  • Your account is 30 days old or more
  • A profile photo

Eligibility for Local Google+ pages: Must be a verified local business

Eligibility for Non-local Google+ pages: Must be linked to a website

Getting your custom URL through Google+

If you meet the above criteria, you’ll see a notification at the top of your Google+ page or Profile.

  1. Click Get a custom URL button to get started. Alternatively, from the “About” tab on your Profile, click the “Get” link located under your Google+ URL.
  2. You’ll see the URL(s) you’ve been approved for. If you see more than one option, select the one you like best. You may also be asked to add a few numbers or letters to make the custom URL unique to you.
  3. Check the box to agree to the Terms of Service.
  4. Click Change URL.
  5. We may ask you to verify your account by your mobile phone number. If you need to do this, you’ll see a box pop up asking you to do so.
    a. Enter your mobile phone number.
    b. Check the box to make it easier for people who have your phone number to find you on Google services.
    c. Check your phone for the code that was sent to you.
    d. Enter that code in the box.
    e. Click Verify.
  6. Once approved, this URL will be linked to your Google+ page or Profile, so be sure everything is exactly the way you want it. Once your URL has been approved, you can’t request to change it. When you’re certain, click Confirm.

Pro-tip! If you know someone’s custom URL, you can quickly access areas of their Google+ Profile or Page by adding key words to the end of the URL. Some examples are:

  • google.com/+customURL/posts
  • google.com/+customURL/about
  • google.com/+customURL/photos
  • google.com/+customURL/videos
  • google.com/+customURL/plusones

Change your custom URL

If you want to change the capitalization or accents/diacritics of your custom URL, follow these steps:

  1. Go to the “Links” section of your Google+ profile.
  2. A box will appear allowing you to make edits to the formatting.

Remember, you can only change the capitalization or accents/diacritics of the URL, not the URL itself.

[Source: https://support.google.com/plus/answer/2676340?hl=en&topic=2400106]

 

CyanogenMod Unveils New User Accounts for Remote Find and Wipe

The team behind CyanogenMod, one of the most popular Android ROMs available, took the wraps off of their new CyanogenMod Accounts feature last night, where users can update, sign up, and access new features like the ability to remotely track, find, and wipe their device if it’s lost or stolen.

The big new feature now is the ability to find and wipe your device, but the dev team says that they have plans to offer more remote management features in the future, and all of them will be associated with your CM account. They also point out that they’ve built the new account system in a way that prohibits them from touching your device. The whole system is open source, optional, and completely free.

The new accounts feature is available now, but to use it you’ll have to download and build it yourself from the source code, up at Github. The team wants the community to try it out, test it, and poke through it before they start rolling it into the nightly builds. Hit the link below to read more about it.

[Ref: http://lifehacker.com/cyanogenmod-unveils-new-user-accounts-for-remote-find-a-1170981365?utm_campaign=socialflow_lifehacker_twitter]

 

Set up Microsoft Office365 email on an Android

  1. From the Applications menu, select Email. This application may be named Mail on some versions of Android.
  2. Type your full email address, for example [email protected], and your password, and then select Next.
  3. Select Exchange account. This option may be named Exchange ActiveSync on some versions of Android.
  4. Enter the following account information and selectNext.
  • Domain\Username Type your full email address in this box. If Domain and Username are separate text boxes in your version of Android, leave theDomain box empty and type your full email address in the Username box.

NOTE    On some versions of Android, you must use the domain\username format. For example, if your email address is [email protected], type contoso.com\[email protected] Your username is your full email address.

  • Password Use the password that you use to access your account.
  • Exchange Server Use the address of your Exchange server. If you’re connecting to your Office 365 email, use outlook.office365.com for your server name.
  1. As soon as your phone verifies the server settings, the Account Options screen displays. The options available depend on the version of Android on your device. The options may include the following:
  • Email checking frequency The default value is Automatic (push). When you select this option, email messages will be sent to your phone as they arrive. We recommend only selecting this option if you have an unlimited data plan.
  • Amount to synchronize This is the amount of mail you want to keep on your mobile phone. You can choose from several length options, including One day, Three days, and One week.
  • Notify me when email arrives If you select this option, your mobile phone will notify you when you receive a new email message.
  • Sync contacts from this account If you select this option, your contacts will be synchronized between your phone and your account.
  1. Select Next and then type a name for this account and the name you want displayed when you send e-mail to others. Select Done to complete the email setup and start using your account.

NOTE    You may need to wait ten-to-fifteen minutes after you set up your account before you can send or receive e-mail.

 

How to partition SD Card

If you’ve rooted your phone using Revolutionary you can partition your SD Card from the Recovery menu. After booting into recovery (Revolutionary CWM), you have an optionPartition SD Card. It will ask you how big the EXT partition should be, and how big the Swap partition should be. After selecting the right values, it will automatically partition your SD Card.

If you didn’t used Revolutionary to root your phone, you can still follow the tutorial from here, and after inserting the key, it says that your phone is S-OFF, but it still asks you if you want to install Clockwork Mod. Press y and Enter and wait until the the CMD disappears. Reboot into recovery once again and you should see the Partition SD Card option that I was talking about in the first paragraph.

Note that creating partitions this way will result having an EXT3 partition. If you want an EXT4partition, connect to the phone with adb shell and follow only the 6th step of the following tutorial.

How manually partition SD Card

Don’t be afraid to do something manually. It may be a little bit harder than using a specialized software, but you can learn new things and you know you did it and it worked. For example, partitioning from ROM Manager proved to be a mistake, because I couldn’t select an EXT Partition bigger than 512Mb and it practically messed up my partitions… and using gParted to partition your SD Card is a little bit difficult since you have to install the image on a CD or stick, reboot your PC in gParted and try to get things working from there. From my experience, every time I’ve tried this using a stick to load the image, I couldn’t see the SD Card.

So.. doing something manually is better Smile

Step 1 – Connect to Phone

Restart your phone to recovery mode. Connect your phone to the PC via USB Cable. Use adb shell to connect to the phone

Step 2 – Display the partitions

Open parted (an application from the Android OS) to partition your SD Card
After you connect with adb shell write parted /dev/block/mmcblk0 and then <Enter>. Wait until you see (parted) in the left if your cursor and write print and <Enter>. You should get something like this:

parted_1

As you can see, I’ve got a 3942MB SD Card. It has 3 partitions

  • Number 1 – 2886MB FAT32
  • Number 2 – 1024MB EXT3
  • Number 3 – 31.6MB linux-swap

I’m going to remove all these partitions in order to repartition the card. Note that you’ll lose all your data from the card.

Step 3 – Remove the existing partitions

You’ll have to remove the existing partitions first. So.. look at how many partitions you have, and then write remove <space> partition number <Enter>. 
For example:
rm 1
rm 2
rm 3

parted_2

You can run the print command again to make sure everything was deleted. Now I have an empty unpartitioned SD Card

Step 4 – Create the partitions

Ok, let’s start computing the partitions size. For most of the custom ROM, you need an 1GB EXT partition, and a FAT32 partition.. You’ll also need a swap of 32 or 64MB. So, let’s say that you want to create a 1024MB EXT and a 32MB swap partition. Subtract these values from the entire partition size, and you’ll get the needed size of your FAT32 partition. In my case, I have a3942MB card, so 3942-1024-32 = 2886MB for FAT32

In conclusion, we’ll have to create:

  • 2886MB FAT32
  • 1024MB EXT2 (because parted only allows us to create EXT2 partitions, but we’ll convert it to EXT3 or EXT4 at the end of the tutorial)
  • 32MB swap

Now run the following commands in the (parted) shell:

  • mkpartfs primary fat32 0 2886 (first value is 0, second value is the size of FAT32 partition)
  • mkpartfs primary ext2 2886 3910 (first value is the size of FAT32 partition, second value is EXT4 partition> in our case 2886+1024=3910)
  • mkpartfs primary linux-swap 3910 3942 (first value is EXT4 partition>, in our case 2886+1024=3910, second value is the size of the entire SD Card, in our case 3942)

Note that for every command, the first value is the second value from the previous command. The first value from the first command should be 0 and the second value from the last command should be the size of the entire SD Card.

After you finish with creating the partitions, run print again and you’ll see the newly created partitions:

parted_3

If everything is ok, run quit to exit the parted, and return to the adb shell

parted_4

Step 5 – convert your EXT2 partition to EXT3 (skip it if you don’t want to do this)

In the adb shell, run the following command to convert your EXT2 partition to EXT3

Note that the last number from the command, 2, refers to the second partition. If your EXT2 partition has another number assigned (you can view the number using the print command), replace the “2” with your number, but if you’ve followed the tutorial and you didn’t create more or less partitions, it should be 2 )

tune2fs -j /dev/block/mmcblk0p2

toext3

Step 6 – convert your EXT3 partition to EXT4 (skip it if you don’t want to do this, but you must follow Step 5 if you have an EX2 partition to convert it to EXT3)

In the adb shell, run the following command to convert your EXT2/3 partition to EXT4

Note that the last number from the command, 2, refers to the second partition. If your EXT partition has another number assigned (you can view the number using the print command), replace the “2” with your number, but if you’ve followed the tutorial and you didn’t create more or less partitions, it should be 2 )

tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p2

toext4

If you want to check your filesystem too, you should run e2fsck -fpDC0 /dev/block/mmcblk0p2too

Step 7 – Finish

Finished. Check your work with print.

  • command:  parted /dev/block/mmcblk0 (open parted again)
  • command:  print (check all your system partitions and their sizes)
  • command:  quit (exit parted)
  • command:  reboot (reboot your system to the operating system)

Step 8 – Align your SD Card (optional)

In order to increase the access time, write speed and read speed of your SD Card, you may want to follow this tutorial

[Ref: http://android.bytearrays.com/android/how-to-partition-sd-card/]