Sample code to pull Facebook Marketing account insights
Thursday, March 17, 2016
Saturday, September 12, 2015
Macbook Pro Samsung Galaxy S4 Mobile Hotspot Issue
On Samsung S4 below are the instructions to turn on mobile hotspot
If it works for you great.....
Invalid Password
I was getting a invalid password when I tried connecting so I tried changing password
To change password
Connection Timeout
Now I was getting a new error "Connection timeout". Using the same "configure" option above I removed the password and specified "open" however was still getting the same error. I then went to "Allowed Devices" and specified my Macbook pro, Mac address and that solved the issue. Follow the below directions
- Go to Settings -> Connections
- Click on "Tethering and Mobile Hotspot"
- Toggle the "Mobile Hotspot" slider to "On"
If it works for you great.....
Invalid Password
I was getting a invalid password when I tried connecting so I tried changing password
To change password
- Go to Mobile Hotspot page as instructed above
- In options choose "configure"
- Under "security" change the passsword
Connection Timeout
Now I was getting a new error "Connection timeout". Using the same "configure" option above I removed the password and specified "open" however was still getting the same error. I then went to "Allowed Devices" and specified my Macbook pro, Mac address and that solved the issue. Follow the below directions
- Go to Mobile Hotspot page as instructed above
- In options choose "Allowed Devices"
- Follow these instructions to get your Macbook Pro MAC address. Choose "Wi-Fi" in connections
- Specify the "mac address" in "Allowed Devices"
- Turn off and turn on Mobile hotspot toggle.
Thursday, February 13, 2014
Native vs HTML5 vs Hybrid Apps
Native app development
Pro
- Apps where user experience is paramount,
- Apps where speed is vital,
- Apps that need tight integration with device features (camera, location data, motion sensors, contact lists, etc.)
- Apps that need to deliver an immersive experience—like certain games,
- Apps that involve virtual or augmented reality.
- Apps that require high security might do best as native too—iOS sandboxes each app and some Android devices provide the ability to create different profiles for official and personal use
Cons
- If you need to support multiple OSs, you could wind up building separate apps from the ground up for each OS.
- Each OS uses its own language and SDK.
- One way to control cost is to limit development to the two leading platforms—iOS and Android.
- Another answer to the problem of coding multiple times and getting dedicated developers would be using cross-platform tools like Xamarin Studio or Appcelerator Titanium—which are essentially software frameworks that let web developers create native apps for multiple platforms without having to know and learn separate coding languages. For example, a developer with knowledge of HTML and CSS can create an iOS app by using Xamarin Studio.
HTML5 Mobile Apps
Pros
- Where multiple OSs, devices and form factors must be supported while containing cost. Getting to market quickly on multiple platforms is a good use case.
- HTML5 developers are often easier to find than native developers, making HTML5 apps more convenient and cheaper to develop
- Can also be less costly to maintain, since there’s only one code base for all devices
- Apps can be upgraded without requiring users to download and install new code
- Google Docs and Scribd are good examples of successful web mobile apps built in HTML5
Cons
- Not right for every app. Limited when it comes to user experience. And if your app needs access to native device functionality, you might want to look into native or hybrid
- Not every device supports the full capabilities of HTML5, so work arounds might need to be devised for some devices
- HTML5 apps may be less secure than native apps because they’re not leveraging the all the security features of each OS
Hybrid Mobile Apps
What is it?
It is a web mobile app wrapped inside a native container. It can help to combine a rich user interface developed in HTML5 with the device-specific capabilities accessed through the native code. The visual element in a hybrid app is mostly delivered by the HTML part, while the native code interacts with the device—and readymade libraries such as PhoneGap help to connect the two.
Pros
- You can chose to mix and match the HTML and native components to meet the specific requirements of your app. It also provides a nice compromise between the advantages of native and web apps—easy and convenient development, fast deployment, and access to device-specific features.
- Netflix and Yelp are good examples of hybrid mobile apps
Best approach
The reasonable solution would be hybrid apps—that combine the cross platform capabilities of HTML5 with offline and device specific capabilities of native apps. Gartner even puts a hard number to this prediction—about 50% of the total mobile apps developed and deployed by 2016 would be hybrid apps. [http://www.gartner.com/newroom/id/2429815]Factors to consider when making a choice
- What do you need the app for? Does it bring a significant revenue model for your business or is it merely for a mobile presence an extension of your business website?
- What kind of experience does the app need to deliver to the user?
- What features it will need to have?
- Will the app need to access device-specific features—like geolocation abilities and the contacts list?
- Will it need the pinch and zoom functions?
- What about online and offline capabilities?
- What security features do we need?
- What is the total time that you can afford to spend on developing a new app, or how quickly do you need to deploy your mobile app solution?
- How do you intend to make your app available to users?
- Development cost? Don’t just think about development cost—consider the expected returns and benefits from deploying the solution too. An app that costs more to develop may be worth it in the long run.
References
Whitepaper from DMI Inc
Presentation on JQuery Mobile vs Appcelerator Titanium vs Sencha Touch by Steve Drucker
Question about Xamarin 2.0 vs Appcelerator Titanium vs PhoneGap on Stackoverflow
Thursday, October 17, 2013
Exclude files from War packaging by Maven profile
To achieve this I have used the "packagingExcludes" property of Maven war plugin. For more info and examples of using this property see this page. To exclude files by Maven profile you need to first parameterize the value of "packagingExcludes" in war plugin declaration in pom file
In Maven profile you can define the value of this property by profile
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<packagingExcludes>${pkg.exclude}</packagingExcludes>
</configuration>
</plugin>
In Maven profile you can define the value of this property by profile
<profile>
<id>prod</id>
<properties>
<pkg.exclude>WEB-INF/classes/com/internal/*.class,internal/*</pkg.exclude>
</properties>
<activation>
<property>
<name>environment</name>
<value>prod</value>
</property>
</activation>
</profile>
Tuesday, July 30, 2013
Mobile Browsers and Cookies
My attempt at succinctly describing first party and third party cookie support in various mobile browsers. For a good read on Cookies in general see this Wikipedia article
Browser | Default Cookie Behaviour | Default | Reference |
---|---|---|---|
Safari Mobile | Supports three cookie settings. "Never", "From Visited", "Always" | From Visited | http://support.apple.com/kb/HT1677 |
Chrome Mobile | Accept cookies: checked/unchecked. No way to enable frist part only. | Checked | Checked on my phone |
Opera Mobile | Accept cookies: On /Off | On | Checked on my phone |
Opera Mini on a Blackberry | Accept cookies: on/off. | On | http://www.usa.gov/optout-instructions.shtml |
Android Browser | Accept cookies: Checked / Unchecked. No way to enable first part only. | Checked | http://www.usa.gov/optout-instructions.shtml |
Firefox Android | Cookies: Options "Enabled", "Enabled, excluding 3rd party", "Disabled" | Enabled | Installed on my phone and checked |
Internet Explorer Mobile | Allow cookies on my phone: Checked / Unchecked | Checked | http://www.windowsphone.com/en-us/how-to/wp7/web/changing-privacy-and-other-browser-settings |
Blackberry Browser | Accept cookies: Checked / Unchecked | Checked | http://docs.blackberry.com/en/smartphone_users/deliverables/32004/Turn_off_cookies_in_the_browser_60_1072866_11.jsp |
Monday, June 03, 2013
Elastic Beanstalk Tomcat Container Timezone
When deploying a Tomcat container webapp using AWS Elastic Beanstalk with default AMI, it defaults the EC2 instances to UTC/GMT timezone. To set a different timezone the hard way is to create your own custom AMI with the required timezone. If you are only running the Tomcat container on EC2 instance then an easier way to change timezone is to specify is as a JVM command line option. To change the configuration
1. Login to your AWS console
2. Go to "Elastic Beanstalk" service
3. Under your environment click on "Edit Configurations"
4. That should popup a screen and the last tab in the screen will say "Container"
5. Set the required timezone as shown in below screenshot. Java supports these timezones
1. Login to your AWS console
2. Go to "Elastic Beanstalk" service
3. Under your environment click on "Edit Configurations"
4. That should popup a screen and the last tab in the screen will say "Container"
5. Set the required timezone as shown in below screenshot. Java supports these timezones
Wednesday, May 15, 2013
DOJO Combobox On Enter Key Event
Below code can be used to setup a event to fire when a enter key is pressed inside combobox.
1: require([
2: "dojo/ready", "dojo/store/JsonRest", "dijit/form/ComboBox", "dojox/storage", "dojo/request", "dojo/json"
3: ], function(ready, JsonRest, ComboBox, storage, request, json)
4:
5: {
6: var comboBox = new ComboBox(
7: {
8: id: "IdCombo",
9: name: "NameCombo",
10: placeholder: "Enter text",
11: }, "placesomewhereid");
12:
13: comboBox.startup();
14:
15: require(["dojo/on", "dijit/focus", "dojo/keys", "dojo/domReady!"], function(on, focusUtil, keys)
16: {
17: on(document, "keyup", function(event)
18: {
19: if(event.keyCode == keys.ENTER && focusUtil.curNode.id == "IdCombo")
20: {
21: //Write code here that needs to run when enter key is pressed
22: }
23: });
24: });
25: });
Subscribe to:
Posts (Atom)