Getting GPS coordinates from a picture

Most mobile phones tag pictures with GPS coordinates. It is fairly easy to obtain that information and see where that picture was taken, on Google Maps for instance. Let me go through how you can do that if you are a Windows user.

Right click on the picture in Windows Explorer and select Properties. Head over to the Details tab in the Properties dialog. Scroll to the GPS section. It should look something like this


Now, let’s use the information in the image above as an example. Enter 8 41' 56.139999999999" S, 35 5' 18.490000000005" W in the search box in Google Maps. That takes me to the precise (almost) location where the picture was taken. How do I know to add S (for south) and W (for west)? I used my own good judgement, since that information is hidden in the image shown above.


Build FreeSWITCH from source on Ubuntu 12.04

FreeSWITCH has a fairly detailed Wiki page on download and installation. This post cuts to the chaff.

Execute the following commands from terminal in the order specified. You should be fine doing it in your home folder.

sudo apt-get install git-core build-essential autoconf automake libtool libncurses5 libncurses5-dev make libjpeg-dev pkg-config unixodbc unixodbc-dev zlib1g-dev libcurl4-openssl-dev libexpat1-dev libssl-dev libtiff4-dev libx11-dev unixodbc-dev zlib1g-dev libzrtpcpp-dev libasound2-dev libogg-dev libvorbis-dev libperl-dev libgdbm-dev libdb-dev python-dev uuid-dev bison autoconf g++ libncurses-dev speex libspeexdsp-dev libedit-dev libpcre3-dev

git clone

cd freeswitch




sudo make install cd-sounds-install cd-moh-install

Configuration files are located under /usr/local/freeswitch/conf, if you want to edit any.

Execute FreeSWITCH as superuser thus

sudo /usr/local/freeswitch/bin/freeswitch -nc

Remove -nc option to run in console mode.

To stop FreeSWITCH

sudo /usr/local/freeswitch/bin/freeswitch -stop

If you get “libspandsp.a: No such file or directoryerror when executing make after a make clean, execute the following commands and resume make.

cd libs/spandsp
make clean
cd ../..

To ensure a clean build, use git clean -f -x instead of make clean.

Kudos: Henrique Borges, Vitória Vasconcelos

Dual SIM LG L40 (D175F) with Android KitKat

The cost-benefit of Android Smartphones continues to impress. LG L40 (D175F) is no Moto G, but it is cheaper, and a wonderful piece of hardware. I recently bought one for my wife. It currently retails for R$ 499 (Brazilian Reals) or about US $ 225.


More details follow

  • Very responsive overall
  • In black or white
  • Double tap to lock or use (or achieve the same with power side button)
  • Android 4.4.2 (KitKat)
  • Dual core 1.2 GHz CPU
  • 320×480 pixel, 3.5 inch LCD screen with capacitive touch
  • Digital TV (Brazilian DTV standard for the model cited)
  • FM radio
  • 3.15 mega-pixel (2048×1350 pixels) camera (no AF)
  • No front camera
  • Up to 32 GB microSD card (I bought a 16 GB type 4 card)
  • Dual SIM (normal mini SIM, not micro or nano)
  • 2G/3G data (supports tethering other devices over Wi-Fi i.e. hotspot)
  • Wi-Fi
  • 512 MB RAM
  • 4 GB internal flash storage (1.64 GB available to user)
  • A-GPS support
  • Rotation sensing with built-in accelerometer
  • Bluetooth 4.0 with LE (was able to detect an iBeacon emulated on Mac OS X)
  • MTP (media transfer protocol) works fine with Windows (transfer arbitrary files to/from internal storage and SD card)
  • MTP doesn’t work with Mac OS X Mavericks, but Android File Transfer does the job

Industrial Engineering

I have come to the striking realization that I need to understand other industries, and become acquainted with different aspects of industrial engineering.

What are the different industries? The following infographic from the Texas Higher Education Coordinating Board sums it up nicely. It is by no means comprehensive.


What are the different aspects of industrial engineering? The following infographic, again from the Texas Higher Education Coordinating Board, sums it up nicely.


Here’s a list of aspects, in no particular order or hierarchy, that any industry needs to ponder upon – environmental, tools and fixtures, safety and security, reliability, human factors and ergonomics, standards and certifications, quality, maintenance and support, waste and disposal, business and management, finance, supply chain, inventory, ordering, training, simulation, system dynamics, automation, robotics, planning, facilities and work-spaces, human resources, communications, health, laws and regulations, marketing and sales, travel, culture, intellectual property…

Doesn’t that look like a list of aspects that every reasonably-sized business needs to ponder?

Get latest version of mono on Ubuntu

Execute following commands from terminal

sudo add-apt-repository ppa:directhex/monoxide
sudo apt-get update
sudo apt-get install mono-complete

VoIP calls from the browser using WebRTC and FreeSWITCH

There was a time when making phone calls from the browser would have meant installing a native extension. Thanks to WebRTC, we can now make phone calls from the browser. This post is my recent experiment with doing exactly that, using readily available open source components.

Let’s start by installing FreeSWITCH (FS). I am assuming a Windows based setup but Linux or Mac should also work. Once you have FS installed (I’m on 1.5.8b+git~20131213T181356Z~87751f9eaf~64bit) and sanity-tested, you’ll need to enable websocket support. This can be done by editing the configuration file <FS folder>\conf\sip_profiles\internal.xml so the the following line is uncommented

    <param name="ws-binding"  value=":5066"/>

You can also use secure websockets, I’ll leave that setup for a future exercise. At this point, restart the FreeSWITCH service.

The next step is to find a suitable browser-based SIP client. Luckily, there is exactly such a client provided by jsSIP, and you don’t even have to install it. Fire up your browser (I’m using the latest version of Chrome) and access that URL. Assuming that your IP address is, this is the information you can provide

Name: Your Name
SIP URI: sip:1000@
SIP Password: 1234
WS URI: ws://

Hit ENTER and you’ll be taken to the dialer. Dial 9195 to make a call, FS will relay your voice back to you, after a five second delay. You’ll need to allow the browser to use your microphone.

sipML5 is another nice alternative to jsSIP. You’ll need to edit the WebSocket Server URL in expert mode.

Happy RTCing!

Monthly news review

Continuing the series on monthly, predominantly technological, news review…


iOS has arrived in the car, at least the premium car, not that it wasn’t there already. The experience is based around your iOS device and makes driving as distraction-free as possible.

Popcorn Times

Popcorn Times was born, died and re-born. Watching pirated movies online is nothing new, make it convenient and you’ve got a winner. What makes the application itself interesting is its use of Node-WebKit and peerflix.

Android Wear

No doubt now that Google is taking Android to wearables, starting with smartwatches. These days it looks like everyone is one-upping Apple, but somehow it ends up raking in all the profits.


That’s a nerdy name for a new fork of MySQL that scales better.

Facebook buying Oculus VR

Looks like Facebook is making use of its cash reserves again. Earlier, they paid significantly more to buy WhatsApp.

Office for iPad

Lot’s of Office news this month, concluding with Microsoft launching Office for iPad. It is already top of charts in several countries. Earlier Microsoft launched a free OneNote app for Mac. I wonder which Office app is most useful, now that everyone concurs PowerPoints should be ditched.

ReadMill team acqhired by Dropbox

ReadMill was my favorite reading app for a while. Unfortunately, and especially on mobile, e-books are not easily ported to other apps.

Philips announces 4K TV with Android

TV makers have adopted widely divergent Smart TV OS strategies. LG has embraced WebOS. Samsung has embraced something akin to Chrome OS with support for HTML 5, Native Client, and WebGL. Will Android take over?

CorelDRAW Graphics Suite X7

CorelDRAW has announced the X7 iteration of their suite. The user interface has received a significant overhaul. Heavy users will encounter a crash every other day that will make them lose their work, that has not changed.

Quake III on Raspberry Pi using open source graphics driver

Last month Broadcom announced open source drivers for the GPU on Raspberry Pi. Simon Hall has thus claimed the bounty announced by Raspberry Pi Foundation. In unrelated news, Oxford Flood Network uses Raspberry Pi to monitor flooding levels. Interesting convergence of ideas such as smart cities, internet of things, and open hardware.