SkyMode One Touch Offer Card Preview

Via an iframe, a SkyMode "One Touch Offer" Card can be embedded into any web site such as this one.

<iframe src="https://rocksideranch.transacteverywhere.com/embedoffer/35354" width="700" height="175" frameborder="0" scrolling="no"></iframe>

YouTube Video using their embed iframe code.

<iframe width="560" height="315" src="https://www.youtube.com/embed/GWd0HO0P-gU" frameborder="0" allowfullscreen></iframe>

Analyze SSL traffic using Charles Proxy and any iOS device

SSL is NOT safe, because a simple man-in-the-middle setup can decrypt SSL traffic from any iOS device. Yes, it even works with native iOS apps including Safari Mobile.

Download Charles Proxy and install it on a desktop computer.

http://www.charlesproxy.com/

 (NOTE: These screenshots are from a Mac OS X 10.10.4 (Yosemite) 

On any iOS device, make sure that it is connected to a wi-fi network that is in the same subnet as the desktop computer running Charles Proxy.  Make note of your desktop computer IP address.  In my case, it is 10.0.1.196.

On the iOS device, open "Settings" --> "Wi-Fi"

Tap the info icon next to the connected "Wi-Fi" SSID.  Scroll to the bottom of the next screen to the section labelled, "HTTP PROXY" (screenshot #1)

(screenshot #1)

Set the "Server" value to the IP address of your desktop computer and the "Port" to 8888 (default TCP port for Charles Proxy)

At this point, open up Safari Mobile and surf your favorite site.  You should notice a popup on Charles Proxy (screenshot #2) requesting permission for the remote IP address of your iOS device.  Accept the permission request.  You should be able to see all requests from your iOS device in real-time.



(screenshot #2)


SSL

All SSL requests and still encrypted and you will only see the request being made, but the contents of the requests is still not readable.  Assuming your iOS device is still proxying all requests through Charles Proxy, on your iOS device make a request via Safari Mobile to:

http://www.charlesproxy.com/getssl 

NOTE: Even though this is a charlesproxy.com public domain request, the request is actually handled by your local install of Charles Proxy.  

Your iOS device will prompt you to install the certificate (screenshot #3).  You will need to perform this step in order for the iOS device to proxy SSL request that can be decrypted by Charles Proxy.

(screenshot #3)

Once ceritifcate is installed correctly, you will see green color text that reads, "Verified" (screenshot #4)



(screenshot #4)

Now, all SSL traffic proxied through Charles Proxy will be human readable.

Enjoy!!

iPhone 6 and iPhone 6 Plus Resolution

I am happy that Apple didn't change the aspect ratio and went with industry standard (16:9)

1920x1080 = 1.78 (iPhone 6 plus)

1334x750 = 1.78 (iPhone 6)

1136x640 = 1.78 (iPhone 5)

960x640 = 1.5 (iPhone 4)

 

480x320 = 1.5 (iPhone 3G)

Responsive Media Player Embed Code

After many iterations, we figured out that the following is the best for a responsive layout.

Scout.com embedded video

Just copy-n-paste the iframe markup like so:

 

<iframe src="http://www.scout.com/mediaplayer/1335391" frameborder="0" scrolling="no" allowfullscreen="true" width="500" height="400"></iframe>

iOS AirPlay Mirror on Windows

I am huge fan of Apple's AirPlay, as my primary smart phone is an iPhone 5 and I have AppleTVs connected to all my home televisions.  AirPlay is incredibly responsive, even when mirror your device.  On a 1080p display and AppleTV (version 3), mirror is near flawless.

Even though AirPlay is an Apple technology, Apple has licensed the technology for third parties to implement.  One of those companies is AirSquirrels and it allows an iOS device to be mirrored on a Windows desktop.

http://www.airsquirrels.com/reflector/

How to determine Android app permissions

Android apps have a sophisticated permissions model.  You will see this in action when you download an Android app from the Google Play store, as a user you are presented with a screen like so:

Google documents the complete list of permissions and permission groups.  But each Android device could support only a subset of these permissions, so the easiest way to confirm which permissions and permission groups are supported by an Android device is to use adb shell.  Once you have shell'd out to the Android device issue the following 'Package Manager' pm commands:

$ pm list permissions
All Permissions:

permission:com.sec.android.permission.USE_GSCALER
permission:android.permission.KIES_WIFI
permission:com.sec.android.app.gallery3d.READ_PICASA
permission:com.sec.android.app.sns3.permission.READ_SNS_DB
permission:com.sec.android.email.ACCOUNT_CREATION_PERMISSION
permission:com.sec.factory.permission.BT_ID_WRITE
....

 

Permission groups
$ pm list permission-groups                                    
permission group:android.permission-group.DEVELOPMENT_TOOLS
permission group:android.permission-group.CALENDAR
permission group:android.permission-group.AFFECTS_BATTERY
permission group:android.permission-group.STATUS_BAR
permission group:android.permission-group.DISPLAY
permission group:android.permission-group.LGT_CONTENT
.... 

You can even see the friendly text that is only seen by an end user at the time of app installation from the Google Play Store.

 

$ pm list permissions -s                                       
All Permissions:

Development tools: access external storage of all users, force background apps to close, modify secure system settings, change system display settings, enable app debugging, send Linux signals to apps, read sensitive log data, limit number of running processes, retrieve system internal state

Calendar: 

Affects Battery: allow Wi-Fi Multicast reception, prevent phone from sleeping, control flashlight, control vibration

Status Bar: expand/collapse status bar

Other Application UI: draw over other apps

LGT Contents: LGT Contents

Camera: take pictures and videos
...

Android SDK for Mac OS X

A new Android SDK for Mac OS X bundle (adt-bundle-mac-x86_64-20131030) was released on Oct. 30, 2013.  Coincides with the Android SDK API Level 19 for KitKat.  I am hoping that the new Mac Android ADK fixes the nasty bug when using a Mac with multiple displays.  The emulator would crash on load everytime unless you did this workaround. Here is a mention on StackOverflow.com.

 

How to launch the 'Android SDK Manager'

$ ./android

How to launch the 'Android Virtual Device Manager'

$ ./android avd

Here is a the new Twitter Card

I selected the "Summary" card view.

 

<meta name="twitter:card" content="summary"><meta name="twitter:site" content="@site_username"><meta name="twitter:title" content="Top 10 Things Ever"><meta name="twitter:description" content="Up than 200 characters."><meta name="twitter:creator" content="@creator_username"><meta name="twitter:image:src" content="http://placekitten.com/250/250"><meta name="twitter:domain" content="YourDomain.com"><meta name="twitter:app:name:iphone" content="Vine"><meta name="twitter:app:name:ipad" content="Vine"><meta name="twitter:app:name:googleplay" content="Vine"><meta name="twitter:app:url:iphone" content="vine://v/93582sxlkjf"><meta name="twitter:app:url:ipad" content="vine://v/93582sxlkjf"><meta name="twitter:app:url:googleplay" content="http://vine.co/v/93582sxlkjf"><meta name="twitter:app:id:iphone" content="id81239204382"><meta name="twitter:app:id:ipad" content="id432984038404"><meta name="twitter:app:id:googleplay" content="com.foursquare.android">