Showing posts with label google. Show all posts
Showing posts with label google. Show all posts

Monday, October 23, 2017

Upgrading LG G3 Mobile Phone to Android Mashmallow (6.0)

Recently I brought a used Korean version LG G3 mobile phone for a Virtual Reality (VR) project. The mobile phone required update to the latest version of Android operating system. This Korean model of LG G3 didn't offer Over the Air (OTA) updates.

The first step in the update process is to connect the model phone to the computer using USB cable. However the standard Android 'Google USB Drivers' didn't work. After some searching I found that LG Universal Mobile Drivers from LG support site.

Next I used the LG Mobile Support Tool program on my computer to start updates. This model is not supported by LG Bridge Software. After couple of updates I managed to upgrade the mobile phone to Android 6.0 Marshmellow. Each update requires a download of 1GB update and you need to wait for the phone to reboot and optimize all the Android applications.

There was one glitch in the upgrade. Had to restart an upgrade when I faced 'Upgrade stopped due to an error' message.

Here rather straight forward way to upgrade the phone to latest Android 6.0 (Marshmellow):

Wednesday, August 17, 2016

Google Cardboard 360° Photosphere Viewer with A-Frame

In my previous post "Embedding Google Cardboard Camera VR Photosphere with A-Frame", I wrote that some talented programmer would probably create a better solution for embedding Google Cardboard camera photosphere using A-Frame.

I didn't know that Chris Car had already created a sophisticated solution for this problem. You can view it here on A-Frame blog.

You first might have to use Google Cardboard camera converter tool to make your Google Cardboard photosphere.

.

Friday, August 12, 2016

Embedding Google Cardboard Camera VR Photosphere with A-Frame

Early this year I started looking into the VR (Virtual Reality) web applications. Web browsers now natively support VR applications using WebVR JavaScript API. We can now design virtual worlds using markup language and connect them to devices such as Oculus Rift and Leap motion controller using just a web browser.

To hit the ground running with WebVR. I started an experiment to capture Hackerspace Phnom Penh using Google Cardboard camera app and display it using A-Frame framework. The Google Cardboard camera photosphere is not supported by A-Frame. But the positive responses to my query encouraged me to try an hack using A-Frame Panorama component.


And it works. Almost I had to tweak the scale setting a bit to try get the perspective right but it does work. The ideal solution is to create a A-Frame custom component, that I leave it for more skilled people.

The markup needed for this demo is simple, you can achieve this with one line.


<a-scene>
     <a-sky src="img/hackerspace.vr.jpg" radius="2400" scale="2 1 2"> </a-sky>
    </a-scene>

You can see the demo on Youtube or visit this webpage in an compatible web browser.


Wednesday, November 4, 2015

Teaching 3D Printing at Hackerspace Phnom Penh Cambodia

Recently we started a novel experiment at Hackerspace Phnom Penh to introduce 3D printing technology to kids. We organized a saturday afternoon workshop for the coding club members of local international school. The parents who brought the kids were just as excited about the 3D printing technology.

Teaching 3D printing at Hackerspace Phnom Penh

Photo Credit: Akira

The workshop started with Leo Jofeh walking the kids through the basics of 3D printing technology. The Makerbot Cupcake CNC was used to show various parts of 3D printing machine. The DIY model of the Cupcake CNC 3D printer makes it easy to see all the parts unlike the more recent models of the 3D printers.

Next we brought in the modern Lulzbot Mini 3D printer and did a quick test print of small object from Thingiverse.com to show the whole 3D printing process. The kids were already bubbling with ideas for building model tanks to full scale super hero characters. However we suggested something simpler that doesn't take hours of print time. The code club members were already familiar with the Google Sketchup program. So they quickly started creating drawing of comic characters and creating custom currency coins. With a Sketchup STL export plugin they could export the drawings into a 3D printable STL file.

Leo collected these STL files and added to them the Cura printing software with minor changes. The kids and the parents were totally engrossed all throughout the workshop. Indeed 3D printing unleashes your inner tool maker in everyone.

The workshop was a learning experience for us. Next we are going to expand the program to cover more schools and with few working templates that kids and the parents can work-together.

If you want to help or get involved please get in touch with us at facebook.com/groups/hackerspacepp.

Saturday, May 16, 2015

Fixing Nexus "Red light of death"

Encountered the LG Nexus "Red light of death" problem this morning. The battery had completely discharged itself, trying to charge with power adapter didn't work. Instead of familiar charging animation, the phone had a tiny red light. Web searches suggested to remove the battery and charging it, the process similar to charging a dead car battery using jumper cables. The LG Nexus mobile phone has an internal battery and removing it takes bit of work.

Fortunately I found this forum post that provided a simple solution.

Guys this is complete overkill. There is a documented process for fixing the red light of death. Basically you need to do a battery pull and then let it charge for awhile. HOWEVER, there is a way of simulating a battery pull without actually doing it:
  1. Unplug phone from charger
  2. Press and hold the volume UP button plus power button for 60 seconds.
  3. Release buttons.
  4. Plug into charger.
  5. Wait about an hour for it to charge.
That's it. This is a documented and published fix from LG and Google. The pressing of the buttons does something to simulate a battery pull - probably some sort of flushing of any remaining current out of the phone or tripping some sort of e-fuse like feature.

That fixed the 'Red light of death' problem for me. Hope this helps for you too!


Sunday, September 21, 2014

Noto Fonts Update

Google Internationalization team released new update of Noto Fonts this week. The update brings numerous new features enhancements. Please read the project release notes for the full list of changes.

You can preview the fonts and download them at google.com/get/noto.

Google Noto project logo

Testing fonts on Firefox OS device

It is very simple to test the Noto fonts on a Firefox OS device. Just copy the the font files into /system/fonts folder and reboot the device. Don't forget to back-up the existing fonts on device first.

Am writing this blog post in Bangkok, So I am going to use Thai Noto fonts in these instructions. Connect your Firefox OS device to the computer with a USB cable. Make sure to turn on developer settings to enable debugging via USB.


# Backup the existing Thai font
$ adb pull /system/fonts/DroidSansThai.ttf  

# Remount the /system partition as read-write
$ adb remount /system 

# Remove the font on the device
$ adb shell rm  /system/fonts/DroidSansThai

# Unzip the previously downloaded Thai font package
$ unzip NotoSansThai-hinted.zip 

# Push to Firefox OS device 
$ adb push NotoSansThai-Regular.ttf /system/fonts

# Reboot the phone. Test your localization by selecting your language 
#in Language settings menu or navigating to local language webpage with browser app.
$ adb reboot


Wait, All I see is Tofu?

If you see square blocks (lovingly referred as Tofu) instead of characters, that means the font file for your language is missing. Please double check the steps, if everything fails restore the previously copy of your font file.

What is Font Tofo, firefox OS screenshot

Happy Hacking!

Wednesday, April 23, 2014

Find the fastest DNS Servers with NameBench

In my last post I talked about configuring static DNS entries. Let's go about choosing the fastest DNS servers near your location using Namebench. This tool helps you find the fastest DNS server based on web history, tcpdump output and standardized datasets. You can install it from your package manager or download from code.google.com/p/namebench/.

Namebench DNS benchmarktool screenshot

Here is the list of fastest DNS servers near Nairobi. Tests were run from Zuku Internet connection on Ngong Road, Nairobi

Recommended DNS configuration (fastest + nearest) Nairobi, Kenya

  • Primary Server: 216.194.28.69 (MetConnect-2 US)
  • Secondary Server: 8.8.8.8 (Google Public DNS)
  • Tertiary Server: 78.143.192.10 (Fast GB)

Sunday, April 20, 2014

Configure Static DNS Entries in Ubuntu

Here is quick tip to configure custom DNS services like OpenDNS and Google Public DNS servers on gnu/Linux. Using custom DNS services offers performance benefits and enhanced security.

Append add 'dns-nameservers' to your /etc/network/interfaces file. This over-rides the DNS servers assigned by the DHCP service.


dns-nameservers  208.67.222.222 208.67.220.220

Happy Browsing!

Saturday, September 21, 2013

Google Apps Script for Google Sites

Google Apps Script started as functions for Google Spreadsheets. Today Apps Scripts have evolved into powerful development environment for extending Google Apps. Google Apps Scripts are written in JavaScript programming language.

Last week I attended the Google Apps For Education Summit in Hanoi. The event featured few tutorials about Google Apps Script. It seems that there is a need for simpler tutorials for teaching Apps Script programming.

Earlier this year I wrote these Google Apps Scripts Web Apps to fetch a RSS feed or web page, parse it and display its content. You can embed these Apps Script as gadgets in your Google Sites pages.

The more technically savvy readers will find the example code helpful in learning user interfaces(UI) development with Html Service and Ui Service. You might also want to read XML parsing with Google App Scripts tutorial as well. Please do refer to latest Google Developer documentation as Apps Script API change over time.

Daily Buzzword Google Apps Script

Google Apps Script to parse and display wordcentral.com's Daily Buzzword RSS feed.


Web App URI: https://script.google.com/macros/s/AKfycbwi3vmklN73Al0tXrtQIvfzwl6G3cGOBsTrY-0s1XQvN-zUhLw/exec | Source Code: https://github.com/arky/DailyBuzzword-AppScript

Daily Words Google Apps Script

Google Apps Script to parse and display wordsmith.org A Word A Day RSS Feed


Web App URI: https://script.google.com/macros/s/AKfycbwbMrEhTkn-E3gqAMu7aS5PoMAOHYD62BnGpZFTGPxAY8aCsYW4/exec | Code: https://github.com/arky/awad-AppScript

How to add Apps Script Gadget in your web page?

First go to the page you want to add the Apps Script gadget. Select Apps Script item under Insert menu. In the next dialog box, copy and paste the Apps Script Web App URI into the provided textbox and choose select. The Apps Script Gadget will appear in your webpage.

Tuesday, May 14, 2013

Android Device Offline: Fixing ADB Connection Error

After upgrading to Android Jellybean (4.2.2) the 'adb (Android Debug Bridge)' program failed to connect my Android mobile phone. Running 'adb devices' in the terminal showed error: device offline message.

Recently Android switched to MTP (Media Transfer Protocol). Unfortunately MTP support has some issues. For now I have to resort to using 'adb' command to work with my Android mobile phone.

Digging around the Internet, I learned that Android Jellybean has a new security feature. You need to do RSA key fingerprint verification with the PC. Otherwise the Android device will be reported as offline.

How to Fix ADB Device Offline Error

Here are the steps to connect to your Android device with adb.

  • Get the latest version of adb. Update using Android SDK android program: 'android update adb'
  • Restart adb server with 'adb kill-server'
  • Unplug and reconnect the device to a different USB port
  • Repeat last two steps until you see 'Allow USB Debugging?' dialog on your android device.
  • Select 'Always allow from this computer' option

Now you can talk to your Android device using the adb commands.

Sunday, May 5, 2013

Install CyanogenMod 10.1 (Android Jellybean 4.2.2) on Samsung Galaxy S2 (GT-I9100G)

In this post we'll install Cyanogenmod CM 10.1.x on Samsung Galaxy SII mobile phone. Please note this instructions apply to Samsung Galaxy S2 GT-I1900G model only.

Disclaimer: Installing third-party firmware will void your phone warranty and if something goes wrong it could make your phone unusable. The installation process will wipe data/apps, Please backup everything.!

Before you get started consider backing up your phone data using Samsung Kies or Android apps such as Titanium Backup. Alternatively you can copy the data manually by connecting the phone to your computer with an USB cable.

Prerequisites: What do you need?

  1. Install Android SDK. We'll use the nifty adb program to manage the phone and debug any problems.
  2. Install phone flashing program Fastboot, Heimdall on Linux or Odin utility for MS Windows.
  3. Download Clockwork Recovery: GT-I1900G_ICS_ClockworkMod-Recovery_5.5.0.4.tar
  4. Download latest Cyanogenmod 10.1.x from Cynogenmod download page for i9100g device..
  5. Download gapps-jb-2013301-signed.zip from goo.im.This package provides standard Google Android applications such as Google Play (A.K.A Google Market).
  6. If you are upgrading an Android Gingerbread Phone, you'll need stock Android Ice Cream Sandwich(ICS) ROM. You can find stock Android ROM from SamMobile.

Flash Ice Cream Sandwitch (ICS) Official ROM to Samsung Galaxy S2(GT-I9100G)

You'll need your phone to running Android Ice Cream Sandwitch(ICS). The phone needs to run ICS bootloaders to upgrade to CyanogenMod 10.1.x. In this section I'll flash official Ice Cream Sandwitch(ICS) ROM onto my Gingerbread Phone.(Thank you codeworkx for pointing this out.)

You can ignore this section if you are working with ICS S2 phone.

  1. Unzip the previously downloaded ICS ROM I9100GDZKL3_I9100GOLCKL3_XME ROM
  2. Put the phone in download mode by holding Volume Down(-), Home button and pressing power button.
  3. Connect the phone to computer using USB cable
  4. Launch 0din on your computer and select PDA mode and flash the uncompressed .tar file.
  5. Once complete the phone will reboot.

Root the Samsung S2 ICS Phone with ClockWorkMod Recovery Kernel

The handy ClockWorkMod tool allows you to flash the phone with different ROMs from the phone itself without the need
of computer.

  1. Connect your phone to computer using a USB cable.
  2. Put the device in download mode with 'adb reboot bootloader' or by holding Volume Down(-), Home button and pressing power button.
  3. Uncompress the previously downloaded Clockwork Recovery file.
  4. Use heimdall program to flash on the command line: 'heimdall flash --kernel zImage'
  5. Reboot the mobile phone.

Install CM 10.1.x on Samsung Galaxy S2

Connect your phone to your computer and transfer the previously downloaded files Cyanogenmod 10.1.x and Gapps files to mobile phones internal memory. Restart the phone and enter recovery mode by pressing Volume Up, Home and Power buttons together. Follow the steps below to install the CM10.1.x on your phone.

  1. Select wipe data/factory reset
  2. Select wipe cache partition
  3. Select Advanced Menu and choose wipe dalvik cache
  4. Select Install zip from sdcard and choose update-cm-10.1-XXX-XXX-XXX-signed.zip file.
  5. Select Install zip from sdcard and choose gapps-jb-2013301-signed.zip file. Reboot phone

That's all folks! Don't forget to share your experiences by leaving a comment here.

Saturday, December 1, 2012

CyanogenMod 10 Installation on Google Nexus 7

You got a Nexus 7 tablet. Are you ready to unlock the devices true potential. In this post you'll learn how to update the Nexus 7 tablet to latest Android Jelly Bean (Android 4.1/4.2) firmware from CyanogenMod project.

These instructions are from Truong Anh Tuan and team's CyanogemMod 10 installation on Google Nexus 7 running Jelly Bean 4.2 stock firmware at recent CyanogenMod Bootcamp in Hanoi. Thank you for sharing your notes.

‏Before you get started consider backing up your tablet data using Android apps such as Titanium Backup. Alternatively you can copy the data manually by connecting the tablet to your computer with an USB cable.

Disclaimer: Installing third-party firmware will void your device warranty and if something goes wrong it could make your device unusable. The installation process will wipe data/apps, Please backup everything. You have been warned!

Prerequisites: What do you need?

Installing CyanogenMod 10 on Nexus 7 tablet

  1. Enable USB debugging mode: Go to System Settings > About tablet. Tap “Build number” seven times until you get a 'You are a developer!' dialog.
  2. Connect your device to the computer with an USB cable and copy the previously downloaded files to devices sdcard using the 'adb' program.
    
    sudo adb push recovery-clockwork-6.0.1.9-grouper.img /sdcard
    sudo adb push cm-10-20121123-NIGHTLY-grouper.zip /sdcard
    sudo adb push Google Apps.zip /sdcard
    

  3. Unlock the Nexus 7 bootloader:

    Reboot to bootloader:

    sudo adb reboot bootloader

    Unlock the bootloader:

    sudo fastboot oem unlock

  4. Install ClockWorkMod(CWM) Recovery:
     sudo fastboot flash recovery recovery-clockwork-6.0.1.9-grouper.img
  5. Install CyanogenMod 10 Nightly Build and Google apps
    1. Select wipe data/factory reset.
    2. Select Install zip from sdcard and choose Cyanogenmod 10 Nightlies.zip file
    3. Select Install zip from sdcard and choose Google Apps.zip file

That's all folks!. Reboot your tablet and if everything goes well, the Nexus 7 will boot into CM10. Don't forget you can automatically download and install nightly builds via CyanogenMod OTA update feature.

For more information, Please read the original blog post and Unlock, Root & Install Cyanogenmod 10 Nightlies guide.

Thursday, May 17, 2012

Unset Google Chrome as default browser on Ubuntu

Update: After further investigation, I found is the problem is in google-chrome application not in Chromium-browser. My Mistake!

Dietrich Ayala brought this problem to my attention. For some reason google-chrome browser constantly makes itself the default browser on Ubuntu 10.10 and later versions. This is annoying when you are testing Firefox Nightly Ubuntu builds. You can choose to remove the google-chrome, but that is not a solution.

First, I tried to reproduce this problem on multiple Ubuntu machines. To reproduce this problem, installed Firefox nightly using Firefox Nightly PPA. Remove any other browsers expect google-chrome.


It took very long time to find the solution to this problem. The chromium-browser package adds /usr/local/share/applications/mimeinfo.cache which supersedes the default system application settings. The solution is edit this file and make it read-only using chattr command.


$ sudo nano /usr/local/share/applications/mimeinfo.cache 
[MIME Cache]
application/earthviewer=google-earth.desktop;
application/keyhole=google-earth.desktop;
application/vnd.google-earth.kml+xml=google-earth.desktop;
application/vnd.google-earth.kmz=google-earth.desktop;
application/xhtml_xml=google-chrome.desktop;
text/html=google-chrome.desktop;
text/xml=google-chrome.desktop;
x-scheme-handler/ftp=google-chrome.desktop;
x-scheme-handler/http=google-chrome.desktop;
x-scheme-handler/https=google-chrome.desktop;

#Remove all the google-chrome entries, like this.
[MIME Cache]
application/earthviewer=google-earth.desktop;
application/keyhole=google-earth.desktop;
application/vnd.google-earth.kml+xml=google-earth.desktop;
application/vnd.google-earth.kmz=google-earth.desktop;

# Make it read-only even for super-user
sudo chattr +i /usr/local/share/applications/mimeinfo.cache





After making these changes. Open Firefox Nightly and make it the default browser. Now this system setting will remain unchanged.


Tuesday, December 28, 2010

Google Nexus S

You heard about Google Nexus S and all the buzz right. Well, I asked a friend what he thought about his shinny new Nexus S. He said the he found the 4" Contour phone display screen little odd and the phone does seems to get hot.

What are your thoughts about Nexus S?

Create Android apps with a web browser

Googlelabs Inventor for Android lets you create Android applications with a web browser. No programming experience needed!

Creating an App Inventor app begins in your browser, where you design how the app will look. Then, like fitting together puzzle pieces, you set your app's behavior. All the while, through a live connection between your computer and your phone, your app appears on your phone. Read more...

Sunday, December 26, 2010

Google Mobile Maps 5.0 for Android

If you are excited by the Google Maps UI features demo by Google's Andy Rubin @ Dive Into Mobile. You can try them out on your android phone with the new release of Google Maps 5.0 for Android

With Google Maps for mobile 5.0 you can explore maps in 3D—tilt, rotate and try “compass mode” to see new perspectives that can help you navigate around. Maps are now more reliable when you’re offline, and we’ve added offline rerouting in Google Maps Navigation (beta). To get the latest version, search for “Google Maps” in Android Market and update. Note that not all new features will be available for all phones. Read our blog post for more information.
http://googlemobile.blogspot.com/2010/12/next-generation-of-mobile-maps.html

Wednesday, November 10, 2010

Installing mod_pagespeed

You must have heard Google released mod_pagespeed module for the Apache web server. The mod_pagespeed module improves web page speeds by delivering optimized formats of CSS, Javascript and images on the fly and turning on HTTP caching options. If you are interested read the in-depth technical details on mod_pagespeed filters page.

So you want to get started with mod_pagespeed?. Site Point has published a good guide to Apache mod_pagespeed installation Optimization Made Easy with mod_pagespeed .

Dreamhost users can take advantage of this module right away, it takes less than a minute enable mod_pagespeed using Dreamhost Panel.

Tuesday, July 8, 2008

Google Ajaxlib (Ajax Libraries API)

Google launched its Google AJAX Libraries API earlier this month. Its a good idea to take advantage of this especially if you are using Blogger.com . Right now wctang seems to be only other blogger.com user I who mentions Google Ajax Libraries API.
Guess, I can now consider using one of javascript libraries for the next redesign of this blog.

Thursday, April 17, 2008

Introducing Google App Engine (Video)

A straight forward introduction to Google App Engine architecture by Kevin Gibbs at Campfire One (April 7, 2008).
App Engine also includes the Django web application framework, version 0.96.1. Note that the App Engine datastore is not a relational database, which is required by some Django components.
I don't yet write python but I love have a dekho at Google App Engine soon.

The transcript of the talk is also available.

Popular Posts