Category Archives: Tutorials

Tech tutorials

Backing Up Your Photos to Google+

We’ve all been in this situation, your phone suddenly dies and it doesn’t have a microSD slot or you didn’t select the proper setting to save them to your microSD card. Photos are probably one of the most precious things that we store on our mobile devices and companies know this. As such, many cloud service providers like Google, Microsoft, Dropbox, Copy and etc. provide mechanisms for you to easily back these precious photos seamlessly and with ease.

Google provides such a mechanism with its Google+ Photos app that is included with every single Android device that is sold on the market today with Android 4.0+. Your Google account comes with a generous 15 GB of free storage which can also be expanded up to 30 TB with Google’s paid options. Unlike other cloud services, Google provides unlimited storage for photos and videos as long as they’re smaller than 2048 x 2048 pixels for photos and under 15 minutes long per video. So as long as your photo or video meets these requirements, it won’t count towards your Google storage quota. That’s rather generous as no other cloud storage provider offer this.

Table of Contents

Enabling Auto Backup on Android

  1. Navigate to the Photos app that’s preinstalled on your Android device
  2. If this is the first time you’ve launched the app, it’ll ask you to sign in to your Google account. Once the app launches, press the triple dot menu on the top right hand corner of the screen.
  3. Once you’re in the settings menu, select the Auto Backup button.
  4. Select the toggle on the top right hand corner to turn on/off the Auto Backup function of the Photos app. Under Photo Size, it gives you 2 options: full size and standard size. The difference between these 2 options is that when Full size is selected, the app will upload the photos at their native resolution, whereas the Standard size option will shrink the image to fit within the 2048 x 2048px limit. By choosing full size, any photos that are larger than 2048 x 2048px will be counted towards your Google storage quota. By selecting standard size, you will be well within Google’s unlimited photo storage option. For best quality, choose full size.

    In this menu,  there’s also the option to select on what type of connection to backup your photos. By default, the Photos app will only backup your photos automatically when you’re connected over WiFi. However, if you press the button, you can also choose to backup your photos over your mobile data connection. There’s also an option of Backup all which will backup all your media to the cloud and just only future media that you store on the device.

Viewing Photos on Your Computer

So now that you’ve backed up your precious photos and videos to Google’s cloud storage, now how do we get to view our photos and videos and/or download them to our computer? That’s quite easy too! You can easily view your photos on the web as the Photos app backs your photos up to Google+. All the photos you back up are for your eyes only, and only visible to others when you choose to share them. To view your photos and videos, go to: https://plus.google.com/photos!

There are 2 ways to download your photos, either as a single photo  or for a whole album. For auto backup, your photos are sorted by upload date. Each upload date is an album. As such you can download the whole day’s worth of photos in one click. To download your album in Google+ Photos, scroll to the date or album you want, when you roll your mouse over the album, it will pop up 3 buttons: Tag, Share and a downward pointing arrow. Choose the arrow and it’ll open up a menu. Choose download to download the album. It will automatically zip all your photos and present you the download dialog in your browser.

To just download a single image, simply press the image you want in Google+ Photos, the photo will then expand in the photo viewer. on the top is a menu of options, choose the More… button and Download Photo. There will now be 2 options, Original or Enhanced. Original is the original photo you took, it will look exactly like how you took the photo. Enhanced is with Google’s photo enhancements or the enhancements you’ve made in Google+ Photos.

Final Thoughts

With Google+ Photos and its seamless automatic backup mechanism, losing photos is now a thing of the past. You’ll never need to fear of losing those precious moments ever again. Let me know what you think in the comments below. How do you like Google+ Photos?

Changing DNS

I was recently notified that there has been Internet issues with my ISP and that a simple change of the DNS entry will fix the issue. If you're having this issue with your ISP, then follow along.

This tutorial is for Windows 7/8 as these two are now installed on most PCs, I will post a Mac version if there's a demand for it.

Windows 7/8

For Windows 7 Users:

  1. Press your Start Button
  2. Press Control Panel

For Windows 8 Users:

  1. Move your mouse cursor to the top right hand corner of your screen
  2. Once the Charms Bar comes out, press Settings
  3. Press Control Panel

For both Windows 7/8:

  1. On the top right hand corner, next to “View By”, change the dropbox from Category to Large IconsWindows 8 Control Panel - Category View
  2. Once in Large Icons view, it should look like this:
    Windows 8 Control Panel - Large Icons View
  3. Scroll down and select “Network and Sharing Center”
    Network and Sharing Center in Windows 8
  4. On the left hand side, select “Change Adapter Settings”
    Network Connections in Windows 8
  5. Find your network adapter (depending if you're using wireless or not)
  6. Right click the Adapter and press Properties
  7. Once your Properties window comes out, it will look like this:
    Ethernet Properties in Windows 8
  8. Select Internet Protocol Version 4 (TCP/IPv4) and press Properties
  9. The Properties window will show up as shown below:
    IPv4 Properties in Windows 8
  10. As shown above, select “Use the following DNS server addresses”. Fill in the following (Google DNS servers):
    Preferred DNS server: 8.8.8.8
    Alternate DNS server: 8.8.4.4 
  11. Press OK to this Properties window and the one underneath that.
  12. Internet should work now.

Hopefully this will resolve your issue.

Supercharging Android WiFi and 3G data speeds

During the past week, I have been playing with my Google Nexus S phone (I9020T), I finally took the chance to root it, install a custom ROM and a new kernel to take advantage of the entire hardware. Those who know me well, would know that I wouldn’t just stop there. I’m a tinkerer so I dove in and tweaked Android more, scouring XDA developers and started to tweak different aspects of my phone.

One neat little tweak I found was to increase the TCP buffer size that seems like it doesn’t fragment the TCP packets as much, thus allowing higher download/upload speeds no matter if it’s WiFi or 3G data speeds.

In order to do this, you must have a rooted Android device. I’ve personally only tested this on my Nexus S, but in theory should work on any Android 4.x device. You must first extract the build.prop in the /system folder on your Android device. On your computer, open your favourite file editor and insert these lines at the end of the file:

# Network Tweaks
net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960

By applying this code, you increase the buffer size for the TCP connections. There doesn’t seem to be settings for UDP, but I’m going to dig into more of this when I have time. Do note, that you must reboot your phone in order to have these changes take effect.

Here’s what it looks like after applying the tweak:

Android TCP tweaks

First result is with the code above, second result is without the code above.

Let me know if this helps in the comment section below!

fglrx + patched Linux kernels

So lately, I have noticed that people, including myself have been running into a fatal error which prevents your fglrx (ATi proprietary drivers) to compile due to the fact that the kernel developers decided to patch a critical vulnerability with a GPL only solution which meant that the library that fglrx requires no longer exist.

You would usually get an error like this when you try to compile the fglrx kernel module:

/usr/src/kernel-modules/fglrx /
make: Entering directory `/usr/src/packages/BUILD/kernel-2.6.35.50.3desktop'
  LD      /usr/src/kernel-modules/fglrx/built-in.o
  CC [M]  /usr/src/kernel-modules/fglrx/firegl_public.o
/usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘KCL_GetInitKerPte’:
/usr/src/kernel-modules/fglrx/firegl_public.c:2378:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2379:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2380:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘KCL_GetPageTableByVirtAddr’:
/usr/src/kernel-modules/fglrx/firegl_public.c:2425:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2428:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2429:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘KCL_TestAndClearPageDirtyFlag’:
/usr/src/kernel-modules/fglrx/firegl_public.c:2598:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c: In function ‘KCL_GetDmaPhysAddr’:
/usr/src/kernel-modules/fglrx/firegl_public.c:2636:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2637:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2638:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2640:5: warning: return makes integer from pointer without a cast
  CC [M]  /usr/src/kernel-modules/fglrx/kcl_acpi.o
  CC [M]  /usr/src/kernel-modules/fglrx/kcl_agp.o
  CC [M]  /usr/src/kernel-modules/fglrx/kcl_debug.o
  CC [M]  /usr/src/kernel-modules/fglrx/kcl_ioctl.o
/usr/src/kernel-modules/fglrx/kcl_ioctl.c: In function ‘KCL_IOCTL_AllocUserSpace32’:
/usr/src/kernel-modules/fglrx/kcl_ioctl.c:196:5: error: implicit declaration of function ‘compat_alloc_user_space’
/usr/src/kernel-modules/fglrx/kcl_ioctl.c:196:5: warning: return makes pointer from integer without a cast
make[1]: *** [/usr/src/kernel-modules/fglrx/kcl_ioctl.o] Error 1
make: *** [_module_/usr/src/kernel-modules/fglrx] Error 2
make: Leaving directory `/usr/src/packages/BUILD/kernel-2.6.35.50.3desktop'

 

Fortunately, there is a solution to this and it took me days to find this oh so very simple solution, apparently all you need to do is to go into the /usr/src/kernel-modules/fglrx/kcl_ioctl.c file (each distribution may vary) and on line 197, change it from:

void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
{
    return compat_alloc_user_space(size);
}

#endif // __x86_64__

 

to this:

void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
{
    return arch_compat_alloc_user_space(size);
}

#endif // __x86_64__

Save the file and then recompile the kernel module by running /usr/bin/fglrx-kernel-build.sh and you should get your kernel module building again. After recompiling your kernel, reboot your machine and fglrx will then load and boot.

It's just that simple, only 5 extra characters that makes that big of a difference.

Hope this helps!

Do note that I did not discover this fix and was discovered by others. I'm just simply posting it to help others. I do not take any credit for this fix.

My distribution information :

OpenSUSE 11.3 x86_64
Linux kernel 2.6.35.5 (custom compilation) 
fglrx 8.771 (Catalyst 10.9)