Shenzhen: The Silicon Valley of Hardware (Video)

Follow maker and hacker extraordinary Andrew 'Bunnie' Huang to Shenzhen, China. This documentary provides a rare insight into Shenzhen,the silicon valley of hardware. Understand what makes Shenzhen produce such innovative products at an incredible speed.

For me, the one most striking highlight of this documentary was to learn about 'Shenzhai' culture, it is akin to hacker or maker culture. I believe the values of open design, sharing of technical know-how and healthy dose of hubris defines Shenzhai culture. It drives the innovative product design in Shenzhen. Today this culture of design and easy availability of manufacturing facilities is attracting designers, makers, hackers and entrepreneurs.

I hope you'll enjoy this documentary and hopeful make your way to Shenzhen in near future.

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.


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-sky src="img/hackerspace.vr.jpg" radius="2400" scale="2 1 2"> </a-sky>

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

Eco City: Projection Mapping For Social Impact

Japanese artist Hidetaka Nakamura uses animation to bring about awareness about social issues in Cambodia. In this post, I talk about his Eco City project, he makes large screen projections of animations drawn by children on the wall of underground sewage plant. The children visit this underground sewage plant along the river front of Phnom Penh, they participate in pop quiz about environmental issues. The animated characters teach the children about recycling and garbage disposal.

This the second edition of the Eco city project in Cambodia. I'll be working with Hidetaka on the next projection mapping to bring real time animation of the drawings and immersive interaction of projection mapping next year. Stay tuned.

Free SSL Certificate from Mozilla Let's Encrypt project

Last week Mozilla Let's Encrypt project announced the launch of its free, automated and open certificate authority. I had been waiting for this news for a long time. I quickly deployed Let's Encrypt on my staging server to learn how this technology works. The deployment process is painless and very straight forward. The certificates needs to renewed every 3 months, the Let's Encrypt client does this automatically. Thank you Jerome and Ryan for all your help!.

At the time of writing this blog post, Let's Encrypt client was not available for Ngnix server. So I am using the manual method to obtain the SSL certificate here. Please read the latest docs for additional information.

# Check out the let's encrypt source code
$ git clone

# Stop the Nginx server, we need the client to bind to port 80.
$ sudo service nginx stop

# Start the let's encrypt client and follow the instructions on screen. You need to provide an email address.
$ sudo ./letsencrypt-auto --server certonly --domains
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/ Your
   cert will expire on 2016-01-02. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - If like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:
   Donating to EFF:          

# Edit the Nginix config to point to generated certificates.
$ sudo nano /etc/nginx/sites-enabled/

 listen 443 ssl;
        ssl_certificate /etc/letsencrypt/live/;
        ssl_certificate_key /etc/letsencrypt/live/;

# Restart the Nginx server
$ sudo service nginx start

Please don't forget to test your server using an comprehensive SSL server test such as SSLLabs.